:root{
  --navy:#073963;--navy-deep:#052b4d;--blue:#0879e8;--bright:#18a8f5;
  --text:#173b5d;--muted:#5c7287;--soft:#eef8fd;--soft-2:#f7fbfe;
  --line:#d8e7f1;--white:#fff;--shadow:0 18px 45px rgba(9,52,91,.10);
  /* Section library tokens (library/SECTIONS.md). Section styles use these, never typed-in colors. */
  --brand:#0063fb;--brand-strong:#004ecc;--brand-line:#9fc3fd;--shadow-brand:0 10px 24px rgba(0,99,251,.20);--brand-soft:#e8f1ff;--brand-tint:#f4f8ff;--ink:#0b2a5c;
  --surface-soft:#f3f8fd;--card-line:#dbe6f2;--shadow-card:0 8px 24px rgba(11,42,92,.06);--shadow-lift:0 18px 40px rgba(11,42,92,.14);
  --band:#062a5e;--band-2:#0a4396;--band-overlay:rgba(6,36,88,.92);--accent-light:#6cc2ff;
  --on-dark:#fff;--on-dark-muted:#cbdaf0;--on-dark-line:rgba(255,255,255,.18);--on-dark-fill:rgba(255,255,255,.08);--on-dark-track:rgba(255,255,255,.16);
  --danger:#d83a3a;--hand:Caveat,cursive;
  /* Header and footer */
  --header-bg:rgba(255,255,255,.98);--header-line:rgba(216,231,241,.9);--menu-line:#dce8ef;--menu-hover:#f2f9fd;--menu-muted:#647b8e;
  --shadow-menu:0 18px 42px rgba(7,57,99,.14);--shadow-menu-mobile:0 18px 32px rgba(8,46,80,.12);--footer-link:#2a4d69;--footer-muted:#758899;
  --fs-body:1rem;--fs-small:.875rem;--fs-label:.75rem;--radius:12px;--radius-sm:8px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Manrope,Arial,sans-serif;color:var(--text);background:var(--white);font-size:16px;line-height:1.6}
img{max-width:100%;display:block}a{color:var(--blue);text-decoration:none}.container{width:min(1200px,calc(100% - 48px));margin-inline:auto}
h1,h2,h3{color:var(--navy);letter-spacing:-.035em}h2{font-size:clamp(2rem,3vw,2.8rem);line-height:1.08;margin:0}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:14px 22px;border-radius:8px;font-weight:800;font-size:.94rem;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--brand);color:var(--white);box-shadow:var(--shadow-brand)}.btn-primary:hover{background:var(--brand-strong)}
.btn-secondary{background:var(--white);color:var(--brand);border:1px solid var(--brand-line)}.btn-white{background:var(--white);color:var(--navy);min-width:230px}

.site-header{position:sticky;top:0;z-index:40;background:var(--header-bg);backdrop-filter:blur(12px);border-bottom:1px solid var(--header-line)}
.nav-wrap{min-height:82px;display:grid;grid-template-columns:auto 1fr auto;gap:30px;align-items:center}
.brand{display:inline-flex;align-items:center}.brand img{display:block;width:200px;height:auto}
.primary-nav{display:flex;align-items:stretch;justify-content:center;gap:4px;height:82px}
.nav-item{position:relative;display:flex;align-items:stretch}
.nav-link{display:inline-flex;align-items:center;gap:7px;padding:0 13px;border:0;background:transparent;color:var(--navy);font:700 .82rem/1 Manrope,Arial,sans-serif;cursor:pointer;white-space:nowrap}
a.nav-link:hover,.dropdown-toggle:hover,.nav-item:focus-within>.nav-link{color:var(--blue)}
.nav-chevron{width:9px;height:6px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s ease}
.nav-item:hover .nav-chevron,.nav-item:focus-within .nav-chevron,.nav-item.open .nav-chevron{transform:rotate(180deg)}
.dropdown-menu{position:absolute;left:50%;top:calc(100% - 8px);width:330px;padding:10px;background:var(--white);border:1px solid var(--menu-line);border-radius:12px;box-shadow:var(--shadow-menu);opacity:0;visibility:hidden;transform:translate(-50%,8px);transition:opacity .18s ease,transform .18s ease,visibility .18s ease}
.dropdown-menu:before{content:'';position:absolute;left:0;right:0;top:-14px;height:16px}
.nav-item:hover>.dropdown-menu,.nav-item:focus-within>.dropdown-menu,.nav-item.open>.dropdown-menu{opacity:1;visibility:visible;transform:translate(-50%,0)}
.dropdown-menu-right{left:auto;right:0;transform:translate(0,8px)}.nav-item:hover>.dropdown-menu-right,.nav-item:focus-within>.dropdown-menu-right,.nav-item.open>.dropdown-menu-right{transform:translate(0,0)}
.dropdown-menu a{display:block;padding:11px 12px;border-radius:8px;color:var(--navy)}
.dropdown-menu a:hover{background:var(--menu-hover)}
.dropdown-menu strong,.dropdown-menu span{display:block}.dropdown-menu strong{font-size:.82rem;line-height:1.25}.dropdown-menu span{margin-top:3px;font-size:.72rem;line-height:1.4;font-weight:500;color:var(--menu-muted)}
.dropdown-label{margin:8px 12px 4px;padding-top:12px;border-top:1px solid var(--menu-line);font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--menu-muted)}
.ext-icon{display:inline-block;width:.85em;height:.85em;margin-left:3px;vertical-align:-.08em;fill:currentColor}.s-link .ext-icon{margin-left:0}
.nav-cta{padding-inline:22px;min-height:46px}.menu-toggle{display:none}

.footer{padding:34px 0 20px}.footer-top{display:flex;justify-content:space-between;gap:30px;align-items:center;padding-bottom:22px;border-bottom:1px solid var(--line)}
.footer-brand{display:flex;align-items:center;gap:22px}.footer-brand .brand{flex:0 0 auto}.footer-brand .brand img{width:180px}.footer-brand p{font-size:.78rem;max-width:360px;margin:0;color:var(--muted)}.footer nav{display:flex;flex-wrap:wrap;gap:16px}.footer nav a{font-size:.75rem;font-weight:700;color:var(--footer-link)}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding-top:14px;font-size:.7rem;color:var(--footer-muted)}.footer-bottom a{color:var(--footer-muted);margin-left:18px}

@media(max-width:1060px){
  .nav-wrap{grid-template-columns:1fr auto auto;min-height:74px}
  .menu-toggle{display:flex;width:42px;height:42px;border:1px solid var(--line);background:var(--white);border-radius:8px;padding:10px;flex-direction:column;justify-content:center;gap:4px;cursor:pointer}
  .menu-toggle span{display:block;width:100%;height:2px;background:var(--navy);border-radius:2px}
  .primary-nav{display:none;position:absolute;top:74px;left:0;right:0;height:auto;background:var(--white);border-top:1px solid var(--line);box-shadow:var(--shadow-menu-mobile);padding:14px 24px 20px;flex-direction:column;align-items:stretch;gap:2px}
  .primary-nav.open{display:flex}
  .nav-item{display:block;width:100%}
  .nav-link{width:100%;min-height:46px;padding:0 4px;justify-content:space-between;font-size:.9rem}
  a.nav-link{justify-content:flex-start}
  .dropdown-menu,.dropdown-menu-right{position:static;width:100%;padding:0 0 4px 12px;border:0;border-radius:0;box-shadow:none;opacity:1;visibility:visible;transform:none;display:none}
  .nav-item.open>.dropdown-menu{display:block;transform:none}
  .dropdown-menu:before{display:none}
  .dropdown-menu a{padding:10px 12px}
  .dropdown-menu strong{font-size:.82rem}.dropdown-menu span{font-size:.72rem}
  .nav-cta{min-height:42px;padding:10px 16px;font-size:.82rem}
  
  
  
  
}
@media(max-width:780px){
  .container{width:min(100% - 30px,680px)}
  .brand img{width:160px}
  .nav-wrap{min-height:68px}.primary-nav{top:68px}
  
  
  
  
  
  .footer-top{flex-direction:column;align-items:flex-start}.footer-bottom{flex-direction:column}
}
@media(max-width:520px){
  .nav-cta{display:none}.nav-wrap{grid-template-columns:1fr auto}
  
}

