/* ==========================================================================
   Somlata — brand stylesheet  (rev. 4 — client brand guide implementation)

   Palette, typography and colour ratios taken from the supplied brand guide.
   Components matched to the supplied page designs:
   light header · olive footer · circular icon badges · botanical sprig
   dividers · gold numerals · full-bleed alternating service rows.
   ========================================================================== */
:root{
  /* 01 primary */
  --ivory:#F6F1E8;        /* backgrounds — 45% of layout */
  --linen:#E9DFD0;        /* secondary backgrounds — 20% */
  --sand:#D8C8B3;         /* cards | panels */
  --sage:#4A5540;         /* primary brand colour — 15% */
  --forest:#303B2A;       /* buttons | highlights — client supplied green */
  --walnut:#53453B;       /* headlines | strong text — 10% */
  --gold:#B79254;         /* antique gold, luxury accent — 5% */
  --burgundy:#6B3B46;     /* festive | collections — 5% */
  /* 02 neutral */
  --marble:#FAF7F2; --pearl:#F2ECE3; --mushroom:#C9B9A4; --taupe:#A18E79;
  /* 03 botanical */
  --sage-lt:#9AA087; --olive:#73775B; --eucalyptus:#B5BEA7; --moss:#6C7157;
  /* 04 metallics */
  --brass:#C7A66A; --champagne:#D8C7A0;
  /* derived */
  --olive-deep:#2A3324;   /* footer — a shade deeper so it reads apart from the CTA */
  --olive-mid:#303B2A;
  --ink:#53453B; --muted:#7B6C60; --line:#E2D8C9; --line-soft:#EFE7DA;

  --display:'Playfair Display',Georgia,'Times New Roman',serif;
  --body:'Montserrat',system-ui,-apple-system,sans-serif;

  /* gold botanical sprig used under headings */
  --sprig:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 118 18' fill='none' stroke='%23B79254' stroke-width='1.15' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9h40'/%3E%3Cpath d='M74 9h40'/%3E%3Cpath d='M59 9c0-4.2 2.2-7 5.6-8.6C66.4 4.1 65 7.4 59 9z'/%3E%3Cpath d='M59 9c0-4.2-2.2-7-5.6-8.6C51.6 4.1 53 7.4 59 9z'/%3E%3Cpath d='M59 9v7.5'/%3E%3C/svg%3E");
  --botanical:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 280' fill='none' stroke='%23D8C7A0' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M104 278C104 210 100 150 84 96 74 62 68 40 66 18'/%3E%3Cpath d='M101 226c-24-4-40-20-46-44 26-2 44 14 46 44z'/%3E%3Cpath d='M104 214c22-10 34-30 32-56-25 6-38 26-32 56z'/%3E%3Cpath d='M94 170c-22-6-35-22-38-45 24 1 39 17 38 45z'/%3E%3Cpath d='M97 156c20-11 30-31 26-56-23 8-34 28-26 56z'/%3E%3Cpath d='M84 112c-18-7-28-21-29-40 20 2 32 16 29 40z'/%3E%3Cpath d='M87 100c17-11 25-28 21-49-19 8-28 26-21 49z'/%3E%3Cpath d='M66 18c-7-5-10-11-9-18 8 2 12 9 9 18z'/%3E%3C/svg%3E");
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);font-weight:300;color:var(--ink);background:var(--ivory);
  font-size:16px;line-height:1.85;letter-spacing:.004em;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{width:min(1240px,90vw);margin-inline:auto}
.wrap--narrow{width:min(820px,88vw);margin-inline:auto}
.pad{padding:clamp(76px,10vw,140px) 0}
.pad-sm{padding:clamp(52px,7vw,92px) 0}
.center{text-align:center}
.bg-linen{background:var(--linen)}
.bg-pearl{background:var(--pearl)}
.bg-marble{background:var(--marble)}

/* ---------- typography ---------- */
h1,h2,h3,h4{font-family:var(--display);font-weight:400;line-height:1.14;
  letter-spacing:-.004em;color:var(--walnut)}
.display{font-size:clamp(2.25rem,4.6vw,3.9rem);font-weight:400;line-height:1.1;
  letter-spacing:-.008em}
.display em,.display i,.h-sm em,.accent,.results__title em{font-family:var(--display);
  font-style:italic;font-weight:400;color:var(--gold)}
.h-sm{font-size:clamp(1.6rem,3vw,2.4rem);font-weight:400}

/* small gold label above headings */
.caps{font-family:var(--body);font-weight:500;letter-spacing:.3em;text-transform:uppercase;
  font-size:.6rem;color:var(--gold);display:block;margin-bottom:1.1rem;line-height:1.6}
.caps--light{color:var(--champagne)}
.caps--muted{color:var(--taupe)}

/* botanical divider */
.sprig{display:block;width:118px;height:18px;background:var(--sprig) left center/contain no-repeat;
  margin:1.5rem 0 1.8rem}
.sprig--c{margin-inline:auto;background-position:center}
.center .sprig{margin-inline:auto;background-position:center}

.script{font-family:var(--display);font-style:italic;font-weight:400;font-size:2rem;
  line-height:1.15;color:var(--gold)}
.lede{color:var(--muted);font-size:1rem;max-width:56ch;font-weight:300;line-height:1.9}
.tight{max-width:52ch}
.rule{width:100%;height:1px;background:var(--line);border:0}
p{font-weight:300}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.7em;
  font-family:var(--body);font-weight:500;letter-spacing:.2em;text-transform:uppercase;
  font-size:.6rem;line-height:1;min-height:50px;padding:0 30px;text-align:center;
  border:1px solid transparent;transition:.4s cubic-bezier(.4,0,.2,1);cursor:pointer}
.btn::after{content:"\2192";font-size:.95em;letter-spacing:0;transition:transform .35s}
.btn:hover::after{transform:translateX(4px)}
.btn--plain::after{content:none}
.btn--olive{background:var(--forest);color:var(--ivory);border-color:var(--forest)}
.btn--olive:hover{background:var(--olive-deep);border-color:var(--olive-deep)}
.btn--dark{background:var(--olive-deep);color:var(--ivory);border-color:var(--olive-deep)}
.btn--dark:hover{background:var(--forest);border-color:var(--forest)}
.btn--gold{background:var(--gold);color:#fff;border-color:var(--gold)}
.btn--gold:hover{background:var(--walnut);border-color:var(--walnut)}
.btn--ghost{background:transparent;color:var(--walnut);border-color:var(--taupe)}
.btn--ghost:hover{background:var(--forest);color:var(--ivory);border-color:var(--forest)}
.btn--ghost-light{background:transparent;color:var(--ivory);border-color:rgba(246,241,232,.55)}
.btn--ghost-light:hover{background:var(--ivory);color:var(--walnut);border-color:var(--ivory)}
.btn-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center}

/* ---------- header — light, per the designs ---------- */
.site-head{position:sticky;top:0;z-index:60;padding:14px 0;background:var(--ivory);
  border-bottom:1px solid var(--line-soft)}
.site-head--over,.site-head--solid{position:sticky;background:var(--ivory)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px}
.logo img{height:54px;width:auto}
.menu{display:flex;align-items:center;gap:24px;flex-wrap:nowrap}
.menu a{font-size:.6rem;letter-spacing:.17em;text-transform:uppercase;padding:6px 0;
  position:relative;color:var(--walnut);font-weight:500;white-space:nowrap;line-height:1.6}
.menu a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;
  background:var(--gold);transition:width .35s}
.menu a:hover::after,.menu a[aria-current]::after{width:100%}
.menu a[aria-current]{color:var(--gold)}
.menu .btn{color:var(--ivory);background:var(--olive-deep);border-color:var(--olive-deep);
  min-height:42px;padding:0 22px;font-size:.57rem;letter-spacing:.16em}
.menu .btn::after{content:none}
.menu .btn:hover{background:var(--forest);border-color:var(--forest)}
.menu .btn::after{display:none}
.menu-btn{display:none;background:none;border:0;cursor:pointer;padding:8px;color:var(--walnut)}
.menu-btn span{display:block;width:24px;height:1px;background:currentColor;margin:6px 0}

/* services dropdown */
.has-sub{position:relative}
.subnav{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(8px);
  background:var(--marble);border:1px solid var(--line);min-width:290px;padding:8px 0;
  opacity:0;visibility:hidden;transition:.28s ease;box-shadow:0 22px 44px rgba(83,69,59,.14);z-index:70}
.has-sub:hover .subnav,.has-sub:focus-within .subnav{opacity:1;visibility:visible;
  transform:translateX(-50%) translateY(0)}
.subnav a{display:block;padding:11px 22px;font-size:.58rem;letter-spacing:.15em;
  color:var(--walnut);white-space:nowrap;line-height:1.5;font-weight:400}
.subnav a::after{display:none}
.subnav a:hover{background:var(--pearl);color:var(--gold)}

/* ---------- hero — split panel, per the supplied home design ---------- */
.hero{display:grid;grid-template-columns:1fr 1.06fr;align-items:stretch;background:var(--ivory)}
.hero__body{display:flex;align-items:center;
  padding-block:clamp(54px,7vw,104px);
  padding-left:max(5vw,calc((100vw - 1240px)/2));
  padding-right:clamp(26px,4vw,64px)}
.hero__panel{max-width:34rem;text-align:left}
.hero__panel .caps{color:var(--gold);margin-bottom:1.2rem}
.hero__title{font-family:var(--display);font-size:clamp(2.4rem,4.4vw,3.8rem);line-height:1.08;
  margin-bottom:0;color:var(--walnut);font-weight:400;letter-spacing:-.01em}
.hero__title em{font-family:var(--display);font-style:italic;font-weight:400;font-size:1em;
  display:block;line-height:1.1;color:var(--gold)}
.hero__sub{color:var(--muted);font-size:.97rem;max-width:32rem;font-weight:300;line-height:1.9}
.hero .btn-row{justify-content:flex-start;margin-top:2rem}
.hero__slides{position:relative;overflow:hidden;min-height:clamp(400px,52vw,660px);background:var(--linen)}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;animation:heroFade 26s cubic-bezier(.4,0,.2,1) infinite}
.hero__img:nth-child(1){opacity:1;animation-delay:-1s}
.hero__img:nth-child(2){animation-delay:5.5s}
.hero__img:nth-child(3){animation-delay:12s}
.hero__img:nth-child(4){animation-delay:18.5s}
@keyframes heroFade{
  0%{opacity:0;transform:scale(1.06)} 3.75%{opacity:1}
  25%{opacity:1;transform:scale(1.005)} 28.75%{opacity:0;transform:scale(1)}
  100%{opacity:0;transform:scale(1.06)}
}
@media(max-width:800px){
  .hero{grid-template-columns:1fr}
  .hero__slides{order:-1;min-height:340px}
  .hero__body{padding-inline:5vw;padding-block:48px 56px}
  .hero__panel{max-width:100%}
}

