/* ==========================================================================
   Wayfinders Academy — Global Stylesheet
   Warm "field guide" design system. Tokens come from theme.json;
   this file styles the wf- component classes used by the block patterns.
   Locked: Fraunces headings · warm paper base · gold "sunny".
   ========================================================================== */

:root{
  /* colors + fonts mapped to theme.json presets (single source of truth) */
  --navy:var(--wp--preset--color--navy);
  --navy-deep:var(--wp--preset--color--navy-deep);
  --teal:var(--wp--preset--color--teal);
  --teal-deep:var(--wp--preset--color--teal-deep);
  --green:var(--wp--preset--color--green);
  --green-deep:var(--wp--preset--color--green-deep);
  --gold:var(--wp--preset--color--gold);
  --gold-deep:var(--wp--preset--color--gold-deep);
  --ink-soft:var(--wp--preset--color--ink-soft);
  --muted:var(--wp--preset--color--muted);
  --border:var(--wp--preset--color--border);
  --base:var(--wp--preset--color--base);
  --surface:var(--wp--preset--color--surface);
  --surface-cool:var(--wp--preset--color--surface-cool);
  --wash-gold:var(--wp--preset--color--wash-gold);
  --wash-green:var(--wp--preset--color--wash-green);
  --wash-teal:var(--wp--preset--color--wash-teal);
  --wash-navy:var(--wp--preset--color--wash-navy);

  --font-head:var(--wp--preset--font-family--fraunces);
  --font-body:var(--wp--preset--font-family--jakarta);

  --radius-sm:8px; --radius-md:14px; --radius-lg:20px; --radius-pill:999px;
  --shadow-sm:0 1px 3px 0 rgba(16,42,63,.06);
  --shadow-md:0 6px 18px -4px rgba(16,42,63,.10);
  --shadow-lg:0 18px 40px -12px rgba(16,42,63,.14);
  --shadow-xl:0 30px 60px -18px rgba(16,42,63,.20);

  --marker:var(--gold);
  --eyebrow-color:var(--gold-deep);
  --wfwide:1200px;
}

/* --------------------------------------------------------------------------
   Base / resets
   -------------------------------------------------------------------------- */
body{ background:var(--base); color:var(--navy); }
/* No stray WP block-gap between header/main/footer or between sections */
body > .wp-site-blocks > *{ margin-block:0 !important; }
.wf-header, .wf-main, .wf-footer{ margin-block:0 !important; }
.wf-main > *{ margin-block:0 !important; }
.wf-wrap{ max-width:var(--wfwide); margin-inline:auto; padding-inline:clamp(1.25rem,4vw,2.5rem); }
.wf-section{ position:relative; padding-block:clamp(3.5rem,7vw,6.5rem); }

/* --------------------------------------------------------------------------
   Eyebrow
   -------------------------------------------------------------------------- */
