/* ============================================================================
   Morning Sun First Light: brand globals + full section composition (Kadence child)
   This is the approved live First Light stylesheet, carried verbatim, plus a thin
   adapter layer so native WordPress blocks (group/heading/paragraph/image/button)
   reproduce the exact composition. The design lives here; page CONTENT is editable
   blocks that carry these class names.
   ============================================================================ */
:root{
  color-scheme: light;
  --rice:#F6EFE0; --rice-2:#FBF6EC; --sand:#EFE3CE;
  --pine:#584030; --pine-2:#3A2A20;
  --cinnabar:#C24E2C; --cinnabar-deep:#A53F22; --clay:#B26A3C; --gold:#E0AE5C;
  --ink:#2A231C; --ink-soft:#473C30; --line:#D8C9AE; --cream:#F6EFE0;
  --maxw:1180px; --gutter:clamp(1.25rem,5vw,4rem);
  --serif:"Hoefler Text","Baskerville","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --sans:"Avenir Next","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"SF Mono","Menlo",monospace;
}
:root[data-theme="dark"],:root[data-theme="light"]{ color-scheme:light; }

/* ---- base (scoped to the First Light page) ---- */
body.first-light{ background:var(--rice); color:var(--ink); font-family:var(--sans); font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden; }
.fl-page{ --wp--style--block-gap:0; }            /* neutralize core flow gap; spacing comes from this sheet */
.fl-page *{ box-sizing:border-box; }
.fl-page h1,.fl-page h2,.fl-page h3,.fl-page h4{ font-family:var(--serif); font-weight:400; color:var(--ink); margin:0; text-wrap:balance; letter-spacing:.005em; }
.fl-page h5{ margin:0; }
.fl-page p{ margin:0; text-wrap:pretty; }
.fl-page a{ color:inherit; text-decoration:none; }
.fl-page :where(figure){ margin:0; }
.fl-page img{ max-width:100%; display:block; height:auto; }
.fl-page .wp-block-group{ margin:0; }
/* Kadence is a classic theme, so core wraps every group's children in
   .wp-block-group__inner-container. Make that wrapper transparent to layout
   so our grid/flex containers lay out the real children directly. */
.fl-page .wp-block-group > .wp-block-group__inner-container{ display:contents; }

/* shared layout */
.fl-page .wrap,.fl-page .ps-wrap{ max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter); }
.fl-page .section{ padding-block:clamp(4.5rem,9vw,8rem); position:relative; }

/* signature point mark, rendered as a pseudo element (no markup needed) */
.fl-pt{ position:relative; }
.fl-page .cgroup h4::before,.fl-page .svc .body h3::after,.fl-page .more::after,
.fl-page .foot .companion::after,.fl-page .bio .creds li::before,
.fl-page .ps-block .ey::before,.fl-page .vhead .ey::before,.fl-page .slotnote::before{
  content:""; display:inline-block; width:.5rem; height:.5rem; border-radius:50%; background:var(--cinnabar);
  flex:0 0 auto; vertical-align:middle; }
.fl-page .cgroup h4::before{ width:.42rem; height:.42rem; }

.eyebrow{ font-family:var(--sans); font-size:.72rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase;
  color:var(--clay); display:inline-flex; align-items:center; gap:.7rem; }

