/* ==========================================================================
   Azon Website System — public theme
   Clean, corporate, lively. Brand green with deep-ink text, generous
   whitespace, soft shadows, and motion that respects prefers-reduced-motion.
   ========================================================================== */

/* ---- fonts (self-hosted) ---------------------------------------------- */
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url("fonts/inter-latin-wght-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url("fonts/inter-latin-ext-wght-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:200 800;font-display:swap;src:url("fonts/plus-jakarta-sans-latin-wght-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:200 800;font-display:swap;src:url("fonts/plus-jakarta-sans-latin-ext-wght-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ---- tokens ------------------------------------------------------------ */
:root{
  --green:#52be94;--green-d:#2f8f6c;--green-dd:#1f6a4f;--green-l:#e6f5ef;--green-ll:#f3faf7;
  --blue:#3f6cb2;--gold:#e6a817;--rose:#e8607a;
  --ink:#17212b;--ink-2:#2c3a48;--body:#3d4852;--muted:#6b7785;--line:#e3e9e6;--line-2:#cfd9d4;
  --bg:#ffffff;--bg-alt:#f6f9f8;--bg-dark:#16241f;--bg-dark-2:#1f3129;
  --radius:16px;--radius-sm:10px;--radius-lg:24px;
  --shadow-sm:0 1px 2px rgba(23,33,43,.06),0 2px 8px rgba(23,33,43,.05);
  --shadow:0 10px 30px -10px rgba(23,33,43,.18);
  --shadow-lg:0 30px 60px -20px rgba(23,33,43,.28);
  --container:1240px;--gutter:clamp(16px,4vw,40px);
  --font-body:"Inter","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC","Noto Sans SC",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-head:"Plus Jakarta Sans","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC","Noto Sans SC",system-ui,sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);--ease-io:cubic-bezier(.65,0,.35,1);
  --dur:.7s;--header-h:88px;--topbar-h:40px;
}
.lang-zh{--font-body:"Inter","PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑","Noto Sans CJK SC","Noto Sans SC",sans-serif;--font-head:"Plus Jakarta Sans","PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑","Noto Sans CJK SC","Noto Sans SC",sans-serif}

/* ---- reset & base ------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}
body{margin:0;font-family:var(--font-body);font-size:16px;line-height:1.7;color:var(--body);background:var(--bg);overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video,iframe{max-width:100%;display:block}
img{height:auto}
a{color:var(--green-d);text-decoration:none;transition:color .2s}
a:hover{color:var(--green-dd)}
button{font:inherit;color:inherit}
h1,h2,h3,h4,h5,h6{font-family:var(--font-head);color:var(--ink);line-height:1.2;margin:0 0 .5em;font-weight:700;letter-spacing:-.01em;text-wrap:balance}
h1{font-size:clamp(30px,4.2vw,52px);font-weight:800}
h2{font-size:clamp(24px,3vw,38px)}
h3{font-size:clamp(19px,2vw,24px)}
h4{font-size:18px}
p{margin:0 0 1.1em}
small{font-size:.86em}
::selection{background:var(--green);color:#fff}
:focus-visible{outline:3px solid rgba(82,190,148,.55);outline-offset:3px;border-radius:4px}
.ico{width:1.1em;height:1.1em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:-.15em;display:inline-block}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.container.narrow,.narrow{max-width:860px}
.center{text-align:center}
.muted{color:var(--muted)}
.empty{padding:40px 20px;text-align:center;color:var(--muted);background:var(--bg-alt);border-radius:var(--radius)}
.skip-link{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;z-index:1000}
.skip-link:focus{left:8px}
[hidden]{display:none!important}
.linklike{background:none;border:0;padding:0;text-align:left;cursor:pointer;color:inherit;font:inherit}
.lead{font-size:1.15em;color:var(--ink-2);line-height:1.6}
.h-accent{position:relative;padding-left:16px;font-size:clamp(20px,2.2vw,26px);margin:1.6em 0 .7em}
.h-accent::before{content:"";position:absolute;left:0;top:.12em;bottom:.12em;width:5px;border-radius:3px;background:linear-gradient(180deg,var(--green),var(--blue))}

/* progress bar */
.page-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:1100;pointer-events:none}
.page-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--green),var(--blue));transition:width .15s linear}