.wf-eyebrow{
  font-family:var(--font-body); font-weight:700; font-size:.8125rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--eyebrow-color); margin:0 0 1rem; display:inline-flex; gap:.55rem; align-items:center;
}
.wf-eyebrow::before{ content:""; flex:none; width:21px; height:6px; background-image:radial-gradient(circle at center, currentColor 1.6px, transparent 2.1px); background-size:7px 6px; background-repeat:repeat-x; background-position:left center; opacity:.85; }
.wf-eyebrow--center{ justify-content:center; }

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */
.wf-btn > .wp-block-button__link, a.wf-btn{
  display:inline-flex; align-items:center; gap:.5rem; font-family:var(--font-body); font-weight:600; font-size:1.0625rem;
  padding:.9rem 1.65rem; border-radius:var(--radius-md); text-decoration:none; border:1.5px solid transparent; transition:.22s ease;
}
.wf-btn--primary > .wp-block-button__link, a.wf-btn--primary{ background:var(--gold); color:var(--navy); box-shadow:0 8px 20px -8px rgba(215,156,46,.7); }
.wf-btn--primary > .wp-block-button__link:hover, a.wf-btn--primary:hover{ background:var(--gold-deep); color:#fff; transform:translateY(-2px); }
.wf-btn--ghost > .wp-block-button__link, a.wf-btn--ghost{ background:transparent; color:var(--navy); border-color:var(--border); }
.wf-btn--ghost > .wp-block-button__link:hover, a.wf-btn--ghost:hover{ border-color:var(--teal); color:var(--teal-deep); transform:translateY(-2px); }
.wf-btn--ondark > .wp-block-button__link, a.wf-btn--ondark{ background:var(--gold); color:var(--navy); }
.wf-btn--ondark > .wp-block-button__link:hover, a.wf-btn--ondark:hover{ background:#f2c75b; transform:translateY(-2px); }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.wf-header{ position:relative; z-index:50; }
/* Top bar — quiet contact strip */
.wf-topbar{ background:var(--wash-gold); border-bottom:1px solid var(--border); }
.wf-topbar__inner{ max-width:var(--wfwide); margin-inline:auto; padding:.5rem clamp(1.25rem,4vw,2.5rem); display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-family:var(--font-body); font-size:.85rem; }
.wf-topbar__note{ color:var(--ink-soft); font-weight:600; }
.wf-topbar__contact{ display:inline-flex; gap:1.4rem; flex-wrap:wrap; }
.wf-topbar__contact a{ color:var(--navy); text-decoration:none; font-weight:600; }
.wf-topbar__contact a:hover{ color:var(--teal-deep); }
/* Nav bar — sticks; top bar scrolls away */
.wf-navbar{ position:sticky; top:0; z-index:50; background:color-mix(in srgb,var(--base) 92%,transparent); backdrop-filter:saturate(1.4) blur(10px); border-bottom:1px solid var(--border); }
.wf-nav{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding-block:.85rem; }
/* Top bar + nav bar: ONE identical inner container (edges line up), vertically centered.
   !important beats WordPress's own group/root-padding styles. */
.wf-topbar, .wf-navbar{ margin:0 !important; padding-left:0 !important; padding-right:0 !important; }
.wf-topbar__inner, .wf-nav{ width:100% !important; max-width:var(--wfwide) !important; margin-inline:auto !important; padding-inline:clamp(1.25rem,4vw,2.5rem) !important; box-sizing:border-box; }
.wf-nav, .wf-nav__right{ align-items:center !important; }
.wf-nav .wp-block-site-logo, .wf-nav .wp-block-navigation, .wf-nav .wp-block-buttons{ margin:0 !important; }
.wf-header .wp-block-site-logo img{ height:46px; width:auto; }
.wf-nav__right{ display:flex; align-items:center; gap:1.6rem; }
.wf-header .wp-block-navigation{ font-family:var(--font-body); font-weight:600; font-size:1rem; }
.wf-header .wp-block-navigation a,
.wf-header .wp-block-navigation .wp-block-navigation-item__content{ color:var(--navy); text-decoration:none; }
.wf-header .wp-block-navigation button.wp-block-navigation-item__content{ cursor:pointer; background:transparent; border:0; font:inherit; }
.wf-header .wp-block-navigation a:hover,
.wf-header .wp-block-navigation .wp-block-navigation-item__content:hover{ color:var(--teal-deep); }
/* Nav dropdowns */
.wf-nav .wp-block-navigation__submenu-icon{ padding-left:.15rem; }
.wf-nav .wp-block-navigation__submenu-icon svg{ width:.8em; height:.8em; }
.wf-nav .wp-block-navigation__submenu-container{ background:#fff; border:1px solid var(--border); border-radius:var(--radius-md); box-shadow:var(--shadow-lg); padding:.4rem; min-width:240px; left:0; top:100%; }
.wf-nav .wp-block-navigation__submenu-container .wp-block-navigation-item{ width:100%; }
.wf-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content{ padding:.5rem .75rem !important; border-radius:var(--radius-sm); width:100%; font-size:.95rem; }
.wf-nav .wp-block-navigation__submenu-container a:hover{ background:var(--wash-gold); color:var(--navy) !important; }
/* Dropdowns open on click (openSubmenusOnClick) — the parent is a non-navigating
   button. No hover-reveal, which would otherwise flash an empty box (items only
   render in the open/clicked state). */
.wf-nav__phone{ font-weight:600; color:var(--navy); text-decoration:none; font-size:.95rem; }

/* ---------- Mobile nav overlay fix ---------- *
 * .wf-navbar's backdrop-filter (frosted glass) was acting as the containing
 * block for the position:fixed mobile menu overlay, collapsing it to navbar
 * height (~73px) so everything below "Home" rendered behind the page. An
 * ancestor with filter/backdrop-filter/transform always re-roots fixed
 * descendants. Drop the blur at overlay widths (kept on desktop) so the
 * overlay sizes to the full viewport. */
@media (max-width:781px){
	.wf-navbar{ -webkit-backdrop-filter:none; backdrop-filter:none; background:var(--base); }
}
/* In the open mobile overlay: a clean, branded full-screen menu — warm paper,
   large Fraunces top-level items with hairline dividers, indented submenu links
   with a gold wayfinding dash, and a circular close button. */
.wp-block-navigation__responsive-container.is-menu-open{ background:var(--base) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{
	width:100% !important; max-width:560px; margin-inline:auto !important;
	padding:4.75rem clamp(1.6rem,7vw,2.4rem) 3rem !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close{
	top:1.4rem !important; right:clamp(1.4rem,6vw,2rem) !important;
	width:2.6rem !important; height:2.6rem !important;
	display:flex !important; align-items:center; justify-content:center;
	border:1px solid var(--border); border-radius:50%; background:#fff !important;
	color:var(--navy) !important; box-shadow:var(--shadow-sm);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{ display:block !important; width:100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item{
	display:block; border-top:1px solid var(--border);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:first-child{ border-top:0; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content{
	display:block; padding:1rem 0 !important; font-family:var(--font-head);
	font-size:1.4rem; font-weight:600; line-height:1.1; letter-spacing:-.01em; color:var(--navy) !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container{
	display:block !important; position:static !important; opacity:1 !important; visibility:visible !important;
	background:transparent !important; border:0 !important; box-shadow:none !important;
	min-width:0 !important; margin:0 !important; padding:0 0 .7rem !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{
	display:flex !important; align-items:center; gap:.65rem;
	padding:.5rem 0 !important; font-family:var(--font-body);
	font-size:1.05rem; font-weight:500; color:var(--ink-soft) !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content::before{
	content:""; flex:none; width:14px; height:2px; border-radius:2px; background:var(--gold-deep);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon{ display:none !important; }

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.wf-hero{ position:relative; overflow:hidden; padding-block:clamp(3rem,7vw,6rem) clamp(4rem,8vw,7rem); }
.wf-hero__glow{ position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(40% 50% at 88% 22%, rgba(215,156,46,.20), transparent 70%), radial-gradient(45% 55% at 6% 8%, rgba(19,123,158,.14), transparent 70%); }
.wf-contour{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; opacity:.5; color:var(--teal); }
.wf-hero__inner{ position:relative; display:grid; grid-template-columns:1.04fr .96fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.wf-hero h1{ font-weight:600; letter-spacing:-.015em; font-size:clamp(2.6rem,6vw,4.6rem); line-height:1.04; margin:0 0 1.4rem; }
.wf-marker{ background:linear-gradient(transparent 58%, color-mix(in srgb,var(--marker) 42%,transparent) 58%); padding:0 .04em; }
.wf-hero__lead{ font-size:1.25rem; line-height:1.6; color:var(--ink-soft); max-width:34ch; margin:0 0 2rem; }
.wf-hero__actions{ display:flex; flex-wrap:wrap; gap:1rem; margin-bottom:2.2rem; }
.wf-hero__actions .wp-block-buttons{ gap:1rem; }

/* trust row */
.wf-trust{ display:flex; flex-wrap:wrap; gap:.55rem 1.4rem; }
.wf-trust__item{ display:inline-flex; align-items:center; gap:.5rem; font-size:.9rem; font-weight:600; color:var(--ink-soft); }
.wf-trust__item svg{ width:18px; height:18px; flex:none; }
.wf-trust__item--gold svg{ color:var(--gold-deep); }
.wf-trust__item--teal svg{ color:var(--teal); }
.wf-trust__item--green svg{ color:var(--green-deep); }

/* hero art */
.wf-hero__art{ position:relative; min-height:430px; }
/* Compass watermark = the real brandmark, tinted to a faint silhouette via CSS mask */
.wf-compass{ position:absolute; right:-6%; top:50%; transform:translateY(-50%); width:118%; max-width:560px; aspect-ratio:1; opacity:.10; color:var(--navy); pointer-events:none;
  background-color:currentColor;
  -webkit-mask:url(img/brandmark.svg) center/contain no-repeat; mask:url(img/brandmark.svg) center/contain no-repeat; }
.wf-cardwrap{ position:relative; z-index:2; width:min(100%,440px); margin-inline:auto; }
.wf-photocard{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-xl); border:6px solid #fff; transform:rotate(-2deg); }
.wf-photocard img{ display:block; width:100%; height:360px; object-fit:cover; }
.wf-dpath{ position:absolute; inset:0; z-index:1; pointer-events:none; color:var(--gold); opacity:.55; }
.wf-float{ position:absolute; z-index:4; background:#fff; border-radius:var(--radius-md); box-shadow:var(--shadow-lg);
  padding:.7rem .95rem; display:flex; align-items:center; gap:.6rem; font-weight:700; font-size:.92rem; color:var(--navy); }
.wf-float small{ display:block; font-weight:500; font-size:.72rem; color:var(--muted); letter-spacing:.02em; }
.wf-float__ic{ width:34px; height:34px; border-radius:10px; display:grid; place-items:center; flex:none; }
.wf-float__ic svg{ width:19px; height:19px; }
.wf-float--a{ top:8%; right:-8%; } .wf-float--a .wf-float__ic{ background:var(--wash-gold); color:var(--gold-deep); }
.wf-float--b{ bottom:8%; left:-8%; } .wf-float--b .wf-float__ic{ background:var(--wash-green); color:var(--green-deep); }

/* --------------------------------------------------------------------------
   Invitation
   -------------------------------------------------------------------------- */
.wf-invite{ background:var(--wash-gold); }
.wf-invite__grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,5vw,4rem); align-items:start; }
.wf-invite h2{ font-size:clamp(1.9rem,4vw,2.9rem); font-weight:600; letter-spacing:-.01em; }
.wf-invite__body p{ color:var(--ink-soft); font-size:1.18rem; margin-bottom:1.2rem; }
.wf-invite__body strong{ color:var(--navy); }
.wf-pull{ font-family:var(--font-head); font-style:italic; font-size:1.3rem; color:var(--navy); border-left:4px solid var(--gold); padding-left:1.2rem; margin:1.6rem 0; line-height:1.4; }

/* --------------------------------------------------------------------------
   "What your child gets" grid
   -------------------------------------------------------------------------- */
.wf-headblock{ max-width:760px; margin:0 auto clamp(2rem,4vw,3rem); text-align:center; }
.wf-headblock h2{ font-size:clamp(1.9rem,4vw,2.9rem); font-weight:600; letter-spacing:-.01em; margin:.5rem 0 .8rem; }
.wf-headblock p{ color:var(--ink-soft); font-size:1.15rem; }
.wf-gift-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.wf-gift{ background:var(--base); border:1px solid var(--border); border-radius:var(--radius-lg); padding:1.8rem 1.7rem; box-shadow:var(--shadow-sm); transition:.25s ease; }
.wf-gift:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.wf-gift__ic{ width:54px; height:54px; border-radius:16px; display:grid; place-items:center; margin-bottom:1.1rem; }
.wf-gift__ic svg{ width:27px; height:27px; }
.wf-gift:nth-child(3n+1) .wf-gift__ic{ background:var(--wash-teal); color:var(--teal); }
.wf-gift:nth-child(3n+2) .wf-gift__ic{ background:var(--wash-gold); color:var(--gold-deep); }
.wf-gift:nth-child(3n+3) .wf-gift__ic{ background:var(--wash-green); color:var(--green-deep); }
.wf-gift h3{ font-size:1.3rem; font-weight:600; margin-bottom:.5rem; }
.wf-gift p{ color:var(--ink-soft); font-size:1rem; }

/* --------------------------------------------------------------------------
   Programs
   -------------------------------------------------------------------------- */
.wf-programs{ background:var(--surface); }
.wf-curve{ position:absolute; top:-1px; left:0; width:100%; height:70px; display:block; pointer-events:none; }
.wf-curve path{ fill:var(--base); }
.wf-prog-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
.wf-prog{ position:relative; background:var(--base); border:1px solid var(--border); border-radius:var(--radius-lg); padding:2rem 1.9rem; box-shadow:var(--shadow-md); transition:.25s ease; }
.wf-prog:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.wf-prog--featured{ border-color:color-mix(in srgb,var(--gold) 55%,var(--border)); }
.wf-prog__badge{ position:absolute; top:-12px; left:1.9rem; background:var(--gold); color:var(--navy); font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; padding:.32rem .7rem; border-radius:var(--radius-pill); }
.wf-prog h3{ font-size:1.6rem; font-weight:600; margin:.3rem 0 .25rem; }
.wf-prog__sub{ color:var(--teal-deep); font-weight:700; font-size:.95rem; margin-bottom:1.1rem; }
.wf-prog p{ color:var(--ink-soft); font-size:1.02rem; margin-bottom:1.3rem; }
.wf-week{ display:flex; gap:.5rem; margin-bottom:1.3rem; }
.wf-day{ flex:1; text-align:center; }
.wf-day span{ display:block; font-size:.66rem; font-weight:700; letter-spacing:.06em; color:var(--muted); margin-bottom:.35rem; }
.wf-day__dot{ height:42px; border-radius:10px; display:grid; place-items:center; }
.wf-day__dot svg{ width:20px; height:20px; }
.wf-day--campus .wf-day__dot{ background:var(--wash-teal); color:var(--teal); }
.wf-day--home .wf-day__dot{ background:var(--wash-gold); color:var(--gold-deep); }
.wf-prog__link{ font-weight:700; color:var(--teal-deep); text-decoration:none; display:inline-flex; gap:.4rem; align-items:center; }
.wf-prog__link:hover{ gap:.7rem; }

.wf-addons__head{ margin-top:clamp(2.6rem,5vw,3.6rem); max-width:600px; }
.wf-addons__head .wf-eyebrow{ margin-bottom:.4rem; }
.wf-addons__title{ font-size:clamp(1.3rem,2.6vw,1.7rem); font-weight:600; color:var(--navy); margin:0; }
.wf-addons{ margin-top:1.6rem; }
.wf-addons .wf-gift{ box-shadow:none; }
.wf-addons .wf-gift p{ font-size:.96rem; }
.wf-addons__cta{ text-align:center; margin-top:1.8rem; }

/* --------------------------------------------------------------------------
   A Typical Day — the trail
   -------------------------------------------------------------------------- */
.wf-daytrail{ position:relative; overflow:hidden; }
.wf-daytrail .wf-compass{ right:auto; left:50%; transform:translate(-50%,-50%); opacity:.05; }
.wf-trail{ position:relative; display:flex; justify-content:space-between; gap:1rem; margin-top:clamp(2rem,4vw,3rem); }
.wf-trail::before{ content:""; position:absolute; top:32px; left:6%; right:6%; height:0; border-top:3px dotted color-mix(in srgb,var(--gold) 55%,transparent); }
.wf-stop{ position:relative; flex:1; text-align:center; max-width:200px; }
.wf-stop__node{ width:64px; height:64px; border-radius:50%; background:var(--base); border:3px solid var(--gold); color:var(--navy); display:grid; place-items:center; margin:0 auto 1rem; box-shadow:var(--shadow-md); position:relative; z-index:2; }
.wf-stop__node svg{ width:28px; height:28px; }
.wf-stop__time{ font-weight:800; color:var(--gold-deep); font-size:.8rem; letter-spacing:.04em; margin-bottom:.3rem; }
.wf-stop h4{ font-family:var(--font-body); font-weight:700; font-size:1.02rem; color:var(--navy); margin-bottom:.3rem; }
.wf-stop p{ font-size:.88rem; color:var(--ink-soft); }

/* --------------------------------------------------------------------------
   Quote band
   -------------------------------------------------------------------------- */
.wf-quote{ background:var(--wash-teal); }
.wf-quote__inner{ max-width:820px; margin-inline:auto; text-align:center; }
.wf-quote blockquote{ margin:0; font-family:var(--font-head); font-style:italic; font-weight:500; font-size:clamp(1.5rem,3.2vw,2.2rem); line-height:1.4; color:var(--navy); }
.wf-quote cite{ display:block; margin-top:1.4rem; font-family:var(--font-body); font-style:normal; font-weight:700; font-size:.95rem; color:var(--teal-deep); letter-spacing:.02em; }

/* --------------------------------------------------------------------------
   Fieldnotes
   -------------------------------------------------------------------------- */
.wf-notes__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; margin-bottom:clamp(1.6rem,3vw,2.4rem); flex-wrap:wrap; }
.wf-notes__head h2{ font-size:clamp(1.9rem,4vw,2.7rem); font-weight:600; letter-spacing:-.01em; margin-top:.5rem; max-width:18ch; }
.wf-note-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.wf-note{ background:var(--base); border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm); transition:.25s ease; display:flex; flex-direction:column; }
.wf-note:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.wf-note__media{ position:relative; height:190px; overflow:hidden; }
.wf-note__media img{ width:100%; height:100%; object-fit:cover; transition:.4s ease; }
.wf-note:hover .wf-note__media img{ transform:scale(1.05); }
.wf-note__cat{ position:absolute; top:12px; left:12px; background:color-mix(in srgb,var(--navy) 90%,transparent); color:#fff; font-size:.7rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:.3rem .65rem; border-radius:var(--radius-pill); }
.wf-note__body{ padding:1.4rem 1.4rem 1.6rem; display:flex; flex-direction:column; flex:1; }
.wf-note__body h3{ font-size:1.25rem; font-weight:600; line-height:1.25; margin-bottom:.6rem; }
.wf-note__body h3 a{ color:var(--navy); text-decoration:none; }
.wf-note__body h3 a:hover{ color:var(--teal-deep); }
.wf-note__body p{ color:var(--ink-soft); font-size:.95rem; margin-bottom:1rem; }
.wf-note__more{ margin-top:auto; font-weight:700; color:var(--teal-deep); text-decoration:none; font-size:.92rem; }
.wf-note--cta{ background:linear-gradient(150deg,#0C3450,#137B9E); color:#fff; justify-content:center; padding:2rem; }
.wf-note--cta h3{ font-family:var(--font-head); font-size:1.7rem; font-weight:600; margin-bottom:.7rem; color:#fff; }
.wf-note--cta p{ color:rgba(255,255,255,.82); margin-bottom:1.4rem; }
.wf-note--cta a{ color:#F2C75B; font-weight:700; text-decoration:none; }

/* --------------------------------------------------------------------------
   CTA band
   -------------------------------------------------------------------------- */
.wf-cta{ position:relative; overflow:hidden; background:linear-gradient(140deg,#0C3450 0%,#114367 48%,#137B9E 100%); color:#fff; padding-block:clamp(3.5rem,7vw,5.5rem); }
.wf-cta .wf-compass{ color:#fff; opacity:.07; right:auto; left:50%; transform:translate(-50%,-50%); }
.wf-cta__glow{ position:absolute; inset:0; background:radial-gradient(40% 60% at 50% 12%, rgba(215,156,46,.30), transparent 70%); pointer-events:none; }
.wf-cta__inner{ position:relative; text-align:center; max-width:680px; margin-inline:auto; }
.wf-cta h2{ color:#fff; font-size:clamp(2rem,4.5vw,3.1rem); font-weight:600; letter-spacing:-.01em; margin-bottom:1rem; }
.wf-cta .wf-eyebrow{ color:#F2C75B; justify-content:center; }
.wf-cta__lead{ color:rgba(255,255,255,.86); font-size:1.18rem; margin-bottom:2rem; }
.wf-cta__actions{ justify-content:center; }
.wf-cta__fine{ margin-top:1.3rem; font-size:.9rem; color:rgba(255,255,255,.62); }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.wf-footer{ background:var(--surface); border-top:1px solid var(--border); padding-block:clamp(3rem,5vw,4.5rem) 1.5rem; }
.wf-footer__grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:2.5rem; }
.wf-footer__logo img{ height:54px; width:auto; margin-bottom:1.1rem; }
.wf-footer__tag{ color:var(--ink-soft); font-size:1rem; max-width:34ch; margin-bottom:1.2rem; }
.wf-footer__contact{ color:var(--ink-soft); font-size:.95rem; line-height:1.9; }
.wf-footer__contact a{ color:var(--navy); text-decoration:none; font-weight:600; }
.wf-footer__contact a:hover{ color:var(--teal-deep); }
.wf-footer__col h4{ font-family:var(--font-body); font-weight:700; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-deep); margin:0 0 1.1rem; }
.wf-footer__col ul{ list-style:none; margin:0; padding:0; }
.wf-footer__col li{ margin-bottom:.7rem; }
.wf-footer__col a{ color:var(--navy); text-decoration:none; font-weight:500; font-size:1rem; }
.wf-footer__col a:hover{ color:var(--teal-deep); }
.wf-footer__bottom{ max-width:var(--wfwide); margin:clamp(2.5rem,4vw,3.5rem) auto 0; padding:1.4rem clamp(1.25rem,4vw,2.5rem) 0; border-top:1px solid var(--border); display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; color:var(--muted); font-size:.85rem; }
.wf-footer__bottom a{ color:var(--muted); }

/* --------------------------------------------------------------------------
   Blog — single post + index/archive
   -------------------------------------------------------------------------- */
/* ---------- Blog single — editorial layout (mirrors Lantern Row, Wayfinders brand) ---------- */
.wf-post{ margin:0 !important; }

/* Gradient hero header: back link, category pill, title, meta — white on navy→teal */
.wf-post__header{ position:relative; overflow:hidden; isolation:isolate; background:linear-gradient(140deg,#0C3450 0%,#114367 48%,#137B9E 100%); padding-block:clamp(2.25rem,4.5vw,3.5rem); }
.wf-post__header .wf-compass{ color:#fff; opacity:.06; right:auto; left:50%; transform:translate(-50%,-50%); max-width:520px; }
.wf-post__header::before{ content:""; position:absolute; inset:0; pointer-events:none; z-index:-1;
  background-image:radial-gradient(circle at 16% 22%,rgba(255,255,255,.10) 0,transparent 42%),radial-gradient(circle at 84% 78%,rgba(215,156,46,.18) 0,transparent 46%); }
.wf-post__header-inner{ position:relative; z-index:1; max-width:1000px; margin-inline:auto; padding-inline:clamp(1rem,3vw,2rem); }

.wf-post__topline{ margin-bottom:1.5rem !important; gap:1rem !important; }
.wf-post__back--hero{ display:inline-flex; align-items:center; gap:.5rem; font-weight:700; font-size:.8125rem; letter-spacing:.06em; text-transform:uppercase; color:#F2C75B !important; text-decoration:none !important; transition:gap .25s ease,color .25s ease; }
.wf-post__back--hero:hover{ color:#fff !important; gap:.75rem; }
.wf-post__category.wp-block-post-terms{ display:inline-flex; align-items:center; margin:0 !important; font-weight:700; font-size:.6875rem; letter-spacing:.14em; text-transform:uppercase; color:#fff !important; padding:.35rem .75rem; border:1px solid rgba(255,255,255,.32); border-radius:var(--radius-pill); background:rgba(255,255,255,.10); backdrop-filter:blur(6px); }
.wf-post__category a{ color:#fff !important; text-decoration:none !important; }
.wf-post__category a:hover{ color:#F2C75B !important; }

.wf-post__title.wp-block-post-title{ font-family:var(--font-head); font-weight:600; line-height:1.08; letter-spacing:-.015em; font-size:clamp(2rem,3.4vw + 1rem,3.3rem); color:#fff !important; margin:0 0 1.4rem !important; }

.wf-post__meta{ margin:0 !important; display:flex !important; flex-wrap:wrap; align-items:center; gap:.3rem .45rem !important; }
.wf-post__meta-item{ display:inline-flex !important; flex-wrap:nowrap !important; align-items:baseline; gap:.4rem !important; margin:0 !important; white-space:nowrap; }
.wf-post__meta-label{ font-weight:700; font-size:.6875rem; letter-spacing:.12em; text-transform:uppercase; color:#F2C75B; }
.wf-post__meta-value,
.wf-post__meta-value.wp-block-post-date,
.wf-post__meta-value.wp-block-post-author-name{ font-weight:500; font-size:.9375rem; color:rgba(255,255,255,.92) !important; margin:0 !important; }
.wf-post__meta-sep{ color:rgba(255,255,255,.4); margin-inline:.35rem; }
.wf-post__meta a{ color:#fff !important; text-decoration:none; }

/* Reading column */
.wf-post__content-wrap{ background:var(--base); padding-block:clamp(2.5rem,6vw,4rem); margin:0 !important; }
.wf-post__content-inner{ max-width:900px; margin-inline:auto; padding-inline:clamp(1rem,3vw,2rem); }
.wf-post__content-inner p,
.wf-post__content-inner > .wp-block-paragraph{ font-size:1.15rem; line-height:1.75; color:var(--ink-soft); margin:0 0 1.5rem; }
.wf-post__content-inner h2,
.wf-post__content-inner > h2.wp-block-heading{ font-family:var(--font-head); font-weight:600; font-size:1.9rem; line-height:1.2; letter-spacing:-.01em; color:var(--navy); margin:3rem 0 1rem; }
.wf-post__content-inner h3,
.wf-post__content-inner > h3.wp-block-heading{ font-family:var(--font-head); font-weight:600; font-size:1.45rem; line-height:1.3; color:var(--navy); margin:2.25rem 0 .85rem; }
.wf-post__content-inner h4,
.wf-post__content-inner > h4.wp-block-heading{ font-family:var(--font-body); font-weight:700; font-size:1.18rem; color:var(--navy); margin:2rem 0 .75rem; }
.wf-post__content-inner ul,
.wf-post__content-inner ol{ font-size:1.15rem; line-height:1.75; color:var(--ink-soft); margin:0 0 1.5rem; padding-left:1.5rem; }
.wf-post__content-inner li{ margin-bottom:.5rem; }
.wf-post__content-inner li::marker{ color:var(--gold-deep); }
.wf-post__content-inner blockquote,
.wf-post__content-inner .wp-block-quote{ margin:2rem 0 !important; padding:.4rem 0 .4rem 1.4rem !important; border-left:3px solid var(--gold) !important; background:transparent !important; }
.wf-post__content-inner blockquote p,
.wf-post__content-inner .wp-block-quote p{ font-family:var(--font-head) !important; font-weight:500 !important; font-size:1.3rem !important; line-height:1.45 !important; font-style:normal !important; color:var(--navy) !important; margin:0 !important; }
.wf-post__content-inner a{ color:var(--teal-deep) !important; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.wf-post__content-inner a:hover{ color:var(--navy) !important; }
.wf-post__content-inner .wp-block-image{ margin-block:2.5rem; }
.wf-post__content-inner .wp-block-image:not(.alignwide):not(.alignfull){ max-width:100%; margin-inline:auto; }
.wf-post__content-inner .wp-block-image img,
.wf-post__content-inner img{ width:100%; height:auto; display:block; border-radius:var(--radius-lg); border:1px solid var(--border); box-shadow:var(--shadow-sm); background:#fff; }
/* The auto-embedded featured image — a touch more presence than inline images */
.wf-post__content-inner .wf-post__inline-feat img,
.wf-post__inline-feat img{ box-shadow:var(--shadow-md); }
/* Blog post images: full column width, capped at 450px tall, cover-cropped so
   tall/portrait images become a clean landscape band instead of dominating or squishing. */
.wf-post .wf-post__content-inner img{ height:auto; max-height:450px; object-fit:cover; object-position:center; }
.wf-post__content-inner figcaption{ font-size:.8125rem; color:var(--ink-soft); text-align:center; margin-top:.6rem; }
.wf-post__content-inner hr{ border:none; border-top:1px solid var(--border); margin:2.5rem 0; }

/* Footer back link */
.wf-post__footer{ background:var(--base); border-top:1px solid var(--border); padding-block:2.5rem; margin:0 !important; }
.wf-post__footer-inner{ max-width:900px; margin-inline:auto; padding-inline:clamp(1rem,3vw,2rem); }
.wf-post__back{ display:inline-flex; align-items:center; gap:.5rem; font-weight:700; font-size:.95rem; color:var(--teal-deep) !important; text-decoration:none !important; transition:gap .25s ease,color .25s ease; }
.wf-post__back:hover{ color:var(--navy) !important; gap:.75rem; }

@media (max-width:900px){
  .wf-post__content-inner .wp-block-image:not(.alignwide):not(.alignfull){ width:100% !important; margin-inline:0 !important; }
}
@media (max-width:600px){
  .wf-post__header{ padding-block:1.75rem !important; }
  .wf-post__title.wp-block-post-title{ font-size:1.6rem !important; line-height:1.2 !important; }
  .wf-post__topline{ flex-wrap:nowrap !important; gap:.75rem !important; margin-bottom:1rem !important; align-items:center !important; }
  .wf-post__back--hero{ font-size:.6875rem !important; letter-spacing:.04em !important; flex-shrink:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .wf-post__category.wp-block-post-terms{ font-size:.625rem !important; padding:.3rem .55rem !important; letter-spacing:.1em !important; flex-shrink:0; white-space:nowrap; }
}
.wf-archive-head{ text-align:center; max-width:660px; margin:0 auto clamp(2rem,4vw,3rem); }
.wf-archive-head h1{ font-size:clamp(2rem,4.5vw,3rem); font-weight:600; letter-spacing:-.01em; margin:.4rem 0 .8rem; }
.wf-archive-head p{ color:var(--ink-soft); font-size:1.15rem; }
.wf-blog .wp-block-post-template{ list-style:none; margin:0; padding:0; display:grid !important; gap:1.5rem; grid-template-columns:repeat(3,minmax(0,1fr)); }
.wf-blog .wp-block-post-template > *{ margin:0; }
.wf-blog .wp-block-post{ height:100%; }
.wf-blog .wf-note{ height:100%; }
@media (max-width:900px){ .wf-blog .wp-block-post-template{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px){ .wf-blog .wp-block-post-template{ grid-template-columns:1fr; } }
.wf-note__media .wp-block-post-featured-image{ margin:0; height:100%; }
.wf-note__media .wp-block-post-featured-image a,
.wf-note__media .wp-block-post-featured-image img{ display:block; width:100%; height:100%; object-fit:cover; }
.wf-note__more{ margin-top:auto; }
.wf-pagination{ justify-content:center; gap:.5rem; margin-top:clamp(2rem,4vw,3rem); }
.wf-pagination .page-numbers{ color:var(--teal-deep); font-weight:700; text-decoration:none; padding:.4rem .85rem; border-radius:var(--radius-sm); }
.wf-pagination .page-numbers.current{ background:var(--navy); color:#fff; }

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width:980px){
  .wf-hero__inner{ grid-template-columns:1fr; } .wf-hero__art{ min-height:0; margin-top:1.5rem; }
  .wf-prog-grid,.wf-invite__grid{ grid-template-columns:1fr; } .wf-hero__lead{ max-width:none; }
  .wf-gift-grid,.wf-note-grid{ grid-template-columns:1fr 1fr; }
  .wf-trail{ flex-direction:column; align-items:flex-start; gap:0; max-width:480px; margin-inline:auto; }
  .wf-trail::before{ top:0; bottom:0; left:32px; right:auto; width:0; height:auto; border-top:0; border-left:3px dotted color-mix(in srgb,var(--gold) 55%,transparent); }
  .wf-stop{ display:flex; gap:1.1rem; text-align:left; max-width:none; padding-bottom:1.8rem; align-items:flex-start; }
  .wf-stop__node{ margin:0; flex:none; }
  .wf-footer__grid{ grid-template-columns:1fr 1fr; gap:2rem; }
}
@media (max-width:620px){
  .wf-gift-grid,.wf-note-grid,.wf-footer__grid{ grid-template-columns:1fr; }
  .wf-topbar__note{ display:none; }
  .wf-float--a{ right:2%; } .wf-float--b{ left:2%; }
}
@media (prefers-reduced-motion:no-preference){
  .wf-gift,.wf-prog,.wf-note{ will-change:transform; }
}

/* ---------- Approach page ---------- */
.wf-tint-sun{ position:relative; overflow:hidden; background:#FFF6E6; }

.wf-pagehead{ position:relative; overflow:hidden; text-align:center; padding-block:clamp(2.6rem,5vw,4.2rem) clamp(2.2rem,4.5vw,3.2rem); }
.wf-pagehead .wf-headblock{ max-width:780px; margin-bottom:0; }
.wf-pagehead h1{ font-family:var(--font-head); font-weight:600; letter-spacing:-.015em; line-height:1.05; font-size:clamp(2.2rem,5.4vw,3.5rem); margin:.4rem 0 .9rem; }
.wf-lead{ color:var(--ink-soft); font-size:clamp(1.08rem,1.7vw,1.24rem); line-height:1.6; max-width:60ch; margin-inline:auto; }
.wf-pagehead .wf-btn{ margin-top:1.7rem; }
.wf-pagehead .wf-compass{ right:auto; left:50%; transform:translate(-50%,-50%); opacity:.045; max-width:460px; }
/* Generic page body (shares the blog reading-column typography via .wf-post__content-inner) */
.wf-pagebody-sec{ padding-block:clamp(.5rem,1.5vw,1.5rem) clamp(3rem,6vw,4.5rem); }
.wf-page-body{ text-align:left; }

.wf-prose{ max-width:920px; margin-inline:auto; }
.wf-prose p{ font-size:1.13rem; line-height:1.72; color:var(--ink-soft); margin:0 0 1.15rem; }
.wf-prose .wf-pull{ font-family:var(--font-head); font-weight:500; font-size:clamp(1.3rem,2.5vw,1.7rem); line-height:1.4; color:var(--navy); border-left:3px solid var(--gold); padding-left:1.25rem; margin:1.7rem 0 0; }

.wf-elements{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.wf-element{ display:flex; align-items:flex-start; gap:1.05rem; padding:1.5rem 1.6rem; background:var(--base); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); text-decoration:none; color:inherit; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.wf-element:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:color-mix(in srgb,var(--teal) 38%,var(--border)); }
.wf-element__num{ font-family:var(--font-head); font-weight:600; font-size:1.5rem; line-height:1; color:var(--gold-deep); flex:none; min-width:1.7rem; }
.wf-element__body{ flex:1; }
.wf-element h3{ font-size:1.18rem; font-weight:600; color:var(--navy); margin:.05rem 0 .35rem; }
.wf-element p{ font-size:.98rem; line-height:1.55; color:var(--ink-soft); margin:0; }
.wf-element__go{ flex:none; align-self:center; color:var(--teal-deep); font-weight:700; font-size:1.1rem; transition:transform .25s ease; }
.wf-element:hover .wf-element__go{ transform:translateX(4px); }

@media (max-width:860px){
  .wf-elements{ grid-template-columns:1fr; }
}

/* ---------- Element pages: cross-element "keep exploring" nav ---------- */
.wf-elementnav{ max-width:1000px; margin:3.4rem auto 0; padding:2.4rem 1.5rem 0; border-top:1px solid var(--border); text-align:center; }
.wf-elementnav__title{ font-family:var(--font-head); font-weight:600; color:var(--navy); font-size:1.55rem; margin:.2rem 0 1.4rem; }
.wf-elementnav__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:.7rem; text-align:left; }
.wf-elementnav__item{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.85rem 1.1rem; background:var(--base); border:1px solid var(--border); border-radius:var(--radius-md); color:var(--navy); font-weight:600; font-size:1rem; text-decoration:none; box-shadow:var(--shadow-sm); transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.wf-elementnav__item:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); border-color:color-mix(in srgb,var(--teal) 38%,var(--border)); }
.wf-elementnav__go{ flex:none; color:var(--teal-deep); transition:transform .2s ease; }
.wf-elementnav__item:hover .wf-elementnav__go{ transform:translateX(3px); }
.wf-elementnav__back{ display:inline-block; margin-top:1.4rem; color:var(--ink-soft); font-weight:600; text-decoration:none; }
.wf-elementnav__back:hover{ color:var(--teal-deep); }
@media (max-width:640px){ .wf-elementnav__grid{ grid-template-columns:1fr; } }

/* ---------- Academics page subject cards + homepage subjects strip ---------- */
.wf-subjectcards{ display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; align-items:start; }
.wf-subjects{ display:grid; grid-template-columns:repeat(3,1fr); gap:.8rem; margin-top:.3rem; }
.wf-subject{ background:var(--base); border:1px solid var(--border); border-radius:var(--radius-md); padding:1rem 1.15rem; box-shadow:var(--shadow-sm); }
.wf-subject__name{ display:block; font-family:var(--font-head); font-weight:600; color:var(--navy); font-size:1.12rem; margin-bottom:.18rem; }
.wf-subject__desc{ display:block; font-size:.92rem; line-height:1.45; color:var(--ink-soft); }
.wf-subjects__cta{ text-align:center; margin:1.6rem 0 0; }
@media (max-width:860px){ .wf-subjectcards{ grid-template-columns:1fr; } }
@media (max-width:760px){ .wf-subjects{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .wf-subjects{ grid-template-columns:1fr; } }

/* ---------- Join Us Info page ---------- */
.wf-steps{ list-style:none; margin:clamp(2rem,4vw,3rem) auto 0; max-width:920px; padding:0; display:flex; flex-direction:column; gap:1.1rem; }
.wf-step{ display:flex; gap:1.2rem; align-items:flex-start; background:var(--base); border:1px solid var(--border); border-radius:var(--radius-lg); padding:1.5rem 1.6rem; box-shadow:var(--shadow-sm); }
.wf-step__num{ flex:none; width:2.4rem; height:2.4rem; border-radius:50%; background:var(--navy); color:#fff; font-family:var(--font-head); font-weight:600; font-size:1.15rem; display:grid; place-items:center; }
.wf-step__body{ flex:1; }
.wf-step__body h3{ font-size:1.2rem; font-weight:600; color:var(--navy); margin:.2rem 0 .4rem; }
.wf-step__body p{ color:var(--ink-soft); margin:0 0 .6rem; }
.wf-step__body ul{ margin:.4rem 0 0; padding-left:1.2rem; color:var(--ink-soft); }
.wf-step__body li{ margin-bottom:.35rem; } .wf-step__body li::marker{ color:var(--gold-deep); }
.wf-step__body .wf-btn{ margin-top:.4rem; }

.wf-tuition{ max-width:1200px; margin:0 auto; display:flex; flex-direction:column; gap:2.4rem; }
.wf-tuition-group__title{ font-family:var(--font-head); font-weight:600; font-size:1.35rem; color:var(--navy); display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; margin:0 0 1rem; }
.wf-tuition-group__badge{ background:var(--wash-teal); color:var(--teal-deep); font-size:.78rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; padding:.32rem .7rem; border-radius:var(--radius-pill); }
.wf-tuition-group__badge--alt{ background:var(--wash-gold); color:var(--gold-deep); }
.wf-tuition-table-wrap{ overflow-x:auto; border:1px solid var(--border); border-radius:var(--radius-lg); background:var(--base); box-shadow:var(--shadow-sm); }
.wf-tuition-table{ width:100%; border-collapse:collapse; min-width:640px; }
.wf-tuition-table th{ text-align:left; font-size:.78rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); background:var(--surface); padding:.9rem 1.3rem; border-bottom:1px solid var(--border); }
.wf-tuition-table td{ padding:1.1rem 1.3rem; border-bottom:1px solid var(--border); vertical-align:top; font-size:.95rem; color:var(--ink-soft); }
.wf-tuition-table tr:last-child td{ border-bottom:none; }
.wf-tuition-table td strong{ display:block; color:var(--navy); font-size:1.02rem; font-weight:700; margin-bottom:.25rem; }
.wf-tuition-table td p{ margin:0; max-width:34ch; }
.wf-tuition-table td:nth-child(2){ white-space:nowrap; font-size:.88rem; }
.wf-tuition-table__fee{ font-family:var(--font-head); font-weight:600; font-size:1.15rem; color:var(--navy); white-space:nowrap; }
.wf-included{ max-width:920px; margin:clamp(2rem,4vw,2.75rem) auto 0; }
.wf-included h3{ font-family:var(--font-head); font-weight:600; font-size:1.3rem; color:var(--navy); margin:0 0 .9rem; text-align:center; }
.wf-included ul{ columns:2; column-gap:2.2rem; padding-left:1.1rem; margin:0; color:var(--ink-soft); }
.wf-included li{ margin-bottom:.6rem; break-inside:avoid; } .wf-included li::marker{ color:var(--gold-deep); }

.wf-policy, .wf-scholar{ text-align:left; }
.wf-policy:hover, .wf-scholar:hover{ transform:none; box-shadow:var(--shadow-sm); }
.wf-policy h3, .wf-scholar h3{ margin-bottom:.6rem; }
.wf-policy p{ font-size:.97rem; }
.wf-scholar ul{ margin:.2rem 0 1rem; padding-left:1.1rem; font-size:.95rem; color:var(--ink-soft); }
.wf-scholar li{ margin-bottom:.4rem; } .wf-scholar li::marker{ color:var(--gold-deep); }

.wf-form-wrap{ max-width:640px; margin-inline:auto; }
.wf-form-wrap label{ font-weight:600; font-size:.9rem; color:var(--navy); }
.wf-form-wrap input[type=text], .wf-form-wrap input[type=email], .wf-form-wrap input[type=tel], .wf-form-wrap textarea{ width:100%; border:1px solid var(--border); border-radius:var(--radius-md); padding:.7rem .9rem; font-family:var(--font-body); font-size:1rem; background:#fff; color:var(--navy); margin-top:.3rem; }
.wf-form-wrap input:focus, .wf-form-wrap textarea:focus{ outline:none; border-color:var(--teal); box-shadow:0 0 0 3px color-mix(in srgb,var(--teal) 20%,transparent); }
.wf-form-wrap .wp-block-button__link, .wf-form-wrap button[type=submit]{ background:var(--gold); color:var(--navy); font-weight:700; border:none; border-radius:var(--radius-pill); padding:.7rem 1.6rem; cursor:pointer; transition:.2s ease; }
.wf-form-wrap .wp-block-button__link:hover, .wf-form-wrap button[type=submit]:hover{ background:var(--gold-deep); color:#fff; }

@media (max-width:700px){
  .wf-included ul{ columns:1; }
  .wf-step{ padding:1.2rem; gap:.9rem; }
  .wf-tuition-table td p{ max-width:none; }
}

/* ---------- About page ---------- */
.wf-value{ position:relative; }
.wf-value:hover{ transform:none; box-shadow:var(--shadow-sm); }
.wf-value__num{ font-family:var(--font-head); font-weight:600; font-size:1.4rem; color:var(--gold-deep); display:block; margin-bottom:.3rem; line-height:1; }
.wf-values-note{ max-width:640px; margin:clamp(1.8rem,3vw,2.5rem) auto 0; color:var(--ink-soft); font-size:1rem; }
.wf-values-note a{ color:var(--teal-deep); font-weight:700; text-decoration:none; white-space:nowrap; }
.wf-values-note a:hover{ color:var(--navy); }

.wf-founders{ display:flex; flex-direction:column; gap:clamp(1.8rem,4vw,3rem); max-width:920px; margin-inline:auto; }
.wf-founder{ display:flex; gap:clamp(1.4rem,3vw,2.5rem); align-items:center; }
.wf-founder--reverse{ flex-direction:row-reverse; }
.wf-founder__photo{ flex:none; width:clamp(180px,26vw,260px); aspect-ratio:4/5; object-fit:cover; border-radius:var(--radius-lg); box-shadow:var(--shadow-md); }
.wf-founder__body{ flex:1; }
.wf-founder__body h3{ font-family:var(--font-head); font-weight:600; font-size:1.5rem; color:var(--navy); margin:0; }
.wf-founder__role{ font-weight:700; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-deep); margin:.3rem 0 .8rem; }
.wf-founder__body p{ color:var(--ink-soft); margin:0 0 .8rem; font-size:1rem; line-height:1.6; }

@media (max-width:720px){
  .wf-founder, .wf-founder--reverse{ flex-direction:column; text-align:center; }
  .wf-founder__photo{ width:min(220px,70%); }
  .wf-founder__body{ text-align:left; }
}

/* ---------- A Typical Day page ---------- */
.wf-calendar-link{ padding-block:0 clamp(2.5rem,5vw,4rem) !important; }
.wf-studio{ text-align:left; }
.wf-studio:hover{ transform:none; box-shadow:var(--shadow-sm); }
.wf-card-label{ display:block; font-weight:700; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-deep); margin-bottom:.35rem; }
.wf-studio h3{ margin:0 0 .5rem; }
.wf-studio > p{ color:var(--ink-soft); font-size:.98rem; }
.wf-advance{ font-weight:700; color:var(--navy); font-size:.9rem !important; margin:.9rem 0 .4rem !important; }
.wf-studio ul{ margin:0; padding-left:1.1rem; color:var(--ink-soft); font-size:.92rem; }
.wf-studio li{ margin-bottom:.4rem; } .wf-studio li::marker{ color:var(--gold-deep); }

/* ---------- FAQ accordion ---------- */
.wf-faq{ max-width:920px; margin-inline:auto; display:flex; flex-direction:column; gap:.85rem; }
.wf-faq details{ background:var(--base); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); overflow:hidden; transition:box-shadow .2s ease; }
.wf-faq details[open]{ box-shadow:var(--shadow-md); }
.wf-faq summary{ cursor:pointer; list-style:none; padding:1.15rem 1.5rem; font-family:var(--font-head); font-weight:600; font-size:1.18rem; line-height:1.3; color:var(--navy); display:flex; justify-content:space-between; align-items:center; gap:1.2rem; }
.wf-faq summary::-webkit-details-marker{ display:none; }
.wf-faq summary::after{ content:"+"; font-family:var(--font-body); font-size:1.5rem; line-height:1; color:var(--gold-deep); flex:none; }
.wf-faq details[open] summary::after{ content:"–"; }
.wf-faq__a{ padding:0 1.5rem 1.3rem; color:var(--ink-soft); line-height:1.7; }
.wf-faq__a p{ margin:0; }
.wf-faq__a a{ color:var(--teal-deep); font-weight:600; }
.wf-faq__more{ max-width:920px; margin:clamp(1.6rem,3vw,2.2rem) auto 0; color:var(--ink-soft); }
.wf-faq__more a{ color:var(--teal-deep); font-weight:700; text-decoration:none; }
.wf-faq__more a:hover{ color:var(--navy); }

/* ---------- Missions & Pathways page ---------- */
.wf-flow{ list-style:none; max-width:920px; margin:clamp(1.5rem,3vw,2.5rem) auto 0; padding:0; display:flex; flex-direction:column; gap:.7rem; }
.wf-flow li{ display:flex; flex-wrap:wrap; gap:.4rem 1rem; align-items:center; background:var(--base); border:1px solid var(--border); border-radius:var(--radius-md); padding:.85rem 1.1rem; box-shadow:var(--shadow-sm); }
.wf-flow__n{ flex:none; width:1.8rem; height:1.8rem; border-radius:50%; background:var(--gold); color:var(--navy); font-weight:700; font-size:.85rem; display:grid; place-items:center; }
.wf-flow strong{ flex:none; color:var(--navy); font-family:var(--font-head); font-weight:600; font-size:1.05rem; min-width:8.5rem; }
.wf-flow span{ flex:1; min-width:14rem; color:var(--ink-soft); font-size:.95rem; }

.wf-diagram{ max-width:960px; margin:clamp(1.5rem,3vw,2.5rem) auto 0; }
.wf-diagram img{ width:100%; height:auto; border-radius:var(--radius-lg); border:1px solid var(--border); box-shadow:var(--shadow-md); display:block; background:#fff; }
.wf-diagram figcaption{ text-align:center; font-size:.85rem; color:var(--ink-soft); margin-top:.6rem; }

.wf-curric__a h4{ font-family:var(--font-head); font-weight:600; font-size:1.05rem; color:var(--navy); margin:1.1rem 0 .4rem; }
.wf-curric__a h4:first-child{ margin-top:0; }
.wf-curric__a ul{ margin:0 0 .6rem; padding-left:1.2rem; }
.wf-curric__a li{ margin-bottom:.3rem; color:var(--ink-soft); font-size:.94rem; }
.wf-curric__a li::marker{ color:var(--gold-deep); }