/* ---------- page banner ---------- */
.banner{background:var(--ivory);padding:clamp(60px,8vw,104px) 0 clamp(40px,5vw,64px);
  text-align:left;border-bottom:1px solid var(--line-soft)}
.banner .display{margin-top:0;max-width:20ch}
.banner .lede{margin:0}
.banner .sprig{margin-bottom:1.6rem}

/* service page banner — image with title overlaid bottom-left */
.sbanner{position:relative;min-height:clamp(320px,38vw,460px);display:flex;align-items:flex-end;
  color:#fff;background:var(--walnut)}
.sbanner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sbanner::after{content:"";position:absolute;inset:0;
  background:linear-gradient(80deg,rgba(71,68,49,.74) 0%,rgba(71,68,49,.40) 55%,rgba(71,68,49,.14) 100%)}
.sbanner .wrap{position:relative;z-index:3;padding-block:110px 56px;text-align:left}
.sbanner .caps{color:var(--champagne)}
.sbanner .display{margin-top:0;color:#fff;max-width:18ch}
.sbanner .display em{color:var(--champagne)}
.sbanner .sprig{margin-bottom:0}

/* ---------- split bands ---------- */
.bleed{display:grid;grid-template-columns:1.05fr 1fr;align-items:stretch;background:var(--pearl)}
.bleed--flip{grid-template-columns:1fr 1.05fr}
.bleed--flip .bleed__media{order:2}
.bleed__media{position:relative;min-height:clamp(340px,48vw,620px)}
.bleed__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bleed__body{display:flex;flex-direction:column;justify-content:center;
  padding:clamp(44px,6vw,92px) clamp(26px,5.5vw,80px)}
.bleed__body .display{margin-bottom:0;max-width:16ch}
.bleed__body p{color:var(--muted);margin-bottom:1.05rem;font-size:1rem;line-height:1.9;max-width:52ch}
.bleed--paper{background:var(--ivory)}
.bleed--linen{background:var(--linen)}

/* ---------- circular icon badges ---------- */
.icn{width:56px;height:56px;border-radius:50%;border:1px solid var(--gold);
  display:flex;align-items:center;justify-content:center;margin-bottom:1.2rem;flex:none;
  transition:.4s ease}
.icn svg{width:23px;height:23px;fill:none;stroke:var(--gold);stroke-width:1.2;
  stroke-linecap:round;stroke-linejoin:round}
.icn--fill{background:var(--forest);border-color:var(--forest);width:64px;height:64px}
.icn--fill svg{stroke:var(--champagne);width:26px;height:26px}
.icn--sm{width:46px;height:46px}
.icn--sm svg{width:19px;height:19px}
.center .icn,.pstep--c .icn{margin-inline:auto}

/* ---------- numbered process ---------- */
.process{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(22px,3vw,42px)}
.pstep{border-top:1px solid var(--line);padding-top:26px}
.pstep .n{font-family:var(--display);font-size:1.9rem;color:var(--gold);
  display:block;margin-bottom:.35rem;font-weight:400;line-height:1}
.pstep h3{font-size:1.3rem;margin-bottom:.5rem;font-weight:400}
.pstep p{color:var(--muted);font-size:.9rem;line-height:1.85}
/* variant with icon badges + dividers, as in the designs */
.process--icons{border-top:0}
.process--icons .pstep{border-top:0;padding-top:0;padding-inline:clamp(10px,1.6vw,24px);
  border-left:1px solid var(--line)}
.process--icons .pstep:first-child{border-left:0;padding-left:0}
.process--icons .n{font-size:1.6rem}

/* ---------- philosophy trio ---------- */
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(26px,4vw,58px);text-align:center}
.trio>div{display:flex;flex-direction:column;align-items:center;padding-inline:clamp(8px,2vw,24px);
  position:relative}
.trio>div+div::before{content:"";position:absolute;left:calc(clamp(26px,4vw,58px)/-2);top:12%;
  bottom:12%;width:1px;background:var(--line)}
.trio h3{font-size:1.45rem;margin-bottom:.5rem;font-weight:400}
.trio p{color:var(--muted);font-size:.92rem;line-height:1.85;max-width:26ch}

/* ---------- testimonials band ---------- */
.results{position:relative;color:#fff;overflow:hidden;background:var(--olive-deep)}
.results__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.30}
.results::after{content:"";position:absolute;inset:0;background:rgba(60,57,40,.76)}
.results .wrap{position:relative;z-index:3;display:grid;grid-template-columns:1fr 1.15fr;
  gap:clamp(30px,5vw,72px);padding-block:clamp(76px,9vw,124px);align-items:start}
.results__title{font-family:var(--display);font-size:clamp(2rem,3.9vw,3.1rem);line-height:1.1;
  margin-bottom:1.8rem;color:#fff;font-weight:400}
.results__title em{color:var(--champagne);font-style:italic}
.results__quotes{display:grid;gap:36px;position:relative;padding-left:clamp(0px,3vw,42px);
  border-left:1px solid rgba(216,199,160,.28)}
.tst p{font-family:var(--display);font-size:1.22rem;line-height:1.6;color:#F6F1E8;
  font-style:italic;font-weight:400;margin-bottom:.9rem}
.tst cite{font-style:normal;font-size:.57rem;letter-spacing:.26em;text-transform:uppercase;
  color:var(--champagne);font-family:var(--body);font-weight:500}
.tst--mark p::before{content:"\201C";font-size:2.4rem;color:var(--gold);line-height:0;
  vertical-align:-.35em;margin-right:.12em}

/* press strip */
.press{background:var(--marble);padding:32px 0;border-top:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft)}
.press .wrap{display:flex;align-items:center;justify-content:center;gap:clamp(20px,5vw,58px);
  flex-wrap:wrap}
.press span.mark{font-family:var(--display);font-size:1.15rem;letter-spacing:.18em;
  color:var(--taupe);text-transform:uppercase}

/* ---------- CTA bands ---------- */
/* solid sage/olive band with botanical watermark */
.dark-cta{background:var(--olive-mid);color:#fff;text-align:left;position:relative;overflow:hidden}
.dark-cta .wrap{position:relative;z-index:2}
.dark-cta::before{content:"";position:absolute;right:4%;top:50%;transform:translateY(-50%);
  width:210px;height:290px;opacity:.22;pointer-events:none;
  background:var(--botanical) center/contain no-repeat}
.dark-cta .display{color:#fff;margin-bottom:1.2rem;max-width:17ch}
.dark-cta .display em{color:var(--champagne)}
.dark-cta p{color:#E7E1D2;margin:0 0 2rem;max-width:48ch;font-size:.98rem;line-height:1.9}

/* light CTA paired with an image, as in the About / service designs */
.cta-split{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;background:var(--pearl)}
.cta-split__media{position:relative;min-height:clamp(280px,32vw,420px)}
.cta-split__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cta-split__body{display:flex;flex-direction:column;justify-content:center;
  padding:clamp(44px,6vw,88px) clamp(26px,5vw,72px)}
.cta-split__body .display{margin-bottom:1rem;max-width:15ch}
.cta-split__body p{color:var(--muted);margin-bottom:1.8rem;max-width:44ch}

/* ---------- strip ---------- */
.strip{background:var(--linen);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.strip .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:22px 0;flex-wrap:wrap}
.strip .caps{margin-bottom:0}

/* ---------- cards ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,2.6vw,34px)}
.cards--2{grid-template-columns:repeat(2,1fr)}
.cards--4{grid-template-columns:repeat(4,1fr)}
.card{background:transparent;border:0;overflow:visible;transition:.5s ease}
.card__img{aspect-ratio:4/5;overflow:hidden;background:var(--linen)}
.card__img img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.4,0,.2,1)}
.card:hover .card__img img{transform:scale(1.04)}
.card__in{padding:20px 0 0}
.card__in h3{font-size:1.35rem;margin-bottom:.5rem;font-weight:400;line-height:1.25}
.card__in p{color:var(--muted);font-size:.9rem;line-height:1.85;max-width:38ch}
.card>.card__in:first-child{border-top:1px solid var(--line);padding-top:26px}
.more{display:inline-flex;align-items:center;gap:.6em;margin-top:14px;font-size:.57rem;
  letter-spacing:.24em;text-transform:uppercase;color:var(--gold);padding-bottom:3px;
  border-bottom:1px solid transparent;transition:.3s;font-weight:500}
.more::after{content:"\2192";transition:transform .35s}
.more:hover{color:var(--walnut);border-bottom-color:var(--walnut)}
.more:hover::after{transform:translateX(4px)}

/* gold numerals above card titles */
.cards--num{counter-reset:cd}
.cards--num .card{counter-increment:cd}
.cards--num .card__in h3::before{content:counter(cd,decimal-leading-zero);display:block;
  font-family:var(--display);font-size:.95rem;font-weight:400;letter-spacing:.06em;
  color:var(--gold);margin-bottom:.5rem;font-style:italic}

/* boxed card variant used on the services overview in the designs */
.cards--boxed .card{background:var(--marble);border:1px solid var(--line-soft);padding:20px}
.cards--boxed .card__img{aspect-ratio:16/10;margin-bottom:4px}
.cards--boxed .card__in{padding:16px 2px 4px}

/* ---------- service rows — full bleed, alternating ---------- */
.srows{counter-reset:srow}
.srow{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;
  counter-increment:srow;background:var(--ivory)}
.srow:nth-child(even){background:var(--marble)}
.srow--flip .srow__img{order:2}
.srow__img{position:relative;min-height:clamp(280px,32vw,440px)}
.srow__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.srow__body{display:flex;flex-direction:column;justify-content:center;
  padding:clamp(40px,5.5vw,84px) clamp(26px,5vw,76px)}
.srow h3{font-size:clamp(1.5rem,2.3vw,2rem);margin-bottom:.9rem;font-weight:400;
  display:flex;align-items:baseline;gap:.75em}
.srow h3::before{content:counter(srow,decimal-leading-zero);font-family:var(--display);
  font-style:italic;font-size:.72em;color:var(--gold);flex:none}
.srow p{color:var(--muted);margin-bottom:1.1rem;font-size:.97rem;line-height:1.9;max-width:46ch}
.meta{font-size:.9rem;border-left:1px solid var(--gold);padding-left:18px;color:var(--muted);
  line-height:1.8;max-width:44ch;margin-bottom:1.4rem}
.meta b{font-weight:500;color:var(--walnut);font-family:var(--body);font-size:.58rem;
  letter-spacing:.22em;text-transform:uppercase;display:block;margin-bottom:.3rem}

/* ---------- service detail ---------- */
.detail{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(28px,5vw,68px);align-items:start}
.detail__aside{background:var(--linen);padding:32px 32px;border:0;display:flex;gap:20px;
  align-items:flex-start}
.detail__aside .icn{margin-bottom:0}
.detail__aside p{color:var(--muted);font-size:.94rem;line-height:1.9}
.detail__aside .caps{margin-bottom:.5rem}

/* other services — image cards */
.other{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,26px);margin-top:22px;
  counter-reset:oth}
.other a{background:var(--marble);border:1px solid var(--line-soft);padding:16px;
  transition:.35s;counter-increment:oth;display:block}
.other a:hover{border-color:var(--gold)}
.other a .oth__t{font-family:var(--display);font-size:1.05rem;letter-spacing:0;
  text-transform:none;color:var(--walnut);line-height:1.3;display:block;margin-bottom:12px}
.other a .oth__t::before{content:counter(oth,decimal-leading-zero);display:block;
  font-family:var(--body);font-size:.55rem;font-weight:500;letter-spacing:.24em;
  color:var(--gold);margin-bottom:.45rem}
.other a img{width:100%;aspect-ratio:16/10;object-fit:cover}

/* ---------- faq ---------- */
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;font-family:var(--display);
  font-size:clamp(1.25rem,2vw,1.6rem);padding:26px 52px 26px 0;position:relative;
  font-weight:400;line-height:1.35;transition:color .3s;color:var(--walnut)}
.faq summary:hover{color:var(--gold)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);
  color:var(--gold);font-size:1.4rem;font-family:var(--body);font-weight:300}
.faq details[open] summary{color:var(--gold)}
.faq details[open] summary::after{content:"\2013"}
.faq p{color:var(--muted);padding:0 52px 28px 0;font-size:.98rem;line-height:1.9;max-width:64ch}

/* ---------- forms ---------- */
.form{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.form .full{grid-column:1/-1}
.f label{display:block;font-size:.57rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--gold);margin-bottom:9px;font-weight:500}
.f input,.f select,.f textarea{width:100%;padding:12px 2px;border:0;
  border-bottom:1px solid var(--line);background:transparent;font-family:var(--body);
  font-size:.95rem;font-weight:300;color:var(--ink);border-radius:0;transition:border-color .3s}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-bottom-color:var(--gold)}
