/* ============================================================
   LEARNERSFIELD :: GREENGLASS LUXE LAYER  (greenglass.css, Wave 8R)
   Ikejimba style transformation — ORIGINAL PALETTE PRESERVED.
   Loads AFTER premium.css. premium.css :root stays authoritative
   (paper #f7f6f1 / forest #173c35 / deep #102a27 / lime #d7e7a6 /
   gold #c4a66a) — this layer only ENRICHES the greens (luxe emerald
   gradients, sheens, glass depth) and keeps fonts as-is
   (Playfair Display / DM Sans / Manrope).
   Progressive class html.ggg-ready is stamped by greenglass.js.
   ============================================================ */

:root{
  --gg-ease:cubic-bezier(.32,.72,0,1);
  --gg-emerald:#1d5a4b;
  --gg-emerald-2:#245f50;
  --gg-jade:#779054;
  --gg-ring:rgba(23,60,53,.18);
  --gg-ring-soft:rgba(23,60,53,.10);
  --gg-glass:rgba(255,255,255,.72);
  --gg-glass-2:rgba(255,255,255,.86);
}

/* ---------- base : light canvas, subtle luxe wash ---------- */
::selection{background:var(--lime);color:var(--deep)}
:focus-visible{outline:3px solid var(--lime-2);outline-offset:4px;border-radius:2px}
body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(1200px 800px at 78% -8%,rgba(215,231,166,.16),transparent 58%),
             radial-gradient(900px 700px at 6% 106%,rgba(163,191,95,.08),transparent 55%)}

/* ---------- typography (original fonts, luxe accents) ---------- */
.lf-kicker>span{background:linear-gradient(90deg,transparent,var(--gold),transparent);height:1px}
.lf-h2 em,.lf-hero h1 em,.lf-pagehero h1 em{color:var(--gg-jade);font-style:italic}

