/* ============================================================
   FONAPS — "Soft Horizon" v7  (Sikeoo-inspired warm peach)
   ONE master stylesheet. Every variable any page references
   is defined here and mapped to the warm coral/peach palette.
   Light + Dark both first-class, contrast-safe.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600&family=Inter:wght@300;400;500;600;700&display=swap');

/* ═══════════════════════════════════════════════════════════
   LIGHT MODE — warm peach / coral (matches reference)
═══════════════════════════════════════════════════════════ */
:root {
  /* ---- Core palette ---- */
  --bg:          #fdf1e6;   /* soft warm peach page background */
  --bg-2:        #fbe7d6;   /* deeper peach for alt sections */
  --surface:     #fffaf5;   /* card surface (warm white) */
  --surface-2:   #fef4ec;   /* alt surface */

  --coral:       #ee7d3a;   /* primary coral accent */
  --coral-2:     #f6a15c;   /* lighter coral */
  --coral-3:     #f8bd8a;   /* soft coral */
  --coral-soft:  #fce0cd;   /* pale coral fill */
  --coral-glow:  rgba(238,125,58,0.16);

  --amber:       #e0961a;   /* warm amber (secondary accent) */
  --amber-2:     #f0b429;

  --deep:        #2b2119;   /* warm dark brown (dark sections/nav) */
  --deep-2:      #201812;   /* darker */
  --deep-3:      #3a2d22;   /* lighter warm brown */

  --ink-c:       #2a2018;   /* text: near-black warm */
  --ink-2c:      #4a3b30;
  --ink-3c:      #7c6b5c;
  --ink-4c:      #a89583;

  --line-c:      #f2dcc8;   /* borders */
  --line-2c:     #e6c9ad;

  /* ---- Shadows / radii / motion ---- */
  --sh-sm:  0 2px 14px rgba(150,90,50,0.07);
  --sh:     0 8px 32px rgba(150,90,50,0.10);
  --sh-lg-c:0 20px 60px rgba(150,90,50,0.15);
  --sh-coral:0 10px 36px rgba(238,125,58,0.26);
  --radius-c:14px;
  --transition-c:all .35s cubic-bezier(.4,0,.2,1);
  --ease:cubic-bezier(.4,0,.2,1);
  --spring:cubic-bezier(.34,1.56,.64,1);

  /* ═══ ALIAS LAYER ═══ every legacy name → warm palette ═══ */
  /* dark tones */
  --navy:        var(--deep);
  --navy-deep:   var(--deep-2);
  --navy-soft:   var(--deep-3);
  --midnight:    var(--deep);
  --midnight-2:  var(--deep-2);
  --midnight-3:  var(--deep-3);
  --forest:      var(--deep);
  --forest-dk:   var(--deep-2);
  --forest-2:    var(--deep-2);
  --forest-3:    var(--deep-3);
  --forest-light:var(--deep-3);
  /* whites / creams / ice */
  --white:       var(--surface);
  --warm-white:  var(--surface);
  --cream:       var(--bg);
  --cream-2:     var(--bg-2);
  --cream-3:     var(--surface-2);
  --cream-card:  var(--surface);
  --cream-dark:  var(--bg-2);
  --cream-soft:  var(--bg-2);
  --cream-border:var(--line-c);
  --cream-hover: var(--surface-2);
  --ice:         var(--bg-2);
  --ice-deep:    var(--line-c);
  --frost:       var(--surface-2);
  --mist:        var(--line-2c);
  --snow:        var(--bg);
  --snow-pure:   var(--surface);
  --sage:        var(--coral-soft);
  --sage-deep:   var(--coral-3);
  --sage-text:   var(--coral);
  --rose:        var(--coral-soft);
  --blush:       var(--coral-3);
  /* gold → coral/amber */
  --gold:        var(--coral);
  --gold-2:      var(--coral-2);
  --gold-3:      var(--coral-3);
  --gold-bright: var(--coral-2);
  --gold-light:  var(--coral-soft);
  --gold-pale:   var(--coral-soft);
  --gold-soft:   var(--coral-soft);
  --gold-border: var(--coral-3);
  --gold-glow:   var(--coral-glow);
  /* text */
  --ink:         var(--ink-c);
  --ink-2:       var(--ink-2c);
  --ink-3:       var(--ink-3c);
  --ink-4:       var(--ink-4c);
  --text:        var(--ink-2c);
  --text-dark:   var(--ink-c);
  --text-body:   var(--ink-2c);
  --text-muted:  var(--ink-3c);
  --text-faint:  var(--ink-4c);
  --muted:       var(--ink-3c);
  /* lines */
  --line:        var(--line-c);
  --line-2:      var(--line-2c);
  --border:      var(--line-c);
  --border-2:    var(--line-2c);
  /* radii */
  --r:           var(--radius-c);
  --radius:      var(--radius-c);
  --radius-sm:   8px;
  --r-sm:        8px;
  --radius-lg:   22px;
  --r-lg:        22px;
  --radius-xl:   34px;
  --r-xl:        34px;
  /* shadows / transition */
  --shadow-sm:   var(--sh-sm);
  --shadow:      var(--sh);
  --shadow-lg:   var(--sh-lg-c);
  --shadow-gold: var(--sh-coral);
  --sh-lg:       var(--sh-lg-c);
  --transition:  var(--transition-c);
  --transition-spring: all .4s cubic-bezier(.34,1.56,.64,1);
  /* blobs */
  --blob-1:      rgba(246,161,92,0.34);
  --blob-2:      rgba(238,125,58,0.24);
  --blob-3:      rgba(252,224,205,0.7);
  --blob-4:      rgba(248,189,138,0.4);
}