/* ======================= NAV ======================= */
.fl-page .nav{ position:sticky; top:0; z-index:50; background:rgba(246,239,224,.9);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.fl-page .nav .nav-inner{ max-width:var(--maxw); margin:0 auto; padding:1.05rem var(--gutter);
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.fl-page .nav .brand-logo{ margin:0; }
.fl-page .nav .brand-logo img{ height:44px; width:auto; display:block; }
@media (max-width:640px){ .fl-page .nav .brand-logo img{ height:36px; } }
.fl-page .nav .nav-links{ display:flex; align-items:center; gap:1.6rem; font-size:.84rem; letter-spacing:.04em; margin:0; flex-wrap:wrap; }
.fl-page .nav .nav-links a{ color:var(--ink-soft); transition:color .2s; }
.fl-page .nav .nav-links a:hover{ color:var(--ink); }

/* ======================= buttons (adapter: core/button -> First Light .btn) ======================= */
.fl-page .wp-block-button.btn > .wp-block-button__link{
  font-family:var(--sans); font-size:.82rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  padding:.72rem 1.3rem; border-radius:2px; border:1px solid transparent; box-shadow:none; }
.fl-page .wp-block-button.btn-primary > .wp-block-button__link{ background:var(--cinnabar); color:#fff; box-shadow:0 1px 0 var(--cinnabar-deep); }
.fl-page .wp-block-button.btn-primary > .wp-block-button__link:hover{ background:var(--cinnabar-deep); color:#fff; }
.fl-page .wp-block-button.btn-call > .wp-block-button__link{ background:var(--gold); color:var(--pine-2); font-size:1rem; padding:1rem 1.9rem; box-shadow:0 1px 0 #c9983f; }
.fl-page .wp-block-button.btn-call > .wp-block-button__link:hover{ background:#ecc078; }
.fl-page .wp-block-button.btn-lightghost > .wp-block-button__link{ background:transparent; color:var(--cream); border-color:rgba(246,239,224,.55); }
.fl-page .wp-block-button.btn-lightghost > .wp-block-button__link:hover{ background:var(--cream); color:var(--pine); }
.fl-page .wp-block-button.jane > .wp-block-button__link{ opacity:.55; font-size:.82rem; pointer-events:none; }
.fl-page .nav .wp-block-button.btn > .wp-block-button__link{ padding:.6rem 1.15rem; }

/* ======================= HERO ======================= */
.fl-page .hero{ position:relative; overflow:hidden; background:
  radial-gradient(120% 90% at 82% 108%, rgba(224,174,92,.34), rgba(224,174,92,0) 55%),
  radial-gradient(90% 70% at 88% 112%, rgba(194,78,44,.18), rgba(194,78,44,0) 50%), var(--rice); }
.fl-page .hero-inner{ position:relative; z-index:2; max-width:var(--maxw); margin:0 auto;
  padding:clamp(3rem,7vw,5.5rem) var(--gutter) clamp(4rem,8vw,7rem);
  display:grid; grid-template-columns:1.12fr .88fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.fl-page .hero-tag{ display:flex; align-items:center; gap:1rem; margin-bottom:1.6rem; flex-wrap:wrap; }
.fl-page .hero-loc{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); }
.fl-page .hero h1{ font-size:clamp(2.6rem,6vw,4.5rem); line-height:1.04; letter-spacing:-.01em; }
.fl-page .hero-sub{ margin-top:1.7rem; font-size:1.12rem; line-height:1.62; color:var(--ink-soft); max-width:30rem; }
.fl-page .hero-cta{ margin-top:2.3rem; display:flex; align-items:center; gap:1.6rem; flex-wrap:wrap; }
.fl-page .hero-meta{ margin-top:2.6rem; display:flex; gap:2.2rem; align-items:baseline; flex-wrap:wrap; }
.fl-page .hero-meta .mi{ display:flex; flex-direction:column; }
.fl-page .hero-meta .n{ font-family:var(--serif); font-size:2.1rem; color:var(--pine); line-height:1; }
.fl-page .hero-meta .l{ font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); margin-top:.4rem; }

/* photo plate */
.fl-page .plate{ position:relative; border-radius:2px; overflow:hidden; aspect-ratio:4/5;
  background:linear-gradient(155deg,var(--pine) 0%,#6b4a34 45%,var(--clay) 115%);
  box-shadow:0 20px 50px -28px rgba(42,35,28,.55); isolation:isolate; }
.fl-page .plate::after{ content:""; position:absolute; inset:10px; border:1px solid rgba(246,239,224,.3); z-index:2; pointer-events:none; }
.fl-page .plate .wp-block-image{ position:absolute; inset:0; margin:0; width:100%; height:100%; z-index:0; }
.fl-page .plate .wp-block-image img{ width:100%; height:100%; object-fit:cover; }
.fl-page .plate .cap{ position:absolute; left:0; right:0; bottom:0; z-index:3; padding:1.1rem 1.2rem;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  background:linear-gradient(to top,rgba(58,42,32,.9),rgba(58,42,32,.1) 60%,rgba(58,42,32,0));
  color:var(--cream); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; }
.fl-page .plate .cap p{ margin:0; }
.fl-page .plate .cap .slot{ opacity:.9; }
.fl-page .plate-wide{ aspect-ratio:16/10; }
.fl-page .bio .plate{ aspect-ratio:3/4; }

/* ======================= PHILO (pine band) ======================= */
.fl-page .philo{ background:var(--pine); color:var(--cream); position:relative; overflow:hidden; }
.fl-page .philo .wrap{ position:relative; z-index:1; display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(2rem,6vw,5rem); align-items:center; }
.fl-page .philo h2{ color:var(--cream); font-size:clamp(2rem,4.5vw,3.1rem); line-height:1.1; }
.fl-page .philo h2::before{ content:""; display:block; width:2.4rem; height:2px; background:var(--gold); margin-bottom:1.6rem; }
.fl-page .philo p{ color:rgba(246,239,224,.82); font-size:1.08rem; line-height:1.7; }

/* ======================= SERVICES editorial list ======================= */
.fl-page .svc{ position:relative; display:grid; grid-template-columns:auto 1fr; gap:clamp(1.5rem,4vw,3.5rem);
  align-items:center; padding:2.4rem 0; border-top:1px solid var(--line); }
.fl-page .services .svc:last-of-type{ border-bottom:1px solid var(--line); }
.fl-page .svc .han{ font-family:var(--serif); font-size:clamp(2.6rem,6vw,3.6rem); color:var(--pine); opacity:.9;
  width:clamp(3rem,7vw,4.4rem); text-align:center; line-height:1; align-self:center; }
.fl-page .svc .body .idx{ font-family:var(--mono); font-size:.8rem; color:var(--clay); letter-spacing:.08em; }
.fl-page .svc .body h3{ font-size:1.7rem; display:flex; align-items:center; gap:.9rem; margin-top:.2rem; }
.fl-page .svc .body p{ margin-top:.7rem; color:var(--ink-soft); max-width:46rem; }
.fl-page .svc .body .more{ margin-top:.9rem; display:inline-flex; align-items:center; gap:.5rem;
  font-size:.82rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--cinnabar); }

/* ======================= CONDITIONS ======================= */
.fl-page .cond .grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1.4rem,3vw,2.6rem); margin-top:3rem; }
.fl-page .cgroup h4{ font-family:var(--sans); font-weight:700; font-size:.76rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--pine); padding-bottom:.8rem; border-bottom:1px solid var(--line); margin-bottom:.9rem; display:flex; align-items:center; gap:.6rem; }
.fl-page .cgroup ul{ list-style:none; margin:0; padding:0; }
.fl-page .cgroup li{ font-size:.92rem; color:var(--ink-soft); padding:.3rem 0; }
.fl-page .cond .note{ margin-top:2.6rem; font-style:italic; color:var(--ink-soft); max-width:50rem; font-size:1.02rem; }

/* ======================= BIO ======================= */
.fl-page .bio{ background:var(--rice-2); }
.fl-page .bio .wrap{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(2rem,5vw,4.5rem); align-items:start; }
.fl-page .bio h2{ font-size:clamp(1.9rem,4vw,2.6rem); }
.fl-page .bio .lede{ font-size:1.12rem; color:var(--ink); margin-top:1.3rem; }
.fl-page .bio .bcol p + p{ margin-top:1rem; }
.fl-page .bio .creds{ margin-top:1.8rem; padding-top:1.6rem; border-top:1px solid var(--line); }
.fl-page .bio .creds .cap{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--clay); margin-bottom:.7rem; }
.fl-page .bio .creds ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.45rem; }
.fl-page .bio .creds li{ font-size:.95rem; color:var(--ink-soft); display:flex; gap:.7rem; align-items:baseline; }
.fl-page .pullquote{ font-family:var(--serif); font-style:italic; font-size:1.3rem; line-height:1.5; color:var(--pine);
  margin-top:1.8rem; padding-left:1.3rem; border-left:2px solid var(--gold); }