/* ==========================================================================
   Section library
   The 18 approved section types from library/SECTIONS.md.
   Live reference with every variant: library/components.html
   Rules: colors only from :root variables; body text >= 1rem, secondary
   text >= .875rem, labels and fine print >= .75rem; one class per section
   type (.s-name), parts as .s-name__part, variants as .s-name--variant.
   ========================================================================== */

/* Shared parts used inside any section */
:where(.s-hero,.s-icons,.s-intro,.s-cards,.s-features,.s-steps,.s-statement,.s-results,.s-stats,.s-image-cards,.s-split,.s-testimonial,.s-compare,.s-team,.s-logos,.s-booking,.s-faq,.s-cta){position:relative;padding:64px 0;color:var(--text)}
:where(.s-hero,.s-icons,.s-intro,.s-cards,.s-features,.s-steps,.s-statement,.s-results,.s-stats,.s-image-cards,.s-split,.s-testimonial,.s-compare,.s-team,.s-logos,.s-booking,.s-faq,.s-cta)>.container{position:relative}
.s-soft{background:var(--surface-soft)}
.s-head{max-width:760px;margin:0 0 30px}
.s-head--center{margin-inline:auto;text-align:center}
.s-head--row{max-width:none;display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.s-head--row>div{max-width:760px}
.s-eyebrow{margin:0 0 8px;font-size:var(--fs-label);font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--brand)}
.s-title{margin:0;font-size:clamp(1.75rem,2.6vw,2.35rem);line-height:1.12;letter-spacing:-.03em;color:var(--ink)}
.s-lead{margin:10px 0 0;font-size:1.0625rem;line-height:1.6;color:var(--text)}
.s-link{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-small);font-weight:800;color:var(--brand)}
.s-icon{display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;color:var(--brand)}
.s-icon svg{width:30px;height:30px;fill:currentColor}
.s-icon--sm{width:32px;height:32px}.s-icon--sm svg{width:24px;height:24px}
.s-icon--circle{border-radius:50%;background:var(--brand-soft)}
.s-list{list-style:none;margin:12px 0 0;padding:0}
.s-list li{position:relative;margin:7px 0;padding-left:22px;font-size:var(--fs-body);line-height:1.45}
.s-list li:before{content:'';position:absolute;left:4px;top:.6em;width:6px;height:6px;border-radius:50%;background:var(--brand)}
.s-list--check li,.s-list--cross li{padding-left:30px}
.s-list--check li:before{content:'\2713';left:0;top:.1em;width:20px;height:20px;display:grid;place-items:center;font-size:var(--fs-label);font-weight:900;color:var(--on-dark);background:var(--brand)}
.s-list--cross li:before{content:'\2715';left:2px;top:.05em;width:auto;height:auto;font-size:var(--fs-body);font-weight:900;color:var(--danger);background:none}
.s-note{position:absolute;top:0;right:24px;z-index:3;max-width:240px;margin:0;font-family:var(--hand);font-size:1.75rem;font-weight:700;line-height:1.05;color:var(--brand);transform:rotate(-6deg);pointer-events:none}
.s-note--light{color:var(--accent-light)}
.s-hero__media .s-note{top:22px}

/* 1. Hero */
.s-hero{padding:0;overflow:hidden;background:linear-gradient(90deg,var(--white) 0 50%,var(--surface-soft) 50% 100%)}
.s-hero__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);min-height:540px}
.s-hero__copy{display:flex;flex-direction:column;justify-content:center;padding:64px 48px 56px max(24px,calc(50vw - 600px))}
.s-hero h1{margin:0 0 18px;font-size:clamp(2.5rem,4.4vw,3.9rem);line-height:1.02;letter-spacing:-.035em;color:var(--ink)}
.s-hero h1 span{color:var(--brand)}
.s-hero__subhead{margin:-4px 0 18px;font-size:clamp(1.375rem,2.2vw,1.875rem);font-weight:700;line-height:1.2;letter-spacing:-.02em;color:var(--ink)}
.s-hero__text{max-width:600px;margin:0 0 12px;font-size:1.0625rem;line-height:1.6}
.s-hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:18px}
.s-hero__details{list-style:none;display:grid;gap:14px;margin:10px 0 8px;padding:0}
.s-hero__details li{display:flex;gap:14px;align-items:flex-start}
.s-hero__details strong,.s-hero__details span:not(.s-icon){display:block}
.s-hero__details strong{font-size:var(--fs-body);color:var(--ink)}
.s-hero__details span:not(.s-icon){font-size:var(--fs-small);line-height:1.45;color:var(--muted)}
.s-hero__media{position:relative;min-height:440px;background:var(--surface-soft)}
.s-hero__media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.s-hero__overlay{position:absolute;right:24px;bottom:24px;z-index:2;max-width:330px;padding:18px 22px;border:1px solid var(--on-dark-line);border-radius:var(--radius-sm);background:var(--band-overlay);color:var(--on-dark);box-shadow:var(--shadow-lift)}
.s-hero__overlay .s-list{margin:0}.s-hero__overlay .s-list li{margin:6px 0;font-weight:700}
.s-hero__overlay--quote p{margin:0 0 10px;font-size:var(--fs-body);line-height:1.5}
.s-hero__overlay--quote cite{font-size:var(--fs-small);font-style:normal;color:var(--on-dark-muted)}
.s-hero__overlay--stats{padding:8px 20px;border-color:var(--card-line);background:var(--white);color:var(--text)}
.s-hero__stat{display:flex;align-items:center;gap:12px;padding:10px 0}
.s-hero__stat+.s-hero__stat{border-top:1px solid var(--card-line)}
.s-hero__stat span:not(.s-icon),.s-hero__stat strong{display:block}
.s-hero__stat span:not(.s-icon){font-size:var(--fs-small);color:var(--muted)}
.s-hero__stat strong{font-size:1.375rem;line-height:1.1;color:var(--brand)}
.s-hero__tags{position:absolute;left:24px;bottom:24px;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:0;padding:0;list-style:none}
.s-hero__tags li{display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 10px;border-radius:999px;background:var(--white);box-shadow:var(--shadow-card);font-size:var(--fs-small);font-weight:700;color:var(--ink)}
.s-hero__tags svg{width:18px;height:18px;fill:currentColor;color:var(--brand)}

/* 2. Icon strip */
.s-icons{padding:22px 0;background:var(--surface-soft);border-block:1px solid var(--card-line)}
.s-icons__grid{display:grid;grid-template-columns:repeat(4,1fr)}
.s-icons--3 .s-icons__grid{grid-template-columns:repeat(3,1fr)}
.s-icons--5 .s-icons__grid{grid-template-columns:repeat(5,1fr)}
.s-icons__item{display:flex;align-items:center;gap:14px;padding:6px 20px}
.s-icons__item+.s-icons__item{border-left:1px solid var(--card-line)}
.s-icons__item strong,.s-icons__item span:not(.s-icon){display:block}
.s-icons__item strong{font-size:var(--fs-body);line-height:1.3;color:var(--ink)}
.s-icons__item span:not(.s-icon){margin-top:2px;font-size:var(--fs-small);line-height:1.4;color:var(--muted)}
.s-icons--stacked{background:var(--white);border:0}
.s-icons--stacked .s-icons__item{flex-direction:column;text-align:center;gap:8px}
.s-icons--stacked .s-icons__item+.s-icons__item{border-left:0}
/* Four-item strip: two rows of two below 900px so long words never overflow */
@media(max-width:900px){.s-icons__grid{grid-template-columns:1fr 1fr;row-gap:16px}.s-icons__grid>.s-icons__item:nth-child(3){border-left:0}}

