@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;0,9..144,500;1,9..144,300;1,9..144,400;1,9..144,500&family=Epilogue:wght@300;400;500&display=swap');
@font-face {
font-family:'Fraunces';
font-style:normal;
font-weight:300;
font-display:swap;
src:url('../fonts/cormorant-garamond-v21-latin-300.woff2') format('woff2')
}
@font-face {
font-family:'Fraunces';
font-style:italic;
font-weight:300;
font-display:swap;
src:url('../fonts/cormorant-garamond-v21-latin-300italic.woff2') format('woff2')
}
@font-face {
font-family:'Fraunces';
font-style:normal;
font-weight:400;
font-display:swap;
src:url('../fonts/cormorant-garamond-v21-latin-regular.woff2') format('woff2')
}
@font-face {
font-family:'Fraunces';
font-style:italic;
font-weight:400;
font-display:swap;
src:url('../fonts/cormorant-garamond-v21-latin-italic.woff2') format('woff2')
}
@font-face {
font-family:'Fraunces';
font-style:normal;
font-weight:500;
font-display:swap;
src:url('../fonts/cormorant-garamond-v21-latin-500.woff2') format('woff2')
}
@font-face {
font-family:'Fraunces';
font-style:italic;
font-weight:500;
font-display:swap;
src:url('../fonts/cormorant-garamond-v21-latin-500italic.woff2') format('woff2')
}
@font-face {
font-family:'Epilogue';
font-style:normal;
font-weight:300;
font-display:swap;
src:url('../fonts/jost-v20-latin-300.woff2') format('woff2')
}
@font-face {
font-family:'Epilogue';
font-style:normal;
font-weight:400;
font-display:swap;
src:url('../fonts/jost-v20-latin-regular.woff2') format('woff2')
}
@font-face {
font-family:'Epilogue';
font-style:normal;
font-weight:500;
font-display:swap;
src:url('../fonts/jost-v20-latin-500.woff2') format('woff2')
}
.visually-hidden {
position:absolute;
width:1px;
height:1px;
padding:0;
margin:-1px;
overflow:hidden;
clip:rect(0,0,0,0);
white-space:nowrap;
border:0
}
:root {
--colour-cream:#faf6f0;
--colour-warm-off:#f2ebe0;
--colour-sand:#d4a882;
--colour-taupe:#c4724a;
--colour-olive:#7a9e82;
--colour-gold:#a89458;
--colour-slate-blue:#6e8ea0;
--colour-warm-rose:#a88080;
--colour-brown:#a8462a;
--colour-sage:#c4906e;
--colour-sage-light:#e8c4a8;
--colour-mist:#ecddd0;
--colour-warm-sage:#e0cbb8;
--colour-forest:#7a3520;
--colour-slate:#b86840;
--colour-rose:#c4724a;
--colour-umber:#8a5a3a;
--colour-moss:#7a3520;
--colour-text:#1e1208;
--colour-subtext:#4a3220;
--colour-white:#ffffff;
--font-display:'Fraunces',Georgia,serif;
--font-body:'Epilogue','Helvetica Neue',Arial,sans-serif;
--space-xs:0.25rem;
--space-sm:0.5rem;
--space-md:1rem;
--space-lg:1.5rem;
--space-xl:2.5rem;
--space-2xl:4rem;
--space-3xl:7rem;
--radius-sm:0.6rem;
--radius-md:1.2rem;
--radius-lg:1.4rem;
--radius-pill:3rem;
--shadow-sm:0 4px 16px rgba(120,53,32,0.08);
--shadow-md:0 12px 40px rgba(120,53,32,0.08);
--shadow-lg:0 20px 60px rgba(120,53,32,0.12);
--transition-fast:0.2s ease;
--transition-normal:0.25s ease;
--transition-slow:0.3s ease;
--border-subtle:1px solid rgba(180,120,80,0.18);
--border-light:1px solid rgba(180,120,80,0.22)
}
*,*::before,*::after {
box-sizing:border-box;
margin:0;
padding:0
}
html {
font-size:17px;
scroll-behavior:smooth;
-webkit-text-size-adjust:100%
}
body {
font-family:var(--font-body);
background-color:var(--colour-cream);
color:var(--colour-text);
overflow-x:hidden;
line-height:1.6
}
img,svg {
display:block;
max-width:100%
}
a {
color:inherit
}
ul {
list-style:none
}
button,input,select,textarea {
font-family:inherit
}
@media (prefers-reduced-motion:reduce) {
*,*::before,*::after {
animation-duration:0.01ms !important;
animation-iteration-count:1 !important;
transition-duration:0.01ms !important;
scroll-behavior:auto !important
}

}
.text-display {
font-family:var(--font-display);
font-weight:400;
line-height:1.08;
color:var(--colour-brown)
}
.text-eyebrow {
font-size:0.72rem;
letter-spacing:0.22em;
text-transform:uppercase;
color:var(--colour-taupe)
}
.text-subtext {
font-size:0.87rem;
font-weight:300;
color:var(--colour-subtext);
line-height:1.75
}
.nav {
position:fixed;
top:0;
left:0;
right:0;
z-index:100;
display:flex;
align-items:center;
justify-content:space-between;
padding:1.2rem 3rem;
background:rgba(247,244,239,0.94);
backdrop-filter:blur(12px);
-webkit-backdrop-filter:blur(12px);
border-bottom:var(--border-subtle);
animation:fade-down 0.8s ease both
}
.nav__logo {
display:flex;
align-items:center;
gap:0.7rem;
text-decoration:none
}
.nav__logo-img {
width:150px;
height:auto;
flex-shrink:0
}
.nav__portrait {
display:none;
width:36px;
height:36px;
border-radius:50%;
object-fit:cover;
object-position:center 5%;
border:2px solid rgba(158,136,114,0.25);
flex-shrink:0;
margin-left:0.6rem
}
.nav__logo-text {
font-family:var(--font-display);
font-size:1.25rem;
font-weight:500;
color:var(--colour-brown);
line-height:1.1
}
.nav__logo-text span {
display:block;
font-family:var(--font-body);
font-size:0.6rem;
font-weight:400;
letter-spacing:0.22em;
text-transform:uppercase;
color:var(--colour-taupe)
}
.nav__links {
display:flex;
gap:1.4rem
}
.nav__links a {
font-size:0.72rem;
font-weight:400;
letter-spacing:0.08em;
text-transform:uppercase;
color:var(--colour-subtext);
text-decoration:none;
transition:color var(--transition-normal)
}
.nav__links a:hover,.nav__links a:focus-visible {
color:var(--colour-brown)
}
.nav__cta {
background:var(--colour-forest) !important;
color:#fff !important;
padding:0.55rem 1.4rem;
border-radius:var(--radius-pill);
transition:background var(--transition-normal) !important
}
.nav__cta:hover,.nav__cta:focus-visible {
background:var(--colour-sage) !important
}
.nav__toggle {
display:none;
background:none;
border:none;
cursor:pointer;
padding:var(--space-sm);
color:var(--colour-brown)
}
.hero--fullbleed {
min-height:100vh;
display:flex;
align-items:flex-start;
justify-content:center;
padding:14rem 3rem 5rem;
position:relative;
overflow:hidden;
text-align:center
}
.hero__bg-wrap {
position:absolute;
inset:0;
overflow:hidden;
transform:scale(1.06);
animation:hero-zoom 20s ease-out forwards;
will-change:transform
}
.hero__bg {
position:absolute;
inset:0;
width:100%;
height:100%;
object-fit:cover;
object-position:45% 55%
}
@keyframes hero-zoom {
from {
transform:scale(1.06)
}
to {
transform:scale(1.0)
}

}
.hero__overlay {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 20% 45%, rgba(40,16,6,0.55) 0%, rgba(40,16,6,0.25) 35%, transparent 65%),
              linear-gradient(to bottom, rgba(40,16,6,0.15) 0%, transparent 40%);
}
.hero__content--centered {
position:relative;
z-index:2;
max-width:740px;
margin:0 auto;
text-align:center
}
.hero--fullbleed .hero__eyebrow--light {
display:inline-flex;
align-items:center;
gap:0.7rem;
color:rgba(255,255,255,0.85);
text-shadow:0 1px 6px rgba(0,0,0,0.6);
opacity:0;
animation:word-reveal 0.8s 0.3s ease forwards
}
.hero__eyebrow--light::before,.hero__eyebrow--light::after {
content:'';
display:block;
width:2.5rem;
height:1px;
background:rgba(201,185,154,0.5)
}
.hero__eyebrow--light::before {
display:block
}
.hero--fullbleed .hero__title--light {
color:#ffffff !important;
font-size:clamp(3.2rem,6.5vw,5.8rem);
font-weight:300;
text-shadow:0 2px 8px rgba(0,0,0,0.7),0 4px 24px rgba(0,0,0,0.5),0 1px 2px rgba(0,0,0,0.9);
margin-bottom:1.8rem
}
.hero--fullbleed .hero__title--light em {
font-style:italic;
color:#f5e8cc !important;
text-shadow:0 2px 8px rgba(0,0,0,0.7),0 4px 24px rgba(0,0,0,0.5)
}
.hero--fullbleed .hero__title--light .w {
color:inherit
}
@keyframes word-reveal {
from {
opacity:0;
transform:translateY(12px)
}
to {
opacity:1;
transform:translateY(0)
}

}
.hero__title--light .w {
display:inline-block;
opacity:0;
animation:word-reveal 0.6s ease forwards
}
.hero--fullbleed .hero__subtitle--light {
font-size:1.05rem;
font-weight:300;
line-height:1.85;
color:rgba(255,255,255,0.95);
text-shadow:0 1px 6px rgba(0,0,0,0.7),0 2px 16px rgba(0,0,0,0.5);
max-width:540px;
margin:0 auto 2.8rem;
opacity:0;
animation:word-reveal 0.8s 1.4s ease forwards
}
.hero__actions--centered {
justify-content:center;
text-align:center;
opacity:0;
animation:word-reveal 0.8s 1.7s ease forwards
}
.btn--hero-primary {
background:var(--colour-forest);
color:#fff;
padding:0.9rem 2.2rem;
border-radius:var(--radius-pill);
font-size:0.82rem;
letter-spacing:0.1em;
text-transform:uppercase;
text-decoration:none;
font-weight:500;
transition:background var(--transition-normal),transform var(--transition-fast)
}
.btn--hero-primary:hover {
background:var(--colour-sage);
transform:translateY(-2px)
}
.btn--hero-outline {
border:1.5px solid rgba(247,244,239,0.5);
color:rgba(247,244,239,0.92);
padding:0.9rem 2.2rem;
border-radius:var(--radius-pill);
font-size:0.82rem;
letter-spacing:0.1em;
text-transform:uppercase;
text-decoration:none;
transition:border-color var(--transition-normal),color var(--transition-normal),transform var(--transition-fast)
}
.btn--hero-outline:hover {
border-color:rgba(247,244,239,0.9);
color:#fff;
transform:translateY(-2px)
}
.hero__scroll {
position:absolute;
bottom:2rem;
left:50%;
transform:translateX(-50%);
z-index:2;
display:flex;
flex-direction:column;
align-items:center;
gap:0.4rem;
opacity:0;
animation:word-reveal 0.8s 2.4s ease forwards
}
.hero__scroll-label {
font-size:0.62rem;
letter-spacing:0.2em;
text-transform:uppercase;
color:rgba(201,185,154,0.7)
}
.hero__scroll-line {
width:1px;
height:36px;
background:linear-gradient(to bottom,rgba(201,185,154,0.7),transparent);
animation:scroll-pulse 2s 2.8s ease-in-out infinite
}
@keyframes scroll-pulse {
0%,100% {
opacity:0.5;
transform:scaleY(1)
}
50% {
opacity:1;
transform:scaleY(1.15)
}

}
.nav--transparent {
background:transparent !important;
backdrop-filter:none !important;
-webkit-backdrop-filter:none !important;
border-bottom:1px solid transparent !important;
transition:background 0.4s ease,border-color 0.4s ease
}
.nav--transparent .nav__links a {
color:rgba(255,255,255,0.9);
text-shadow:0 1px 4px rgba(0,0,0,0.4)
}
.nav--transparent .nav__links a:hover {
color:#fff
}
.nav--transparent .nav__cta {
background:rgba(255,255,255,0.15) !important;
color:#fff !important;
border:1px solid rgba(255,255,255,0.4)
}
.nav--transparent .nav__cta:hover {
background:rgba(255,255,255,0.25) !important
}
.nav--transparent .nav__toggle {
color:#fff
}
.nav--scrolled {
background:rgba(247,244,239,0.94) !important;
border-bottom:var(--border-subtle) !important
}
.nav--scrolled .nav__links a {
color:var(--colour-subtext)
}
.nav--scrolled .nav__links a:hover {
color:var(--colour-brown)
}
.nav--scrolled .nav__cta {
background:var(--colour-forest) !important;
color:#fff !important
}
.nav--scrolled .nav__cta:hover {
background:var(--colour-sage) !important
}
.hero {
min-height:100vh;
display:grid;
grid-template-columns:1fr 1fr;
align-items:center;
padding:7rem 3rem 4rem;
position:relative;
overflow:hidden
}
.hero::before {
content:'';
position:absolute;
right:-10%;
top:5%;
width:65vw;
height:65vw;
background:radial-gradient( ellipse at 60% 40%,rgba(143,169,140,0.18) 0%,rgba(201,185,154,0.14) 45%,transparent 70% );
border-radius:50%;
pointer-events:none
}
.hero--fullbleed::before {
display:none
}
.hero__content {
max-width:560px;
animation:fade-up 1s 0.3s ease both
}
.hero__eyebrow {
display:flex;
align-items:center;
gap:0.7rem;
font-size:0.72rem;
letter-spacing:0.2em;
text-transform:uppercase;
color:var(--colour-taupe);
margin-bottom:1.4rem
}
.hero__eyebrow::before {
content:'';
display:block;
width:2.5rem;
height:1px;
background:var(--colour-sand)
}
.hero__title {
font-family:var(--font-display);
font-size:clamp(3rem,5.5vw,5rem);
font-weight:400;
line-height:1.08;
color:var(--colour-brown);
margin-bottom:1.6rem
}
.hero__title em {
font-style:italic;
color:var(--colour-taupe)
}
.hero__subtitle {
font-size:1rem;
font-weight:300;
line-height:1.8;
color:rgba(255,255,255,0.92);
text-shadow:0 1px 6px rgba(0,0,0,0.5);
max-width:440px;
margin-bottom:2.5rem
}
.hero__actions {
display:flex;
gap:var(--space-md);
flex-wrap:wrap
}
.hero__visual {
display:flex;
justify-content:flex-end;
align-items:center;
animation:fade-up 1s 0.55s ease both;
position:relative
}
.hero-photo-wrap {
position:relative;
width:100%;
max-width:680px
}
.hero-photo-wrap__img {
width:100%;
height:auto
}
.hero-photo-wrap::before {
content:'';
position:absolute;
inset:-16px -16px -16px 16px;
border-radius:var(--radius-lg);
border:1.5px solid rgba(180,120,80,0.25);
pointer-events:none;
z-index:0
}
.hero-photo-wrap__img {
width:100%;
border-radius:var(--radius-lg);
display:block;
position:relative;
z-index:1;
box-shadow:0 24px 64px rgba(120,53,32,0.15)
}
.hero-photo-badge {
position:absolute;
bottom:-1rem;
left:-1.2rem;
z-index:2;
background:var(--colour-white);
border:var(--border-subtle);
border-radius:var(--radius-md);
padding:0.6rem 1rem;
box-shadow:var(--shadow-sm);
display:flex;
align-items:center;
gap:0.6rem
}
.hero-photo-badge--top {
bottom:auto;
left:50%;
top:-1rem;
transform:translateX(-50%)
}
.hero-photo-badge__text {
font-family:var(--font-display);
font-size:0.9rem;
font-weight:500;
color:var(--colour-brown);
line-height:1.2
}
.hero-photo-badge__sub {
font-size:0.62rem;
letter-spacing:0.12em;
text-transform:uppercase;
color:var(--colour-taupe)
}
.leaf-divider {
position:relative;
height:140px;
display:flex;
align-items:center;
justify-content:center;
overflow:hidden
}
.leaf-divider::before,.leaf-divider::after {
content:'';
position:absolute;
left:10%;
right:10%;
height:1px;
background:linear-gradient(90deg,transparent,rgba(180,120,80,0.20),transparent)
}
.leaf-divider::before {
top:22px
}
.leaf-divider::after {
bottom:22px
}
.leaf-divider__img {
height:110px;
opacity:0.5;
pointer-events:none;
animation:float 7s ease-in-out infinite
}
.leaf-divider__img--flip {
transform:scaleX(-1)
}
.stats-band {
background:var(--colour-warm-off);
padding:2rem 3rem;
display:flex;
justify-content:center;
border-top:var(--border-subtle);
border-bottom:var(--border-subtle)
}
.stats-band__inner {
max-width:1100px;
width:100%;
display:flex;
gap:2rem;
align-items:center;
flex-wrap:wrap
}
.stat {
display:flex;
flex-direction:column;
align-items:center;
flex:1;
min-width:160px
}
.stat__number {
font-family:var(--font-display);
font-size:1.18rem;
font-weight:300;
color:var(--colour-brown);
line-height:1.2;text-align:center
}
.stat__label {
font-size:0.72rem;
letter-spacing:0.15em;
text-transform:uppercase;
color:var(--colour-brown);
margin-top:0.3rem;
text-align:center
}
.stats-band__divider {
width:1px;
height:50px;
background:var(--colour-sand);
opacity:0.5
}
.section {
padding:var(--space-3xl) 3rem
}
.section--tinted {
background:var(--colour-warm-off)
}
.section--sage {
background:var(--colour-cream);
position:relative
}
.section--sage .section__eyebrow {
color:var(--colour-taupe)
}
.section--sage .section__title {
color:var(--colour-brown)
}
.section--sage .section__title em {
color:var(--colour-taupe)
}
.section--dark {
background:var(--colour-brown);
position:relative;
overflow:hidden
}
.section--dark::before {
content:'';
position:absolute;
inset:0;
background-image:url('../img/blog/nature-band.webp');
background-size:cover;
background-position:center;
opacity:0.08;
pointer-events:none
}
.section__header {
text-align:center;
margin-bottom:var(--space-2xl)
}
.section__eyebrow {
font-size:0.72rem;
letter-spacing:0.22em;
text-transform:uppercase;
color:var(--colour-taupe);
margin-bottom:0.8rem;
display:flex;
align-items:center;
justify-content:center;
gap:0.7rem
}
.section__eyebrow::before,.section__eyebrow::after {
content:'';
display:block;
width:2rem;
height:1px;
background:var(--colour-sand)
}
.section--dark .section__eyebrow {
color:var(--colour-sand)
}
.section--dark .section__eyebrow::before,.section--dark .section__eyebrow::after {
background:var(--colour-taupe)
}
.section__title {
font-family:var(--font-display);
font-size:clamp(2.2rem,4vw,3.2rem);
font-weight:400;
color:var(--colour-brown);
line-height:1.15
}
.section__title em {
font-style:italic;
color:var(--colour-taupe)
}
.section--dark .section__title {
color:var(--colour-cream)
}
.section--dark .section__title em {
color:var(--colour-sand)
}
.services-grid {
display:grid;
grid-template-columns:repeat(3,1fr);
gap:var(--space-lg);
max-width:1100px;
margin:0 auto
}
.service-card {
background:var(--card-bg,var(--colour-white));
border:1px solid rgba(180,120,80,0.12);
border-radius:var(--radius-md);
padding:0;
overflow:hidden;
position:relative;
transition:transform var(--transition-slow),box-shadow var(--transition-slow);
display:flex;
flex-direction:column;
box-shadow:0 2px 6px rgba(120,53,32,0.07),0 8px 24px rgba(120,53,32,0.09)
}
.service-card__cover-link {
position:absolute;
inset:0;
z-index:1;
border-radius:var(--radius-md);
outline-offset:3px
}
.service-card__link {
position:relative;
z-index:2;
pointer-events:none
}
.service-card:hover,.service-card:has(.service-card__cover-link:focus-visible) {
transform:translateY(-6px);
box-shadow:0 4px 10px rgba(120,53,32,0.08),0 20px 56px rgba(120,53,32,0.16)
}
.service-card:hover .service-card__icon,.service-card:has(.service-card__cover-link:focus-visible) .service-card__icon {
background:var(--card-accent);
transform:scale(1.08)
}
.service-card:hover .service-card__icon svg,.service-card:has(.service-card__cover-link:focus-visible) .service-card__icon svg {
color:var(--colour-white)
}
.service-card:hover .service-card__link,.service-card:has(.service-card__cover-link:focus-visible) .service-card__link {
gap:0.7rem;
color:var(--colour-brown)
}
.service-card[data-accent="sage"] {
--card-accent:#5a7a5a;
--card-accent-bg:rgba(90,122,90,0.12);
--card-bg:#eef3ee
}
.service-card[data-accent="sand"] {
--card-accent:#a88a3a;
--card-accent-bg:rgba(168,138,58,0.12);
--card-bg:#f5f0e4
}
.service-card[data-accent="taupe"] {
--card-accent:#c4724a;
--card-accent-bg:rgba(196,114,74,0.12);
--card-bg:#f5ede6
}
.service-card[data-accent="mist"] {
--card-accent:#4a6a7a;
--card-accent-bg:rgba(74,106,122,0.12);
--card-bg:#edf2f5
}
.service-card[data-accent="sage-warm"] {
--card-accent:#3d5e3a;
--card-accent-bg:rgba(61,94,58,0.12);
--card-bg:#ecf2eb
}
.service-card[data-accent="blush"] {
--card-accent:#a85a5a;
--card-accent-bg:rgba(168,90,90,0.12);
--card-bg:#f5ebeb
}
.service-card[data-accent="forest"] {
--card-accent:#2e4d5e;
--card-accent-bg:rgba(46,77,94,0.12);
--card-bg:#eaeff2
}
.service-card[data-accent="slate"] {
--card-accent:#4a6a7a;
--card-accent-bg:rgba(74,106,122,0.12);
--card-bg:#edf2f5
}
.service-card[data-accent="rose"] {
--card-accent:#a85a5a;
--card-accent-bg:rgba(168,90,90,0.12);
--card-bg:#f5ebeb
}
.service-card[data-accent="umber"] {
--card-accent:#7a6020;
--card-accent-bg:rgba(122,96,32,0.12);
--card-bg:#f3ede0
}
.service-card[data-accent="moss"] {
--card-accent:#5a7a5a;
--card-accent-bg:rgba(90,122,90,0.12);
--card-bg:#eef3ee
}
.service-card__photo {
width:100%;
height:180px;
overflow:hidden;
border-radius:var(--radius-md) var(--radius-md) 0 0;
flex-shrink:0
}
.service-card__photo img {
width:100%;
height:100%;
object-fit:cover;
object-position:center;
display:block;
transition:transform 0.5s ease
}
.service-card:hover .service-card__photo img {
transform:scale(1.05)
}
.service-card__top {
display:none
}
.service-card__num {
display:none
}
.service-card__icon {
display:none
}
.service-card__icon svg {
display:none
}
.service-card__title {
font-family:var(--font-display);
font-size:1.7rem;
font-weight:500;
color:var(--colour-brown);
margin-bottom:0.55rem;
padding:1.6rem 1.8rem 0;
line-height:1.15
}
.service-card__hook {
font-family:var(--font-display);
font-size:1rem;
font-weight:400;
font-style:italic;
color:var(--card-accent);
line-height:1.55;
padding:0 1.8rem;
margin-bottom:0.8rem
}
.service-card__desc {
font-size:0.87rem;
font-weight:400;
color:#5a4a3a;
line-height:1.75;
padding:0 1.8rem;
flex:1
}
.service-card__link {
display:inline-flex;
align-items:center;
gap:0.45rem;
margin:1.4rem 1.8rem 1.8rem;
font-size:0.72rem;
letter-spacing:0.12em;
text-transform:uppercase;
color:var(--card-accent);
font-weight:600;
position:relative;
z-index:2;
pointer-events:none;
transition:gap var(--transition-fast),color var(--transition-fast)
}
.service-card__link svg {
transition:transform var(--transition-fast)
}
.service-card:hover .service-card__link svg {
transform:translateX(3px)
}
.approach__inner {
max-width:1100px;
margin:0 auto;
display:grid;
grid-template-columns:1fr 1fr;
gap:5rem;
align-items:center
}
#approach .section__header {
text-align:center;
max-width:1100px;
margin:0 auto 3rem
}
#approach .section__eyebrow {
justify-content:center
}
.approach__illustration {
display:flex;
align-items:center;
justify-content:center;
overflow:hidden;
border-radius:1.2rem;
box-shadow:0 20px 60px rgba(120,53,32,0.15);
max-width:480px;
width:100%;
height:680px;
position:relative
}
.approach__nature-img {
width:100%;
height:100%;
object-fit:cover;
object-position:center center;
display:block;
border-radius:0;
box-shadow:none;
will-change:transform;
transition:transform 0.1s linear
}
.approach__steps {
margin-top:0;
display:flex;
flex-direction:column;
gap:0;
list-style:none;
position:relative
}
.approach__steps::before {
content:'';
position:absolute;
left:1.6rem;
top:2rem;
bottom:2rem;
width:2px;
background:linear-gradient( to bottom,var(--colour-sand) 0%,rgba(201,185,154,0.2) 100% );
border-radius:2px
}
.approach__step {
display:flex;
gap:1.4rem;
align-items:flex-start;
position:relative;
padding:1.6rem 1.8rem 1.6rem 1rem;
background:#fff;
border:1px solid rgba(180,120,80,0.15);
border-radius:var(--radius-md);
margin-bottom:1rem;
box-shadow:0 2px 12px rgba(120,53,32,0.06);
transition:transform 0.25s ease,box-shadow 0.25s ease
}
.approach__step:last-child {
margin-bottom:0
}
.approach__step:hover {
transform:translateX(4px);
box-shadow:0 6px 24px rgba(120,53,32,0.1)
}
.step__number {
font-family:var(--font-display);
font-size:0.95rem;
font-weight:500;
letter-spacing:0.04em;
color:#fff;
line-height:1;
min-width:3.4rem;
width:3.4rem;
height:3.4rem;
flex-shrink:0;
border-radius:50%;
display:flex;
align-items:center;
justify-content:center;
box-shadow:0 2px 8px rgba(120,53,32,0.25);
position:relative;
z-index:1;
text-align:center
}
.approach__step:nth-child(1) .step__number {
background:#c4724a
}
.approach__step:nth-child(2) .step__number {
background:#5a7a5a
}
.approach__step:nth-child(3) .step__number {
background:#a88a3a
}
.approach__step:nth-child(4) .step__number {
background:#4a6a7a
}
.step__title {
font-family:var(--font-display);
font-size:1.4rem;
font-weight:500;
color:var(--colour-brown);
margin-bottom:0.4rem;
line-height:1.2
}
.step__desc {
font-size:0.87rem;
font-weight:300;
color:var(--colour-subtext);
line-height:1.75
}
.steps-grid {
list-style:none;
max-width:1100px;
margin:0 auto;
display:grid;
grid-template-columns:repeat(4,1fr);
gap:0;
position:relative
}
.steps-grid::before {
content:'';
position:absolute;
top:2.6rem;
left:calc(12.5%+1rem);
right:calc(12.5%+1rem);
height:1px;
background:linear-gradient(to right,var(--colour-sand) 0%,var(--colour-mist) 100%);
opacity:0.5;
pointer-events:none
}
.steps-grid__item {
padding:0 1.8rem;
text-align:center;
position:relative
}
.steps-grid__number {
font-family:var(--font-display);
font-size:3.2rem;
font-weight:300;
color:#8a6545;
line-height:1;
display:block;
margin-bottom:1rem
}
.steps-grid__title {
font-family:var(--font-display);
font-size:1.25rem;
font-weight:500;
color:var(--colour-brown);
margin-bottom:0.6rem;
line-height:1.2
}
.steps-grid__desc {
font-size:0.85rem;
font-weight:300;
color:var(--colour-subtext);
line-height:1.75
}
.post__crisis {
display:flex;
align-items:flex-start;
gap:0.8rem;
max-width:720px;
margin:2rem auto 0;
padding:1.2rem 1.5rem;
background:rgba(143,169,140,0.1);
border:1px solid rgba(143,169,140,0.3);
border-radius:var(--radius-md);
font-size:0.87rem;
font-weight:300;
color:var(--colour-subtext);
line-height:1.7
}
.post__crisis svg {
flex-shrink:0;
margin-top:0.15rem;
stroke:var(--colour-sage)
}
.post__crisis a {
color:var(--colour-brown);
text-decoration:underline;
text-underline-offset:2px
}
.team-grid {
display:grid;
grid-template-columns:repeat(3,1fr);
gap:var(--space-lg);
max-width:1000px;
margin:0 auto
}
.team-card {
background:var(--colour-white);
border:var(--border-subtle);
border-radius:var(--radius-md);
overflow:hidden;
transition:transform var(--transition-slow),box-shadow var(--transition-slow)
}
.team-card:hover {
box-shadow:0 24px 60px rgba(120,53,32,0.15)
}
@media (hover:hover) {
.team-card:hover {
transform:translateY(-8px)
}

}
.team-card__avatar {
width:100%;
height:200px;
display:flex;
align-items:center;
justify-content:center;
font-size:4rem;
background:linear-gradient( 135deg,var(--colour-warm-off) 0%,rgba(143,169,140,0.2) 100% )
}
.team-card__body {
padding:1.5rem 1.6rem
}
.team-card__name {
font-family:var(--font-display);
font-size:1.35rem;
font-weight:500;
color:var(--colour-brown)
}
.team-card__role {
font-size:0.72rem;
letter-spacing:0.15em;
text-transform:uppercase;
color:var(--colour-taupe);
margin:0.3rem 0 0.8rem
}
.team-card__bio {
font-size:0.83rem;
font-weight:300;
color:var(--colour-subtext);
line-height:1.7
}
.team-card__photo-wrap {
overflow:hidden;
width:100%
}
.team-card__photo {
width:100%;
height:auto;
object-fit:cover;
display:block;
transition:transform 0.5s ease
}
@media (hover:hover) {
.team-card:hover .team-card__photo {
transform:scale(1.06)
}

}
.team-card__specialisms {
display:flex;
flex-wrap:wrap;
gap:0.4rem;
margin-top:0.9rem
}
.team-card__specialism {
font-size:0.68rem;
letter-spacing:0.1em;
text-transform:uppercase;
color:var(--colour-taupe);
background:var(--colour-warm-off);
border:1px solid rgba(180,120,80,0.22);
border-radius:var(--radius-pill);
padding:0.25rem 0.7rem
}
.team-card__links {
display:flex;
flex-wrap:wrap;
gap:0.5rem;
margin-top:1.1rem
}
.team-card__link {
display:inline-flex;
align-items:center;
gap:0.35rem;
font-size:0.75rem;
font-weight:400;
letter-spacing:0.06em;
text-decoration:none;
padding:0.4rem 0.9rem;
border-radius:var(--radius-pill);
border:1.5px solid transparent;
transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)
}
.team-card__link:hover,.team-card__link:focus-visible {
transform:translateY(-1px)
}
.team-card__link--website {
color:var(--colour-sage);
border-color:var(--colour-sage-light)
}
.team-card__link--website:hover,.team-card__link--website:focus-visible {
background:rgba(143,169,140,0.1);
border-color:var(--colour-sage)
}
.team-card__link--booking {
background:var(--colour-brown);
color:var(--colour-cream);
border-color:var(--colour-brown)
}
.team-card__link--booking:hover,.team-card__link--booking:focus-visible {
background:var(--colour-taupe);
border-color:var(--colour-taupe)
}
.team-card__link--email {
color:var(--colour-taupe);
border-color:rgba(180,120,80,0.32)
}
.team-card__link--email:hover,.team-card__link--email:focus-visible {
background:var(--colour-warm-off);
border-color:var(--colour-taupe)
}
.team-card__name-link {
color:inherit;
text-decoration:none;
transition:color var(--transition-fast)
}
.team-card__name-link:hover,.team-card__name-link:focus-visible {
color:var(--colour-taupe)
}
.team-card__profile-link {
display:inline-flex;
align-items:center;
gap:0.4rem;
margin-top:1.1rem;
font-size:0.75rem;
letter-spacing:0.1em;
text-transform:uppercase;
color:var(--colour-taupe);
text-decoration:none;
transition:color var(--transition-fast),gap var(--transition-fast)
}
.team-card__profile-link:hover,.team-card__profile-link:focus-visible {
color:var(--colour-brown);
gap:0.65rem
}
.testimonials-grid {
display:grid;
grid-template-columns:repeat(3,1fr);
gap:var(--space-lg);
max-width:1000px;
margin:3rem auto 0
}
.testimonial-card {
background:#fff;
border:1px solid rgba(180,120,80,0.18);
border-radius:var(--radius-md);
padding:2rem;
box-shadow:0 4px 20px rgba(120,53,32,0.06)
}
.testimonial-card__stars {
color:var(--colour-sage);
font-size:0.85rem;
letter-spacing:0.1em;
margin-bottom:var(--space-md)
}
.testimonial-card__quote {
font-family:var(--font-display);
font-size:1.1rem;
font-weight:400;
font-style:italic;
color:var(--colour-text);
line-height:1.7;
margin-bottom:1.4rem
}
.testimonial-card__author {
display:flex;
align-items:center;
gap:0.8rem
}
.testimonial-card__avatar {
width:36px;
height:36px;
background:var(--colour-warm-off);
border-radius:50%;
display:flex;
align-items:center;
justify-content:center;
font-size:0.85rem;
color:var(--colour-taupe);
flex-shrink:0
}
.testimonial-card__name {
font-size:0.82rem;
font-weight:400;
color:var(--colour-brown)
}
.testimonial-card__detail {
font-size:0.72rem;
color:var(--colour-subtext)
}
.section.booking {
padding-top:2rem;
scroll-margin-top:130px;
background:var(--colour-warm-off)
}
.booking__inner {
max-width:820px;
margin:0 auto;
text-align:center
}
.booking__desc {
font-size:1rem;
font-weight:300;
color:var(--colour-subtext);
line-height:1.8;
margin:1.4rem auto 2.5rem;
max-width:540px
}
.booking-form {
background:transparent;
border:none;
border-radius:0;
padding:2rem 0 0;
text-align:left;
box-shadow:none;
max-width:680px;
margin:0 auto
}
.counsellor-picker {
margin-bottom:2.2rem;
padding-bottom:2.2rem;
border-bottom:1px solid rgba(180,120,80,0.14)
}
.picker-header {
display:flex;
align-items:center;
justify-content:flex-start;
margin-bottom:1.2rem
}
.counsellor-picker__label {
font-size:0.72rem;
letter-spacing:0.1em;
text-transform:uppercase;
color:var(--colour-taupe);
margin-bottom:0
}
.picker-arrows {
display:none
}
.picker-arrow {
width:36px;
height:36px;
border-radius:50%;
background:var(--colour-warm-off);
border:1.5px solid rgba(180,120,80,0.28);
cursor:pointer;
display:flex;
align-items:center;
justify-content:center;
color:var(--colour-brown);
transition:background 0.2s,border-color 0.2s,transform 0.15s;
flex-shrink:0
}
.picker-arrow:hover {
background:var(--colour-sand);
border-color:var(--colour-sand);
color:#fff;
transform:scale(1.08)
}
.counsellor-picker__grid {
display:flex;
flex-wrap:wrap;
gap:1rem;
list-style:none;
padding:0.25rem 0 0.75rem;
margin:0
}
.counsellor-picker__grid li {
flex-shrink:0
}
.counsellor-picker__grid li.picker-clone {
display:none
}
@media (max-width:860px) {
.counsellor-picker__grid {
flex-wrap:nowrap;
overflow-x:auto;
scrollbar-width:none;
-webkit-overflow-scrolling:touch;
scroll-snap-type:x mandatory
}
.counsellor-picker__grid::-webkit-scrollbar {
display:none
}
.counsellor-picker__grid li {
scroll-snap-align:start
}
.counsellor-picker__grid li.picker-clone {
display:block
}
.picker-arrows {
display:flex;
justify-content:center;
gap:1rem;
margin-top:0.8rem
}

}
.picker-card {
display:flex;
flex-direction:column;
align-items:center;
gap:0.5rem;
background:var(--colour-cream);
border:2px solid transparent;
border-radius:var(--radius-md);
padding:1rem 0.9rem 0.8rem;
cursor:pointer;
transition:border-color var(--transition-fast),background var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast);
width:148px;
font-family:var(--font-body)
}
.picker-card:hover {
border-color:var(--colour-sand);
background:var(--colour-warm-off);
transform:translateY(-2px);
box-shadow:0 6px 20px rgba(120,53,32,0.1)
}
.picker-card--selected {
border-color:var(--colour-brown) !important;
background:rgba(120,53,32,0.05) !important;
box-shadow:0 6px 20px rgba(120,53,32,0.12)
}
.picker-card__photo {
width:130px;
height:130px;
border-radius:0.5rem;
object-fit:cover;
display:block
}
.picker-card__avatar {
width:130px;
height:130px;
border-radius:0.5rem;
background:var(--colour-warm-off);
display:flex;
align-items:center;
justify-content:center;
font-size:3rem
}
.picker-card__name {
font-size:0.78rem;
font-weight:400;
color:var(--colour-brown);
text-align:center;
line-height:1.3
}
.form-grid {
display:grid;
grid-template-columns:1fr 1fr;
gap:1rem 1.5rem
}
.form-field {
display:flex;
flex-direction:column;
gap:0.4rem;
position:relative
}
.form-field--full {
grid-column:1 / -1
}
.form-field label {
font-size:0.68rem;
letter-spacing:0.12em;
text-transform:uppercase;
color:var(--colour-taupe);
margin-bottom:0.5rem;
transition:color var(--transition-fast)
}
.form-field:focus-within label {
color:var(--colour-brown)
}
.form-field input,.form-field select,.form-field textarea {
font-family:var(--font-body);
font-size:0.95rem;
font-weight:300;
color:var(--colour-text);
background:#fff;
border:1.5px solid rgba(180,120,80,0.28);
border-radius:0.5rem;
padding:0.75rem 1rem;
outline:none;
transition:border-color var(--transition-fast),box-shadow var(--transition-fast);
width:100%;
-webkit-appearance:none;
appearance:none
}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus {
border-color:var(--colour-brown);
box-shadow:0 0 0 3px rgba(120,53,32,0.07)
}
.form-field input::placeholder,.form-field textarea::placeholder {
color:rgba(122,106,90,0.45)
}
.form-field textarea {
resize:vertical;
min-height:90px
}
.form-field::after {
display:none
}
.form-submit {
margin-top:2rem;
width:100%;
background:var(--colour-forest);
color:#fff;
border:none;
cursor:pointer;
padding:1.1rem 2rem;
border-radius:var(--radius-pill);
font-family:var(--font-body);
font-size:0.85rem;
font-weight:400;
letter-spacing:0.12em;
text-transform:uppercase;
transition:background var(--transition-normal),transform var(--transition-fast)
}
.form-submit:hover,.form-submit:focus-visible {
background:var(--colour-sage);
transform:translateY(-2px)
}
.form-note {
text-align:center;
margin-top:var(--space-md);
font-size:0.75rem;
font-weight:300;
color:var(--colour-subtext)
}
.btn {
display:inline-flex;
align-items:center;
gap:0.5rem;
padding:0.85rem 2rem;
border-radius:var(--radius-pill);
font-size:0.82rem;
letter-spacing:0.08em;
text-decoration:none;
transition:background var(--transition-normal),border-color var(--transition-normal),transform var(--transition-fast);
cursor:pointer
}
.btn:hover,.btn:focus-visible {
transform:translateY(-2px)
}
.btn--primary {
background:var(--colour-forest);
color:#fff;
border:none
}
.btn--primary:hover,.btn--primary:focus-visible {
background:var(--colour-sage)
}
.btn--outline {
background:transparent;
color:var(--colour-brown);
border:1.5px solid var(--colour-sand)
}
.btn--outline:hover,.btn--outline:focus-visible {
border-color:var(--colour-taupe)
}
.footer {
background:var(--colour-warm-off);
color:var(--colour-brown);
border-top:2px solid rgba(180,120,80,0.50);
padding:4rem 3rem 2rem
}
.footer__inner {
align-items:flex-start;
max-width:1100px;
margin:0 auto;
display:grid;
grid-template-columns:2fr 1fr 1fr 1.5fr;
gap:3rem
}