/* ═══════════════════════════════════════════════════════════
   DARK MODE — warm dark, coral accents, contrast-safe
═══════════════════════════════════════════════════════════ */
[data-theme="dark"] {
  --bg:          #1a140f;
  --bg-2:        #221a13;
  --surface:     #241c15;
  --surface-2:   #2c2219;

  --coral:       #f6a15c;
  --coral-2:     #f8b878;
  --coral-3:     #fac89a;
  --coral-soft:  #38271b;
  --coral-glow:  rgba(246,161,92,0.14);

  --amber:       #f0b429;
  --amber-2:     #ffd166;

  --deep:        #0f0b07;
  --deep-2:      #0a0705;
  --deep-3:      #1a130d;

  --ink-c:       #f6ede2;
  --ink-2c:      #ded1c2;
  --ink-3c:      #a89986;
  --ink-4c:      #6b5c4c;

  --line-c:      #3a2d22;
  --line-2c:     #4c3c2d;

  --sh-sm:  0 2px 14px rgba(0,0,0,0.35);
  --sh:     0 8px 32px rgba(0,0,0,0.45);
  --sh-lg-c:0 20px 60px rgba(0,0,0,0.55);
  --sh-coral:0 10px 36px rgba(238,125,58,0.22);

  --blob-1:      rgba(246,161,92,0.12);
  --blob-2:      rgba(238,125,58,0.09);
  --blob-3:      rgba(90,66,46,0.34);
  --blob-4:      rgba(120,80,50,0.16);
}

/* ═══ RESET ═══ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;scroll-behavior:smooth;}
body{
  font-family:'Inter',sans-serif;
  background:var(--bg);
  color:var(--ink-2c);
  line-height:1.7;
  overflow-x:hidden;
  position:relative;
  transition:background .5s var(--ease),color .5s var(--ease);
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}

/* ═══ FLOATING 3D BLOBS (reference background spheres) ═══ */
.blob-field{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.blob{position:absolute;border-radius:50%;}
/* big organic coral blob (right) */
.blob-main{
  width:min(46vw,620px);height:min(46vw,620px);
  top:8%;right:-10%;
  background:radial-gradient(circle at 34% 30%,var(--coral-3) 0%,var(--coral-2) 38%,var(--coral) 68%,transparent 74%);
  filter:blur(2px);opacity:.5;
  animation:floatA 26s ease-in-out infinite;
}
/* 3D spheres with top-left highlight */
.blob-sphere{
  background:radial-gradient(circle at 32% 28%,#fff8f2 0%,var(--blob-3) 24%,var(--blob-1) 60%,var(--blob-2) 100%);
  box-shadow:inset -8px -10px 26px rgba(200,110,60,0.18), 0 22px 50px rgba(190,110,60,0.14);
}
.blob-s1{width:180px;height:180px;top:12%;left:-4%;animation:floatB 22s ease-in-out infinite;}
.blob-s2{width:110px;height:110px;top:58%;left:6%;animation:floatC 28s ease-in-out infinite;}
.blob-s3{width:140px;height:140px;bottom:8%;right:14%;animation:floatB 24s ease-in-out infinite reverse;}
.blob-s4{width:76px;height:76px;top:44%;left:46%;animation:floatC 20s ease-in-out infinite;}
.blob-s5{width:96px;height:96px;top:22%;right:30%;animation:floatA 30s ease-in-out infinite;}
@keyframes floatA{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-30px,26px) scale(1.06)}}
@keyframes floatB{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(26px,-34px) scale(1.08)}}
@keyframes floatC{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-22px,-24px) scale(1.05)}}

/* keep content above blobs */
.site-nav,.ticker-bar,.hero-slider,section,footer,.nav-drawer,.page-top{position:relative;z-index:1;}

