/* ============================================================
   Tai-He Elementary School — shared style sheet
   Typography baseline: Yangming JHS (body 20/23 px, Playfair + Inter)
   Palette: school crest (red-deep #a52836, blue-deep #1f3a6e) + warm gold accent
   Motion: reveal-on-scroll via .rvl + IntersectionObserver
   ============================================================ */
:root{
  --red-deep:#a52836;
  --red:#c4334a;
  --red-light:#dd6173;
  --red-soft:#fbe0e3;
  --blue-deep:#1f3a6e;
  --blue:#2d52a0;
  --blue-light:#4d6ba9;
  --blue-soft:#dbe4f2;
  --gold:#d89a3c;
  --gold-soft:#f7e9c8;
  --gold-deep:#9c6e1c;
  --cream:#fdfaf2;
  --cream-warm:#fffcef;
  --ink:#1f2530;
  --ink-soft:#5a606e;
  --line:#ebe5d6;
  --shadow:0 14px 38px -16px rgba(31,58,110,.30);
  --shadow-sm:0 6px 16px -6px rgba(31,58,110,.18);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html{scroll-behavior:smooth;}
body{
  background:#fff;color:var(--ink);
  font-family:'Inter','PingFang TC','Apple LiGothic Medium','Microsoft JhengHei',sans-serif;
  font-size:20px;line-height:1.65;-webkit-font-smoothing:antialiased;
}
@media (min-width:720px){ body{ font-size:23px; } }

.wrap{max-width:1080px;margin:0 auto;padding:0 24px;}
.serif{font-family:'Playfair Display','PingFang TC',serif;}

section{padding:56px 0;border-bottom:1px solid var(--line);}
@media (min-width:720px){ section{ padding:80px 0; } }
section:last-of-type{border-bottom:none;}

.sec__no{font-family:'Playfair Display',serif;color:var(--red);font-size:22px;font-weight:700;letter-spacing:5px;}
@media (min-width:720px){ .sec__no{ font-size:25px; } }
.sec__title{font-family:'Playfair Display',serif;font-size:42px;font-weight:700;color:var(--blue-deep);line-height:1.15;margin-top:6px;letter-spacing:.5px;}
@media (min-width:720px){ .sec__title{ font-size:60px; } }
.sec__title-zh{font-size:20px;color:var(--ink-soft);font-weight:500;margin-top:10px;letter-spacing:1px;}
@media (min-width:720px){ .sec__title-zh{ font-size:24px; } }
.sec__rule{width:96px;height:6px;background:var(--gold);border-radius:3px;margin:22px 0 36px;}

/* ===== TOPBAR ===== */
.topbar{background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);padding:14px 0;position:sticky;top:0;z-index:50;backdrop-filter:blur(8px);}
.topbar__inner{max-width:1080px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:18px;}
.topbar__brand{display:flex;align-items:center;gap:12px;text-decoration:none;}
.topbar__logo{width:46px;height:46px;border-radius:50%;background:#fff;object-fit:contain;padding:3px;box-shadow:0 4px 10px -2px rgba(31,58,110,.18);border:1px solid var(--line);display:block;}
.topbar__name{font-family:'Playfair Display','PingFang TC',serif;font-size:18px;font-weight:700;color:var(--blue-deep);line-height:1.1;}
.topbar__name small{display:block;font-family:'PingFang TC',sans-serif;font-size:12px;font-weight:500;color:var(--ink-soft);margin-top:3px;letter-spacing:.04em;}
.topbar__nav{display:flex;gap:22px;flex-wrap:wrap;justify-content:flex-end;}
.topbar__nav a{color:var(--ink);font-size:14.5px;font-weight:500;letter-spacing:.04em;text-decoration:none;transition:color .2s;}
.topbar__nav a:hover{color:var(--red-deep);}
.topbar__nav a.is-active{color:var(--red-deep);font-weight:700;}
@media (max-width:620px){
  .topbar__inner{flex-direction:column;align-items:flex-start;gap:10px;}
  .topbar__nav{gap:14px;justify-content:flex-start;}
  .topbar__nav a{font-size:13.5px;}
}

/* ===== HERO (Home + Page variants) =====
   Banner pages: photo dominates the hero. No overlay, no dimming.
   Hero is TALL so photo shows fully; text legibility via strong text-shadows
   (jianxin pattern, feedback_banner_no_muddy_overlay). */
.hero{position:relative;color:#fff;overflow:hidden;min-height:360px;padding:60px 0 40px;display:flex;align-items:center;background:radial-gradient(ellipse at 90% 20%, rgba(216,154,60,.22) 0%, transparent 55%),radial-gradient(ellipse at 8% 80%, rgba(31,58,110,.50) 0%, transparent 55%),linear-gradient(135deg, var(--red-deep) 0%, #8e1f2c 55%, var(--blue-deep) 100%);}
@media (min-width:720px){ .hero{min-height:500px;padding:88px 0 60px;} }
.hero[data-banner]{background:var(--banner-img) var(--banner-pos, center 55%)/cover no-repeat, var(--blue-deep);}
.hero[data-banner]::before{display:none;}
.hero[data-banner] h1,
.hero[data-banner] .h1-zh,
.hero[data-banner] .hero__tagline,
.hero[data-banner] .hero__tagline .tagline-zh,
.hero[data-banner] .hero__eyebrow{text-shadow:0 1px 3px rgba(0,0,0,.85), 0 3px 18px rgba(0,0,0,.55);}
.hero[data-banner] h1{text-shadow:0 2px 6px rgba(0,0,0,.85), 0 4px 22px rgba(0,0,0,.55);}
.hero::after{content:"";position:absolute;bottom:0;left:0;right:0;height:5px;background:linear-gradient(90deg, var(--red-deep) 0%, var(--red) 30%, var(--gold) 60%, var(--blue) 100%);pointer-events:none;z-index:2;}
.hero__inner{max-width:1080px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:auto 1fr;gap:36px;align-items:center;position:relative;z-index:1;}
@media (max-width:680px){ .hero__inner{ grid-template-columns:1fr;gap:18px; } }
.hero__logo{width:144px;height:144px;border-radius:50%;background:#fff;object-fit:contain;padding:12px;box-shadow:0 12px 28px rgba(0,0,0,.35);border:3px solid rgba(255,255,255,.55);display:block;}
.hero--page{min-height:280px;padding:44px 0 36px;}
@media (min-width:720px){ .hero--page{min-height:380px;padding:64px 0 48px;} }
.hero--page .hero__logo{width:96px;height:96px;padding:9px;}
.hero__eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.32em;color:var(--gold);font-weight:700;text-transform:uppercase;margin-bottom:14px;padding:5px 14px;background:rgba(0,0,0,.30);border:1px solid rgba(216,154,60,.40);border-radius:99px;}
.hero h1{font-family:'Playfair Display','PingFang TC',serif;font-size:clamp(36px,5.4vw,56px);font-weight:700;color:#fff;line-height:1.05;letter-spacing:.005em;text-shadow:0 2px 18px rgba(0,0,0,.32);}
.hero .h1-zh{font-size:clamp(17px,2.1vw,22px);font-weight:500;letter-spacing:.06em;color:rgba(255,255,255,.92);margin-top:8px;font-family:'PingFang TC',sans-serif;}
.hero--page h1{font-size:clamp(28px,4.4vw,44px);}
.hero--page .h1-zh{font-size:clamp(15px,1.8vw,19px);}
.hero__tagline{margin-top:18px;font-family:'Playfair Display',serif;font-style:italic;font-size:19px;color:#fff;line-height:1.55;max-width:620px;opacity:.96;}
.hero__tagline .tagline-zh{display:block;font-style:normal;font-family:'PingFang TC',sans-serif;font-size:15px;margin-top:6px;color:rgba(255,255,255,.78);letter-spacing:.08em;}
.hero__pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;}
.hero__pills .pill{background:rgba(255,255,255,.14);color:#fff;font-size:13.5px;font-weight:600;letter-spacing:.04em;padding:6px 14px;border-radius:99px;border:1px solid rgba(255,255,255,.26);backdrop-filter:blur(4px);}

/* ===== About / Body ===== */
.about__lead{font-family:'Playfair Display',serif;font-size:30px;font-weight:700;color:var(--blue-deep);line-height:1.35;letter-spacing:.3px;}
@media (min-width:720px){ .about__lead{ font-size:38px; } }
.about__lead-zh{font-size:21px;color:var(--ink-soft);font-weight:500;margin-top:14px;line-height:1.55;}
@media (min-width:720px){ .about__lead-zh{ font-size:25px; } }
.about__body{margin-top:24px;font-size:20px;color:var(--ink);line-height:1.75;}
@media (min-width:720px){ .about__body{ font-size:22px; } }
.about__body p{margin-top:16px;}
.about__body p:first-child{margin-top:0;}
.about__body .zh{color:var(--ink-soft);font-size:18px;margin-top:8px;line-height:1.65;}
@media (min-width:720px){ .about__body .zh{ font-size:20px; } }
.about__body strong{color:var(--blue-deep);font-weight:700;}
.about__body em{color:var(--red-deep);font-style:normal;font-weight:600;}

.stats{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:36px;}
@media (min-width:720px){ .stats{ grid-template-columns:repeat(4,1fr);gap:18px; } }
.stat{background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:18px 14px;text-align:center;}
.stat__num{font-family:'Playfair Display',serif;font-size:32px;font-weight:800;color:var(--red-deep);line-height:1;}
@media (min-width:720px){ .stat__num{ font-size:42px; } }
.stat__lbl{font-size:13px;color:var(--ink-soft);font-weight:600;margin-top:6px;letter-spacing:.5px;}
@media (min-width:720px){ .stat__lbl{ font-size:15px; } }

.quote{margin-top:36px;background:var(--gold-soft);border-left:6px solid var(--gold);padding:24px 28px;border-radius:0 12px 12px 0;}
.quote__text{font-family:'Playfair Display',serif;font-size:24px;font-weight:700;color:var(--gold-deep);line-height:1.4;font-style:italic;}
@media (min-width:720px){ .quote__text{ font-size:30px; } }
.quote__zh{font-size:17px;color:var(--ink);margin-top:10px;line-height:1.55;}
@media (min-width:720px){ .quote__zh{ font-size:20px; } }
.quote--blue{background:var(--blue-soft);border-left-color:var(--blue);}
.quote--blue .quote__text{color:var(--blue-deep);}
.quote--red{background:var(--red-soft);border-left-color:var(--red);}
.quote--red .quote__text{color:var(--red-deep);}

/* ===== Banner figure (page hero supplement) ===== */
.banner-figure{margin-top:32px;background:#fff;border-radius:18px;border:1px solid var(--line);padding:14px;box-shadow:var(--shadow);}
@media (min-width:720px){ .banner-figure{ padding:20px; } }
.banner-figure img{width:100%;height:auto;display:block;border-radius:10px;}
.banner-figure figcaption{margin-top:14px;text-align:center;font-style:italic;font-size:16px;color:var(--ink-soft);line-height:1.5;padding:0 8px;}
@media (min-width:720px){ .banner-figure figcaption{ font-size:18px; } }
.banner-figure figcaption b{color:var(--blue-deep);font-style:normal;}

/* ===== Pillars (4-card grid for principal page) ===== */
.pillars{display:grid;grid-template-columns:1fr;gap:22px;}
@media (min-width:720px){ .pillars{ grid-template-columns:1fr 1fr;gap:28px; } }
.pillar{background:#fff;border-radius:20px;border:1px solid var(--line);padding:32px 28px;box-shadow:var(--shadow-sm);border-top:8px solid var(--red-deep);transition:transform .2s, box-shadow .2s;}
@media (min-width:720px){ .pillar{ padding:40px 36px; } }
.pillar:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.pillar:nth-child(2){border-top-color:var(--blue-deep);}
.pillar:nth-child(3){border-top-color:var(--gold);}
.pillar:nth-child(4){border-top-color:var(--red);}
.pillar:nth-child(5){border-top-color:var(--blue);}
.pillar:nth-child(6){border-top-color:var(--gold-deep);}
.pillar:nth-child(7){border-top-color:var(--red-deep);}
.pillar:nth-child(8){border-top-color:var(--blue-deep);}
.pillar__no{font-family:'Playfair Display',serif;color:var(--red);font-size:18px;font-weight:700;letter-spacing:3px;}
@media (min-width:720px){ .pillar__no{ font-size:21px; } }
.pillar__icon{font-size:52px;line-height:1;margin:6px 0 12px;}
@media (min-width:720px){ .pillar__icon{ font-size:64px; } }
.pillar__title{font-family:'Playfair Display',serif;font-size:24px;font-weight:700;color:var(--blue-deep);line-height:1.2;border-bottom:3px solid var(--gold);padding-bottom:6px;display:inline-block;}
@media (min-width:720px){ .pillar__title{ font-size:30px; } }
.pillar__title-zh{font-size:19px;color:var(--ink);font-weight:600;margin-top:10px;letter-spacing:1.5px;}
@media (min-width:720px){ .pillar__title-zh{ font-size:23px; } }
.pillar__body{font-size:17px;color:var(--ink-soft);margin-top:14px;line-height:1.65;}
@media (min-width:720px){ .pillar__body{ font-size:19px; } }

/* ===== FET feature ===== */
.fet-spot{background:linear-gradient(135deg, #fff 0%, var(--red-soft) 100%);border:2px solid var(--red);border-radius:24px;padding:32px 24px;box-shadow:var(--shadow);display:grid;grid-template-columns:1fr;gap:24px;align-items:center;}
@media (min-width:720px){ .fet-spot{ grid-template-columns:280px 1fr;gap:40px;padding:46px 44px; } }
.fet-spot__photo{width:100%;max-width:280px;aspect-ratio:1/1;border-radius:24px;object-fit:cover;display:block;margin:0 auto;box-shadow:0 12px 30px -12px rgba(165,40,54,.45);border:4px solid #fff;}
.fet-spot__badge{display:inline-block;background:var(--red-deep);color:#fff;font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:6px 14px;border-radius:99px;}
@media (min-width:720px){ .fet-spot__badge{ font-size:13px; } }
.fet-spot__name{font-family:'Playfair Display',serif;font-size:32px;font-weight:800;color:var(--red-deep);line-height:1.1;margin-top:12px;}
@media (min-width:720px){ .fet-spot__name{ font-size:42px; } }
.fet-spot__role{font-size:18px;color:var(--blue-deep);font-weight:600;margin-top:4px;letter-spacing:.4px;}
@media (min-width:720px){ .fet-spot__role{ font-size:20px; } }
.fet-spot__body{font-size:18px;color:var(--ink);line-height:1.7;margin-top:18px;}
@media (min-width:720px){ .fet-spot__body{ font-size:20px; } }
.fet-spot__body .zh{display:block;color:var(--ink-soft);font-size:16px;margin-top:8px;line-height:1.65;}
@media (min-width:720px){ .fet-spot__body .zh{ font-size:18px; } }
.fet-spot__cta{margin-top:22px;display:inline-flex;align-items:center;gap:14px;background:var(--red-deep);color:#fff;padding:18px 26px;border-radius:14px;font-family:'Playfair Display',serif;font-size:17px;font-weight:700;letter-spacing:.4px;text-decoration:none;box-shadow:0 10px 24px -10px rgba(165,40,54,.55);transition:transform .15s, background .15s;}
@media (min-width:720px){ .fet-spot__cta{ font-size:19px; } }
.fet-spot__cta:hover{background:var(--red);transform:translateY(-3px);}
.fet-spot__cta .cta-arrow{font-size:22px;}

/* ===== Unit cards (Lessons grid) ===== */
.units{display:grid;grid-template-columns:1fr;gap:22px;}
@media (min-width:720px){ .units{ grid-template-columns:1fr 1fr 1fr;gap:24px; } }
.unit{background:#fff;border-radius:20px;border:1px solid var(--line);box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column;transition:transform .25s, box-shadow .25s;text-decoration:none;color:inherit;}
.unit:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.unit__hero{height:160px;display:flex;align-items:center;justify-content:center;transition:transform .3s;}
.unit:hover .unit__hero{transform:scale(.98);}
.unit__hero-emoji{font-size:96px;line-height:1;transition:transform .3s;}
.unit:hover .unit__hero-emoji{transform:scale(1.1) rotate(-3deg);}
.unit__body{padding:22px 22px 26px;display:flex;flex-direction:column;flex:1;}
.unit__no{font-family:'Playfair Display',serif;color:var(--ink-soft);font-size:13px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;}
.unit__title{font-family:'Playfair Display',serif;font-size:26px;font-weight:700;color:var(--blue-deep);line-height:1.15;margin-top:6px;}
.unit__title-zh{font-size:17px;color:var(--ink);font-weight:600;margin-top:6px;letter-spacing:.5px;}
.unit__desc{font-size:16px;color:var(--ink-soft);margin-top:14px;line-height:1.6;flex:1;}
.unit__cta{margin-top:18px;display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:700;letter-spacing:.6px;color:var(--red-deep);font-family:'Playfair Display',serif;}
.unit__cta .arrow{transition:transform .2s;}
.unit:hover .unit__cta .arrow{transform:translateX(4px);}
.unit.u-1 .unit__hero{background:linear-gradient(135deg, #fce0e3 0%, #f5b6bf 100%);}
.unit.u-1 .unit__title{color:var(--red-deep);}
.unit.u-2 .unit__hero{background:linear-gradient(135deg, #dbe4f2 0%, #aac0e0 100%);}
.unit.u-2 .unit__title{color:var(--blue-deep);}
.unit.u-3 .unit__hero{background:linear-gradient(135deg, #f7e9c8 0%, #ecd29a 100%);}
.unit.u-3 .unit__title{color:var(--gold-deep);}
.unit--soon{opacity:.62;pointer-events:none;}
.unit--soon .unit__hero{filter:grayscale(.4);}

/* ===== Vocab cards (.vc — per-Word, Dajuang model) =====
   OUTER container .vocab is a 2-column grid on desktop (two cards per row).
   INNER .vc card stacks vertically: head → video → body/exs.
   This matches the canonical Dajuang pattern. */
.vocab{display:grid;grid-template-columns:1fr;gap:32px;margin:40px 0 30px;}
@media (min-width:880px){ .vocab{ grid-template-columns:repeat(2,1fr);gap:36px; } }

.vc{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column;}

.vc__head{padding:24px 26px 18px;min-height:130px;}
@media (min-width:720px){ .vc__head{ padding:30px 32px 22px;min-height:170px; } }
.vc__num{font-family:'Playfair Display',serif;font-size:14px;font-weight:700;letter-spacing:2.5px;color:var(--red);text-transform:uppercase;}
@media (min-width:720px){ .vc__num{ font-size:15px; } }
.vc__term{font-family:'Playfair Display','PingFang TC',serif;font-size:32px;font-weight:700;color:var(--blue-deep);line-height:1.15;margin-top:8px;}
@media (min-width:720px){ .vc__term{ font-size:42px; } }
.vc__pos{font-family:'Playfair Display',serif;font-size:.55em;color:var(--red-deep);font-style:italic;font-weight:600;letter-spacing:1px;margin-left:4px;}
.vc__zh{font-family:'PingFang TC',sans-serif;font-size:22px;color:var(--ink);font-weight:600;margin-top:8px;letter-spacing:1.5px;}
@media (min-width:720px){ .vc__zh{ font-size:28px; } }

/* Video — 16:9 via padding-bottom (Dajuang pattern), iframe absolutely positioned */
.vc__video{position:relative;width:100%;padding-bottom:56.25%;background:#000;}
.vc__video iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;display:block;}

.vc__body{padding:22px 26px 28px;}
@media (min-width:720px){ .vc__body{ padding:26px 32px 32px; } }
.vc__exs{display:flex;flex-direction:column;gap:14px;}
.vc__ex{background:var(--cream);border-radius:0 12px 12px 0;padding:14px 18px;border-left:5px solid var(--gold);}
.vc__ex .en{font-family:'Inter',sans-serif;font-size:18px;color:var(--ink);font-weight:500;line-height:1.5;}
@media (min-width:720px){ .vc__ex .en{ font-size:20px; } }
.vc__ex .en b{color:var(--red-deep);font-weight:700;}
.vc__ex .zh{display:block;font-family:'PingFang TC',sans-serif;font-size:16px;color:var(--ink-soft);margin-top:6px;line-height:1.55;}
@media (min-width:720px){ .vc__ex .zh{ font-size:18px; } }
/* unit-specific accent on vc__ex border + 2nd example color (Dajuang has nth-child(2) different color) */
.unit-page--u1 .vc__ex{border-left-color:var(--red);}
.unit-page--u1 .vc__ex:nth-child(2){border-left-color:var(--red-deep);}
.unit-page--u2 .vc__ex{border-left-color:var(--blue);}
.unit-page--u2 .vc__ex:nth-child(2){border-left-color:var(--blue-deep);}
.unit-page--u3 .vc__ex{border-left-color:var(--gold);}
.unit-page--u3 .vc__ex:nth-child(2){border-left-color:var(--gold-deep);}

/* ===== News cards ===== */
.news-grid{display:grid;grid-template-columns:1fr;gap:14px;}
@media (min-width:720px){ .news-grid{ grid-template-columns:1fr 1fr;gap:18px; } }
.nc{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 22px;box-shadow:var(--shadow-sm);transition:transform .15s, box-shadow .15s;}
.nc:hover{transform:translateY(-2px);box-shadow:var(--shadow);}
.nc__date{font-family:'Playfair Display',serif;color:var(--red-deep);font-size:14px;font-weight:700;letter-spacing:1px;}
.nc__title{font-size:18px;color:var(--ink);font-weight:600;line-height:1.45;margin-top:6px;}
@media (min-width:720px){ .nc__title{ font-size:20px; } }
.nc__zh{font-size:15px;color:var(--ink-soft);margin-top:6px;line-height:1.5;}
@media (min-width:720px){ .nc__zh{ font-size:17px; } }
.nc__org{font-size:13px;color:var(--ink-soft);margin-top:10px;font-weight:500;}

.sec__cta{margin-top:30px;display:inline-flex;align-items:center;gap:10px;color:var(--blue-deep);font-family:'Playfair Display',serif;font-size:18px;font-weight:700;text-decoration:none;letter-spacing:.4px;border-bottom:2px solid var(--gold);padding-bottom:4px;}
.sec__cta:hover{color:var(--red-deep);border-bottom-color:var(--red-deep);}

/* ===== Contact ===== */
.contact{background:linear-gradient(135deg, var(--blue-deep) 0%, var(--blue) 100%);color:#fff;border-radius:24px;padding:48px 36px;box-shadow:var(--shadow);}
@media (min-width:720px){ .contact{ padding:64px 56px; } }
.contact__title{font-family:'Playfair Display',serif;font-size:36px;font-weight:700;line-height:1.15;letter-spacing:.5px;}
@media (min-width:720px){ .contact__title{ font-size:50px; } }
.contact__zh{font-size:19px;color:#cdd4ee;margin-top:8px;}
@media (min-width:720px){ .contact__zh{ font-size:23px; } }
.contact__rule{width:80px;height:5px;background:var(--gold);border-radius:3px;margin:20px 0 28px;}
.contact__grid{display:grid;grid-template-columns:1fr;gap:18px;margin-top:8px;}
@media (min-width:720px){ .contact__grid{ grid-template-columns:1fr 1fr;gap:28px; } }
.contact__row{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.15);}
.contact__icon{font-size:24px;flex-shrink:0;margin-top:2px;color:var(--gold);}
@media (min-width:720px){ .contact__icon{ font-size:28px; } }
.contact__label{font-size:13px;color:#cdd4ee;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;}
.contact__value{font-size:18px;color:#fff;font-weight:600;margin-top:2px;line-height:1.45;}
@media (min-width:720px){ .contact__value{ font-size:22px; } }
.contact__value a{color:#fff;text-decoration:none;border-bottom:1.5px dashed var(--gold);}
.contact__value a:hover{color:var(--gold);}

/* ===== Site footer ===== */
.site-footer{background:var(--blue-deep);color:#fff;padding:48px 0 32px;}
.site-footer__inner{max-width:1080px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:1fr;gap:30px;}
@media (min-width:760px){ .site-footer__inner{ grid-template-columns:1.4fr 1fr 1fr;gap:40px; } }
.site-footer__brand{display:flex;align-items:flex-start;gap:14px;}
.site-footer__brand img{width:60px;height:60px;border-radius:50%;background:#fff;object-fit:contain;padding:5px;border:1px solid rgba(255,255,255,.18);box-shadow:0 6px 16px -4px rgba(0,0,0,.30);}
.site-footer__brand h4{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:#fff;line-height:1.15;}
.site-footer__brand .name-zh{font-size:14px;color:rgba(255,255,255,.78);font-weight:500;margin-top:3px;}
.site-footer__addr{margin-top:10px;font-size:14px;color:rgba(255,255,255,.72);line-height:1.65;}
.site-footer__col h5{font-family:'Playfair Display',serif;font-size:13px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:14px;}
.site-footer__col ul{list-style:none;padding:0;}
.site-footer__col li{margin-bottom:8px;font-size:15px;color:rgba(255,255,255,.85);}
.site-footer__col a{color:rgba(255,255,255,.85);text-decoration:none;border-bottom:1px dashed rgba(216,154,60,.5);transition:color .2s;}
.site-footer__col a:hover{color:var(--gold);}
.site-footer__bottom{max-width:1080px;margin:32px auto 0;padding:18px 24px 0;border-top:1px solid rgba(255,255,255,.16);font-size:13px;color:rgba(255,255,255,.6);text-align:center;line-height:1.7;}
.site-footer__bottom a{color:var(--gold);text-decoration:none;}

/* ===== Reveal-on-scroll ===== */
.rvl{opacity:0;transform:translateY(24px);transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1);}
.rvl.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.rvl{opacity:1!important;transform:none!important;}}