.f textarea{min-height:130px;resize:vertical}
.info{list-style:none;margin-top:34px}
.info li{padding:16px 0;border-bottom:1px solid var(--line);font-size:.95rem;font-weight:300}
.info--icons{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:38px}
.info--icons li{padding:0;border-bottom:0}
.info--icons a{display:inline-flex;align-items:center;justify-content:center;
  width:46px;height:46px;border:1px solid var(--line);border-radius:50%;
  transition:border-color .3s ease,background .3s ease}
.info--icons a:hover{border-color:var(--gold);background:var(--linen)}
.info--icons a span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.info--icons svg{width:19px;height:19px;fill:var(--gold);flex:none;transition:fill .3s ease}
.info--icons a:hover svg{fill:var(--walnut)}

/* ---------- footer — olive, four columns ---------- */
.foot{background:var(--olive-deep);color:#D7D2C0;padding:clamp(56px,7vw,92px) 0 26px}
.foot__grid{display:grid;grid-template-columns:1.15fr .8fr .9fr 1.1fr;
  gap:clamp(26px,4vw,54px);align-items:start}
.foot__brand img{height:58px;width:auto;margin-bottom:18px}
.foot__brand p{color:#CFC9B6;font-size:.86rem;line-height:1.85;max-width:30ch;margin-bottom:20px}
.foot h4{font-family:var(--body);font-size:.58rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--champagne);font-weight:500;margin-bottom:18px}
.foot__nav{list-style:none}
.foot__nav li{margin-bottom:11px}
.foot__nav a{font-size:.8rem;color:#D7D2C0;font-weight:300;transition:color .3s;
  letter-spacing:.02em;text-transform:none}
.foot__nav a:hover{color:var(--champagne)}
.foot__img img{width:100%;object-fit:cover;aspect-ratio:4/3}
.signup p{color:#CFC9B6;font-size:.82rem;margin-bottom:16px;line-height:1.8}
.signup input{width:100%;padding:11px 12px;border:1px solid rgba(216,199,160,.35);
  margin-bottom:12px;font-family:var(--body);font-size:.85rem;font-weight:300;
  background:rgba(255,255,255,.05);color:#F3EEE2;transition:border-color .3s}
.signup input::placeholder{color:#A39C86}
.signup input:focus{outline:none;border-color:var(--champagne)}
.signup .btn{width:100%;background:var(--champagne);color:var(--olive-deep);
  border-color:var(--champagne);margin-top:4px}
.signup .btn::after{content:none}
.signup .btn:hover{background:var(--gold);border-color:var(--gold);color:#fff}
/* social row in the brand column */
.foot__social{list-style:none;display:flex;align-items:center;gap:10px;margin:0}
.foot__social a{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  border:1px solid rgba(216,199,160,.4);border-radius:50%;transition:.3s ease}
.foot__social a:hover{border-color:var(--champagne);background:rgba(216,199,160,.12)}
.foot__social a span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.foot__social svg{width:14px;height:14px;fill:var(--champagne);transition:fill .3s ease}
.foot__social a:hover svg{fill:#fff}
.foot__base{border-top:1px solid rgba(216,199,160,.2);margin-top:46px;padding-top:24px;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;
  font-size:.62rem;color:#A8A18C;letter-spacing:.1em;text-transform:uppercase;font-weight:300}

/* ---------- reveal ---------- */
.js .rv{opacity:0;transform:translateY(20px);transition:opacity .9s ease,transform .9s ease}
.js .rv.in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media(max-width:1180px){
  .menu{gap:16px}
  .menu a{font-size:.56rem;letter-spacing:.12em}
  .menu .btn{padding:0 16px;font-size:.54rem}
  .logo img{height:46px}
}
@media(max-width:1020px){
  .cards,.cards--4,.process,.other{grid-template-columns:1fr 1fr}
  .foot__grid{grid-template-columns:1fr 1fr}
  .process--icons .pstep{border-left:0;padding-inline:0}
  .process--icons .pstep:nth-child(n+3){margin-top:6px}
}
@media(max-width:800px){
  .menu{position:fixed;inset:74px 0 auto 0;background:var(--marble);flex-direction:column;
    gap:0;padding:8px 0;transform:translateY(-140%);transition:transform .35s ease;
    border-bottom:1px solid var(--line);box-shadow:0 18px 36px rgba(83,69,59,.14)}
  .menu.open{transform:translateY(0)}
  .menu a{color:var(--walnut);padding:14px 24px;width:100%}
  .menu .btn{margin:12px 24px;width:calc(100% - 48px);min-height:46px}
  .menu-btn{display:block}
  .subnav{position:static;transform:none;opacity:1;visibility:visible;border:0;box-shadow:none;
    background:var(--pearl);min-width:0;padding:0}
  .subnav a{padding:12px 38px}
  .hero .wrap{padding-block:90px 80px}
  .hero__panel{max-width:100%}
  .bleed,.bleed--flip,.results .wrap,.srow,.form,.detail,.cta-split{grid-template-columns:1fr}
  .bleed--flip .bleed__media,.srow--flip .srow__img{order:0}
  .cards,.cards--2,.cards--4,.process,.other,.trio{grid-template-columns:1fr}
  .trio>div+div::before{display:none}
  .trio>div+div{border-top:1px solid var(--line);padding-top:30px;margin-top:6px}
  .foot__grid{grid-template-columns:1fr}
  .results__quotes{border-left:0;padding-left:0}
  .banner .display,.sbanner .display,.bleed__body .display,.dark-cta .display{max-width:100%}
  .sbanner .wrap{padding-block:96px 46px}
  .dark-cta::before{display:none}
  .foot__base{justify-content:center;text-align:center}
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .hero__img{animation:none;opacity:0;transform:none}
  .hero__img:first-child{opacity:1}
  .js .rv{opacity:1!important;transform:none!important;transition:none}
  .card:hover .card__img img{transform:none}
}
:focus-visible{outline:1px solid var(--gold);outline-offset:4px}

/* ==========================================================================
   HOME PAGE — built to the supplied home design
   ========================================================================== */
.rule-gold{width:64px;height:1px;background:var(--gold);border:0;margin:1.5rem 0 1.4rem}
.wordmark{height:.92em;width:auto;display:inline-block;vertical-align:-.06em;margin-left:.18em}

/* section head with a link pushed to the right */
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;
  flex-wrap:wrap;margin-bottom:clamp(28px,3.4vw,50px)}
.sec-head .display,.sec-head .h-sm{margin:0}
.link-arrow{display:inline-flex;align-items:center;gap:.7em;font-size:.58rem;letter-spacing:.24em;
  text-transform:uppercase;color:var(--walnut);font-weight:500;padding-bottom:5px;
  border-bottom:1px solid var(--gold);transition:.3s}
.link-arrow::after{content:"\2192";transition:transform .35s}
.link-arrow:hover{color:var(--gold)}
.link-arrow:hover::after{transform:translateX(4px)}

/* welcome band signature */
.bleed__body .display .wordmark{margin-left:.22em}
.bleed__body h2.display:has(.wordmark){margin-bottom:1.6rem}
.sig{margin-top:1.8rem}
.sig::before{content:"";display:block;width:58px;height:1px;background:var(--gold);margin-bottom:.9rem}
.sig img{height:44px;width:auto;opacity:.95}

/* ---- styling experience cards — numeral sits on the image ---- */
.excards{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,26px);
  counter-reset:ex}
.excard{counter-increment:ex;display:block}
.excard__img{display:block;position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--linen)}
.excard__img img{width:100%;height:100%;object-fit:cover;
  transition:transform .9s cubic-bezier(.4,0,.2,1)}
.excard:hover .excard__img img{transform:scale(1.04)}
.excard__img::before{content:"";position:absolute;inset:auto 0 0 0;height:44%;
  background:linear-gradient(180deg,rgba(47,38,28,0),rgba(47,38,28,.55))}
.excard__img::after{content:counter(ex,decimal-leading-zero);position:absolute;left:16px;bottom:10px;
  font-family:var(--display);font-size:1.45rem;color:#fff;letter-spacing:.02em;line-height:1}
.excard h3{font-size:1.1rem;margin:16px 0 .5rem;font-weight:400;line-height:1.3}
.excard p{color:var(--muted);font-size:.85rem;line-height:1.8;margin-bottom:.7rem}
.excard .go{display:inline-block;color:var(--gold);font-size:1.05rem;line-height:1;transition:transform .35s}
.excard:hover .go{transform:translateX(5px)}

/* ---- the styling journey ---- */
.journey{background:var(--linen);position:relative;overflow:hidden}
.journey::before,.journey::after{content:"";position:absolute;pointer-events:none;opacity:.14;
  background:var(--botanical) center/contain no-repeat}
.journey::before{left:-30px;top:-20px;width:200px;height:280px;transform:rotate(-12deg)}
.journey::after{right:-24px;bottom:-30px;width:190px;height:265px;transform:rotate(150deg)}
.journey .wrap{position:relative;z-index:2}
.jsteps{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2.4vw,34px);
  position:relative;text-align:center}
.jsteps::before{content:"";position:absolute;top:28px;left:12%;right:12%;height:1px;
  background:var(--gold);opacity:.45}
.jstep{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center}
.jstep .icn{margin-inline:auto;background:var(--linen)}
.jstep .caps{margin-bottom:.5rem}
.jstep .n{font-family:var(--display);font-size:.8rem;color:var(--taupe);display:block;
  margin-bottom:.3rem;font-style:italic}
.jstep p{color:var(--muted);font-size:.85rem;line-height:1.8;max-width:24ch}

/* ---- timeless moments strip ---- */
.moments{display:grid;align-items:center;background:var(--ivory);
  grid-template-columns:calc(max(5vw,(100vw - 1240px)/2) + clamp(190px,15vw,280px)) 1fr}
.moments__intro{min-width:0;
  padding:clamp(34px,4vw,64px) clamp(22px,2.4vw,40px) clamp(34px,4vw,64px)
  max(5vw,calc((100vw - 1240px)/2))}
.moments__intro h2{font-size:clamp(1.45rem,1.9vw,2rem)}
.moments__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.moments__grid img{width:100%;aspect-ratio:3/4;object-fit:cover}

/* ---- quote | image | cta row ---- */
.triple{display:grid;grid-template-columns:1fr 1fr 1.2fr;align-items:stretch}
.quote-panel{background:var(--linen);display:flex;flex-direction:column;justify-content:center;
  padding:clamp(34px,4vw,60px) clamp(26px,3.4vw,52px)}
.quote-panel .qm{font-family:var(--display);font-size:2.6rem;color:var(--gold);line-height:.4;
  display:block;margin-bottom:1.1rem}
.quote-panel blockquote{font-family:var(--display);font-size:1.02rem;line-height:1.7;
  color:var(--walnut);margin-bottom:1.1rem}
.quote-panel cite{font-style:normal;font-size:.57rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--muted);font-weight:500;display:block;margin-bottom:.7rem}
.stars{color:var(--gold);font-size:.8rem;letter-spacing:.22em;display:block;margin-bottom:1.4rem}
.dots{display:flex;gap:7px}
.dots i{width:6px;height:6px;border-radius:50%;background:var(--taupe);opacity:.4;display:block}
.dots i.on{opacity:1;background:var(--gold)}
.triple__media{position:relative;min-height:clamp(280px,30vw,400px);background:var(--linen)}
.triple__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cta-panel{background:var(--forest);color:#fff;display:flex;flex-direction:column;
  justify-content:center;padding:clamp(34px,4vw,60px) clamp(26px,3.4vw,52px);
  position:relative;overflow:hidden}
.cta-panel::after{content:"";position:absolute;right:-10px;bottom:-16px;width:180px;height:250px;
  opacity:.26;pointer-events:none;background:var(--botanical) center/contain no-repeat}
.cta-panel>*{position:relative;z-index:2}
.cta-panel h2{color:#fff;font-size:clamp(1.4rem,2.05vw,1.85rem);margin-bottom:.7rem;max-width:22ch}
.cta-panel p{color:#E7E3D5;font-size:.9rem;margin-bottom:1.6rem}

/* ---- light footer (this home design) ---- */
.foot--light{background:var(--ivory);color:var(--muted);border-top:1px solid var(--line)}
.foot--light .foot__grid{grid-template-columns:1.2fr .68fr .92fr 1.4fr 1.1fr;align-items:start}
.foot--light h4{color:var(--walnut)}
.foot--light .foot__brand p{color:var(--muted)}
.foot--light .foot__nav a{color:var(--muted)}
.foot--light .foot__nav a:hover{color:var(--gold)}
.foot--light .foot__social a{border-color:var(--line)}
.foot--light .foot__social svg{fill:var(--gold)}
.foot--light .foot__social a:hover{border-color:var(--gold);background:var(--linen)}
.foot--light .foot__social a:hover svg{fill:var(--walnut)}
.foot--light .foot__base{border-top-color:var(--line);color:var(--taupe)}
.foot--light .foot__base a{color:var(--taupe)}
.foot--light .foot__base a:hover{color:var(--gold)}
.ig-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.ig-grid img{width:100%;aspect-ratio:3/4;object-fit:cover}
.subscribe{display:flex;border:1px solid var(--line);background:var(--marble)}
.subscribe input{flex:1;min-width:0;padding:11px 12px;border:0;background:transparent;
  font-family:var(--body);font-size:.82rem;font-weight:300;color:var(--ink)}
.subscribe input:focus{outline:none}
.subscribe button{flex:none;width:44px;border:0;background:var(--forest);color:var(--ivory);
  cursor:pointer;font-size:.95rem;transition:background .3s}
.subscribe button:hover{background:var(--olive-deep)}
.foot__base .legal{display:flex;gap:20px;flex-wrap:wrap}

@media(max-width:1020px){
  .excards{grid-template-columns:repeat(2,1fr)}
  .jsteps{grid-template-columns:repeat(2,1fr);row-gap:38px}
  .jsteps::before{display:none}
  .triple{grid-template-columns:1fr 1fr}
  .cta-panel{grid-column:1/-1}
  .moments{grid-template-columns:1fr}
  .moments__intro{padding:clamp(30px,4vw,54px) 5vw}
  .moments__intro h2{font-size:clamp(1.6rem,3vw,2.2rem)}
  .foot--light .foot__grid{grid-template-columns:1fr 1fr}
}
@media(max-width:800px){
  .excards{grid-template-columns:1fr}
  .jsteps{grid-template-columns:1fr}
  .triple{grid-template-columns:1fr}
  .moments__grid{grid-template-columns:repeat(2,1fr)}
  .foot--light .foot__grid{grid-template-columns:1fr}
  .sec-head{align-items:flex-start;flex-direction:column;gap:14px}
}

/* lookbook gallery */
.lb{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.4vw,18px)}
.lb__item{margin:0;overflow:hidden;background:var(--linen)}
.lb__item img{width:100%;aspect-ratio:3/4;object-fit:cover;
  transition:transform .9s cubic-bezier(.4,0,.2,1)}
.lb__item:hover img{transform:scale(1.04)}
@media(max-width:1020px){.lb{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.lb{grid-template-columns:repeat(2,1fr)}}

/* ==========================================================================
   HOME — proportions matched to the supplied layout.
   Scoped to .home so the other 14 pages keep their own spacing.
   ========================================================================== */

/* header sits transparently over the hero photograph */
.home .site-head{position:absolute;top:0;left:0;right:0;background:transparent;
  border-bottom:0;padding:18px 0}
.home .site-head .menu a{color:var(--walnut)}
.home .site-head .menu a[aria-current]{color:var(--gold)}

/* hero — photo column wider, whole band ~50.7% of viewport width */
.home .hero{grid-template-columns:1fr 1.6fr;min-height:clamp(540px,50.7vw,780px)}
.home .hero__slides{min-height:0}
.home .hero__body{padding-block:clamp(104px,9.5vw,150px) clamp(34px,4vw,58px)}
.home .hero__panel{max-width:30rem}
.home .hero__title{font-size:clamp(2.2rem,3.9vw,3.4rem)}
.home .rule-gold{margin:1.3rem 0 1.2rem}
.home .hero__sub{font-size:.92rem;max-width:27rem}
.home .hero .btn-row{margin-top:1.7rem}

/* welcome band */
.home .bleed__media{min-height:clamp(300px,34.9vw,540px)}
.home .bleed__body{padding:clamp(34px,4vw,64px) clamp(24px,4vw,66px)}
.home .bleed__body .display{font-size:clamp(1.7rem,2.7vw,2.5rem)}
.home .bleed__body p{font-size:.92rem;line-height:1.85;margin-bottom:.9rem;max-width:46ch}
.home .sig{margin-top:1.3rem}
.home .sig img{height:36px}

/* general section rhythm */
.home .pad{padding:clamp(42px,3.9vw,60px) 0}
.home .sec-head{margin-bottom:clamp(22px,2.4vw,36px)}
.home .display{font-size:clamp(1.9rem,3vw,2.7rem)}

/* experience cards */
.home .excard h3{font-size:1.02rem;margin:13px 0 .4rem}
.home .excard p{font-size:.8rem;line-height:1.75;margin-bottom:.5rem}

/* styling journey */
.home .journey.pad{padding:clamp(40px,3.6vw,54px) 0}
.home .journey{background:linear-gradient(90deg,#DCDAC7 0%,#E4DFCE 14%,var(--linen) 30%,var(--linen) 100%)}
.home .journey::after{display:none}
.home .journey::before{left:-18px;top:50%;transform:translateY(-50%) rotate(-8deg);
  width:190px;height:270px;opacity:.30}
.home .journey .wrap > .rv{margin-bottom:clamp(22px,2.4vw,36px)!important}
.home .jsteps::before{left:5%;right:5%;top:28px}
.home .jstep .icn{background:transparent;box-shadow:0 0 0 9px var(--linen)}
.home .jstep p{font-size:.8rem;line-height:1.75}

/* timeless moments — near-square frames, wider intro column */
.home .moments{grid-template-columns:calc(max(5vw,(100vw - 1240px)/2) + clamp(210px,21vw,320px)) 1fr}
.home .moments__grid img{aspect-ratio:1/1}
.home .moments__intro{padding-block:clamp(26px,3vw,44px)}

/* quote | image | cta */
.home .triple{grid-template-columns:34.1fr 26.6fr 39.3fr}
.home .triple__media{min-height:clamp(250px,23.1vw,350px)}
.home .quote-panel{padding:clamp(28px,3vw,46px) clamp(24px,2.8vw,44px)}
.home .quote-panel blockquote{font-size:.95rem;line-height:1.65;margin-bottom:.9rem}
.home .stars{margin-bottom:1rem}
.home .cta-panel{padding:clamp(28px,3vw,48px) clamp(24px,3vw,46px)}
.home .cta-panel h2{font-size:clamp(1.3rem,1.9vw,1.75rem)}
.home .cta-panel p{font-size:.85rem;margin-bottom:1.3rem}

/* footer */
.home .foot{padding:clamp(40px,4.2vw,62px) 0 20px}
.home .foot__brand img{height:50px;margin-bottom:14px}
.home .foot__brand p{font-size:.8rem;margin-bottom:16px}
.home .foot h4{margin-bottom:14px}
.home .foot__nav li{margin-bottom:8px}
.home .foot__nav a{font-size:.76rem}
.home .foot__base{margin-top:clamp(26px,2.8vw,40px);padding-top:18px}

@media(max-width:900px){
  .home .site-head{position:sticky;background:var(--ivory);border-bottom:1px solid var(--line-soft)}
  .home .hero{grid-template-columns:1fr;min-height:0}
  .home .hero__body{padding-block:44px 52px}
  .home .moments__grid img{aspect-ratio:3/4}
}

/* home — final height trim to match the layout proportions */
.home .journey.pad{padding:clamp(34px,3vw,40px) 0}
.home .journey .wrap > .rv{margin-bottom:clamp(16px,1.7vw,24px)!important}
.home .jstep .icn{margin-bottom:.7rem}
.home .jstep p{line-height:1.6}
.home .jstep .n{margin-bottom:.15rem}

.home .foot{padding:clamp(34px,3.1vw,46px) 0 18px}
.home .foot h4{margin-bottom:11px}
.home .foot__nav li{margin-bottom:5px}
.home .foot__nav a{font-size:.74rem;line-height:1.7}
.home .foot__brand p{font-size:.78rem;line-height:1.75;margin-bottom:13px;max-width:26ch}
.home .foot__brand img{height:46px;margin-bottom:11px}
.home .foot__social a{width:30px;height:30px}
.home .foot__base{margin-top:clamp(18px,2vw,28px);padding-top:15px}
.home .signup p,.home .foot .subscribe{font-size:.78rem}

.home main > section.pad{padding-block:clamp(46px,4.4vw,68px)}

/* home footer — the Navigation column drives the height; tighten the lists */
.home .foot__nav li{margin-bottom:3px}
.home .foot__nav a{font-size:.73rem;line-height:1.62}

/* home — soft ivory fade behind the overlaid header so the nav stays legible
   over the photograph (the design's hero has a pale wall there; ours does not) */
.home .site-head{background:linear-gradient(180deg,rgba(246,241,232,.94) 0%,
  rgba(246,241,232,.78) 45%,rgba(246,241,232,.30) 78%,rgba(246,241,232,0) 100%)}

/* footer instagram thumbnails a touch larger, matching the layout */
.home .foot--light .foot__grid{grid-template-columns:1.15fr .62fr .86fr 1.55fr 1.05fr}

/* home header fixes: keep the CTA button's own colours, and strengthen the
   scrim — the layout's hero has a pale wall behind the nav, our photos do not */
.home .site-head .menu a.btn{color:var(--ivory)}
.home .site-head{padding:20px 0 26px;
  background:linear-gradient(180deg,rgba(246,241,232,.97) 0%,rgba(246,241,232,.92) 48%,
    rgba(246,241,232,.52) 78%,rgba(246,241,232,0) 100%)}

/* home responsive — these must be scoped to .home too, otherwise the
   higher-specificity .home desktop rules win inside the media queries */
@media(max-width:1020px){
  .home .excards{grid-template-columns:repeat(2,1fr)}
  .home .jsteps{grid-template-columns:repeat(2,1fr);row-gap:34px}
  .home .triple{grid-template-columns:1fr 1fr}
  .home .cta-panel{grid-column:1/-1}
  .home .moments{grid-template-columns:1fr}
  .home .moments__intro{padding:clamp(28px,4vw,48px) 5vw}
  .home .moments__grid img{aspect-ratio:3/4}
  .home .foot--light .foot__grid{grid-template-columns:1fr 1fr}
}
@media(max-width:800px){
  .home .excards{grid-template-columns:1fr}
  .home .jsteps{grid-template-columns:1fr}
  .home .triple{grid-template-columns:1fr}
  .home .moments__grid{grid-template-columns:repeat(2,1fr)}
  .home .foot--light .foot__grid{grid-template-columns:1fr}
}

/* ==========================================================================
   HOME — hero as a full-bleed photograph under a soft ivory veil, centred
   navigation, and a visible gap between every section.
   ========================================================================== */
body.home{--sgap:18px;background:#FBF8F3}

/* gaps between sections */
.home main > section{margin:0 var(--sgap) var(--sgap)}
.home main > section:first-child{margin-top:var(--sgap)}
.home footer.foot{margin:0 var(--sgap) var(--sgap)}

/* header: logo left, nav centred, button hard right, sitting over the photo */
.home .site-head{position:absolute;top:var(--sgap);left:var(--sgap);right:var(--sgap);
  background:none;border-bottom:0;padding:22px 0 0}
.home .site-head .wrap{align-items:flex-start}
.home .logo img{height:64px}
.home .menu{flex:1;justify-content:center;position:relative;gap:clamp(18px,2.4vw,34px);
  padding-top:14px}
.home .menu a{font-size:.63rem;letter-spacing:.16em;color:var(--walnut)}
.home .menu a[aria-current]{color:var(--walnut)}
.home .menu a[aria-current]::after{background:var(--gold)}
.home .menu .btn{position:absolute;right:0;top:2px;color:var(--ivory);
  background:var(--forest);border-color:var(--forest);min-height:40px;padding:0 20px}
.home .menu .btn:hover{background:var(--olive-deep);border-color:var(--olive-deep)}

/* hero */
.home .hero{display:flex;align-items:center;position:relative;overflow:hidden;
  min-height:clamp(540px,50.7vw,780px);background:var(--linen)}
.home .hero__slides{position:absolute;inset:0;z-index:0;min-height:0}
.home .hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,
    rgba(246,241,232,.98) 0%,  rgba(246,241,232,.96) 17%,
    rgba(246,241,232,.80) 27%, rgba(246,241,232,.34) 40%,
    rgba(246,241,232,.06) 52%, rgba(246,241,232,0)   60%)}
.home .hero__body{position:relative;z-index:3;flex:1;display:flex;align-items:center;
  padding-block:clamp(96px,8.6vw,136px) clamp(30px,3.6vw,52px);
  padding-left:max(4vw,calc((100vw - 1240px)/2 - var(--sgap)));padding-right:2vw}
.home .hero__panel{max-width:31rem}
.home .hero__title{font-size:clamp(2.3rem,4.3vw,3.8rem)}

/* keep the inset section edges aligned with the page container */
.home .moments{grid-template-columns:calc(max(4vw,(100vw - 1240px)/2 - var(--sgap))
  + clamp(210px,21vw,320px)) 1fr}
.home .moments__intro{padding-left:max(4vw,calc((100vw - 1240px)/2 - var(--sgap)))}

@media(max-width:900px){
  body.home{--sgap:10px}
  .home .site-head{position:sticky;top:0;left:0;right:0;margin:0;padding:14px 0;
    background:var(--ivory);border-bottom:1px solid var(--line-soft)}
  .home .menu{position:static;flex:none;padding-top:0}
  .home .menu .btn{position:static;width:calc(100% - 48px)}
  .home .logo img{height:46px}
  .home .hero{display:block;min-height:0}
  .home .hero__slides{position:relative;min-height:300px}
  .home .hero::after{display:none}
  .home .hero__body{padding:40px 5vw 48px}
}

/* home hero veil — our photographs are dense across the whole frame, unlike the
   layout's pale studio wall, so the ivory veil and a top scrim do the work */
.home .hero::after{z-index:1;
  background:linear-gradient(90deg,
    rgba(246,241,232,.99) 0%,  rgba(246,241,232,.975) 24%,
    rgba(246,241,232,.90) 35%, rgba(246,241,232,.58) 46%,
    rgba(246,241,232,.20) 57%, rgba(246,241,232,0)   68%)}
.home .hero::before{content:"";position:absolute;left:0;right:0;top:0;height:160px;z-index:2;
  pointer-events:none;background:linear-gradient(180deg,
    rgba(246,241,232,.94) 0%,rgba(246,241,232,.72) 46%,rgba(246,241,232,0) 100%)}

/* home mobile menu — the .home desktop rule outranks the base mobile rule,
   so the drawer position has to be restated here */
@media(max-width:800px){
  .home .menu{position:fixed;inset:74px 0 auto 0;flex:none;padding:8px 0;
    justify-content:flex-start}
  .home .menu .btn{position:static;margin:12px 24px;width:calc(100% - 48px)}
}

/* ==========================================================================
   Revision 11 — client feedback round
   ========================================================================== */

/* 1. hero runs the full viewport width, edge to edge */
.home .hero{margin:0}
.home main > section:first-child{margin-top:0}
.home .site-head{left:0;right:0;top:0}

/* 2. welcome band — centred type, no photograph */
.welcome{background:var(--ivory);text-align:center}
.welcome .display{margin-bottom:1.4rem}
.welcome p{color:var(--muted);font-size:1rem;line-height:1.9;margin:0 auto 1rem;max-width:58ch}
.welcome .sig{display:inline-block;margin-top:1.6rem}
.welcome .sig::before{margin-inline:auto}
.welcome .sig img{height:44px}
.home .welcome .display{font-size:clamp(1.9rem,3vw,2.7rem)}

/* 5. inner-page banners now carry a photograph — keep the copy readable */
.sbanner .lede{color:#EFE9DD;max-width:52ch}
.sbanner .caps{color:var(--champagne)}

/* 7. testimonials become solid; the CTA band takes the photograph */
.results{background:var(--forest)}
.results::after{display:none}
.dark-cta{background:var(--olive-mid)}
.dark-cta__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:.26;z-index:0}
.dark-cta::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(48,59,42,.94) 0%,rgba(48,59,42,.80) 46%,
    rgba(48,59,42,.58) 100%)}
.dark-cta .wrap{z-index:3}
.dark-cta::before{z-index:2}

/* footer sits directly under the CTA now the strip is gone — hairline to separate */
.foot{border-top:1px solid rgba(216,199,160,.18)}
.foot--light{border-top:1px solid var(--line)}

/* 6. services explorer — list left, detail right (layout per the reference,
   colours per the brand guide) */
.svcx-sec{background:var(--marble)}
.svcx-sec .display{margin-bottom:clamp(26px,3vw,44px)}
.svcx{display:grid;grid-template-columns:minmax(240px,.85fr) 1.3fr;
  gap:clamp(20px,3vw,48px);align-items:start;border-top:1px solid var(--line)}
.svcx__list{display:flex;flex-direction:column;border-right:1px solid var(--line)}
.svcx__item{appearance:none;background:none;border:0;border-bottom:1px solid var(--line-soft);
  text-align:left;cursor:pointer;padding:18px 20px 18px 0;font-family:var(--body);
  transition:background .35s ease,padding .35s ease;display:block;width:100%}
.svcx__item:last-child{border-bottom:0}
.svcx__item .n{display:block;font-size:.56rem;letter-spacing:.28em;color:var(--taupe);
  margin-bottom:.45rem}
.svcx__item .t{display:block;font-family:var(--display);font-size:1.18rem;color:var(--walnut);
  line-height:1.3;margin-bottom:.25rem;transition:color .3s}
.svcx__item .s{display:block;font-size:.8rem;color:var(--muted);line-height:1.6}
.svcx__item:hover .t{color:var(--gold)}
.svcx__item.is-on{background:var(--linen);padding-left:18px}
.svcx__item.is-on .t{color:var(--gold)}
.svcx__item.is-on .n{color:var(--gold)}
.svcx__panels{padding-top:18px}
.svcx__panel{display:none}
.svcx__panel.is-on{display:block}
.svcx__media{display:block;overflow:hidden;background:var(--linen);margin-bottom:22px}
.svcx__media img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.svcx__desc{color:var(--muted);font-size:.97rem;line-height:1.9;margin-bottom:20px;max-width:60ch}
.svcx__tags{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;
  margin-bottom:26px;max-width:46ch}
.svcx__tags li{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);
  position:relative;padding-left:16px;line-height:1.7}
.svcx__tags li::before{content:"";position:absolute;left:0;top:.55em;width:5px;height:5px;
  border-radius:50%;background:var(--gold)}
@media(max-width:900px){
  .svcx{grid-template-columns:1fr;gap:0}
  .svcx__list{border-right:0;border-bottom:1px solid var(--line)}
  .svcx__item{padding-right:0}
  .svcx__panels{padding-top:26px}
  .svcx__tags{grid-template-columns:1fr}
}

/* ==========================================================================
   Revision 12
   ========================================================================== */

/* 1. home hero fills the screen */
.home .hero{min-height:100vh;min-height:100svh}

/* 2a. about — figures beneath the introduction */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,30px);
  margin-top:clamp(24px,3vw,40px);padding-top:clamp(20px,2.4vw,30px);
  border-top:1px solid var(--line)}
.stats__n{display:block;font-family:var(--display);font-size:clamp(1.5rem,2.4vw,2.1rem);
  color:var(--walnut);line-height:1.1;margin-bottom:.3rem}
.stats__l{display:block;font-size:.55rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);line-height:1.6}
.bleed__body .stats + *{margin-top:0}