/* ---- buttons ------------------------------------------------------------- */
.btn{display:inline-flex;align-items:center;gap:.5em;padding:12px 22px;border-radius:999px;font-weight:600;font-size:15px;line-height:1.2;border:2px solid transparent;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s,background .25s,color .25s,border-color .25s;text-decoration:none;white-space:nowrap}
.btn .ico{width:1em;height:1em;transition:transform .25s var(--ease)}
.btn:hover .ico{transform:translateX(3px)}
.btn-primary{background:var(--green);color:#fff;box-shadow:0 8px 20px -8px rgba(82,190,148,.7)}
.btn-primary:hover{background:var(--green-d);color:#fff;transform:translateY(-2px);box-shadow:0 14px 26px -10px rgba(47,143,108,.6)}
.btn-outline{background:transparent;color:var(--green-d);border-color:var(--green)}
.btn-outline:hover{background:var(--green);color:#fff;transform:translateY(-2px)}
.btn-white{background:#fff;color:var(--green-dd);box-shadow:var(--shadow-sm)}
.btn-white:hover{background:var(--green-l);color:var(--green-dd);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--ink-2);border-color:var(--line-2)}
.btn-ghost:hover{border-color:var(--ink-2);color:var(--ink)}
.btn-ghost-light{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.5);backdrop-filter:blur(6px)}
.btn-ghost-light:hover{background:rgba(255,255,255,.22);color:#fff}
.btn-lg{padding:15px 28px;font-size:16px}
.btn-sm{padding:8px 16px;font-size:13.5px}
.btn-block{width:100%;justify-content:center}

/* chips */
.chip{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:999px;background:var(--bg-alt);border:1px solid var(--line);color:var(--ink-2);font-size:14px;font-weight:500;transition:all .2s}
.chip:hover{border-color:var(--green);color:var(--green-d);transform:translateY(-1px)}
.chip.is-active{background:var(--ink);border-color:var(--ink);color:#fff}
.chip-sm{padding:4px 11px;font-size:12.5px}
.filter-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.filter-chips-lg .chip{padding:10px 20px;font-size:15px}
.chips-inline{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}

/* ---- header -------------------------------------------------------------- */
.site-header{position:sticky;top:0;z-index:900;background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid transparent;transition:box-shadow .3s,border-color .3s,transform .4s var(--ease)}
.site-header.is-scrolled{box-shadow:0 8px 30px -14px rgba(23,33,43,.25);border-color:var(--line)}
.site-header.is-hidden{transform:translateY(-100%)}
.topbar{background:var(--ink);color:#d9e2de;font-size:13px;height:var(--topbar-h);overflow:hidden;transition:height .35s var(--ease),opacity .3s}
.site-header.is-scrolled .topbar{height:0;opacity:0}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;height:var(--topbar-h);gap:16px}
.topbar-contact{display:flex;align-items:center;gap:18px;overflow:hidden;white-space:nowrap}
.topbar-contact a{color:#d9e2de;display:inline-flex;align-items:center;gap:6px}
.topbar-contact a:hover{color:#fff}
.topbar-phone .ico{color:var(--green)}
.topbar-right{display:flex;align-items:center;gap:14px}
.topbar .social-link{color:#c9d5cf;width:26px;height:26px}
.topbar .social-link:hover{color:#fff;background:rgba(255,255,255,.1)}
.topbar .lang-switch a{color:#c9d5cf}
.topbar .lang-switch a.is-current{color:#fff;background:rgba(255,255,255,.14)}
.navbar-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:var(--header-h);transition:height .35s var(--ease)}
.site-header.is-scrolled .navbar-inner{height:70px}
.brand{display:flex;align-items:center;gap:18px;flex:none}
.brand-logo{height:60px;width:auto;transition:height .35s var(--ease)}
.brand-logo-2{height:54px;width:auto;transition:height .35s var(--ease),opacity .3s}
.site-header.is-scrolled .brand-logo{height:46px}
.site-header.is-scrolled .brand-logo-2{height:40px}
.brand-text{font-family:var(--font-head);font-weight:800;font-size:22px;color:var(--ink)}
.main-nav{display:none;flex:1;justify-content:center}
.nav{display:flex;list-style:none;margin:0;padding:0;gap:2px}
.nav>li{position:relative}
.nav-link{display:inline-flex;align-items:center;gap:4px;padding:10px 14px;border-radius:999px;font-weight:600;font-size:15px;color:var(--ink-2);background:none;border:0;cursor:pointer;transition:background .2s,color .2s;white-space:nowrap}
.nav-link:hover,.nav>li.is-active>.nav-link,.nav>li:focus-within>.nav-link{color:var(--green-dd);background:var(--green-l)}
.nav-caret{width:.9em;height:.9em;transition:transform .25s}
.nav>li:hover>.nav-link .nav-caret,.nav>li:focus-within>.nav-link .nav-caret{transform:rotate(180deg)}
.nav>li.nav-cta>.nav-link{background:var(--green);color:#fff;margin-left:8px}
.nav>li.nav-cta>.nav-link:hover{background:var(--green-d)}
.nav-drop{position:absolute;top:100%;left:0;min-width:260px;padding-top:12px;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s;z-index:20}
.nav>li:hover>.nav-drop,.nav>li:focus-within>.nav-drop,.nav>li.is-open>.nav-drop{opacity:1;visibility:visible;transform:translateY(0)}
.nav-sub{list-style:none;margin:0;padding:10px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);position:relative}
.nav-sub::before{content:"";position:absolute;top:-7px;left:28px;width:12px;height:12px;background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}
.nav-drop-wide .nav-sub{min-width:560px;columns:2;column-gap:10px}
.nav-drop-wide .nav-sub>li{break-inside:avoid}
.nav-sub a,.nav-sub-h{display:block;padding:10px 14px;border-radius:10px;color:var(--ink-2);font-size:14.5px;font-weight:500;line-height:1.35;transition:background .2s,color .2s,padding-left .2s}
.nav-sub a:hover,.nav-sub li.is-active>a{background:var(--green-l);color:var(--green-dd);padding-left:18px}
.nav-sub-h{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;padding-bottom:4px}
.nav-sub2{list-style:none;margin:0 0 6px;padding:0 0 0 14px;border-left:2px solid var(--line)}
.nav-sub2 a{padding:7px 12px;font-size:13.5px;color:var(--muted)}
.nav-tools{display:flex;align-items:center;gap:6px}
.nav-search-btn{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;color:var(--ink-2);transition:background .2s,color .2s}
.nav-search-btn:hover{background:var(--green-l);color:var(--green-dd)}
.nav-tools .lang-switch-compact{display:none}
.nav-burger{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:10px;border:0;background:var(--green-l);border-radius:12px;cursor:pointer}
.nav-burger span{display:block;height:2px;background:var(--ink);border-radius:2px;transition:transform .3s var(--ease),opacity .3s}
.nav-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (min-width:1024px){.main-nav{display:flex}.nav-burger{display:none}.nav-tools .lang-switch-compact{display:none}}
@media (max-width:1023px){.topbar{display:none}.nav-tools .lang-switch-compact{display:inline-flex}:root{--header-h:76px}.brand-logo{height:50px}.brand-logo-2{height:44px}}
@media (max-width:560px){.brand-logo-2{display:none}.brand-logo{height:46px}}

/* language switch */
.lang-switch{display:inline-flex;gap:2px;background:rgba(0,0,0,.04);border-radius:999px;padding:3px}
.lang-link{padding:4px 11px;border-radius:999px;font-size:13px;font-weight:600;color:var(--ink-2);transition:all .2s}
.lang-link.is-current{background:var(--green);color:#fff}
.lang-switch-compact .lang-link{padding:4px 9px}
.lang-switch-block{display:flex;justify-content:center;margin:0 0 16px}

/* off-canvas */
.offcanvas{position:fixed;inset:0;z-index:950;visibility:hidden;pointer-events:none}
.offcanvas.is-open{visibility:visible;pointer-events:auto}
.offcanvas-backdrop{position:absolute;inset:0;background:rgba(23,33,43,.55);border:0;opacity:0;transition:opacity .35s;backdrop-filter:blur(3px)}
.offcanvas.is-open .offcanvas-backdrop{opacity:1}
.offcanvas-panel{position:absolute;top:0;right:0;bottom:0;width:min(420px,92vw);background:#fff;overflow-y:auto;transform:translateX(102%);transition:transform .45s var(--ease);display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}
.offcanvas.is-open .offcanvas-panel{transform:none}
.offcanvas-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}
.offcanvas-close{width:42px;height:42px;border-radius:50%;border:0;background:var(--bg-alt);display:grid;place-items:center;cursor:pointer}
.offcanvas-search{display:flex;margin:14px 18px 6px;border:1px solid var(--line-2);border-radius:999px;overflow:hidden}
.offcanvas-search input{flex:1;border:0;padding:11px 16px;font:inherit;outline:none;min-width:0}
.offcanvas-search button{border:0;background:var(--green);color:#fff;width:48px;display:grid;place-items:center;cursor:pointer}
.mnav{list-style:none;margin:8px 0;padding:0 8px}
.mnav-row{display:flex;align-items:center}
.mnav-link{flex:1;display:block;padding:13px 14px;font-weight:600;color:var(--ink);border-radius:12px;font-size:16px}
.mnav>li.is-active>.mnav-row>.mnav-link{color:var(--green-dd);background:var(--green-l)}
.mnav-toggle{width:44px;height:44px;border:0;background:none;display:grid;place-items:center;color:var(--muted);cursor:pointer}
.mnav-toggle .ico{transition:transform .3s}
.mnav-toggle[aria-expanded="true"] .ico{transform:rotate(180deg)}
.mnav-sub{list-style:none;margin:0 0 6px;padding:0 0 0 14px}
.mnav-sub a,.mnav-sub-h{display:block;padding:10px 14px;color:var(--ink-2);border-radius:10px;font-size:15px}
.mnav-sub li.is-active>a{color:var(--green-dd);font-weight:600}
.mnav-sub-h{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.mnav-sub2{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--line)}
.mnav-sub2 a{font-size:14px;padding:8px 12px;color:var(--muted)}
.offcanvas-foot{margin-top:auto;padding:18px;border-top:1px solid var(--line);background:var(--bg-alt)}
.offcanvas-phone{display:flex;align-items:center;gap:12px;padding:8px 0;color:var(--ink)}
.offcanvas-phone .ico{color:var(--green);width:1.3em;height:1.3em}
.offcanvas-phone span{font-weight:700}
.offcanvas-phone small{display:block;color:var(--muted);font-weight:400;line-height:1.3}
.offcanvas-foot .social{margin-top:12px}

/* search overlay */
.search-overlay{position:fixed;inset:0;z-index:960;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);overflow-y:auto;padding:80px 0 40px;animation:fadeIn .25s var(--ease)}
.search-overlay-form{display:flex;align-items:center;gap:14px;border-bottom:2px solid var(--green);padding:8px 0;max-width:820px;margin:0 auto}
.search-overlay-form .ico{width:28px;height:28px;color:var(--green)}
.search-overlay-form input{flex:1;border:0;background:none;font:inherit;font-size:clamp(22px,3vw,32px);font-family:var(--font-head);font-weight:600;color:var(--ink);outline:none;min-width:0}
.search-overlay-close{border:0;background:var(--bg-alt);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;cursor:pointer}
.search-overlay-results{max-width:820px;margin:24px auto 0}

/* ---- social ------------------------------------------------------------- */
.social{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.social-label{font-size:13px;font-weight:600;color:var(--muted);margin-right:4px}
.social-link{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--bg-alt);color:var(--ink-2);transition:all .25s var(--ease)}
.social-link .ico{width:18px;height:18px}
.social-link:hover{transform:translateY(-3px) scale(1.05);color:#fff}
.social-facebook:hover{background:#1877f2}.social-youtube:hover{background:#ff0000}.social-instagram:hover{background:linear-gradient(45deg,#f58529,#dd2a7b,#8134af)}.social-tiktok:hover{background:#000}.social-linkedin:hover{background:#0a66c2}
.social-sm .social-link{width:28px;height:28px;background:transparent}.social-sm .social-link .ico{width:15px;height:15px}
.social-lg .social-link{width:46px;height:46px}.social-lg .social-link .ico{width:22px;height:22px}

/* ---- hero --------------------------------------------------------------- */
.hero{position:relative;min-height:min(86vh,760px);display:flex;align-items:center;color:#fff;overflow:hidden;isolation:isolate}
.hero-media{position:absolute;inset:-6% 0;z-index:-2}
.hero-media img,.hero-media video,.hero-media picture{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.hero-media picture{display:block}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(105deg,rgba(14,32,26,.86) 0%,rgba(14,32,26,.6) 45%,rgba(14,32,26,.2) 100%)}
.hero-shapes{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.hero-shapes i{position:absolute;border-radius:50%;filter:blur(40px);opacity:.55;animation:drift 18s ease-in-out infinite alternate}
.hero-shapes .s1{width:38vw;height:38vw;right:-8vw;top:-10vw;background:radial-gradient(circle,rgba(82,190,148,.55),transparent 70%)}
.hero-shapes .s2{width:28vw;height:28vw;right:20vw;bottom:-14vw;background:radial-gradient(circle,rgba(63,108,178,.5),transparent 70%);animation-delay:-6s}
.hero-shapes .s3{width:18vw;height:18vw;left:-6vw;bottom:10vh;background:radial-gradient(circle,rgba(230,168,23,.35),transparent 70%);animation-delay:-12s}
@keyframes drift{from{transform:translate(0,0) scale(1)}to{transform:translate(-4vw,3vw) scale(1.15)}}
.hero-inner{position:relative;padding:120px var(--gutter) 110px;max-width:var(--container)}
.hero-kicker{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#bfe9d7;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:7px 14px;margin:0 0 22px;backdrop-filter:blur(6px)}
.hero-title{font-size:clamp(34px,5.6vw,68px);line-height:1.08;color:#fff;max-width:16ch;margin:0 0 22px;text-shadow:0 4px 30px rgba(0,0,0,.25)}
.hero-title .w{display:inline-block;overflow:hidden;vertical-align:bottom}
.hero-title .w>span{display:inline-block;transform:translateY(110%);opacity:0;animation:wordUp .9s var(--ease) forwards}
.hero-text{font-size:clamp(16px,1.4vw,20px);max-width:58ch;color:rgba(255,255,255,.88);line-height:1.65;margin:0 0 30px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.hero-scroll{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);width:26px;height:42px;border:2px solid rgba(255,255,255,.55);border-radius:14px;display:flex;justify-content:center}
.hero-scroll span{width:4px;height:8px;border-radius:2px;background:#fff;margin-top:7px;animation:scrollDot 1.8s infinite}
@keyframes scrollDot{0%{transform:translateY(0);opacity:1}70%{transform:translateY(16px);opacity:0}100%{opacity:0}}
@keyframes wordUp{to{transform:none;opacity:1}}
.hero-plain{min-height:40vh;background:linear-gradient(120deg,var(--green-dd),var(--blue))}
@media (max-width:767px){.hero{min-height:78vh}.hero-inner{padding:90px var(--gutter) 90px}.hero-media img{object-position:center 40%}.hero-actions .btn{width:100%;justify-content:center}}

/* ---- sections ------------------------------------------------------------ */
.section{padding:clamp(56px,7vw,100px) 0;position:relative}
.section-alt{background:var(--bg-alt)}
.section-dark{background:var(--bg-dark);color:#cfe0d8}
.section-dark .section-title,.section-dark h2,.section-dark h3,.section-dark .card-title a,.section-dark .card-title .linklike{color:#fff}
.section-dark .section-lead,.section-dark .kicker,.section-dark .card-meta{color:#9fb8ad}
.section-dark .card{background:var(--bg-dark-2);border-color:rgba(255,255,255,.08)}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:clamp(28px,4vw,44px)}
.section-head>div{max-width:720px}
.section-head .btn{flex:none}
@media (max-width:640px){.section-head{flex-direction:column;align-items:flex-start}}
.kicker{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--green-d);margin:0 0 12px}
.kicker::before{content:"";width:22px;height:3px;border-radius:2px;background:var(--green)}
.section-title{margin:0 0 10px}
.section-lead{color:var(--muted);font-size:17px;margin:0}
.section-title.center{text-align:center}

/* 20A band (migrated HTML blocks, kept intact) */
.section-20a{background:radial-gradient(1200px 500px at 20% 0%,rgba(82,190,148,.10),transparent 60%),radial-gradient(900px 500px at 90% 100%,rgba(63,108,178,.10),transparent 60%),#fff}
.section-20a .block{margin:0 0 40px}
.block-20a .block-body{font-size:17px}

/* stats */
.section-stats{background:linear-gradient(135deg,var(--green-dd),var(--green-d) 60%,var(--blue));color:#fff;overflow:hidden}
.section-stats::after{content:"";position:absolute;inset:auto -10% -60% auto;width:60vw;height:60vw;border-radius:50%;background:rgba(255,255,255,.06)}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;position:relative}
.stat{text-align:center;padding:26px 16px;border-radius:var(--radius);background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(8px)}
.stat-value{font-family:var(--font-head);font-size:clamp(38px,5vw,60px);font-weight:800;line-height:1;letter-spacing:-.02em}
.stat-label{margin-top:8px;color:rgba(255,255,255,.85);font-size:15px}

/* cards */
.cards{display:grid;gap:26px;grid-template-columns:repeat(1,1fr)}
@media (min-width:600px){.cards-2,.cards-3,.cards-4,.cards-5{grid-template-columns:repeat(2,1fr)}}
@media (min-width:940px){.cards-3{grid-template-columns:repeat(3,1fr)}.cards-4{grid-template-columns:repeat(4,1fr)}.cards-5{grid-template-columns:repeat(4,1fr)}}
@media (min-width:1200px){.cards-5{grid-template-columns:repeat(5,1fr)}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s;position:relative}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:transparent}
.card-media{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:var(--green-l);border:0;padding:0;width:100%;cursor:pointer}
.card-media-tall{aspect-ratio:4/3}
.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease),filter .5s}
.card:hover .card-media img{transform:scale(1.07)}
.card-media-empty{display:grid;place-items:center;width:100%;height:100%;color:var(--green)}
.card-media-empty .ico{width:44px;height:44px;stroke-width:1.4}
.card-date{position:absolute;left:14px;top:14px;background:#fff;color:var(--ink);border-radius:12px;padding:8px 10px;text-align:center;line-height:1;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:3px;min-width:52px}
.card-date b{font-family:var(--font-head);font-size:20px;font-weight:800}
.card-date span{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
.card-body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:8px;flex:1}
.card-kicker{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--green-d);margin:0}
.card-title{font-size:18px;margin:0;line-height:1.35}
.card-title a,.card-title .linklike{color:var(--ink)}
.card-title a:hover,.card-title .linklike:hover{color:var(--green-d)}
.card-meta{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13.5px;margin:0}
.card-meta .ico{color:var(--green)}
.card-text{color:var(--body);font-size:14.5px;margin:0;flex:1}
.card-more{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:14px;margin-top:4px}
.card-more .ico{transition:transform .25s}
.card:hover .card-more .ico{transform:translateX(4px)}
/* album card extras */
.album-count{position:absolute;right:12px;top:12px;background:rgba(23,33,43,.7);color:#fff;font-size:12.5px;font-weight:600;border-radius:999px;padding:5px 10px;display:inline-flex;align-items:center;gap:5px;backdrop-filter:blur(4px)}
.album-open{position:absolute;left:0;right:0;bottom:0;padding:14px;color:#fff;font-weight:600;font-size:14px;display:flex;align-items:center;gap:6px;background:linear-gradient(0deg,rgba(23,33,43,.75),transparent);opacity:0;transform:translateY(8px);transition:all .35s var(--ease)}
.card:hover .album-open{opacity:1;transform:none}
/* video card */
.video-thumb img{filter:saturate(.9)}
.play-btn{position:absolute;left:50%;top:50%;width:64px;height:64px;transform:translate(-50%,-50%);border-radius:50%;background:rgba(255,255,255,.92);color:var(--green-dd);display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.3);transition:transform .3s var(--ease),background .3s}
.play-btn .ico{width:26px;height:26px;fill:currentColor;stroke:none;margin-left:3px}
.card:hover .play-btn{transform:translate(-50%,-50%) scale(1.1);background:var(--green);color:#fff}
.video-duration{position:absolute;right:10px;bottom:10px;background:rgba(0,0,0,.75);color:#fff;font-size:12px;padding:3px 8px;border-radius:6px}

/* service cards */
.service-cards{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.service-card{position:relative;display:flex;flex-direction:column;gap:10px;padding:30px 26px 26px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);color:var(--body);transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .3s;overflow:hidden;transform-style:preserve-3d}
.service-card::before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,var(--green-l),transparent 60%);opacity:0;transition:opacity .4s}
.service-card:hover{transform:translateY(-8px);box-shadow:var(--shadow);border-color:rgba(82,190,148,.5)}
.service-card:hover::before{opacity:1}
.service-card>*{position:relative}
.service-icon{width:58px;height:58px;border-radius:18px;background:linear-gradient(135deg,var(--green),var(--green-d));color:#fff;display:grid;place-items:center;box-shadow:0 10px 24px -10px rgba(47,143,108,.7);transition:transform .4s var(--ease)}
.service-icon .ico{width:26px;height:26px}
.service-card:hover .service-icon{transform:rotate(-6deg) scale(1.08)}
.service-card h3{font-size:19px;margin:6px 0 0;color:var(--ink)}
.service-card p{font-size:14.5px;color:var(--muted);margin:0}
.service-sub{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.service-sub li{font-size:12px;color:var(--ink-2);background:var(--bg-alt);border-radius:999px;padding:4px 10px}
.service-sub .more{background:var(--green-l);color:var(--green-dd);font-weight:700}
.service-more{margin-top:auto;padding-top:10px;display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--green-d)}
.service-more .ico{transition:transform .3s}
.service-card:hover .service-more .ico{transform:translateX(5px)}
.services-full{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:clamp(40px,6vw,70px);padding-top:clamp(30px,4vw,50px);border-top:1px solid var(--line)}
.services-full h3{font-size:17px}
.services-full ul{list-style:none;margin:0;padding:0}
.services-full li{padding:6px 0;border-bottom:1px dashed var(--line);font-size:14.5px}
.services-full li a{color:var(--body)}
.services-full li a:hover{color:var(--green-d)}

/* quotes */
.section-quotes{overflow:hidden}
.quotes-track{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.quote-card{margin:0;padding:28px 26px 24px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);position:relative;display:flex;flex-direction:column;gap:14px;transition:transform .35s var(--ease),box-shadow .35s}
.quote-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.quote-mark{width:38px;height:38px;color:var(--green);fill:currentColor;stroke:none;opacity:.6}
.quote-card blockquote{margin:0;font-size:15.5px;line-height:1.75;color:var(--ink-2);flex:1}
.quote-card figcaption{display:flex;align-items:center;gap:12px;font-weight:600;font-size:14px;color:var(--ink)}
.quote-card figcaption img{width:44px;height:44px;border-radius:50%;object-fit:cover}
.section-alt .quote-card{background:#fff}

/* marquee */
.section-marquee{padding-bottom:0}
.marquee{overflow:hidden;position:relative;padding:20px 0 60px;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-track{display:flex;gap:18px;width:max-content;animation:marquee 60s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-item{flex:none;width:220px;border-radius:14px;overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .35s var(--ease)}
.marquee-item:hover{transform:translateY(-6px) rotate(-1deg)}
.marquee-item img{width:100%;height:275px;object-fit:cover}
@keyframes marquee{to{transform:translateX(-50%)}}

/* CTA */
.section-cta{position:relative;padding:clamp(60px,8vw,110px) 0;background:var(--ink);color:#fff;overflow:hidden;isolation:isolate}
.section-cta::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,var(--green-dd),var(--green-d) 45%,var(--blue));opacity:.95;z-index:-2}
.cta-shapes i{position:absolute;border-radius:50%;background:rgba(255,255,255,.08);animation:float 12s ease-in-out infinite;z-index:-1}
.cta-shapes i:nth-child(1){width:320px;height:320px;left:-120px;top:-140px}
.cta-shapes i:nth-child(2){width:200px;height:200px;right:8%;bottom:-100px;animation-delay:-4s}
.cta-shapes i:nth-child(3){width:120px;height:120px;right:30%;top:-40px;animation-delay:-8s}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-24px)}}
.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:32px}
.cta-text h2{color:#fff;font-size:clamp(26px,3.4vw,42px);margin:0 0 10px}
.cta-text p{color:rgba(255,255,255,.88);font-size:17px;max-width:56ch;margin:0}
.cta-actions{display:flex;flex-wrap:wrap;gap:12px;flex:none}
@media (max-width:860px){.cta-inner{flex-direction:column;align-items:flex-start}}
.prefooter .section-cta{padding:clamp(40px,5vw,64px) 0}

/* html blocks */
.section-html .block-title{font-size:clamp(22px,2.6vw,32px);margin-bottom:20px}
.block-video .block-body{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.block-awards .block-body img{display:inline-block;height:80px;width:auto;margin:10px 18px;filter:grayscale(.2);transition:filter .3s,transform .3s}
.block-awards .block-body img:hover{filter:none;transform:scale(1.06)}
.block-awards .block-body{text-align:center}

/* ---- page hero ------------------------------------------------------------ */
.page-hero{position:relative;padding:clamp(40px,6vw,72px) 0 clamp(34px,4vw,52px);background:linear-gradient(180deg,var(--green-ll),#fff);overflow:hidden;isolation:isolate}
.page-hero::after{content:"";position:absolute;right:-8%;top:-40%;width:44vw;height:44vw;max-width:620px;max-height:620px;border-radius:50%;background:radial-gradient(circle,rgba(82,190,148,.18),transparent 65%);z-index:-1}
.page-hero.has-cover{color:#fff;padding:clamp(80px,10vw,140px) 0 clamp(40px,5vw,70px);min-height:380px;display:flex;align-items:flex-end}
.page-hero-bg,.post-hero-bg{position:absolute;inset:-10% 0;z-index:-2}
.page-hero-bg img,.post-hero-bg img{width:100%;height:100%;object-fit:cover}
.page-hero.has-cover::before,.post-hero.has-cover::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(14,32,26,.35),rgba(14,32,26,.8))}
.page-hero.has-cover .page-title,.post-hero.has-cover .page-title,.page-hero.has-cover .page-subtitle{color:#fff}
.page-hero.has-cover .kicker,.post-hero.has-cover .kicker{color:#bfe9d7}
.page-hero.has-cover .breadcrumbs a,.post-hero.has-cover .breadcrumbs a,.page-hero.has-cover .breadcrumbs span,.post-hero.has-cover .breadcrumbs span,.post-hero.has-cover .kicker a{color:rgba(255,255,255,.85)}
.page-title{margin:0;font-size:clamp(28px,3.8vw,48px)}
.page-subtitle{margin:12px 0 0;font-size:clamp(16px,1.5vw,20px);color:var(--muted);max-width:70ch}
.breadcrumbs{font-size:13.5px;margin-bottom:18px}
.breadcrumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 8px}
.breadcrumbs li+li::before{content:"›";color:var(--muted);margin-right:8px}
.breadcrumbs a{color:var(--muted)}
.breadcrumbs a:hover{color:var(--green-d)}
.breadcrumbs span{color:var(--ink-2);font-weight:600}
.post-hero{position:relative;padding:clamp(44px,6vw,80px) 0 clamp(30px,4vw,50px);background:linear-gradient(180deg,var(--green-ll),#fff);isolation:isolate}
.post-hero.has-cover{color:#fff;padding:clamp(120px,16vw,220px) 0 clamp(40px,5vw,70px);min-height:min(60vh,560px);display:flex;align-items:flex-end}
.post-meta{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:16px;font-size:14.5px;color:var(--muted)}
.post-hero.has-cover .post-meta{color:rgba(255,255,255,.85)}
.post-meta span{display:inline-flex;align-items:center;gap:7px}
.post-meta .ico{color:var(--green)}

/* ---- layouts ------------------------------------------------------------- */
.layout-sidebar{display:grid;gap:clamp(30px,4vw,56px);grid-template-columns:minmax(0,1fr) 320px;align-items:start}
.layout-single{max-width:900px}
@media (max-width:1023px){.layout-sidebar{grid-template-columns:1fr}.sidebar{order:2}}
.main-col{min-width:0}
.sidebar{display:flex;flex-direction:column;gap:24px}
.sidebar[data-sticky]{position:sticky;top:calc(var(--header-h) + 8px)}
@media (max-width:1023px){.sidebar[data-sticky]{position:static}}
.side-nav,.side-card,.contact-card,.sidebar .block{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px 22px 20px}
.block-title{font-size:15px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 14px;font-weight:700}
.side-nav ul{list-style:none;margin:0;padding:0}
.side-nav li a{display:block;padding:9px 12px;border-radius:10px;color:var(--ink-2);font-size:14.5px;font-weight:500;transition:all .2s;position:relative}
.side-nav li a:hover{background:var(--bg-alt);color:var(--green-d);padding-left:16px}
.side-nav li.is-current>a{background:var(--green-l);color:var(--green-dd);font-weight:700}
.side-nav li ul{margin:2px 0 4px 14px;border-left:2px solid var(--line);display:none}
.side-nav li.is-open>ul,.side-nav li.is-current>ul{display:block}
.side-nav li ul a{font-size:13.5px;color:var(--muted);padding:7px 12px}
.year-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.year-list a{display:inline-block;padding:5px 11px;border-radius:999px;background:var(--bg-alt);color:var(--ink-2);font-size:13px;font-weight:600}
.year-list a:hover{background:var(--green);color:#fff}
.year-list small{opacity:.7}
.contact-line{display:flex;align-items:flex-start;gap:12px;padding:8px 0;color:var(--ink-2);font-size:14.5px;line-height:1.45;margin:0}
.contact-line .ico{color:var(--green);margin-top:3px;width:1.2em;height:1.2em}
.contact-line b{display:block;color:var(--ink)}
.contact-line small{color:var(--muted);display:block;line-height:1.3}
.contact-card .btn{margin:12px 0}
.block-list .block-body{max-height:520px;overflow:auto;font-size:14px;padding-right:6px}
.block-media video{border-radius:12px}

/* ---- prose ---------------------------------------------------------------- */
.prose{font-size:17px;line-height:1.85;color:var(--body)}
.prose>*:first-child{margin-top:0}
.prose h2{margin:1.8em 0 .7em;font-size:clamp(22px,2.4vw,30px)}
.prose h3{margin:1.5em 0 .6em;font-size:clamp(19px,2vw,24px)}
.prose h4{margin:1.3em 0 .5em}
.prose p{margin:0 0 1.25em}
.prose img{border-radius:14px;margin:1.2em auto;box-shadow:var(--shadow-sm)}
.prose img.az-img{opacity:0;transition:opacity .6s var(--ease),transform .6s var(--ease);transform:translateY(8px)}
.prose img.az-img.is-loaded,.no-js .prose img.az-img{opacity:1;transform:none}
.prose img[style*="float: left"],.prose img[style*="float:left"]{margin:.4em 1.6em 1em 0}
.prose img[style*="float: right"],.prose img[style*="float:right"]{margin:.4em 0 1em 1.6em}
.prose ul,.prose ol{padding-left:1.4em;margin:0 0 1.25em}
.prose li{margin:.35em 0}
.prose li::marker{color:var(--green-d);font-weight:700}
.prose blockquote{margin:1.6em 0;padding:18px 24px;border-left:5px solid var(--green);background:var(--green-ll);border-radius:0 14px 14px 0;font-size:1.05em;color:var(--ink-2)}
.prose hr{border:0;border-top:1px solid var(--line);margin:2.4em 0}
.prose a{text-decoration:underline;text-decoration-color:rgba(82,190,148,.5);text-underline-offset:3px}
.prose a:hover{text-decoration-color:var(--green-d)}
.prose a.btn{text-decoration:none}
.prose iframe{width:100%;border:0;border-radius:14px}
.prose .embed-wrap{position:relative;aspect-ratio:16/9;margin:1.4em 0;border-radius:14px;overflow:hidden;background:#000}
.prose .embed-wrap iframe{position:absolute;inset:0;width:100%;height:100%}
.prose .table-scroll{overflow-x:auto;margin:1.4em 0;border-radius:14px;border:1px solid var(--line);-webkit-overflow-scrolling:touch}
.prose table{width:100%;border-collapse:collapse;font-size:15px;min-width:520px}
.prose th,.prose td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.prose thead th,.prose tr:first-child td[style*="background"]{background:var(--bg-alt)}
.prose tr:last-child td{border-bottom:0}
.prose video{width:100%;border-radius:14px;margin:1.2em 0}
.prose audio{width:100%;margin:.6em 0}
.prose .h-accent{padding-left:16px}
.prose sup{font-size:.7em}
.prose .clear,.prose [style*="clear: both"]{clear:both}
.prose figure{margin:1.4em 0}
.prose figcaption{font-size:14px;color:var(--muted);text-align:center;margin-top:8px}
.prose-services h2{scroll-margin-top:110px}
.prose [class*="animated"],.prose .animated{opacity:1}
.yt-lite{position:relative;aspect-ratio:16/9;background:#000;border-radius:14px;overflow:hidden;cursor:pointer;margin:1.4em 0}
.yt-lite img{width:100%;height:100%;object-fit:cover;opacity:.9;transition:transform .5s var(--ease),opacity .3s}
.yt-lite:hover img{transform:scale(1.04);opacity:1}
.yt-play{position:absolute;left:50%;top:50%;width:72px;transform:translate(-50%,-50%);filter:drop-shadow(0 8px 20px rgba(0,0,0,.4));transition:transform .3s var(--ease)}
.yt-lite:hover .yt-play{transform:translate(-50%,-50%) scale(1.08)}
.yt-lite iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.toc{background:var(--bg-alt);border-radius:var(--radius);padding:20px 24px;margin:0 0 28px;font-size:14.5px}
.toc b{display:block;margin-bottom:8px;color:var(--ink);font-size:13px;text-transform:uppercase;letter-spacing:.08em}
.toc ol{margin:0;padding-left:1.2em;columns:2;column-gap:30px}
.toc li{margin:4px 0;break-inside:avoid}
@media (max-width:640px){.toc ol{columns:1}}
.children-block{margin-top:40px}
.page-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.page-list li{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 20px;transition:all .3s var(--ease)}
.page-list li:hover{border-color:var(--green);transform:translateX(6px);box-shadow:var(--shadow-sm)}
.page-list li a{display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:600;color:var(--ink)}
.page-list li a .ico{color:var(--green)}
.page-list li p{margin:6px 0 0;font-size:14px;color:var(--muted)}

/* share, prev/next */
.share{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:40px 0 0;padding-top:24px;border-top:1px solid var(--line)}
.share-label{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-right:6px}
.share-btn{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink-2);cursor:pointer;transition:all .25s var(--ease)}
.share-btn:hover{background:var(--green);border-color:var(--green);color:#fff;transform:translateY(-3px)}
.share-btn.is-done{background:var(--green-dd);border-color:var(--green-dd);color:#fff}
.prevnext{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:36px}
.album20-nav{grid-template-columns:1fr auto 1fr;align-items:center}
.album20-pos{font-weight:700;color:var(--muted);font-size:14px}
.pn{display:flex;flex-direction:column;gap:4px;padding:16px 20px;background:#fff;border:1px solid var(--line);border-radius:14px;color:var(--ink);transition:all .3s var(--ease)}
.pn small{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.pn span{font-weight:600;line-height:1.35}
.pn:hover{border-color:var(--green);box-shadow:var(--shadow-sm);color:var(--green-dd)}
.pn-next{text-align:right;align-items:flex-end}
@media (max-width:600px){.prevnext{grid-template-columns:1fr}.pn-next{text-align:left;align-items:flex-start}.album20-nav{grid-template-columns:1fr}}

/* ---- lists / filters / pager ------------------------------------------------ */
.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:22px;padding:14px;background:var(--bg-alt);border-radius:var(--radius)}
.filter{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line-2);border-radius:999px;padding:0 14px;height:46px;font-size:14px;color:var(--muted)}
.filter:focus-within{border-color:var(--green);box-shadow:0 0 0 3px rgba(82,190,148,.2)}
.filter input,.filter select{border:0;background:none;font:inherit;font-size:15px;color:var(--ink);outline:none;min-width:0;height:100%}
.filter input{flex:1}
.filter select{padding-right:6px;cursor:pointer}
.filter-grow{flex:1 1 240px}
.filter .ico{color:var(--green)}
.filters .filter-chips{margin:0;width:100%}
.list-status{min-height:0;font-size:13px;color:var(--muted)}
.list-target{position:relative;transition:opacity .25s}
.list.is-loading .list-target{opacity:.45;pointer-events:none}
.pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin:18px 0 26px;font-size:14px}
[data-list-pager] .pager{margin:34px 0 0}
.pager-info{color:var(--muted)}
.pager-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pager-num,.pager-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:40px;height:40px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink-2);font-weight:600;transition:all .2s}
.pager-num:hover,.pager-btn:hover{border-color:var(--green);color:var(--green-d)}
.pager-num.is-current{background:var(--green);border-color:var(--green);color:#fff}
.pager-btn.is-disabled{opacity:.4;pointer-events:none}
.pager-btn .ico{width:1em;height:1em}
.pager-gap{color:var(--muted);padding:0 4px}
.pager-per{display:inline-flex;align-items:center;gap:8px;color:var(--muted)}
.pager-per select{border:1px solid var(--line);border-radius:999px;padding:8px 12px;font:inherit;background:#fff;color:var(--ink)}
@media (max-width:640px){.pager-btn span{display:none}.pager-btn{padding:0 10px}.pager-first,.pager-last{display:none}}

/* photo grid */
.photo-grid{display:grid;gap:14px;grid-template-columns:repeat(2,1fr)}
@media (min-width:640px){.photo-grid-3,.photo-grid-4,.photo-grid-5,.photo-grid-6{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1000px){.photo-grid-4{grid-template-columns:repeat(4,1fr)}.photo-grid-5{grid-template-columns:repeat(5,1fr)}.photo-grid-6{grid-template-columns:repeat(6,1fr)}}
.photo{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;border-radius:12px;background:var(--green-l);box-shadow:var(--shadow-sm)}
.photo img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease),filter .4s}
.photo:hover img{transform:scale(1.08);filter:brightness(.85)}
.photo-zoom{position:absolute;inset:0;display:grid;place-items:center;color:#fff;opacity:0;transition:opacity .3s}
.photo-zoom .ico{width:34px;height:34px;filter:drop-shadow(0 2px 8px rgba(0,0,0,.4));transform:scale(.7);transition:transform .3s var(--ease)}
.photo:hover .photo-zoom{opacity:1}
.photo:hover .photo-zoom .ico{transform:none}
.photo-grid .photo:nth-child(7n+1){grid-row:span 2;aspect-ratio:auto}
@media (max-width:639px){.photo-grid .photo:nth-child(7n+1){grid-row:auto;aspect-ratio:4/3}}

/* interviews table */
.itable{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff}
.itable-head,.itable-row{display:grid;grid-template-columns:110px 130px 1fr 2fr 120px;gap:12px;padding:14px 18px;align-items:center}
.itable-head{background:var(--bg-alt);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.itable-row{border-top:1px solid var(--line);font-size:14.5px;transition:background .2s}
.itable-row:hover{background:var(--green-ll)}
.i-date{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.i-station a{font-weight:600}
.i-host{color:var(--muted);font-size:13.5px}
.i-title{color:var(--ink-2)}
.i-links{display:flex;gap:6px;justify-content:flex-end}
.ilink{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink-2);cursor:pointer;transition:all .25s var(--ease)}
.ilink .ico{width:17px;height:17px}
.ilink:hover{transform:translateY(-2px);color:#fff}
.ilink-mp3:hover{background:var(--green);border-color:var(--green)}
.ilink-yt:hover{background:#f00;border-color:#f00}
.ilink-fb:hover{background:#1877f2;border-color:#1877f2}
.ilink.is-playing{background:var(--green);border-color:var(--green);color:#fff;animation:pulse 1.4s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(82,190,148,.5)}60%{box-shadow:0 0 0 10px rgba(82,190,148,0)}}
.audio-bar{position:fixed;left:16px;right:16px;bottom:16px;z-index:940;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);padding:12px 16px;display:flex;align-items:center;gap:12px;animation:fadeUp .35s var(--ease)}
.audio-bar audio{flex:1;height:36px}
.audio-bar .lb-btn{position:static;width:36px;height:36px;background:var(--bg-alt);color:var(--ink)}
@media (max-width:900px){.itable-head{display:none}.itable-row{grid-template-columns:1fr;gap:4px;padding:16px 18px}.i-links{justify-content:flex-start;margin-top:6px}.i-host::before{content:"· "}}

/* contact page */
.contact-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:clamp(40px,6vw,64px)}
.contact-tile{display:flex;flex-direction:column;gap:6px;padding:24px 22px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);color:var(--ink);transition:all .35s var(--ease)}
.contact-tile:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--green)}
.contact-tile-icon{width:50px;height:50px;border-radius:14px;background:var(--green-l);color:var(--green-dd);display:grid;place-items:center;margin-bottom:8px}
.contact-tile-icon .ico{width:24px;height:24px}
.contact-tile small{color:var(--muted);font-size:13px;line-height:1.4}
.contact-tile b{font-size:19px;font-family:var(--font-head)}
.contact-tile-wa .contact-tile-icon{background:#25d366;color:#fff}
.contact-columns{display:grid;gap:40px;grid-template-columns:1fr 1.2fr;align-items:start}
@media (max-width:900px){.contact-columns{grid-template-columns:1fr}}
.contact-text address{font-style:normal;font-size:17px;line-height:1.7;color:var(--ink-2);margin-bottom:16px}
.hours{display:flex;gap:10px;align-items:flex-start;color:var(--ink-2)}
.hours .ico{color:var(--green);margin-top:5px}
.map-wrap{position:relative;aspect-ratio:4/3;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);background:var(--bg-alt)}
.map-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* search */
.search-form{display:flex;align-items:center;gap:12px;background:#fff;border:2px solid var(--line-2);border-radius:999px;padding:6px 8px 6px 20px;margin-bottom:22px;transition:border-color .2s,box-shadow .2s}
.search-form:focus-within{border-color:var(--green);box-shadow:0 0 0 4px rgba(82,190,148,.18)}
.search-form .ico{color:var(--green);width:22px;height:22px}
.search-form input{flex:1;border:0;background:none;font:inherit;font-size:18px;outline:none;min-width:0;color:var(--ink)}
.result-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.result a{display:block;padding:18px 22px;background:#fff;border:1px solid var(--line);border-radius:14px;color:var(--body);transition:all .3s var(--ease)}
.result a:hover{border-color:var(--green);transform:translateX(6px);box-shadow:var(--shadow-sm)}
.result-kind{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--green-d);background:var(--green-l);border-radius:999px;padding:3px 9px;margin-bottom:8px}
.result h3{font-size:17px;margin:0 0 6px}
.result p{margin:0;font-size:14px;color:var(--muted)}
.result mark,.search-overlay-results mark{background:rgba(230,168,23,.3);color:inherit;border-radius:3px;padding:0 2px}

/* sitemap */
.sitemap-grid{display:grid;gap:40px;grid-template-columns:1fr 1fr}
.sitemap-col-wide{grid-column:1/-1}
@media (max-width:800px){.sitemap-grid{grid-template-columns:1fr}}
.sitemap-tree ul{list-style:none;margin:0;padding:0}
.sitemap-tree>ul>li,.sitemap-tree ul ul{margin-left:0}
.sitemap-tree ul ul{margin:4px 0 8px 16px;border-left:2px solid var(--line);padding-left:14px}
.sitemap-tree li{padding:5px 0;font-size:15px}
.sitemap-tree small{color:var(--muted)}
.sitemap-albums{list-style:none;margin:0 0 20px;padding:0;columns:3;column-gap:30px;font-size:14px}
.sitemap-albums li{break-inside:avoid;padding:3px 0}
@media (max-width:800px){.sitemap-albums{columns:1}}

/* album20 */
.album20-body{max-width:1000px;margin:0 auto}
.album20-list{columns:2;column-gap:24px;margin:0;padding-left:1.4em;font-size:14.5px}
.album20-list li{break-inside:avoid;padding:4px 0}
.album20-list li.is-current{font-weight:700;color:var(--green-dd)}
.album20-pages{margin-top:36px;padding:24px;background:var(--bg-alt);border-radius:var(--radius)}
@media (max-width:640px){.album20-list{columns:1}}

/* forms page */
.layout-form{grid-template-columns:minmax(0,1fr) 300px}
.form-col .breadcrumbs{margin-bottom:8px}
.azf-actions{margin-top:18px}
.az-btn-ghost{display:inline-block;padding:10px 22px;border-radius:999px;border:2px solid var(--green);color:var(--green-d);font-weight:600}

/* error */
.section-error{min-height:60vh;display:flex;align-items:center}
.error-code{font-family:var(--font-head);font-size:clamp(80px,14vw,160px);font-weight:800;line-height:.9;margin:0;background:linear-gradient(120deg,var(--green),var(--blue));-webkit-background-clip:text;background-clip:text;color:transparent}
.section-error .search-form{margin:26px auto;max-width:560px}

/* ---- footer -------------------------------------------------------------- */
.site-footer{background:var(--bg-dark);color:#b8cbc2;position:relative;overflow:hidden}
.site-footer::before{content:"";position:absolute;inset:0;background:radial-gradient(900px 400px at 0% 0%,rgba(82,190,148,.16),transparent 60%),radial-gradient(700px 400px at 100% 100%,rgba(63,108,178,.14),transparent 60%);pointer-events:none}
.footer-grid{position:relative;display:grid;gap:40px;grid-template-columns:1.4fr 1fr 1fr 1fr;padding:clamp(50px,6vw,80px) var(--gutter) 40px}
@media (max-width:1000px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.footer-grid{grid-template-columns:1fr}}
.footer-logo{height:64px;width:auto;margin-bottom:14px;background:#fff;padding:8px 12px;border-radius:12px}
.footer-company{color:#fff;font-weight:700;margin:0 0 14px;font-size:15px}
.footer-address,.footer-line{display:flex;gap:10px;align-items:flex-start;font-style:normal;color:#b8cbc2;font-size:14.5px;line-height:1.55;margin:0 0 10px}
.footer-line{color:#d3e2db}
.footer-line:hover{color:#fff}
.footer-address .ico,.footer-line .ico{color:var(--green);margin-top:4px;width:1.15em;height:1.15em}
.footer-phone b{color:#fff;font-weight:700;display:block}
.footer-phone small{color:#8ea59b;display:block;line-height:1.3}
.footer-about .social{margin-top:16px}
.footer-about .social-link{background:rgba(255,255,255,.08);color:#d3e2db}
.footer-h{color:#fff;font-size:14px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 16px}
.footer-menu{list-style:none;margin:0 0 26px;padding:0}
.footer-menu li{margin:0 0 9px}
.footer-menu a{color:#c6d6ce;font-size:14.5px;display:inline-flex;align-items:center;gap:8px;transition:color .2s,transform .2s}
.footer-menu a::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green);opacity:0;transform:scale(0);transition:all .25s var(--ease)}
.footer-menu a:hover{color:#fff;transform:translateX(4px)}
.footer-menu a:hover::before{opacity:1;transform:none}
.footer-menu-legal a{font-size:13.5px;color:#9db3a9}
.site-footer .block{margin-bottom:22px}
.site-footer .block-title{color:#fff;font-size:14px}
.site-footer .block-body{font-size:14px;color:#b8cbc2}
.site-footer .block-body img{background:#fff;border-radius:10px;padding:8px;display:inline-block;margin:6px 8px 6px 0;max-height:80px;width:auto}
.footer-qr .block-body img{max-width:180px;max-height:none}
.site-footer .block-body a{color:#cfe0d8;text-decoration:underline;text-underline-offset:3px}
.btn-wa{margin-top:10px}
.footer-note{position:relative;padding:0 var(--gutter) 30px;font-size:12.5px;color:#8ea59b;line-height:1.7}
.footnote-block b{color:#c6d6ce}
.footnote-block p{margin:0}
.footer-bottom{position:relative;border-top:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.2)}
.footer-bottom-inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 20px;padding:18px var(--gutter);font-size:13px;color:#8ea59b}
.footer-bottom p{margin:0}
.footer-version a{color:#9db3a9;text-decoration:underline}

/* floating */
.floating{position:fixed;right:18px;bottom:18px;z-index:930;display:flex;flex-direction:column;gap:12px;align-items:flex-end}
.float-btn{position:relative;display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;color:#fff;background:var(--green);box-shadow:0 12px 30px -10px rgba(0,0,0,.4);border:0;cursor:pointer;transition:transform .3s var(--ease),box-shadow .3s}
.float-btn:hover{transform:translateY(-4px) scale(1.05);color:#fff}
.float-btn .ico{width:28px;height:28px}
.float-wa{background:#25d366;animation:waPulse 3s infinite}
@keyframes waPulse{0%,100%{box-shadow:0 12px 30px -10px rgba(0,0,0,.4),0 0 0 0 rgba(37,211,102,.5)}50%{box-shadow:0 12px 30px -10px rgba(0,0,0,.4),0 0 0 14px rgba(37,211,102,0)}}
.float-review{background:#fff;color:var(--ink)}
.float-review .ico{fill:none}
.float-top{width:46px;height:46px;background:var(--ink);opacity:0;transform:translateY(20px);transition:opacity .3s,transform .3s var(--ease)}
.float-top.is-visible{opacity:1;transform:none}
.float-label{position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%) translateX(10px);background:var(--ink);color:#fff;font-size:12.5px;font-weight:600;padding:7px 12px;border-radius:8px;white-space:nowrap;opacity:0;pointer-events:none;transition:all .25s var(--ease)}
.float-btn:hover .float-label{opacity:1;transform:translateY(-50%)}
@media (max-width:640px){.floating{right:12px;bottom:12px}.float-btn{width:50px;height:50px}.float-label{display:none}}

/* ---- lightbox & video modal ------------------------------------------------ */
.lightbox,.video-modal{position:fixed;inset:0;z-index:1200;background:rgba(10,18,15,.94);backdrop-filter:blur(8px);animation:fadeIn .25s var(--ease)}
.lightbox-stage{position:absolute;inset:0;display:grid;place-items:center;padding:60px 70px}
.lb-figure{margin:0;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:12px}
.lb-figure img{max-width:min(1600px,100%);max-height:calc(100vh - 140px);object-fit:contain;border-radius:8px;box-shadow:0 30px 80px rgba(0,0,0,.6);transition:opacity .25s,transform .35s var(--ease);user-select:none}
.lb-figure img.is-changing{opacity:0;transform:scale(.97)}
.lb-figure figcaption{color:#cfe0d8;font-size:14px;text-align:center;max-width:70ch}
.lb-btn{position:absolute;width:48px;height:48px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .2s,transform .2s}
.lb-btn:hover{background:rgba(255,255,255,.25);transform:scale(1.06)}
.lb-btn .ico{width:22px;height:22px}
.lb-close{top:18px;right:18px}
.lb-prev{left:14px;top:50%;transform:translateY(-50%)}
.lb-next{right:14px;top:50%;transform:translateY(-50%)}
.lb-prev:hover,.lb-next:hover{transform:translateY(-50%) scale(1.06)}
.lb-count{position:absolute;top:28px;left:24px;color:#cfe0d8;font-size:14px;font-weight:600}
.lb-download{bottom:18px;right:18px}
@media (max-width:640px){.lightbox-stage{padding:60px 8px 70px}.lb-prev,.lb-next{top:auto;bottom:14px;transform:none}.lb-prev{left:14px}.lb-next{right:80px}.lb-prev:hover,.lb-next:hover{transform:scale(1.06)}}
.video-modal-inner{position:absolute;inset:0;display:grid;place-items:center;padding:60px 20px}
.video-frame{width:min(1100px,100%);aspect-ratio:16/9;background:#000;border-radius:16px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.video-frame iframe{width:100%;height:100%;border:0}
.video-title{position:absolute;bottom:22px;left:20px;right:20px;text-align:center;color:#cfe0d8;font-weight:600;margin:0}
body.is-locked{overflow:hidden}

/* ---- reveal animations ---------------------------------------------------- */
.anim.js [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease);will-change:opacity,transform}
.anim.js [data-reveal="fade"]{transform:none}
.anim.js [data-reveal="left"]{transform:translateX(-40px)}
.anim.js [data-reveal="right"]{transform:translateX(40px)}
.anim.js [data-reveal="zoom"]{transform:scale(.9)}
.anim.js [data-reveal].is-in{opacity:1;transform:none}
.anim.js .prose .animated,.anim.js .prose [class*="slideIn"],.anim.js .prose [class*="fadeIn"]{opacity:0;transform:translateY(20px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.anim.js .prose .slideInLeft{transform:translateX(-40px)}
.anim.js .prose .slideInRight{transform:translateX(40px)}
.anim.js .prose .animated.is-in{opacity:1;transform:none}
[data-tilt]{transition:transform .3s var(--ease),box-shadow .35s var(--ease)}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.anim.js .az-img{opacity:0;transition:opacity .6s var(--ease)}
.anim.js .az-img.is-loaded{opacity:1}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .anim.js [data-reveal],.anim.js .prose .animated,.anim.js .az-img{opacity:1;transform:none}
  .hero-title .w>span{transform:none;opacity:1}
}

/* ---- print -------------------------------------------------------------- */
@media print{
  .site-header,.offcanvas,.search-overlay,.floating,.site-footer,.prefooter,.share,.prevnext,.sidebar,.breadcrumbs,.hero-scroll,.filters,.pager{display:none!important}
  body{color:#000;font-size:12pt}
  .layout-sidebar{grid-template-columns:1fr}
  .prose a{color:#000;text-decoration:underline}
  .prose a[href^="http"]::after{content:" (" attr(href) ")";font-size:.85em;color:#555}
  .anim.js [data-reveal]{opacity:1;transform:none}
  .page-hero,.post-hero{background:none;color:#000;padding:0 0 20px}
  .page-hero.has-cover .page-title,.post-hero.has-cover .page-title{color:#000}
  .page-hero-bg,.post-hero-bg{display:none}
}

/* ==========================================================================
   v5.0.1 — front page mirrors the previous site; header/footer/floating polish
   ========================================================================== */
:root{--header-h:104px;--topbar-h:42px}
html{scroll-padding-top:calc(var(--header-h) + var(--topbar-h) + 16px)}

/* ---- header: always visible, larger logo ------------------------------- */
.site-header.is-hidden{transform:none}
.site-header.is-scrolled .topbar{height:var(--topbar-h);opacity:1}
.site-header.is-scrolled .navbar-inner{height:88px}
.brand-logo{height:80px}
.brand-logo-2{height:68px}
.site-header.is-scrolled .brand-logo{height:68px}
.site-header.is-scrolled .brand-logo-2{height:58px}
@media(max-width:900px){:root{--header-h:82px}.brand-logo{height:60px}.brand-logo-2{height:50px}.site-header.is-scrolled .navbar-inner{height:74px}.site-header.is-scrolled .brand-logo{height:54px}}

/* ---- hero motion: gentle zoom, light sweep, running light, drifting glow -- */
.hero-media img,.hero-media video{animation:kenburns 26s ease-in-out infinite alternate;transform-origin:50% 50%;will-change:transform}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.11) translate(-1.2%,-.8%)}}
.hero-sweep{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.hero-sweep::before{content:"";position:absolute;top:-30%;left:-20%;width:14vw;height:160%;transform:rotate(18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.14) 45%,rgba(255,255,255,.28) 50%,rgba(255,255,255,.14) 55%,transparent);filter:blur(2px);animation:heroSweep 9s ease-in-out infinite}
@keyframes heroSweep{0%{left:-30%;opacity:0}8%{opacity:1}45%{left:120%;opacity:1}50%{opacity:0}100%{left:120%;opacity:0}}
.hero-sweep::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:22vw;background:linear-gradient(90deg,transparent,#fff 45%,#bfe9d7 55%,transparent);box-shadow:0 0 14px 2px rgba(255,255,255,.75),0 0 40px 6px rgba(82,190,148,.5);animation:heroLine 5.5s linear infinite}
@keyframes heroLine{from{transform:translateX(-24vw)}to{transform:translateX(100vw)}}
.hero-glow{position:absolute;inset:0;z-index:-1;pointer-events:none;mix-blend-mode:screen;opacity:.55;background:radial-gradient(38vw 38vw at 20% 40%,rgba(120,220,180,.45),transparent 60%);animation:heroGlow 16s ease-in-out infinite alternate}
@keyframes heroGlow{from{background-position:0 0;transform:translate(0,0)}to{transform:translate(38vw,8vh)}}
.hero-inner{padding:96px var(--gutter) 96px}
.hero{min-height:min(78vh,700px)}

/* ---- floating buttons: WhatsApp jumps, Google pulses, centred back-to-top */
.float-wa{animation:waPulse 3s infinite,waJump 12s ease-in-out infinite}
@keyframes waJump{0%,22%,100%{transform:translateY(0)}3%,9%,15%{transform:translateY(-16px) scale(1.06)}6%,12%,18%{transform:translateY(0) scale(1)}}
.float-review{animation:reviewPulse 2.8s infinite;border:2px solid #fff}
@keyframes reviewPulse{0%{box-shadow:0 12px 30px -10px rgba(0,0,0,.4),0 0 0 0 rgba(66,133,244,.55)}70%{box-shadow:0 12px 30px -10px rgba(0,0,0,.4),0 0 0 16px rgba(66,133,244,0)}100%{box-shadow:0 12px 30px -10px rgba(0,0,0,.4),0 0 0 0 rgba(66,133,244,0)}}
.floating .float-top{display:none}
.to-top{position:fixed;left:50%;bottom:22px;z-index:930;width:56px;height:56px;border-radius:50%;padding:4px;border:0;cursor:pointer;opacity:0;pointer-events:none;transform:translate(-50%,24px);transition:opacity .35s,transform .45s var(--ease);background:conic-gradient(var(--green) calc(var(--p,0)*1%),rgba(255,255,255,.28) 0);box-shadow:0 12px 30px -10px rgba(0,0,0,.45)}
.to-top.is-visible{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
.to-top i{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:var(--ink);color:#fff;transition:background .25s}
.to-top .ico{width:24px;height:24px}
.to-top:hover i{background:var(--green-dd)}
.to-top:hover{transform:translate(-50%,-4px)}
@media(max-width:640px){.to-top{width:48px;height:48px;bottom:16px}}

/* ---- home sections ------------------------------------------------------ */
.hs{position:relative;padding:clamp(56px,7vw,96px) 0;overflow:hidden;isolation:isolate}
.hs-title{text-align:center;font-size:clamp(26px,3.4vw,40px);margin:0 0 clamp(26px,4vw,44px);letter-spacing:-.01em}
.hs-glow{position:absolute;border-radius:50%;filter:blur(60px);pointer-events:none;z-index:-1;opacity:.6}
.hs-glow-a{width:46vw;height:46vw;right:-14vw;top:-18vw;background:radial-gradient(circle,rgba(82,190,148,.35),transparent 65%);animation:drift 22s ease-in-out infinite alternate}
.hs-glow-b{width:50vw;height:50vw;left:-18vw;bottom:-24vw;background:radial-gradient(circle,rgba(255,255,255,.16),transparent 65%);animation:drift 26s ease-in-out infinite alternate-reverse}

/* mascot + quote */
.hs-mascot{background:linear-gradient(180deg,#fff 0%,var(--green-ll) 100%);padding-bottom:clamp(50px,6vw,80px)}
.hs-mascot-inner{display:grid;justify-items:center;gap:clamp(22px,3vw,36px)}
.hs-mascot-video video{display:block;width:min(100%,400px);height:auto;border-radius:26px;box-shadow:0 30px 60px -28px rgba(31,106,79,.45);animation:floaty 7s ease-in-out infinite;background:#fff}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.hs-quote{margin:0;max-width:26ch;text-align:center;font-family:var(--font-head);font-weight:800;font-size:clamp(22px,2.8vw,36px);line-height:1.35;color:var(--ink);text-wrap:balance}
.hs-quote span{font-size:inherit!important;font-weight:inherit!important}
.hs-quote::before,.hs-quote::after{content:"";display:block;width:64px;height:4px;border-radius:2px;background:linear-gradient(90deg,var(--green),var(--blue));margin:0 auto 18px}
.hs-quote::after{margin:18px auto 0}

/* vision: teacher video beside the text */
.hs-vision{background:#fff}
.hs-vision .azon-vidtext{display:grid;grid-template-columns:minmax(260px,5fr) 7fr;gap:clamp(28px,5vw,72px);align-items:center}
.hs-vision .azon-vidwrap video{display:block;width:100%;height:auto;border-radius:24px;box-shadow:var(--shadow-lg);background:#000}
.hs-vision .azon-copy{margin:0!important;padding:0!important;text-align:left}
.hs-vision .azon-copy h2{font-size:clamp(26px,3vw,40px);line-height:1.2;margin:0 0 18px}
.hs-vision .azon-copy h2 b{color:var(--green-d)}
.hs-vision .azon-copy p{font-size:clamp(16px,1.3vw,19px);line-height:1.8;color:var(--body);margin:0}
@media(max-width:860px){.hs-vision .azon-vidtext{grid-template-columns:1fr}.hs-vision .azon-vidwrap{max-width:420px;margin:0 auto}.hs-vision .azon-copy{text-align:center}}

/* values: dark green band with moving fine lines + three videos in one row */
.hs-values{background:linear-gradient(135deg,#123126 0%,#1f6a4f 55%,#2f8f6c 100%);color:#fff}
.hs-lines{position:absolute;inset:-40% -10%;z-index:-1;pointer-events:none;background:repeating-linear-gradient(115deg,rgba(255,255,255,.075) 0 1px,transparent 1px 46px);animation:linesMove 18s linear infinite;opacity:.9}
.hs-lines::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-30deg,rgba(255,255,255,.05) 0 1px,transparent 1px 72px);animation:linesMove 30s linear infinite reverse}
@keyframes linesMove{from{transform:translate3d(0,0,0)}to{transform:translate3d(46px,26px,0)}}
.hs-values-inner h2{color:#fff;text-align:center;max-width:44ch;margin:0 auto 12px;font-size:clamp(20px,2.4vw,30px);font-weight:500;line-height:1.5}
.hs-values-inner h2 b,.hs-values-inner h2 span{font-size:inherit!important;font-weight:800;color:#bfe9d7}
.hs-values-inner h2 b{display:block;font-size:1.35em!important;margin-bottom:6px;color:#fff}
.hs-values-inner p{text-align:center;color:rgba(255,255,255,.78);font-size:16px;margin:0 0 clamp(30px,4vw,48px);letter-spacing:.06em}
.family-row{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2.4vw,32px);max-width:1180px;margin:0 auto}
.family-item video{display:block;width:100%;height:auto;border-radius:20px;border:1px solid rgba(255,255,255,.22);box-shadow:0 30px 60px -30px rgba(0,0,0,.6);background:#0e1f18;transition:transform .4s var(--ease),box-shadow .4s}
.family-item:hover video{transform:translateY(-6px);box-shadow:0 40px 70px -30px rgba(0,0,0,.7)}
@media(max-width:640px){.family-row{grid-template-columns:1fr;max-width:420px}}

/* looking forward: techy video background */
.hs-future{padding:0;background:#0e1f18;color:#fff}
.hs-future .azon-bgmod{position:relative;min-height:440px;display:grid;place-items:center;padding:clamp(60px,8vw,110px) var(--gutter)}
.hs-future .azon-bgvid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.hs-future .azon-bgmod::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,31,24,.5),rgba(14,31,24,.72))}
.hs-future .azon-bgcontent{position:relative;z-index:1;text-align:center;max-width:860px;text-shadow:0 2px 14px rgba(0,0,0,.5)}
.hs-future .azon-bgcontent h2{color:#fff;font-size:clamp(28px,3.6vw,44px);margin:0 0 22px}
.hs-future .azon-bgcontent h2 span,.hs-future .azon-bgcontent h2 b{font-size:inherit!important}
.hs-future .azon-bgcontent ul{list-style:none;margin:0 auto;padding:0;display:grid;gap:10px;font-size:clamp(17px,1.6vw,22px);line-height:1.6}
.hs-future .azon-bgcontent li{position:relative;padding-left:0}
.hs-future .azon-bgcontent li::before{content:"·";color:var(--green);font-weight:800;margin-right:10px}
.hs-closing{padding:clamp(32px,4vw,52px) var(--gutter) clamp(44px,5vw,64px);text-align:center;font-family:var(--font-head);font-weight:800;font-size:clamp(22px,2.8vw,36px);color:#bfe9d7;background:linear-gradient(180deg,#0e1f18,#132a21)}
.hs-closing span{font-size:inherit!important}

/* corporate video */
.hs-corporate{background:var(--ink);color:#fff}
.kicker-light{color:#bfe9d7;display:flex;justify-content:center;margin-bottom:22px}
.kicker-light::before{background:var(--green)}
.yt-embed{position:relative;max-width:1040px;margin:0 auto;aspect-ratio:16/9;border-radius:20px;overflow:hidden;background:#000;box-shadow:0 40px 80px -40px rgba(0,0,0,.8);border:1px solid rgba(255,255,255,.08)}
.yt-embed iframe,.yt-embed-poster img{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:cover}
.yt-embed-poster{all:unset;position:absolute;inset:0;cursor:pointer;display:block}
.yt-embed-poster::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.35))}
.yt-play{position:absolute;left:50%;top:50%;z-index:1;transform:translate(-50%,-50%);width:88px;height:88px;border-radius:50%;background:rgba(255,255,255,.96);color:var(--green-dd);display:grid;place-items:center;box-shadow:0 20px 40px -14px rgba(0,0,0,.6);transition:transform .3s var(--ease),background .3s}
.yt-play .ico{width:36px;height:36px;fill:currentColor;stroke:none;margin-left:5px}
.yt-embed-poster:hover .yt-play{transform:translate(-50%,-50%) scale(1.1);background:var(--green);color:#fff}

/* awards */
.hs-awards{background:var(--bg-alt)}
.hs-awards-grid>div{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2.4vw,28px)}
.hs-awards-grid>div>div:not(.award-column-swf){display:none}
.award-column-swf{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px 18px 24px;text-align:center;box-shadow:var(--shadow-sm);transition:transform .35s var(--ease),box-shadow .35s}
.award-column-swf:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.award-column-swf img{display:block;height:118px;width:auto;max-width:100%;object-fit:contain;margin:0 auto 16px}
.award-column-swf div{font-size:13.5px;line-height:1.55;color:var(--muted)}
.award-column-swf strong{display:block;color:var(--ink);font-size:14.5px;margin-bottom:4px;letter-spacing:.02em}
@media(max-width:960px){.hs-awards-grid>div{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.hs-awards-grid>div{grid-template-columns:1fr}}

/* sharing is caring: 4-column card carousel */
.hs-sharing{background:#fff}
.hs-title-split em{font-style:normal;color:var(--green-d);font-size:1.28em}
.share-carousel{position:relative}
.share-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 3*20px)/4);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:8px 4px 14px;scroll-behavior:smooth}
.share-track::-webkit-scrollbar{display:none}
.share-card{scroll-snap-align:start;display:flex;flex-direction:column;border-radius:18px;overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm);color:var(--ink);transition:transform .35s var(--ease),box-shadow .35s}
.share-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);color:var(--ink)}
.share-img{display:block;aspect-ratio:4/5;overflow:hidden;background:var(--bg-alt)}
.share-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.share-card:hover .share-img img{transform:scale(1.05)}
.share-body{display:grid;gap:5px;padding:14px 16px 18px}
.share-title{font-weight:700;font-size:15px;line-height:1.4;font-family:var(--font-head)}
.share-source{color:var(--green-d);font-size:13px;font-weight:600}
.share-date{color:var(--muted);font-size:12.5px;display:inline-flex;align-items:center;gap:6px}
.share-date .ico{width:14px;height:14px}
.share-nav{position:absolute;top:42%;z-index:2;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);background:#fff;color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow);transition:.25s}
.share-nav:hover{background:var(--green);color:#fff;border-color:var(--green)}
.share-prev{left:-18px}.share-next{right:-18px}
@media(max-width:1100px){.share-track{grid-auto-columns:calc((100% - 2*20px)/3)}}
@media(max-width:760px){.share-track{grid-auto-columns:calc((100% - 16px)/2);gap:16px}.share-nav{display:none}}
@media(max-width:480px){.share-track{grid-auto-columns:82%}}

/* ---- footer: contact · certificates · QR (as on the previous site) ------- */
.footer-grid{grid-template-columns:1.5fr 1.1fr .8fr;gap:clamp(28px,4vw,56px)}
.footer-logo{display:none}
.footer-certs .block-body img,.site-footer .footer-certs img{background:none!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;width:150px!important;max-width:100%;height:auto!important;max-height:none;margin:0!important;vertical-align:middle;display:block;filter:drop-shadow(0 2px 6px rgba(0,0,0,.3))}
.footer-certs .block-body p{margin:0 0 14px}
.footer-certs .block-body p b{color:#fff;font-size:14px;letter-spacing:.1em;text-transform:uppercase}
.footer-certs .block-body>div{display:flex;flex-wrap:wrap;align-items:center;gap:18px 24px;margin:0!important}
.footer-qr .block-body img{background:none!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;max-width:150px;display:block;margin:0 0 14px}
.footer-qr .block{margin-bottom:8px}
.footer-h-contact{color:#fff;font-size:14px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 14px}
.footer-about .footer-line,.footer-about address{display:flex;gap:10px;align-items:flex-start;margin:0 0 12px;font-style:normal;line-height:1.55}
.footer-about .ico{color:var(--green);flex:none;margin-top:3px}
.footer-bottom-inner{flex-direction:column;align-items:center;text-align:center;gap:4px}
.footer-version{color:#8ea59b}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.footer-grid{grid-template-columns:1fr}}

@media(prefers-reduced-motion:reduce){.hero-media img,.hero-media video,.hero-sweep::before,.hero-sweep::after,.hero-glow,.hs-mascot-video video,.hs-lines,.hs-lines::after,.hs-glow,.float-wa,.float-review{animation:none!important}}
.footer-lbl{color:#fff;font-weight:700;font-size:13px;letter-spacing:.04em}
.footer-phone span small{display:block;color:#8ea59b;line-height:1.3;font-size:12.5px;margin-top:2px}
.footer-phone span b{color:#fff;font-weight:700;display:block;font-size:15px}

/* ---- v5.0.1b: header badge, QR, carousel arrows, YouTube poster ---- */
.brand{gap:clamp(12px,1.6vw,22px)}
.brand-home,.brand-badge{display:inline-flex;align-items:center}
.brand-badge{transition:transform .35s var(--ease)}
.brand-badge:hover{transform:translateY(-2px)}
.footer-qr .block-body img{background:none!important;box-shadow:none!important;border:0!important;max-width:150px;image-rendering:pixelated}
.share-prev{left:-22px}.share-next{right:-22px}
@media(max-width:1300px){.share-prev{left:6px}.share-next{right:6px}}
.yt-embed-poster img{background:#000}
.yt-embed-poster img.is-broken{visibility:hidden}
.nav-burger{align-items:stretch}
.nav-burger span{width:100%;min-width:22px}
.hero .btn-ghost-light{background:rgba(14,32,26,.42);border-color:rgba(255,255,255,.65);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.hero .btn-ghost-light:hover{background:rgba(255,255,255,.92);color:var(--green-dd)}

/* =====================================================================
   v5.0.2
   ===================================================================== */

/* ---- header: logos at the old site's size, neat three-part bar ---- */
:root{--header-h:118px}
.navbar-inner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(18px,3vw,40px)}
.brand{gap:clamp(14px,1.8vw,26px)}
.brand-logo{height:92px}
.brand-logo-2{height:82px}
.site-header.is-scrolled .navbar-inner{height:92px}
.site-header.is-scrolled .brand-logo{height:74px}
.site-header.is-scrolled .brand-logo-2{height:64px}
.main-nav{justify-content:center;min-width:0}
.nav{gap:4px;flex-wrap:nowrap}
.nav>li>a{padding:10px 13px;white-space:nowrap}
.nav-tools{justify-self:end;gap:8px}
@media(max-width:1180px){.nav>li>a{padding:10px 9px;font-size:14px}}
@media(max-width:1023px){:root{--header-h:84px}.navbar-inner{grid-template-columns:auto 1fr auto}.brand-logo{height:62px}.brand-logo-2{height:54px}.site-header.is-scrolled .navbar-inner{height:76px}.site-header.is-scrolled .brand-logo{height:56px}.site-header.is-scrolled .brand-logo-2{height:48px}}
@media(max-width:560px){.brand-logo{height:50px}}

/* ---- home hero: light that runs the full width, gentle slow sweep ---- */
.hero-sweep::before{width:22vw;background:linear-gradient(90deg,transparent,rgba(255,255,255,.07) 40%,rgba(255,255,255,.16) 50%,rgba(255,255,255,.07) 60%,transparent);filter:blur(6px);animation:heroSweep 22s ease-in-out infinite}
@keyframes heroSweep{0%{left:-30%;opacity:0}10%{opacity:1}55%{left:115%;opacity:1}62%{opacity:0}100%{left:115%;opacity:0}}
.hero-sweep::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;width:auto;transform:none;box-shadow:none;background:linear-gradient(90deg,transparent 0%,transparent 35%,rgba(255,255,255,.55) 47%,#fff 50%,#bfe9d7 53%,transparent 65%,transparent 100%);background-size:300% 100%;background-repeat:no-repeat;animation:heroLine 7s linear infinite;filter:drop-shadow(0 0 6px rgba(255,255,255,.8)) drop-shadow(0 0 18px rgba(82,190,148,.6))}
@keyframes heroLine{from{background-position:120% 0}to{background-position:-120% 0}}
.hero-glow{opacity:.4;animation-duration:30s}

/* ---- "we honour" band: three line layers, each moving exactly one period per cycle ---- */
.hs-lines{background:repeating-linear-gradient(115deg,rgba(255,255,255,.085) 0 1px,transparent 1px 46px);animation:linesA 14s linear infinite}
.hs-lines::after{background:repeating-linear-gradient(-30deg,rgba(255,255,255,.06) 0 1px,transparent 1px 72px);animation:linesB 22s linear infinite}
.hs-lines::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(60deg,rgba(255,255,255,.045) 0 1px,transparent 1px 110px);animation:linesC 34s linear infinite}
@keyframes linesA{from{transform:translate3d(0,0,0)}to{transform:translate3d(41.69px,19.44px,0)}}
@keyframes linesB{from{transform:translate3d(0,0,0)}to{transform:translate3d(-36px,-62.35px,0)}}
@keyframes linesC{from{transform:translate3d(0,0,0)}to{transform:translate3d(95.26px,-55px,0)}}

/* ---- awards: larger logos ---- */
.award-column-swf img{height:180px;margin-bottom:20px}
@media(max-width:960px){.award-column-swf img{height:150px}}

/* ---- inner page hero: banner image, darker mask, drifting grey lines, tighter ---- */
.page-hero.has-cover{min-height:300px;padding:clamp(56px,7vw,96px) 0 clamp(30px,4vw,44px)}
.page-hero.has-cover::before,.post-hero.has-cover::before{background:linear-gradient(180deg,rgba(9,20,16,.66),rgba(9,20,16,.9))}
.post-hero.has-cover{min-height:340px}
.hero-lines{position:absolute;inset:-40% -10%;z-index:-1;pointer-events:none;opacity:.55;background:repeating-linear-gradient(115deg,rgba(255,255,255,.07) 0 1px,transparent 1px 46px);animation:linesA 16s linear infinite}
.hero-lines::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-30deg,rgba(255,255,255,.05) 0 1px,transparent 1px 72px);animation:linesB 26s linear infinite}
.section-page,.section-post,.section-album20,.section-form,.section-contact,.section-album-body,.section-services{padding-top:clamp(28px,4vw,46px)}
.page-hero .kicker{margin-bottom:10px}
.page-hero .page-title{margin-bottom:0}

/* ---- sidebar menus (the old sub-menu modules), drawn as a tree ---- */
.side-menu{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px 20px 18px}
.side-menu .block-title{margin-bottom:12px}
.side-menu ul{list-style:none;margin:0;padding:0}
.side-menu li{position:relative}
.side-menu a,.side-menu .side-menu-h{display:block;padding:9px 12px 9px 30px;border-radius:10px;color:var(--ink-2);font-size:14.5px;font-weight:500;line-height:1.4;transition:all .2s;position:relative}
.side-menu a::before{content:"";position:absolute;left:12px;top:50%;width:7px;height:7px;border-radius:50%;background:var(--line-2);transform:translateY(-50%);transition:all .25s}
.side-menu a:hover{background:var(--bg-alt);color:var(--green-d)}
.side-menu a:hover::before{background:var(--green)}
.side-menu li.is-current>a{background:var(--green-l);color:var(--green-dd);font-weight:700}
.side-menu li.is-current>a::before{background:var(--green);box-shadow:0 0 0 4px rgba(82,190,148,.2)}
.side-menu .side-menu-h{color:var(--muted);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;padding-left:12px;margin-top:6px}
.side-menu ul ul{margin-left:22px;border-left:1px dashed var(--line-2);padding-left:4px}
.side-menu ul ul a{font-size:13.5px;padding-top:7px;padding-bottom:7px}
.side-menu ul ul a::before{width:5px;height:5px}
.sidebar .block-media video{width:100%;height:auto;display:block;border-radius:14px}
.sidebar .block-media{padding:12px}
.sidebar .block-list ul{list-style:none;margin:0;padding:0}
.sidebar .block-list li{padding:6px 0;border-bottom:1px dashed var(--line)}
.sidebar .block-list li:last-child{border-bottom:0}
.sidebar .block-list img{max-width:100%;height:auto;border-radius:10px}

/* ---- album photos: masonry keeps each photo's own shape ---- */
.photo-masonry{display:block;columns:3;column-gap:16px}
.photo-masonry .photo{display:block;break-inside:avoid;margin:0 0 16px;border-radius:14px;overflow:hidden;position:relative;aspect-ratio:auto}
.photo-masonry .photo img{width:100%;height:auto;display:block;transition:transform .6s var(--ease)}
.photo-masonry .photo:hover img{transform:scale(1.04)}
.photo-grid-4.photo-masonry{columns:4}
@media(max-width:1023px){.photo-masonry,.photo-grid-4.photo-masonry{columns:3}}
@media(max-width:640px){.photo-masonry,.photo-grid-4.photo-masonry{columns:2;column-gap:10px}.photo-masonry .photo{margin-bottom:10px}}

/* ---- commemorative album: a book stage ---- */
.section-album20{background:linear-gradient(180deg,#f3f6f4,#fff 40%)}
.album20-stage{position:relative}
.album20-frame{position:relative;background:#fff;border:1px solid var(--line);border-radius:26px;box-shadow:0 30px 70px -40px rgba(23,33,43,.35),0 2px 0 #fff inset;padding:clamp(36px,6vw,84px) clamp(24px,7vw,96px) clamp(44px,6vw,80px);min-height:420px;overflow:hidden}
.album20-frame::before{content:"";position:absolute;inset:14px;border:1px solid rgba(82,190,148,.28);border-radius:18px;pointer-events:none}
.album20-corner{position:absolute;width:38px;height:38px;border:2px solid var(--green);pointer-events:none;opacity:.7}
.album20-corner-tl{left:14px;top:14px;border-right:0;border-bottom:0;border-top-left-radius:18px}
.album20-corner-br{right:14px;bottom:14px;border-left:0;border-top:0;border-bottom-right-radius:18px}
.album20-page-no{position:absolute;top:26px;right:34px;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}
.album20-body{max-width:820px;margin:0 auto}
.album20-body [class*="-nav"],.album20-body .CA-page-numbering{display:none!important}
.album20-body [class*="-page"],.album20-body [class$="-wrap"]{min-height:0!important;padding-left:0!important;padding-right:0!important;background:transparent!important}
.album20-arrow{position:absolute;top:50%;transform:translateY(-50%);width:56px;height:56px;border-radius:50%;background:#fff;border:1px solid var(--line-2);color:var(--ink);display:grid;place-items:center;box-shadow:var(--shadow);transition:all .3s var(--ease);z-index:2}
.album20-arrow .ico{width:22px;height:22px}
.album20-arrow:hover{background:var(--green);border-color:var(--green);color:#fff;transform:translateY(-50%) scale(1.06)}
.album20-arrow-prev{left:-28px}
.album20-arrow-next{right:-28px}
.album20-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;margin-top:26px}
.album20-btn{display:inline-flex;align-items:center;gap:12px;padding:12px 18px;border:1px solid var(--line-2);border-radius:999px;background:#fff;color:var(--ink);transition:all .3s var(--ease);max-width:100%}
.album20-btn:hover{border-color:var(--green);color:var(--green-dd);box-shadow:var(--shadow-sm);transform:translateY(-2px)}
.album20-btn span{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.album20-btn small{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.album20-btn b{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.album20-btn-next{justify-self:end;text-align:right}
.album20-btn.is-empty{border:0;background:transparent}
.album20-dots{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;max-width:260px}
.album20-dots a{width:9px;height:9px;border-radius:50%;background:var(--line-2);transition:all .25s}
.album20-dots a:hover{background:var(--green-d);transform:scale(1.3)}
.album20-dots a.is-on{background:var(--green);width:22px;border-radius:6px}
@media(max-width:1100px){.album20-arrow{display:none}}
@media(max-width:640px){.album20-nav{grid-template-columns:1fr 1fr}.album20-dots{display:none}.album20-btn b{max-width:120px}.album20-frame{border-radius:18px}}

/* ---- article bodies: legacy media never larger than the column ---- */
.prose video{max-width:min(100%,540px);height:auto;display:block;margin:0 auto 22px;border-radius:16px}
.prose iframe{max-width:100%}
.prose img{height:auto}
.tpl-default .prose>div>video:first-child{margin-top:0}

/* ---- contact page ---- */
.contact-columns{align-items:start}
.contact-columns .h-accent{margin-top:0}
.contact-map{margin-top:0}
.contact-map iframe{display:block;width:100%;min-height:420px;border:0;border-radius:var(--radius)}
.sidebar .block.block-media,.sidebar .block-media{background:none;border:0;padding:0;box-shadow:none}
.sidebar .block-media video,.sidebar .block-media img{width:100%;height:auto;display:block;border-radius:18px}
/* listings beside a sidebar: two columns, whatever the fetch returns */
@media(min-width:1024px){.layout-sidebar .main-col .cards{grid-template-columns:repeat(2,1fr)!important}}
.post-hero,.page-hero{overflow:hidden;isolation:isolate}

/* =====================================================================
   v5.0.3
   ===================================================================== */
:root{--blue:#6a85cc;--blue-d:#5570b8;--blue-l:#eef2fb}

/* ---- Chinese text one point larger (headings unchanged) ---- */
html[lang^="zh"] body{font-size:17px}
html[lang^="zh"] .prose{font-size:18px}
html[lang^="zh"] .nav>li>a{font-size:16px}
html[lang^="zh"] .nav-sub a,html[lang^="zh"] .mnav-link,html[lang^="zh"] .mnav-sub a{font-size:15.5px}
html[lang^="zh"] .side-menu a,html[lang^="zh"] .contact-line,html[lang^="zh"] .card-text,html[lang^="zh"] .footer-address,html[lang^="zh"] .footer-line{font-size:15.5px}

/* ---- header: the bar keeps one height while scrolling (no layout jump) ---- */
.site-header.is-scrolled .navbar-inner{height:var(--header-h)}
.site-header.is-scrolled .brand-logo{height:78px}
.site-header.is-scrolled .brand-logo-2{height:68px}
.brand-logo,.brand-logo-2{transition:height .35s var(--ease)}
@media(max-width:1023px){.site-header.is-scrolled .navbar-inner{height:var(--header-h)}.site-header.is-scrolled .brand-logo{height:58px}.site-header.is-scrolled .brand-logo-2{height:50px}}

/* ---- module titles and accents carry a colour; buttons and bands are toned ---- */
.block-title,.side-menu .block-title,.contact-card .block-title{color:var(--green-d)}
.footer-h,.footer-h-contact,.footer-lbl{color:var(--green)}
.side-menu li.is-current>a{background:var(--blue-l);color:var(--blue-d)}
.side-menu li.is-current>a::before{background:var(--blue);box-shadow:0 0 0 4px rgba(106,133,204,.2)}
.btn-outline{color:var(--blue-d);border-color:var(--blue)}
.btn-outline:hover{background:var(--blue);color:#fff;border-color:var(--blue)}
.btn-ghost{color:var(--blue-d);border-color:rgba(106,133,204,.5)}
.btn-ghost:hover{background:var(--blue-l);border-color:var(--blue);color:var(--blue-d)}
.card-more{color:var(--blue-d)}
.card-kicker{color:var(--blue-d)}
.section-alt{background:linear-gradient(180deg,#f3f7f5,#eef3f0)}
.card-date b{color:var(--green-d)}
.prevnext .pn{border-color:rgba(106,133,204,.35)}
.prevnext .pn:hover{border-color:var(--blue);color:var(--blue-d)}
.pager a:hover,.pager .is-active{background:var(--blue);border-color:var(--blue);color:#fff}
.filter-chips .chip:hover{background:var(--blue-l);color:var(--blue-d);border-color:var(--blue)}

/* ---- home: three family videos on one row, same height ---- */
.family-item{aspect-ratio:3/4;overflow:hidden;border-radius:20px;background:#0e1f18;border:1px solid rgba(255,255,255,.22);box-shadow:0 30px 60px -30px rgba(0,0,0,.6);transition:transform .4s var(--ease),box-shadow .4s}
.family-item video{width:100%!important;height:100%!important;object-fit:cover;border:0;border-radius:0;box-shadow:none;background:transparent}
.family-item:hover{transform:translateY(-6px);box-shadow:0 40px 70px -30px rgba(0,0,0,.7)}
.family-item:hover video{transform:none;box-shadow:none}
@media(max-width:640px){.family-item{aspect-ratio:4/5}}
/* smaller gap between the hero and the mascot */
.hs-mascot{padding-top:clamp(28px,4vw,48px)}
.hero-media{inset:-12% 0}

/* ---- inner page banner: designed backdrop; a photo only when one is set ---- */
.page-hero.has-cover,.post-hero.has-cover{background:linear-gradient(120deg,#0f2a20 0%,#1d5f47 55%,#2c8767 100%)}
.page-hero.has-cover::before,.post-hero.has-cover::before{background:linear-gradient(180deg,rgba(9,20,16,.35),rgba(9,20,16,.72))}
.page-hero-bg img,.post-hero-bg img{object-position:center 28%}
.page-hero.has-cover::after,.post-hero.has-cover::after{content:"";position:absolute;right:-6%;top:-60%;width:46vw;height:46vw;max-width:680px;max-height:680px;border-radius:50%;background:radial-gradient(circle,rgba(82,190,148,.35),transparent 62%);z-index:-1;filter:blur(10px)}
.page-hero.no-photo .page-hero-bg,.post-hero.no-photo .post-hero-bg{display:none}

/* ---- founder page: the portrait animation at the old size ---- */
.A20A-founder{max-width:300px;margin:0 auto}
.A20A-founder video,.A20A-founder img{width:100%;height:auto}
.A20A-hero-title{font-size:clamp(24px,3vw,34px)}

/* ---- telephone lists: one icon, numbers with their purpose ---- */
.footer-phones .footer-lbl{display:block;margin-bottom:6px}
.footer-phone{display:block;margin:0 0 9px;color:#d3e2db}
.footer-phone small{display:block;color:#8ea59b;line-height:1.3;font-size:12.5px}
.footer-phone b{display:block;color:#fff;font-weight:700}
.footer-phone:hover b{color:var(--green)}
.contact-ico{flex:none;width:34px;height:34px;border-radius:10px;background:var(--green-l);display:grid;place-items:center;color:var(--green-d)}
.contact-ico .ico{margin:0;width:1.1em;height:1.1em;color:var(--green-d)}
.contact-line{align-items:flex-start}
.contact-phones-list{display:flex;flex-direction:column;gap:8px;padding-top:4px}
.contact-phone{display:block;line-height:1.3}
.contact-phone small{display:block;color:var(--muted);font-size:12.5px;margin-bottom:1px}
.contact-phone b{display:block;color:var(--ink);font-weight:700}
.contact-phone:hover b{color:var(--green-d)}

/* ---- contact page cards ---- */
.contact-layout{display:grid;grid-template-columns:1.2fr .9fr 1fr;grid-template-rows:auto auto;gap:22px}
.ccard{position:relative;display:block;background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px 28px 26px;box-shadow:var(--shadow-sm);color:var(--ink-2);transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s}
.ccard:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:rgba(82,190,148,.5)}
.ccard-icon{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--green-l);color:var(--green-d);margin-bottom:14px}
.ccard-icon .ico{width:22px;height:22px}
.ccard-title{margin:0 0 10px;font-size:15px;letter-spacing:.08em;text-transform:uppercase;color:var(--green-d)}
.ccard-address{grid-column:1/3;grid-row:1;background:linear-gradient(135deg,#fff,var(--green-ll))}
.ccard-company{font-family:var(--font-head);font-weight:800;font-size:clamp(18px,1.6vw,22px);color:var(--ink);margin:0 0 6px}
.ccard-addr{font-style:normal;font-size:16px;line-height:1.7;margin:0 0 12px;max-width:44ch}
.ccard-hours{display:flex;gap:8px;align-items:flex-start;color:var(--muted);margin:0 0 14px}
.ccard-hours .ico{color:var(--green);margin-top:4px}
.ccard-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:6px}
.ccard-map{grid-column:3;grid-row:1/3;padding:0;overflow:hidden;min-height:340px}
.ccard-map .map-wrap,.ccard-map iframe{width:100%;height:100%;min-height:340px;border:0;display:block}
.ccard-phone{grid-column:1;grid-row:2}
.ccard-phones{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ccard-phones li{border-top:1px dashed var(--line);padding-top:10px}
.ccard-phones li:first-child{border-top:0;padding-top:0}
.ccard-phones a{display:block;line-height:1.3}
.ccard-phones small{display:block;color:var(--muted);font-size:13px;margin-bottom:2px}
.ccard-phones b{font-size:18px;color:var(--ink);font-weight:700;letter-spacing:.01em}
.ccard-phones a:hover b{color:var(--green-d)}
.ccard-stack{grid-column:2;grid-row:2;display:grid;gap:22px;align-content:start}
.ccard-big{display:block;font-size:17px;font-weight:700;color:var(--ink);word-break:break-all}
.ccard-hint{display:inline-flex;align-items:center;gap:6px;margin-top:8px;color:var(--green-d);font-weight:600;font-size:14px}
.ccard-wa{background:linear-gradient(135deg,#fff,#eaf8f1)}
.ccard-wa .ccard-icon{background:#25d366;color:#fff}
.ccard-email .ccard-icon{background:var(--blue-l);color:var(--blue-d)}
.ccard-email .ccard-title{color:var(--blue-d)}
@media(max-width:1023px){.contact-layout{grid-template-columns:1fr 1fr}.ccard-address{grid-column:1/3;grid-row:auto}.ccard-map{grid-column:1/3;grid-row:auto;min-height:320px}.ccard-phone{grid-column:1;grid-row:auto}.ccard-stack{grid-column:2;grid-row:auto}}
@media(max-width:640px){.contact-layout{grid-template-columns:1fr}.ccard-address,.ccard-map,.ccard-phone,.ccard-stack{grid-column:1}}

/* ---- footer contact card QR ---- */
.vcard-box{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.vcard-qr{all:unset;cursor:pointer;display:block;width:150px;height:150px;background:#fff;border-radius:14px;padding:6px;box-sizing:border-box;box-shadow:0 10px 30px -14px rgba(0,0,0,.6);transition:transform .3s var(--ease)}
.vcard-qr:hover{transform:scale(1.04)}
.vcard-qr svg{display:block;width:100%;height:100%}
.vcard-cap{margin:2px 0 0;font-size:13px;color:#b8cbc2;max-width:190px}
.vcard-dl{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--green);font-weight:600}
.vcard-dl:hover{color:#fff}
.vcard-overlay{position:fixed;inset:0;z-index:2000;background:rgba(10,20,16,.7);display:grid;place-items:center;padding:20px;opacity:0;transition:opacity .25s}
.vcard-overlay.is-open{opacity:1}
.vcard-modal{position:relative;background:#fff;border-radius:22px;padding:34px 30px 28px;text-align:center;max-width:420px;width:100%;transform:translateY(12px);transition:transform .25s var(--ease)}
.vcard-overlay.is-open .vcard-modal{transform:none}
.vcard-modal-qr svg{width:min(320px,70vw);height:auto;display:block;margin:0 auto 14px}
.vcard-modal-cap{color:var(--muted);margin:0 0 16px}
.vcard-close{all:unset;position:absolute;right:14px;top:10px;font-size:28px;line-height:1;color:var(--muted);cursor:pointer;padding:4px 8px}
.vcard-close:hover{color:var(--ink)}

/* ---- commemorative album: a screen-sized slideshow ---- */
.section-album20{background:linear-gradient(180deg,#e9efec,#f4f7f5 60%)}
.album20-frame{background:#fff;border:2px solid rgba(82,190,148,.55);box-shadow:0 30px 70px -30px rgba(23,33,43,.45),0 0 0 8px rgba(82,190,148,.08);min-height:min(66vh,640px);max-height:none;display:flex;align-items:center;justify-content:center;padding:clamp(36px,5vw,64px) clamp(24px,6vw,84px)}
.album20-frame::before{inset:10px;border-color:rgba(82,190,148,.35)}
.album20-corner{border-color:var(--green-d);opacity:.9}
.album20-body{width:100%;max-width:820px;margin:0 auto;text-align:center}
.album20-stage .album20-body [class$="-grid"],.album20-stage .album20-body [class$="-wrap"]{display:block;justify-items:center;text-align:center;max-width:none}
.album20-stage .album20-body [class$="-blank"]{display:none!important}
.album20-stage .album20-body [class$="-content"]{margin:0 auto;max-width:720px}
.album20-stage .album20-body p,.album20-stage .album20-body h2,.album20-stage .album20-body h3,.album20-stage .album20-body li{text-align:center}
.album20-body img{max-width:100%;height:auto;margin:0 auto}
.album20-frame.is-leaving-left .album20-body{animation:a20out .26s ease-in forwards}
.album20-frame.is-leaving-right .album20-body{animation:a20outR .26s ease-in forwards}
.album20-frame.is-entering-right .album20-body{opacity:0;transform:translateX(60px)}
.album20-frame.is-entering-left .album20-body{opacity:0;transform:translateX(-60px)}
.album20-frame.is-entering-right.is-in .album20-body,.album20-frame.is-entering-left.is-in .album20-body{animation:a20in .5s var(--ease) forwards}
@keyframes a20out{to{opacity:0;transform:translateX(-60px)}}
@keyframes a20outR{to{opacity:0;transform:translateX(60px)}}
@keyframes a20in{from{opacity:0}to{opacity:1;transform:none}}
.album20-arrow{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 12px 28px -10px rgba(82,190,148,.8)}
.album20-arrow:hover{background:var(--green-dd);border-color:var(--green-dd)}
.album20-btn{border-color:rgba(106,133,204,.45);color:var(--blue-d)}
.album20-btn b{color:var(--ink)}
.album20-btn:hover{border-color:var(--blue);background:var(--blue-l)}
.album20-dots a.is-on{background:var(--blue)}
.album20-page-no{color:var(--green-d)}

/* ---- post cards: whole poster, and a designed card when there is no picture ---- */
.card-media-poster{aspect-ratio:auto;background:linear-gradient(180deg,#f2f6f4,#e9efec);padding:14px}
.card-media-poster img{width:100%;height:auto;object-fit:contain;border-radius:12px;box-shadow:0 12px 24px -14px rgba(23,33,43,.45);transition:transform .6s var(--ease)}
.card:hover .card-media-poster img{transform:translateY(-4px)}
.card-band{position:relative;display:block;min-height:150px;background:linear-gradient(135deg,var(--green-d),var(--green) 60%,#7fd1b3);overflow:hidden}
.card-band::after{content:"";position:absolute;inset:-40% -10%;background:repeating-linear-gradient(115deg,rgba(255,255,255,.08) 0 1px,transparent 1px 34px)}
.card-band-mark{position:absolute;right:18px;bottom:-14px;font-family:var(--font-head);font-weight:800;font-size:110px;line-height:1;color:rgba(255,255,255,.16);z-index:1}
.card-band-date{position:absolute;left:14px;top:14px;background:#fff;color:var(--ink);border-radius:12px;padding:8px 10px;text-align:center;line-height:1;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:3px;min-width:52px;z-index:2}
.card-band-date b{font-size:20px;color:var(--green-d)}
.card-band-date span{font-size:11px;color:var(--muted)}
.card-text-only .card-title{font-size:19px}
.card-text-only .card-text{-webkit-line-clamp:5}
.album20-stage .album20-body *{max-width:100%!important;box-sizing:border-box}
.album20-stage .album20-body [class*="-page"],.album20-stage .album20-body [class$="-wrap"],.album20-stage .album20-body [class$="-grid"]{width:auto!important;min-width:0!important;min-height:0!important;padding:0!important;margin:0 auto!important;display:block!important}
.album20-stage .album20-body [class$="-content"],.album20-stage .album20-body [class$="-copy"]{margin:0 auto!important;width:auto!important}
/* the old template's .family-row/.family-item rules (legacy.css) must not reflow the home band */
.hs-values .family-row{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:clamp(14px,2.4vw,32px)!important;margin:0 auto!important;max-width:1180px!important;align-items:stretch!important}
.hs-values .family-item{max-width:none!important;width:auto!important;aspect-ratio:3/4;margin:0!important;padding:0!important}
@media(max-width:640px){.hs-values .family-row{grid-template-columns:1fr!important;max-width:420px!important}}

/* ===== v5.0.4 ===== */
.ccard{border:2px solid rgba(82,190,148,.55);box-shadow:0 10px 30px -22px rgba(23,33,43,.35);transition:none}
.ccard:hover{transform:none;box-shadow:0 10px 30px -22px rgba(23,33,43,.35);border-color:rgba(82,190,148,.55)}
.ccard-email{border-color:rgba(106,133,204,.55)}
.ccard-email:hover{border-color:rgba(106,133,204,.55)}
.ccard-wa{border-color:rgba(37,211,102,.55)}
.ccard-wa:hover{border-color:rgba(37,211,102,.55)}
.ccard[data-tilt]{transform:none!important}
.block-title,.side-menu .block-title,.contact-card .block-title{font-size:17.5px;letter-spacing:.04em}
.footer-h,.footer-h-contact{font-size:16px}
html[lang^="zh"] .block-title,html[lang^="zh"] .side-menu .block-title,html[lang^="zh"] .contact-card .block-title{font-size:18.5px;letter-spacing:.02em}
/* commemorative album: one fixed, screen-fitting stage — content centred, long pages scroll inside, arrows never move */
:root{--album20-h:clamp(400px,calc(100vh - var(--header-h) - 230px),560px)}
.album20-frame{height:var(--album20-h)!important;min-height:0!important;max-height:none;display:flex!important;align-items:center;justify-content:center;overflow:auto;padding:clamp(28px,4vw,48px) clamp(24px,6vw,84px);scrollbar-width:thin}
.album20-frame .album20-body{margin:auto;width:100%;max-width:820px}
.album20-stage .album20-body>*:first-child{margin-top:0!important}
.album20-stage .album20-body>*:last-child{margin-bottom:0!important}
.album20-stage .album20-body [class*="-page"],.album20-stage .album20-body [class$="-wrap"],.album20-stage .album20-body [class$="-grid"],.album20-stage .album20-body [class$="-content"],.album20-stage .album20-body [class$="-copy"]{height:auto!important;min-height:0!important;padding-top:0!important;padding-bottom:0!important}
.album20-stage .album20-body h1,.album20-stage .album20-body h2,.album20-stage .album20-body h3{margin-top:0}
.album20-arrow{top:calc(var(--album20-h) / 2)}
.album20-frame.is-entering-right .album20-body,.album20-frame.is-entering-left .album20-body{margin:auto}
@media(max-width:1100px){:root{--album20-h:clamp(360px,calc(100vh - var(--header-h) - 260px),520px)}}

/* =====================================================================
   v5.0.5
   ===================================================================== */

/* ---- home hero: lighter mask, more of the photo ---- */
.hero-overlay{background:linear-gradient(105deg,rgba(14,32,26,.58) 0%,rgba(14,32,26,.34) 45%,rgba(14,32,26,.06) 100%)}
.hero-glow{opacity:.32}
.hero-title{text-shadow:0 2px 6px rgba(0,0,0,.35),0 6px 34px rgba(0,0,0,.4)}
.hero-text{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.45),0 4px 18px rgba(0,0,0,.35)}
.hero-kicker{background:rgba(14,32,26,.32)}

/* ---- main menu: the old site's typeface and sizes, right-aligned, no search icon ---- */
:root{--font-menu:"Microsoft YaHei","微软雅黑","PingFang SC","Hiragino Sans GB","Helvetica Neue",Helvetica,Arial,"Noto Sans CJK SC","Noto Sans SC",sans-serif}
html[lang^="zh"] :is(.nav-link,.nav-sub a,.nav-sub-h,.mnav-link,.mnav-sub a,.mnav-sub-h){font-family:var(--font-menu)}
html[lang^="zh"] .nav>li>.nav-link{font-size:18px;font-weight:700;padding:10px 15px;line-height:1.5}
html[lang^="zh"] :is(.nav-sub a,.nav-sub-h){font-size:16px;font-weight:400;line-height:1.45}
html[lang^="zh"] .nav>li>a{font-size:18px}
html[lang^="zh"] .nav-sub a{font-size:16px}
html[lang^="zh"] .mnav-link{font-weight:700}
html[lang^="zh"] .mnav-sub a{font-weight:400}
.nav>li.nav-cta>.nav-link{background:none;color:var(--ink-2);margin-left:0}
.nav>li.nav-cta>.nav-link:hover,.nav>li.nav-cta.is-active>.nav-link{background:var(--green-l);color:var(--green-dd)}
@media(min-width:1024px){
  .navbar-inner{grid-template-columns:auto 1fr}
  .nav-tools{display:none}
  .main-nav{justify-content:flex-end;padding-right:clamp(24px,4vw,64px)}
}
@media(max-width:1400px){html[lang^="zh"] .nav>li>.nav-link{font-size:17px;padding:10px 12px}}
@media(max-width:1280px){html[lang^="zh"] .nav>li>.nav-link{font-size:16px;padding:10px 10px}.main-nav{padding-right:clamp(12px,2vw,32px)}}
@media(max-width:1180px){html[lang^="zh"] .nav>li>.nav-link{font-size:15px;padding:10px 8px}}
@media(max-width:1090px){html[lang^="zh"] .nav>li>.nav-link{font-size:14px;padding:10px 6px}.main-nav{padding-right:8px}}
/* dropdowns of the last two items open to the left so they never leave the screen */
.nav>li:nth-last-child(-n+2)>.nav-drop{left:auto;right:0}
.nav>li:nth-last-child(-n+2)>.nav-drop .nav-sub::before{left:auto;right:28px}
.nav>li>.nav-drop-wide{left:auto;right:0}
.nav>li>.nav-drop-wide .nav-sub::before{left:auto;right:28px}
/* English labels are long: tighter steps, and the anniversary badge steps aside on small desktops */
@media(max-width:1439px){html[lang^="en"] .nav>li>.nav-link{font-size:14px;padding:10px 8px}}
@media(max-width:1279px){html[lang^="en"] .nav>li>.nav-link{font-size:13.5px;padding:10px 6px}html[lang^="en"] .nav-caret{width:12px;height:12px}}
@media(max-width:1120px) and (min-width:1024px){.brand-badge{display:none}html[lang^="en"] .nav>li>.nav-link{font-size:13px;padding:10px 5px}}
/* hero secondary button stays readable on the lighter photo */
.hero-actions .btn-ghost,.hero-actions .btn-outline{background:rgba(14,32,26,.4);color:#fff;border-color:rgba(255,255,255,.75);text-shadow:0 1px 2px rgba(0,0,0,.35);backdrop-filter:blur(4px)}
.hero-actions .btn-ghost:hover,.hero-actions .btn-outline:hover{background:rgba(255,255,255,.94);color:var(--blue-d);border-color:#fff;text-shadow:none}

/* =====================================================================
   v5.0.6
   ===================================================================== */

/* ---- site width: a little more breathing room left and right ---- */
:root{--container:1140px;--gutter:clamp(20px,5.5vw,72px)}

/* ---- main menu: medium weight like the old site (not bold) ---- */
html[lang^="zh"] .nav>li>.nav-link{font-weight:500}
html[lang^="zh"] .mnav-link{font-weight:500}

/* ---- home: mascot on the right, quote on its left, tighter gap below ---- */
.hs-mascot{padding-top:clamp(24px,3.5vw,40px);padding-bottom:clamp(16px,2.5vw,28px)}
.hs-mascot-inner{grid-template-columns:minmax(0,1fr) auto;align-items:center;justify-items:stretch;gap:clamp(24px,5vw,72px)}
.hs-mascot-video{justify-self:end}
.hs-mascot-video video{width:min(100%,340px)}
.hs-quote{justify-self:start;text-align:left;max-width:22ch}
.hs-quote::before,.hs-quote::after{margin-left:0;margin-right:0}
.hs-vision{padding-top:clamp(28px,4vw,52px)}
@media(max-width:767px){.hs-mascot-inner{grid-template-columns:1fr;justify-items:center}.hs-mascot-video{justify-self:center;order:-1}.hs-quote{justify-self:center;text-align:center;max-width:26ch}.hs-quote::before,.hs-quote::after{margin-left:auto;margin-right:auto}}

/* ---- home: closing line band is short, text dead centre ---- */
.hs-closing{display:grid;place-items:center;min-height:0;padding:clamp(30px,4vw,54px) var(--gutter)}
.hs-closing .container{display:grid;place-items:center;width:100%}
.hs-closing .swf-closing-line{margin:0!important;padding:0!important;text-align:center}

/* ---- home: awards titles larger, less space before the next section ---- */
.hs-awards{padding-bottom:clamp(28px,3.5vw,44px)}
.award-column-swf strong{font-size:17.5px;line-height:1.3;margin-bottom:8px}
.award-column-swf div{font-size:15px}
.hs-sharing{padding-top:clamp(32px,4vw,52px)}
html[lang^="zh"] .award-column-swf strong{font-size:18px}

/* ---- floating WhatsApp: toned brand green ---- */
.float-wa{background:linear-gradient(145deg,#7ad3b1 0%,#52be94 55%,#3aa57c 100%);animation:waPulse2 3s infinite,waJump 12s ease-in-out infinite}
@keyframes waPulse2{0%,100%{box-shadow:0 12px 30px -10px rgba(0,0,0,.35),0 0 0 0 rgba(82,190,148,.45)}50%{box-shadow:0 12px 30px -10px rgba(0,0,0,.35),0 0 0 14px rgba(82,190,148,0)}}

/* ---- footer: version line smaller and grey; back-to-top lifts above the copyright strip ---- */
.footer-bottom-inner{padding:16px var(--gutter) 18px;gap:2px}
.footer-copy{font-size:13.5px;color:#a9bdb4}
.footer-version{font-size:11.5px;color:#6f8a7f;letter-spacing:.02em}
.to-top{bottom:calc(22px + var(--lift,0px));transition:opacity .35s,transform .45s var(--ease),bottom .3s var(--ease)}
.vcard-dl{display:none}

/* ---- footer: policies column + one-line disclaimer ---- */
.footer-grid{grid-template-columns:1.35fr .95fr 1.05fr .75fr;gap:clamp(24px,3.5vw,48px)}
.footer-policy-list{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.footer-policy-list a{color:#d3e2db;font-size:14.5px;line-height:1.5;display:inline-flex;gap:8px;align-items:flex-start;transition:color .2s,transform .2s}
.footer-policy-list a::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--green);margin-top:8px;opacity:.85}
.footer-policy-list a:hover{color:#fff;transform:translateX(3px)}
.footer-disclaimer{margin:26px 0 0;font-size:12.5px;line-height:1.65;color:#8ea59b}
html[lang^="zh"] .footer-policy-list a{font-size:15px}
@media(max-width:1000px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.footer-grid{grid-template-columns:1fr}}
.footer-grid{grid-template-columns:1.1fr .85fr 1.25fr .8fr}
.footer-certs .block-body img,.site-footer .footer-certs img{width:130px!important}
.footer-certs .block-body>div{gap:14px 20px}
@media(max-width:1000px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.footer-grid{grid-template-columns:1fr}}

/* ---- inner-page hero: one standard block on every page (no photos), gentle glow + edge light ---- */
.page-hero.has-cover,.post-hero.has-cover,.post-hero.album-hero{min-height:320px;padding:64px 0 40px;display:flex;align-items:flex-end;background:linear-gradient(120deg,#0f2a20 0%,#1d5f47 55%,#2c8767 100%)}
.page-hero-bg,.post-hero-bg{display:none!important}
.page-hero .page-title,.post-hero .page-title{font-size:clamp(28px,3.4vw,44px);line-height:1.15}
.page-hero.has-cover::before,.post-hero.has-cover::before{background:linear-gradient(180deg,rgba(9,20,16,.28),rgba(9,20,16,.62))}
.page-hero.has-cover::after,.post-hero.has-cover::after{animation:heroBlob 22s ease-in-out infinite alternate;opacity:.9}
@keyframes heroBlob{0%{transform:translate(0,0) scale(1);opacity:.75}50%{transform:translate(-6vw,4vh) scale(1.12);opacity:1}100%{transform:translate(2vw,-3vh) scale(.94);opacity:.8}}
.hero-glow-soft{position:absolute;inset:0;z-index:-1;pointer-events:none;mix-blend-mode:screen;background:radial-gradient(34vw 60% at 18% 60%,rgba(120,220,180,.28),transparent 65%);animation:heroGlowSoft 20s ease-in-out infinite alternate}
@keyframes heroGlowSoft{0%{transform:translateX(-4%);opacity:.7}100%{transform:translateX(6%);opacity:1}}
.hero-edge{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.hero-edge::before,.hero-edge::after{content:"";position:absolute;height:2px;width:26vw;min-width:180px;background:linear-gradient(90deg,transparent,rgba(191,233,215,.9) 45%,#fff 50%,rgba(191,233,215,.9) 55%,transparent);box-shadow:0 0 12px 1px rgba(191,233,215,.55),0 0 28px 4px rgba(82,190,148,.35);opacity:.8}
.hero-edge::before{top:0;left:-30vw;animation:edgeRun 14s linear infinite}
.hero-edge::after{bottom:0;right:-30vw;animation:edgeRunBack 14s linear infinite;animation-delay:-7s}
@keyframes edgeRun{0%{left:-30vw}100%{left:110vw}}
@keyframes edgeRunBack{0%{right:-30vw}100%{right:110vw}}
.page-hero .container,.post-hero .container{position:relative;z-index:1}
@media(max-width:767px){.page-hero.has-cover,.post-hero.has-cover,.post-hero.album-hero{min-height:240px;padding:44px 0 28px}}
@media(prefers-reduced-motion:reduce){.hero-edge::before,.hero-edge::after,.hero-glow-soft,.page-hero.has-cover::after,.post-hero.has-cover::after{animation:none!important}}

/* ---- founder's message: portrait video centred ---- */
.A20A-founder{margin-left:auto!important;margin-right:auto!important}
.A20A-founder video{display:block;margin:0 auto}

/* ---- 20周年 pages: Chinese body text at the site's larger size ---- */
html[lang^="zh"] .tpl-album20 .album20-body,html[lang^="zh"] .A20A-page,html[lang^="zh"] .tpl-album20 .prose{font-size:18px}
html[lang^="zh"] .album20-body :is(p,li,dd,td){font-size:18px!important;line-height:1.8}
html[lang^="zh"] .album20-body :is(small,figcaption){font-size:15px!important}
html[lang^="zh"] .A20A-page :is(p,li){font-size:max(1em,17px)}

/* ---- commemorative album: dots in one row, no prev/next text buttons, themed scrollbar, toned arrows ---- */
.album20-nav{display:block;margin-top:22px}
.album20-dots{display:flex;flex-wrap:nowrap;justify-content:center;gap:7px;max-width:none;margin:0 auto}
.album20-dots a{width:9px;height:9px;flex:none}
.album20-dots a.is-on{width:24px}
.album20-btn{display:none!important}
.album20-frame{scrollbar-width:thin;scrollbar-color:rgba(82,190,148,.55) #eef4f1}
.album20-frame::-webkit-scrollbar{width:8px;height:8px}
.album20-frame::-webkit-scrollbar-track{background:#eef4f1;border-radius:8px}
.album20-frame::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#8fd9bd,#52be94);border-radius:8px;border:2px solid #eef4f1}
.album20-frame::-webkit-scrollbar-thumb:hover{background:#3aa57c}
.album20-arrow{background:linear-gradient(145deg,#8fd9bd 0%,#52be94 55%,#3aa57c 100%);border-color:transparent;box-shadow:0 12px 26px -12px rgba(58,165,124,.75)}
.album20-arrow:hover{background:linear-gradient(145deg,#52be94,#2f8a66);border-color:transparent}
.album20-body .CA-page-numbering{display:block!important;margin-top:1.8em!important;padding-top:.2em;text-align:center;font-size:13.5px;color:var(--muted)}
@media(max-width:640px){.album20-dots{display:flex;gap:5px}.album20-dots a{width:7px;height:7px}.album20-dots a.is-on{width:18px}}

/* ---- chapter map under the stage (replaces the side module "20周年专辑") ---- */
.album20-map{margin-top:18px;position:relative}
.album20-map-track{-webkit-mask-image:linear-gradient(90deg,transparent,#000 36px,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(90deg,transparent,#000 36px,#000 calc(100% - 36px),transparent)}
.album20-map-track{display:flex;gap:0;overflow-x:auto;overscroll-behavior-x:contain;padding:16px 26px 10px;scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x proximity}
.album20-map-track::-webkit-scrollbar{display:none}
.album20-chip{position:relative;flex:0 0 104px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:9px;padding:0 6px;color:var(--muted);scroll-snap-align:center;transition:color .25s,transform .25s}
.album20-chip::before{content:"";position:absolute;top:19px;left:50%;width:100%;height:2px;background:linear-gradient(90deg,rgba(82,190,148,.45),rgba(82,190,148,.25));z-index:0}
.album20-chip:last-child::before{display:none}
.album20-chip b{position:relative;z-index:1;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#fff;border:2px solid rgba(82,190,148,.45);color:var(--green-dd);font-size:14px;font-weight:700;letter-spacing:.02em;box-shadow:0 6px 14px -8px rgba(23,33,43,.35);transition:all .3s var(--ease)}
.album20-chip span{font-size:12.5px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:100px}
.album20-chip:hover{color:var(--ink)}
.album20-chip:hover b{transform:translateY(-3px);border-color:var(--green);box-shadow:0 10px 18px -8px rgba(82,190,148,.6)}
.album20-chip.is-done b{background:var(--green-l);border-color:rgba(82,190,148,.6)}
.album20-chip.is-done::before{background:linear-gradient(90deg,var(--green),rgba(82,190,148,.6))}
.album20-chip.is-on{color:var(--green-dd);font-weight:700}
.album20-chip.is-on b{background:linear-gradient(145deg,#8fd9bd,#3aa57c);border-color:transparent;color:#fff;transform:scale(1.12);box-shadow:0 0 0 6px rgba(82,190,148,.18),0 10px 20px -8px rgba(58,165,124,.7)}
html[lang^="zh"] .album20-chip span{font-size:13.5px}
@media(max-width:640px){.album20-chip{flex-basis:88px}.album20-chip span{font-size:11.5px}}

/* ---- galleries: smaller cards (5 per row, 4 in Media Report), whole cover visible, folder cards ---- */
.section-gallery .cards{gap:18px}
.section-gallery .card-album .card-media{aspect-ratio:4/3;background:linear-gradient(160deg,#eef5f1,#e4efe9);display:grid;place-items:center}
.section-gallery .card-album .card-media img{object-fit:contain;padding:6px;box-sizing:border-box}
.section-gallery .card-album .card-title{font-size:14.5px;line-height:1.35}
.section-gallery .card-album .card-body{padding:12px 14px 14px}
.section-gallery .card-album .card-meta{font-size:12px}
.section-gallery .card-album .card-kicker{font-size:11px;margin-bottom:4px}
.card-album-group .card-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(23,33,43,.25));pointer-events:none}
.card-album-group .album-count-group{background:var(--green-dd)}
html[lang^="zh"] .section-gallery .card-album .card-title{font-size:15px}
@media(min-width:1024px){
  .layout-sidebar .main-col .cards{grid-template-columns:repeat(3,1fr)!important}
  .layout-sidebar .main-col .cards-4,.layout-sidebar .main-col .cards-5{grid-template-columns:repeat(4,1fr)!important}
  .layout-sidebar-wide{grid-template-columns:minmax(0,1fr) 400px}
}
/* side modules holding a table (e.g. 线上报导 / Online Reports): plain wide table, no inner scrollbars, rows top-aligned */
.sidebar .block-body .table-scroll{overflow:visible;border:0;margin:0}
.sidebar .block-body table{width:100%;table-layout:fixed;border-collapse:collapse;margin:0}
.sidebar .block-body td{vertical-align:top!important;padding:6px 6px 6px 0!important;font-size:13px;line-height:1.45;border:0!important;word-break:break-word;background:none!important}
.sidebar .block-body td:first-child{width:24%!important;white-space:nowrap;color:var(--muted)}
.sidebar .block-body td:nth-child(2){width:30%!important;color:var(--ink-2)}
.sidebar .block-body td a{color:var(--blue-d)}
.sidebar .block-body td a:hover{text-decoration:underline}
.sidebar .block-list .block-body>div+div{border-top:1px dashed var(--line);padding-top:2px}

/* ---- media interviews: designed table, coloured icons, linked hosts ---- */
.itable{border:1px solid rgba(82,190,148,.35);border-radius:18px;box-shadow:0 18px 40px -30px rgba(23,33,43,.35)}
.itable-head{background:linear-gradient(120deg,#0f2a20,#1d5f47 60%,#2c8767);color:#dff3ea;font-size:12.5px;letter-spacing:.1em;padding:14px 20px}
.itable-head span{position:relative}
.itable-row{border-top:1px solid rgba(82,190,148,.22);padding:14px 20px}
.itable-row:nth-child(even){background:#fbfdfc}
.itable-row:hover{background:var(--green-ll);box-shadow:inset 4px 0 0 var(--green)}
.i-date{color:var(--green-dd)}
.i-station a{color:var(--blue-d);font-weight:600}
.i-station a:hover{text-decoration:underline}
.i-host{display:flex;flex-wrap:wrap;gap:4px 10px;color:var(--ink-2);font-size:13.5px}
.i-host-name{display:inline-block}
.i-host-link{display:inline-flex;align-items:center;gap:5px;color:var(--ink-2);border-radius:999px;padding:2px 8px 2px 4px;background:var(--bg-alt);border:1px solid var(--line);transition:all .25s var(--ease)}
.i-host-link .ico{width:15px;height:15px;flex:none}
.i-host-link:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm);color:var(--ink)}
.i-host-facebook .ico{color:#1877f2}
.i-host-instagram .ico{color:#e1306c}
.i-host-youtube .ico{color:#ff0000}
.i-host-tiktok .ico{color:#111}
.i-host-external .ico{color:var(--green-d)}
.ilink{border-color:var(--line-2);box-shadow:0 4px 10px -6px rgba(23,33,43,.3)}
.ilink-mp3{color:var(--green-d);border-color:rgba(82,190,148,.5)}
.ilink-yt{color:#ff0000;border-color:rgba(255,0,0,.35)}
.ilink-fb{color:#1877f2;border-color:rgba(24,119,242,.35)}
.ilink-web{color:var(--blue-d);border-color:rgba(106,133,204,.45)}
.ilink-web:hover{background:var(--blue);border-color:var(--blue)}
.ilink:hover{box-shadow:0 8px 16px -8px rgba(23,33,43,.45)}

/* ---- custom drop-downs (all <select> in filters and pagers): rolled-out list, hover highlight ---- */
.dd{position:relative;display:inline-block;min-width:0}
.dd select{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none}
.dd-btn{display:inline-flex;align-items:center;gap:8px;height:100%;min-height:36px;padding:0 8px 0 4px;border:0;background:none;font:inherit;font-size:15px;color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:999px;transition:color .2s}
.dd-btn .ico{width:14px;height:14px;color:var(--green-d);transition:transform .35s var(--ease)}
.dd.is-open .dd-btn .ico{transform:rotate(180deg)}
.dd-btn:hover{color:var(--green-dd)}
.dd-list{position:absolute;top:calc(100% + 10px);left:0;min-width:100%;width:max-content;max-width:min(320px,80vw);margin:0;padding:6px;list-style:none;background:#fff;border:1px solid rgba(82,190,148,.4);border-radius:14px;box-shadow:0 22px 50px -24px rgba(23,33,43,.45),0 0 0 4px rgba(82,190,148,.08);z-index:40;transform-origin:top;transform:scaleY(.6) translateY(-6px);opacity:0;visibility:hidden;transition:transform .28s var(--ease),opacity .22s,visibility .28s;max-height:min(360px,60vh);overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(82,190,148,.55) transparent}
.dd.is-open .dd-list{transform:none;opacity:1;visibility:visible}
.dd-list::-webkit-scrollbar{width:7px}
.dd-list::-webkit-scrollbar-thumb{background:rgba(82,190,148,.55);border-radius:6px}
.dd-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 12px;border-radius:9px;font-size:14.5px;color:var(--ink-2);cursor:pointer;transition:background .2s var(--ease),color .2s,padding-left .2s var(--ease),transform .2s}
.dd-item:hover,.dd-item.is-focus{background:var(--green-l);color:var(--green-dd);padding-left:16px}
.dd-item.is-on{color:var(--green-dd);font-weight:700}
.dd-item.is-on::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--green);flex:none}
.dd-item small{color:var(--muted);font-weight:400;font-size:12.5px}
.filter{position:relative;transition:border-color .25s,box-shadow .25s}
.filter:hover,.filter:focus-within{border-color:var(--green);box-shadow:0 0 0 4px rgba(82,190,148,.14),0 8px 18px -12px rgba(82,190,148,.6)}
.filter span{font-weight:600;color:var(--green-dd);font-size:13px;letter-spacing:.02em}
.filter .dd{height:100%}
.filter .dd-btn{padding-left:6px}
.per-select .dd-btn,.pager .dd-btn{border:1px solid var(--line-2);border-radius:10px;padding:0 10px;min-height:38px;background:#fff}
.dd.dd-up .dd-list{top:auto;bottom:calc(100% + 10px);transform-origin:bottom}
/* the year filter has hover-glow borders on the whole pill as well */
.filters{background:linear-gradient(180deg,#f3f7f5,#eef4f1);border:1px solid rgba(82,190,148,.18)}

/* ---- category listings: less space above, 3 cards beside a sidebar ---- */
.section-list{padding-top:clamp(20px,3vw,34px)}
.section-list .filters{margin-top:0}

/* ---- contact page: narrower text column, wider map, small robot animation ---- */
.contact-layout{grid-template-columns:minmax(300px,.85fr) 1.65fr;grid-template-rows:auto auto auto}
.ccard-address{grid-column:1;grid-row:1;padding:24px 24px 22px}
.ccard-addr{font-size:15px;max-width:none}
.ccard-map{grid-column:2;grid-row:1/4;min-height:520px}
.ccard-map .map-wrap,.ccard-map iframe{min-height:520px}
.ccard-phone{grid-column:1;grid-row:2;padding:22px 24px}
.ccard-stack{grid-column:1;grid-row:3;grid-template-columns:1fr 1fr;gap:14px;align-items:stretch}
.ccard-stack .ccard{padding:18px 18px 16px}
.ccard-stack .ccard-icon{width:38px;height:38px;border-radius:11px;margin-bottom:10px}
.ccard-stack .ccard-title{font-size:13px;margin-bottom:6px}
.ccard-big{font-size:15px}
.ccard-hint{font-size:13px;margin-top:6px}
.ccard-robot{grid-column:1/3;display:flex;justify-content:center;align-items:center;padding:4px 0 0}
.ccard-robot video{width:min(100%,190px);height:auto;display:block;border:0;box-shadow:none;border-radius:0;background:transparent}
@media(max-width:1023px){.contact-layout{grid-template-columns:1fr 1fr}.ccard-address{grid-column:1/3;grid-row:auto}.ccard-map{grid-column:1/3;grid-row:auto;min-height:360px}.ccard-map .map-wrap,.ccard-map iframe{min-height:360px}.ccard-phone{grid-column:1;grid-row:auto}.ccard-stack{grid-column:2;grid-row:auto;grid-template-columns:1fr}.ccard-robot{grid-column:1}}
@media(max-width:640px){.contact-layout{grid-template-columns:1fr}.ccard-address,.ccard-map,.ccard-phone,.ccard-stack{grid-column:1}}

/* ---- no inner scrollbars in page content: legacy overflow wrappers are neutralised, tables scroll sideways only ---- */
.prose div[style*="overflow"],.block-body div[style*="overflow"],.album20-body div[style*="overflow"]{overflow:visible!important;max-height:none!important;height:auto!important}
.table-scroll{overflow-x:auto;overflow-y:hidden;max-height:none}
.prose,.block-body{overflow:visible}
.share-track{overflow-y:hidden;padding-bottom:18px}
.sidebar .block-list .block-body{max-height:none;overflow:visible;padding-right:0}

/* =====================================================================
   v5.0.7
   ===================================================================== */

/* ---- round toned buttons: gradient painted on a rounded inner layer (no square showing through) ---- */
.album20-arrow,.album20-chip b,.float-wa{border:0!important;background:var(--green);overflow:hidden;isolation:isolate;-webkit-mask-image:-webkit-radial-gradient(#fff,#000);backface-visibility:hidden}
.album20-arrow::before,.album20-chip b::before,.float-wa::before{content:"";position:absolute;inset:0;border-radius:50%;background:linear-gradient(145deg,#8fd9bd 0%,#52be94 55%,#3aa57c 100%);z-index:-1;transition:opacity .25s}
.album20-arrow::after{content:"";position:absolute;inset:0;border-radius:50%;background:linear-gradient(145deg,#52be94,#2f8a66);opacity:0;z-index:-1;transition:opacity .25s}
.album20-arrow:hover{background:var(--green)}
.album20-arrow:hover::after{opacity:1}
.album20-chip b{background:#fff;color:var(--green-dd);box-shadow:0 0 0 2px rgba(82,190,148,.45),0 6px 14px -8px rgba(23,33,43,.35)}
.album20-chip b::before{opacity:0}
.album20-chip.is-done b{background:var(--green-l);box-shadow:0 0 0 2px rgba(82,190,148,.6)}
.album20-chip:hover b{box-shadow:0 0 0 2px var(--green),0 10px 18px -8px rgba(82,190,148,.6)}
.album20-chip.is-on b{background:var(--green);color:#fff;box-shadow:0 0 0 6px rgba(82,190,148,.18),0 10px 20px -8px rgba(58,165,124,.7)}
.album20-chip.is-on b::before{opacity:1}
.float-wa{background:var(--green)}

/* ---- home: mascot and quote sit together in the middle; plain looping video ---- */
.hs-mascot-inner{grid-template-columns:auto auto;justify-content:center;justify-items:center;gap:clamp(20px,3.5vw,48px)}
.hs-quote{justify-self:end;max-width:24ch}
.hs-mascot-video{justify-self:start}
.hs-mascot-video video{animation:none!important;box-shadow:none!important;border-radius:22px;width:min(100%,320px)}
@media(max-width:767px){.hs-mascot-inner{grid-template-columns:1fr}.hs-quote,.hs-mascot-video{justify-self:center}}

/* ---- awards: titles share one height so the sub-lines align; no blank line after a title ---- */
.award-column-swf strong{min-height:2.6em;display:flex;align-items:flex-end;justify-content:center;margin-bottom:6px}
.award-column-swf strong+br{display:none}

/* ---- inner title block: text a little higher in the box ---- */
.page-hero.has-cover,.post-hero.has-cover,.post-hero.album-hero{padding:56px 0 60px}

/* ---- commemorative album: the page number always has a gap above it ---- */
.album20-body [class*="page-numbering"]{display:block!important;clear:both;margin-top:0!important;padding-top:2em!important;text-align:center;font-size:13.5px;color:var(--muted)}

/* ---- contact page: robot animation above the address card ---- */
.ccard-robot{grid-column:1;grid-row:1;justify-content:center;padding:0 0 4px}
.ccard-robot video{width:min(100%,170px)}
.ccard-address{grid-row:2}
.ccard-phone{grid-row:3}
.ccard-stack{grid-row:4}
.ccard-map{grid-row:1/5;min-height:620px}
.ccard-map .map-wrap,.ccard-map iframe{min-height:620px}
@media(max-width:1023px){.ccard-robot{grid-column:1/3;grid-row:auto}.ccard-address,.ccard-phone,.ccard-stack,.ccard-map{grid-row:auto}.ccard-map{min-height:360px}.ccard-map .map-wrap,.ccard-map iframe{min-height:360px}}

/* ---- floating buttons: more room between WhatsApp and Google ---- */
.floating{gap:22px}

/* ---- no reading-progress bar (the back-to-top ring shows it) ---- */
.page-progress{display:none!important}

/* ---- header: larger Azon logo, badge unchanged, a little less white space ---- */
:root{--header-h:110px}
.brand-logo{height:98px}
.site-header.is-scrolled .brand-logo{height:86px}
@media(max-width:1023px){:root{--header-h:80px}.brand-logo{height:66px}.site-header.is-scrolled .brand-logo{height:60px}}

/* ---- footer a touch brighter; home hero photo brighter ---- */
.site-footer{background:#1c2e27}
.footer-bottom{background:rgba(0,0,0,.16)}
.hero-overlay{background:linear-gradient(105deg,rgba(14,32,26,.49) 0%,rgba(14,32,26,.29) 45%,rgba(14,32,26,.05) 100%)}

/* ---- gallery listings: 320 × 400 covers (whole image), coloured larger titles, other language under ---- */
.section-gallery .card-album .card-media-cover{aspect-ratio:4/5;background:linear-gradient(160deg,#eef5f1,#e4efe9);display:grid;place-items:center}
.section-gallery .card-album .card-media-cover img{width:100%;height:100%;object-fit:contain;padding:0;box-sizing:border-box}
.section-gallery .card-album .card-title,.album-title{font-size:16px;line-height:1.35;font-weight:700}
.section-gallery .card-album .card-title a,.album-title a{color:var(--green-dd)}
.section-gallery .card-album .card-title a:hover,.album-title a:hover{color:var(--blue-d)}
.album-title-alt{margin:4px 0 0;font-size:12.5px;line-height:1.4;color:var(--muted)}
html[lang^="zh"] .section-gallery .card-album .card-title,html[lang^="zh"] .album-title{font-size:17px}
.section-gallery .card-album .card-body{padding:12px 14px 14px}
.section-gallery .cards{gap:16px}
.section-gallery .filters{margin-bottom:16px}
.section-gallery.is-fixed .pager{display:none}
.layout-sidebar-wide{grid-template-columns:minmax(0,1fr) 460px}
@media(min-width:1024px){.layout-sidebar-wide .main-col .cards-4{grid-template-columns:repeat(4,1fr)!important}.layout-sidebar-wide .main-col .cards-5{grid-template-columns:repeat(4,1fr)!important}}
@media(max-width:1200px){.layout-sidebar-wide{grid-template-columns:minmax(0,1fr) 400px}}
@media(max-width:1023px){.layout-sidebar-wide{grid-template-columns:1fr}}
.sidebar .block-body td{font-size:13.5px;padding:7px 8px 7px 0!important}
.sidebar .block-body td:first-child{width:22%!important}
.sidebar .block-body td:nth-child(2){width:27%!important}

/* ---- toned pagination ---- */
.pager-num,.pager-btn{border-color:rgba(82,190,148,.35);color:var(--green-dd);background:#fff}
.pager-num:hover,.pager-btn:hover{background:var(--green-l);border-color:var(--green)}
.pager-num.is-current{background:linear-gradient(145deg,#8fd9bd,#3aa57c);border-color:transparent;color:#fff;box-shadow:0 8px 16px -10px rgba(58,165,124,.8)}
.pager-per span{color:var(--muted)}

/* ---- album page: bilingual title, note line, write-up + return buttons, photos in order ---- */
.album-subtitle{margin:2px 0 8px;font-size:clamp(15px,1.4vw,19px);color:#c9e4d8;font-weight:500}
.album-note{font-weight:600}
.album-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:0 0 20px}
.album-toolbar-bottom{margin:26px 0 0;align-items:center}
.album-toolbar .share{margin:0}
.album-desc{flex:1;font-size:15.5px;line-height:1.75;color:var(--ink-2);max-width:none}
.album-desc p:last-child{margin-bottom:0}
.album-back{flex:none;white-space:nowrap}
.album-back .ico{width:16px;height:16px}
.section-album-body .photo-grid .photo:nth-child(7n+1){grid-row:auto;aspect-ratio:4/3}
.section-album-body .photo-grid{gap:12px}
.photo-list{display:grid;gap:22px}
.photo-row{display:grid;grid-template-columns:320px minmax(0,1fr);gap:26px;align-items:start;margin:0;padding:18px 0;border-top:1px dashed rgba(82,190,148,.35)}
.photo-row:first-child{border-top:0;padding-top:0}
.photo-row-img{aspect-ratio:auto;background:none;box-shadow:var(--shadow-sm);border-radius:12px}
.photo-row-img img{width:100%;height:auto;object-fit:contain;display:block}
.photo-row-cap{display:flex;gap:14px;align-items:flex-start;padding:18px 0;font-size:15px;line-height:1.75;color:var(--ink-2)}
.photo-row-no{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--green-l);color:var(--green-dd);font-size:13px;font-weight:700;margin-top:2px}
.photo-row-text strong,.photo-row-text b{color:var(--ink);font-size:16px;display:block;margin-bottom:6px}
.photo-row-text br+br{display:block;content:"";margin-top:6px}
.photo-row-text p{margin:0 0 .6em}
html[lang^="zh"] .photo-row-cap{font-size:16px}
@media(max-width:1200px){.photo-row{grid-template-columns:260px minmax(0,1fr);gap:18px}}
@media(max-width:700px){.photo-row{grid-template-columns:1fr}.photo-row-img{max-width:320px;margin:0 auto}.photo-row-cap{padding:12px 0 0}.album-toolbar{flex-direction:column;align-items:stretch}.album-back{align-self:flex-end}}

/* ---- important links page ---- */
.links-intro{font-size:17px;font-weight:600;color:var(--ink);margin:0 0 18px}
.links-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.links-card{display:grid;grid-template-columns:34px auto minmax(0,1fr) 22px;align-items:center;gap:16px;padding:14px 18px;background:#fff;border:1px solid rgba(82,190,148,.3);border-radius:16px;color:var(--ink-2);box-shadow:var(--shadow-sm);transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
.links-card:hover{transform:translateX(4px);border-color:var(--green);box-shadow:0 14px 28px -18px rgba(82,190,148,.6)}
.links-no{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--green-l);color:var(--green-dd);font-weight:700;font-size:13.5px}
.links-logo{display:block;width:120px}
.links-logo img{display:block;width:100%;height:auto;max-height:56px;object-fit:contain}
.links-card:not(:has(.links-logo)){grid-template-columns:34px minmax(0,1fr) 22px}
.links-text{display:grid;gap:2px;min-width:0}
.links-text b{color:var(--ink);font-size:16px;line-height:1.35}
.links-blurb{font-size:14px;color:var(--ink-2);line-height:1.5}
.links-text small{font-size:12.5px;color:var(--blue-d);word-break:break-all}
.links-go{width:20px;height:20px;color:var(--green-d)}
html[lang^="zh"] .links-text b{font-size:17px}
@media(max-width:600px){.links-card{grid-template-columns:30px minmax(0,1fr) 20px;gap:12px;padding:12px 14px}.links-logo{grid-column:2;width:110px}.links-card:has(.links-logo){grid-template-columns:30px minmax(0,1fr) 20px}.links-card:has(.links-logo) .links-text{grid-column:2}}
.card-author{color:var(--green-dd);font-weight:600}
.card-author .ico{color:var(--green)}

/* =====================================================================
   v5.0.8
   ===================================================================== */

/* ---- pagination: current page painted on a rounded inner layer (same fix as the round buttons) ---- */
.pager-num.is-current{position:relative;background:var(--green);border:0;overflow:hidden;isolation:isolate;-webkit-mask-image:-webkit-radial-gradient(#fff,#000)}
.pager-num.is-current::before{content:"";position:absolute;inset:0;border-radius:999px;background:linear-gradient(145deg,#8fd9bd,#3aa57c);z-index:-1}

/* ---- footer: light behind the certificates (dark-text logos read better), caption centred under the QR, no WhatsApp button ---- */
.footer-certs{position:relative}
.footer-certs::before{content:"";position:absolute;left:-30px;right:-30px;top:-20px;bottom:-10px;border-radius:40px;background:radial-gradient(60% 70% at 50% 45%,rgba(255,255,255,.16),transparent 70%);pointer-events:none}
.footer-certs>*{position:relative}
.vcard-box{align-items:center;text-align:center}
.vcard-cap{max-width:150px;text-align:center}
.btn-wa{display:none}

/* ---- inner title block: text another 20px higher ---- */
.page-hero.has-cover,.post-hero.has-cover,.post-hero.album-hero{padding:48px 0 80px}

/* ---- home hero: brighter photo ---- */
.hero-overlay{background:linear-gradient(105deg,rgba(14,32,26,.38) 0%,rgba(14,32,26,.2) 45%,rgba(14,32,26,.03) 100%)}
.hero-glow{opacity:.22}

/* ---- gallery cards: clear thin toned border; date · place line above the title ---- */
.section-gallery .card-album{border:1.5px solid rgba(82,190,148,.45);box-shadow:0 8px 20px -16px rgba(23,33,43,.3)}
.section-gallery .card-album:hover{border-color:var(--green)}
.album-when{margin:0 0 6px;font-size:12px;line-height:1.4;color:var(--muted);letter-spacing:.01em}
.album-when b{color:var(--green-dd);font-weight:600}
.section-gallery .card-album .card-body{padding-top:14px}

/* ---- media interviews: every row, larger type, narrower body ---- */
.interviews{max-width:1000px;margin:0 auto}
.itable-row{font-size:15.5px;padding:15px 22px}
.i-host{font-size:14.5px}
.itable-head{font-size:13px}
html[lang^="zh"] .itable-row{font-size:16.5px}

/* ---- commemorative album: no legacy min-heights (slide 8 …), no bottom page number ---- */
.album20-body [class^="CA"],.album20-body [class*=" CA"]{min-height:0!important}
.album20-body [class*="page-numbering"]{display:none!important}
.album20-stage .album20-body [class$="-copy"]{margin:0 auto!important}

/* ---- 20周年 timeline: larger type ---- */
.tpl-wide .\32 0A-body,.prose .\32 0A-body{font-size:17.5px!important;line-height:1.8!important}
.prose .\32 0A-title{font-size:21px!important}
.prose .\32 0A-year{font-size:16.5px!important}
.prose .\32 0A-hero-sub{font-size:clamp(16px,2.2vw,19px)!important}
.prose .\32 0A-hero-title{font-size:clamp(26px,3.2vw,36px)!important}

/* ---- forms: drop-downs look like every other field and roll out on top of everything ---- */
.azf .dd-field{display:block;width:100%}
.azf .dd-field .dd-btn{width:100%;justify-content:space-between;min-height:var(--ctl,48px);padding:12px 15px;border:1.5px solid var(--ln2,#cfd8e6);border-radius:var(--rad,12px);background:#fff;font-size:var(--fs-input,16px);color:var(--ink);font-weight:500;transition:border-color .16s,box-shadow .16s}
.azf .dd-field .dd-btn .ico{width:18px;height:18px;color:#55647c}
.azf .dd-field:hover .dd-btn,.azf .dd-field.is-open .dd-btn{border-color:var(--green);box-shadow:0 0 0 4px rgba(82,190,148,.14)}
.azf .dd-field .dd-list{width:100%;max-width:none;top:calc(100% + 8px);font-size:15.5px}
.azf .dd-field .dd-item{padding:11px 14px}
.azf .az-sec{overflow:visible}
.azf .az-sec::after{border-radius:inherit}
.azf .az-bar{border-radius:20px 20px 0 0}
.azf .az-sec.has-dd-open,.filters.has-dd-open,.card.has-dd-open{z-index:60}
.dd.is-open{z-index:70}
.dd-list{z-index:1000}
.azf a{font-weight:700}
.azf .az-f.has-dd-open,.filter.has-dd-open{position:relative;z-index:80}
.azf .az-f:has(.dd.is-open){position:relative;z-index:80}
/* the open list is portalled to <body> and fixed-positioned: nothing can cover it */
.dd-list.dd-list-portal{position:fixed;left:0;top:0;z-index:100000;transform:none;opacity:1;visibility:visible;font-family:var(--font-body)}
.dd-list.dd-list-portal.dd-list-up{transform-origin:bottom}
.azf .dd-list.dd-list-portal{font-size:15.5px}
.azf .dd-list.dd-list-portal .dd-item{padding:11px 14px}

/* =====================================================================
   v5.0.9
   ===================================================================== */

/* ---- footer: a wide, faint light behind the certificates that fades into the footer ---- */
.footer-certs::before{left:-160px;right:-160px;top:-110px;bottom:-90px;border-radius:50%;background:radial-gradient(closest-side at 50% 50%,rgba(255,255,255,.085),rgba(255,255,255,.045) 45%,rgba(255,255,255,.015) 75%,transparent 100%)}

/* ---- commemorative album: the chapter's own grey page number and prev / next buttons never show ---- */
.album20-stage .album20-body [class*="page-numbering"],.album20-stage .album20-body [class*="-nav"]{display:none!important}

/* ---- Robot Tree 图像说明: larger type ---- */
.prose .CA21-copy{max-width:66ch;font-size:18px!important;line-height:1.95}
.prose .CA21-shishi{font-size:clamp(16px,2.4vw,20px)!important}
.prose .CA21-section-title{font-size:clamp(24px,3.4vw,36px)!important}

/* ---- 20周年 timeline: a touch smaller ---- */
.tpl-wide .\32 0A-body,.prose .\32 0A-body{font-size:16.5px!important;line-height:1.8!important}
.prose .\32 0A-title{font-size:20px!important}
.prose .\32 0A-year{font-size:16px!important}

/* ---- gallery cards: cover fills the 320 × 400 box; date and place on two lines in one style;
        the text area keeps the same height for one- and two-line titles ---- */
.section-gallery .card-album .card-media-cover img{object-fit:cover}
.album-when{display:flex;flex-direction:column;gap:2px;min-height:40px;margin:0 0 8px;font-size:12.5px;line-height:1.45;color:var(--green-dd);font-weight:600;letter-spacing:.01em}
.album-when span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.album-when b{font-weight:600}
.album-titles{min-height:72px}
html[lang^="zh"] .album-titles{min-height:74px}

/* ---- media interviews: wider table (about 50% more), one line per row ---- */
.section-page .container.layout-single:has(.interviews){max-width:var(--container)}
.interviews{max-width:none}
.itable-head,.itable-row{grid-template-columns:118px 150px 1.7fr 2.1fr 112px;gap:12px}
.i-host{flex-wrap:wrap;gap:4px 6px}
.i-host-link{font-size:13px;padding:1px 7px 1px 4px;white-space:nowrap}
.itable-row{font-size:15px;padding:14px 22px}
html[lang^="zh"] .itable-row{font-size:16px}
.i-host{font-size:14px}
@media (max-width:900px){.itable-row{grid-template-columns:1fr}}

/* =====================================================================
   v5.0.10
   ===================================================================== */

/* ---- media interviews: every host as one uniform chip (platform icon or a mic), narrower host
        column, "请收听/收看 · Listen/Watch Now" header on the buttons column ---- */
.itable-head,.itable-row{grid-template-columns:112px 148px 1.15fr 2.4fr 128px;gap:14px}
.i-host{display:flex;flex-wrap:wrap;gap:5px 6px;align-items:center;min-width:0}
.i-host-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;height:28px;padding:0 10px 0 5px;border-radius:999px;border:1px solid var(--line-2);background:#fff;color:var(--ink-2);font-size:13px;line-height:1;white-space:nowrap;transition:all .25s var(--ease)}
.i-host-chip span{overflow:hidden;text-overflow:ellipsis}
.i-host-chip .ico{flex:none;width:18px;height:18px;padding:3px;border-radius:50%;background:var(--bg-alt);color:var(--muted)}
.i-host-plain{border-style:dashed;color:var(--ink-2)}
a.i-host-chip{border-color:rgba(82,190,148,.45);color:var(--ink)}
a.i-host-chip:hover{border-color:var(--green);background:var(--green-ll);transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.i-host-facebook .ico{background:#e8f0fe;color:#1877f2}
.i-host-instagram .ico{background:#fde8f0;color:#e1306c}
.i-host-youtube .ico{background:#fde8e8;color:#f00}
.i-host-tiktok .ico{background:#eee;color:#111}
.i-host-external .ico{background:var(--green-ll);color:var(--green-d)}
.itable-head .i-links-head{text-align:right;white-space:nowrap}
.i-links{justify-content:flex-end}
@media (max-width:900px){.i-host-chip{height:26px;font-size:12.5px}}

/* ---- founder's message: the card's title sits close to the top border (the article's h2 spacing
        does not apply inside the cards) ---- */
.prose .A20A-card>.A20A-h2:first-child,.prose .A20A-card>.A20A-h2{margin-top:0!important}
.prose .A20A-card{padding-top:26px!important}
@media (max-width:720px){.prose .A20A-card{padding-top:16px!important}}

/* =====================================================================
   v5.0.11
   ===================================================================== */

/* ---- mobile menu: the dark blurred backdrop is written after the panel in the markup, so
        without a stacking order it painted over the menu. The panel now sits above it. ---- */
.offcanvas{isolation:isolate}
.offcanvas-backdrop{z-index:1;-webkit-backdrop-filter:blur(3px)}
.offcanvas-panel{z-index:2}

/* =====================================================================
   v5.0.13 — mobile
   ===================================================================== */

/* ---- highlighted sub-headings inside articles: the coloured bar spans the whole line, and a
        wrapped second line starts under the first one instead of under the bar ---- */
.prose b.h-accent,.prose strong.h-accent,.block-body b.h-accent{display:block}

/* ---- pagination: on a phone the ‹ › buttons slide the row of page numbers (five at a time)
        and a Back / Next pair under it turns the page ---- */
.pager-move{display:none}
@media (max-width:640px){
  .pager{gap:10px 14px}
  .pager-info{width:100%;order:1;font-size:13px}
  .pager-list{order:2;width:100%;flex-wrap:nowrap;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;padding:2px 0;position:relative}
  .pager-list::-webkit-scrollbar{display:none}
  .pager-list>li{flex:none}
  .pager-list .pager-num{min-width:38px;height:38px;scroll-snap-align:center}
  .pager-list .pager-prev,.pager-list .pager-next{position:sticky;z-index:2;min-width:38px;height:38px;padding:0;background:#fff;box-shadow:0 0 0 6px #fff}
  .pager-list .pager-prev{left:0}
  .pager-list .pager-next{right:0}
  .pager-list .pager-prev.is-disabled,.pager-list .pager-next.is-disabled{opacity:1;pointer-events:auto}
  .pager-gap{padding:0 2px;color:var(--muted)}
  .pager-move{order:3;display:flex;gap:10px;width:100%}
  .pager-move-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:42px;border-radius:999px;border:1px solid rgba(82,190,148,.4);background:#fff;color:var(--green-dd);font-weight:600}
  .pager-move-btn .ico{width:1em;height:1em}
  .pager-move-btn.is-disabled{opacity:.4;pointer-events:none}
  .pager-per{order:4;margin-left:auto}
}

/* ---- media interviews on a phone: one card per row — date and station on top, the topic under
        them, the listen / watch buttons at the end; the host names are left out ---- */
@media (max-width:760px){
  .itable{border-radius:14px}
  .itable-head{display:none}
  .itable-row{display:grid;grid-template-columns:1fr auto;gap:6px 10px;padding:14px 16px;align-items:start}
  .i-date{grid-column:1;font-size:13.5px;letter-spacing:.02em}
  .i-station{grid-column:1;grid-row:2;font-size:14px}
  .i-host{display:none}
  .i-title{grid-column:1/3;grid-row:3;font-size:15px;line-height:1.55;text-align:left}
  html[lang^="zh"] .itable-row .i-title{font-size:15.5px}
  .i-links{grid-column:2;grid-row:1/3;justify-content:flex-end;align-self:center;margin:0}
  .itable-row:hover{box-shadow:none;background:var(--green-ll)}
}

/* ---- commemorative album on a phone: the slide grows with its text, nothing is cut off and
        the page number keeps clear of the first line ---- */
@media (max-width:900px){
  .album20-frame{height:auto!important;min-height:var(--album20-h)!important;overflow:visible!important;align-items:center;padding:52px clamp(18px,5vw,32px) clamp(28px,6vw,44px)!important}
  .album20-page-no{top:18px;right:20px;font-size:12px}
  .section-album20 .container{overflow:visible}
}

/* ---- mobile menu: each phone number on its own line with its description under it ---- */
.offcanvas-phone{display:grid;grid-template-columns:auto 1fr;align-items:start;column-gap:12px;padding:10px 0}
.offcanvas-phone .ico{margin-top:2px}
.offcanvas-phone span{grid-column:2;display:block;line-height:1.35}
.offcanvas-phone small{grid-column:2;margin-top:2px}

/* =====================================================================
   v5.0.14 — mobile
   ===================================================================== */

/* ---- pagination: no slide arrows when every page button already fits, and the arrow at the
        end of its travel fades out ---- */
@media (max-width:640px){
  .pager-list.is-static .pager-prev,.pager-list.is-static .pager-next{display:none}
  .pager-list .pager-prev.is-end,.pager-list .pager-next.is-end{opacity:.25;pointer-events:none}
}

/* ---- commemorative album: soft arrows on the slide itself, so a phone can turn the page
        without scrolling down to the buttons (swiping works too) ---- */
@media (max-width:1100px){
  .album20-stage{position:relative}
  .album20-arrow{display:none!important}
  .album20-stage.is-onscreen .album20-arrow{display:grid!important;position:fixed;top:50vh!important;transform:translateY(-50%);width:44px;height:44px;z-index:60;background:rgba(82,190,148,.5)!important;border:0!important;color:#fff;box-shadow:0 8px 20px -12px rgba(23,33,43,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
  .album20-arrow::before{background:none!important}
  .album20-arrow .ico{width:20px;height:20px}
  .album20-stage.is-onscreen .album20-arrow-prev{left:8px}
  .album20-stage.is-onscreen .album20-arrow-next{right:8px}
  .album20-stage.is-onscreen .album20-arrow:active{background:rgba(58,165,124,.92)!important;transform:translateY(-50%) scale(.94)}
  .album20-frame{padding-left:clamp(30px,8vw,52px)!important;padding-right:clamp(30px,8vw,52px)!important}
}

/* ---- header on a phone: the 20th-anniversary badge stays beside the logo ---- */
@media (max-width:560px){
  .brand{gap:10px}
  .brand-logo,.brand-logo-2{height:66px}
  .brand-logo-2{display:block}
  .site-header.is-scrolled .brand-logo,.site-header.is-scrolled .brand-logo-2{height:58px}
  .navbar-inner{gap:8px}
  .nav-tools{gap:8px}
}
@media (max-width:380px){
  .brand{gap:8px}
  .brand-logo,.brand-logo-2{height:60px}
  .site-header.is-scrolled .brand-logo,.site-header.is-scrolled .brand-logo-2{height:54px}
}

/* =====================================================================
   v5.0.17
   ===================================================================== */

/* ---- home hero on a phone: the long company line above the headline is left out ---- */
@media (max-width:640px){.hero-kicker{display:none}}

/* =====================================================================
   v5.0.18 — mobile hero and the contact band
   ===================================================================== */

@media (max-width:767px){
  /* Hero: the words sit near the foot of the picture, and the little scroll marker is gone. */
  .hero{align-items:flex-end}
  .hero-inner{padding:120px var(--gutter) 40px;width:100%}
  .hero-scroll{display:none}
  /* Show more of the left of the photo (the person cropped out on a narrow screen). */
  .hero-media img,.hero-media video,.hero-media picture{object-position:22% 42%}
}

/* ---- "Call / WhatsApp us" band: the soft shapes drift a little further, still slowly ---- */
.cta-shapes i{animation:ctaFloat 22s ease-in-out infinite}
.cta-shapes i:nth-child(2){animation-duration:26s;animation-delay:-6s}
.cta-shapes i:nth-child(3){animation-duration:19s;animation-delay:-11s}
@keyframes ctaFloat{
  0%,100%{transform:translate3d(0,0,0) scale(1)}
  25%{transform:translate3d(26px,-34px,0) scale(1.05)}
  50%{transform:translate3d(-18px,-58px,0) scale(.97)}
  75%{transform:translate3d(-30px,-22px,0) scale(1.04)}
}
@media(prefers-reduced-motion:reduce){.cta-shapes i{animation:none}}

/* =====================================================================
   v5.0.19 — sticky side modules clear the header bar
   ===================================================================== */

/* The header is the dark top bar plus the menu bar, and neither shrinks on
   scroll, so a sticky side module has to start below both. --header-h alone is
   only the menu bar: at 1440px that is 110px against a 153px header, which is
   why the top of the module was disappearing behind the menu. Below 1024px the
   top bar is hidden and the sidebar is not sticky at all, but the value stays
   right in case it ever is. */
:root{--sticky-top:calc(var(--topbar-h) + var(--header-h) + 14px)}
@media(max-width:1023px){:root{--sticky-top:calc(var(--header-h) + 12px)}}
.sidebar[data-sticky]{top:var(--sticky-top)}