/* 3. Intro text block */
.s-intro__body{max-width:860px;margin:0 auto;text-align:center}
.s-intro__body p:not(.s-eyebrow){margin:14px 0 0;font-size:1.0625rem;line-height:1.65}

/* 4. Card grid */
.s-cards__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.s-cards--4col .s-cards__grid{grid-template-columns:repeat(4,1fr);gap:16px}
.s-cards--5col .s-cards__grid{grid-template-columns:repeat(5,1fr);gap:14px}
.s-cards--2col .s-cards__grid{grid-template-columns:repeat(2,1fr);gap:20px}.s-cards--2col .s-intro__body{margin-top:44px}
.s-cards--callout{padding:0 0 64px}.s-cards--callout .s-cards__grid{grid-template-columns:1fr}.s-cards--callout .s-cards__item{max-width:900px}
.s-cards--6col .s-cards__grid{grid-template-columns:repeat(6,1fr);gap:12px}
.s-cards__item{position:relative;display:flex;flex-direction:column;padding:24px;border:1px solid var(--card-line);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow-card)}
.s-cards--5col .s-cards__item,.s-cards--6col .s-cards__item{padding:20px 16px}
.s-cards__head{display:flex;align-items:center;gap:12px;margin-bottom:4px}
.s-cards__item h3{margin:12px 0 8px;font-size:1.125rem;line-height:1.25;color:var(--ink)}
.s-cards__item p{margin:0;font-size:var(--fs-body);line-height:1.55;color:var(--muted)}
.s-cards__item .s-list{color:var(--text)}
.s-cards__item .s-cards__head h3{margin:0}
.s-cards__item .s-link{margin-top:auto;padding-top:16px}
.s-cards--center .s-cards__item{align-items:center;text-align:center}
.s-cards__badge{position:absolute;top:14px;left:14px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--brand);color:var(--on-dark);font-size:var(--fs-label);font-weight:800}
.s-cards--numbered .s-cards__item{padding-top:40px}
.s-cards__stat{display:flex;align-items:center;gap:10px;font-size:1.75rem;font-weight:800;line-height:1.1;letter-spacing:-.02em;color:var(--ink)}
.s-cards__stat+h3{margin-top:4px}
.s-cards__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}
.s-cards__stats div{padding:12px 6px;border:1px solid var(--card-line);border-radius:var(--radius-sm);text-align:center}
.s-cards__stats strong,.s-cards__stats span{display:block}
.s-cards__stats strong{font-size:1.375rem;line-height:1.15;color:var(--ink)}
.s-cards__stats span{margin-top:4px;font-size:var(--fs-label);line-height:1.3;color:var(--muted)}

/* 5. Feature row */
.s-features__grid{display:grid;grid-template-columns:repeat(3,1fr)}
.s-features--4col .s-features__grid{grid-template-columns:repeat(4,1fr)}
.s-features__item{display:flex;align-items:flex-start;gap:16px;padding:6px 28px}
.s-features__item:first-child{padding-left:0}
.s-features__item+.s-features__item{border-left:1px solid var(--card-line)}
.s-features__item h3{margin:4px 0 6px;font-size:1.125rem;line-height:1.25;color:var(--ink)}
.s-features__item p{margin:0;font-size:var(--fs-body);line-height:1.55;color:var(--muted)}
.s-features__item .s-link{margin-top:12px}
.s-features--stacked .s-features__item{flex-direction:column;gap:10px}
.s-features--boxed .s-features__grid{gap:16px}
.s-features--boxed .s-features__item,.s-features--boxed .s-features__item:first-child{padding:22px;border:1px solid var(--card-line);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow-card)}
.s-features--dark{background:linear-gradient(110deg,var(--band),var(--band-2));color:var(--on-dark)}
.s-features--dark .s-title,.s-features--dark .s-features__item h3{color:var(--on-dark)}
.s-features--dark .s-eyebrow{color:var(--accent-light)}
.s-features--dark .s-features__item p{color:var(--on-dark-muted)}
.s-features--dark .s-features__item+.s-features__item{border-left-color:var(--on-dark-line)}
.s-features--dark .s-icon,.s-features--dark .s-link{color:var(--accent-light)}

/* 6. Step band */
.s-steps__list{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:16px;margin:0;padding:0;list-style:none}
.s-steps__item{position:relative;text-align:center}
.s-steps__item:not(:last-child):after{content:'';position:absolute;top:21px;left:calc(50% + 30px);width:calc(100% - 44px);height:2px;background:var(--brand)}
.s-steps__marker{position:relative;z-index:1;display:grid;place-items:center;width:44px;height:44px;margin:0 auto 12px;border-radius:50%;background:var(--brand);color:var(--on-dark);font-weight:800}
.s-steps__marker svg{width:22px;height:22px;fill:currentColor}
.s-steps__item strong{display:block;font-size:var(--fs-body);line-height:1.3;color:var(--ink)}
.s-steps__item p{margin:4px 0 0;font-size:var(--fs-small);line-height:1.45;color:var(--muted)}
.s-steps--dots .s-steps__marker{width:18px;height:18px;margin-bottom:14px;border:4px solid var(--brand-soft);box-sizing:content-box}
.s-steps--dots .s-steps__item:not(:last-child):after{top:12px;left:calc(50% + 15px);width:calc(100% - 14px)}
.s-steps--boxed .s-steps__list{gap:36px}
.s-steps--boxed .s-steps__item{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--card-line);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow-card);text-align:left}
.s-steps--boxed .s-steps__item:not(:last-child):after{content:'\2192';top:50%;left:auto;right:-28px;width:auto;height:auto;transform:translateY(-50%);background:none;font-size:1.25rem;color:var(--brand)}
.s-steps--boxed .s-steps__marker{margin:0}
.s-steps--dark{background:linear-gradient(100deg,var(--band),var(--band-2));color:var(--on-dark)}
.s-steps__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:44px;align-items:center}
.s-steps--dark .s-title,.s-steps--dark .s-steps__item strong{color:var(--on-dark)}
.s-steps--dark .s-eyebrow{color:var(--accent-light)}
.s-steps--dark .s-lead,.s-steps--dark .s-steps__item p{color:var(--on-dark-muted)}
.s-steps--dark .s-steps__list{gap:22px}
.s-steps--dark:has(> .container > .s-note) .s-steps__list{padding-top:88px}
.s-steps--dark:has(> .container > .s-note) .s-eyebrow+.s-steps__list{padding-top:52px}
.s-steps--dark .s-steps__marker{width:52px;height:52px;border:1.5px solid var(--accent-light);background:var(--on-dark-fill)}
.s-steps--dark .s-steps__item:not(:last-child):after{content:'\2192';top:14px;left:auto;right:-18px;width:auto;height:auto;background:none;font-size:1.125rem;color:var(--accent-light)}
/* 6E. Rows of four, for journeys with seven or more steps */
.s-steps--rows .s-steps__list{grid-auto-flow:row;grid-template-columns:repeat(4,minmax(0,1fr));row-gap:36px}
.s-steps--rows .s-steps__item:nth-child(4n):after{display:none}