/* ---------- buttons : luxe emerald fill / ghost ---------- */
.lf-btn{transition:transform .35s var(--gg-ease),box-shadow .35s var(--gg-ease),background .25s ease,color .25s ease}
.lf-btn--dark,.lf-nav .lf-nav-cta{
  background:linear-gradient(160deg,#1f6252,#173c35 55%,#0e2f28);
  color:#fff;border:0;
  box-shadow:0 12px 30px rgba(16,42,39,.22),inset 0 1px 0 rgba(215,231,166,.35)}
.lf-btn--dark:hover,.lf-nav .lf-nav-cta:hover{
  background:linear-gradient(160deg,#256a59,#1d5a4b 55%,#12352d);
  box-shadow:0 18px 40px rgba(16,42,39,.30),inset 0 1px 0 rgba(215,231,166,.45)}
.lf-btn--lime{background:var(--lime);color:var(--deep)}
.lf-btn--lime:hover{background:var(--lime-2);color:#fff}
.lf-btn--light{background:rgba(255,255,255,.75);color:var(--forest);border-color:rgba(23,60,53,.22);backdrop-filter:blur(10px)}
.lf-btn--light:hover{background:var(--forest);color:#fff;border-color:var(--forest)}
.lf-btn--light:disabled{opacity:.6}
.lf-btn--outline{border-color:rgba(23,60,53,.35);color:var(--forest);background:rgba(255,255,255,.4)}
.lf-btn--outline:hover{border-color:var(--forest);background:rgba(23,60,53,.06);box-shadow:0 10px 26px rgba(16,42,39,.12)}
.lf-textlink{color:var(--forest)}
.lf-textlink:hover{color:var(--gg-emerald)}
.lf-underlink{border-bottom-color:rgba(23,60,53,.35);color:var(--forest)}
.lf-underlink:hover{border-color:var(--gg-emerald)}
.lf-btn-do{border-color:rgba(23,60,53,.3);color:var(--forest);transition:.3s var(--gg-ease)}
.lf-btn-do:hover{background:var(--forest);color:#fff;border-color:var(--forest)}
.lf-cal__add{color:var(--forest)}

/* ---------- top bar ---------- */
.lf-topline{background:linear-gradient(90deg,var(--deep-2),var(--deep) 30%,#12332e 65%,var(--deep))}
.lf-topline a{color:var(--lime)}
.lf-topline a:hover{color:#fff}

/* ---------- header : light glass master ---------- */
.lf-header{background:rgba(255,255,255,.78);backdrop-filter:blur(22px) saturate(150%);-webkit-backdrop-filter:blur(22px) saturate(150%);border-bottom:1px solid var(--gg-ring-soft)}
.lf-header.is-scrolled{box-shadow:0 18px 44px rgba(16,42,39,.14);border-bottom-color:var(--gg-ring)}
.lf-nav .lf-dropdown{background:rgba(255,255,255,.92);border:1px solid var(--gg-ring-soft);border-radius:12px;backdrop-filter:blur(20px);box-shadow:0 30px 70px rgba(16,42,39,.18)}
.lf-nav .lf-dropdown a:hover{background:rgba(215,231,166,.18);color:var(--deep)}
.lf-nav>a::after{background:linear-gradient(90deg,transparent,var(--forest),transparent)}
.lf-burger{border-color:var(--gg-ring);color:var(--forest)}
.lf-burger:hover{background:rgba(215,231,166,.25)}
.lf-mobile{background:rgba(255,255,255,.97);backdrop-filter:blur(24px)}
.lf-mobile a.m-link{color:var(--ink);border-bottom-color:rgba(23,60,53,.10)}
.lf-mobile a.m-link.active,.lf-mobile a.m-link.m-has-sub{color:var(--forest)}
.lf-mobile a.m-sublink{color:var(--muted);border-bottom:1px dashed rgba(23,60,53,.10)}

/* ---------- news ticker : forest band with emerald sheen ---------- */
.lf-ticker{background:linear-gradient(90deg,var(--deep),var(--forest) 30%,#1d5245 60%,var(--forest));color:#fff}
.lf-ticker__tag{color:var(--lime)}
.lf-ticker__tag::before{background:var(--lime);box-shadow:0 0 12px rgba(163,191,95,.8)}
.lf-ticker__track a{color:#e7efe2}
.lf-ticker__track a:hover{color:var(--lime)}
.lf-ticker__track strong{color:var(--lime)}
.lf-ticker__track .lf-ticker-date,.lf-ticker__date{color:#9db3a4}

/* ---------- hero : light paper stage, emerald depth, luxe frame ---------- */
.lf-hero{background:none}
.lf-hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(1100px 780px at 84% 4%,rgba(215,231,166,.30),transparent 58%),
             radial-gradient(820px 640px at 2% 98%,rgba(163,191,95,.14),transparent 55%),
             linear-gradient(180deg,#f7f6f1 0%,#eff0e8 100%)}
.lf-hero h1{letter-spacing:-.045em;color:var(--deep)}
.lf-hero .lf-kicker{color:#60756b}
.lf-hero__lede{color:#5c6963}
.lf-hero__visual{box-shadow:0 44px 100px rgba(16,42,39,.35),0 0 0 1px rgba(23,60,53,.20),0 0 70px rgba(163,191,95,.18)}
.lf-hero__visual::after{background:linear-gradient(180deg,rgba(12,33,30,0) 34%,rgba(12,33,30,.62))}
.lf-hero__visual img{transition:transform 1.4s var(--gg-ease),opacity .9s ease}
.lf-hero__visual::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:3;
  background:linear-gradient(115deg,rgba(215,231,166,.20),transparent 34%),radial-gradient(120% 100% at 92% 8%,rgba(255,255,255,.24),transparent 40%)}
.lf-orbitring{border-color:rgba(23,60,53,.35)}
.lf-orbitring--ring2{border-color:rgba(23,60,53,.18);box-shadow:0 0 0 40px rgba(23,60,53,.04),0 0 0 80px rgba(23,60,53,.03)}
.lf-floatnote{background:rgba(255,255,255,.85);border:1px solid var(--gg-ring-soft);box-shadow:0 26px 60px rgba(16,42,39,.20)}
.lf-floatnote b{color:var(--deep)}
.lf-floatnote small{color:var(--muted)}
.lf-floatnote i{color:var(--gg-emerald)}
.lf-caption span{color:var(--lime);letter-spacing:.2em}
.lf-caption b{text-shadow:0 2px 18px rgba(12,33,30,.55)}
.lf-hero-index{color:#65716d}
.lf-hero-index b{color:var(--forest-2)}
/* green progress dots (stamped by greenglass.js) */
.gg-dots{position:absolute;left:7%;right:7%;bottom:64px;display:flex;gap:10px;z-index:8}
.gg-dots button{width:34px;height:2px;border:0;padding:0;cursor:pointer;background:rgba(23,60,53,.20);transition:background .35s ease,box-shadow .35s ease;border-radius:1px}
.gg-dots button.gg-on{background:linear-gradient(90deg,#a3bf5f,#173c35);box-shadow:0 0 12px rgba(23,60,53,.45)}
/* slide states (html.ggg-ready stamped by js; no-JS = static first slide).
   SCOPED to .lf-rotor (engine-owned slides only) - owl-driven slides must never be touched. */
.lf-rotor{position:relative}
.ggg-ready .lf-rotor>.lf-slide:not(.is-active){position:absolute;inset:0}
.ggg-ready .lf-rotor .lf-slide{transition:opacity .8s var(--gg-ease),transform 1.1s var(--gg-ease),filter .8s ease}
.ggg-ready .lf-rotor .lf-slide:not(.is-active){opacity:0;transform:scale(1.035);pointer-events:none}
.ggg-ready .lf-rotor .lf-slide:not(.is-active) img{filter:saturate(.9)}
.ggg-ready .lf-rotor .lf-slide.is-active{opacity:1;transform:scale(1)}
.ggg-ready .lf-rotor>.lf-slide:not(.is-active){position:absolute;inset:0}
@media(max-width:920px){.gg-dots{bottom:44px;left:5.5%;right:5.5%}}
@media(max-width:560px){.gg-dots{bottom:38px}}

/* ---------- owl dots : green re-tint (legacy red accent fixed) ---------- */
.main-slider .slider-caption .inner-box{background:rgba(255,255,255,.62);backdrop-filter:blur(20px);border:1px solid var(--gg-ring-soft);box-shadow:0 30px 80px rgba(16,42,39,.22)}
.main-slider .slider-caption h1,.welcome-area h1,.welcome-area .slider-caption h1{color:var(--deep);letter-spacing:-.04em}
.main-slider .slider-caption .text{color:#4a5751}
.owl-theme .owl-dots .owl-dot span{background:rgba(23,60,53,.22)!important}
.owl-theme .owl-dots .owl-dot.active span{background:var(--forest)!important}
.owl-theme .owl-dots .owl-dot{background:rgba(23,60,53,.22)!important;border:0!important;border-radius:50%}
.owl-theme .owl-dots .owl-dot.active{background:linear-gradient(90deg,#a3bf5f,#173c35)!important;border:0!important}
/* testimonial avatars: placeholder strip -> proper round medallion */
.lf-quote__who img{width:44px!important;height:44px!important;border-radius:50%;object-fit:cover;object-position:center top;border:1px solid var(--gg-ring-soft);background:rgba(215,231,166,.25)}

/* ---------- cards / tiles : white glass luxe ---------- */
.lf-chipcard,.lf-icoTile,.lf-card,.lf-tile,.lf-album,.lf-side,.lf-steps{
  background:var(--gg-glass);border:1px solid var(--gg-ring-soft);
  backdrop-filter:blur(14px) saturate(130%);-webkit-backdrop-filter:blur(14px) saturate(130%);
  box-shadow:0 24px 55px rgba(16,42,39,.10)}
.lf-chipcard:hover,.lf-icoTile:hover,.lf-card:hover,.lf-tile:hover,.lf-album:hover{
  transform:translateY(-7px);
  box-shadow:0 34px 70px rgba(16,42,39,.16),0 0 0 1px rgba(23,60,53,.18)}
.lf-card__num{color:var(--gg-emerald);letter-spacing:.2em}
.lf-card__more{color:var(--forest)}
.lf-card__date{background:rgba(255,255,255,.9);border-color:var(--gg-ring-soft);color:var(--forest);backdrop-filter:blur(12px)}
.lf-card__date b{color:var(--deep)}
.lf-tile a::after{background:linear-gradient(0deg,rgba(12,33,30,.55),transparent 55%)}
.lf-tile__open,.lf-album__open{background:rgba(255,255,255,.9);color:var(--forest);border:1px solid var(--gg-ring-soft)}
.lf-chip{background:rgba(215,231,166,.18);border:1px solid rgba(23,60,53,.14);color:var(--deep)}
.lf-chip i{color:var(--gg-emerald)}
.lf-chips .lf-chip{width:auto;height:auto} /* W8R-v7 chip fix: premium.css forces .lf-chip into a 52px icon tile; text chips in .lf-chips rows (admission intro) must size to content as pills */
.lf-filter a,#doctors-filter.lf-filter a{background:rgba(255,255,255,.7)!important;border:1px solid var(--gg-ring-soft)!important;color:var(--ink)!important;backdrop-filter:blur(10px)}
.lf-filter a:hover,.lf-filter a.active,#doctors-filter.lf-filter a:hover,#doctors-filter.lf-filter a.active{background:linear-gradient(160deg,#1f6252,#173c35)!important;color:#fff!important;border-color:var(--forest)!important;box-shadow:0 12px 30px rgba(16,42,39,.22)}

/* ---------- sections ---------- */
.lf-section--mist{background:radial-gradient(800px 500px at 88% 0%,rgba(215,231,166,.20),transparent 55%),var(--mist)}
.lf-section--paper2{background:var(--paper-2)}
.lf-quotes{background:var(--paper-2)}
.lf-compass::before{border-color:rgba(23,60,53,.18)}
.lf-compass::after{border-color:rgba(23,60,53,.12)}
.lf-compass p{color:#5c6963}

/* ---------- intro / 3D scene ---------- */
.lf-scene__img,.lf-intro__visual img{box-shadow:0 44px 100px rgba(16,42,39,.30),0 0 0 1px rgba(23,60,53,.16)}
.lf-intro-note{background:rgba(255,255,255,.85);border:1px solid var(--gg-ring-soft);box-shadow:0 26px 60px rgba(16,42,39,.20)}
.lf-intro-note b{color:var(--deep)}
.lf-intro-note small{color:var(--muted)}
.lf-intro-note i{color:var(--gg-emerald)}

/* ---------- teachers / numbers : deep emerald bands ---------- */
.lf-teachers{background:linear-gradient(165deg,var(--deep) 0%,#123832 55%,var(--forest) 100%)}
.lf-teachers::after{border-color:rgba(215,231,166,.22);box-shadow:0 0 0 55px rgba(215,231,166,.05),0 0 0 110px rgba(215,231,166,.03)}
.lf-person{background:rgba(255,255,255,.97);color:var(--ink);border:1px solid rgba(255,255,255,.35)}
.lf-person:hover{box-shadow:0 34px 80px rgba(0,0,0,.45),0 0 0 1px rgba(215,231,166,.55)}
.lf-person__art{background:#dfe5db}
.lf-person__art img{filter:grayscale(.2) contrast(1.03);transition:filter .4s}
.lf-person:hover .lf-person__art img{filter:none}
.lf-person__art--mono{background:radial-gradient(circle at 70% 25%,rgba(215,231,166,.7),transparent 55%),radial-gradient(circle at 20% 85%,rgba(163,191,95,.42),transparent 55%),linear-gradient(160deg,#eef2e7,#dbe5d3)}
.lf-mono{color:var(--forest)}
.lf-person__links a{background:rgba(16,42,39,.85);border:1px solid rgba(215,231,166,.35);color:var(--lime)}
.lf-person__body h3{color:var(--deep)}
.lf-numbers{background:linear-gradient(165deg,var(--deep-2) 0%,var(--deep) 60%,#123832 100%)}
.lf-numbers::before{border-color:rgba(215,231,166,.16)}
.lf-number i{border-color:rgba(215,231,166,.45);color:var(--lime)}
.lf-number .lf-counter{color:var(--lime)}

/* ---------- quote ---------- */
.lf-quote{background:rgba(255,255,255,.86);border:1px solid var(--gg-ring-soft);backdrop-filter:blur(14px);box-shadow:0 26px 60px rgba(16,42,39,.10)}
.lf-quote__stars{color:var(--gold);text-shadow:0 0 12px rgba(196,166,106,.45)}
.lf-quote p{color:var(--ink)}
.lf-quote__who small{color:var(--muted)}

/* ---------- admissions CTA / contact bands ---------- */
.lf-adm{background:linear-gradient(160deg,var(--deep),#123832)}
.lf-adm .lf-kicker{color:var(--lime)}
.lf-adm h2,.lf-adm h1{color:#fff}

/* ---------- footer : deep emerald panel ---------- */
.lf-footer{background:linear-gradient(180deg,#0c211e 0%,var(--deep-2) 45%,#0a1b19 100%)}
.lf-footer h4{color:var(--lime)}
.lf-footer .lf-brand__title{color:#fff}
.lf-footer .lf-brand__sub{color:#9db3a4}
.lf-footer .lf-brand__logo{border-color:rgba(215,231,166,.4)}
.lf-walk a{color:#c6d3c9;transition:color .25s,transform .3s var(--gg-ease)}
.lf-walk a:hover{color:var(--lime);transform:translateX(4px)}
.lf-addr li{color:#c6d3c9}
.lf-addr a{color:#c6d3c9}
.lf-addr a:hover{color:var(--lime)}
.lf-footer-desc{color:#9db3a4}
.lf-social a{border-color:rgba(215,231,166,.3);color:var(--lime)}
.lf-social a:hover{background:var(--lime);color:var(--deep)}
.lf-subfooter{border-top:1px solid rgba(215,231,166,.14)}
.lf-toTop{background:var(--forest);color:#fff;box-shadow:0 14px 34px rgba(16,42,39,.3)}
.lf-toTop:hover{background:var(--gg-emerald)}

/* ---------- forms : keep premium light styles; refine focus + breathe ---------- */
.form-control:focus,.lf-fpanel .form-control:focus{border-color:var(--forest-2);box-shadow:0 0 0 4px rgba(163,191,95,.22)}
.select2-container--default.select2-container--open.select2-dropdown,.select2-dropdown{border-color:var(--gg-ring)!important;box-shadow:0 18px 44px rgba(16,42,39,.14)!important}
.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:var(--forest)!important}
.gg-btn-breathe{animation:ggBreathe 1.6s ease infinite}
@keyframes ggBreathe{0%,100%{box-shadow:0 0 0 0 rgba(29,90,75,.35)}50%{box-shadow:0 0 0 12px rgba(29,90,75,0)}}

/* ---------- particles canvas (light-theme blending) ---------- */
.gg-stars{position:absolute;inset:0;z-index:1;pointer-events:none;mix-blend-mode:normal;opacity:.55}

/* ============================================================
   GREENGLASS v3 — "COUTURE" (owner-approved 2026-10-26)
   SAME palette (paper/forest/deep/lime/gold), SAME fonts.
   Registerable depth: glass header + gold hairline, pill nav,
   lime header CTA, signature underline bars on section heads +
   page hero, luxe hero arch, floatnote icon chip, concentric
   lime footer rings, de-navied subfooter (template is now
   CSS-owned; CMS bg/color echo removed from footer.php).
   ============================================================ */

/* ---------- header : luxe glass + gold hairline + pill nav ---------- */
.lf-header{background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(255,255,255,.74))}
.lf-header::after{content:"";position:absolute;left:5.5%;right:5.5%;bottom:-1px;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(196,166,106,.5) 30%,rgba(215,231,166,.5) 70%,transparent)}
.lf-nav>a{padding:11px 17px;border-radius:999px;border:1px solid transparent;
  transition:color .25s ease,background .25s var(--gg-ease),border-color .25s ease,box-shadow .25s var(--gg-ease)}
.lf-nav>a::after{display:none}
.lf-nav>a:hover,.lf-nav>a.active{color:var(--deep);background:rgba(215,231,166,.18);border-color:rgba(23,60,53,.10)}
.lf-header .lf-btn--dark,.lf-nav .lf-nav-cta{background:linear-gradient(160deg,#d9e8ab,#b9cf87);color:#102a27;border-radius:999px;
  box-shadow:0 10px 26px rgba(163,191,95,.38),inset 0 1px 0 rgba(255,255,255,.65)}
.lf-header .lf-btn--dark:hover,.lf-nav .lf-nav-cta:hover{background:linear-gradient(160deg,#e3f0b8,#c4d694);color:#0e2f28;
  box-shadow:0 16px 34px rgba(163,191,95,.5),inset 0 1px 0 rgba(255,255,255,.75)}

/* ---------- signature underline bars ---------- */
.lf-section__head .lf-h2::after,
.lf-pagehero h1::after{content:"";display:block;width:78px;height:3px;margin-top:18px;border-radius:3px;
  background:linear-gradient(90deg,var(--lime),var(--gold) 70%,transparent)}

/* ---------- hero : luxe framed visual (soft radius + inset gold hairline) ---------- */
.lf-hero__visual img,
.lf-hero__visual::before,
.lf-hero__visual::after{border-radius:16px}
.lf-hero__visual img{outline:1px solid rgba(196,166,106,.40);outline-offset:-14px}
@media(max-width:920px){
  .lf-hero__visual img{outline-offset:-10px}
}

/* ---------- floatnote : icon chip + deeper glass ---------- */
.lf-floatnote{background:rgba(255,255,255,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-radius:12px}
.lf-floatnote i{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;flex:0 0 auto;
  background:linear-gradient(160deg,rgba(215,231,166,.55),rgba(163,191,95,.30))}

/* ---------- footer : concentric lime rings + de-navied subfooter ---------- */
.lf-ctabar{background:linear-gradient(160deg,#102a27 0%,#123832 58%,#1d5245 100%)}
.lf-footer{position:relative;overflow:hidden}
.lf-footer::after{content:"";position:absolute;top:-95px;right:-70px;width:300px;height:300px;border-radius:50%;
  border:1px solid rgba(215,231,166,.15);
  box-shadow:0 0 0 60px rgba(215,231,166,.05),0 0 0 122px rgba(215,231,166,.03);pointer-events:none}
.lf-subfooter{background:rgba(215,231,166,.05);color:#dfe8dc;border-top:1px solid rgba(215,231,166,.16)}
.lf-subfooter span:first-child{color:#f4f7ee}
.lf-subfooter a{color:var(--lime)}
.lf-subfooter a:hover{color:#fff}

/* ---------- owl neighbor sliver fix : notes only visible on the ACTIVE slide ---------- */
.lf-orbit-hero-note{transition:opacity .4s ease}
.owl-item:not(.active) .lf-orbit-hero-note{opacity:0}

/* ---------- mobile h-overflow guard : legacy orbit rings poke 67px past viewport.
   overflow:clip (NOT hidden) — creates no scroll container, position:sticky safe ---------- */
html{overflow-x:clip}

/* ---------- reduced motion / print guards ---------- */
@media(prefers-reduced-motion:reduce){
  .lf-btn,.lf-chipcard,.lf-icoTile,.lf-card,.lf-tile,.lf-album{transition:none}
  .gg-btn-breathe{animation:none}
  html.ggg-ready .lf-rotor .lf-slide{transition:none!important}
  .gg-stars{display:none}
}
@media print{
  .gg-stars,.gg-dots{display:none}
  body::before{display:none}
}

/* ============================================================
   Wave 8R-v7 :: GALLERY band (school moments)
   paper band, 4-col grid, hover caption reveal
   ============================================================ */
.lf-gallery{background:#f7f6f1}
.lf-gallery .lf-gallery__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:2.6rem}
.lf-gallery .lf-gallery__item{position:relative;margin:0;aspect-ratio:4/3;overflow:hidden;border-radius:16px;border:1px solid rgba(23,60,53,.10);background:#102a27}
.lf-gallery .lf-gallery__item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.1s var(--gg-ease),filter .8s ease}
.lf-gallery .lf-gallery__item figcaption{position:absolute;inset:auto 0 0 0;padding:38px 16px 14px;background:linear-gradient(180deg,transparent,rgba(8,23,20,.85));color:#fff;opacity:0;transform:translateY(8px);transition:opacity .5s var(--gg-ease),transform .5s var(--gg-ease)}
.lf-gallery .lf-gallery__item figcaption b{display:block;font-family:'DM Sans',sans-serif;font-size:.95rem;font-weight:600;letter-spacing:.01em}
.lf-gallery .lf-gallery__item figcaption small{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:#d7e7a6}
.lf-gallery .lf-gallery__item:hover img,.lf-gallery .lf-gallery__item:focus-within img{transform:scale(1.06)}
.lf-gallery .lf-gallery__item:hover figcaption,.lf-gallery .lf-gallery__item:focus-within figcaption{opacity:1;transform:translateY(0)}
@media(hover:none){
  .lf-gallery .lf-gallery__item figcaption{opacity:1;transform:none;padding:30px 14px 12px}
}
@media(max-width:920px){.lf-gallery .lf-gallery__grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.lf-gallery .lf-gallery__grid{grid-template-columns:1fr 1fr;gap:12px}}

/* ============================================================
   Wave 8R-v7 :: HOME GROUND vitrine (3D map + live weather)
   Ported from Ikejimba h-ground, recolored to the LF palette:
   forest/lime/gold plates instead of void-gold.
   ============================================================ */
.lf-ground{padding:90px 7%;background:#f7f6f1}
.lf-ground__lead{max-width:640px;color:#4c5e57;font-size:1.02rem;line-height:1.7;margin-top:14px}
.lf-ground .gstage{position:relative;margin-top:3.2rem;perspective:1600px}
.lf-ground .gstage::before,.lf-ground .gstage::after{content:'';position:absolute;left:-5%;width:110%;pointer-events:none;border-radius:50%;border:1px solid rgba(23,60,53,.10)}
.lf-ground .gstage::before{top:-7%;height:52%}
.lf-ground .gstage::after{bottom:-6%;height:46%;border-color:rgba(23,60,53,.07)}
.lf-ground .gtilt3d{display:block;transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .9s var(--gg-ease)}
.lf-ground .gfloor{transform:translateZ(26px);position:relative;z-index:1;background:linear-gradient(140deg,rgba(23,60,53,.10),rgba(163,191,95,.08) 45%,rgba(16,42,39,.30));border:1px solid rgba(23,60,53,.20);border-radius:2rem;padding:.45rem;box-shadow:0 44px 90px -34px rgba(16,42,39,.55),0 6px 20px -10px rgba(16,42,39,.35)}
.lf-ground .gplate{position:relative;background:linear-gradient(165deg,#0e211d 0%,#081714 60%,#0b1c19 100%);border:1px solid rgba(196,166,106,.16);border-radius:calc(2rem - .45rem);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),inset 0 -1px 0 rgba(0,0,0,.5);padding:.9rem 1.05rem .95rem}
.lf-ground .mapframe{margin:.7rem 0 .8rem;border:1px solid rgba(196,166,106,.14);border-radius:calc(2rem - .45rem - .7rem);overflow:hidden}
.lf-ground .mapframe #lfMap{height:340px;width:100%;background:#081714}
.lf-ground .gplate-top,.lf-ground .gplate-bot{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.lf-ground .gplate-top{border-bottom:1px solid rgba(196,166,106,.10);padding-bottom:.7rem;padding-right:4.5rem}
.lf-ground .gplate-bot{border-top:1px solid rgba(196,166,106,.10);padding-top:.7rem;padding-right:4.5rem}
.lf-ground .gtag{font-size:.6rem;letter-spacing:.34em;color:#7e958b}
.lf-ground .gcoord{font-size:.72rem;letter-spacing:.22em;color:#c4a66a}
.lf-ground .glinks{display:flex;gap:1.2rem;flex-wrap:wrap}
.lf-ground .glinks a{color:#a3bf5f;text-decoration:none;font-size:.7rem;letter-spacing:.18em;border-bottom:1px solid rgba(163,191,95,.35);padding-bottom:.12rem;transition:color .5s var(--gg-ease)}
.lf-ground .glinks a:hover,.lf-ground .glinks a:focus-visible{color:#d7e7a6}
.lf-ground .gside{transform:translateZ(56px);position:absolute;top:3.35rem;right:1.15rem;width:min(322px,42%);z-index:3;background:linear-gradient(150deg,#102a27,#081714);border:1px solid rgba(196,166,106,.25);border-radius:1.15rem;box-shadow:0 38px 74px -30px rgba(8,23,20,.8),inset 0 1px 0 rgba(255,255,255,.07);padding:1rem 1.05rem .9rem}
.lf-ground .gside::before{content:'';position:absolute;left:8%;right:8%;top:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(215,231,166,.55),transparent)}
.lf-ground .gcapsule{display:flex;align-items:center;gap:.9rem;padding-bottom:.75rem;border-bottom:1px solid rgba(196,166,106,.10);margin-bottom:.75rem}
.lf-ground .wbig{font-size:2.05rem;font-weight:700;color:#d7e7a6;letter-spacing:-.02em;line-height:1;display:flex;align-items:center;gap:.55rem}
.lf-ground .wbig .wico{font-size:1.6rem;color:#c4a66a}
.lf-ground .wside{font-size:.74rem;line-height:1.5;min-width:0;color:#dbe5c9}
.lf-ground .wside b{color:#d7e7a6}
.lf-ground .wdays{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem;margin-top:.75rem}
.lf-ground .wday{text-align:center;padding:.5rem .2rem .45rem;border:1px solid rgba(196,166,106,.16);border-radius:10px;color:#8fa094;font-size:.68rem;letter-spacing:.08em}
.lf-ground .wday i{display:block;margin:.35rem auto .25rem;font-size:.95rem;color:#c4a66a}
.lf-ground .wday b{display:block;color:#d7e7a6;font-size:.8rem;margin:.1rem 0 .15rem}
.lf-ground .wday .wl{display:block;font-size:.58rem;letter-spacing:.05em;color:#7e958b}
.lf-ground .gcompass{display:flex;justify-content:center;margin-top:1.05rem}
.lf-ground .gcompass svg{width:76px;height:76px;filter:drop-shadow(0 2px 10px rgba(196,166,106,.25))}
.lf-ground .watt{width:100%;color:#6b7d74;font-size:.55rem;letter-spacing:.12em;border-top:1px solid rgba(196,166,106,.12);padding-top:.7rem;margin-top:.55rem;text-align:left}
.lf-ground .lf-ground__fail{display:grid;place-items:center;height:100%;color:#7e958b;font-size:.72rem;letter-spacing:.14em;text-align:center;padding:0 1rem}

/* leaflet skin — green-dark tiles */
.lf-ground .leaflet-container{background:#081714;font-family:inherit;font-size:.75rem}
.lf-ground .leaflet-control-attribution{background:rgba(8,23,20,.85)!important;color:#7e958b!important;font-size:9px!important;letter-spacing:.04em}
.lf-ground .leaflet-control-attribution a{color:#a3bf5f!important}
.lf-ground .leaflet-bar,.lf-ground .leaflet-bar a{background:#0b1c19!important;color:#a3bf5f!important;border-color:#1d3a33!important}
.lf-ground .leaflet-bar a:hover{color:#d7e7a6!important;background:#10241f!important}
.lf-ground .leaflet-pane .leaflet-tile{filter:invert(1) hue-rotate(150deg) brightness(.5) contrast(1.18) saturate(.38)!important}
.lf-ground .leaflet-popup-content-wrapper{background:#0b1c19!important;color:#dbe5c9!important;border:1px solid #1d3a33;border-radius:10px}
.lf-ground .leaflet-popup-tip{background:#0b1c19!important;border:1px solid #1d3a33}
.lf-ground .leaflet-popup-content{margin:.8rem 1.1rem;font-size:.82rem;line-height:1.5}
.lf-ground .leaflet-popup-content b{color:#d7e7a6}
.lf-ground .leaflet-popup-close-button{color:#c4a66a!important}

/* crest pin (divIcon) */
.lf-ground .pinmark{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:2px solid #c4a66a;box-shadow:0 0 20px rgba(196,166,106,.5),0 4px 14px rgba(8,23,20,.6);background:#0b1c19}
.lf-ground .pinmark img{width:34px;height:34px;border-radius:50%;object-fit:cover}

/* entrance */
.lf-ground .gstage .gfloor,.lf-ground .gstage .gside{opacity:0;transform-origin:50% 80%}
.lf-ground .gstage.in .gfloor{animation:gfloatUp 1s var(--gg-ease) .18s both}
.lf-ground .gstage.in .gside{animation:gSideUp 1.05s var(--gg-ease) .42s both}
@keyframes gfloatUp{from{opacity:0;transform:translateZ(26px) translateY(34px)}to{opacity:1;transform:translateZ(26px) translateY(0)}}
@keyframes gSideUp{from{opacity:0;transform:translateZ(64px) translateY(52px)}to{opacity:1;transform:translateZ(64px) translateY(0)}}
@media(prefers-reduced-motion:reduce){
  .lf-ground .gstage .gfloor,.lf-ground .gstage .gside{opacity:1}
  .lf-ground .gstage.in .gfloor,.lf-ground .gstage.in .gside{animation:none;opacity:1}
  .lf-ground .gtilt3d{transition:none;transform:none}
}
@media(max-width:900px){
  .lf-ground{padding:64px 5%}
  .lf-ground .gtilt3d{transform:none;transition:none}
  .lf-ground .gfloor{transform:none;padding:.4rem}
  .lf-ground .gplate{padding:.8rem .85rem}
  .lf-ground .gplate-top,.lf-ground .gplate-bot{padding-right:0}
  .lf-ground .mapframe #lfMap{height:280px}
  .lf-ground .gside{position:static;transform:none;margin:1.2rem 0 0;width:100%;padding:1.15rem 1.1rem 1.05rem}
  .lf-ground .wbig{font-size:2.3rem}
  .lf-ground .gstage{perspective:none}
}

/* ============================================================
   SYSTEM-REVIEW FIX 2026-10-29 ? gallery masonry collapse.
   Root cause: .lf-album{height:100%} resolves against shuffle v3's
   collapsed absolute container (percentage feedback loop), so the
   card and its 230px image panel shrink to ~0 (clip-stacked cards).
   Cards must keep intrinsic height when shuffle absolutises them.
   Scoped to the legacy filter grid only (#doctors-grid).
   ============================================================ */
#doctors-grid .doctors-grid.lf-album{height:auto!important}