/* ═══ TYPE ═══ */
h1,h2,h3,h4{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;line-height:1.08;letter-spacing:-.02em;color:var(--ink-c);}
h1{font-size:clamp(3rem,6.5vw,5.2rem);}
h2{font-size:clamp(2.2rem,4.5vw,3.5rem);}
h3{font-size:clamp(1.4rem,2.5vw,2rem);}
p{color:var(--ink-3c);font-size:16px;line-height:1.78;max-width:64ch;}

.eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:'Inter',sans-serif;font-size:10px;font-weight:700;letter-spacing:3.5px;text-transform:uppercase;color:var(--coral);margin-bottom:14px;padding:6px 16px;background:var(--coral-soft);border-radius:100px;}
[data-theme="dark"] .eyebrow{color:var(--coral-2);}

/* ═══ LAYOUT ═══ */
.container{width:100%;max-width:1280px;margin:0 auto;padding:0 40px;}
.section-pad{padding:110px 0;}
.section-pad-sm{padding:72px 0;}
.page-top{padding-top:70px;}

.bg-cream,.bg-snow{background:var(--bg);}
.bg-cream-2,.bg-soft,.bg-ice,.bg-cream-dark{background:var(--bg-2);}
.bg-warm,.bg-white{background:var(--surface);}
.bg-forest,.bg-navy,.bg-midnight{background:var(--deep-2);}
.bg-rose,.bg-sage{background:var(--surface-2);}

.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}

/* ═══ BUTTONS ═══ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:14px 32px;border-radius:100px;font-family:'Inter',sans-serif;font-size:13.5px;font-weight:600;border:1.5px solid transparent;cursor:pointer;transition:all .35s var(--spring);white-space:nowrap;letter-spacing:.3px;}
.btn-gold,.btn-coral,.btn-primary{background:linear-gradient(135deg,var(--coral) 0%,var(--coral-2) 100%);color:#fff;border-color:var(--coral);box-shadow:var(--sh-coral);}
.btn-gold:hover,.btn-coral:hover,.btn-primary:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 14px 44px rgba(238,125,58,.36);}
.btn-forest,.btn-navy,.btn-midnight{background:var(--deep-2);color:#fff;border-color:var(--deep-2);}
.btn-forest:hover,.btn-navy:hover,.btn-midnight:hover{background:var(--deep-3);transform:translateY(-3px);box-shadow:var(--sh-lg-c);}
.btn-outline-cream,.btn-outline-white{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.42);backdrop-filter:blur(8px);}
.btn-outline-cream:hover,.btn-outline-white:hover{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.78);transform:translateY(-3px);}
.btn-sage,.btn-frost,.btn-outline-nav{background:var(--surface);color:var(--ink-c);border-color:var(--line-2c);}
.btn-sage:hover,.btn-frost:hover{background:var(--surface-2);transform:translateY(-2px);}
.btn-outline-navy,.btn-outline-forest{background:transparent;color:var(--coral);border-color:var(--coral);}
.btn-outline-navy:hover,.btn-outline-forest:hover{background:var(--coral);color:#fff;transform:translateY(-3px);}
.btn-group{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}

/* ═══ TICKER ═══ */
.ticker-bar{background:var(--deep-2);overflow:hidden;white-space:nowrap;height:34px;display:flex;align-items:center;position:fixed;top:70px;left:0;right:0;z-index:98;border-bottom:1px solid rgba(255,255,255,.06);}
.ticker-inner{display:inline-block;color:rgba(255,255,255,.72);font-size:12px;font-weight:500;letter-spacing:.5px;animation:ticker 48s linear infinite;padding-left:100%;}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ═══ HERO SLIDER ═══ */
.hero-slider{position:relative;width:100%;min-height:100svh;overflow:hidden;background:var(--deep-2);display:flex;flex-direction:column;}
.hero-slide{position:absolute;inset:0;display:flex;align-items:center;opacity:0;transition:opacity 1.4s var(--ease);pointer-events:none;}
.hero-slide.active{opacity:1;pointer-events:auto;}
.hero-slide-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.06);transition:transform 10s var(--ease);}
.hero-slide.active .hero-slide-bg{transform:scale(1);}
.hero-slide[data-style="overlay-dark"] .hero-slide-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(120deg,rgba(32,24,18,.74) 0%,rgba(32,24,18,.44) 55%,rgba(32,24,18,.20) 100%);}
.hero-slide[data-style="overlay-light"] .hero-slide-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(120deg,rgba(32,24,18,.5) 0%,rgba(32,24,18,.26) 55%,rgba(32,24,18,.08) 100%);}
.hero-slide[data-style="split-left"] .hero-slide-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(32,24,18,.86) 0%,rgba(32,24,18,.5) 44%,transparent 74%);}
.hero-slide[data-style="split-right"] .hero-slide-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(270deg,rgba(32,24,18,.86) 0%,rgba(32,24,18,.5) 44%,transparent 74%);}
.hero-slide[data-style="centered"] .hero-slide-bg::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(32,24,18,.3) 0%,rgba(32,24,18,.76) 100%);}
.hero-slide-inner{position:relative;z-index:2;width:100%;}
.hero-content{max-width:600px;}
.hero-slide[data-style="split-right"] .hero-content{margin-left:auto;}
.hero-slide[data-style="centered"] .hero-content{margin:0 auto;text-align:center;}
.hero-slide[data-style="centered"] .hero-content .btn-group{justify-content:center;}
.hero-badge{display:inline-flex;align-items:center;gap:9px;margin-bottom:28px;background:rgba(238,125,58,.2);border:1px solid rgba(246,161,92,.42);color:var(--coral-2);font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;padding:7px 18px;border-radius:100px;}
.hero-badge-dot{width:6px;height:6px;background:var(--coral-2);border-radius:50%;animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.55)}}
.hero-h1{font-family:'Cormorant Garamond',serif;font-size:clamp(3rem,6vw,5.2rem);font-weight:600;color:#fff;line-height:1.05;letter-spacing:-.03em;margin-bottom:22px;}
.hero-h1 .gold{color:var(--coral-2);font-style:italic;}
.hero-motto{display:flex;align-items:center;gap:16px;margin-bottom:20px;}
.hero-motto-line{width:3px;height:34px;background:linear-gradient(180deg,var(--coral-2),transparent);border-radius:2px;flex-shrink:0;}
.hero-motto-text{font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.45);}
.hero-desc{color:rgba(255,255,255,.74);font-size:17px;line-height:1.82;font-weight:300;max-width:480px;margin-bottom:42px;}
.hero-slide[data-style="centered"] .hero-desc{margin-left:auto;margin-right:auto;}
.hero-stats,.stat-bar{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-c);backdrop-filter:blur(12px);overflow:hidden;}
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);}
.stat-item{padding:22px 14px;text-align:center;border-right:1px solid rgba(255,255,255,.08);}
.stat-item:last-child{border-right:none;}
.stat-num{font-family:'Cormorant Garamond',serif;font-size:2.4rem;font-weight:600;color:var(--coral-2);line-height:1;text-shadow:0 0 24px rgba(238,125,58,.4);}
.stat-label{font-size:10px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.4);margin-top:5px;}