/* 7. Dark statement band */
.s-statement{background:linear-gradient(100deg,var(--band),var(--band-2));color:var(--on-dark)}
.s-statement__grid{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;align-items:center}
.s-statement__col{position:relative;padding:0 36px}
.s-statement__col:first-child{padding-left:0}
.s-statement__col+.s-statement__col{border-left:1px solid var(--on-dark-line)}
.s-statement__col:has(.s-note){min-height:120px}
.s-statement__col .s-note{top:50%;right:auto;left:36px;transform:translateY(-50%) rotate(-6deg)}
.s-statement__head{display:flex;align-items:center;gap:14px;margin-bottom:10px}
.s-statement h2,.s-statement h3{margin:0;color:var(--on-dark)}
.s-statement h2{font-size:clamp(1.5rem,2.2vw,1.9rem);line-height:1.15}
.s-statement h3{font-size:1.5rem}
.s-statement p:not(.s-eyebrow):not(.s-note){margin:8px 0 0;font-size:var(--fs-body);line-height:1.55;color:var(--on-dark-muted)}
.s-statement .s-eyebrow{color:var(--accent-light)}
.s-statement .s-icon{color:var(--accent-light)}
.s-statement .s-list li{color:var(--on-dark)}
.s-statement--donut .s-statement__grid{grid-auto-columns:auto;grid-template-columns:auto minmax(0,1fr) minmax(0,1.1fr)}
.s-statement__donut{--value:21;display:grid;place-items:center;width:170px;height:170px;border-radius:50%;background:radial-gradient(closest-side,var(--band) 74%,transparent 75% 100%),conic-gradient(var(--brand) calc(var(--value) * 1%),var(--on-dark-track) 0)}
.s-statement__donut strong{font-size:2.5rem;font-weight:800;letter-spacing:-.03em;color:var(--on-dark)}

/* 8. Results */
.s-results__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.s-results__card{overflow:hidden;border:1px solid var(--card-line);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow-card)}
.s-results__photo{position:relative;height:180px;background:var(--surface-soft)}
.s-results__photo img{width:100%;height:100%;object-fit:cover}
.s-results__number{position:absolute;left:16px;bottom:14px;padding:6px 12px;border-radius:var(--radius-sm);background:var(--band-overlay);color:var(--on-dark);font-size:1.5rem;font-weight:800;letter-spacing:-.02em}
.s-results__body{padding:18px 20px 20px}
.s-results__body h3{margin:0 0 6px;font-size:1.125rem;color:var(--ink)}
.s-results__body p{margin:0 0 12px;font-size:var(--fs-body);line-height:1.55;color:var(--muted)}
.s-results--featured .s-results__grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) minmax(0,1fr);align-items:stretch}
.s-results--featured .s-results__photo{height:auto;min-height:230px;overflow:hidden;border-radius:var(--radius)}
.s-results--featured .s-results__photo img{position:absolute;inset:0}
.s-results__caption{position:absolute;left:0;right:0;bottom:0;padding:12px 16px;background:var(--band-overlay);color:var(--on-dark)}
.s-results__caption strong,.s-results__caption span{display:block}
.s-results__caption strong{font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase}
.s-results__caption span{font-size:var(--fs-small);color:var(--on-dark-muted)}
.s-results__quote{margin:0;padding:24px;border:1px solid var(--card-line);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow-card)}
.s-results__quote p{margin:0 0 14px;font-size:var(--fs-body);line-height:1.6;color:var(--text)}
.s-results__quote cite{display:block;font-size:var(--fs-small);font-style:normal;color:var(--muted)}
.s-results__quote cite strong{display:block;color:var(--ink)}
.s-results__tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.s-results__tile{display:flex;align-items:center;gap:10px;padding:14px;border:1px solid var(--card-line);border-radius:var(--radius);background:var(--white)}
.s-results__tile strong,.s-results__tile span:not(.s-icon){display:block}
.s-results__tile strong{font-size:1.5rem;line-height:1.1;color:var(--ink)}
.s-results__tile span:not(.s-icon){font-size:var(--fs-small);line-height:1.35;color:var(--muted)}

/* 9. Stat grid */
.s-stats__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.s-stats--4col .s-stats__grid{grid-template-columns:repeat(4,1fr)}
.s-stats__tile{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid var(--card-line);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow-card)}
.s-stats__tile strong,.s-stats__tile span:not(.s-icon),.s-stats__tile small{display:block}
.s-stats__tile strong{font-size:1.5rem;line-height:1.1;letter-spacing:-.02em;color:var(--ink)}
.s-stats__tile span:not(.s-icon){font-size:var(--fs-small);line-height:1.35;color:var(--muted)}
.s-stats__tile p{margin:0;font-size:var(--fs-body);line-height:1.45;color:var(--text)}
.s-stats--stacked .s-stats__tile{flex-direction:column;align-items:flex-start;gap:6px;padding:22px}
.s-stats--stacked .s-stats__tile strong{font-size:2.25rem}
.s-stats--stacked .s-stats__tile span:not(.s-icon){font-size:var(--fs-body);font-weight:700;color:var(--ink)}
.s-stats--stacked .s-stats__tile small{margin-top:6px;font-size:var(--fs-small);line-height:1.4;color:var(--muted)}

/* 10. Image card grid */
.s-image-cards__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.s-image-cards__item{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--card-line);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow-card)}
.s-image-cards__item img{width:100%;height:180px;object-fit:cover}
.s-image-cards__body{display:flex;flex:1;flex-direction:column;padding:18px 20px 20px}
.s-image-cards__body h3{margin:0 0 6px;font-size:1.125rem;color:var(--ink)}
.s-image-cards__body p{margin:0;font-size:var(--fs-body);line-height:1.55;color:var(--muted)}
.s-image-cards__body .s-link{margin-top:auto;padding-top:14px}

/* 11. Image plus text split */
.s-split__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:52px;align-items:center}
.s-split__media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow-card)}
.s-split__body p:not(.s-eyebrow){margin:12px 0 0;font-size:var(--fs-body);line-height:1.65}
.s-split--reverse .s-split__media{order:2}
.s-split--founder .s-split__grid{grid-template-columns:minmax(0,.55fr) minmax(0,1.45fr)}
.s-split--founder .s-split__media img{aspect-ratio:4/5}
.s-split__quote{margin:18px 0 0;padding-left:18px;border-left:3px solid var(--brand);font-size:1.25rem;font-weight:700;line-height:1.5;color:var(--ink)}
.s-split__signature{margin:16px 0 0;font-family:var(--hand);font-size:2.25rem;line-height:1;color:var(--brand)}
.s-split__name{margin-top:6px;font-size:var(--fs-small);color:var(--muted)}
.s-split__name strong{display:block;font-size:var(--fs-body);color:var(--ink)}

/* 12. Testimonial */
.s-testimonial__band{display:grid;grid-template-columns:200px minmax(0,1fr) auto;gap:32px;align-items:center;overflow:hidden;border:1px solid var(--card-line);border-radius:var(--radius);background:var(--brand-tint)}
.s-testimonial__band>img{width:200px;height:100%;min-height:170px;object-fit:cover}
.s-testimonial__band blockquote{margin:0;padding:24px 0}
.s-testimonial blockquote p{margin:0 0 12px;font-size:1.25rem;line-height:1.5;color:var(--ink)}
.s-testimonial cite{display:block;font-size:var(--fs-small);font-style:normal;color:var(--muted)}
.s-testimonial cite strong{color:var(--ink)}
.s-testimonial__aside{align-self:stretch;display:flex;align-items:center;max-width:260px;margin:0;padding:24px 32px;border-left:1px solid var(--card-line);font-size:1.25rem;font-weight:800;line-height:1.35;color:var(--ink)}
.s-testimonial--dark{background:linear-gradient(100deg,var(--band),var(--band-2))}
.s-testimonial--dark .s-testimonial__band{border-color:var(--on-dark-line);background:none}
.s-testimonial--dark blockquote p,.s-testimonial--dark cite strong,.s-testimonial--dark .s-testimonial__aside{color:var(--on-dark)}
.s-testimonial--dark cite{color:var(--on-dark-muted)}
.s-testimonial--dark .s-testimonial__aside{border-left-color:var(--on-dark-line)}
.s-testimonial__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.s-testimonial__card{margin:0;display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;align-items:start;padding:16px;border:1px solid var(--card-line);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow-card)}
.s-testimonial__card img{width:110px;height:130px;object-fit:cover;border-radius:var(--radius-sm)}
.s-testimonial__card blockquote{margin:0}
.s-testimonial__card blockquote p{margin:0 0 10px;font-size:var(--fs-body);line-height:1.5;color:var(--text)}