.footer__inner img{opacity:0.85;transition:opacity 0.2s}
.footer__inner a:hover img{opacity:1}
.footer__brand-name {
font-family:var(--font-display);
font-size:1.5rem;
font-weight:400;
color:var(--colour-brown);
margin-bottom:0.3rem
}
.footer__brand-region {
font-size:0.68rem;
letter-spacing:0.2em;
text-transform:uppercase;
color:var(--colour-taupe);
margin-bottom:var(--space-md)
}
.footer__tagline {
font-size:0.85rem;
font-weight:300;
color:var(--colour-subtext);
line-height:1.7
}
.footer__col-title {
font-size:0.72rem;
letter-spacing:0.15em;
text-transform:uppercase;
color:var(--colour-taupe);
margin-bottom:var(--space-md)
}
.footer__col ul {
display:flex;
flex-direction:column;
gap:0.5rem
}
.footer__col ul a {
font-size:0.85rem;
font-weight:300;
color:var(--colour-brown);
text-decoration:none;
transition:color var(--transition-fast)
}
.footer__col ul a:hover,.footer__col ul a:focus-visible {
color:var(--colour-taupe)
}
.footer__contact-item {
display:flex;
gap:0.6rem;
align-items:center;
font-size:0.85rem;
font-weight:300;
color:var(--colour-subtext);
margin-bottom:0.5rem
}
.footer__contact-item svg {
flex-shrink:0
}
.footer__bottom {
max-width:1100px;
margin:3rem auto 0;
padding-top:1.5rem;
border-top:1px solid rgba(180,120,80,0.22);
display:flex;
justify-content:space-between;
align-items:center;
flex-wrap:wrap;
gap:var(--space-md)
}
.footer__copy {
font-size:0.75rem;
color:var(--colour-taupe)
}
.footer__legal {
display:flex;
gap:1.5rem
}
.footer__legal a {
font-size:0.75rem;
color:#d4c4ab;
text-decoration:none;
transition:color var(--transition-fast)
}
.footer__legal a:hover,.footer__legal a:focus-visible {
color:var(--colour-cream)
}
.reveal {
opacity:0;
transform:translateY(24px);
transition:opacity 0.7s ease,transform 0.7s ease
}
.reveal.is-visible {
opacity:1;
transform:translateY(0)
}
@keyframes fade-down {
from {
opacity:0;
transform:translateY(-20px)
}
to {
opacity:1;
transform:translateY(0)
}

}
@keyframes fade-up {
from {
opacity:0;
transform:translateY(30px)
}
to {
opacity:1;
transform:translateY(0)
}

}
@keyframes float {
0%,100% {
transform:translateY(0)
}
50% {
transform:translateY(-14px)
}

}