/* 2b. about — the process, ghost numerals and rules */
.proc-sec{background:var(--linen)}
.proc-sec .display{margin-bottom:clamp(28px,3.4vw,52px)}
.proc{display:grid;grid-template-columns:repeat(4,1fr)}
.proc__step{padding:clamp(22px,2.4vw,38px) clamp(16px,1.8vw,28px);
  border-left:1px solid rgba(83,69,59,.14)}
.proc__step:last-child{border-right:1px solid rgba(83,69,59,.14)}
.proc__n{display:block;font-family:var(--display);font-size:clamp(2.4rem,4vw,3.6rem);
  color:var(--sand);line-height:1;margin-bottom:.55rem}
.proc__lbl{display:flex;align-items:center;gap:.6em;font-size:.55rem;letter-spacing:.24em;
  text-transform:uppercase;color:var(--gold);margin-bottom:.85rem}
.proc__lbl::before{content:"";width:20px;height:1px;background:var(--gold);flex:none}
.proc__step h3{font-size:clamp(1.15rem,1.6vw,1.4rem);margin-bottom:.65rem;font-weight:400;
  line-height:1.25}
.proc__step p{color:var(--muted);font-size:.85rem;line-height:1.8}

/* 3. pages that sit inset from the screen edges, like the home page */
body.gapped{--sgap:18px;background:#FBF8F3}
.gapped main > section{margin:0 var(--sgap) var(--sgap)}
.gapped main > section:first-child{margin:0}   /* banner stays full bleed */
.gapped footer.foot{margin:0 var(--sgap) var(--sgap)}

@media(max-width:1020px){
  .proc{grid-template-columns:repeat(2,1fr)}
  .proc__step:nth-child(2n){border-right:1px solid rgba(83,69,59,.14)}
  .proc__step:nth-child(n+3){border-top:1px solid rgba(83,69,59,.14)}
}
@media(max-width:800px){
  body.gapped{--sgap:10px}
  .proc{grid-template-columns:1fr}
  .proc__step{border-right:1px solid rgba(83,69,59,.14)}
  .proc__step + .proc__step{border-top:1px solid rgba(83,69,59,.14)}
  .stats{grid-template-columns:repeat(3,1fr);gap:10px}
  .home .hero{min-height:0}
}

/* about split — the introduction heading needs air before the copy */
.bleed__body .display + p{margin-top:1.5rem}
.bleed__body > .caps + .display{margin-bottom:0}
.about-intro .display{font-size:clamp(1.8rem,2.8vw,2.6rem);line-height:1.18}

/* ==========================================================================
   Revision 13 — About page
   ========================================================================== */

/* inline service links in the introduction */
.explore{color:var(--muted);font-size:.95rem;line-height:1.9;margin-top:.4rem}
.explore a{color:var(--walnut);border-bottom:1px solid var(--gold);padding-bottom:1px;
  transition:color .3s}
.explore a:hover{color:var(--gold)}

/* animated figures */
.stats > div{display:flex;flex-wrap:wrap;align-items:baseline;gap:0}
.stats__n,.stats__p{font-family:var(--display);font-size:clamp(1.6rem,2.6vw,2.3rem);
  color:var(--walnut);line-height:1.1}
.stats__p{color:var(--gold)}
.stats__l{flex:0 0 100%;display:block;font-size:.55rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--muted);line-height:1.6;margin-top:.35rem}