/* Slider controls — unified centered bar */
.hero-controls{position:absolute;bottom:28px;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:center;gap:20px;padding:0 40px;}
.hero-dots{display:flex;gap:10px;align-items:center;}
.hero-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.32);border:none;cursor:pointer;transition:all .3s;padding:0;}
.hero-dot.active{background:var(--coral-2);width:26px;border-radius:4px;}
.hero-arrows{display:flex;gap:10px;}
.hero-arrow{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.28);color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s;backdrop-filter:blur(8px);}
.hero-arrow:hover{background:rgba(238,125,58,.5);border-color:var(--coral-2);transform:scale(1.08);}

/* pedestal shadow under images */
.img-pedestal{position:relative;display:inline-block;width:100%;}
.img-pedestal img{display:block;width:100%;border-radius:var(--radius-c);position:relative;z-index:1;}
.img-pedestal::after{content:'';position:absolute;bottom:-14px;left:10%;right:10%;height:28px;background:radial-gradient(ellipse at center,rgba(0,0,0,.26) 0%,transparent 72%);border-radius:50%;z-index:0;filter:blur(6px);transition:all .4s var(--ease);}
.img-pedestal:hover::after{bottom:-18px;left:8%;right:8%;}
.img-pedestal-warm::after{background:radial-gradient(ellipse at center,var(--coral-glow) 0%,transparent 70%);filter:blur(8px);}