/* 13. Comparison table */
.s-compare__layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:52px;align-items:center}
.s-compare__table{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--card-line);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow-card)}
.s-compare__col{padding:0 22px 22px}
.s-compare__col h3{margin:0 -22px 6px;padding:18px 22px;border-bottom:1px solid var(--card-line);font-size:var(--fs-body);text-align:center;color:var(--ink)}
.s-compare__col--preferred{margin:-12px -1px -12px 0;border:2px solid var(--brand);border-radius:var(--radius);background:var(--brand-tint);box-shadow:var(--shadow-lift)}
.s-compare__col--preferred h3{margin-bottom:6px;border-radius:calc(var(--radius) - 2px) calc(var(--radius) - 2px) 0 0;border-bottom:0;background:var(--brand);color:var(--on-dark)}

/* 14. Team grid */
.s-team__groups{display:flex;flex-wrap:wrap;gap:16px}
.s-team__group{flex:1 1 auto;padding:16px 18px 18px;border:1px solid var(--card-line);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow-card)}
.s-team__group h3{margin:0 0 12px;font-size:var(--fs-body);color:var(--brand)}
.s-team__members{display:flex;flex-wrap:wrap;gap:14px}
.s-team__member{width:112px;text-align:center}
.s-team__photo{display:grid;place-items:center;width:112px;height:112px;overflow:hidden;margin-bottom:8px;border-radius:var(--radius-sm);background:var(--brand-soft);color:var(--brand);font-size:1.5rem;font-weight:800}
.s-team__photo img{width:100%;height:100%;object-fit:cover}
.s-team__member strong,.s-team__member span{display:block}
.s-team__member strong{font-size:var(--fs-small);color:var(--ink)}
.s-team__member span{font-size:var(--fs-label);line-height:1.3;color:var(--muted)}

/* 15. Logo strip */
.s-logos{padding:44px 0;background:var(--surface-soft);border-block:1px solid var(--card-line)}
.s-logos__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px;align-items:center}
.s-logos .s-head{margin:0}
.s-logos__row{display:flex;flex-wrap:wrap;align-items:center;gap:16px 32px}
.s-logos__row img{width:auto;height:34px}
.s-logos__logo{font-size:1.25rem;font-weight:800;letter-spacing:-.02em;color:var(--ink)}
.s-logos__more{font-size:var(--fs-small);color:var(--muted)}
.s-logos--dark{background:linear-gradient(100deg,var(--band),var(--band-2));border:0}
.s-logos--dark .s-title,.s-logos--dark .s-logos__logo{color:var(--on-dark)}
.s-logos--dark .s-eyebrow{color:var(--accent-light)}
.s-logos--dark .s-lead,.s-logos--dark .s-logos__more{color:var(--on-dark-muted)}
.s-logos--dark .s-logos__row img{filter:brightness(0) invert(1)}

/* 16. Booking section */
.s-booking__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start}
.s-booking__panel{padding:28px;border:1px solid var(--card-line);border-radius:var(--radius);background:var(--brand-tint)}
.s-booking__panel+.s-booking__panel{margin-top:24px}
.s-booking__panel h2{margin:0;font-size:1.75rem;line-height:1.2;color:var(--ink)}
.s-booking__panel>p{margin:8px 0 22px;font-size:var(--fs-body);color:var(--text)}
.s-booking__row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.s-booking__field{margin-bottom:16px}
.s-booking__field label{display:block;margin-bottom:6px;font-size:var(--fs-small);font-weight:700;color:var(--ink)}
.s-booking__field label b{color:var(--danger)}
.s-booking__field input,.s-booking__field select,.s-booking__field textarea{width:100%;padding:12px 14px;border:1px solid var(--card-line);border-radius:var(--radius-sm);background:var(--white);font:inherit;font-size:var(--fs-body);color:var(--text)}
.s-booking__field textarea{min-height:96px;resize:vertical}
.s-booking__field :focus{outline:2px solid var(--brand);outline-offset:1px}
.s-booking__form .btn{width:100%;border:0;font-family:inherit;cursor:pointer}
.s-booking__fine{margin:12px 0 0;font-size:var(--fs-label);text-align:center;color:var(--muted)}
.s-booking__embed{display:grid;place-items:center;min-height:360px;padding:24px;border:2px dashed var(--card-line);border-radius:var(--radius-sm);background:var(--white);font-size:var(--fs-small);text-align:center;color:var(--muted)}
.s-booking__expect{list-style:none;display:grid;gap:16px;margin:16px 0 0;padding:0;counter-reset:expect}
.s-booking__expect li{position:relative;padding-left:52px;counter-increment:expect}
.s-booking__expect li:before{content:counter(expect);position:absolute;left:0;top:0;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--brand);color:var(--on-dark);font-weight:800}
.s-booking__expect strong{display:block;font-size:var(--fs-body);color:var(--ink)}
.s-booking__expect span{font-size:var(--fs-small);color:var(--muted)}

/* 17. FAQ */
.s-faq__grid{display:grid;gap:10px}
.s-faq--2col .s-faq__grid{grid-template-columns:1fr 1fr;align-items:start}
.s-faq details{padding:0 18px;border:1px solid var(--card-line);border-radius:var(--radius-sm);background:var(--white)}
.s-faq summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;list-style:none;cursor:pointer;font-size:var(--fs-body);font-weight:700;color:var(--ink)}
.s-faq summary::-webkit-details-marker{display:none}
.s-faq summary:after{content:'+';flex:0 0 auto;font-size:1.375rem;font-weight:400;line-height:1;color:var(--brand)}
.s-faq details[open] summary:after{content:'\2212'}
.s-faq details p{margin:0;padding:0 0 16px;font-size:var(--fs-body);line-height:1.55;color:var(--muted)}

/* 18. Call-to-action band (one fixed size on every page, no variants) */
.s-cta{padding:44px 0;background:linear-gradient(95deg,var(--band),var(--brand));color:var(--on-dark)}
.s-cta__grid{display:flex;justify-content:space-between;align-items:center;gap:36px}
.s-cta h2{margin:0 0 6px;font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.2;color:var(--on-dark)}
.s-cta p{margin:0;font-size:var(--fs-body);color:var(--on-dark-muted)}
.s-cta__action{display:flex;flex:0 0 auto;flex-direction:column;align-items:center;gap:8px}
.s-cta__action>span{font-size:var(--fs-small);color:var(--on-dark-muted)}