/* ======================= VISIT / HOURS ======================= */
.fl-page .visit .wrap{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:stretch; }
.fl-page .vcard h3{ font-size:1.5rem; margin-bottom:1.2rem; }
.fl-page .nap{ font-size:1.02rem; line-height:1.9; color:var(--ink-soft); }
.fl-page .nap strong{ color:var(--ink); font-weight:600; }
.fl-page .nap a{ border-bottom:1px solid var(--line); }
.fl-page .hours-wrap{ margin-top:1.8rem; }
.fl-page .hours-row{ display:flex; justify-content:space-between; padding:.55rem 0; border-bottom:1px solid var(--line); font-size:.98rem; margin:0; }
.fl-page .hours-row:first-of-type{ border-top:1px solid var(--line); }
.fl-page .hours-row .d{ color:var(--ink); }
.fl-page .hours-row .t{ color:var(--ink-soft); font-variant-numeric:tabular-nums; }
.fl-page .slotnote{ font-size:.78rem; color:var(--clay); font-style:italic; margin-top:.8rem; display:flex; gap:.5rem; align-items:center; justify-content:center; }
.fl-page .slotnote a{ border-bottom:1px solid var(--line); }

/* ======================= BOOK (dark) ======================= */
.fl-page .book{ background:var(--pine-2); color:var(--cream); text-align:center; }
.fl-page .book h2{ color:var(--cream); font-size:clamp(2rem,5vw,3.2rem); }
.fl-page .book p.lead{ color:rgba(246,239,224,.82); font-size:1.1rem; margin:1.2rem auto 0; max-width:34rem; }
.fl-page .book-actions{ margin:2.6rem auto 0; display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
.fl-page .book-online{ margin:3.4rem auto 0; max-width:600px; padding:2rem 1.6rem 1.7rem; border:1px dashed rgba(246,239,224,.3); border-radius:5px; position:relative; }
.fl-page .staged-tag{ position:absolute; top:-.72rem; left:50%; transform:translateX(-50%); background:var(--pine-2); color:var(--gold);
  font-size:.62rem; letter-spacing:.15em; text-transform:uppercase; padding:.32rem .9rem; white-space:nowrap; margin:0; }
.fl-page .online-lead{ font-size:.82rem; letter-spacing:.04em; color:rgba(246,239,224,.74); margin-bottom:1.1rem; }
.fl-page .online-btns{ display:flex; gap:.9rem; justify-content:center; flex-wrap:wrap; }

/* ======================= FOOTER ======================= */
.fl-page .foot{ background:var(--pine-2); color:rgba(246,239,224,.72); border-top:1px solid rgba(246,239,224,.1); }
.fl-page .foot .wrap{ padding-block:clamp(3.5rem,6vw,5rem); display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:clamp(2rem,5vw,4rem); }
.fl-page .foot-seal{ display:inline-block; background:var(--cream); border-radius:4px; padding:.85rem; line-height:0; margin:0 0 1.3rem; width:auto; }
.fl-page .foot-seal img{ width:90px; height:auto; mix-blend-mode:multiply; }
.fl-page .foot h5{ font-family:var(--sans); font-weight:700; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); margin:0 0 1.1rem; }
.fl-page .foot a{ color:rgba(246,239,224,.72); transition:color .2s; }
.fl-page .foot a:hover{ color:var(--cream); }
.fl-page .foot .fcol p,.fl-page .foot .fcol a{ display:block; font-size:.92rem; line-height:1.85; }
.fl-page .foot .foot-brand b{ font-family:var(--serif); font-weight:500; font-size:1.18rem; color:var(--cream); display:block; }
.fl-page .foot .foot-brand span{ font-size:.6rem; letter-spacing:.28em; text-transform:uppercase; color:rgba(246,239,224,.6); }
.fl-page .foot .companion{ display:inline-flex; align-items:center; gap:.6rem; margin-top:.4rem; color:var(--gold); font-size:.92rem; }
.fl-page .foot .legal{ border-top:1px solid rgba(246,239,224,.1); margin-top:2.5rem; }
.fl-page .foot .legal .wrap{ padding-block:1.6rem; display:flex; justify-content:space-between; align-items:center; gap:1.5rem; flex-wrap:wrap; font-size:.78rem; color:rgba(246,239,224,.64); }
.fl-page .foot .legal .wrap p{ margin:0; }
.fl-page .foot .legal a.gitm{ color:rgba(246,239,224,.55); border-bottom:1px solid rgba(246,239,224,.2); }