/* ═══ VALUES ═══ */
.values-grid{display:grid;gap:22px;}
.values-grid[data-count="1"]{grid-template-columns:1fr;}
.values-grid[data-count="2"]{grid-template-columns:repeat(2,1fr);}
.values-grid[data-count="3"]{grid-template-columns:repeat(3,1fr);}
.values-grid[data-count="4"]{grid-template-columns:repeat(4,1fr);}
.values-grid[data-count="5"]{grid-template-columns:repeat(3,1fr);}
.values-grid[data-count="6"]{grid-template-columns:repeat(3,1fr);}
.values-grid[data-count="7"]{grid-template-columns:repeat(4,1fr);}
.value-card{background:var(--surface);border:1px solid var(--line-c);border-radius:var(--radius-c);padding:30px 26px;transition:all .35s var(--ease);position:relative;overflow:hidden;box-shadow:var(--sh-sm);}
.value-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2.5px;background:linear-gradient(90deg,var(--coral),var(--coral-2));transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease);}
.value-card:hover{transform:translateY(-6px);box-shadow:var(--sh-lg-c);border-color:var(--line-2c);}
.value-card:hover::before{transform:scaleX(1);}
.value-card-icon{display:none;}
.value-card-num{font-family:'Cormorant Garamond',serif;font-size:3rem;font-weight:400;color:var(--coral);line-height:1;margin-bottom:12px;opacity:.5;display:block;}
.value-card h3{font-family:'Inter',sans-serif;font-size:15px;font-weight:700;color:var(--ink-c);margin-bottom:10px;}
.value-card p{font-size:14px;line-height:1.65;color:var(--ink-3c);max-width:none;}