/* what-I-do tile grid */
.tiles-sec{background:var(--marble)}
.tiles-sec .lede{max-width:56ch;margin-bottom:0}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);
  margin-top:clamp(28px,3.4vw,50px);border-top:1px solid var(--line);
  border-left:1px solid var(--line)}
.tile{display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;gap:16px;padding:clamp(30px,4vw,56px) clamp(14px,2vw,26px);
  border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  background:var(--ivory);transition:background .4s ease}
.tile:hover{background:var(--linen)}
.tile__i{width:52px;height:52px;display:flex;align-items:center;justify-content:center}
.tile__i svg{width:34px;height:34px;fill:none;stroke:var(--walnut);stroke-width:1.1;
  stroke-linecap:round;stroke-linejoin:round;transition:stroke .35s ease}
.tile:hover .tile__i svg{stroke:var(--gold)}
.tile__l{font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--walnut);
  font-weight:500;line-height:1.9;transition:color .35s ease}
.tile:hover .tile__l{color:var(--gold)}

@media(max-width:900px){.tiles{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){
  .tiles{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr;gap:16px}
  .stats > div{align-items:center;gap:.35em}
  .stats__l{flex:1 1 auto;margin-top:0;margin-left:.5em}
}

/* ==========================================================================
   Revision 14 — About introduction (client copy)
   ========================================================================== */
.about-quote{font-family:var(--display);font-style:italic;font-weight:400;
  font-size:clamp(1.35rem,2.1vw,1.85rem);line-height:1.42;color:var(--walnut);
  letter-spacing:-.004em;margin:0 0 1.6rem;position:relative}
.about-sig{margin-bottom:1.8rem;padding-left:18px;border-left:1px solid var(--gold)}
.about-sig__n{display:block;font-family:var(--display);font-size:1.1rem;color:var(--walnut);
  line-height:1.35}
.about-sig__r,.about-sig__b{display:block;font-size:.57rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--muted);line-height:1.9}
.about-sig__b{color:var(--gold)}
.about-intro p{margin-bottom:1rem}