/* Section library: responsive */
@media(max-width:1060px){
  .s-hero__grid{grid-template-columns:1fr 1fr}.s-hero__copy{padding-right:28px}
  .s-icons--5 .s-icons__grid{grid-template-columns:repeat(3,1fr);row-gap:16px}.s-icons--5 .s-icons__item:nth-child(4){border-left:0}
  .s-cards--5col .s-cards__grid,.s-cards--6col .s-cards__grid{grid-template-columns:repeat(3,1fr)}
  .s-cards--4col .s-cards__grid,.s-features--4col .s-features__grid{grid-template-columns:repeat(2,1fr);gap:16px}
  .s-features--4col .s-features__item:nth-child(3){border-left:0;padding-left:0}
  .s-steps__grid,.s-compare__layout,.s-logos__grid,.s-booking__grid{grid-template-columns:1fr}
  .s-stats__grid{grid-template-columns:repeat(3,1fr)}
  .s-statement--donut .s-statement__grid{grid-template-columns:auto 1fr}.s-statement--donut .s-statement__col:last-child{grid-column:1/-1;margin-top:28px;padding-left:0;border-left:0}
  .s-results--featured .s-results__grid{grid-template-columns:1fr 1fr}.s-results--featured .s-results__tiles{grid-column:1/-1}
  .s-testimonial__band{grid-template-columns:160px minmax(0,1fr)}.s-testimonial__band>img{width:160px}.s-testimonial__aside{grid-column:1/-1;max-width:none;border-left:0;border-top:1px solid var(--card-line)}
  .s-testimonial__grid{grid-template-columns:1fr}
}
@media(max-width:780px){
  :where(.s-intro,.s-cards,.s-features,.s-steps,.s-statement,.s-results,.s-stats,.s-image-cards,.s-split,.s-testimonial,.s-compare,.s-team,.s-booking,.s-faq){padding:46px 0}
  .s-note{display:none}
  .s-head--row{flex-direction:column;align-items:flex-start;gap:10px}
  .s-hero{background:var(--white)}.s-hero__grid{grid-template-columns:1fr}.s-hero__copy{padding:40px 15px 32px}.s-hero__media{min-height:360px}
  .s-icons__grid,.s-icons--3 .s-icons__grid,.s-icons--5 .s-icons__grid{grid-template-columns:1fr 1fr;row-gap:16px}
  .s-icons__item,.s-icons__item+.s-icons__item{padding:4px 8px;border-left:0}
  .s-cards__grid,.s-image-cards__grid,.s-results__grid,.s-features__grid,.s-split__grid,.s-split--founder .s-split__grid{grid-template-columns:1fr}
  .s-cards--4col .s-cards__grid,.s-cards--5col .s-cards__grid,.s-cards--6col .s-cards__grid{grid-template-columns:1fr 1fr}
  .s-cards--2col .s-cards__grid{grid-template-columns:1fr}.s-cards--callout{padding:0 0 46px}
  .s-features__grid,.s-features--4col .s-features__grid{grid-template-columns:1fr;gap:20px}
  .s-features__item,.s-features__item+.s-features__item{padding:0;border-left:0}
  .s-split--reverse .s-split__media{order:0}.s-split--founder .s-split__media{max-width:280px}
  .s-steps__list{grid-auto-flow:row;grid-auto-columns:auto;gap:18px}
  .s-steps__item{display:flex;align-items:flex-start;gap:14px;text-align:left}.s-steps__marker{margin:0}
  .s-steps__item:not(:last-child):after{display:none}
  .s-steps--rows .s-steps__list{grid-template-columns:1fr;row-gap:18px}
  .s-steps--dark .s-steps__list{grid-template-columns:1fr 1fr}
  .s-steps--dark:has(> .container > .s-note) .s-steps__list,.s-steps--dark:has(> .container > .s-note) .s-eyebrow+.s-steps__list{padding-top:0}
  .s-statement__grid,.s-statement--donut .s-statement__grid{grid-auto-flow:row;grid-template-columns:1fr;gap:24px}
  .s-statement__col,.s-statement__col+.s-statement__col,.s-statement--donut .s-statement__col:last-child{margin:0;padding:0;border-left:0}
  .s-statement__col:has(.s-note){display:none}
  .s-results--featured .s-results__grid{grid-template-columns:1fr}
  .s-stats__grid,.s-stats--4col .s-stats__grid{grid-template-columns:1fr 1fr}
  .s-testimonial__band{grid-template-columns:1fr;gap:0}.s-testimonial__band>img{width:100%;height:220px}.s-testimonial__band blockquote{padding:20px}
  .s-compare__table{grid-template-columns:1fr}.s-compare__col--preferred{margin:0}
  .s-booking__row,.s-faq--2col .s-faq__grid{grid-template-columns:1fr}
  .s-cta__grid{flex-direction:column;align-items:flex-start}.s-cta__action{align-items:flex-start}
}
@media(max-width:520px){
  .s-icons__grid,.s-icons--3 .s-icons__grid,.s-icons--5 .s-icons__grid,.s-cards--4col .s-cards__grid,.s-cards--5col .s-cards__grid,.s-cards--6col .s-cards__grid,.s-stats__grid,.s-stats--4col .s-stats__grid,.s-results__tiles,.s-steps--dark .s-steps__list{grid-template-columns:1fr}
  .s-hero__overlay{position:static;max-width:none;margin:12px 15px 0;border-radius:var(--radius-sm)}
  .s-hero__media{min-height:0;background:none}.s-hero__media>img{position:static;height:280px}
  .s-hero__tags{top:16px;bottom:auto;left:15px}
  .s-testimonial__card{grid-template-columns:1fr}.s-testimonial__card img{width:100%;height:200px}
  .s-cta .btn{width:100%}
}

/* ===== Composition patterns (library/SECTIONS.md types 19 to 25) =====
   Additions only. They reuse the tokens at the top of this file and never change the 18 original section types.
   Use a card only when the content is genuinely a set of separate items; otherwise prefer these. */
:where(.s-editorial,.s-offset,.s-process,.s-pull,.s-asym,.s-narrative){position:relative;padding:80px 0;color:var(--text)}

/* 19. Editorial split: a large statement on one side, supporting copy, list or visual on the other. */
.s-editorial__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start}
.s-editorial--40 .s-editorial__grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
.s-editorial--60 .s-editorial__grid{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}
.s-editorial--reverse .s-editorial__grid>:first-child{order:2}
.s-editorial--center .s-editorial__grid{align-items:center}
.s-editorial__statement{margin:0;font-size:clamp(1.9rem,3.2vw,2.75rem);font-weight:800;line-height:1.1;letter-spacing:-.03em;color:var(--ink)}
.s-editorial__sub{margin:18px 0 0;font-size:1.25rem;font-weight:700;line-height:1.4;color:var(--brand)}
.s-editorial__body>p:not(.s-eyebrow){margin:14px 0 0;font-size:var(--fs-body);line-height:1.65}
.s-editorial__heading{margin:0 0 6px;font-size:1.75rem;line-height:1.15;letter-spacing:-.025em;color:var(--ink)}
/* Divided variant: two equal columns separated by a single central rule (a lighter alternative to comparison cards). */
.s-editorial--divided .s-editorial__grid{gap:0}
.s-editorial--divided .s-editorial__grid>*{padding:4px 56px}
.s-editorial--divided .s-editorial__grid>:first-child{padding-left:0}
.s-editorial--divided .s-editorial__grid>:last-child{padding-right:0;border-left:1px solid var(--card-line)}

/* 20. Image plus text offset: a large photo with a text panel that overlaps its edge. */
.s-offset__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center}
.s-offset__media img{width:100%;aspect-ratio:5/4;object-fit:cover;border-radius:var(--radius)}
.s-offset__body{position:relative;margin-left:-72px;padding:44px;border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow-lift)}
.s-offset--reverse .s-offset__media{order:2}
.s-offset--reverse .s-offset__body{margin-left:0;margin-right:-72px}
.s-offset__body>p:not(.s-eyebrow){margin:14px 0 0;line-height:1.65}


/* 22. Large pull statement: an editorial pause with generous space. The second line goes in a <span>. */
.s-pull{padding:96px 0}
.s-pull__text{max-width:920px;margin:0;padding-left:28px;border-left:4px solid var(--brand);font-size:clamp(1.9rem,3.6vw,3rem);font-weight:800;line-height:1.15;letter-spacing:-.03em;color:var(--ink)}
.s-pull__text span{display:block;color:var(--brand)}
.s-pull--center .s-pull__text{margin-inline:auto;padding-left:0;border-left:0;text-align:center}