/* ═══ TEAM ═══ */
.team-card{background:var(--surface);border:1px solid var(--line-c);border-radius:var(--radius-c);overflow:visible;transition:all .35s var(--ease);box-shadow:var(--sh-sm);text-align:center;}
.team-card:hover{transform:translateY(-7px);box-shadow:var(--sh-lg-c);border-color:var(--line-2c);}
.team-card-shadow{height:20px;margin:0 12% -4px;background:radial-gradient(ellipse at center,rgba(0,0,0,.15) 0%,transparent 72%);border-radius:50%;filter:blur(4px);}
.team-card-photo-wrap{position:relative;margin:-1px -1px 0;border-radius:var(--radius-c) var(--radius-c) 0 0;overflow:hidden;}
.team-card-photo-wrap img{width:100%;height:240px;object-fit:cover;object-position:top;display:block;border-radius:var(--radius-c) var(--radius-c) 0 0;transition:transform .5s var(--ease);}
.team-card:hover .team-card-photo-wrap img{transform:scale(1.05);}
.team-card-photo-wrap::after{content:'';position:absolute;bottom:0;left:0;right:0;height:60px;background:linear-gradient(transparent,var(--surface));}
.team-card-body{padding:20px 22px 26px;}
.team-card-name{font-family:'Cormorant Garamond',serif;font-size:19px;font-weight:600;color:var(--ink-c);margin-bottom:3px;}
.team-card-role{font-size:11px;font-weight:700;color:var(--coral);letter-spacing:2px;text-transform:uppercase;margin-bottom:11px;}
.team-card-bio{font-size:13.5px;color:var(--ink-3c);line-height:1.65;margin-bottom:14px;max-width:none;}
.team-card-socials{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;}
.team-social-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--surface-2);border:1px solid var(--line-c);font-size:13px;transition:all .25s;color:var(--ink-3c);}
.team-social-btn:hover{background:var(--coral);border-color:var(--coral);color:#fff;transform:scale(1.15);}

/* ═══ NEWS ═══ */
.news-card{background:var(--surface);border:1px solid var(--line-c);border-radius:var(--radius-c);overflow:visible;transition:all .35s var(--ease);display:flex;flex-direction:column;box-shadow:var(--sh-sm);}
.news-card:hover{transform:translateY(-6px);box-shadow:var(--sh-lg-c);border-color:var(--line-2c);}
.news-card-img-wrap{position:relative;border-radius:var(--radius-c) var(--radius-c) 0 0;overflow:hidden;}
.news-card-img-wrap img{width:100%;height:215px;object-fit:cover;display:block;border-radius:var(--radius-c) var(--radius-c) 0 0;transition:transform .5s var(--ease);}
.news-card:hover .news-card-img-wrap img{transform:scale(1.06);}
.news-card-shadow{height:16px;margin:0 14% -2px;background:radial-gradient(ellipse at center,rgba(0,0,0,.12) 0%,transparent 72%);border-radius:50%;filter:blur(4px);}
.news-card-img{height:215px;overflow:hidden;background:var(--surface-2);border-radius:var(--radius-c) var(--radius-c) 0 0;}
.news-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.news-card:hover .news-card-img img{transform:scale(1.06);}
.news-card-body{padding:26px;flex:1;display:flex;flex-direction:column;}
.tag{display:inline-block;background:var(--coral-soft);color:var(--coral);font-size:9.5px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;padding:4px 12px;border-radius:100px;margin-bottom:13px;}
[data-theme="dark"] .tag{color:var(--coral-2);}
.news-card-body h3{font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-weight:600;color:var(--ink-c);margin-bottom:10px;line-height:1.2;}
.news-card-body p{font-size:14px;line-height:1.72;flex:1;max-width:none;}
.news-card-link{display:inline-flex;align-items:center;gap:6px;margin-top:18px;font-size:12.5px;font-weight:700;color:var(--coral);letter-spacing:.5px;text-transform:uppercase;}
.news-card-link:hover{gap:10px;}

/* ═══ INFO CARD ═══ */
.info-card{background:var(--surface);border:1px solid var(--line-c);border-radius:var(--radius-c);padding:30px 32px;transition:all .35s var(--ease);box-shadow:var(--sh-sm);}
.info-card:hover{transform:translateY(-5px);box-shadow:var(--sh-lg-c);border-color:var(--line-2c);}
.info-card-icon{display:none;}
.info-card h3{font-family:'Cormorant Garamond',serif;font-size:1.5rem;font-weight:600;color:var(--ink-c);margin-bottom:10px;}
.info-card p{font-size:14px;line-height:1.7;max-width:none;}

/* ═══ QUOTE ═══ */
.quote-block{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.13);border-radius:var(--radius-lg);padding:44px;position:relative;backdrop-filter:blur(10px);}
.quote-block::before{content:'\201C';position:absolute;top:-8px;left:32px;font-family:'Cormorant Garamond',serif;font-size:96px;color:var(--coral-2);line-height:1;opacity:.5;}
.quote-text{font-family:'Cormorant Garamond',serif;font-size:20px;line-height:1.75;color:rgba(255,255,255,.85);font-style:italic;font-weight:400;margin-bottom:30px;max-width:none;}
.quote-attribution{display:flex;align-items:center;gap:14px;}
.quote-avatar{width:54px;height:54px;border-radius:50%;border:2.5px solid var(--coral-2);overflow:hidden;background:rgba(255,255,255,.1);flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.quote-avatar img{width:100%;height:100%;object-fit:cover;}
.quote-name{display:block;font-weight:700;color:#fff;font-size:15px;}
.quote-title{display:block;font-size:11.5px;color:var(--coral-2);margin-top:2px;letter-spacing:.5px;}

/* ═══ PAGE HERO (inner pages) ═══ */
.page-hero{background:var(--deep-2);padding:140px 0 72px;position:relative;overflow:hidden;}
.page-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 72% 45%,rgba(238,125,58,.14) 0%,transparent 60%),radial-gradient(ellipse at 12% 85%,rgba(246,161,92,.12) 0%,transparent 55%);pointer-events:none;}
.page-hero-inner{position:relative;z-index:2;}
.page-hero-eyebrow{color:var(--coral-2);background:rgba(238,125,58,.16);}
.page-hero h1{color:#fff;margin:10px 0;}
.page-hero p{color:rgba(255,255,255,.62);max-width:54ch;font-size:17px;}
.page-hero-breadcrumb{display:flex;align-items:center;gap:7px;font-size:12.5px;color:rgba(255,255,255,.38);margin-top:20px;}
.page-hero-breadcrumb a{color:rgba(255,255,255,.55);}
.page-hero-breadcrumb a:hover{color:var(--coral-2);}

/* ═══ MISC COMPONENTS ═══ */
.grade-card{background:var(--deep-2);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-c);padding:26px 20px;color:#fff;text-align:center;transition:all .35s;}
.grade-card:hover{transform:translateY(-5px);border-color:rgba(238,125,58,.35);}
.grade-level{font-size:10px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--coral-2);margin-bottom:8px;}
.grade-name{font-size:17px;font-weight:600;color:#fff;margin-bottom:5px;font-family:'Cormorant Garamond',serif;}
.grade-ages{font-size:12px;color:rgba(255,255,255,.42);}

.subject-tag{display:inline-flex;align-items:center;background:var(--surface-2);border:1px solid var(--line-c);color:var(--ink-2c);font-size:13px;font-weight:500;padding:8px 18px;border-radius:100px;transition:all .3s;}
.subject-tag:hover{background:var(--coral);color:#fff;border-color:var(--coral);transform:translateY(-2px);}
.subjects-cloud{display:flex;flex-wrap:wrap;gap:10px;}

.accordion-item{border-bottom:1px solid var(--line-c);}
.accordion-trigger{width:100%;text-align:left;background:none;border:none;padding:22px 0;font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:600;color:var(--ink-c);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;transition:color .2s;}
.accordion-trigger:hover{color:var(--coral);}
.accordion-icon{font-size:22px;transition:transform .3s;flex-shrink:0;color:var(--coral);}
.accordion-trigger[aria-expanded="true"] .accordion-icon{transform:rotate(45deg);}
.accordion-body{overflow:hidden;max-height:0;transition:max-height .45s ease,padding .3s;}
.accordion-body.open{max-height:700px;padding-bottom:20px;}
.accordion-body p,.accordion-body li{font-size:15px;color:var(--ink-3c);}

.gallery-grid{columns:3;gap:14px;}
.gallery-item{break-inside:avoid;margin-bottom:14px;border-radius:8px;overflow:hidden;cursor:pointer;position:relative;box-shadow:var(--sh-sm);}
.gallery-item img{width:100%;display:block;transition:transform .45s;}
.gallery-item:hover img{transform:scale(1.05);}
.gallery-caption{position:absolute;bottom:0;left:0;right:0;padding:12px 14px;background:linear-gradient(transparent,rgba(32,24,18,.78));color:#fff;font-size:12.5px;font-weight:600;opacity:0;transition:opacity .3s;}
.gallery-item:hover .gallery-caption{opacity:1;}

.staff-card{background:var(--surface);border:1px solid var(--line-c);border-radius:var(--radius-c);overflow:hidden;transition:all .35s;box-shadow:var(--sh-sm);}
.staff-card:hover{transform:translateY(-5px);box-shadow:var(--sh-lg-c);}
.staff-card-photo{height:200px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:48px;overflow:hidden;}
.staff-card-photo img{width:100%;height:100%;object-fit:cover;transition:transform .4s;}
.staff-card:hover .staff-card-photo img{transform:scale(1.05);}
.staff-card-body{padding:20px;}
.staff-card-name{font-family:'Cormorant Garamond',serif;font-weight:600;color:var(--ink-c);font-size:18px;}
.staff-card-role{font-size:11px;color:var(--coral);font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin:4px 0 9px;}
.staff-card-bio{font-size:13px;color:var(--ink-3c);line-height:1.65;max-width:none;}
.staff-dept{display:inline-block;margin-top:10px;background:var(--surface-2);color:var(--ink-3c);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;padding:3px 10px;border-radius:100px;}

.facility-card{border-radius:var(--radius-c);overflow:hidden;background:var(--surface);border:1px solid var(--line-c);transition:all .35s;box-shadow:var(--sh-sm);}
.facility-card:hover{transform:translateY(-5px);box-shadow:var(--sh-lg-c);}
.facility-img{height:220px;overflow:hidden;background:var(--surface-2);display:flex;align-items:center;justify-content:center;}
.facility-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s;}
.facility-card:hover .facility-img img{transform:scale(1.05);}
.facility-body{padding:22px 24px;}
.facility-body h3{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:1.4rem;color:var(--ink-c);margin-bottom:8px;}
.facility-body p{font-size:13.5px;max-width:none;}

.event-item{display:flex;gap:22px;align-items:flex-start;padding:26px;background:var(--surface);border:1px solid var(--line-c);border-radius:var(--radius-c);transition:all .35s;box-shadow:var(--sh-sm);}
.event-item:hover{border-color:rgba(238,125,58,.3);box-shadow:var(--sh);transform:translateY(-3px);}
.event-icon{font-size:36px;flex-shrink:0;width:52px;text-align:center;}
.event-month{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--coral);margin-bottom:5px;}
.event-title{font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:600;color:var(--ink-c);margin-bottom:7px;}
.event-desc{font-size:14px;color:var(--ink-3c);line-height:1.65;max-width:none;}

.contact-card{background:var(--surface);border:1px solid var(--line-c);border-radius:var(--radius-c);padding:28px;display:flex;gap:16px;align-items:flex-start;transition:all .35s;box-shadow:var(--sh-sm);}
.contact-card:hover{box-shadow:var(--sh);transform:translateY(-3px);}
.contact-card-icon{font-size:24px;flex-shrink:0;}
.contact-card-label{font-size:9.5px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--coral);margin-bottom:6px;display:block;}
.contact-card-value{font-size:15px;font-weight:600;color:var(--ink-c);line-height:1.5;}