/* ==========================================================================
   Revision 15 — About introduction, type scale per markup
   ========================================================================== */

/* 1. quotation smaller */
.about-quote{font-size:clamp(1.02rem,1.35vw,1.22rem);line-height:1.55;margin-bottom:1.3rem}

/* 2. name and designation larger */
.about-sig{padding-left:20px;margin-bottom:2rem}
.about-sig__n{font-size:clamp(1.35rem,1.9vw,1.7rem);line-height:1.3;margin-bottom:.28rem}
.about-sig__r,.about-sig__b{font-size:.68rem;letter-spacing:.18em;line-height:1.85}
.about-sig__r{color:var(--walnut)}

/* 3. body copy larger, running the full column width */
.about-intro p{font-size:clamp(1rem,1.18vw,1.1rem);line-height:1.85;max-width:none;
  margin-bottom:1.15rem}
.about-intro .explore{font-size:clamp(.95rem,1.1vw,1.04rem);max-width:none}
.about-intro .about-quote{max-width:none}

/* ==========================================================================
   Revision 16 — About quote line balancing
   ========================================================================== */
/* spread the quote evenly over its lines so the last one is never a single
   orphaned word. A max-width in ch keeps older browsers close to two lines. */
.about-intro .about-quote{text-wrap:balance;max-width:38rem}
/* stop single-word last lines in the body copy too */
.about-intro p{text-wrap:pretty}

