
  :root{
    --forest:#0F4C3A;
    --forest-deep:#092E23;
    --forest-soft:#E4EEE7;
    --gold:#C79A31;
    --gold-soft:#F3E6C4;
    --terracotta:#B5573A;
    --cream:#F7F4EC;
    --paper:#FFFFFF;
    --ink:#1B241F;
    --ink-soft:#57625B;
    --line:#DDD6C4;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Work Sans',sans-serif;
    background:var(--cream);
    color:var(--ink);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.disp{font-family:'Fraunces',serif;font-weight:600;letter-spacing:-0.01em;}
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}
  .wrap{max-width:1160px;margin:0 auto;padding:0 32px;}
  .eyebrow{
    font-size:12.5px;letter-spacing:0.14em;text-transform:uppercase;
    color:var(--gold);font-weight:600;
  }

  /* ===== Top utility bar ===== */
  .topbar{
    background:var(--forest-deep);color:#CFE0D6;font-size:12.5px;
  }
  .topbar .wrap{
    display:flex;align-items:center;justify-content:space-between;
    padding:8px 32px;flex-wrap:wrap;gap:6px;
  }
  .topbar .left{display:flex;gap:22px;align-items:center;}
  .topbar .item{display:flex;align-items:center;gap:6px;}
  .topbar .item svg{width:13px;height:13px;stroke:var(--gold-soft);fill:none;stroke-width:1.8;flex-shrink:0;}
  .topbar .right{display:flex;align-items:center;gap:16px;}
  .topbar .pill{
    background:rgba(199,154,49,0.15);border:1px solid rgba(199,154,49,0.4);
    color:var(--gold-soft);padding:4px 12px;border-radius:20px;
    font-weight:600;letter-spacing:0.02em;display:flex;align-items:center;gap:6px;
  }
  .topbar .pill .dot{width:6px;height:6px;border-radius:50%;background:var(--gold);animation:pulseDot 1.6s ease-in-out infinite;}
  @keyframes pulseDot{0%,100%{opacity:1;}50%{opacity:0.35;}}
  .topbar .social{display:flex;gap:10px;}
  .topbar .social a{
    width:24px;height:24px;border-radius:50%;border:1px solid rgba(255,255,255,0.18);
    display:flex;align-items:center;justify-content:center;transition:all 0.2s ease;
  }
  .topbar .social a:hover{background:var(--gold);border-color:var(--gold);}
  .topbar .social svg{width:12px;height:12px;stroke:#CFE0D6;fill:none;stroke-width:1.8;}
  .topbar .social a:hover svg{stroke:var(--forest-deep);}

  /* ===== Nav ===== */
  header{
    position:sticky;top:0;z-index:50;
    background:rgba(255,255,255,0.92);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
    box-shadow:0 1px 0 rgba(0,0,0,0.02);
  }
  .navbar{
    display:flex;align-items:center;justify-content:space-between;
    padding:14px 32px;max-width:1160px;margin:0 auto;
    flex-wrap:nowrap;gap:20px;
  }
  .brand{display:flex;align-items:center;gap:13px;flex-shrink:0;}
  .crest{
    width:50px;height:50px;flex-shrink:0;position:relative;
  }
  .crest svg{width:100%;height:100%;}
  .brand-text .name{font-family:'Fraunces',serif;font-weight:600;font-size:18px;line-height:1.15;color:var(--forest-deep);white-space:nowrap;}
  .brand-text .tag{font-size:11px;color:var(--ink-soft);letter-spacing:0.08em;text-transform:uppercase;margin-top:2px;white-space:nowrap;}
  nav{min-width:0;flex-shrink:1;overflow:hidden;}
  nav ul{list-style:none;display:flex;gap:4px;align-items:center;flex-wrap:nowrap;}
  nav a{
    font-size:13.5px;font-weight:500;color:var(--ink);
    padding:8px 11px;border-radius:6px;position:relative;
    white-space:nowrap;
    transition:color 0.2s ease;
  }
  nav a::after{
    content:"";position:absolute;left:11px;right:11px;bottom:4px;height:2px;
    background:var(--gold);transform:scaleX(0);transform-origin:left;
    transition:transform 0.22s ease;
  }
  nav a:hover{color:var(--forest);}
  nav a:hover::after{transform:scaleX(1);}
  .nav-right{display:flex;align-items:center;gap:16px;flex-shrink:0;}
  .nav-divider{width:1px;height:26px;background:var(--line);flex-shrink:0;}
  .nav-search{
    width:40px;height:40px;border-radius:50%;border:1px solid var(--line);
    display:flex;align-items:center;justify-content:center;flex-shrink:0;
    transition:all 0.2s ease;
  }
  .nav-search:hover{background:var(--forest-soft);border-color:var(--forest);}
  .nav-search svg{width:16px;height:16px;stroke:var(--forest);fill:none;stroke-width:1.8;display:block;}
  .nav-cta{
    background:var(--forest);color:#fff;padding:0 22px;height:40px;border-radius:6px;
    font-size:13.5px;font-weight:600;letter-spacing:0.02em;white-space:nowrap;
    border:1px solid var(--forest);display:inline-flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0;
    box-shadow:0 6px 16px rgba(15,76,58,0.22);
    transition:all 0.2s ease;
  }
  .nav-cta svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;transition:transform 0.2s ease;flex-shrink:0;}
  .nav-cta:hover{background:var(--forest-deep);transform:translateY(-1px);box-shadow:0 10px 20px rgba(15,76,58,0.28);}
  .nav-cta:hover svg{transform:translateX(3px);}
  .navbar .menu-toggle{display:none;}

  /* ===== Hero ===== */
  /* ===== Hero stage — unlimited rotating landing slides, each with a
     background image and its own headline/subtext/CTA, added from the
     admin panel. First slide (no image) falls back to the plain forest
     motto look; any slide with an image gets a photo + gradient treatment. ===== */
  .hero-stage{position:relative;overflow:hidden;height:560px;}
  .hero-slide{
    position:absolute;inset:0;opacity:0;pointer-events:none;z-index:0;
    transition:opacity 0.9s ease;
    height:560px;overflow:hidden;
    background:var(--forest);color:#fff;
  }
  .hero-slide.active{opacity:1;pointer-events:auto;z-index:1;}

  .hero-slide::before{
    content:"";position:absolute;inset:0;
    background-image:
      repeating-linear-gradient(135deg, rgba(255,255,255,0.035) 0 2px, transparent 2px 34px);
    pointer-events:none;
  }
  .hero-slide.has-photo{background-size:cover;background-position:center;}
  .hero-slide.has-photo .photo-bg{
    position:absolute;inset:0;background-size:cover;background-position:center;
    animation:kenburns 18s ease-in-out infinite alternate;
  }
  @keyframes kenburns{
    0%{transform:scale(1);}
    100%{transform:scale(1.08);}
  }
  .hero-slide.has-photo::after{
    content:"";position:absolute;inset:0;z-index:1;
    background:linear-gradient(0deg, rgba(9,46,35,0.92) 0%, rgba(9,46,35,0.5) 45%, rgba(9,46,35,0.28) 100%);
  }

  .hero-slide .wrap{
    position:relative;z-index:2;height:100%;
    display:flex;flex-direction:column;justify-content:center;
    padding-top:48px;padding-bottom:48px;
  }
  .hero-slide-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:56px;align-items:center;width:100%;}

  .hero-eyebrow-badge{
    display:inline-flex;align-items:center;gap:8px;
    background:rgba(199,154,49,0.16);border:1px solid rgba(199,154,49,0.5);
    color:var(--gold-soft);font-size:12px;font-weight:600;letter-spacing:0.04em;
    padding:6px 14px;border-radius:20px;margin-bottom:18px;text-transform:uppercase;
  }
  .hero-eyebrow-badge .live-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);animation:pulseDot 1.6s ease-in-out infinite;}
  .hero-slide .eyebrow{color:var(--gold-soft);}
  .hero-slide h1,.hero-slide h2.slide-heading{
    font-family:'Fraunces',serif;
    font-size:52px;line-height:1.06;margin:16px 0 22px;
    font-weight:600;letter-spacing:-0.015em;color:#fff;
  }
  .hero-slide.has-photo h2.slide-heading{font-size:42px;max-width:640px;}
  .hero-slide h1 em{font-style:normal;color:var(--gold);}
  .hero-slide p.lede{font-size:17px;color:#DCE7DF;max-width:460px;margin-bottom:32px;}
  .hero-actions{display:flex;gap:14px;flex-wrap:wrap;}
  .btn-primary{
    background:var(--gold);color:var(--forest-deep);
    padding:14px 26px;border-radius:3px;font-weight:600;font-size:14.5px;
    display:inline-flex;align-items:center;gap:8px;
  }
  .btn-primary:hover{background:#dcae3f;}
  .btn-ghost{
    border:1px solid rgba(255,255,255,0.4);color:#fff;
    padding:14px 26px;border-radius:3px;font-weight:500;font-size:14.5px;
  }
  .btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,0.06);}

  .hero-panel{
    background:rgba(255,255,255,0.06);
    border:1px solid rgba(255,255,255,0.18);
    border-radius:6px;padding:28px;
  }
  .hero-panel .label{font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:14px;}
  .hero-stat-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  .hero-stat{border-top:1px solid rgba(255,255,255,0.16);padding-top:14px;}
  .hero-stat .num{font-family:'Fraunces',serif;font-size:30px;font-weight:600;color:#fff;}
  .hero-stat .lab{font-size:12.5px;color:#C7D6CC;margin-top:2px;}

  .hero-chip-strip{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;}
  .hero-chip{
    background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.18);
    backdrop-filter:blur(8px);border-radius:8px;padding:12px 18px;
    display:flex;flex-direction:column;gap:2px;min-width:120px;
  }
  .hero-chip .num{font-family:'Fraunces',serif;font-weight:600;font-size:19px;color:#fff;}
  .hero-chip .lab{font-size:11.5px;color:#C7D6CC;}

  /* ===== Hero dots (slide indicator) ===== */
  .hero-dots{
    position:absolute;bottom:22px;left:50%;transform:translateX(-50%);z-index:4;
    display:flex;gap:8px;
  }
  .hero-dot{
    width:26px;height:3px;border-radius:2px;background:rgba(255,255,255,0.3);
    border:none;cursor:pointer;padding:0;transition:background 0.2s ease;
  }
  .hero-dot.active{background:var(--gold);}

  /* ===== Ribbon strip ===== */
  .ribbon{
    background:var(--forest-deep);color:#fff;
    padding:16px 0;
  }
  .ribbon .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:13.5px;}
  .ribbon span{color:var(--gold-soft);font-weight:500;}

  /* ===== Section shell ===== */
  section{padding:88px 0;}
  .section-head{max-width:640px;margin-bottom:48px;}
  .section-head h2{font-size:34px;margin-top:10px;}
  .section-head p{color:var(--ink-soft);font-size:15.5px;margin-top:12px;}
  .center{text-align:center;margin-left:auto;margin-right:auto;}

  /* ===== About ===== */
  .about{background:var(--paper);}
  .about-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:64px;align-items:start;}
  .about-art{
    aspect-ratio:4/5;border-radius:6px;
    background:
      linear-gradient(160deg, var(--forest-soft) 0%, var(--paper) 70%);
    border:1px solid var(--line);
    position:relative;overflow:hidden;
  }
  .about-art .ring{
    position:absolute;border-radius:50%;border:1.5px solid var(--gold);opacity:0.5;
  }
  .about-art .ring.r1{width:220px;height:220px;top:-60px;right:-60px;}
  .about-art .ring.r2{width:140px;height:140px;bottom:40px;left:30px;border-color:var(--forest);}
  .about-art .quote{
    position:absolute;bottom:32px;left:32px;right:32px;
    font-family:'Fraunces',serif;font-style:italic;font-weight:500;
    font-size:20px;color:var(--forest-deep);line-height:1.4;
  }
  .about-copy p{color:var(--ink-soft);margin-bottom:16px;font-size:15.5px;}
  .founding-row{display:flex;gap:36px;margin-top:28px;padding-top:24px;border-top:1px solid var(--line);}
  .founding-row div .num{font-family:'Fraunces',serif;font-size:24px;font-weight:600;color:var(--forest);}
  .founding-row div .lab{font-size:12.5px;color:var(--ink-soft);}

  /* ===== Journey (signature element) ===== */
  .journey{background:var(--forest-soft);}
  .journey-track{
    position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:16px;
  }
  .journey-track::before{
    content:"";position:absolute;top:27px;left:6%;right:6%;height:2px;
    background:repeating-linear-gradient(90deg, var(--gold) 0 10px, transparent 10px 18px);
  }
  .stage{padding:0 18px;text-align:center;position:relative;}
  .stage .dot{
    width:56px;height:56px;border-radius:50%;background:var(--paper);
    border:2px solid var(--forest);margin:0 auto 18px;
    display:flex;align-items:center;justify-content:center;
    font-family:'Fraunces',serif;font-weight:600;color:var(--forest);font-size:15px;
    position:relative;z-index:1;
  }
  .stage h3{font-size:16px;margin-bottom:6px;}
  .stage p{font-size:13.5px;color:var(--ink-soft);}
  .stage .grades{font-size:12px;color:var(--gold);font-weight:600;letter-spacing:0.03em;margin-top:6px;text-transform:uppercase;}

  /* ===== Why DWPS ===== */
  .why{background:var(--paper);}
  .why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px;}
  .why-card{
    background:var(--paper);padding:30px 26px;border-radius:14px;
    border:1px solid var(--line);
    transition:transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
  }
  .why-card:hover{transform:translateY(-5px);box-shadow:0 18px 30px rgba(15,76,58,0.09);border-color:transparent;}
  .why-card .icon-chip{margin-bottom:20px;}
  .why-card h3{font-size:17px;margin-bottom:8px;}
  .why-card p{font-size:14.5px;color:var(--ink-soft);}
  .why-card:nth-child(1) .icon-chip{background:var(--forest-soft);color:var(--forest);}
  .why-card:nth-child(2) .icon-chip{background:var(--gold-soft);color:#8A6412;}
  .why-card:nth-child(3) .icon-chip{background:#F3E4DC;color:var(--terracotta);}
  .why-card:nth-child(4) .icon-chip{background:var(--forest-soft);color:var(--forest);}
  .why-card:nth-child(5) .icon-chip{background:var(--gold-soft);color:#8A6412;}
  .why-card:nth-child(6) .icon-chip{background:#F3E4DC;color:var(--terracotta);}

  /* ===== Bulletin board (scrolls bottom to top) ===== */
  .bulletin{background:var(--paper);}
  .bulletin-shell{
    display:grid;grid-template-columns:0.7fr 1.3fr;gap:0;
    border:1px solid var(--line);border-radius:8px;overflow:hidden;
  }
  .bulletin-side{
    background:var(--forest);color:#fff;padding:36px 32px;
    display:flex;flex-direction:column;justify-content:space-between;
  }
  .bulletin-side .eyebrow{color:var(--gold-soft);}
  .bulletin-side h2{font-size:26px;margin:10px 0 14px;}
  .bulletin-side p{font-size:14px;color:#CFE0D6;}
  .bulletin-side a.view-all{
    margin-top:24px;font-size:13.5px;font-weight:600;color:var(--gold);
    display:inline-flex;align-items:center;gap:6px;
  }
  .bulletin-feed{
    position:relative;height:340px;overflow:hidden;background:var(--cream);
  }
  .bulletin-feed::before,.bulletin-feed::after{
    content:"";position:absolute;left:0;right:0;height:44px;z-index:2;pointer-events:none;
  }
  .bulletin-feed::before{top:0;background:linear-gradient(var(--cream),transparent);}
  .bulletin-feed::after{bottom:0;background:linear-gradient(transparent,var(--cream));}
  .bulletin-track{
    position:absolute;top:0;left:0;right:0;
    animation:scrollUp 18s linear infinite;
  }
  .bulletin-feed:hover .bulletin-track{animation-play-state:paused;}
  @keyframes scrollUp{
    0%{transform:translateY(0);}
    100%{transform:translateY(-50%);}
  }
  .notice{
    display:flex;gap:16px;align-items:flex-start;
    padding:16px 28px;border-bottom:1px solid var(--line);
  }
  .notice .date-chip{
    flex-shrink:0;width:52px;height:52px;border-radius:6px;background:var(--paper);
    border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;
  }
  .notice .date-chip .d{font-family:'Fraunces',serif;font-weight:600;font-size:17px;color:var(--forest);line-height:1;}
  .notice .date-chip .m{font-size:10px;text-transform:uppercase;color:var(--ink-soft);letter-spacing:0.05em;}
  .notice .body h4{font-size:14.5px;margin-bottom:4px;}
  .notice .body p{font-size:12.5px;color:var(--ink-soft);}
  .notice .tag{
    display:inline-block;margin-top:6px;font-size:10.5px;font-weight:600;
    padding:2px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:0.04em;
  }
  .tag.new{background:var(--gold-soft);color:#8A6412;}
  .tag.event{background:var(--forest-soft);color:var(--forest);}

  /* ===== Icon chip ===== */
  .icon-chip{
    width:44px;height:44px;border-radius:10px;
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;
  }
  .icon-chip svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}

  /* ===== Photo gallery (scrapbook style) ===== */
  .gallery{background:var(--forest-deep);color:#fff;position:relative;overflow:hidden;}
  .gallery::before{
    content:"GALLERY";position:absolute;top:-38px;left:50%;transform:translateX(-50%);
    font-family:'Fraunces',serif;font-size:170px;font-weight:700;color:rgba(255,255,255,0.035);
    white-space:nowrap;pointer-events:none;letter-spacing:0.02em;
  }
  .gallery .section-head{position:relative;z-index:1;}
  .gallery .eyebrow{color:var(--gold-soft);}
  .gallery .section-head p{color:#B9CBC1;}
  .scrapbook{
    position:relative;z-index:1;
    display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:56px;
  }
  .polaroid{
    background:#fff;padding:10px 10px 16px;border-radius:3px;
    box-shadow:0 14px 28px rgba(0,0,0,0.24);
    transition:transform 0.25s ease, box-shadow 0.25s ease;
    cursor:pointer;
  }
  .polaroid:hover{transform:translateY(-6px);box-shadow:0 20px 34px rgba(0,0,0,0.32);z-index:2;}
  .polaroid .shot{
    aspect-ratio:4/3;border-radius:2px;position:relative;overflow:hidden;
    display:flex;align-items:center;justify-content:center;
  }
  .polaroid .shot::before{content:"";position:absolute;inset:0;}
  .polaroid .shot svg{width:34px;height:34px;stroke:rgba(255,255,255,0.85);fill:none;stroke-width:1.4;position:relative;z-index:1;}
  .polaroid .cap{
    font-family:'Fraunces',serif;font-style:italic;font-weight:500;
    font-size:13.5px;color:var(--forest-deep);margin-top:10px;text-align:center;
  }
  .shot.g1::before{background:linear-gradient(150deg,#0F4C3A,#2E8A69);}
  .shot.g2::before{background:linear-gradient(150deg,#C79A31,#EAC868);}
  .shot.g3::before{background:linear-gradient(150deg,#B5573A,#DA8763);}
  .shot.g4::before{background:linear-gradient(150deg,#3A6B8A,#6DA3C4);}
  .shot.g5::before{background:linear-gradient(150deg,#6B4A9E,#9A7BC7);}
  .shot.g6::before{background:linear-gradient(150deg,#1B7A5B,#57B893);}
  .gallery-foot{
    position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;
    margin-top:44px;padding-top:24px;border-top:1px solid rgba(255,255,255,0.14);
  }
  .gallery-foot p{font-size:13px;color:#B9CBC1;}
  .gallery-foot a{
    font-size:13.5px;font-weight:600;color:var(--forest-deep);background:var(--gold);
    padding:11px 20px;border-radius:3px;
  }
  .gallery-foot a:hover{background:#dcae3f;}

  /* ===== Birthday wishes (festive) ===== */
  .birthday{background:var(--cream);position:relative;overflow:hidden;padding-top:60px;}
  .balloon-field{position:absolute;top:0;left:0;right:0;height:100%;pointer-events:none;z-index:0;overflow:hidden;}
  .balloon{position:absolute;bottom:-120px;animation:rise linear infinite;opacity:0.9;}
  .balloon svg{width:100%;height:100%;}
  @keyframes rise{
    0%{transform:translateY(0) rotate(-4deg);}
    50%{transform:translateY(-260px) rotate(4deg);}
    100%{transform:translateY(-520px) rotate(-4deg);}
  }
  .bday-shell{
    position:relative;z-index:1;
    background:linear-gradient(180deg,#FDF6E3,var(--gold-soft));
    border-radius:16px;padding:52px 52px 48px;
    display:block;
    border:1px solid #EAD9A6;
    box-shadow:0 24px 48px rgba(199,154,49,0.18);
  }
  .bday-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:36px;flex-wrap:wrap;}
  .bday-shell .eyebrow{color:#8A6412;}
  .bday-shell h2{font-size:32px;margin:10px 0 10px;color:var(--forest-deep);}
  .bday-shell > .bday-top p{font-size:14.5px;color:#6B5A2E;max-width:380px;}
  .bday-month-badge{
    background:var(--forest);color:var(--gold-soft);border-radius:50px;
    padding:10px 22px;font-size:13px;font-weight:600;letter-spacing:0.03em;
    display:flex;align-items:center;gap:8px;flex-shrink:0;
  }
  .bday-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .bday-card{
    background:#fff;border-radius:14px;padding:26px 20px 22px;text-align:center;
    border:1px solid #EFE2BC;position:relative;
    box-shadow:0 10px 24px rgba(139,100,18,0.08);
    transition:transform 0.2s ease;
  }
  .bday-card:hover{transform:translateY(-4px);}
  .bday-card .ribbon-tag{
    position:absolute;top:-11px;left:50%;transform:translateX(-50%);
    background:var(--terracotta);color:#fff;font-size:10.5px;font-weight:600;
    padding:4px 14px;border-radius:20px;letter-spacing:0.03em;text-transform:uppercase;
    white-space:nowrap;
  }
  .bday-avatar{
    width:64px;height:64px;border-radius:50%;margin:14px auto 14px;
    background:var(--forest);color:var(--gold-soft);
    display:flex;align-items:center;justify-content:center;
    font-family:'Fraunces',serif;font-weight:600;font-size:18px;
    border:3px dashed var(--gold);position:relative;
  }
  .bday-card h4{font-size:15px;margin-bottom:3px;}
  .bday-card p{font-size:12.5px;color:var(--ink-soft);}
  .bday-card .cake-line{
    display:inline-flex;align-items:center;gap:5px;
    font-size:11.5px;color:var(--gold);font-weight:600;margin-top:10px;
    background:var(--gold-soft);padding:4px 12px;border-radius:20px;
  }
  .bday-card .cake-line svg{width:13px;height:13px;stroke:var(--gold);fill:none;stroke-width:1.8;}

  /* ===== Infrastructure ===== */
  .infra{background:var(--forest-deep);color:#fff;}
  .infra .section-head p{color:#B9CBC1;}
  .infra .eyebrow{color:var(--gold-soft);}
  .infra-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:8px;}
  .infra-card{
    border-radius:12px;padding:24px 20px;
    background:rgba(255,255,255,0.045);
    border:1px solid rgba(255,255,255,0.12);
    transition:transform 0.2s ease, background 0.2s ease;
  }
  .infra-card:hover{transform:translateY(-4px);background:rgba(255,255,255,0.08);}
  .infra-card .icon-chip{background:rgba(255,255,255,0.08);color:var(--gold);margin-bottom:16px;}
  .infra-card h4{font-size:14.5px;font-weight:600;margin:0 0 6px;}
  .infra-card p{font-size:12.5px;color:#B9CBC1;}

  /* ===== Admissions CTA ===== */
  .cta{
    background:var(--gold-soft);
    border-radius:8px;padding:48px 52px;
    display:flex;align-items:center;justify-content:space-between;gap:32px;
    margin:0 32px;max-width:1160px;margin-left:auto;margin-right:auto;
  }
  .cta h2{font-size:28px;max-width:440px;}
  .cta p{color:var(--ink-soft);margin-top:10px;max-width:420px;font-size:14.5px;}
  .cta .btn-primary{background:var(--forest);color:#fff;}
  .cta .btn-primary:hover{background:var(--forest-deep);}

  /* ===== Testimonial ===== */
  .testimonial{background:var(--cream);}
  .t-inner{max-width:720px;margin:0 auto;text-align:center;}
  .t-inner .quote-mark{font-family:'Fraunces',serif;font-size:64px;color:var(--gold);line-height:1;}
  .t-inner p.quote{font-family:'Fraunces',serif;font-size:22px;font-weight:500;line-height:1.5;color:var(--forest-deep);margin:8px 0 24px;}
  .t-who{font-size:13.5px;color:var(--ink-soft);font-weight:600;}
  .t-who span{color:var(--ink-soft);font-weight:400;}

  /* ===== Footer ===== */
  footer{background:var(--forest-deep);color:#DCE7DF;padding:64px 0 28px;}
  .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,0.12);}
  .foot-brand .brand{margin-bottom:14px;}
  .foot-brand .name{color:#fff;}
  .foot-brand p{font-size:13.5px;color:#A9BEB3;max-width:280px;}
  footer h4{font-size:13px;text-transform:uppercase;letter-spacing:0.08em;color:var(--gold-soft);margin-bottom:16px;}
  footer ul{list-style:none;}
  footer li{margin-bottom:10px;font-size:14px;}
  footer li a:hover{color:#fff;}
  .foot-bottom{display:flex;justify-content:space-between;padding-top:24px;font-size:12.5px;color:#8FA69A;flex-wrap:wrap;gap:8px;}

  /* ===== Responsive ===== */
  @media (max-width:1080px){
    nav ul{display:none;}
  }
  @media (max-width:860px){
    .hero-stage{height:520px;}
    .hero-slide{height:520px;}
    .hero-slide .wrap{padding-top:36px;padding-bottom:36px;}
    .hero-slide.has-photo h2.slide-heading{font-size:30px;}
    .hero-chip-strip{gap:8px;}
    .hero-chip{padding:8px 12px;min-width:90px;}
    .topbar .left{display:none;}
    .topbar .wrap{justify-content:center;padding:8px 20px;}
    nav ul{display:none;}
    .nav-search{display:none;}
    .nav-divider{display:none;}
    .hero-slide-grid{grid-template-columns:1fr;}
    .hero h1{font-size:36px;}
    .about-grid{grid-template-columns:1fr;}
    .journey-track{grid-template-columns:1fr 1fr;row-gap:36px;}
    .journey-track::before{display:none;}
    .why-grid{grid-template-columns:1fr;}
    .infra-grid{grid-template-columns:1fr 1fr;}
    .cta{flex-direction:column;align-items:flex-start;padding:36px 28px;}
    .foot-grid{grid-template-columns:1fr 1fr;}
    .bulletin-shell{grid-template-columns:1fr;}
    .scrapbook{grid-template-columns:repeat(2,1fr);}
    .gallery::before{font-size:80px;}
    .bday-shell{padding:32px 24px;}
    .bday-cards{grid-template-columns:1fr;}
    .balloon{display:none;}
  }