.map-wrap{border-radius:var(--radius-lg);overflow:hidden;border:2px solid var(--line-c);box-shadow:var(--sh);}
.map-wrap iframe{width:100%;border:0;display:block;min-height:380px;}

.step-item{display:flex;gap:22px;align-items:flex-start;padding-bottom:34px;position:relative;}
.step-item:not(:last-child)::after{content:'';position:absolute;left:19px;top:44px;bottom:0;width:1.5px;background:linear-gradient(var(--line-2c),transparent);}
.step-num{width:40px;height:40px;border-radius:50%;background:var(--coral);color:#fff;font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center;flex-shrink:0;z-index:1;position:relative;}
.step-title{font-weight:700;font-size:16px;color:var(--ink-c);margin-bottom:5px;}
.step-desc{font-size:14px;color:var(--ink-3c);line-height:1.68;max-width:none;}

.lightbox-overlay{position:fixed;inset:0;background:rgba(20,14,10,.96);z-index:9000;display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(10px);}
.lightbox-overlay.open{display:flex;}
.lightbox-overlay img{max-width:90vw;max-height:90vh;border-radius:8px;object-fit:contain;box-shadow:var(--sh-lg-c);}
.lightbox-close{position:absolute;top:20px;right:26px;color:#fff;font-size:32px;cursor:pointer;background:none;border:none;line-height:1;opacity:.65;}
.lightbox-close:hover{opacity:1;}

.prose p{margin-bottom:1.15em;line-height:1.88;}
.prose h2,.prose h3{color:var(--ink-c);margin:1.5em 0 .5em;}
.prose ul{margin:1em 0 1em 1.4em;}
.prose li{margin-bottom:.4em;color:var(--ink-3c);}
.prose strong{color:var(--ink-c);}

.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal.visible{opacity:1;transform:none;}

/* ═══ FOOTER ═══ */
.site-footer{background:var(--deep-2);color:rgba(255,255,255,.58);border-top:1px solid rgba(255,255,255,.05);}
.footer-main{padding:80px 0 50px;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:52px;max-width:1280px;margin:0 auto;padding:0 40px;}
.footer-about p{font-size:14px;line-height:1.78;margin-top:16px;max-width:290px;color:rgba(255,255,255,.48);}
.footer-logo-row{display:flex;align-items:center;gap:12px;}
.footer-crest{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--coral),var(--coral-2));display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;}
.footer-crest img{width:100%;height:100%;object-fit:contain;}
.footer-school-name{font-family:'Cormorant Garamond',serif;font-weight:600;color:#fff;font-size:17px;line-height:1.15;}
.footer-school-sub{font-size:11px;color:var(--coral-2);opacity:.7;}
.footer-motto{display:inline-block;margin-top:14px;font-size:11.5px;font-style:italic;color:var(--coral-2);opacity:.6;}
.footer-col-title{font-size:9.5px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:rgba(255,255,255,.28);margin-bottom:18px;}
.footer-links-list{list-style:none;}
.footer-links-list li{margin-bottom:11px;}
.footer-links-list a{font-size:14px;color:rgba(255,255,255,.48);transition:color .2s;}
.footer-links-list a:hover{color:var(--coral-2);}
.footer-contact-item{display:flex;gap:12px;margin-bottom:16px;align-items:flex-start;}
.footer-contact-icon{font-size:16px;flex-shrink:0;margin-top:1px;}
.footer-contact-label{display:block;font-size:9.5px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.26);margin-bottom:3px;}
.footer-contact-text{font-size:13.5px;color:rgba(255,255,255,.58);line-height:1.5;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.06);padding:22px 0;}
.footer-bottom-inner{max-width:1280px;margin:0 auto;padding:0 40px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;}
.footer-copyright{font-size:12.5px;}
.footer-credit{font-size:11.5px;color:rgba(255,255,255,.22);}