/* 23. Stacked feature list: icon (optional), heading and one sentence, separated by rules instead of boxes. */
.s-stack{margin:0;padding:0;list-style:none}
*+.s-stack{margin-top:22px}
.s-stack>li{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:14px;align-items:start;padding:16px 0;border-top:1px solid var(--card-line)}
.s-stack>li:last-child{border-bottom:1px solid var(--card-line)}
.s-stack>li>div{grid-column:2}
.s-stack--plain>li{grid-template-columns:minmax(0,1fr)}
.s-stack--plain>li>div{grid-column:1}
.s-stack strong{display:block;font-size:1.0625rem;line-height:1.35;color:var(--ink)}
.s-stack p{margin:3px 0 0;font-size:var(--fs-body);line-height:1.55;color:var(--muted)}
.s-stack--2col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:40px}
.s-stack--2col>li:nth-last-child(2):nth-child(odd){border-bottom:1px solid var(--card-line)}

/* 24. Asymmetrical content grid: one primary idea takes more space, supporting ideas stack beside it. */
.s-asym__grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:56px;align-items:start}
.s-asym--even .s-asym__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.s-asym__primary{padding:48px;border-radius:var(--radius);background:var(--brand-soft)}
.s-asym__primary>p:not(.s-eyebrow){margin:14px 0 0;line-height:1.65}

/* 25. Narrative band: a full-width navy band for one major idea, with simple columns on the dark background. */
.s-narrative{padding:96px 0;background:linear-gradient(110deg,var(--band),var(--band-2));color:var(--on-dark)}
.s-narrative .s-title{color:var(--on-dark);font-size:clamp(2rem,3.4vw,2.9rem)}
.s-narrative .s-eyebrow{color:var(--accent-light)}
.s-narrative .s-lead,.s-narrative p{color:var(--on-dark-muted)}
.s-narrative__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:44px;border-top:1px solid var(--on-dark-line)}
.s-narrative__col{padding:28px 32px 0 0}
.s-narrative__col+.s-narrative__col{padding-left:32px;border-left:1px solid var(--on-dark-line)}
.s-narrative__col h3{margin:0;font-size:1.25rem;color:var(--on-dark)}
.s-narrative__col p{margin:8px 0 0;line-height:1.6}
.s-narrative .s-pull__text{margin-top:56px;color:var(--on-dark);border-left-color:var(--accent-light)}
.s-narrative .s-pull__text span{color:var(--accent-light)}
.s-narrative .s-link{color:var(--accent-light)}
.s-narrative .s-stack>li{border-color:var(--on-dark-line)}
.s-narrative .s-stack strong{color:var(--on-dark)}

/* CTA band with more breathing room, for pages that end on a single strong message. */
.s-cta--roomy{padding:96px 0}

@media(max-width:900px){
  .s-editorial__grid,.s-editorial--40 .s-editorial__grid,.s-editorial--60 .s-editorial__grid,.s-asym__grid,.s-asym--even .s-asym__grid{grid-template-columns:1fr;gap:32px}
  .s-editorial--reverse .s-editorial__grid>:first-child{order:0}
  .s-editorial--divided .s-editorial__grid>*{padding:0}
  .s-editorial--divided .s-editorial__grid>:last-child{padding-top:28px;border-left:0;border-top:1px solid var(--card-line)}
  .s-offset__grid{grid-template-columns:1fr}
  .s-offset--reverse .s-offset__media{order:0}
  .s-offset__body,.s-offset--reverse .s-offset__body{margin:-48px 16px 0;padding:30px}
  .s-narrative__cols{grid-template-columns:1fr}
  .s-narrative__col,.s-narrative__col+.s-narrative__col{padding:22px 0;border-left:0}
  .s-narrative__col+.s-narrative__col{border-top:1px solid var(--on-dark-line)}
  .s-stack--2col{grid-template-columns:1fr}
  .s-stack--2col>li:nth-last-child(2):nth-child(odd){border-bottom:0}
}
@media(max-width:780px){
  :where(.s-editorial,.s-offset,.s-process,.s-asym){padding:52px 0}
  .s-pull,.s-narrative{padding:64px 0}
  .s-asym__primary{padding:30px}
  .s-cta--roomy{padding:64px 0}
}

/* ===== Background treatments and contrast (library/SECTIONS.md, "Background treatments") =====
   Additions only. Add one of these classes to a section to set its background; text, lists, rails and stacks inside switch
   to white automatically. Cards placed on a dark section keep their normal colors.
   Rhythm rules: no more than two light sections in a row; pale blue is an accent, not the default; every long landing
   page has at least three high-contrast breaks (navy, MVP blue, dark split, photo-led or dark band) before the final CTA. */
.s-bg-white{background:var(--white)}
.s-bg-pale{background:var(--brand-soft)}
.s-bg-navy,.s-editorial--dark,.s-pull--dark{background:var(--band)}
.s-bg-blue,.s-pull--blue{background:var(--brand)}
:where(.s-bg-navy,.s-bg-blue,.s-editorial--dark,.s-pull--dark,.s-pull--blue,.s-photo){color:var(--on-dark)}
:where(.s-bg-navy,.s-bg-blue,.s-editorial--dark,.s-pull--dark,.s-pull--blue,.s-photo) :is(.s-title,.s-editorial__statement,.s-editorial__heading,.s-pull__text){color:var(--on-dark)}
:where(.s-bg-navy,.s-bg-blue,.s-editorial--dark,.s-photo) :is(.s-features__item h3,.s-steps__item strong,.s-rail__stage>strong,.s-stack strong){color:var(--on-dark)}
:where(.s-bg-navy,.s-editorial--dark,.s-photo) :is(.s-lead,.s-features__item p,.s-steps__item p,.s-rail__stage>p,.s-stack p){color:var(--on-dark-muted)}
:where(.s-bg-navy,.s-editorial--dark,.s-photo) :is(.s-eyebrow,.s-editorial__sub,.s-icon,.s-link){color:var(--accent-light)}
:where(.s-bg-navy,.s-editorial--dark,.s-pull--dark,.s-photo) .s-pull__text{border-left-color:var(--accent-light)}
:where(.s-bg-navy,.s-editorial--dark,.s-pull--dark,.s-photo) .s-pull__text span{color:var(--accent-light)}
:where(.s-bg-navy,.s-bg-blue,.s-editorial--dark,.s-photo) :is(.s-intro__body,.s-editorial__body,.s-features__item,.s-logos__grid)>p{color:var(--on-dark-muted)}
:where(.s-bg-navy,.s-bg-blue,.s-editorial--dark,.s-photo) :is(.s-intro__body,.s-editorial__body,.s-editorial__grid>div,.s-logos__grid>div)>p strong{color:var(--on-dark)}
/* On MVP blue, body text and accents stay white for contrast; the first line of a pull statement softens instead. */
:where(.s-bg-blue) :is(.s-lead,.s-features__item p,.s-steps__item p,.s-rail__stage>p,.s-stack p,.s-intro__body>p,.s-editorial__body>p,.s-editorial__grid>div>p){color:var(--on-dark)}
:where(.s-bg-blue) :is(.s-eyebrow,.s-editorial__sub,.s-icon,.s-link){color:var(--on-dark)}
:where(.s-bg-blue) .s-link{text-decoration:underline}
:where(.s-bg-blue,.s-pull--blue) .s-pull__text{color:var(--on-dark-muted);border-left-color:var(--on-dark)}
:where(.s-bg-blue,.s-pull--blue) .s-pull__text span{color:var(--on-dark)}
/* Lists, rules, rails and stacks on dark backgrounds */
:where(.s-bg-navy,.s-bg-blue,.s-editorial--dark,.s-photo) .s-list li{color:var(--on-dark)}
:where(.s-bg-navy,.s-editorial--dark,.s-photo) .s-list li:before{background:var(--accent-light)}
:where(.s-bg-navy,.s-editorial--dark,.s-photo) .s-list--check li:before{background:var(--on-dark);color:var(--band)}
:where(.s-bg-blue) .s-list li:before{background:var(--on-dark)}
:where(.s-bg-blue) .s-list--check li:before{background:var(--on-dark);color:var(--brand)}
:where(.s-bg-navy,.s-bg-blue,.s-editorial--dark,.s-photo) .s-stack>li{border-color:var(--on-dark-line)}
:where(.s-bg-navy,.s-bg-blue) .s-editorial--divided .s-editorial__grid>:last-child,.s-editorial--divided:is(.s-bg-navy,.s-bg-blue) .s-editorial__grid>:last-child{border-color:var(--on-dark-line)}
:where(.s-bg-navy,.s-bg-blue,.s-editorial--dark,.s-photo) .s-features__item+.s-features__item{border-color:var(--on-dark-line)}
:where(.s-bg-navy,.s-bg-blue,.s-editorial--dark,.s-photo) .btn-secondary{background:transparent;color:var(--on-dark);border-color:var(--on-dark-line)}

