/* ============================================================
   Awaken to Your Wholeness
   Palette sampled directly from the ATYW logo and the brand
   graphic tiles. Layout is deliberately asymmetric and denser
   than pritamtara.com so the two never read as the same site.

   LOCKED: BRAND. The switcher and the alternates are removed.
   The Ember values are kept commented below purely as a one
   line revert if you ever want to go back.
   ============================================================ */

/* ---------- PALETTE · BRAND (sampled from the logo) ---------- */
:root{
  --bg:       #FCF7EF;
  --bg2:      #F3E9D9;
  --deep:     #43372C;
  --ink:      #2A211A;
  --fg:       #2E2620;
  --fg2:      #7F6754;
  --accent:   #AE7048;
  --accent-2: #E0A26D;
  --line:     #E4D6C1;
  --line-dk:  rgba(243,233,217,.2);
  --on-deep:  #F3E9D9;
  --on-deep-2:#BCA894;
  --card:     #FFFDF9;
  --cta:      #C4703E;   /* nav Book a call, lighter than --accent */
  --shadow:   rgba(67,55,44,.5);
}

/* Ember, the previous default, kept only as a revert reference:
   --bg:#FEF8F1; --bg2:#FBEADA; --deep:#4E3025; --ink:#30190F;
   --fg:#2E221C; --fg2:#8A6B58; --accent:#C4703E; --accent-2:#F0AC74;
   --line:#EEDCC8; --line-dk:rgba(251,234,218,.2);
   --on-deep:#FBEADA; --on-deep-2:#C9AC96; --card:#FFFCF8;
   --shadow:rgba(78,48,37,.5);
*/

/* ---------- constants ---------- */
:root{
  --display:'Italiana', Georgia, serif;
  --sans:'Karla', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --wrap:1280px;
  --gut:5.5vw;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:92px; }

body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family:var(--sans);
  font-weight:400;
  font-size:17px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }
a{ color:inherit; }

/* ================= TYPE ================= */

h1,h2,h3{
  font-family:var(--display);
  font-weight:400;
  letter-spacing:.015em;
  line-height:1.12;
  margin:0;
}
h1{ font-size:clamp(2.6rem, 5.8vw, 4.5rem); }
h2{ font-size:clamp(2rem, 3.9vw, 3.2rem); }
h3{ font-size:clamp(1.35rem, 1.9vw, 1.7rem); letter-spacing:.025em; }
h4{
  font-family:var(--sans); font-size:.7rem; font-weight:500;
  letter-spacing:.24em; text-transform:uppercase;
  color:var(--accent); margin:0 0 1rem;
}

em,.it{ font-style:italic; color:var(--accent); }
strong,b{ font-weight:500; color:var(--fg); }
p{ margin:0 0 1.15em; }

/* accent underline on a phrase inside body copy */
.hl{
  color:var(--fg);
  background:linear-gradient(transparent 66%, color-mix(in srgb, var(--accent) 26%, transparent) 0);
}

/* section marker: the brand sunburst, replacing pritamtara's dash */
.eyebrow{
  font-family:var(--display);
  font-size:1.02rem; font-weight:400;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--accent);
  margin:0 0 1.5rem;
  display:flex; align-items:center; gap:.7rem;
  line-height:1;
}
/* inline SVG sunburst, takes the palette accent via currentColor */
.bmark{ width:32px; flex:none; display:block; color:var(--accent); }
.bmark svg{ width:100%; height:auto; display:block; }
.eyebrow .bmark svg polygon{ stroke-width:4.2; }
.bmark{ margin-top:-1px; }
.deep .bmark{ color:var(--accent-2); }
.eyebrow.center{ justify-content:center; }
.eyebrow.plain::before{ display:none; }

.lede{
  font-size:clamp(1.1rem, 1.35vw, 1.24rem);
  line-height:1.72;
  color:var(--fg2);
}
.deep .lede{ color:var(--on-deep-2); }

.measure   { max-width:34em; }
.measure-lg{ max-width:44em; }

/* ================= LAYOUT ================= */

.wrap{
  width:100%; max-width:var(--wrap);
  margin-inline:auto; padding-inline:var(--gut);
  position:relative; z-index:2;
}
.wrap-wide{ max-width:1560px; }

section{ position:relative; }
.pad   { padding-block:clamp(4.5rem, 9vw, 7.5rem); }
.pad-sm{ padding-block:clamp(3rem, 6vw, 5rem); }

.tint{ background:var(--bg2); }
.deep{ background:var(--deep); color:var(--on-deep); }
.deep h4,.deep .eyebrow,.deep em,.deep .it{ color:var(--accent-2); }
.deep strong{ color:var(--on-deep); }
.deep .rule{ background:var(--accent-2); }

/* asymmetric grids. never 1fr 1fr. */
.g{ display:grid; gap:clamp(2rem,4.5vw,4.5rem); align-items:center; }
/* a grid track must never be forced wider than its container by long content */
.g > *{ min-width:0; }
.g-7-5{ grid-template-columns:7fr 5fr; }
.g-5-7{ grid-template-columns:5fr 7fr; }
.g-8-4{ grid-template-columns:8fr 4fr; }
.g-4-8{ grid-template-columns:4fr 8fr; }
.g-6-5{ grid-template-columns:6fr 5fr; }
.g.top{ align-items:start; }
.g.bottom{ align-items:end; }

/* vertical offsets, the thing that stops it reading as a tidy grid */
.up-1{ margin-top:clamp(-2rem,-3vw,-3rem); }
.up-2{ margin-top:clamp(-3.5rem,-6vw,-6rem); }
.dn-1{ margin-top:clamp(2rem,3.5vw,3.5rem); }
.dn-2{ margin-top:clamp(3.5rem,6vw,6rem); }