.nav__portrait {
display:none
}
.nav__sidebar-name {
display:none
}
.nav__sidebar-role {
display:none
}
.nav__links .nav__divider {
display:none
}

@media (min-width:1024px) {
.nav {
position:fixed;
top:0;
left:0;
bottom:0;
right:auto;
width:220px;
flex-direction:column;
align-items:flex-start;
justify-content:flex-start;
padding:2rem 1.4rem 1.8rem;
background:#2a2e35;
backdrop-filter:none;
-webkit-backdrop-filter:none;
border-bottom:none;
border-right:none;
animation:none;
overflow-y:auto
}
.nav__logo {
flex-direction:column;
align-items:flex-start;
gap:0;
margin-bottom:0;
width:100%
}
.nav__logo-img {
display:none
}
.nav__portrait {
display:block;
width:72px;
height:72px;
border:2px solid rgba(255,255,255,0.25);
margin-left:0;
margin-top:0;
margin-bottom:0.9rem
}
.nav__sidebar-name {
display:block;
font-family:var(--font-display);
font-size:1.15rem;
font-weight:400;
color:#fff;
line-height:1.2;
margin-bottom:0.3rem
}
.nav__sidebar-role {
display:block;
font-size:0.68rem;
letter-spacing:0.04em;
color:rgba(255,255,255,0.45);
line-height:1.6;
margin-bottom:1.6rem
}
.nav__links {
flex-direction:column;
gap:0;
width:100%;
flex:1
}
.nav__links a {
display:block;
font-size:0.73rem;
letter-spacing:0.05em;
color:rgba(255,255,255,0.5);
padding:0.5rem 0.6rem;
border-left:2px solid transparent;
border-radius:0;
transition:color 0.2s,border-color 0.2s,background 0.2s;
width:100%
}
.nav__links a:hover,.nav__links a:focus-visible {
color:rgba(255,255,255,0.9);
background:rgba(255,255,255,0.06);
border-left-color:rgba(255,255,255,0.2)
}
.nav__links a.nav__active {
color:#fff;
border-left-color:rgba(196,114,74,0.9)
}
.nav__links .nav__divider {
display:block;
height:1px;
background:rgba(255,255,255,0.1);
margin:0.4rem 0;
pointer-events:none
}
.nav__cta {
display:block;
background:rgba(196,114,74,0.85) !important;
color:#fff !important;
padding:0.65rem 0.8rem !important;
border-radius:6px !important;
text-align:center;
margin-top:auto;
width:100%;
letter-spacing:0.05em;
font-size:0.73rem
}
.nav__cta:hover,.nav__cta:focus-visible {
background:rgba(196,114,74,1) !important
}
.nav__toggle {
display:none !important
}
body {
padding-left:220px
}
.hero--fullbleed {
padding:9rem 4rem 5rem;
display:block;
text-align:center
}
.hero__content--centered {
display:block;
width:100%;
max-width:900px;
margin:0 auto;
text-align:center
}
.hero--fullbleed .hero__title--light {
font-size:clamp(3rem,5vw,5.2rem);
text-align:center
}
.hero--fullbleed .hero__subtitle--light {
font-size:1.25rem;
line-height:1.9;
max-width:820px;
margin-left:auto;
margin-right:auto;
text-align:center
}
.section__inner,.section > .section__inner {
max-width:1400px
}
.blog-grid {
max-width:1300px;
margin-left:auto;
margin-right:auto
}
.guides-listing {
max-width:1400px
}
}
@media (max-width:960px) {
.nav {
padding:1rem 1.5rem
}
.nav__links {
display:none
}
.nav__links--open {
display:flex !important;
flex-direction:column;
position:fixed;
top:72px;
z-index:200;
left:0;
right:0;
background:rgba(247,244,239,0.98);
backdrop-filter:blur(12px);
border-bottom:1px solid rgba(180,120,80,0.18);
padding:1.2rem 1.5rem 1.8rem;
gap:0.2rem;
box-shadow:0 8px 30px rgba(120,53,32,0.1);
z-index:99
}
.nav__links--open a {
font-size:0.9rem;
padding:0.6rem 0;
border-bottom:1px solid rgba(180,120,80,0.12)
}
.nav__links--open .nav__cta {
margin-top:0.6rem;
text-align:center;
border-bottom:none;
background:none !important;
color:var(--colour-brown) !important;
border:none !important;
padding:0.6rem 0;
border-radius:0;
font-weight:500
}
.nav__toggle {
display:flex;
align-items:center;
justify-content:center
}
.hero {
grid-template-columns:1fr;
text-align:center
}
.hero__content {
max-width:100%
}
.hero__subtitle {
margin:0 auto 2.5rem
}
.hero__actions {
justify-content:center
}
.hero--fullbleed {
padding:14rem 1.5rem 4rem;
align-items:flex-start
}
.steps-grid {
grid-template-columns:1fr 1fr;
gap:2.5rem 0
}
.steps-grid::before {
display:none
}
.steps-grid__item {
padding:0 1.2rem
}
.approach__inner {
grid-template-columns:1fr
}
.approach__illustration {
display:none
}
.services-grid,.testimonials-grid {
grid-template-columns:1fr;
max-width:480px
}
.team-grid {
grid-template-columns:1fr;
max-width:480px
}
.footer__inner {
align-items:flex-start;
grid-template-columns:1fr 1fr
}
.form-grid {
grid-template-columns:1fr
}

}
@media (max-width:600px) {
.section {
padding:5rem 1.5rem
}
.steps-grid {
grid-template-columns:1fr
}
.hero {
padding:6rem 1.5rem 3rem
}
.hero--fullbleed {
padding:14rem 1.5rem 4rem;
align-items:flex-start
}
.stats-band {
padding:1.5rem
}
.crisis-banner {
display:flex;
align-items:center;
justify-content:space-between;
gap:1.5rem;
background:rgba(120,53,32,0.06);
border:1.5px solid rgba(180,120,80,0.32);
border-radius:0.8rem;
padding:1.2rem 1.8rem;
margin-bottom:2rem;
flex-wrap:wrap
}
.crisis-banner__text {
font-size:0.92rem;
font-weight:300;
color:var(--colour-text);
line-height:1.7
}
.crisis-banner__text strong {
display:block;
font-weight:400;
font-size:0.95rem;
color:var(--colour-brown);
margin-bottom:0.2rem
}
.crisis-banner__link {
flex-shrink:0;
font-size:0.78rem;
font-weight:400;
letter-spacing:0.08em;
text-transform:uppercase;
color:var(--colour-cream);
background:var(--colour-brown);
padding:0.65rem 1.4rem;
border-radius:3rem;
text-decoration:none;
white-space:nowrap;
transition:background 0.25s
}
.crisis-banner__link:hover {
background:var(--colour-taupe)
}
.booking {
padding:5rem 1.5rem
}
.footer {
padding:3rem 1.5rem 2rem
}
.footer__inner {
align-items:flex-start;
grid-template-columns:1fr;
gap:2rem
}
.footer__bottom {
flex-direction:column;
text-align:center
}
.footer__legal {
flex-wrap:wrap;
justify-content:center
}

}
.skip-link {
position:absolute;
top:-100%;
left:1rem;
background:var(--colour-brown);
color:var(--colour-cream);
padding:0.5rem 1rem;
border-radius:0 0 var(--radius-sm) var(--radius-sm);
font-size:0.85rem;
text-decoration:none;
z-index:200;
transition:top var(--transition-fast)
}
.skip-link:focus {
top:0
}
:focus-visible {
outline:2px solid var(--colour-taupe);
outline-offset:3px
}
.blog-hero {
min-height:55vh;
display:flex;
align-items:center;
justify-content:center;
text-align:center;
position:relative;
overflow:hidden;
padding:8rem 2rem 4rem
}
.blog-hero__bg {
position:absolute;
inset:0;
background-image:url('../img/hero-bg.webp');
background-size:cover;
background-position:center 40%;
transform:scale(1.04);
animation:blog-zoom 18s ease-out forwards
}
@keyframes blog-zoom {
from {
transform:scale(1.04)
}
to {
transform:scale(1.0)
}

}
.blog-hero__overlay {
position:absolute;
inset:0;
background:linear-gradient(to bottom,transparent 0%,transparent 40%,rgba(40,16,6,0.65) 100%),radial-gradient(ellipse at center,rgba(40,16,6,0.58) 0%,rgba(40,16,6,0.30) 40%,transparent 70%)
}
.blog-hero__inner {
position:relative;
z-index:2;
max-width:680px;
margin:0 auto
}
.blog-hero .section__eyebrow {
color:rgba(255,255,255,0.85);
text-shadow:0 1px 6px rgba(0,0,0,0.5);
opacity:0;
animation:blog-fade 0.8s 0.3s ease forwards;
justify-content:center;
margin-bottom:1rem
}
.blog-hero .section__eyebrow::before,.blog-hero .section__eyebrow::after {
background:rgba(201,185,154,0.5)
}
.blog-hero__title {
font-family:var(--font-display);
font-size:clamp(2.8rem,6vw,4.5rem);
font-weight:300;
color:#fff;
line-height:1.1;
margin-bottom:1rem;
text-shadow:0 2px 12px rgba(0,0,0,0.75),0 4px 32px rgba(0,0,0,0.55);
opacity:0;
animation:blog-fade 0.9s 0.6s ease forwards
}
.blog-hero__title em {
font-style:italic;
color:#f5e8cc
}
.blog-hero__desc {
font-size:1rem;
font-weight:300;
color:rgba(255,255,255,0.88);
text-shadow:0 1px 8px rgba(0,0,0,0.5);
max-width:500px;
margin:0 auto;
line-height:1.8;
opacity:0;
animation:blog-fade 0.9s 0.9s ease forwards
}
@keyframes blog-fade {
from {
opacity:0;
transform:translateY(18px)
}
to {
opacity:1;
transform:translateY(0)
}

}
.blog-listing {
padding-top:4rem
}
.blog-grid {
display:grid;
grid-template-columns:repeat(3,1fr);
gap:1.8rem;
max-width:1100px;
margin:0 auto;
list-style:none;
padding:0
}
.blog-card {
background:var(--colour-white);
border:var(--border-subtle);
border-radius:var(--radius-md);
overflow:hidden;
transition:transform var(--transition-slow),box-shadow var(--transition-slow)
}
.blog-card:hover {
transform:translateY(-5px);
box-shadow:0 16px 50px rgba(120,53,32,0.12)
}
.blog-card__link {
text-decoration:none;
color:inherit;
display:flex;
flex-direction:column;
height:100%
}
.blog-card__tab {
width:100%;
min-height:130px;
flex-shrink:0;
display:flex;
align-items:flex-end;
padding:1.4rem 1.6rem 1.2rem
}
.blog-card__title {
font-family:var(--font-display);
font-size:1.35rem;
font-weight:500;
color:var(--colour-brown);
line-height:1.3;
text-shadow:none;
margin:0;
display:-webkit-box;
-webkit-line-clamp:3;
-webkit-box-orient:vertical;
overflow:hidden
}
.blog-card__body {
padding:0.9rem 1.6rem 1.4rem;
display:flex;
flex-direction:column;
flex:1
}
.blog-card__pills {
display:flex;
flex-wrap:wrap;
gap:0.4rem;
margin-bottom:0.9rem
}
.blog-card__tag {
font-size:0.65rem;
letter-spacing:0.1em;
text-transform:uppercase;
color:var(--colour-taupe);
background:var(--colour-warm-off);
border-radius:2rem;
padding:0.2rem 0.65rem;
white-space:nowrap
}
.blog-card__excerpt {
font-size:0.85rem;
font-weight:300;
color:var(--colour-subtext);
line-height:1.75;
flex:1;
margin-bottom:1.4rem
}
.blog-card__footer {
display:flex;
align-items:center;
justify-content:space-between;
padding-top:1.2rem;
border-top:1px solid rgba(180,120,80,0.12);
margin-top:auto
}
.blog-card__author {
display:flex;
align-items:center;
gap:0.6rem
}
.blog-card__author-photo,.blog-card__author-emoji {
width:36px;
height:36px;
border-radius:50%;
object-fit:cover;
flex-shrink:0
}
.blog-card__author-emoji {
background:var(--colour-warm-off);
display:flex;
align-items:center;
justify-content:center;
font-size:1rem
}
.blog-card__author-name {
display:block;
font-size:0.78rem;
font-weight:400;
color:var(--colour-brown);
line-height:1.2
}
.blog-card__date {
display:block;
font-size:0.7rem;
color:var(--colour-subtext);
font-weight:300
}
.blog-card__read-more {
display:flex;
align-items:center;
gap:0.3rem;
font-size:0.72rem;
letter-spacing:0.1em;
text-transform:uppercase;
color:var(--colour-taupe);
transition:gap var(--transition-fast),color var(--transition-fast)
}
.blog-card:hover .blog-card__read-more {
gap:0.5rem;
color:var(--colour-brown)
}
.post-back {
padding:6rem 3rem 0;
max-width:860px;
margin:0 auto
}
.post {
max-width:860px;
margin:0 auto;
padding:2rem 3rem 6rem
}
.post__header {
margin-bottom:3rem
}
.post__tags {
display:flex;
flex-wrap:wrap;
gap:0.4rem;
list-style:none;
padding:0;
margin:0 0 1.2rem
}
.post__tag {
font-size:0.68rem;
letter-spacing:0.1em;
text-transform:uppercase;
color:var(--colour-taupe);
background:var(--colour-warm-off);
border-radius:2rem;
padding:0.25rem 0.7rem
}
.post__title {
font-family:var(--font-display);
font-size:clamp(2rem,4vw,3.2rem);
font-weight:400;
color:var(--colour-brown);
line-height:1.15;
margin-bottom:1.8rem
}
.post__meta {
display:flex;
align-items:center;
justify-content:space-between;
flex-wrap:wrap;
gap:1rem;
padding-bottom:2rem;
border-bottom:1px solid rgba(180,120,80,0.18)
}
.post__author {
display:flex;
align-items:center;
gap:0.75rem
}
.post__author-photo,.post__author-emoji {
width:48px;
height:48px;
border-radius:50%;
object-fit:cover;
flex-shrink:0
}
.post__author-emoji {
background:var(--colour-warm-off);
display:flex;
align-items:center;
justify-content:center;
font-size:1.4rem
}
.post__author-name {
display:block;
font-size:0.88rem;
font-weight:400;
color:var(--colour-brown)
}
.post__author-role {
display:block;
font-size:0.75rem;
color:var(--colour-subtext);
font-weight:300
}
.post__date {
font-size:0.78rem;
color:var(--colour-subtext);
font-weight:300
}
.post__image-wrap {
margin:0 0 3rem;
border-radius:var(--radius-md);
overflow:hidden
}
.post__image {
width:100%;
height:auto;
display:block
}
.post__body p {
font-size:1.05rem;
font-weight:300;
line-height:1.9;
color:var(--colour-text);
margin-bottom:1.6rem
}
.post__body p:last-child {
margin-bottom:0
}
.post__body strong {
font-weight:500;
color:var(--colour-brown)
}
.post__author-card {
margin:4rem 0;
background:var(--colour-warm-off);
border:var(--border-subtle);
border-radius:var(--radius-md);
padding:2rem
}
.author-card__eyebrow {
font-size:0.68rem;
letter-spacing:0.18em;
text-transform:uppercase;
color:var(--colour-taupe);
margin-bottom:1.2rem
}
.author-card__inner {
display:flex;
gap:1.4rem;
align-items:flex-start
}
.author-card__photo,.author-card__emoji {
width:80px;
height:80px;
border-radius:50%;
object-fit:cover;
flex-shrink:0
}
.author-card__emoji {
background:var(--colour-white);
display:flex;
align-items:center;
justify-content:center;
font-size:2rem
}
.author-card__name {
font-family:var(--font-display);
font-size:1.2rem;
font-weight:500;
color:var(--colour-brown);
margin-bottom:0.2rem
}
.author-card__role {
font-size:0.72rem;
letter-spacing:0.1em;
text-transform:uppercase;
color:var(--colour-taupe);
margin-bottom:0.7rem
}
.author-card__bio {
font-size:0.87rem;
font-weight:300;
color:var(--colour-subtext);
line-height:1.75;
margin-bottom:0.8rem
}
.author-card__link {
display:inline-flex;
align-items:center;
gap:0.4rem;
font-size:0.72rem;
letter-spacing:0.1em;
text-transform:uppercase;
color:var(--colour-taupe);
text-decoration:none;
transition:color var(--transition-fast),gap var(--transition-fast)
}
.author-card__link:hover {
color:var(--colour-brown);
gap:0.6rem
}
.post__cta {
text-align:center;
padding:3rem 2rem;
background:var(--colour-warm-off);
border-radius:var(--radius-md);
border:var(--border-subtle)
}
.post__cta-text {
font-family:var(--font-display);
font-size:1.4rem;
font-weight:400;
color:var(--colour-brown);
margin-bottom:1.2rem
}
@media (max-width:960px) {
.blog-grid {
grid-template-columns:1fr 1fr
}

}
@media (max-width:600px) {
.blog-grid {
grid-template-columns:1fr
}
.post {
padding:1.5rem 1.5rem 4rem
}
.post-back {
padding:5.5rem 1.5rem 0
}
.blog-hero {
padding:10rem 1.5rem 3rem
}

}
.profile-back {
padding:6rem 3rem 0;
max-width:1100px;
margin:0 auto
}
.profile-back__link {
display:inline-flex;
align-items:center;
gap:0.5rem;
font-size:0.78rem;
letter-spacing:0.1em;
text-transform:uppercase;
color:var(--colour-taupe);
text-decoration:none;
transition:color var(--transition-fast),gap var(--transition-fast)
}
.profile-back__link:hover {
color:var(--colour-brown);
gap:0.7rem
}
.profile-hero {
padding:3rem 3rem 6rem
}
.profile-hero__inner {
max-width:1100px;
margin:0 auto;
display:grid;
grid-template-columns:420px 1fr;
gap:5rem;
align-items:start
}
.profile-hero__photo-wrap {
position:relative
}
.profile-hero__photo-wrap::before {
content:'';
position:absolute;
inset:-16px -16px 16px 16px;
border-radius:var(--radius-md);
border:1.5px solid rgba(180,120,80,0.22);
z-index:0
}
.profile-hero__photo {
width:100%;
height:auto;
border-radius:var(--radius-md);
display:block;
position:relative;
z-index:1;
box-shadow:0 20px 60px rgba(120,53,32,0.14);
object-fit:cover;
aspect-ratio:3 / 4
}
.profile-hero__emoji {
width:100%;
aspect-ratio:3 / 4;
background:var(--colour-warm-off);
border-radius:var(--radius-md);
display:flex;
align-items:center;
justify-content:center;
font-size:6rem;
position:relative;
z-index:1
}
.profile-hero__content {
padding-top:1rem
}
.profile-hero__name {
font-family:var(--font-display);
font-size:clamp(2.5rem,4vw,3.8rem);
font-weight:400;
color:var(--colour-brown);
line-height:1.1;
margin:0.5rem 0 1.5rem
}
.profile-specialisms {
display:flex;
flex-wrap:wrap;
gap:0.5rem;
list-style:none;
margin:0 0 2rem;
padding:0
}
.profile-specialism {
font-size:0.75rem;
letter-spacing:0.1em;
text-transform:uppercase;
color:var(--colour-taupe);
background:var(--colour-warm-off);
border:1px solid rgba(180,120,80,0.22);
border-radius:2rem;
padding:0.35rem 0.9rem
}
.profile-bio {
margin-bottom:2.5rem
}
.profile-bio p {
font-size:1rem;
font-weight:300;
color:var(--colour-subtext);
line-height:1.85;
margin-bottom:1.1rem
}
.profile-bio p:last-child {
margin-bottom:0
}
.profile-hero__actions {
display:flex;
flex-wrap:wrap;
gap:0.8rem
}
.profile-contact {
background:var(--colour-warm-off);
padding:7rem 3rem;
border-top:1px solid rgba(180,120,80,0.18)
}
.profile-contact__inner {
max-width:820px;
margin:0 auto
}
.profile-contact__intro {
text-align:center;
margin-bottom:3rem
}
.profile-contact__intro .section__eyebrow {
justify-content:center
}
.profile-contact__desc {
font-size:1rem;
font-weight:300;
color:var(--colour-subtext);
line-height:1.8;
margin:1.2rem auto 0;
max-width:500px
}
@media (max-width:960px) {
.profile-hero__inner {
grid-template-columns:1fr;
gap:2.5rem
}
.profile-hero__photo-wrap {
max-width:360px;
margin:0 auto
}
.profile-hero__photo-wrap::before {
display:none
}
.profile-hero {
padding:2rem 1.5rem 4rem
}
.profile-back {
padding:5.5rem 1.5rem 0
}

}
@media (max-width:600px) {
.profile-hero__name {
font-size:2.4rem
}
.profile-contact {
padding:5rem 1.5rem
}

}
.post__subheading {
font-family:var(--font-display);
font-size:1.6rem;
font-weight:500;
color:var(--colour-brown);
line-height:1.25;
margin:2.5rem 0 0.8rem
}
.post__callout {
margin:2rem 0;
padding:1.4rem 1.8rem;
background:rgba(143,169,140,0.12);
border-left:3px solid var(--colour-sage);
border-radius:0 var(--radius-sm) var(--radius-sm) 0;
font-family:var(--font-display);
font-size:1.1rem;
font-style:italic;
color:var(--colour-brown);
line-height:1.7
}
.post__list {
margin:0 0 1.6rem 0;
padding-left:1.4rem
}
.post__list li {
font-size:1.05rem;
font-weight:300;
color:var(--colour-text);
line-height:1.85;
margin-bottom:0.4rem;
padding-left:0.3rem
}
.post__list li::marker {
color:var(--colour-sage)
}
.services-grid .service-card {
opacity:0;
transform:translateY(28px);
transition:opacity 0.55s ease,transform 0.55s ease,box-shadow var(--transition-slow)
}
.services-grid .service-card.is-visible {
opacity:1;
transform:translateY(0)
}
.services-grid .service-card:nth-child(1) {
transition-delay:0s
}
.services-grid .service-card:nth-child(2) {
transition-delay:0.1s
}
.services-grid .service-card:nth-child(3) {
transition-delay:0.2s
}
.services-grid .service-card:nth-child(4) {
transition-delay:0.3s
}
.services-grid .service-card:nth-child(5) {
transition-delay:0.4s
}
.services-grid .service-card:nth-child(6) {
transition-delay:0.5s
}
.services-grid .service-card.is-visible:hover {
transform:translateY(-6px)
}
.team-grid .team-card {
opacity:0;
transform:translateY(24px);
transition:opacity 0.5s ease,transform 0.5s ease,box-shadow var(--transition-slow)
}
.team-grid .team-card.is-visible {
opacity:1;
transform:translateY(0)
}
.team-grid .team-card:nth-child(1) {
transition-delay:0s
}
.team-grid .team-card:nth-child(2) {
transition-delay:0.12s
}
.team-grid .team-card:nth-child(3) {
transition-delay:0.24s
}
.team-grid .team-card:nth-child(4) {
transition-delay:0.36s
}
.team-grid .team-card:nth-child(5) {
transition-delay:0.48s
}
.team-grid .team-card:nth-child(6) {
transition-delay:0.6s
}
.team-grid .team-card:nth-child(7) {
transition-delay:0.72s
}
@media (hover:hover) {
.team-grid .team-card.is-visible:hover {
transform:translateY(-8px)
}

}
.back-to-top {
position:fixed;
bottom:2rem;
right:13rem;
z-index:90;
width:46px;
height:46px;
background:var(--colour-forest);
color:var(--colour-cream);
border:none;
border-radius:50%;
cursor:pointer;
display:flex;
align-items:center;
justify-content:center;
box-shadow:0 4px 20px rgba(120,53,32,0.3);
opacity:0;
transform:translateY(12px);
transition:opacity 0.3s ease,transform 0.3s ease,background 0.2s ease;
pointer-events:none
}
.back-to-top.is-visible {
opacity:1;
transform:translateY(0);
pointer-events:auto
}
.back-to-top:hover {
background:var(--colour-taupe);
transform:translateY(-2px)
}
.back-to-top svg {
width:18px;
height:18px
}
.blog-card__read-time {
font-size:0.7rem;
letter-spacing:0.08em;
color:var(--colour-taupe);
background:var(--colour-warm-off);
padding:0.2rem 0.6rem;
border-radius:2rem;
white-space:nowrap
}
.meet-team-strip {
background:var(--colour-warm-off);
border-top:1px solid rgba(180,120,80,0.18);
padding:5rem 2rem;
text-align:center
}
.meet-team-strip__inner {
max-width:1000px;
margin:0 auto
}
.meet-team-strip__title {
font-family:var(--font-display);
font-size:clamp(1.8rem,3.5vw,2.4rem);
font-weight:400;
color:var(--colour-brown);
margin-bottom:3rem;
line-height:1.15
}
.meet-team-strip__title em {
font-style:italic;
color:var(--colour-taupe)
}
.meet-team-strip__grid {
display:flex;
flex-wrap:wrap;
justify-content:center;
gap:1.5rem;
list-style:none;
padding:0;
margin:0 0 2rem
}
.meet-team-strip__link {
font-size:0.78rem;
letter-spacing:0.1em;
text-transform:uppercase;
color:var(--colour-taupe);
text-decoration:none;
transition:color 0.2s
}
.meet-team-strip__link:hover {
color:var(--colour-brown)
}
.meet-card__link {
display:flex;
flex-direction:column;
align-items:center;
gap:0.6rem;
text-decoration:none;
color:inherit
}
.meet-card__avatar {
width:140px;
height:140px;
border-radius:50%;
overflow:hidden;
border:2px solid rgba(180,120,80,0.22);
transition:border-color 0.25s,transform 0.25s;
background:var(--colour-cream);
display:flex;
align-items:center;
justify-content:center
}
.meet-card__link:hover .meet-card__avatar {
border-color:var(--colour-taupe);
transform:translateY(-3px)
}
.meet-card__photo {
width:100%;
height:100%;
object-fit:cover;
display:block
}
.meet-card__emoji {
font-size:2rem
}
.meet-card__name {
font-family:var(--font-display);
font-size:0.95rem;
font-weight:500;
color:var(--colour-brown);
line-height:1.2
}
.meet-card__role {
font-size:0.68rem;
letter-spacing:0.1em;
text-transform:uppercase;
color:var(--colour-taupe)
}
.a11y-wrap {
position:fixed;
bottom:1.5rem;
right:1.5rem;
z-index:9999;
display:flex;
flex-direction:column;
align-items:flex-end;
gap:0.5rem
}
.a11y-btn {
height:44px;
padding:0 1.2rem 0 1rem;
border-radius:3rem;
background:var(--colour-forest);
color:var(--colour-cream);
border:none;
cursor:pointer;
display:flex;
align-items:center;
gap:0.5rem;
box-shadow:0 4px 16px rgba(120,53,32,0.35);
transition:background 0.2s,transform 0.2s;
flex-shrink:0;
font-family:var(--font-body);
font-size:0.8rem;
font-weight:400;
letter-spacing:0.06em;
white-space:nowrap
}
.a11y-btn::after {
content:''
}
@media (max-width:600px) {
.a11y-btn__label {
display:none
}
.a11y-btn {
width:44px;
padding:0;
justify-content:center;
border-radius:50%
}

}
.a11y-btn:hover {
background:var(--colour-sage);
transform:translateY(-2px)
}
.a11y-btn:focus-visible {
outline:3px solid var(--colour-sand);
outline-offset:3px
}
.a11y-btn--open {
background:var(--colour-sage)
}
.a11y-panel {
background:#fff;
border:1px solid rgba(180,120,80,0.22);
border-radius:1rem;
padding:1.2rem 1.4rem 1rem;
box-shadow:0 12px 40px rgba(120,53,32,0.15);
min-width:220px
}
.a11y-panel[hidden] {
display:none
}
.a11y-panel__title {
font-family:var(--font-display);
font-size:1rem;
font-weight:500;
color:var(--colour-brown);
margin-bottom:1rem;
padding-bottom:0.6rem;
border-bottom:1px solid rgba(180,120,80,0.18)
}
.a11y-toggle {
display:flex;
align-items:center;
gap:0.75rem;
width:100%;
background:none;
border:none;
cursor:pointer;
padding:0.5rem 0;
text-align:left;
font-family:var(--font-body)
}
.a11y-toggle__track {
width:36px;
height:20px;
border-radius:10px;
background:rgba(180,120,80,0.28);
position:relative;
flex-shrink:0;
transition:background 0.2s
}
.a11y-toggle__thumb {
position:absolute;
top:3px;
left:3px;
width:14px;
height:14px;
border-radius:50%;
background:#fff;
box-shadow:0 1px 4px rgba(0,0,0,0.2);
transition:transform 0.2s
}
.a11y-toggle--on .a11y-toggle__track {
background:var(--colour-brown)
}
.a11y-toggle--on .a11y-toggle__thumb {
transform:translateX(16px)
}
.a11y-toggle__label {
font-size:0.85rem;
font-weight:400;
color:var(--colour-text)
}
.a11y-reset {
display:block;
width:100%;
margin-top:0.8rem;
padding:0.4rem 0;
background:none;
border:none;
border-top:1px solid rgba(180,120,80,0.18);
font-family:var(--font-body);
font-size:0.72rem;
letter-spacing:0.08em;
text-transform:uppercase;
color:var(--colour-taupe);
cursor:pointer;
text-align:center;
transition:color 0.2s
}
.a11y-reset:hover {
color:var(--colour-brown)
}
html.a11y-large-text {
font-size:20px
}
html.a11y-high-contrast {
--colour-cream:#ffffff;
--colour-warm-off:#f0ece4;
--colour-taupe:#3a2a1e;
--colour-subtext:#1a100a;
--colour-brown:#2c1a0e;
--colour-sand:#5a3e28;
--colour-text:#0d0805
}
html.a11y-high-contrast body {
background:#ffffff;
color:#0d0805
}
html.a11y-high-contrast p,html.a11y-high-contrast li,html.a11y-high-contrast span,html.a11y-high-contrast div {
color:inherit
}
html.a11y-high-contrast .service-card,html.a11y-high-contrast .blog-card,html.a11y-high-contrast .value-card,html.a11y-high-contrast .testimonial-card,html.a11y-high-contrast .booking-form,html.a11y-high-contrast .faq-item {
border-color:#2c1a0e;
border-width:2px
}
html.a11y-high-contrast .nav {
background:#ffffff;
border-bottom:2px solid #2c1a0e
}
html.a11y-high-contrast .nav__link,html.a11y-high-contrast .footer__link,html.a11y-high-contrast .service-link {
color:#2c1a0e;
text-decoration:underline
}
html.a11y-high-contrast .btn--primary,html.a11y-high-contrast .form-submit,html.a11y-high-contrast .nav__cta {
background:#0d0805;
color:#ffffff;
border:2px solid #0d0805
}
html.a11y-high-contrast .section--tinted,html.a11y-high-contrast .section.booking,html.a11y-high-contrast .about-values,html.a11y-high-contrast .approach {
background:#f0ece4
}
html.a11y-high-contrast .section--dark,html.a11y-high-contrast .section--sage {
background:#000000
}
html.a11y-high-contrast .section--dark *,html.a11y-high-contrast .section--sage * {
color:#ffffff !important
}
html.a11y-high-contrast .section--dark .section__eyebrow::before,html.a11y-high-contrast .section--dark .section__eyebrow::after,html.a11y-high-contrast .section--sage .section__eyebrow::before,html.a11y-high-contrast .section--sage .section__eyebrow::after {
background:#ffffff
}
html.a11y-high-contrast .testimonial-card {
background:#1a1a1a;
border:2px solid #ffffff;
color:#ffffff
}
html.a11y-high-contrast .testimonial-card__quote,html.a11y-high-contrast .testimonial-card__name,html.a11y-high-contrast .testimonial-card__detail,html.a11y-high-contrast .testimonial-card__stars {
color:#ffffff !important
}
html.a11y-high-contrast .testimonial-card__avatar {
background:#333333;
color:#ffffff
}
html.a11y-high-contrast .footer {
background:#000000
}
html.a11y-high-contrast .footer * {
color:#ffffff !important
}
html.a11y-high-contrast .footer__link:hover {
color:#dddddd !important
}
html.a11y-high-contrast .section--dark .btn,html.a11y-high-contrast .section--dark a {
color:#ffffff !important
}
html.a11y-reduce-motion *,html.a11y-reduce-motion *::before,html.a11y-reduce-motion *::after {
animation-duration:0.001ms !important;
animation-iteration-count:1 !important;
transition-duration:0.001ms !important;
scroll-behavior:auto !important
}
html.a11y-high-contrast .team-mosaic__brand {
background:#000000;
border:2px solid #ffffff
}
html.a11y-high-contrast .team-mosaic__brand-name,html.a11y-high-contrast .team-mosaic__brand-sub {
color:#ffffff !important
}
html.a11y-high-contrast .team-mosaic__tile {
border:1px solid #ffffff
}
html.a11y-high-contrast .team-mosaic__placeholder {
background:#1a1a1a;
border:1px solid #ffffff
}
html.a11y-high-contrast .team-mosaic__placeholder-name,html.a11y-high-contrast .team-mosaic__placeholder-cta {
color:#ffffff !important
}
html.a11y-high-contrast .approach__step:nth-child(1) .step__number,html.a11y-high-contrast .approach__step:nth-child(2) .step__number,html.a11y-high-contrast .approach__step:nth-child(3) .step__number,html.a11y-high-contrast .approach__step:nth-child(4) .step__number {
background:#000000 !important;
color:#ffffff !important;
border:2px solid #ffffff
}
html.a11y-high-contrast .approach__step {
background:#ffffff;
border:2px solid #000000
}
html.a11y-high-contrast .step__title {
color:#000000 !important
}
html.a11y-high-contrast .step__desc {
color:#1a1a1a !important
}
html.a11y-large-text *:focus-visible,html.a11y-high-contrast *:focus-visible {
outline:3px solid var(--colour-brown) !important;
outline-offset:3px !important
}
.section--services-compact {
padding-bottom:4rem
}
.section--services-compact .section__header {
margin-bottom:1rem
}
.section__lead {
font-size:0.82rem;
font-weight:400;
letter-spacing:0.1em;
text-transform:uppercase;
color:var(--colour-taupe);
text-align:center;
margin:0 auto 1.2rem;
max-width:600px
}
.section__subtitle {
font-size:1rem;
font-weight:300;
color:var(--colour-subtext);
max-width:540px;
margin:1rem auto 0;
line-height:1.8;
text-align:center
}
.service-pills {
display:flex;
flex-wrap:wrap;
gap:0.75rem;
justify-content:center;
list-style:none;
padding:0;
margin:2.5rem auto 0;
max-width:760px
}
.service-pill {
display:inline-block;
padding:0.65rem 1.4rem;
background:#fff;
border:1.5px solid rgba(180,120,80,0.28);
border-radius:3rem;
font-size:0.9rem;
font-weight:400;
color:var(--colour-brown);
text-decoration:none;
transition:background 0.2s,border-color 0.2s,transform 0.15s,color 0.2s
}
.service-pill:hover {
background:var(--colour-brown);
border-color:var(--colour-brown);
color:var(--colour-cream);
transform:translateY(-2px)
}
.service-pill--sage {
background:rgba(143,169,140,0.12);
border-color:rgba(143,169,140,0.4);
color:#3d6b3a
}
.service-pill--sage:hover {
background:#5a8a56;
border-color:#5a8a56;
color:#fff
}
.service-pill--sand {
background:rgba(201,185,154,0.18);
border-color:rgba(201,185,154,0.5);
color:#7a5c2e
}
.service-pill--sand:hover {
background:#8a6e44;
border-color:#8a6e44;
color:#fff
}
.service-pill--taupe {
background:rgba(180,120,80,0.14);
border-color:rgba(180,120,80,0.40);
color:#5c3e2a
}
.service-pill--taupe:hover {
background:#7a5c44;
border-color:#7a5c44;
color:#fff
}
.service-pill--mist {
background:rgba(61,122,118,0.1);
border-color:rgba(61,122,118,0.35);
color:#2a6662
}
.service-pill--mist:hover {
background:#3d7a76;
border-color:#3d7a76;
color:#fff
}
.service-pill--blush {
background:rgba(138,74,74,0.08);
border-color:rgba(138,74,74,0.3);
color:#6b3232
}
.service-pill--blush:hover {
background:#8a4a4a;
border-color:#8a4a4a;
color:#fff
}
.service-pill--brown {
background:rgba(120,53,32,0.1);
border-color:rgba(120,53,32,0.3);
color:#3a2414
}
.service-pill--brown:hover {
background:#a8462a;
border-color:#a8462a;
color:#fff
}
.service-pills__cta {
text-align:center;
margin-top:2rem
}
.svc-cards {
display:grid;
grid-template-columns:repeat(3,minmax(0,1fr));
gap:10px;
list-style:none;
padding:0;
margin:1rem auto 0;
max-width:860px
}
.svc-cards--4 {
grid-template-columns:repeat(4,minmax(0,1fr))
}
.svc-card {
display:flex;
flex-direction:column;
gap:3px;
padding:0.7rem 0.75rem 0.65rem;
background:#fff;
border:1.5px solid rgba(180,120,80,0.22);
border-radius:0.75rem;
text-decoration:none;
transition:border-color 0.2s,background 0.15s;
position:relative
}
.svc-card:hover {
background:var(--colour-warm-off);
border-color:rgba(180,120,80,0.45)
}
.svc-card__name {
font-size:0.88rem;
font-weight:500;
color:var(--colour-brown);
line-height:1.3
}
.svc-card__hook {
font-size:0.78rem;
font-weight:300;
color:var(--colour-subtext);
line-height:1.45
}
.svc-card--sage {
border-left:6px solid #5a8a56
}
.svc-card--sand {
border-left:6px solid #8a6e44
}
.svc-card--taupe {
border-left:6px solid #7a5c44
}
.svc-card--mist {
border-left:6px solid #3d7a76
}
.svc-card--blush {
border-left:6px solid #8a4a4a
}
.svc-card--brown {
border-left:6px solid #a8462a
}
@media (max-width:600px) {
.svc-cards,.svc-cards--4 {
grid-template-columns:repeat(2,minmax(0,1fr))
}
.svc-card__hook {
display:none
}

}
.svc-related {
background:var(--colour-warm-off);
border-radius:1.2rem;
padding:2rem 2.2rem;
margin:2rem 0 0
}
.svc-related__title {
font-family:var(--font-display);
font-size:1.2rem;
font-weight:500;
color:var(--colour-brown);
margin-bottom:1rem
}
.svc-related__list {
list-style:none;
padding:0;
margin:0;
display:flex;
flex-direction:column;
gap:0.6rem
}
.svc-related-link {
display:flex;
justify-content:space-between;
align-items:center;
padding:0.9rem 1.2rem;
background:#fff;
border:1.5px solid rgba(180,120,80,0.22);
border-radius:0.7rem;
text-decoration:none;
gap:1rem;
transition:border-color 0.2s,box-shadow 0.2s,transform 0.15s;
position:relative
}
.svc-related-link::after {
content:'→';
font-size:1rem;
color:var(--colour-taupe);
flex-shrink:0;
transition:transform 0.2s
}
.svc-related-link:hover {
border-color:var(--colour-taupe);
box-shadow:0 4px 16px rgba(120,53,32,0.08);
transform:translateY(-1px)
}
.svc-related-link:hover::after {
transform:translateX(3px)
}
.svc-related-title {
font-size:0.95rem;
font-weight:400;
color:var(--colour-brown);
line-height:1.4
}
.svc-related-meta {
font-size:0.75rem;
color:var(--colour-taupe);
white-space:nowrap;
flex-shrink:0
}
.hero__title--animated {
animation:word-reveal 0.9s 0.3s ease forwards
}
@media (max-width:600px) {
.team-carousel-wrap {
position:relative
}
.team-grid {
display:flex;
flex-direction:row;
overflow-x:scroll;
scroll-snap-type:x mandatory;
-webkit-overflow-scrolling:touch;
scrollbar-width:none;
gap:0.75rem;
max-width:100%;
padding:0 1rem 0.5rem
}
.team-grid::-webkit-scrollbar {
display:none
}
.team-grid .team-card {
flex:0 0 72vw;
max-width:300px;
scroll-snap-align:start;
scroll-snap-stop:always
}
.team-carousel-arrows {
display:flex;
justify-content:center;
align-items:center;
gap:1rem;
margin-top:1.2rem
}
.team-carousel-btn {
width:44px;
height:44px;
border-radius:50%;
border:1.5px solid rgba(120,53,32,0.25);
background:var(--colour-cream);
color:var(--colour-brown);
display:flex;
align-items:center;
justify-content:center;
cursor:pointer;
transition:border-color 0.2s,background 0.2s,transform 0.2s;
-webkit-tap-highlight-color:transparent
}
.team-carousel-btn:hover,.team-carousel-btn:focus-visible {
border-color:var(--colour-brown);
background:var(--colour-warm-off)
}
.team-carousel-btn--next {
animation:carousel-pulse 1.8s ease-in-out 0.6s 4
}
@keyframes carousel-pulse {
0%,100% {
transform:scale(1);
box-shadow:0 0 0 0 rgba(120,53,32,0)
}
50% {
transform:scale(1.12);
box-shadow:0 0 0 6px rgba(120,53,32,0.12)
}

}
.team-carousel-dots {
display:flex;
justify-content:center;
gap:6px;
margin-top:0.9rem
}
.team-carousel-dot {
width:6px;
height:6px;
border-radius:50%;
background:rgba(120,53,32,0.2);
transition:background 0.25s,transform 0.25s
}
.team-carousel-dot.is-active {
background:var(--colour-brown);
transform:scale(1.3)
}

}
@media (min-width:601px) {
.team-carousel-arrows,.team-carousel-dots {
display:none
}

}