/* ==========================================================================
   REVISION — 10 Sep 2026
   1. one header geometry on every page, so the logo and navigation do not
      shift position when moving from the home page to an inner page
   2. philosophy band — compact spacing, outlined badges that fill on hover
   3. "What We Do" panels — service note card under the four bullet points
   ========================================================================== */

/* 1. header: identical logo size, centred nav and right-hand CTA everywhere.
      Scoped above the mobile breakpoint; below it every page already shares
      the same compact drawer header. */
@media(min-width:901px){
  .site-head{padding:22px 0}
  .home .site-head{padding:22px 0 0}
  .site-head .wrap{align-items:flex-start}
  .logo img{height:64px}
  .menu{flex:1;justify-content:center;position:relative;
    gap:clamp(18px,2.4vw,34px);padding-top:14px}
  .menu a{font-size:.63rem;letter-spacing:.16em}
  .menu .btn{position:absolute;right:0;top:2px;min-height:40px;padding:0 20px;
    font-size:.63rem;color:var(--ivory);
    background:var(--forest);border-color:var(--forest)}
  .menu .btn:hover{background:var(--olive-deep);border-color:var(--olive-deep)}
}

/* 2. philosophy band — tighter top and bottom, less air around the trio */
.philo-sec{padding-top:clamp(40px,4.4vw,64px);padding-bottom:clamp(22px,2.2vw,32px)}
.philo-sec + .pad{padding-top:clamp(40px,4.4vw,64px)}
.philo-sec .display{margin-bottom:0}
.philo-sec .sprig{margin:.9rem auto .3rem}
.philo-sec .trio p{margin-bottom:0}
.philo-sec .icn--fill{margin-bottom:1rem}

/* badges sit outlined by default and fill only on hover / keyboard focus */
.icn--fill{background:transparent;border-color:var(--gold)}
.icn--fill svg{stroke:var(--gold)}
.trio > div:hover .icn--fill,
.trio > div:focus-within .icn--fill{background:var(--forest);border-color:var(--forest)}
.trio > div:hover .icn--fill svg,
.trio > div:focus-within .icn--fill svg{stroke:var(--champagne)}

/* 3. service note card inside the What We Do panels */
.svcx__aside{background:var(--linen);padding:20px 22px;margin:0 0 22px;
  display:flex;gap:16px;align-items:flex-start}
.svcx__aside .icn{margin-bottom:0}
.svcx__aside .caps{margin-bottom:.4rem}
.svcx__aside p{color:var(--muted);font-size:.92rem;line-height:1.85}
@media(max-width:520px){
  .svcx__aside{padding:18px}
}

/* below 900px the home page keeps its own larger nav type and full-width CTA,
   which the inner pages do not — level them so the header stays identical
   right down to the drawer */
@media(min-width:801px) and (max-width:900px){
  .home .site-head .wrap{align-items:center}
  .home .menu{gap:16px}
  .home .menu .btn{position:static;width:auto;margin:0}
}
@media(max-width:900px){
  .home .menu a{font-size:.56rem;letter-spacing:.12em}
  .home .menu .btn{padding:0 16px;font-size:.54rem;letter-spacing:.16em;min-height:42px}
}
@media(max-width:800px){
  .home .menu{gap:0}
  .home .menu .btn{min-height:46px}
}

/* the About portrait is landscape and its column is portrait, so cover was
   cropping the sides on wide screens — show the whole frame instead, resting
   on the panel colour */
.bleed--photo .bleed__media{background:var(--pearl)}
.bleed--photo .bleed__media img{object-fit:contain;padding:clamp(14px,1.6vw,30px)}

/* keep the last line of a service description from dropping a single word */
.svcx__desc{text-wrap:pretty}

/* home — no connector rule behind the styling-journey badges */
.home .jsteps::before{display:none}
.home .jstep .icn{box-shadow:none}

/* ==========================================================================
   REVISION — 12 Sep 2026
   ========================================================================== */

/* 1. About portrait fills its column top to bottom, anchored left so the
      crop never runs into her */
.bleed--photo .bleed__media{background:none}
.bleed--photo .bleed__media img{object-fit:cover;object-position:left center;padding:0}

/* 2. philosophy trio reads as three quiet cards that warm up on hover */
.trio > div + div::before{display:none}
.trio > div{border:1px solid transparent;border-radius:2px;
  padding:clamp(24px,2.6vw,34px) clamp(14px,1.8vw,24px);
  transition:background .35s ease,border-color .35s ease}
.trio > div:hover,.trio > div:focus-within{background:var(--linen);border-color:var(--sand)}
.philo-sec .trio{gap:clamp(12px,1.6vw,24px)}

/* 3. the process band, less air above and below */
.proc-sec.pad{padding-block:clamp(44px,4.6vw,72px)}

/* 4. services page opens on a plain ivory hero, no photograph */
.sbanner--plain{min-height:0;background:var(--ivory);align-items:flex-start}
.sbanner--plain::after{display:none}
.sbanner--plain .wrap{padding-block:clamp(54px,5.6vw,84px) clamp(34px,3.6vw,52px)}
.sbanner--plain .caps{color:var(--gold)}
.sbanner--plain .display{color:var(--walnut);max-width:22ch}
.sbanner--plain .display em{color:var(--gold)}
.sbanner--plain .lede{color:var(--muted)}

/* 5. footer without the vignette — three balanced columns, links in two files */
.foot__grid{grid-template-columns:1.25fr 1fr 1.05fr;
  gap:clamp(30px,4vw,72px);align-items:start}
.foot__nav{columns:2;column-gap:clamp(18px,2vw,30px)}
.foot__nav li{break-inside:avoid}
.foot .signup p{margin-bottom:16px}
.foot .signup form{max-width:340px}
@media(max-width:900px){
  .foot__grid{grid-template-columns:1fr 1fr}
  .foot__brand{grid-column:1 / -1}
}
@media(max-width:640px){
  .foot__grid{grid-template-columns:1fr}
  .foot__nav{columns:2}
}

/* 6. service pages — horizontal tabs, picture left and copy right */
.svcx--h{display:block;grid-template-columns:none;border-top:0}
.svcx__tabs{display:flex;flex-wrap:wrap;border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);margin-bottom:clamp(30px,3.4vw,52px)}
.svcx__tab{flex:1 1 0;appearance:none;background:none;border:0;cursor:pointer;
  border-bottom:2px solid transparent;margin-bottom:-1px;
  padding:clamp(14px,1.5vw,20px) clamp(8px,1vw,16px);
  font-family:var(--body);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);line-height:1.5;transition:color .3s ease,border-color .3s ease,background .3s ease}
.svcx__tab:hover{color:var(--walnut);background:var(--pearl)}
.svcx__tab.is-on{color:var(--gold);border-bottom-color:var(--gold)}
.svcx__panels{padding-top:0}
.svcx__panel.is-on{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  gap:clamp(26px,3.4vw,58px);align-items:start}
.svcx--h .svcx__media{margin-bottom:0}
.svcx--h .svcx__media img{aspect-ratio:4/3}
.svcx--h .svcx__desc{max-width:none;font-size:1rem;margin-bottom:24px}
.svcx--h .svcx__tags{max-width:none;gap:12px 30px;margin-bottom:26px}
.svcx--h .svcx__body > .btn{margin-top:2px}
@media(max-width:900px){
  .svcx__tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .svcx__tab{flex:0 0 auto;white-space:nowrap;padding-inline:16px}
  .svcx__panel.is-on{grid-template-columns:1fr;gap:24px}
  .svcx--h .svcx__media{margin-bottom:4px}
}

/* the tab strip sits closer to the banner now that the intro block is gone */
.svcx-sec.pad{padding-block:clamp(44px,4.6vw,72px)}
@media(max-width:800px){
  .trio > div + div{border-top-color:transparent;margin-top:0}
}

/* home testimonial panel — three quotes on the dots, stacked so the panel
   keeps the height of the longest one and nothing shifts as they change */
.qslides{display:grid}
.qslide{grid-area:1/1;opacity:0;visibility:hidden;transition:opacity .5s ease}
.qslide.is-on{opacity:1;visibility:visible}
.qslide blockquote:last-child,.qslide .stars{margin-bottom:0}
.dots button{width:7px;height:7px;border-radius:50%;background:var(--taupe);opacity:.4;
  display:block;padding:0;border:0;appearance:none;cursor:pointer;
  transition:opacity .3s ease,background .3s ease,transform .3s ease}
.dots button:hover{opacity:.75}
.dots button.on{opacity:1;background:var(--gold);transform:scale(1.15)}
.dots button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* service tabs — larger labels, and the panel eases out and back in */
.svcx__tab{font-size:clamp(.7rem,.85vw,.84rem);letter-spacing:.1em;
  flex:0 1 auto;padding-inline:clamp(6px,.8vw,16px);text-wrap:balance}
.svcx__tabs{justify-content:space-between}
.svcx__panels{opacity:1;transform:none;
  transition:opacity .26s ease,transform .26s ease}
.svcx__panels.is-fading{opacity:0;transform:translateY(8px)}
@media(prefers-reduced-motion:reduce){
  .svcx__panels{transition:none}
}
@media(min-width:901px) and (max-width:1060px){
  .svcx__tab{flex:1 1 30%}
}

/* ==========================================================================
   service tabs — compact segmented bar, one row on desktop
   ========================================================================== */
.svcx__tabs{display:flex;flex-wrap:nowrap;justify-content:stretch;gap:4px;padding:5px;
  background:var(--pearl);border:1px solid var(--line);overflow:visible;
  margin-bottom:clamp(28px,3.2vw,48px)}
.svcx__tab{flex:1 1 0;margin-bottom:0;border:0;border-bottom:2px solid transparent;
  background:transparent;white-space:nowrap;text-wrap:nowrap;
  padding:clamp(11px,1.1vw,15px) clamp(4px,.6vw,10px);
  font-size:clamp(.68rem,.78vw,.8rem);font-weight:600;letter-spacing:.05em;
  color:var(--taupe);
  transition:background .3s ease,color .3s ease,border-color .3s ease}