/* ======================= SERVICE PAGES (.ps) ======================= */
.fl-page .ps{ padding-block:clamp(3.4rem,7vw,6rem); }
.fl-page .ps-intro{ max-width:46rem; }
.fl-page .ps-intro p{ font-size:clamp(1.15rem,2.1vw,1.4rem); line-height:1.68; color:var(--ink); margin:0 0 1.3rem; }
.fl-page .ps-intro p:last-child{ margin-bottom:0; }
.fl-page .ps-band{ background:var(--sand); }
.fl-page .ps-block{ display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.4fr); gap:clamp(2rem,5vw,4.5rem); align-items:start; }
.fl-page .ps-block .ey{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--cinnabar); display:flex; align-items:center; gap:.6rem; margin-bottom:1rem; }
.fl-page .ps-block h2{ font-size:clamp(1.85rem,3.3vw,2.5rem); line-height:1.12; }
.fl-page .ps-body p{ color:var(--ink-soft); font-size:1.07rem; line-height:1.74; margin:0 0 1.1rem; }
.fl-page .ps-body p:last-child{ margin-bottom:0; }
.fl-page .ps-quote-sec{ text-align:center; }
.fl-page .ps-quote{ font-family:var(--serif); font-size:clamp(1.6rem,3.6vw,2.35rem); line-height:1.3; color:var(--pine); max-width:30rem; margin:0 auto; font-style:italic; }
.fl-page .ps-cta{ background:var(--pine-2); color:var(--cream); text-align:center; }
.fl-page .ps-cta h2{ color:var(--cream); font-size:clamp(2rem,4vw,2.8rem); }
.fl-page .ps-cta .line{ color:rgba(246,239,224,.84); max-width:36rem; margin:1.2rem auto 0; font-size:1.1rem; line-height:1.62; }
.fl-page .ps-cta .btns{ margin-top:2.2rem; display:flex; gap:1.1rem; justify-content:center; flex-wrap:wrap; }