/* Homepage Neil intro */
@media (max-width: 820px) {
  #meet-neil .post__header {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
  }

  #meet-neil .post {
    padding-left: 0;
    padding-right: 0;
  }
}

@media (max-width:768px){.stats-band{padding:1.5rem}.stats-band__inner{gap:1.25rem}.stat{min-width:calc(50% - 1rem)}.stats-band__divider{display:none}.stat__number{font-size:1.05rem}.stat__label{font-size:0.68rem}}

.faq-card:nth-child(5n+1) .faq-card__band{background:#c4906e!important}.faq-card:nth-child(5n+2) .faq-card__band{background:#7a9e82!important}.faq-card:nth-child(5n+3) .faq-card__band{background:#a89458!important}.faq-card:nth-child(5n+4) .faq-card__band{background:#6e8ea0!important}.faq-card:nth-child(5n+5) .faq-card__band{background:#a88080!important}.faq-card:nth-child(5n+1) .faq-card__title{color:#c4906e}.faq-card:nth-child(5n+2) .faq-card__title{color:#7a9e82}.faq-card:nth-child(5n+3) .faq-card__title{color:#a89458}.faq-card:nth-child(5n+4) .faq-card__title{color:#6e8ea0}.faq-card:nth-child(5n+5) .faq-card__title{color:#a88080}.guide-grid .blog-card:nth-child(5n+1) .blog-card__tab,.blog-grid .blog-card:nth-child(5n+1) .blog-card__tab,.blog-card:nth-child(5n+1) .blog-card__tab{background:rgba(196,144,110,0.18)!important}.guide-grid .blog-card:nth-child(5n+2) .blog-card__tab,.blog-grid .blog-card:nth-child(5n+2) .blog-card__tab,.blog-card:nth-child(5n+2) .blog-card__tab{background:rgba(122,158,130,0.18)!important}.guide-grid .blog-card:nth-child(5n+3) .blog-card__tab,.blog-grid .blog-card:nth-child(5n+3) .blog-card__tab,.blog-card:nth-child(5n+3) .blog-card__tab{background:rgba(168,148,88,0.18)!important}.guide-grid .blog-card:nth-child(5n+4) .blog-card__tab,.blog-grid .blog-card:nth-child(5n+4) .blog-card__tab,.blog-card:nth-child(5n+4) .blog-card__tab{background:rgba(110,142,160,0.18)!important}.guide-grid .blog-card:nth-child(5n+5) .blog-card__tab,.blog-grid .blog-card:nth-child(5n+5) .blog-card__tab,.blog-card:nth-child(5n+5) .blog-card__tab{background:rgba(168,128,128,0.18)!important}.section--services-compact .service-card:nth-child(5n+1){border-left-color:#c4906e}.section--services-compact .service-card:nth-child(5n+2){border-left-color:#7a9e82}.section--services-compact .service-card:nth-child(5n+3){border-left-color:#a89458}.section--services-compact .service-card:nth-child(5n+4){border-left-color:#6e8ea0}.section--services-compact .service-card:nth-child(5n+5){border-left-color:#a88080}

.dot-tags{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:1.5rem auto 0;max-width:860px;justify-content:center}
.dot-tags--4{max-width:700px}
.dot-tag{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px 12px 20px;border-radius:3rem;border:1.5px solid;text-decoration:none;transition:transform 0.18s,box-shadow 0.18s,background 0.2s,border-color 0.2s;box-shadow:0 2px 8px rgba(0,0,0,0.08)}
.dot-tag:hover{transform:translateY(-3px);box-shadow:0 6px 20px rgba(0,0,0,0.13)}
.dot-tag::after{content:'›';font-size:1.1rem;font-weight:400;opacity:0.5;margin-left:6px;flex-shrink:0;transition:opacity 0.18s,transform 0.18s}
.dot-tag:hover::after{opacity:1;transform:translateX(3px)}
.dot-tag__dot{display:none}
.dot-tag__body{display:flex;flex-direction:column;gap:2px;text-align:center;flex:1}
.dot-tag__name{font-size:0.88rem;font-weight:500;line-height:1.3}
.dot-tag__hook{font-size:0.76rem;font-weight:300;line-height:1.4;opacity:0.8}
.dot-tag--terracotta{background:rgba(196,114,74,0.09);border-color:rgba(196,114,74,0.4);color:#5a1a00}
.dot-tag--terracotta:hover{background:rgba(196,114,74,0.2);border-color:rgba(196,114,74,0.7)}
.dot-tag--olive{background:rgba(90,122,90,0.09);border-color:rgba(90,122,90,0.4);color:#1a3a10}
.dot-tag--olive:hover{background:rgba(90,122,90,0.2);border-color:rgba(90,122,90,0.7)}
.dot-tag--gold{background:rgba(168,138,58,0.09);border-color:rgba(168,138,58,0.4);color:#3a2800}
.dot-tag--gold:hover{background:rgba(168,138,58,0.2);border-color:rgba(168,138,58,0.7)}
.dot-tag--slate{background:rgba(74,106,122,0.09);border-color:rgba(74,106,122,0.4);color:#0a2030}
.dot-tag--slate:hover{background:rgba(74,106,122,0.2);border-color:rgba(74,106,122,0.7)}
.dot-tag--rose{background:rgba(168,90,90,0.09);border-color:rgba(168,90,90,0.4);color:#3a0a0a}
.dot-tag--rose:hover{background:rgba(168,90,90,0.2);border-color:rgba(168,90,90,0.7)}
.dot-tag--umber{background:rgba(122,96,32,0.09);border-color:rgba(122,96,32,0.4);color:#3a2000}
.dot-tag--umber:hover{background:rgba(122,96,32,0.2);border-color:rgba(122,96,32,0.7)}
@media(max-width:600px){.dot-tags,.dot-tags--4{flex-direction:column}.dot-tag{width:100%}}