/* ═══ MOUSE TRAIL ═══ */
.fnp-trail-dot{position:fixed;top:0;left:0;pointer-events:none;z-index:99999;border-radius:50%;will-change:transform,opacity;}
#snow-canvas{display:none!important;}

/* ═══ THEME TOGGLE ═══ */
.theme-toggle{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.22);color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;flex-shrink:0;}
.theme-toggle:hover{background:rgba(255,255,255,.2);border-color:var(--coral-2);transform:scale(1.1);}

/* ═══ RESPONSIVE ═══ */
@media(max-width:1024px){
  .container{padding:0 28px;}
  .grid-2{grid-template-columns:1fr;gap:48px;}
  .grid-3{grid-template-columns:1fr 1fr;}
  .grid-4{grid-template-columns:1fr 1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;gap:40px;padding:0 28px;}
  .stat-row{grid-template-columns:repeat(2,1fr);}
  .gallery-grid{columns:2;}
  .values-grid[data-count="3"],.values-grid[data-count="4"],.values-grid[data-count="5"],.values-grid[data-count="6"],.values-grid[data-count="7"]{grid-template-columns:repeat(2,1fr);}
  .blob-main{opacity:.4;}
  .blob-s5,.blob-s4{display:none;}
}
@media(max-width:640px){
  .section-pad{padding:72px 0;}
  .container{padding:0 20px;}
  .grid-3,.grid-4{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .gallery-grid{columns:1;}
  .btn-group{flex-direction:column;align-items:stretch;}
  .stat-row{grid-template-columns:repeat(2,1fr);}
  .values-grid[data-count]{grid-template-columns:repeat(2,1fr);}
  .footer-main{padding:56px 0 36px;}
  .footer-bottom-inner{padding:0 20px;}
  .hero-controls{padding:0 20px;gap:14px;}
  .blob-s2,.blob-s3{opacity:.55;}
}