/* qigong videos */
.fl-page .vid-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; max-width:980px; margin:0 auto; }
.fl-page .vhead{ text-align:center; margin-bottom:1.6rem; }
.fl-page .vhead .ey{ justify-content:center; color:var(--cinnabar); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; display:flex; align-items:center; gap:.6rem; margin-bottom:.6rem; }
.fl-page .vid .wp-block-embed__wrapper,.fl-page .vid{ border-radius:4px; overflow:hidden; box-shadow:0 20px 50px -28px rgba(42,35,28,.5); }
.fl-page .vid-cap{ text-align:center; margin-top:1.1rem; color:var(--ink-soft); font-size:.96rem; max-width:40rem; margin-inline:auto; }
.fl-page .hero .plate-video{ aspect-ratio:9/16; max-width:330px; margin-inline:auto; background:#000; }
.fl-page .hero .plate-video .wp-block-embed{ position:absolute; inset:0; margin:0; width:100%; height:100%; }
.fl-page .hero .plate-video .wp-block-embed__wrapper{ position:absolute; inset:0; width:100%; height:100%; }
.fl-page .hero .plate-video iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; z-index:4; }

/* herbs hero panel */
.fl-page .herb-plate{ display:grid; place-items:center; text-align:center; }
.fl-page .herb-plate .label{ position:relative; z-index:3; padding:2rem; }
.fl-page .herb-plate .label .nm{ font-family:var(--serif); font-size:clamp(2rem,4.4vw,3rem); color:var(--cream); line-height:1.08; }
.fl-page .herb-plate .label .sub{ margin-top:1.1rem; font-size:.7rem; letter-spacing:.22em; text-transform:uppercase; color:rgba(246,239,224,.72); }