.svcx__tab:hover{background:rgba(255,255,255,.45);color:var(--walnut)}
.svcx__tab.is-on{background:var(--ivory);color:var(--gold);border-bottom-color:var(--gold);
  box-shadow:0 1px 3px rgba(58,45,32,.07)}
.svcx__tab:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}

/* two rows of three once six no longer fit comfortably */
@media(max-width:1080px){
  .svcx__tabs{flex-wrap:wrap;overflow:visible}
  .svcx__tab{flex:1 1 30%}
}
@media(max-width:800px){
  .svcx__tab{flex:1 1 45%;white-space:normal;text-wrap:balance;padding-inline:10px}
}
@media(max-width:420px){
  .svcx__tab{flex:1 1 100%}
}

/* tabs as separate rounded chips — no tray behind them */
.svcx__tabs{background:none;border:0;padding:0;gap:5px}
.svcx__tab{background:var(--pearl);border:1px solid transparent;border-radius:999px;
  border-bottom:1px solid transparent;
  padding:clamp(12px,1.15vw,16px) clamp(6px,.8vw,14px);
  box-shadow:none}
.svcx__tab:hover{background:var(--linen);color:var(--walnut)}
.svcx__tab.is-on{background:var(--ivory);color:var(--gold);
  border-color:var(--gold);border-bottom-color:var(--gold);
  box-shadow:0 1px 4px rgba(58,45,32,.08)}

/* ==========================================================================
   REVISION — 22 Sep 2026
   header logo + socials · one footer for every page · home spacing and
   hover states · about split as a boxed card with a floating figures card
   ========================================================================== */

/* ---- header: social icons sit beside the CTA ------------------------- */
.menu__actions{display:flex;align-items:center;gap:14px}
.head-social{display:flex;align-items:center;gap:6px}
.menu .head-social a{display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;padding:0;border:1px solid var(--line);border-radius:50%;
  transition:border-color .3s ease,background .3s ease}
.menu .head-social a::after{display:none}
.head-social svg{width:13px;height:13px;fill:var(--gold);transition:fill .3s ease}
.menu .head-social a:hover{border-color:var(--gold);background:var(--gold)}
.menu .head-social a:hover svg{fill:#fff}

@media(min-width:901px){
  /* links stay centred in the room between the logo and the right-hand group */
  .site-head .menu{padding-top:2px;align-items:center}
  .menu > a:first-child{margin-left:auto}
  .menu > a:nth-last-child(2){margin-right:auto}
  .site-head .menu__actions .btn{position:static;top:auto;right:auto}
}
/* not enough width for the icons beside the links — they live in the footer */
@media(min-width:801px) and (max-width:1300px){
  .head-social{display:none}
}
/* mobile drawer: icons get their own row above the button */
@media(max-width:800px){
  .menu__actions{display:block;width:100%}
  .head-social{padding:14px 24px 2px}
  .menu .head-social a{width:34px;height:34px;padding:0}
  .menu > a:first-child,.menu > a:nth-last-child(2){margin:0}
}

/* ---- footer: home structure on every page, olive ground ------------- */
body .foot.foot--site{padding:clamp(40px,4vw,60px) 0 20px;
  background:var(--olive-deep);color:#D7D2C0;border-top:0}
.foot--site .foot__grid{grid-template-columns:1.15fr .62fr .86fr 1.55fr 1.05fr;
  gap:clamp(24px,3vw,48px);align-items:start}
body .foot--site .foot__brand img{height:48px;width:auto;margin-bottom:14px}
body .foot--site .foot__brand p{font-size:.8rem;line-height:1.75;max-width:28ch;
  margin-bottom:16px;color:#CFC9B6}
body .foot--site h4{color:var(--champagne);margin-bottom:14px}
body .foot--site .foot__nav{columns:auto}
body .foot--site .foot__nav li{margin-bottom:6px}
body .foot--site .foot__nav a{font-size:.78rem;line-height:1.7;color:#D7D2C0}
body .foot--site .foot__nav a:hover{color:var(--champagne)}
body .foot--site .foot__social a{width:32px;height:32px;border-color:rgba(216,199,160,.35)}
body .foot--site .foot__social svg{fill:var(--champagne)}
body .foot--site .foot__social a:hover{background:var(--champagne);border-color:var(--champagne)}
body .foot--site .foot__social a:hover svg{fill:var(--olive-deep)}
.foot--site .ig-grid{gap:6px}
.foot--site .ig-grid a{display:block;overflow:hidden}
.foot--site .ig-grid img{transition:transform .6s ease,opacity .4s ease}
.foot--site .ig-grid a:hover img{transform:scale(1.07);opacity:.9}
body .foot--site p{color:#CFC9B6}
body .foot--site .subscribe{border-color:rgba(216,199,160,.35);background:rgba(255,255,255,.04)}
body .foot--site .subscribe input{color:#EFE9DD;font-size:.8rem}
.foot--site .subscribe input::placeholder{color:rgba(239,233,221,.55)}
body .foot--site .subscribe button{background:var(--champagne);color:var(--olive-deep)}
body .foot--site .subscribe button:hover{background:#fff}
body .foot--site .foot__base{margin-top:clamp(26px,2.8vw,40px);padding-top:18px;
  border-top:1px solid rgba(216,199,160,.2);color:rgba(215,210,192,.7);
  font-size:.62rem;letter-spacing:.14em;text-transform:uppercase}
body .foot--site .foot__base a{color:rgba(215,210,192,.7)}
body .foot--site .foot__base a:hover{color:var(--champagne)}
.foot--site .foot__base .legal{gap:22px;align-items:center}
@media(max-width:1020px){
  .foot--site .foot__grid{grid-template-columns:1fr 1fr}
  .foot--site .foot__brand{grid-column:1 / -1}
}
@media(max-width:640px){
  .foot--site .foot__grid{grid-template-columns:1fr}
  .foot--site .foot__base,.foot--site .foot__base .legal{flex-direction:column;gap:10px}
}

/* ---- home ------------------------------------------------------------ */
/* hero leaves room for the opening of the welcome text on first view */
@media(min-width:901px){
  .home .hero{min-height:0;height:clamp(470px,min(40vw,calc(100vh - 170px)),660px)}
}
/* 25px of vertical padding in every home section */
.home main > section.pad,.home .journey.pad{padding-block:25px}
.home .moments__intro{padding-block:25px}

/* welcome — a longer measure, so no single word drops to the last line */
.home .welcome p{max-width:70ch;text-wrap:pretty;margin-bottom:.7rem}
.home .welcome .caps{margin-bottom:.9rem}

/* styling journey — each step lifts into a card on hover */
.home .jstep{padding:clamp(18px,2vw,26px) clamp(10px,1.4vw,18px);border:1px solid transparent;
  border-radius:2px;transition:background .35s ease,border-color .35s ease,
  transform .35s ease,box-shadow .35s ease}
.home .jstep:hover{background:var(--ivory);border-color:var(--sand);transform:translateY(-4px);
  box-shadow:0 14px 30px rgba(58,45,32,.08)}
.home .jstep .icn{transition:background .35s ease,border-color .35s ease}
.home .jstep .icn svg{transition:stroke .35s ease}
.home .jstep:hover .icn{background:var(--forest);border-color:var(--forest)}
.home .jstep:hover .icn svg{stroke:var(--champagne)}

/* timeless moments — zoom, veil, inset frame and a caption on hover */
.moments__grid .mom{position:relative;display:block;overflow:hidden;background:var(--linen)}
.moments__grid .mom img{display:block;transition:transform .9s cubic-bezier(.4,0,.2,1)}
.mom::after{content:"";position:absolute;inset:0;z-index:1;background:rgba(45,54,41,.38);
  opacity:0;transition:opacity .45s ease}
.mom::before{content:"";position:absolute;inset:10px;z-index:2;
  border:1px solid rgba(240,235,226,.75);opacity:0;transform:scale(.97);
  transition:opacity .45s ease,transform .45s ease}
.mom__cap{position:absolute;left:50%;bottom:20px;z-index:3;transform:translate(-50%,8px);
  font-size:.56rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ivory);
  white-space:nowrap;opacity:0;transition:opacity .45s ease,transform .45s ease}
.mom:hover img,.mom:focus-visible img{transform:scale(1.07)}
.mom:hover::after,.mom:hover::before,.mom:hover .mom__cap,
.mom:focus-visible::after,.mom:focus-visible::before,.mom:focus-visible .mom__cap{opacity:1}
.mom:hover::before,.mom:focus-visible::before{transform:none}
.mom:hover .mom__cap,.mom:focus-visible .mom__cap{transform:translate(-50%,0)}

/* testimonial — pagination sits well below the stars */
.home .quote-panel .dots{margin-top:28px}

/* ---- about: boxed split + floating figures card --------------------- */
.about-box{padding-block:clamp(24px,2.6vw,40px) clamp(48px,5vw,80px)}
.bleed--boxed{grid-template-columns:1fr 1fr;background:var(--pearl)}
.bleed--boxed .bleed__media{min-height:clamp(420px,44vw,640px)}
.bleed--boxed .bleed__body{padding:clamp(36px,4vw,64px) clamp(28px,4vw,64px) clamp(84px,8vw,120px)}
.stats.stats--card{position:relative;z-index:3;width:calc(100% - clamp(40px,8vw,100px));
  margin:calc(-1 * clamp(44px,4.4vw,64px)) auto 0;border-top:0;
  background:var(--pearl);padding:clamp(22px,2.4vw,34px) clamp(28px,5vw,90px);
  gap:clamp(14px,3vw,40px);
  box-shadow:0 20px 50px rgba(58,45,32,.14),0 3px 10px rgba(58,45,32,.06)}
.stats--card .stats__n,.stats--card .stats__p{font-size:clamp(2.2rem,3.8vw,3.3rem)}
.stats--card .stats__l{font-size:.68rem;letter-spacing:.26em;margin-top:.5rem}
@media(max-width:900px){
  .bleed--boxed{grid-template-columns:1fr}
  .bleed--boxed .bleed__body{padding-bottom:clamp(70px,12vw,96px)}
  .bleed--boxed .bleed__media{min-height:clamp(340px,80vw,560px)}
}
@media(max-width:520px){
  .stats.stats--card{width:calc(100% - 28px);padding:22px 24px}
}
/* mobile drawer — Services lined up with the other links */
@media(max-width:800px){
  .menu .has-sub{display:block;width:100%;text-align:left}
  .menu .has-sub > a{display:block}
}
