
:root {
  --ink: #183b3a;
  --ink-soft: #4b6663;
  --cream: #fbf8f1;
  --cream-deep: #f4eee4;
  --paper: #fffefa;
  --mist: #eaf6f8;
  --sky: #cdeaf1;
  --sky-strong: #8bc7d4;
  --sage: #b8dfa7;
  --eucalyptus: #7fae8a;
  --forest: #4b7c5a;
  --forest-deep: #315744;
  --copper: #c7785c;
  --plum: #7d2232;
  --apple: #b9e19b;
  --apple-bright: #d5efc1;
  --apple-deep: #4d7c53;
  --apple-mist: #edf8e5;
  --line: rgba(39, 91, 78, .14);
  --shadow-sm: 0 12px 30px rgba(29, 74, 64, .09);
  --shadow-md: 0 24px 70px rgba(29, 74, 64, .13);
  --shadow-lg: 0 35px 90px rgba(26, 68, 61, .18);
  --radius-sm: 1rem;
  --radius-md: 1.5rem;
  --radius-lg: 2.25rem;
  --max: 1280px;
  --header-height: 96px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--cream); }
body {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: "Segoe UI", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 1rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.nav-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, textarea { font: inherit; }
svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.icon { width: 1.15rem; height: 1.15rem; flex: 0 0 auto; }
.shell { width: min(calc(100% - 2rem), var(--max)); margin-inline: auto; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 9999; padding: .75rem 1rem; color: #fff; background: var(--forest-deep); border-radius: .7rem; text-decoration: none; }
.skip-link:focus { top: 1rem; }

h1, h2, h3 { margin: 0 0 .65em; font-family: Georgia, "Times New Roman", serif; font-weight: 500; line-height: 1.08; letter-spacing: -.025em; text-wrap: balance; }
h1 { font-size: clamp(3rem, 6.6vw, 6.35rem); }
h2 { font-size: clamp(2.35rem, 4.7vw, 4.6rem); }
h3 { font-size: clamp(1.35rem, 2vw, 1.85rem); }
p { margin: 0 0 1rem; }
.lede { font-size: clamp(1.08rem, 1.6vw, 1.28rem); color: var(--ink-soft); max-width: 62ch; }
.eyebrow { display: inline-flex; align-items: center; gap: .55rem; margin: 0 0 .7rem; color: var(--forest); font-size: .78rem; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow .icon { width: 1.45rem; height: 1.45rem; }
.section { position: relative; padding: clamp(4.5rem, 8vw, 8rem) 0; overflow: clip; }
.section-heading { max-width: 760px; margin: 0 auto clamp(2.2rem, 5vw, 4rem); text-align: center; }
.section-heading p:last-child { color: var(--ink-soft); }

.topbar { position: relative; z-index: 1100; background: linear-gradient(100deg, #d8eef4, #eff8f6 53%, #dcebdc); border-bottom: 1px solid rgba(39, 91, 78, .07); }
.topbar__inner { min-height: 42px; display: flex; justify-content: flex-end; align-items: center; gap: .85rem; font-size: .91rem; }
.topbar a { display: inline-flex; align-items: center; gap: .45rem; color: #234c48; text-decoration: none; }
.topbar a:hover { color: var(--forest-deep); }
.topbar__divider { width: 1px; height: 18px; background: rgba(35, 76, 72, .25); }

.site-header { position: sticky; top: 0; z-index: 1000; background: rgba(255, 253, 248, .84); border-bottom: 1px solid rgba(40, 86, 72, .08); backdrop-filter: blur(22px) saturate(135%); transition: box-shadow .25s ease, background-color .25s ease; }
.site-header.is-scrolled { background: rgba(255, 253, 248, .94); box-shadow: 0 12px 34px rgba(27, 73, 62, .08); }
.header__inner { min-height: var(--header-height); display: flex; align-items: center; gap: 1.5rem; }
.brand { display: inline-flex; align-items: center; flex: 0 0 auto; text-decoration: none; }
.brand img { width: clamp(122px, 12vw, 174px); max-height: 88px; object-fit: contain; }
.main-nav { margin-left: auto; display: flex; align-items: center; gap: .4rem; }
.nav-link { position: relative; display: inline-flex; align-items: center; min-height: 46px; padding: .7rem 1rem; border: 1px solid transparent; border-radius: 999px; text-decoration: none; color: #203c38; transition: color .25s ease, background .25s ease, transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.nav-link::after { content: ""; position: absolute; left: 1rem; right: 1rem; bottom: .45rem; height: 1px; background: linear-gradient(90deg, transparent, var(--sky-strong), transparent); transform: scaleX(0); transition: transform .25s ease; }
.nav-link:hover, .nav-link:focus-visible, .nav-link[aria-current="page"] { color: var(--forest-deep); background: linear-gradient(145deg, rgba(232,248,220,.74), rgba(255,255,255,.48)); border-color: rgba(154, 204, 129, .42); box-shadow: inset 0 1px 0 rgba(255,255,255,.76), 0 0 0 .32rem rgba(190, 231, 168, .17), 0 10px 26px rgba(67, 116, 76, .13); backdrop-filter: blur(14px) saturate(125%); transform: translateY(-1px); outline: none; }
.nav-link:hover::after, .nav-link:focus-visible::after, .nav-link[aria-current="page"]::after { transform: scaleX(1); }
.menu-toggle { display: none; margin-left: auto; width: 48px; height: 48px; place-items: center; border: 1px solid var(--line); border-radius: 999px; color: var(--forest-deep); background: rgba(255,255,255,.55); box-shadow: var(--shadow-sm); cursor: pointer; }
.menu-toggle svg { width: 24px; height: 24px; }
.menu-toggle__close { display: none; }
.nav-open .menu-toggle__open { display: none; }
.nav-open .menu-toggle__close { display: block; }

.btn { position: relative; isolation: isolate; display: inline-flex; justify-content: center; align-items: center; gap: .65rem; min-height: 54px; padding: .86rem 1.25rem; border: 1px solid transparent; border-radius: 999px; font-weight: 720; text-decoration: none; cursor: pointer; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, filter .25s ease; }
.btn::before { content: ""; position: absolute; inset: -2px; z-index: -1; background: linear-gradient(115deg, transparent 25%, rgba(255,255,255,.72) 46%, transparent 66%); transform: translateX(-125%); transition: transform .65s ease; }
.btn:hover::before, .btn:focus-visible::before { transform: translateX(125%); }
.btn:hover, .btn:focus-visible { transform: translateY(-3px); outline: none; }
.btn .icon:last-child { transition: transform .25s ease; }
.btn:hover .icon:last-child { transform: translateX(4px); }
.btn--primary {
  color: #274a34;
  background: linear-gradient(145deg, rgba(221,245,204,.82), rgba(174,224,151,.66) 58%, rgba(200,235,197,.62));
  border-color: rgba(255,255,255,.82);
  backdrop-filter: blur(18px) saturate(132%);
  -webkit-backdrop-filter: blur(18px) saturate(132%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.88), inset 0 -1px 0 rgba(92,139,79,.10), 0 13px 32px rgba(73, 126, 73, .22);
}
.btn--primary:hover, .btn--primary:focus-visible {
  color: #1f422d;
  filter: saturate(1.07) brightness(1.035);
  border-color: rgba(255,255,255,.94);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.96), 0 0 0 .42rem rgba(202, 237, 183, .26), 0 0 34px rgba(174, 226, 145, .58), 0 22px 46px rgba(68, 118, 73, .23);
}
.btn--glass {
  color: #225c6f;
  background: linear-gradient(145deg, rgba(239,251,253,.76), rgba(218,239,244,.53));
  border-color: rgba(255,255,255,.72);
  backdrop-filter: blur(17px) saturate(125%);
  -webkit-backdrop-filter: blur(17px) saturate(125%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.86), 0 12px 28px rgba(62, 125, 145, .15);
}
.btn--glass:hover, .btn--glass:focus-visible {
  background: linear-gradient(145deg, rgba(248,254,255,.9), rgba(220,243,248,.72));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.96), 0 0 0 .42rem rgba(183, 226, 237, .25), 0 0 30px rgba(132, 203, 220, .42), 0 20px 42px rgba(53, 111, 132, .18);
}

.hero { position: relative; min-height: min(790px, calc(100vh - 138px)); display: grid; align-items: center; overflow: clip; background: var(--forest-deep); }
.hero__media, .page-hero__media { position: absolute; inset: 0; }
.hero__media picture, .hero__media img, .page-hero__media img { width: 100%; height: 100%; }
.hero__media img, .page-hero__media img { object-fit: cover; object-position: 61% center; }
.hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(245, 250, 247, .92) 0%, rgba(248, 248, 240, .77) 39%, rgba(242, 250, 247, .18) 69%, rgba(20, 54, 43, .12) 100%); }
.hero::after { content: ""; position: absolute; z-index: 1; inset: auto 0 0; height: 150px; background: linear-gradient(to bottom, transparent, rgba(251,248,241,.94)); clip-path: ellipse(74% 68% at 50% 100%); }
.hero__inner { position: relative; z-index: 2; width: min(calc(100% - 2rem), var(--max)); margin-inline: auto; padding: clamp(4.5rem, 9vw, 8rem) 0; }
.hero__glass { max-width: 720px; padding: clamp(1.6rem, 4vw, 3.2rem); border: 1px solid rgba(255,255,255,.62); border-radius: var(--radius-lg); background: linear-gradient(135deg, rgba(255,255,255,.68), rgba(244,252,250,.48)); backdrop-filter: blur(22px) saturate(125%); box-shadow: var(--shadow-lg); }
.hero__glass h1 { max-width: 10.5ch; }
.hero__glass h1 span { color: var(--forest); }
.hero__actions { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: 1.45rem; }
.hero__note { display: flex; align-items: center; gap: .65rem; margin-top: 1.15rem; color: #41645e; font-size: .92rem; }
.hero__note .icon { color: var(--eucalyptus); }

.glass-card { position: relative; border: 1px solid rgba(255,255,255,.62); border-radius: var(--radius-md); background: linear-gradient(145deg, rgba(255,255,255,.76), rgba(246,252,249,.56)); backdrop-filter: blur(18px) saturate(120%); box-shadow: var(--shadow-sm); }
.cards { display: grid; gap: 1.2rem; }
.cards--four { grid-template-columns: repeat(4, minmax(0,1fr)); }
.cards--three { grid-template-columns: repeat(3, minmax(0,1fr)); max-width: 1120px; margin-inline: auto; }
.cards--two { grid-template-columns: repeat(2, minmax(0,1fr)); max-width: 980px; margin-inline: auto; }
.service-card { min-height: 100%; padding: 1.8rem 1.45rem; transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease; }
.service-card:hover { transform: translateY(-8px); border-color: rgba(150, 209, 185, .58); box-shadow: 0 0 0 .35rem rgba(172, 222, 201, .12), 0 26px 58px rgba(37, 89, 72, .15); }
.service-card__icon { width: 64px; height: 64px; display: grid; place-items: center; margin-bottom: 1.15rem; border-radius: 50%; color: var(--forest); background: linear-gradient(145deg, rgba(194,226,209,.78), rgba(234,246,238,.9)); box-shadow: inset 0 0 0 1px rgba(83,134,111,.08); }
.service-card__icon--blue { color: #397d93; background: linear-gradient(145deg, rgba(197,229,239,.86), rgba(239,249,252,.95)); }
.service-card__icon svg { width: 31px; height: 31px; }
.service-card p { color: var(--ink-soft); }
.text-link { display: inline-flex; align-items: center; gap: .35rem; color: var(--forest); font-weight: 720; text-decoration: none; }
.text-link .icon { transition: transform .25s ease; }
.text-link:hover .icon { transform: translateX(4px); }

.section--counselling { background: radial-gradient(circle at 6% 20%, rgba(181,224,207,.26), transparent 30%), linear-gradient(180deg, var(--cream), #eff7f2); }
.section--counselling::before, .section--counselling::after, .section--supervision::before, .section--credentials::after { content: ""; position: absolute; width: 230px; height: 320px; background: url("../images/leaf-sprig.svg") center/contain no-repeat; opacity: .38; pointer-events: none; }
.section--counselling::before { left: -80px; top: 80px; transform: rotate(-7deg); }
.section--counselling::after { right: -75px; bottom: 35px; transform: scaleX(-1) rotate(-8deg); }
.section--supervision { background: radial-gradient(circle at 12% 20%, rgba(172,221,235,.38), transparent 30%), linear-gradient(125deg, #edf8fb, #dceff4 54%, #eef6ef); }
.section--supervision::before { right: -65px; top: 30px; transform: scaleX(-1) rotate(5deg); opacity: .34; }

.credentials-panel { display: grid; grid-template-columns: .92fr 1.08fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; padding: clamp(2rem, 5vw, 4.2rem); border-radius: var(--radius-lg); background: linear-gradient(135deg, rgba(235,248,251,.9), rgba(242,249,242,.86)); box-shadow: var(--shadow-md); border: 1px solid rgba(105, 160, 143, .17); }
.credentials-logo { padding: clamp(1rem, 3vw, 2rem); border-radius: var(--radius-md); background: rgba(255,255,255,.74); border: 1px solid rgba(126, 112, 170, .12); }
.credentials-logo img { width: 100%; max-height: 260px; object-fit: contain; }
.section--credentials { background: linear-gradient(180deg, #f7f4ec, var(--cream)); }
.section--credentials::after { right: -55px; bottom: 0; transform: scaleX(-1); opacity: .28; }

.contact-feature { display: grid; grid-template-columns: .82fr 1.18fr; gap: 1.2rem; padding: clamp(1.2rem, 3vw, 2rem); }
.contact-feature__copy { padding: clamp(1rem, 3vw, 2rem); }
.contact-list { display: grid; gap: .85rem; margin: 1.3rem 0 1.6rem; }
.contact-list a { display: flex; align-items: center; gap: .7rem; font-weight: 680; text-decoration: none; overflow-wrap: anywhere; }
.contact-list a:hover { color: var(--forest); }
.contact-feature__image { position: relative; min-height: 360px; overflow: hidden; border-radius: calc(var(--radius-md) - .35rem); }
.contact-feature__image img { width: 100%; height: 100%; object-fit: cover; }
.contact-feature__image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(115deg, rgba(20,53,44,.15), rgba(22,57,48,.58)); }
.contact-quote { position: absolute; inset: 0; z-index: 1; display: grid; place-items: center; padding: 2rem; text-align: center; color: #fff; }
.contact-quote p { max-width: 14ch; margin: 0; font-family: Georgia, serif; font-size: clamp(1.7rem, 3vw, 2.7rem); line-height: 1.2; text-shadow: 0 3px 18px rgba(0,0,0,.28); }

.page-hero { position: relative; min-height: 520px; display: grid; align-items: end; overflow: clip; background: var(--forest-deep); }
.page-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(24,59,58,.78), rgba(28,73,61,.44) 52%, rgba(17,45,39,.12)); }
.page-hero__media img { object-position: center 46%; }
.page-hero__inner { position: relative; z-index: 2; width: min(calc(100% - 2rem), var(--max)); margin-inline: auto; padding: clamp(4.5rem, 10vw, 8rem) 0 clamp(3.2rem, 7vw, 5.5rem); }
.page-hero__glass { width: min(720px, 100%); padding: clamp(1.6rem, 4vw, 3rem); color: #fff; border: 1px solid rgba(255,255,255,.3); border-radius: var(--radius-lg); background: linear-gradient(135deg, rgba(32,72,62,.54), rgba(33,82,68,.26)); backdrop-filter: blur(20px) saturate(125%); box-shadow: 0 28px 75px rgba(8,35,28,.28); }
.page-hero__glass .eyebrow, .page-hero__glass .lede { color: rgba(255,255,255,.88); }
.page-hero__glass h1 { font-size: clamp(2.9rem, 6vw, 5.6rem); }

.content-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.sticky-intro { position: sticky; top: calc(var(--header-height) + 2rem); }
.stack { display: grid; gap: 1.2rem; }
.content-panel { padding: clamp(1.5rem, 3vw, 2.4rem); }
.content-panel p { color: var(--ink-soft); }
.content-panel[id] { scroll-margin-top: calc(var(--header-height) + 3rem); }
.detail-list { display: grid; gap: .9rem; padding: 0; margin: 1.2rem 0 0; list-style: none; }
.detail-list li { display: flex; gap: .75rem; align-items: flex-start; }
.detail-list .icon { margin-top: .23rem; color: var(--eucalyptus); }

.fee-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.2rem; }
.fee-card { padding: 1.8rem; }
.fee-card strong { display: block; margin-bottom: .25rem; font-family: Georgia, serif; font-size: 1.35rem; }
.contact-block { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(1.5rem, 4vw, 3rem); padding: clamp(1.5rem, 4vw, 3rem); }
.contact-block__actions { display: grid; gap: .85rem; align-content: start; }
.contact-action { display: flex; align-items: center; gap: .8rem; min-height: 58px; padding: .85rem 1rem; border: 1px solid var(--line); border-radius: 1rem; background: rgba(255,255,255,.64); text-decoration: none; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; overflow-wrap: anywhere; }
.contact-action:hover { transform: translateY(-3px); border-color: rgba(126,190,164,.48); box-shadow: 0 18px 34px rgba(38,89,72,.12); }
.contact-action .icon { color: var(--forest); width: 1.35rem; height: 1.35rem; }

.notice { padding: 1.3rem 1.5rem; border-left: 4px solid var(--sky-strong); border-radius: 0 1rem 1rem 0; background: rgba(228,244,249,.68); color: var(--ink-soft); }

.site-footer { padding: 2rem 0; color: rgba(255,255,255,.92); background: linear-gradient(100deg, #547f6c, #739d89 55%, #6e9aae); }
.footer__inner { display: flex; justify-content: space-between; gap: 2rem; align-items: center; }
.footer__inner p { margin: 0; display: flex; flex-direction: column; }
.footer__inner nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 1rem; }
.footer__inner a { text-decoration: none; }
.footer__inner a:hover { text-decoration: underline; }

.reveal { opacity: 1; transform: none; }
.js .reveal { opacity: 0; transform: translateY(22px); transition: opacity .72s ease, transform .72s cubic-bezier(.2,.75,.25,1); }
.js .reveal.is-visible { opacity: 1; transform: none; }
.js .reveal[data-delay="1"] { transition-delay: .08s; }
.js .reveal[data-delay="2"] { transition-delay: .16s; }
.js .reveal[data-delay="3"] { transition-delay: .24s; }

@media (min-width: 1500px) {
  :root { --max: 1360px; }
  .hero { min-height: 820px; }
  .hero__media img { object-position: 62% center; }
}

@media (max-width: 1020px) {
  :root { --header-height: 82px; }
  .menu-toggle { display: grid; }
  .main-nav { position: fixed; inset: calc(42px + var(--header-height)) 1rem auto; z-index: 1200; display: grid; gap: .35rem; padding: .75rem; border: 1px solid rgba(255,255,255,.64); border-radius: 1.35rem; background: rgba(255,253,248,.95); backdrop-filter: blur(24px); box-shadow: var(--shadow-lg); opacity: 0; visibility: hidden; transform: translateY(-12px) scale(.98); transition: opacity .22s ease, visibility .22s ease, transform .22s ease; }
  .nav-open .main-nav { opacity: 1; visibility: visible; transform: none; }
  .nav-link { width: 100%; justify-content: center; }
  .cards--four, .cards--three { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .credentials-panel, .contact-feature, .content-grid, .contact-block { grid-template-columns: 1fr; }
  .sticky-intro { position: static; }
  .fee-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 700px) {
  .shell { width: min(calc(100% - 1.2rem), var(--max)); }
  .topbar__inner { min-height: 38px; justify-content: center; font-size: .78rem; gap: .55rem; }
  .topbar__divider { height: 15px; }
  .topbar a span { display: none; }
  .topbar a::after { content: attr(href); font-size: 0; }
  .topbar a:first-child span { display: inline; }
  .topbar a:nth-of-type(2) span { display: inline; max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .header__inner { min-height: 78px; }
  .brand img { width: 112px; max-height: 72px; }
  .main-nav { top: calc(38px + 78px); }
  .hero { min-height: 760px; align-items: end; }
  .hero__media img { object-position: 58% center; }
  .hero::before { background: linear-gradient(180deg, rgba(21,52,43,.03) 0%, rgba(22,56,46,.18) 35%, rgba(244,248,243,.88) 67%, rgba(251,248,241,.98) 100%); }
  .hero::after { display: none; }
  .hero__inner { padding: 18rem 0 2.4rem; }
  .hero__glass { padding: 1.4rem; border-radius: 1.55rem; background: rgba(255,253,248,.84); backdrop-filter: blur(13px) saturate(115%); }
  .hero__glass h1 { font-size: clamp(2.55rem, 12vw, 4rem); }
  .hero__actions { display: grid; }
  .btn { width: 100%; }
  .cards--four, .cards--three, .cards--two, .fee-grid { grid-template-columns: 1fr; }
  .section { padding: 4.3rem 0; }
  .section--counselling::before, .section--counselling::after, .section--supervision::before, .section--credentials::after { width: 155px; height: 220px; opacity: .2; }
  .credentials-panel { padding: 1.25rem; }
  .contact-feature__copy { padding: .8rem; }
  .contact-feature__image { min-height: 300px; }
  .page-hero { min-height: 500px; }
  .page-hero__inner { padding-bottom: 1.2rem; }
  .page-hero__glass { padding: 1.35rem; background: rgba(31,74,62,.66); backdrop-filter: blur(13px); }
  .footer__inner { flex-direction: column; align-items: flex-start; }
  .footer__inner nav { justify-content: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .js .reveal { opacity: 1; transform: none; }
}

@supports not (backdrop-filter: blur(1px)) {
  .site-header, .hero__glass, .glass-card, .page-hero__glass, .btn--glass, .main-nav { background: rgba(255,253,248,.96); }
  .page-hero__glass { color: #fff; background: rgba(28,68,57,.88); }
}

/* v0.4 — review prototype and final imagery system */
.review-banner {
  position: relative;
  z-index: 20;
  color: #2b5750;
  background: linear-gradient(100deg, rgba(229,245,249,.96), rgba(243,249,241,.97) 58%, rgba(250,244,232,.97));
  border-bottom: 1px solid rgba(57, 112, 96, .12);
}
.review-banner__inner {
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  text-align: center;
  font-size: .91rem;
}
.review-banner__inner p { margin: 0; }
.review-banner__inner .icon { color: var(--eucalyptus); }

.service-card__image {
  display: block;
  height: 178px;
  margin: -1.8rem -1.45rem 1.35rem;
  overflow: hidden;
  border-radius: calc(var(--radius-md) - 1px) calc(var(--radius-md) - 1px) 1.1rem 1.1rem;
  background: var(--mist);
}
.service-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .75s cubic-bezier(.2,.75,.25,1), filter .45s ease;
}
.service-card:hover .service-card__image img,
.service-card:focus-within .service-card__image img {
  transform: scale(1.045);
  filter: saturate(1.05) brightness(1.02);
}

.hero__media img { object-position: 63% center; }

.page-hero {
  min-height: clamp(520px, 66vh, 690px);
  align-items: center;
  background: #c8ddd7;
}
.page-hero::before {
  background:
    linear-gradient(90deg, rgba(250,249,244,.90) 0%, rgba(247,250,247,.71) 37%, rgba(244,250,248,.22) 67%, rgba(28,64,53,.08) 100%);
}
.page-hero__media picture { display: block; width: 100%; height: 100%; }
.page-hero__media img { object-position: center; }
.page-hero__inner { padding: clamp(4rem, 9vw, 7.5rem) 0; }
.page-hero__glass {
  width: min(650px, 100%);
  color: var(--ink);
  border-color: rgba(255,255,255,.74);
  background: linear-gradient(135deg, rgba(255,254,249,.72), rgba(238,248,247,.52));
  backdrop-filter: blur(22px) saturate(125%);
  box-shadow: 0 28px 78px rgba(33,77,67,.18), inset 0 1px 0 rgba(255,255,255,.72);
}
.page-hero__glass .eyebrow { color: var(--forest); }
.page-hero__glass .lede { color: var(--ink-soft); }
.page-hero--home .page-hero__media img { object-position: 64% center; }
.page-hero--counselling .page-hero__media img { object-position: 62% center; }
.page-hero--supervision .page-hero__media img { object-position: 66% center; }
.page-hero--qualifications .page-hero__media img,
.page-hero--privacy .page-hero__media img { object-position: 76% center; }
.page-hero--contact .page-hero__media img { object-position: 65% center; }

.contact-feature__image img { object-position: 66% center; }

@media (min-width: 1500px) {
  .service-card__image { height: 194px; }
}

@media (max-width: 1020px) {
  .review-banner__inner { justify-content: flex-start; text-align: left; }
  .service-card__image { height: 205px; }
}

@media (max-width: 700px) {
  .review-banner__inner { min-height: 54px; font-size: .8rem; }
  .review-banner__inner .icon { display: none; }
  .service-card__image { height: 210px; }
  .page-hero { min-height: 620px; align-items: end; }
  .page-hero::before {
    background: linear-gradient(180deg, rgba(244,250,248,.03) 0%, rgba(40,77,65,.10) 39%, rgba(248,250,245,.80) 68%, rgba(251,248,241,.98) 100%);
  }
  .page-hero__inner { padding: 18rem 0 1rem; }
  .page-hero__glass {
    padding: 1.35rem;
    background: rgba(255,253,248,.86);
    backdrop-filter: blur(13px) saturate(115%);
  }
  .page-hero__glass h1 { font-size: clamp(2.65rem, 13vw, 4.3rem); }
  .page-hero--counselling .page-hero__media img { object-position: 55% center; }
  .page-hero--supervision .page-hero__media img { object-position: 62% center; }
  .page-hero--qualifications .page-hero__media img,
  .page-hero--privacy .page-hero__media img { object-position: 65% center; }
  .page-hero--contact .page-hero__media img { object-position: 58% center; }
}



/* v0.5 — pastel apple-green glass direction */
.review-banner {
  background: linear-gradient(100deg, rgba(232,247,222,.96), rgba(237,249,245,.97) 52%, rgba(234,246,250,.96));
}
.service-card__icon {
  background: linear-gradient(145deg, rgba(212,240,195,.88), rgba(243,250,237,.94));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.86), 0 8px 22px rgba(92,138,80,.08);
}
.glass-card {
  border-color: rgba(255,255,255,.72);
  background: linear-gradient(145deg, rgba(255,255,255,.78), rgba(239,249,235,.57));
}
.hero__glass, .page-hero__glass {
  border-color: rgba(255,255,255,.78);
  background: linear-gradient(135deg, rgba(255,255,252,.73), rgba(234,247,228,.54));
  box-shadow: 0 28px 78px rgba(52,91,61,.17), inset 0 1px 0 rgba(255,255,255,.86);
}
@media (max-width: 700px) {
  .page-hero__glass { background: rgba(251,253,247,.88); }
}

/* v0.6 — interactive navigation-style review laboratory */
.nav-link {
  isolation: isolate;
  overflow: hidden;
  background: transparent;
  box-shadow: none;
}
.nav-link::before,
.nav-link::after {
  pointer-events: none;
}

/* Reset the shared v0.5 hover so each review option can behave independently. */
.nav-link:hover,
.nav-link:focus-visible,
.nav-link[aria-current="page"] {
  color: var(--forest-deep);
  outline: none;
}

/* Option A — frosted glass pill. */
.nav-link--glass:hover,
.nav-link--glass:focus-visible,
.nav-link--glass[aria-current="page"] {
  color: var(--forest-deep);
  border-color: rgba(151, 207, 126, .48);
  background: linear-gradient(145deg, rgba(226, 247, 212, .78), rgba(255,255,255,.5));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.88),
    0 0 0 .32rem rgba(190, 231, 168, .16),
    0 11px 26px rgba(67, 116, 76, .14);
  backdrop-filter: blur(14px) saturate(128%);
  transform: translateY(-2px);
}
.nav-link--glass::after { display: none; }

/* Option B — apple glow with a moving glass sheen. */
.nav-link--sheen::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -35% auto -35% -45%;
  width: 34%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.82), transparent);
  transform: skewX(-22deg);
  transition: left .58s cubic-bezier(.2,.75,.25,1);
}
.nav-link--sheen:hover,
.nav-link--sheen:focus-visible,
.nav-link--sheen[aria-current="page"] {
  color: #294c39;
  border-color: rgba(161, 211, 137, .62);
  background: linear-gradient(135deg, rgba(190, 230, 164, .82), rgba(223, 244, 213, .68));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.84),
    0 0 24px rgba(170, 224, 145, .48),
    0 13px 28px rgba(72, 118, 78, .17);
  transform: translateY(-3px);
}
.nav-link--sheen:hover::before,
.nav-link--sheen:focus-visible::before { left: 118%; }
.nav-link--sheen::after { display: none; }

/* Option C — restrained centre-out underline. */
.nav-link--underline { border-radius: .45rem; }
.nav-link--underline::after {
  display: block;
  left: 18%;
  right: 18%;
  bottom: .36rem;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--sky-strong), var(--apple-deep));
  transform: scaleX(0);
  transform-origin: center;
  opacity: .9;
  transition: transform .32s cubic-bezier(.2,.75,.25,1);
}
.nav-link--underline:hover,
.nav-link--underline:focus-visible,
.nav-link--underline[aria-current="page"] {
  color: var(--forest-deep);
  border-color: transparent;
  background: rgba(235,247,247,.34);
  box-shadow: none;
  transform: translateY(-1px);
}
.nav-link--underline:hover::after,
.nav-link--underline:focus-visible::after,
.nav-link--underline[aria-current="page"]::after { transform: scaleX(1); }

/* Option D — transparent centre with a blooming outline. */
.nav-link--bloom:hover,
.nav-link--bloom:focus-visible,
.nav-link--bloom[aria-current="page"] {
  color: #315b4a;
  border-color: rgba(137, 199, 176, .8);
  background: rgba(255,255,255,.24);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.72),
    0 0 0 5px rgba(169, 222, 202, .17),
    0 0 25px rgba(130, 202, 178, .22);
  transform: translateY(-1px) scale(1.015);
}
.nav-link--bloom::after { display: none; }

/* Option E — flowing apple-green to mist-blue gradient. */
.nav-link--gradient {
  background-size: 220% 220%;
  background-position: 0% 50%;
  transition: color .25s ease, transform .28s ease, box-shadow .28s ease, border-color .28s ease, background-position .52s ease;
}
.nav-link--gradient:hover,
.nav-link--gradient:focus-visible,
.nav-link--gradient[aria-current="page"] {
  color: #244942;
  border-color: rgba(142, 201, 181, .52);
  background-image: linear-gradient(115deg, rgba(208, 238, 184, .82), rgba(202, 235, 239, .84), rgba(233, 247, 218, .82));
  background-position: 100% 50%;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.84), 0 12px 28px rgba(63, 120, 105, .16);
  transform: translateY(-3px);
}
.nav-link--gradient::after { display: none; }

.section--nav-lab {
  background:
    radial-gradient(circle at 14% 15%, rgba(208, 239, 190, .38), transparent 30%),
    radial-gradient(circle at 86% 82%, rgba(198, 230, 239, .46), transparent 34%),
    linear-gradient(145deg, #f9f7ef, #eef8f1 52%, #edf7fa);
}
.nav-style-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  max-width: 1050px;
  margin: 0 auto 1.35rem;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(255,255,255,.74);
  border-radius: 1.25rem;
  background: rgba(255,255,255,.62);
  backdrop-filter: blur(16px) saturate(120%);
  box-shadow: var(--shadow-sm);
}
.nav-style-toolbar p { margin: 0; color: var(--ink-soft); }
.btn--compact { min-height: 44px; padding: .62rem 1rem; white-space: nowrap; }

.style-options-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1rem;
  max-width: 1280px;
  margin-inline: auto;
}
.style-option {
  appearance: none;
  min-width: 0;
  min-height: 260px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .8rem;
  padding: 1.25rem;
  color: var(--ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease, background .28s ease;
}
.style-option:hover,
.style-option:focus-visible {
  transform: translateY(-7px);
  border-color: rgba(142, 204, 177, .62);
  box-shadow: 0 0 0 .35rem rgba(177, 226, 204, .13), 0 26px 58px rgba(37, 89, 72, .15);
  outline: none;
}
.style-option[aria-pressed="true"] {
  border-color: rgba(111, 181, 143, .86);
  background: linear-gradient(145deg, rgba(245,253,239,.9), rgba(229,247,245,.76));
  box-shadow: 0 0 0 .38rem rgba(174, 226, 190, .2), 0 25px 60px rgba(42, 99, 73, .17);
}
.style-option__number {
  color: var(--forest);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.style-option__sample {
  align-self: stretch;
  justify-content: center;
  margin: .15rem 0 .45rem;
  pointer-events: none;
}
/* Keep samples animated and visible without requiring a second hover target. */
.style-option:hover .nav-link--glass,
.style-option:focus-visible .nav-link--glass,
.style-option[aria-pressed="true"] .nav-link--glass { border-color: rgba(151, 207, 126, .48); background: linear-gradient(145deg, rgba(226,247,212,.78), rgba(255,255,255,.5)); box-shadow: inset 0 1px 0 rgba(255,255,255,.88), 0 0 0 .32rem rgba(190,231,168,.16), 0 11px 26px rgba(67,116,76,.14); transform: translateY(-2px); }
.style-option:hover .nav-link--sheen,
.style-option:focus-visible .nav-link--sheen,
.style-option[aria-pressed="true"] .nav-link--sheen { border-color: rgba(161,211,137,.62); background: linear-gradient(135deg, rgba(190,230,164,.82), rgba(223,244,213,.68)); box-shadow: inset 0 1px 0 rgba(255,255,255,.84), 0 0 24px rgba(170,224,145,.48), 0 13px 28px rgba(72,118,78,.17); transform: translateY(-3px); }
.style-option:hover .nav-link--sheen::before,
.style-option:focus-visible .nav-link--sheen::before { left: 118%; }
.style-option:hover .nav-link--underline::after,
.style-option:focus-visible .nav-link--underline::after,
.style-option[aria-pressed="true"] .nav-link--underline::after { transform: scaleX(1); }
.style-option:hover .nav-link--bloom,
.style-option:focus-visible .nav-link--bloom,
.style-option[aria-pressed="true"] .nav-link--bloom { border-color: rgba(137,199,176,.8); background: rgba(255,255,255,.24); box-shadow: inset 0 1px 0 rgba(255,255,255,.72), 0 0 0 5px rgba(169,222,202,.17), 0 0 25px rgba(130,202,178,.22); transform: translateY(-1px) scale(1.015); }
.style-option:hover .nav-link--gradient,
.style-option:focus-visible .nav-link--gradient,
.style-option[aria-pressed="true"] .nav-link--gradient { border-color: rgba(142,201,181,.52); background-image: linear-gradient(115deg, rgba(208,238,184,.82), rgba(202,235,239,.84), rgba(233,247,218,.82)); background-position: 100% 50%; box-shadow: inset 0 1px 0 rgba(255,255,255,.84), 0 12px 28px rgba(63,120,105,.16); transform: translateY(-3px); }
.style-option strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.22rem; line-height: 1.2; }
.style-option > span:last-child { color: var(--ink-soft); font-size: .92rem; line-height: 1.5; }
.design-note { max-width: 760px; margin: 1.5rem auto 0; color: var(--ink-soft); text-align: center; }

@media (max-width: 1180px) {
  .style-options-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .style-options-grid { grid-template-columns: 1fr; }
  .style-option { min-height: 0; }
  .nav-style-toolbar { align-items: stretch; flex-direction: column; }
  .nav-style-toolbar .btn { width: 100%; }
  /* Mobile menus do not have hover, so show a light tap/active response. */
  .main-nav .nav-link:active { transform: scale(.985); filter: brightness(1.03); }
}


/* v0.7 — stronger NSR brand presence */
.header__inner {
  min-height: 108px;
}
.brand {
  position: relative;
  padding: .25rem .45rem;
  border-radius: 1.4rem;
  transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
}
.brand::after {
  content: "";
  position: absolute;
  inset: 8% 2% 5%;
  z-index: -1;
  border-radius: 1.3rem;
  background: radial-gradient(circle, rgba(255,255,255,.78), rgba(255,255,255,0) 72%);
  opacity: .7;
}
.brand:hover,
.brand:focus-visible {
  transform: translateY(-2px) scale(1.015);
  background: rgba(255,255,255,.34);
  box-shadow: 0 12px 30px rgba(74, 111, 89, .10);
  outline: none;
}
.brand img {
  width: clamp(154px, 14vw, 202px);
  max-height: 100px;
  filter: drop-shadow(0 8px 15px rgba(91, 45, 48, .10));
}

.hero__glass--branded {
  width: min(900px, 100%);
  max-width: 900px;
  overflow: hidden;
}
.hero__glass--branded::after {
  content: "";
  position: absolute;
  right: -90px;
  bottom: -145px;
  width: 390px;
  aspect-ratio: 657 / 720;
  background: url("../images/nsr-logo.webp") center / contain no-repeat;
  opacity: .035;
  pointer-events: none;
}
.hero__brand-layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(150px, 205px) minmax(0, 1fr);
  gap: clamp(1.35rem, 3vw, 2.6rem);
  align-items: center;
}
.hero__brand-visual {
  align-self: start;
  display: grid;
  place-items: center;
  padding: .9rem;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 2rem;
  background: linear-gradient(145deg, rgba(255,255,255,.62), rgba(246,252,248,.30));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.86), 0 20px 42px rgba(63, 99, 82, .11);
  backdrop-filter: blur(16px) saturate(118%);
}
.hero__brand-logo {
  width: min(100%, 195px);
  filter: drop-shadow(0 14px 22px rgba(95, 40, 48, .16));
}
.hero__brand-message h1 {
  max-width: 11ch;
  font-size: clamp(3rem, 5.3vw, 5.65rem);
}
.hero__brand-message .lede {
  max-width: 51ch;
}

.footer-brand {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  color: inherit;
  text-decoration: none;
}
.footer-brand img {
  width: 74px;
  height: 78px;
  object-fit: contain;
  filter: drop-shadow(0 8px 12px rgba(76, 40, 46, .12));
}
.footer-brand span {
  display: grid;
  gap: .12rem;
}
.footer-brand strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.2rem;
  font-weight: 500;
}
.footer-brand small {
  color: rgba(255,255,255,.78);
  font-size: .82rem;
  letter-spacing: .025em;
}
.footer-brand:hover strong,
.footer-brand:focus-visible strong {
  text-decoration: underline;
  text-underline-offset: .2em;
}

@media (max-width: 1120px) {
  .brand img { width: 142px; max-height: 88px; }
  .header__inner { min-height: 94px; gap: .8rem; }
  .nav-link { padding-inline: .72rem; }
  .hero__brand-layout { grid-template-columns: 155px minmax(0, 1fr); }
}

@media (max-width: 760px) {
  .header__inner { min-height: 80px; }
  .brand { padding: .1rem .2rem; }
  .brand img { width: 118px; max-height: 72px; }
  .main-nav { top: calc(38px + 80px); }
  .hero__glass--branded { padding: 1.2rem; }
  .hero__glass--branded::after { width: 270px; right: -100px; bottom: -110px; opacity: .025; }
  .hero__brand-layout {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .hero__brand-visual {
    justify-self: start;
    width: 132px;
    padding: .5rem;
    border-radius: 1.45rem;
  }
  .hero__brand-logo { width: 120px; }
  .hero__brand-message h1 { font-size: clamp(2.45rem, 11vw, 3.7rem); }
  .footer-brand img { width: 62px; height: 66px; }
}