/* ======================= RESPONSIVE ======================= */
@media (max-width:900px){
  .fl-page .hero-inner{ grid-template-columns:1fr; }
  .fl-page .hero .plate-wrap{ order:-1; max-width:380px; }
  .fl-page .philo .wrap{ grid-template-columns:1fr; }
  .fl-page .bio .wrap,.fl-page .visit .wrap{ grid-template-columns:1fr; }
  .fl-page .bio .plate{ max-width:360px; }
  .fl-page .cond .grid{ grid-template-columns:repeat(2,1fr); }
  .fl-page .foot .wrap{ grid-template-columns:1fr 1fr; }
}
@media (max-width:760px){
  .fl-page .ps-block{ grid-template-columns:1fr; gap:1rem; }
  .fl-page .vid-grid{ grid-template-columns:1fr; }
}
@media (max-width:720px){ .fl-page .svc{ grid-template-columns:auto 1fr; } }
@media (max-width:640px){
  .fl-page .nav .nav-links{ display:none; }
  .fl-page .cond .grid{ grid-template-columns:1fr; }
  .fl-page .foot .wrap{ grid-template-columns:1fr; }
  .fl-page .hero-inner{ gap:1.75rem; }
  .fl-page .hero .plate-wrap{ order:1; max-width:100%; }
  .fl-page .hero .plate{ aspect-ratio:16/11; }
  .fl-page .hero h1{ font-size:clamp(2.25rem,8.6vw,2.95rem); }
  .fl-page .hero-meta{ gap:1.4rem 2rem; }
}
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

/* ======================= SERVICE-PAGE CLOSING QUOTE: restore the live left rule =======================
   On the live site the closing pull quote is a <blockquote>, so it inherits the
   Kadence base rule  blockquote{ padding-left:1em; border-left:4px solid #2D3748 }.
   The staging rebuild authored it as a paragraph, which never picks that up, so the
   thin vertical left rule was lost. Restore it explicitly (same colour #2D3748 the
   live page resolves --global-palette4 to), keeping the centred alignment + spacing
   the .ps-quote rule already matches 1:1 with live. */