/* Dark split: an editorial split on navy, with a light rule between the two sides. */
.s-editorial--dark .s-editorial__grid>:last-child{padding-left:56px;border-left:1px solid var(--on-dark-line)}

/* Photo-led section: a full-width photograph with a navy overlay and white text over it. */
.s-photo{position:relative;display:flex;align-items:center;min-height:560px;padding:96px 0;overflow:hidden;background:var(--band)}
.s-photo__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.s-photo:before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,var(--band-overlay) 0%,var(--band-overlay) 48%,transparent 100%)}
.s-photo>.container{position:relative;z-index:2}
.s-photo__body{max-width:560px}
.s-photo__body>p:not(.s-eyebrow){margin:14px 0 0;line-height:1.65;color:var(--on-dark-muted)}

/* Dark callout or pull-quote band: a pull statement on navy (.s-pull--dark) or MVP blue (.s-pull--blue). */
.s-pull--dark,.s-pull--blue{padding:88px 0}

@media(max-width:900px){
  .s-editorial--dark .s-editorial__grid>:last-child{padding:28px 0 0;border-left:0;border-top:1px solid var(--on-dark-line)}
  .s-photo{min-height:0}
  .s-photo:before{background:var(--band-overlay)}
}
@media(max-width:780px){
  .s-photo,.s-pull--dark,.s-pull--blue{padding:64px 0}
}
:where(.s-bg-navy,.s-bg-blue,.s-editorial--dark,.s-photo) :is(.s-stack>li:last-child,.s-stack--2col>li:nth-last-child(2):nth-child(odd)){border-color:var(--on-dark-line)}
:where(.s-bg-navy,.s-bg-blue,.s-editorial--dark,.s-photo) .s-lead strong{color:var(--on-dark)}
.s-editorial .s-pull__text{margin-top:56px}
/* Cards on a dark or blue background keep their normal light-card colors. */
:where(.s-bg-navy,.s-bg-blue,.s-editorial--dark,.s-photo) .s-cards__item :is(.s-icon,.s-link){color:var(--brand);text-decoration:none}
:where(.s-bg-navy,.s-bg-blue,.s-editorial--dark,.s-photo) .s-cards__item .s-list li{color:var(--text)}
:where(.s-bg-navy,.s-bg-blue,.s-editorial--dark,.s-photo) .s-cards__item .s-list li:before{background:var(--brand)}
:where(.s-bg-navy,.s-bg-blue,.s-editorial--dark,.s-photo) .s-cards__item .s-list--check li:before{color:var(--on-dark)}
:where(.s-bg-navy,.s-bg-blue,.s-editorial--dark,.s-photo) .s-cards__item p strong{color:inherit}
/* Hero option: portrait photos anchor the crop near the top so the face stays in the same place on every page, whatever the hero height. */
.s-hero__media--portrait>img{object-position:50% 18%}
/* 4I. Detailed cards: long-form cards with several paragraphs and a list. Spaced paragraphs, a darker opening line, a set-apart closing line. */
.s-cards--detail .s-cards__item{padding:28px}
.s-cards--detail .s-cards__item p+p,.s-cards--detail .s-cards__item p+.s-list{margin-top:10px}
.s-cards--detail .s-cards__item .s-list+p{margin-top:14px;padding-top:14px;border-top:1px solid var(--card-line)}
.s-cards--detail .s-cards__item h3+p{font-weight:600;color:var(--ink)}
/* Dark logo strip (15B): text in the logo column stays readable. Callout card (4H) on a dark band gets full section spacing. */
.s-logos--dark .s-logos__grid>div>p:not(.s-eyebrow){color:var(--on-dark-muted)}
.s-cards--callout:is(.s-bg-navy,.s-bg-blue){padding:72px 0}
:where(.s-bg-navy,.s-bg-blue,.s-editorial--dark,.s-photo) .s-stats__tile .s-icon{color:var(--brand)}
/* An eyebrow label inside a card keeps label size and brand color (card paragraph styles were overriding it). */
.s-cards__item p.s-eyebrow{margin:12px 0 0;font-size:var(--fs-label);font-weight:800;line-height:1.4;color:var(--brand)}
/* Hero option: anchor a wide photo's crop toward its left side (keeps people on the left of the image in frame). */
.s-hero__media--left>img{object-position:30% 50%}

/* 21. Named process rail (Option B): each stage sits under a bar that deepens toward the last stage. No numbers, no arrows.
   Horizontal by default; .s-rail--vertical (and every rail on phones) puts the bar on the left.
   .s-rail--outcome adds a check mark to the last stage when it is a real outcome (not for loops or cycles). */
.s-rail{--rail-from:var(--brand-line);--rail-to:var(--brand);display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:14px;margin:8px 0 0;padding:0;list-style:none}
.s-process .s-rail{margin-top:36px}
.s-rail__stage{--rail-mix:20%;position:relative;padding:24px 8px 0 0}
.s-rail__stage:nth-last-child(4){--rail-mix:35%}
.s-rail__stage:nth-last-child(3){--rail-mix:55%}
.s-rail__stage:nth-last-child(2){--rail-mix:75%}
.s-rail__stage:last-child{--rail-mix:100%}
.s-rail__stage:before{content:'';position:absolute;top:0;left:0;right:0;height:6px;border-radius:3px;background:color-mix(in srgb,var(--rail-to) var(--rail-mix),var(--rail-from))}
.s-rail__stage>strong{display:block;font-size:1.375rem;font-weight:800;line-height:1.2;letter-spacing:-.02em;color:var(--ink)}
.s-rail__stage>p{margin:8px 0 0;font-size:var(--fs-body);line-height:1.55;color:var(--muted)}
.s-rail--outcome .s-rail__stage:last-child>strong:after{content:' \2713';color:var(--rail-to)}
.s-rail--vertical{grid-auto-flow:row;grid-auto-columns:auto;gap:18px}
.s-rail--vertical .s-rail__stage{padding:2px 0 2px 24px}
.s-rail--vertical .s-rail__stage:before{top:0;bottom:0;right:auto;width:5px;height:auto}
.s-rail--vertical .s-rail__stage>strong{font-size:1.125rem}
:where(.s-bg-navy,.s-editorial--dark,.s-photo) .s-rail{--rail-from:var(--on-dark-line);--rail-to:var(--accent-light)}
:where(.s-bg-blue) .s-rail{--rail-from:var(--on-dark-track);--rail-to:var(--on-dark)}
:where(.s-bg-navy,.s-bg-blue,.s-editorial--dark,.s-photo) .s-rail .s-rail__stage>strong{color:var(--on-dark)}
:where(.s-bg-navy,.s-editorial--dark,.s-photo) .s-rail .s-rail__stage>p{color:var(--on-dark-muted)}
:where(.s-bg-blue) .s-rail .s-rail__stage>p{color:var(--on-dark)}
@media(max-width:900px){
  .s-rail{grid-auto-flow:row;grid-auto-columns:auto;gap:18px}
  .s-rail .s-rail__stage{padding:2px 0 2px 24px}
  .s-rail .s-rail__stage:before{top:0;bottom:0;right:auto;width:5px;height:auto}
}