.rule{
  width:1px; height:52px; background:var(--accent);
  border:0; margin:1.7rem 0; opacity:.9;
}
.rule.center{ margin-inline:auto; }

/* ================= BUTTONS ================= */

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.7em;
  font-family:var(--sans); font-size:.68rem; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase; text-decoration:none;
  padding:1.15em 2.4em; border-radius:2px;
  transition:all .35s cubic-bezier(.4,0,.2,1); white-space:nowrap;
}
.btn-solid{ background:var(--accent); color:#fff; border:1px solid var(--accent); }
.btn-solid:hover{ background:var(--fg); border-color:var(--fg); }
.btn-ghost{ background:transparent; color:var(--fg); border:1px solid var(--accent); }
.btn-ghost:hover{ background:var(--accent); color:#fff; }
.deep .btn-solid{ background:var(--accent-2); border-color:var(--accent-2); color:var(--ink); }
.deep .btn-solid:hover{ background:var(--on-deep); border-color:var(--on-deep); }
.deep .btn-ghost{ color:var(--on-deep); border-color:var(--line-dk); }
.deep .btn-ghost:hover{ background:var(--accent-2); border-color:var(--accent-2); color:var(--ink); }
.btn-row{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2.1rem; }
.btn-row.center{ justify-content:center; }

.arrow{
  display:inline-flex; align-items:center; gap:.55em;
  font-size:.68rem; letter-spacing:.2em; text-transform:uppercase;
  font-weight:500; text-decoration:none; color:var(--accent);
  transition:.3s;
}
.arrow::after{ content:'\2192'; transition:transform .3s; }
.arrow:hover::after{ transform:translateX(6px); }

/* ================= HEADER ================= */

header.site{
  position:fixed; inset:0 0 auto 0; z-index:200;
  padding-block:1.15rem;
  transition:background .4s, box-shadow .4s, padding .4s;
}
header.site.stuck{
  background:color-mix(in srgb, var(--bg) 95%, transparent);
  backdrop-filter:saturate(150%) blur(14px);
  box-shadow:0 1px 0 var(--line);
  padding-block:.7rem;
}
.nav{
  display:flex; align-items:center; justify-content:space-between; gap:1.6rem;
  max-width:1560px; margin-inline:auto; padding-inline:var(--gut);
}
.brand{ display:block; text-decoration:none; flex-shrink:0; }
.brand .lg-light{ display:none; }
body.dark-top header.site:not(.stuck) .brand .lg-light{ display:block; }
body.dark-top header.site:not(.stuck) .brand .lg-dark{ display:none; }
body.dark-top header.site:not(.stuck) .nav-links > li > a{ color:rgba(255,255,255,.78); }
body.dark-top header.site:not(.stuck) .nav-links > li > a:hover,
body.dark-top header.site:not(.stuck) .nav-links > li > a.on{ color:var(--accent-2); }
body.dark-top header.site:not(.stuck) .nav-cta{
  background:var(--cta); border-color:var(--cta); color:#fff;
}
body.dark-top header.site:not(.stuck) .nav-cta:hover{ background:#fff; border-color:#fff; color:var(--ink); }
body.dark-top header.site:not(.stuck) .burger span{ background:#fff; }
@media (max-width:900px){
  body.dark-top header.site:not(.stuck) .nav-links.open > li > a{ color:var(--fg2); }
  body.dark-top header.site:not(.stuck) .nav-links.open .brand{ }
}
.brand img{ width:clamp(160px,17vw,215px); height:auto; transition:width .4s; }
header.site.stuck .brand img{ width:clamp(142px,14vw,175px); }

.nav-links{
  display:flex; align-items:center; gap:1.9rem;
  list-style:none; margin:0; padding:0;
}
.nav-links > li{ position:relative; }
.nav-links a{
  text-decoration:none; font-size:.67rem; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase; color:var(--fg2);
  transition:color .3s; display:inline-flex; align-items:center; gap:.4em;
}
.nav-links a:hover,.nav-links a.on{ color:var(--accent); }

/* programs dropdown */
.has-sub > a::after{
  content:''; width:5px; height:5px; margin-left:.1em;
  border-right:1px solid currentColor; border-bottom:1px solid currentColor;
  transform:translateY(-2px) rotate(45deg);
}
.sub{
  position:absolute; top:100%; left:-1.2rem;
  background:var(--card); border:1px solid var(--line);
  border-radius:2px; padding:.7rem 0; min-width:330px;
  list-style:none; margin:.7rem 0 0;
  box-shadow:0 24px 50px -34px var(--shadow);
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:.28s;
}
.has-sub:hover .sub,.has-sub:focus-within .sub{ opacity:1; visibility:visible; transform:none; }
.sub a{
  display:block; padding:.62rem 1.2rem; letter-spacing:.13em;
  font-size:.66rem; color:var(--fg2); white-space:nowrap;
}
.sub a:hover{ background:var(--bg2); color:var(--accent); }
.nav-cta{
  padding:.9em 1.7em; font-size:.62rem;
  background:var(--cta); border-color:var(--cta); color:#fff;
}
.nav-cta:hover{ background:var(--fg); border-color:var(--fg); color:#fff; }

.burger{
  display:none; background:none; border:0; cursor:pointer;
  width:30px; height:22px; padding:0; position:relative; z-index:3;
}
.burger span{ position:absolute; left:0; height:1.5px; width:100%; background:var(--fg); transition:.35s; }
.burger span:nth-child(1){ top:3px; }
.burger span:nth-child(2){ top:10px; }
.burger span:nth-child(3){ top:17px; }
.burger.open span:nth-child(1){ top:10px; transform:rotate(45deg); }
.burger.open span:nth-child(2){ opacity:0; }
.burger.open span:nth-child(3){ top:10px; transform:rotate(-45deg); }

/* ================= HERO ================= */

.hero{
  position:relative; overflow:hidden;
  padding-block:clamp(8.5rem,14vw,11rem) clamp(3.5rem,7vw,6rem);
  background:var(--bg2);
}
.hero-grid{
  display:grid; grid-template-columns:6fr 5fr;
  gap:clamp(2rem,5vw,4.5rem); align-items:center;
}
.hero h1{ font-size:clamp(2.4rem, 4.9vw, 3.9rem); }
.hero h1 .line{ display:block; }
.hero .kicker{
  font-family:var(--sans); font-size:.7rem; font-weight:500;
  letter-spacing:.26em; text-transform:uppercase; color:var(--accent);
  margin:0 0 1.5rem;
}
.hero .tagline{
  font-family:var(--display); font-style:italic;
  font-size:clamp(1.2rem,1.9vw,1.55rem);
  color:var(--fg2); letter-spacing:.02em; margin:1.4rem 0 0;
}
/* photo breaks its column and bleeds to the right edge */
.hero-ph{ position:relative; }
.hero-ph img{ width:100%; border-radius:2px; }
.hero-ph::before{
  content:''; position:absolute; inset:-24px 40% -24px -24px;
  border:1px solid var(--accent); opacity:.45; border-radius:2px; z-index:-1;
}

/* the quiet line under the hero buttons */
.reassure{
  margin:1.4rem 0 0; font-size:.92rem; color:var(--fg2);
  max-width:34em; line-height:1.6;
}

/* scrolling tagline strip, straight off the original site */
.marquee{
  background:var(--deep); color:var(--accent-2);
  overflow:hidden; white-space:nowrap; padding-block:1.05rem;
  border-block:1px solid var(--line-dk);
}
.marquee-in{ display:inline-flex; gap:2.2rem; animation:mq 42s linear infinite; }
.marquee span{
  font-family:var(--display); font-size:.84rem;
  letter-spacing:.2em; text-transform:uppercase; display:inline-flex;
  align-items:center; gap:2.6rem;
}
.marquee span::after{ content:''; width:7px; height:7px; border:1px solid currentColor; transform:rotate(45deg); }
@keyframes mq{ to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){ .marquee-in{ animation:none; } }

/* ================= GRAPHIC ACCENTS ================= */

/* sunburst markers, inline SVG so they follow the accent colour */
.marker{ width:32px; display:block; color:var(--accent); margin-bottom:1.1rem; }
.marker svg{ width:100%; height:auto; display:block; }
.marker.center{ margin-inline:auto; }
.deep .marker{ color:var(--accent-2); }

/* the signet as oversized texture, bleeding off an edge */
.signet{
  position:absolute; top:50%; right:-8%;
  transform:translateY(-50%);
  width:min(540px,78vw); opacity:.07; z-index:0; pointer-events:none;
}
.signet.left{ right:auto; left:-9%; }
.signet.bottom{ top:auto; bottom:-32%; transform:none; }

/* photographic ground behind a dark band */
.band-bg{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.band-bg img{ width:100%; height:100%; object-fit:cover; }
.band-bg::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(94deg,
    color-mix(in srgb, var(--deep) 96%, transparent) 0%,
    color-mix(in srgb, var(--deep) 88%, transparent) 46%,
    color-mix(in srgb, var(--deep) 58%, transparent) 100%);
}
.has-bg > .wrap{ z-index:3; }

/* small floating gold accents */
.float{
  position:absolute; z-index:1; pointer-events:none; user-select:none;
}
.float img{ width:100%; height:auto; display:block; }
.float.tr{ top:-2%; right:-4%; width:clamp(120px,16vw,240px); opacity:.5; }
.float.bl{ bottom:-4%; left:-5%; width:clamp(110px,14vw,210px); opacity:.42; }
.float.br{ bottom:-3%; right:-3%; width:clamp(110px,15vw,220px); opacity:.42; }
@media (max-width:820px){ .float{ display:none; } }

@keyframes bob{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(7px) } }

/* transparent line-art accents, floated rather than blocked */
.accent{
  display:block; pointer-events:none; user-select:none;
  position:absolute; z-index:0; opacity:.9;
}
.accent img{ width:100%; height:auto; display:block; }
.accent.soft{ opacity:.4; }
.accent.faint{ opacity:.18; }

/* a row of small motifs used as a section break, on the page colour */
.motif-row{
  display:flex; align-items:center; justify-content:center;
  gap:clamp(2rem,6vw,5.5rem);
  padding-block:clamp(2.4rem,5vw,4rem);
}
.motif-row img{ width:clamp(58px,7vw,104px); height:auto; opacity:.55; }
.motif-row img:nth-child(2){ width:clamp(76px,9.5vw,140px); opacity:.75; }

/* a single motif sitting behind or beside content */
.motif{ width:clamp(90px,11vw,160px); height:auto; opacity:.6; }
.motif.lg{ width:clamp(150px,20vw,300px); }

/* arch panels as a three-up divider */
.arches{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(.8rem,1.6vw,1.4rem);
}
.arches figure{ margin:0; }
/* the three phases, read as a list beside one photograph */
.phases{ list-style:none; margin:clamp(1.8rem,3vw,2.4rem) 0 0; padding:0; }
.phases li{ border-top:1px solid var(--line); padding:clamp(1rem,1.7vw,1.3rem) 0; }
.phases li:last-child{ border-bottom:1px solid var(--line); }
.phases .k{
  display:block; font-family:var(--display); font-size:1.28rem;
  line-height:1.2; margin-bottom:.32rem;
}
.phases .v{ display:block; font-size:.94rem; color:var(--fg2); }
.arches figcaption{
  margin-top:.9rem; text-align:center;
  font-family:var(--display); font-size:clamp(.92rem,1.1vw,1.05rem);
  letter-spacing:.18em; text-transform:uppercase; color:var(--accent);
}
.arches{ align-items:end; }
@media (max-width:620px){
  .arches{ gap:.6rem; }
  .arches figcaption{ font-size:.6rem; letter-spacing:.06em; margin-top:.7rem; }
}

/* big numeral behind step text */
.step{ position:relative; padding-top:2.8rem; }
.numeral{
  position:absolute; top:-1.4rem; left:-.6rem;
  font-family:var(--display); font-size:clamp(4rem,7vw,6.4rem);
  line-height:1; color:var(--accent); opacity:.17; z-index:0;
  pointer-events:none;
}
.step > *{ position:relative; z-index:1; }
.step h3{ margin-bottom:.6rem; }
.step p{ color:var(--fg2); font-size:.98rem; margin:0; }

/* ================= PHOTOS ================= */

.ph{ position:relative; }
.ph img{ width:100%; height:100%; object-fit:cover; border-radius:2px; }
.ph.tall img{ aspect-ratio:3/4; }
.ph.square img{ aspect-ratio:1/1; }
.ph.wide img{ aspect-ratio:4/3; }
/* offset frame, opposite corner from pritamtara's */
.ph.framed::after{
  content:''; position:absolute;
  top:-22px; left:-22px; right:22px; bottom:22px;
  border:1px solid var(--accent); opacity:.38;
  pointer-events:none; border-radius:2px; z-index:-1;
}
.ph.framed.flip::after{ left:22px; right:-22px; }

/* two images, the second overlapping the first */
.stack{ position:relative; }
.stack .b{
  position:absolute; right:-10%; bottom:-16%;
  width:44%; aspect-ratio:4/5; object-fit:cover; object-position:center 22%;
  border:6px solid var(--bg); border-radius:2px;
  box-shadow:0 26px 52px -34px var(--shadow);
}
.stack.flip .b{ right:auto; left:-12%; }

.bleed-r{ margin-right:calc(var(--gut) * -1); }
.bleed-l{ margin-left:calc(var(--gut) * -1); }
.full-img{
  width:100%; display:block;
  height:clamp(230px,26vw,380px); object-fit:cover; object-position:center 32%;
}

/* ================= PULL QUOTE ================= */

.pull{
  border-left:2px solid var(--accent);
  padding:.4rem 0 .4rem 1.8rem;
  margin:2.4rem 0;
  font-family:var(--display);
  font-size:clamp(1.35rem,2.1vw,1.85rem);
  line-height:1.35; color:var(--fg);
  max-width:24em;
}
.pull cite{
  display:block; margin-top:1rem; font-family:var(--sans);
  font-style:normal; font-size:.62rem; font-weight:500;
  letter-spacing:.26em; text-transform:uppercase; color:var(--fg2);
}
.deep .pull{ color:var(--on-deep); border-color:var(--accent-2); }
.deep .pull cite{ color:var(--on-deep-2); }

/* statement band, big serif, offset not centred */
.statement blockquote{
  margin:0; max-width:min(780px,92%);
  font-family:var(--display);
  font-size:clamp(1.85rem,3.5vw,3rem);
  line-height:1.26; letter-spacing:.015em;
}
.statement cite{
  display:block; margin-top:2rem; font-family:var(--sans);
  font-style:normal; font-size:.62rem; font-weight:500;
  letter-spacing:.3em; text-transform:uppercase; color:var(--accent-2);
}

/* ================= PROGRAM CARDS ================= */

.progs{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(1.2rem,2.2vw,1.9rem);
  margin-top:3.2rem;
  align-items:start;
}
/* staggered, not a flat row */
.progs > *:nth-child(2){ margin-top:clamp(1.6rem,3.4vw,3.4rem); }
.progs > *:nth-child(3){ margin-top:clamp(3.2rem,6.6vw,6.6rem); }

.prog{
  background:var(--card); border:1px solid var(--line);
  border-radius:2px; overflow:hidden;
  display:flex; flex-direction:column;
  text-decoration:none; color:inherit;
  transition:.4s cubic-bezier(.4,0,.2,1);
}
.prog:hover{
  transform:translateY(-5px);
  border-color:var(--accent);
  box-shadow:0 28px 56px -36px var(--shadow);
}
.prog .top{ line-height:0; background:var(--bg2); }
.prog .top img{ width:100%; aspect-ratio:5/4; object-fit:cover; }
.prog .body{ padding:1.9rem 1.7rem 1.7rem; display:flex; flex-direction:column; flex:1; }
.prog .name{ font-family:var(--display); font-size:1.62rem; letter-spacing:.025em; line-height:1.16; }
.prog .lead{ font-family:var(--display); font-style:italic; font-size:1.16rem; color:var(--accent); margin:.7rem 0 0; }
.prog p{ font-size:.96rem; color:var(--fg2); margin:1rem 0 0; }
.prog .go{
  margin-top:auto; padding-top:1.4rem;
  font-size:.64rem; font-weight:500; letter-spacing:.2em;
  text-transform:uppercase; color:var(--accent);
  display:inline-flex; align-items:center; gap:.5em;
}
.prog .go::after{ content:'\2192'; transition:transform .3s; }
.prog:hover .go::after{ transform:translateX(6px); }

/* ================= TESTIMONIALS (staggered stack) ================= */

.quotes{ columns:2; column-gap:clamp(1.2rem,2.4vw,2rem); }
@media (max-width:900px){ .quotes{ columns:1; } }
.q{
  break-inside:avoid; margin:0 0 clamp(1.2rem,2.4vw,2rem);
  background:var(--card); border:1px solid var(--line);
  border-radius:2px; padding:2rem 1.9rem 1.7rem;
}
.q:nth-child(3n+2){ border-left:3px solid var(--accent); }
.q .tag{
  font-size:.6rem; font-weight:500; letter-spacing:.22em;
  text-transform:uppercase; color:var(--accent); margin:0 0 1.1rem;
}
.q .head{
  font-family:var(--display); font-size:clamp(1.2rem,1.7vw,1.5rem);
  line-height:1.3; margin:0 0 1rem; color:var(--fg);
}
.q blockquote{ margin:0; font-size:.97rem; color:var(--fg2); }
.q blockquote p{ margin:0 0 .9em; }
.q figcaption{
  margin-top:1.3rem; padding-top:1.1rem; border-top:1px solid var(--line);
  font-size:.64rem; font-weight:500; letter-spacing:.2em;
  text-transform:uppercase; color:var(--fg2);
}
.q figcaption small{
  display:block; text-transform:none; letter-spacing:.06em;
  font-weight:400; font-size:.78rem; margin-top:.3rem; opacity:.85;
}

/* ================= CREDENTIAL LISTS ================= */

.creds{ list-style:none; margin:0; padding:0; }
.creds li{
  padding:.85rem 0; border-bottom:1px solid var(--line);
  display:flex; justify-content:space-between; gap:1.4rem;
  font-size:.95rem;
}
.creds li span:last-child{
  color:var(--fg2); font-size:.6rem; font-weight:500;
  letter-spacing:.16em; text-transform:uppercase;
  white-space:nowrap; padding-top:.55em; text-align:right;
}
.deep .creds li{ border-color:var(--line-dk); }
.deep .creds li span:last-child{ color:var(--on-deep-2); }

/* certification logo row, white marks on a dark band */
.certs{
  display:flex; flex-wrap:wrap; align-items:center;
  gap:clamp(1.8rem,4.5vw,3.6rem);
  margin-top:clamp(2.4rem,4vw,3.2rem);
  padding-top:clamp(2rem,3.5vw,2.8rem);
  border-top:1px solid var(--line-dk);
}
.certs img{
  height:clamp(54px,5.6vw,72px); width:auto;
  opacity:.55; transition:opacity .35s;
}
/* the Onaya lockup is wide, so match it by optical weight rather than height */
.certs img[alt^="Onaya"]{ height:clamp(38px,3.9vw,50px); }
.certs img:hover{ opacity:.85; }
.certs .lbl{
  width:100%; font-size:.6rem; font-weight:500; letter-spacing:.24em;
  text-transform:uppercase; color:var(--on-deep-2); margin-bottom:.4rem;
}

/* chips, for the medicines and the modalities */
.chips{ display:flex; flex-wrap:wrap; gap:.5rem; margin:1.4rem 0 0; padding:0; list-style:none; }
.chips li{
  font-size:.7rem; letter-spacing:.13em; text-transform:uppercase;
  border:1px solid var(--line); border-radius:2px;
  padding:.5em 1em; color:var(--fg2);
}
.deep .chips li{ border-color:var(--line-dk); color:var(--on-deep-2); }
.chips.accent li{ border-color:color-mix(in srgb, var(--accent) 45%, transparent); color:var(--accent); }

/* bulleted list with the accent tick */
.ticks{ list-style:none; padding:0; margin:1.6rem 0 0; }
.ticks li{
  position:relative; padding-left:1.7rem; margin-bottom:.75rem;
  color:var(--fg2); font-size:.98rem;
}
.ticks li::before{
  content:''; position:absolute; left:0; top:.78em;
  width:11px; height:1px; background:var(--accent);
}
.ticks.two{ columns:2; column-gap:2.4rem; }
@media (max-width:760px){ .ticks.two{ columns:1; } }
.deep .ticks li{ color:var(--on-deep-2); }
.deep .ticks li::before{ background:var(--accent-2); }

/* ================= CARDS / PANELS ================= */

.panel{
  background:var(--card); border:1px solid var(--line);
  border-radius:2px; padding:clamp(2rem,3.6vw,3rem);
}
.panel.accent-edge{ border-left:3px solid var(--accent); }
/* pulled up over the band above it */
.overlap{ margin-top:clamp(-3rem,-5vw,-5.5rem); position:relative; z-index:5; }

.scope{
  border-left:2px solid var(--accent);
  padding:.2rem 0 .2rem 1.6rem; max-width:46em;
}
.scope h3{ font-size:1.2rem; margin:0 0 .7rem; }
.scope p{ font-size:.88rem; color:var(--fg2); line-height:1.72; margin:0 0 .7em; }
.scope p:last-child{ margin:0; }

/* free resource cards */
.res{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:clamp(1.2rem,2.2vw,1.8rem); margin-top:3rem;
}
.resource{
  background:var(--card); border:1px solid var(--line); border-radius:2px;
  display:flex; flex-direction:column; overflow:hidden;
  transition:.4s cubic-bezier(.4,0,.2,1);
}
.resource:hover{ border-color:var(--accent); box-shadow:0 26px 52px -36px var(--shadow); transform:translateY(-4px); }
.resource .art{
  line-height:0; background:var(--bg2);
  padding:1.6rem 1.4rem .6rem; display:flex; align-items:flex-end;
  justify-content:center; min-height:210px;
}
.resource .art img{ width:88%; height:auto; filter:drop-shadow(0 16px 24px rgba(0,0,0,.14)); }
.resource .body{ padding:1.7rem 1.6rem 1.6rem; display:flex; flex-direction:column; flex:1; }
.resource h3{ margin-bottom:.6rem; }
.resource p{ font-size:.94rem; color:var(--fg2); margin:0; }
.resource .btn{ margin-top:auto; align-self:flex-start; }
.resource .soon{
  margin-top:auto; padding-top:1.6rem; font-size:.62rem; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase; color:var(--fg2);
}

/* contact block */
.connect{
  display:grid; grid-template-columns:5fr 6fr;
  gap:clamp(2rem,5vw,4.5rem); align-items:center;
}
.contact-email{
  font-family:var(--display); font-size:clamp(1.35rem,2.7vw,2.05rem);
  letter-spacing:.02em; color:inherit; text-decoration:none;
  border-bottom:1px solid var(--accent-2); padding-bottom:.12em;
  display:inline-block; transition:.3s; word-break:break-word;
}
.contact-email:hover{ color:var(--accent-2); }

.signature{ width:min(260px,60vw); margin:2rem 0 0; opacity:.95; }

/* video banner */
.banner.has-video{ background:var(--ink); }
.banner-video{
  position:absolute; inset:0; z-index:0; overflow:hidden;
}
.banner-video video,.banner-video img{
  width:100%; height:100%; object-fit:cover; object-position:center 42%;
}
.banner-veil{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(96deg,
    color-mix(in srgb, var(--ink) 92%, transparent) 0%,
    color-mix(in srgb, var(--ink) 78%, transparent) 42%,
    color-mix(in srgb, var(--ink) 30%, transparent) 78%,
    color-mix(in srgb, var(--ink) 12%, transparent) 100%);
}
.banner.has-video .wrap{ z-index:3; }
.banner.has-video{ padding-block:clamp(9rem,15vw,13rem) clamp(4rem,8vw,7rem); }
@media (max-width:760px){
  .banner-veil{
    background:linear-gradient(180deg,
      color-mix(in srgb, var(--ink) 88%, transparent) 0%,
      color-mix(in srgb, var(--ink) 72%, transparent) 55%,
      color-mix(in srgb, var(--ink) 40%, transparent) 100%);
  }
}

/* page banner for interior pages */
.banner{
  position:relative; overflow:hidden;
  background:var(--deep); color:var(--on-deep);
  padding-block:clamp(8rem,13vw,10.5rem) clamp(3.4rem,6vw,5rem);
}
.banner h1{ max-width:16ch; }
/* long two-part programme titles: keep each half on its own line */
.banner h1:has(br){ max-width:none; font-size:clamp(2.3rem, 4.6vw, 3.7rem); }
.banner .lede{ color:var(--on-deep-2); max-width:38em; margin-top:1.5rem; }
.banner .crumb{
  font-size:.62rem; font-weight:500; letter-spacing:.24em;
  text-transform:uppercase; color:var(--accent-2); margin:0 0 1.2rem;
}
.banner .crumb a{ text-decoration:none; opacity:.75; }
.banner .crumb a:hover{ opacity:1; }

/* the Novara standfirst, set at headline scale rather than lede scale */
.band-lead{
  font-family:var(--display); font-weight:400; letter-spacing:.015em;
  font-size:clamp(1.5rem, 2.6vw, 2.1rem); line-height:1.28;
  color:var(--on-deep); max-width:22em; margin-top:.2rem;
}

/* a quiet rule between two sections that would otherwise run together */
.divide{ padding-block:0; }
.divide .wrap{ display:flex; justify-content:center; }
.divide .mark{
  display:flex; align-items:center; gap:1.1rem;
  width:100%; max-width:420px; color:var(--accent);
}
.divide .mark::before, .divide .mark::after{
  content:''; flex:1; height:1px; background:var(--line);
}
.divide .mark svg{ width:26px; height:auto; flex:none; display:block; }
/* with no mark inside, the two halves close up into one continuous rule */
.divide .mark:empty{ gap:0; }

/* testimonial slider: one row, scroll-snapped, keyboard and swipe friendly */
.slider{ position:relative; }
.track{
  display:flex; gap:clamp(1.1rem,2.2vw,1.7rem);
  overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none; -webkit-overflow-scrolling:touch;
  padding-bottom:.4rem;
}
.track::-webkit-scrollbar{ display:none; }
.slide{
  flex:0 0 calc((100% - 2*clamp(1.1rem,2.2vw,1.7rem)) / 3);
  scroll-snap-align:start; display:flex; flex-direction:column; margin:0;
}
.slide blockquote{ flex:1; }
.slide:nth-child(3n+2){ border-left:3px solid var(--accent); }
@media (max-width:1100px){ .slide{ flex:0 0 calc((100% - clamp(1.1rem,2.2vw,1.7rem)) / 2); } }
@media (max-width:760px){ .slide{ flex:0 0 86%; } }

.sctl{ display:flex; align-items:center; gap:1rem; margin-top:clamp(1.5rem,2.6vw,2.1rem); }
.sbtn{
  width:46px; height:46px; flex:none; border:1px solid var(--accent);
  background:transparent; color:var(--accent); border-radius:50%;
  cursor:pointer; font-size:1rem; line-height:1; transition:.3s;
  display:flex; align-items:center; justify-content:center;
}
.sbtn:hover{ background:var(--accent); color:#fff; }
.sbtn[disabled]{ opacity:.3; cursor:default; }
.sbtn[disabled]:hover{ background:transparent; color:var(--accent); }
.dots{ display:flex; gap:.5rem; margin-left:.3rem; }
.dots i{
  width:7px; height:7px; border-radius:50%; background:var(--line);
  display:block; transition:.3s;
}
.dots i.on{ background:var(--accent); transform:scale(1.3); }

/* ================= FOOTER ================= */

footer.site{ background:var(--ink); color:var(--on-deep); padding-block:clamp(3.6rem,7vw,5.5rem) 2.2rem; position:relative; overflow:hidden; }
.foot-grid{ display:grid; grid-template-columns:5fr 3fr 3fr; gap:clamp(2rem,4vw,3.5rem); }
footer.site .wordmark{ width:min(190px,48vw); margin-bottom:1.6rem; }
.foot-blurb{ font-size:.92rem; color:var(--on-deep-2); max-width:32em; margin:0; }
.foot-h{
  font-size:.62rem; font-weight:500; letter-spacing:.22em;
  text-transform:uppercase; color:var(--accent-2); margin:0 0 1.1rem;
}
.foot-list{ list-style:none; margin:0; padding:0; }
.foot-list li{ margin-bottom:.7rem; }
.foot-list a{
  text-decoration:none; font-size:.9rem; color:var(--on-deep-2);
  transition:color .3s;
}
.foot-list a:hover{ color:var(--accent-2); }
.foot-bottom{
  margin-top:clamp(2.6rem,5vw,3.6rem); padding-top:1.6rem;
  border-top:1px solid var(--line-dk);
  font-size:.74rem; color:var(--on-deep-2); line-height:1.7;
}

/* closing statement, part of the section rather than a box floating under it */
.worthy{
  margin-top:clamp(3rem,6vw,5rem);
  padding-top:clamp(2.4rem,4vw,3.4rem);
  border-top:1px solid var(--line);
  text-align:center;
  max-width:44em; margin-inline:auto;
}
.worthy .eyebrow{ justify-content:center; margin-bottom:1.4rem; }
.worthy-lead{
  font-family:var(--display);
  font-size:clamp(1.5rem,2.8vw,2.3rem);
  line-height:1.28; color:var(--fg); margin:0 0 1.2rem;
}
.worthy p:last-child{
  color:var(--fg2); font-size:1.04rem; margin:0 auto; max-width:36em;
}

/* ================= STEP ROW (three across, not side by side) ================= */

.steps-row{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(2rem,4vw,3.6rem);
  margin-top:clamp(2.6rem,5vw,4rem);
}
.steps-row .step{ padding-top:0; }
.steps-row .step .numeral{
  position:static; display:block; font-size:clamp(2.4rem,3.4vw,3.2rem);
  opacity:.32; margin-bottom:.2rem;
}
.steps-row .step h3{ margin-bottom:.7rem; }
.steps-row .step::before{
  content:''; display:block; width:34px; height:1px;
  background:var(--accent); margin-bottom:1.4rem;
}
/* the same arch graphics the home page uses for the three phases */
.steps-row .arch-step::before{ display:none; }
.steps-row .arch-step img{
  width:100%; max-width:230px; height:auto; margin-bottom:1.4rem;
}
@media (max-width:900px){
  .steps-row{ grid-template-columns:1fr; gap:2.4rem; }
  .steps-row .arch-step img{ max-width:170px; }
}

/* the includes list, given its own full-width band */
.includes-band .ticks{ margin-top:1.6rem; }

/* ================= STAGES ================= */

.stages{ display:grid; gap:clamp(1.2rem,2.4vw,2rem); margin-top:clamp(2.6rem,5vw,4rem); }
@media (min-width:900px){ .stages{ grid-template-columns:1fr 1fr; } }
.stage{
  background:var(--card); border:1px solid var(--line);
  border-radius:2px; padding:clamp(1.9rem,3.2vw,2.6rem);
  position:relative; overflow:hidden;
}
.stage:nth-child(even){ margin-top:clamp(0rem,2.4vw,2.4rem); }
.stage .no{
  font-family:var(--display); font-size:clamp(2.4rem,4vw,3.4rem);
  line-height:1; color:var(--accent); opacity:.28; margin-bottom:.4rem;
}
.stage h3{ margin-bottom:1rem; }
.stage .ticks{ margin-top:1rem; }
.stage .ticks li{ font-size:.94rem; margin-bottom:.6rem; }

/* ================= FAQ ================= */

.faq{ margin-top:clamp(2rem,4vw,3rem); border-top:1px solid var(--line); }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{
  cursor:pointer; list-style:none; padding:1.4rem 2.4rem 1.4rem 0;
  font-family:var(--display); font-size:clamp(1.15rem,1.6vw,1.38rem);
  letter-spacing:.02em; position:relative; color:var(--fg);
  transition:color .3s;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary:hover{ color:var(--accent); }
.faq summary::after{
  content:''; position:absolute; right:.4rem; top:50%;
  width:11px; height:11px; margin-top:-7px;
  border-right:1.5px solid var(--accent); border-bottom:1.5px solid var(--accent);
  transform:rotate(45deg); transition:transform .3s;
}
.faq details[open] summary::after{ transform:rotate(-135deg); margin-top:-3px; }
.faq .a{ padding:0 2.4rem 1.6rem 0; color:var(--fg2); font-size:.98rem; }
.faq .a p{ margin:0 0 .9em; }
.faq .a p:last-child{ margin:0; }

/* jump links on the Q and A banner */
.jump{ display:flex; flex-wrap:wrap; gap:.6rem 1.6rem; margin-top:1.8rem; }
.jump a{
  font-size:.63rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
  color:var(--accent-2); text-decoration:none; border-bottom:1px solid transparent;
  padding-bottom:.3em; transition:.3s;
}
.jump a:hover{ border-color:var(--accent-2); }

/* ================= LEGAL PAGE ================= */

.legal{ max-width:46em; }
.legal h2{ font-size:clamp(1.5rem,2.4vw,2rem); margin:clamp(2.4rem,4vw,3.2rem) 0 1rem; }
.legal h2:first-child{ margin-top:0; }
.legal p{ color:var(--fg2); font-size:1rem; }
.legal .intro{
  font-size:.72rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase;
  color:var(--accent); border:1px solid var(--accent); border-radius:2px;
  padding:1.1rem 1.4rem; line-height:1.7; margin-bottom:clamp(2rem,3.5vw,3rem);
}

/* ================= NOTES (delete before launch) ================= */
.note{
  background:color-mix(in srgb, var(--accent) 10%, var(--bg));
  border-left:2px solid var(--accent);
  padding:1rem 1.25rem; font-size:.84rem; color:var(--fg2);
  margin:1.6rem 0; line-height:1.6;
}
.note b{ font-weight:500; color:var(--fg); }

/* ================= REVEAL ================= */
.rv{ opacity:0; transform:translateY(22px);
     transition:opacity 1s ease, transform 1s cubic-bezier(.16,1,.3,1); }
.rv.in{ opacity:1; transform:none; }
.rv.d1{ transition-delay:.09s } .rv.d2{ transition-delay:.18s } .rv.d3{ transition-delay:.27s }
@media (prefers-reduced-motion:reduce){ .rv{ opacity:1; transform:none; } html{ scroll-behavior:auto; } }

/* ================= PALETTE SWITCHER (DELETE BEFORE LAUNCH) ================= */
#pal{
  position:fixed; right:16px; bottom:16px; z-index:900;
  background:rgba(255,255,255,.94); backdrop-filter:blur(12px) saturate(150%);
  border:1px solid rgba(0,0,0,.1); border-radius:3px; padding:.8rem .9rem;
  box-shadow:0 18px 40px -22px rgba(0,0,0,.45); font-family:var(--sans);
}
#pal .lbl{ font-size:.53rem; letter-spacing:.2em; text-transform:uppercase; color:#666; margin-bottom:.55rem; display:block; line-height:1; }
#pal .sw{ display:flex; gap:.4rem; }
#pal button{
  width:38px; height:38px; border-radius:2px; cursor:pointer;
  border:1px solid rgba(0,0,0,.14); padding:0; overflow:hidden; position:relative; transition:.25s;
}
#pal button span{ position:absolute; inset:0; }
#pal button span:nth-child(1){ inset:0 60% 0 0; }
#pal button span:nth-child(2){ inset:0 30% 0 40%; }
#pal button span:nth-child(3){ inset:0 0 0 70%; }
#pal button[aria-pressed="true"]{ outline:2px solid #111; outline-offset:2px; }
#pal .nm{ font-size:.5rem; letter-spacing:.13em; text-transform:uppercase; color:#555; margin-top:.5rem; text-align:center; line-height:1; }
/* long button labels wrap on small screens instead of forcing overflow */
@media (max-width:620px){
  .btn{ white-space:normal; text-align:center; padding-inline:1.7em; line-height:1.45; }
  .nav-cta{ white-space:nowrap; }
}
@media (max-width:620px){ #pal{ right:8px; bottom:8px; padding:.5rem .55rem; } #pal button{ width:28px; height:28px; } }

/* ================= RESPONSIVE ================= */

@media (max-width:1000px){
  .g-7-5,.g-5-7,.g-8-4,.g-4-8,.g-6-5{ grid-template-columns:1fr; }
  .up-1,.up-2,.dn-1,.dn-2{ margin-top:0; }
  .hero-grid{ grid-template-columns:1fr; gap:2.6rem; }
  .hero-ph::before{ inset:auto -6% -14px 14px; }
  .progs{ grid-template-columns:1fr; }
  .progs > *:nth-child(2),.progs > *:nth-child(3){ margin-top:0; }
  .res{ grid-template-columns:repeat(2,1fr); }
  .connect{ grid-template-columns:1fr; }
  .foot-grid{ grid-template-columns:1fr 1fr; }
  .overlap{ margin-top:clamp(-2rem,-3vw,-3rem); }
  .stack .b{ right:-4%; width:42%; }
  .bleed-r,.bleed-l{ margin-inline:0; }
}

@media (max-width:900px){
  :root{ --gut:7vw; }
  .nav-links{
    position:fixed; inset:0 0 auto 0; background:var(--bg);
    flex-direction:column; align-items:flex-start; justify-content:center;
    gap:0; padding:6rem var(--gut) 3rem; height:100svh;
    transform:translateY(-100%); transition:transform .5s cubic-bezier(.6,0,.2,1);
    z-index:-1; overflow-y:auto;
  }
  .nav-links.open{ transform:none; }
  .nav-links > li{ width:100%; border-bottom:1px solid var(--line); }
  .nav-links > li:last-child{ border:0; padding-top:1.6rem; }
  .nav-links > li > a{ display:block; padding:1.05rem 0; font-size:.78rem; }
  .sub{
    position:static; opacity:1; visibility:visible; transform:none;
    box-shadow:none; border:0; background:transparent; padding:0 0 .9rem;
    min-width:0; margin:0;
  }
  .sub a{ padding:.5rem 0 .5rem 1.2rem; font-size:.72rem; }
  .sub a:hover{ background:transparent; }
  .has-sub > a::after{ display:none; }
  .burger{ display:block; }
  .signet{ right:-34%; opacity:.08; }
  .signet.left{ left:-34%; }
  .statement blockquote{ max-width:100%; }
  .arches > *:nth-child(2){ margin-top:0; }
}

@media (max-width:620px){
  .btn{ width:100%; }
  .creds li{ flex-direction:column; gap:.1rem; }
  .creds li span:last-child{ padding-top:0; text-align:left; }
  .foot-grid{ grid-template-columns:1fr; }
  .res{ grid-template-columns:1fr; }
  .stack .b{ position:static; width:100%; margin-top:1rem; border:0; box-shadow:none; }
  .contact-email{ font-size:1.2rem; }
  .ph.framed::after{ top:-14px; left:-14px; right:14px; bottom:14px; }
}