.fl-page .ps-quote{ border-left:4px solid #2D3748; padding-left:1em; }

/* ======================= MOBILE NAVIGATION (phone-only disclosure) =======================
   Operator-ordered upgrade 2026-11-07. The live site has no mobile nav either, so this
   is a deliberate improvement over live, not a parity break. Pure CSS + a native
   core/details block in the synced Nav pattern (zero JavaScript; keyboard + screen-reader
   accessible). Hidden at >=641px so the desktop AND tablet header are byte-for-byte
   unchanged (links row, no hamburger). */
.fl-page .nav .fl-mnav{ display:none; }                                   /* desktop/tablet: not present */
.fl-page .nav .fl-mnav summary{ list-style:none; }                        /* kill the default triangle (FF/standards) */
.fl-page .nav .fl-mnav summary::-webkit-details-marker{ display:none; }   /* kill it in WebKit/Blink */
.fl-page .nav .fl-mnav summary::marker{ content:""; }                     /* belt-and-braces */

@media (max-width:640px){
  /* show the disclosure; move the top-bar Book button into the panel so the phone bar
     is just logo + Menu. (.nav-links is already display:none at this width.) */
  .fl-page .nav .fl-mnav{ display:block; margin:0; }
  .fl-page .nav .nav-cta{ display:none; }

  /* the hamburger + the word "Menu", sitting beside the logo */
  .fl-page .nav .fl-mnav > summary{
    display:inline-flex; align-items:center; gap:.6rem; cursor:pointer; margin:0;
    min-height:44px; padding:.5rem .35rem;
    font-family:var(--sans); font-size:.82rem; font-weight:600; letter-spacing:.1em;
    text-transform:uppercase; color:var(--ink-soft);
    user-select:none; -webkit-tap-highlight-color:transparent;
  }
  .fl-page .nav .fl-mnav > summary:hover{ color:var(--ink); }
  /* CSS-drawn hamburger (three bars) — no font or emoji dependency */
  .fl-page .nav .fl-mnav > summary::before{
    content:""; display:inline-block; width:20px; height:2px; background:currentColor;
    box-shadow:0 6px 0 currentColor, 0 -6px 0 currentColor; flex:0 0 auto;
  }
  /* visible keyboard focus state */
  .fl-page .nav .fl-mnav > summary:focus-visible{
    outline:2px solid var(--cinnabar); outline-offset:3px; border-radius:2px; color:var(--ink);
  }

  /* full-width cream panel, dropped below the sticky bar (.nav is the positioned
     containing block). left/right:0 keeps it exactly viewport-wide -> no x-overflow. */
  .fl-page .nav .fl-mnav-panel{
    position:absolute; left:0; right:0; top:100%; z-index:60;
    background:var(--cream); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
    box-shadow:0 26px 40px -30px rgba(42,35,28,.55);
    padding:.3rem var(--gutter) 1.3rem; max-width:100%;
  }
  /* link list: block links, hairline rules, >=44px tap targets, ink + terracotta accent */
  .fl-page .nav .fl-mnav-links{ list-style:none; margin:0; padding:0; }
  .fl-page .nav .fl-mnav-links li{ margin:0; border-bottom:1px solid var(--line); }
  .fl-page .nav .fl-mnav-links li a{
    display:flex; align-items:center; min-height:48px; padding-left:.2rem;
    font-family:var(--sans); font-size:1rem; letter-spacing:.02em; color:var(--ink);
    border-left:2px solid transparent; transition:color .15s, border-color .15s, padding-left .15s;
  }
  .fl-page .nav .fl-mnav-links li a:hover,
  .fl-page .nav .fl-mnav-links li a:focus-visible{
    color:var(--cinnabar); border-left-color:var(--cinnabar); padding-left:.6rem; outline:none;
  }
  /* the Book button inside the panel: full-width primary */
  .fl-page .nav .fl-mnav-cta{ margin-top:1.15rem; }
  .fl-page .nav .fl-mnav-cta .wp-block-button{ width:100%; }
  .fl-page .nav .fl-mnav-cta.wp-block-buttons{ display:block; }
  .fl-page .nav .fl-mnav-cta .wp-block-button__link{ display:block; text-align:center; min-height:44px; line-height:1.7; }
}

/* ======================= STICKY MOBILE CALL BAR (phone-only; CRO 2026-11-07) =======================
   Operator-tapped. A slim fixed bottom bar on phones only: gold Call + cinnabar "Book My Visit" on
   the booking-band pine ground. Native blocks in the synced Footer pattern (site-wide, editable);
   zero JS. Hidden at 641px and up so desktop + tablet are untouched. */
.fl-page .fl-callbar{ display:none; }
@media (max-width:640px){
  /* clearance so the fixed bar never covers the footer's last line */
  body.first-light{ padding-bottom:calc(66px + env(safe-area-inset-bottom)); }

  .fl-page .fl-callbar{
    display:block; position:fixed; left:0; right:0; bottom:0; z-index:48;
    background:var(--pine-2); border-top:1px solid rgba(246,239,224,.14);
    box-shadow:0 -12px 30px -18px rgba(0,0,0,.55);
    padding:.5rem .7rem calc(.5rem + env(safe-area-inset-bottom));
  }
  .fl-page .fl-callbar .fl-callbar-actions{ display:flex; gap:.55rem; margin:0; max-width:100%; }
  .fl-page .fl-callbar .wp-block-button{ flex:1 1 0; min-width:0; margin:0; }
  .fl-page .fl-callbar .wp-block-button > .wp-block-button__link{
    display:flex; align-items:center; justify-content:center; gap:.4rem;
    width:100%; min-height:48px; padding:.55rem .5rem;
    font-size:.78rem; letter-spacing:.03em; white-space:nowrap;
  }
  /* Sensible stacking with the open nav menu: the panel (inside the sticky nav, z-index 50)
     sits above the bar (z-index 48), so if they ever overlapped on a very short viewport the
     menu wins; on a normal phone they occupy opposite ends and coexist, neither blocking the other. */
}
