:root{
  --beige:#e8ded1;
  --paper:#f7f1e8;
  --paper2:#fffaf2;
  --navy:#0f1f42;
  --navy2:#102346;
  --gold:#d4af37;
  --gold-dark:#b8891f;
  --ink:#0f1f42;
  --muted:rgba(25,42,80,.68);
  --line:rgba(25,42,80,.14);
  --shadow:0 24px 70px rgba(25,42,80,.12);
  --radius:28px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--beige);color:var(--ink);font-family:Calibri, Arial, Helvetica, sans-serif;line-height:1.75;-webkit-font-smoothing:antialiased}
html[data-lang="en"] body, html[data-lang="en"] body *{font-family:Calibri,Arial,Helvetica,sans-serif;letter-spacing:normal}
a{color:inherit;text-decoration:none} img{max-width:100%;display:block}
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,5vw,76px);background:var(--beige);border-bottom:1px solid rgba(25,42,80,.08);transition:.35s ease}
.site-header.scrolled{height:68px;background:var(--beige);box-shadow:0 10px 34px rgba(25,42,80,.06)}
body.header-hidden .site-header{opacity:0;transform:translateY(-100%);pointer-events:none}
.brand img{height:54px;width:auto;object-fit:contain}.site-header.scrolled .brand img{height:46px}
.header-actions{display:flex;align-items:center;gap:22px}.site-nav{display:flex;align-items:center;gap:clamp(18px,2.6vw,38px);font-size:14px;letter-spacing:.16em;color:var(--navy)}
.site-nav a{position:relative;white-space:nowrap;padding:8px 0}.site-nav a:after{content:"";position:absolute;left:0;right:.16em;bottom:0;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:.25s}.site-nav a:hover:after,.site-nav a[aria-current="page"]:after{transform:scaleX(1)}
.language-toggle{display:flex;align-items:center;gap:6px;border:1px solid rgba(25,42,80,.14);border-radius:999px;padding:4px;background:rgba(255,255,255,.22)}.language-toggle button{border:0;background:transparent;color:var(--navy);font:12px Arial,Helvetica,sans-serif;letter-spacing:.06em;border-radius:999px;padding:6px 8px;cursor:pointer}.language-toggle button.active{background:var(--navy);color:#fff}.nav-toggle{display:none;background:none;border:0;width:42px;height:42px}.nav-toggle span{display:block;height:1px;background:var(--navy);margin:8px}
.intro-loader{position:fixed;inset:0;z-index:999;background:var(--beige);display:grid;place-items:center;animation:loaderExit 3s ease forwards}.intro-loader img{width:min(520px,72vw);opacity:0;animation:logoArrive 3s ease forwards}
@keyframes logoArrive{0%{opacity:0;transform:translateY(18px)}28%{opacity:1;transform:translateY(0)}78%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-14px)}}
@keyframes loaderExit{0%,82%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden;pointer-events:none}}
.opening-grid{min-height:100svh;padding:120px clamp(24px,6vw,84px) 72px;display:grid;position:relative;background:var(--beige);overflow:hidden}.opening-grid:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 12%,rgba(255,255,255,.40),transparent 42%),linear-gradient(180deg,rgba(255,255,255,.12),transparent 45%);pointer-events:none}.opening-grid-v2{grid-template-rows:repeat(3,1fr);gap:clamp(22px,4.3vh,42px);padding-top:120px;padding-bottom:58px}.strip{position:relative;z-index:1;margin:0;width:min(980px,74vw);height:clamp(110px,15vh,168px);overflow:hidden;box-shadow:none;background:transparent}.strip img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;animation:stripFade 12s infinite}.strip img:nth-child(2){animation-delay:4s}.strip img:nth-child(3){animation-delay:8s}.strip-a{align-self:end;justify-self:end}.strip-b{align-self:center;justify-self:start;width:min(860px,68vw)}.strip-c{align-self:start;justify-self:center;width:min(920px,70vw)}.strip-b img{}.strip-c img{}
@keyframes stripFade{0%{opacity:0;transform:scale(1.03)}8%{opacity:1}30%{opacity:1;transform:scale(1)}38%,100%{opacity:0;transform:scale(1.02)}}
.vertical-word{position:absolute;z-index:3;writing-mode:vertical-rl;font-size:clamp(42px,7vw,92px);font-family:"Times New Roman",Times,serif;letter-spacing:.28em;line-height:1;color:var(--navy);font-weight:400}.word-top{top:126px;right:clamp(22px,6vw,90px)}.word-bottom{bottom:84px;left:clamp(20px,6vw,90px)}
.tagline-hero{position:relative;min-height:100svh;display:grid;place-items:center;background-image:var(--bg);background-size:cover;background-position:center;overflow:hidden}.tagline-text-only{position:relative;z-index:1;color:white;text-align:center;text-shadow:0 12px 36px rgba(0,0,0,.38);padding:0 24px}.tagline-text-only h1{margin:0;font-family:"Times New Roman",Times,serif;font-weight:400;font-size:clamp(32px,4.8vw,77px);letter-spacing:.20em;line-height:1.1}.tagline-text-only p{margin:14px 0 0;font-family:"Times New Roman",Times,serif;font-size:clamp(11px,1.4vw,20px);letter-spacing:.16em;white-space:nowrap;color:rgba(255,255,255,.92)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--gold);background:var(--gold-dark);color:white;padding:13px 28px;border-radius:999px;letter-spacing:.14em;font-size:14px;transition:.25s}.button:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(184,137,31,.2)}.ghost{border:1px solid rgba(25,42,80,.18);background:transparent;color:var(--navy);border-radius:999px;padding:11px 18px;cursor:pointer}
.five-section-nav{display:grid;grid-template-columns:repeat(5,1fr);min-height:100svh;background:var(--beige);border-top:1px solid rgba(25,42,80,.09);border-bottom:1px solid rgba(25,42,80,.09)}.five-tile{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden;border-right:1px solid rgba(232,222,209,.55);color:white}.five-tile:last-child{border-right:0}.five-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .85s ease}.five-tile:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,35,70,.12),rgba(16,35,70,.66)),linear-gradient(90deg,rgba(0,0,0,.16),transparent);z-index:1}.five-tile h2{position:relative;z-index:2;margin:0;padding:18px 12px;font-family:"Times New Roman",Times,serif;font-weight:400;;writing-mode:vertical-rl;font-size:clamp(18px,1.72vw,30px);letter-spacing:.16em;text-align:center;text-shadow:0 12px 30px rgba(0,0,0,.46)}.five-tile:hover img{transform:scale(1.07)}
.index-contact{display:grid;grid-template-columns:.75fr 1.25fr;gap:50px;align-items:start;padding:clamp(70px,9vw,130px) clamp(24px,6vw,86px);background:linear-gradient(180deg,var(--beige),#f5eee4)}.index-contact h2,.page-title h1,.section-title{font-family:"Times New Roman",Times,serif;font-weight:400;letter-spacing:.12em}.index-contact h2{font-size:clamp(36px,5vw,70px);margin:.1em 0}.index-contact p{color:var(--muted);max-width:500px}.index-contact a{color:var(--gold-dark)}
.contact-form{padding:30px;border:1px solid rgba(25,42,80,.1);background:rgba(255,250,242,.50);box-shadow:var(--shadow);border-radius:var(--radius)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.contact-form label{display:block;font-size:18px;letter-spacing:.08em;color:var(--navy);margin-bottom:16px}.contact-form input,.contact-form textarea,.contact-form select{width:100%;margin-top:8px;border:1px solid rgba(25,42,80,.14);background:rgba(255,255,255,.60);border-radius:14px;padding:13px 14px;font:inherit;color:var(--navy);outline:none}.contact-form textarea{min-height:130px;resize:vertical}.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{border-color:var(--gold)}.verify-row{display:flex;align-items:end;gap:12px}.verify-row label{flex:1}.form-note{font-size:14px;color:var(--muted);margin:16px 0 0!important}
.footer{background:var(--beige);border-top:1px solid rgba(25,42,80,.09);padding:28px clamp(22px,5vw,76px)}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}.footer img{height:52px}.footer p{margin:0;letter-spacing:.18em}.footer small{color:var(--muted)}.footer a{color:var(--gold-dark)}
.page-main{padding-top:82px}.page-hero{min-height:52vh;display:grid;align-items:end;background:linear-gradient(90deg,rgba(232,222,209,.96),rgba(232,222,209,.76)),var(--bg);background-size:cover;background-position:center;padding:clamp(80px,10vw,140px) clamp(24px,6vw,86px)}.page-title{max-width:960px}.eyebrow{color:var(--gold-dark);letter-spacing:.34em;text-transform:uppercase;font-size:15px;margin:0 0 16px}.page-title h1{font-size:clamp(42px,7vw,96px);line-height:1.15;margin:0 0 24px}.page-title p{max-width:780px;color:var(--muted);font-size:18px}.content-section{padding:clamp(70px,8vw,120px) clamp(24px,6vw,86px)}.content-grid{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:clamp(40px,6vw,90px);align-items:start}.side-label{position:static;top:auto;z-index:0;align-self:start;max-width:360px}.side-label h2{font-family:"Times New Roman",Times,serif;font-weight:400;font-size:clamp(30px,3.6vw,56px);letter-spacing:.16em;line-height:1.22;margin:0;word-break:keep-all}.side-label p{color:var(--gold-dark);letter-spacing:.22em}.prose{font-size:18px;color:rgba(25,42,80,.75);line-height:2.05;min-width:0;position:relative;z-index:1}.prose h3{font-family:"Times New Roman",Times,serif;font-size:26px;color:var(--navy);font-weight:500;margin:2em 0 .6em}.prose ul{padding-left:1.4em}.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.service-card,.mini-card{background:rgba(255,250,242,.78);border:1px solid rgba(25,42,80,.10);border-radius:24px;padding:28px;box-shadow:0 18px 48px rgba(25,42,80,.06)}.service-card img{height:180px;width:100%;object-fit:cover;border-radius:18px;margin-bottom:24px}.service-card h3,.mini-card h3{font-family:"Times New Roman",Times,serif;font-size:24px;letter-spacing:.12em;margin:.2em 0;color:var(--navy)}.map-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px}.map-list div{padding:18px;border-left:2px solid var(--gold);background:rgba(255,250,242,.55)}
html[lang="en"] .vertical-word{writing-mode:horizontal-tb;letter-spacing:.12em}.no-scroll{overflow:hidden}
@media (max-width:1180px){.five-section-nav{grid-template-columns:repeat(3,1fr)}.five-tile{min-height:58vh}.header-actions{gap:12px}.site-nav{gap:18px;font-size:13px}}
@media (max-width:980px){.side-label{max-width:none}.content-grid{grid-template-columns:1fr}.site-nav{position:fixed;inset:82px 0 auto 0;background:var(--beige);display:grid;gap:0;padding:22px 28px;transform:translateY(-120%);transition:.3s}.site-nav.open{transform:translateY(0)}.site-nav a{padding:14px 0}.nav-toggle{display:block}.content-grid,.index-contact{grid-template-columns:1fr}.cards-3{grid-template-columns:1fr}.map-list{grid-template-columns:1fr}.footer-inner{align-items:flex-start;flex-direction:column}}
@media (max-width:760px){.five-section-nav{grid-template-columns:1fr}.five-tile{min-height:52vh}.tagline-text-only p{white-space:normal}.opening-grid-v2{padding-top:98px}.strip,.strip-b,.strip-c{width:78vw;height:112px}.site-header{height:70px;padding:0 18px}.brand img{height:44px}.language-toggle{gap:2px}.language-toggle button{font-size:11px;padding:5px 6px}.word-top{top:94px;right:20px}.word-bottom{bottom:72px;left:20px}.form-row{grid-template-columns:1fr}.verify-row{align-items:stretch;flex-direction:column}.page-main{padding-top:70px}}

/* Fix: prevent inner-page section titles from floating over article text while scrolling */
.content-grid{grid-template-columns:minmax(260px,360px) minmax(0,1fr);}
.side-label{position:static!important;top:auto!important;z-index:0;max-width:360px;}
.prose{min-width:0;position:relative;z-index:1;}
@media (max-width:980px){.content-grid{grid-template-columns:1fr!important}.side-label{max-width:none!important}}

/* Typography update */
body,
.prose,
.contact-form,
.contact-form input,
.contact-form textarea,
.contact-form select,
.form-note,
.index-contact p,
.page-title p,
.footer,
.site-nav,
.language-toggle button {
  font-family: Calibri, Arial, Helvetica, sans-serif;
}

h1, h2, h3, h4,
.page-title h1,
.index-contact h2,
.section-title,
.side-label h2,
.prose h3,
.service-card h3,
.mini-card h3,
.five-tile h2,
.tagline-hero h1,
.tagline-text-only h1,
.tagline-text-only p,
.vertical-word {
  font-family: "Times New Roman", Times, serif;
}

.tagline-text-only h1 {
  font-size: clamp(32px, 4.8vw, 77px);
  letter-spacing: .20em;
}

.tagline-text-only p {
  font-size: clamp(11px, 1.4vw, 20px);
  letter-spacing: .16em;
  margin-top: 14px;
}

.five-tile h2 {
  font-size: clamp(18px, 1.72vw, 30px);
  letter-spacing: .16em;
}

/* Keep normal content and form text in Calibri */
body,
p,
li,
.prose,
.contact-form,
.contact-form label,
.contact-form input,
.contact-form textarea,
.contact-form select,
.form-note,
.index-contact p,
.page-title p,
.footer,
.site-nav,
.language-toggle button {
  font-family: Calibri, Arial, Helvetica, sans-serif;
}

/* Final title font override: keep headings in Times New Roman even when English mode sets body text to Calibri */
h1, h2, h3, h4,
.page-title h1,
.index-contact h2,
.section-title,
.side-label h2,
.prose h3,
.service-card h3,
.mini-card h3,
.five-tile h2,
.tagline-text-only h1,
.tagline-text-only p,
.vertical-word,
.word-top,
.word-bottom {
  font-family: "Times New Roman", Times, serif !important;
}

/* Absolute no image filter / blur */
img,
.strip img,
.five-tile img,
.service-visual img,
.image-card img,
.map-stage img,
.service-card img,
.intro-loader img {
  filter: none !important;
  -webkit-filter: none !important;
}

.five-section-nav{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  min-height:100svh;
}
.five-tile{
  position:relative;
  min-height:100svh;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  overflow:hidden;
  color:#fff;
}
.five-tile img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .85s ease;
  filter:none !important;
  -webkit-filter:none !important;
}
.five-tile:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(8,14,24,0) 0%, rgba(8,14,24,0) 52%, rgba(8,14,24,.14) 68%, rgba(8,14,24,.58) 88%, rgba(8,14,24,.82) 100%);
  z-index:1;
  pointer-events:none;
}
.five-tile h2{
  position:relative;
  z-index:2;
  width:100%;
  margin:0;
  padding:0 18px 42px;
  font-family:"Times New Roman", Times, serif !important;
  font-weight:400;
  font-size:clamp(20px,1.55vw,31px) !important;
  line-height:1.28;
  letter-spacing:.04em;
  text-align:center;
  text-shadow:0 10px 24px rgba(0,0,0,.38);
}
.five-tile:hover img{transform:scale(1.06)}

/* Slower 3-strip animation: 24s cycle, slower fades, each image fully visible for about 3s */
.opening-grid-v3 .strip img{
  animation-name:stripFadeSlowFinal !important;
  animation-duration:24s !important;
  animation-iteration-count:infinite !important;
  filter:none !important;
  -webkit-filter:none !important;
}
.opening-grid-v3 .strip img:nth-child(1){animation-delay:0s !important;}
.opening-grid-v3 .strip img:nth-child(2){animation-delay:8s !important;}
.opening-grid-v3 .strip img:nth-child(3){animation-delay:16s !important;}
@keyframes stripFadeSlowFinal{
  0%{opacity:0;transform:scale(1.012)}
  8.33%{opacity:1;transform:scale(1.004)}
  20.83%{opacity:1;transform:scale(1)}
  29.17%{opacity:0;transform:scale(1.008)}
  100%{opacity:0;transform:scale(1.008)}
}

/* === TRUE CORRECTION: Unified Clean Flow for Headings & Strips === */
.opening-grid-v3 {
  min-height: 100svh;
  padding: 124px 24px 60px !important; /* Generous top padding layout preserves clearance under fixed headers */
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important; /* Forces total layout control via direct structural spacing rules */
  box-sizing: border-box;
}

/* Dynamic container block matching structural visual width constraints */
.opening-grid-v3 .strip {
  width: min(976px, 62.4vw) !important;
  height: clamp(73px, 10.7vh, 121px) !important;
  margin: 0 0 12px 0 !important; /* Balanced uniform space gaps across the element sequence */
}
.opening-grid-v3 .strip-c {
  margin-bottom: 0 !important; /* Trims structural base margin trailing the horizontal stack */
}

/* Alignment bases keeping headings exactly matching width of image containers */
.opening-grid-v3 .title-top,
.opening-grid-v3 .title-bottom {
  width: min(976px, 62.4vw) !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  background: transparent !important;
  position: relative !important;
  z-index: 10 !important;
}

/* Absolute 1-pixel spacing hairline alignments rules */
.opening-grid-v3 .title-top {
  justify-content: flex-end !important; /* Flushes top text block header to the right visual boundary */
  margin-bottom: 1px !important;       /* Clean exactly 1px padding hairline gap above image 1 */
}
.opening-grid-v3 .title-bottom {
  justify-content: flex-start !important; /* Flushes base text block header to the left visual boundary */
  margin-top: 1px !important;          /* Clean exactly 1px padding hairline gap below image 3 */
}

/* Structural core heading text block styles */
.opening-grid-v3 .opening-title-text {
  color: var(--navy) !important;
  font-family: "Times New Roman", "Songti SC", "SimSun", "PMingLiU", serif !important;
  font-weight: 400 !important;
  font-size: clamp(36px, 5.4vw, 76px) !important;
  line-height: 1.05 !important;
}

/* Chinese Rendering: Traditional Vertical layout mechanics hanging neatly along borders */
html[data-lang="zh-Hant"] .opening-grid-v3 .opening-title-text,
html[data-lang="zh-Hans"] .opening-grid-v3 .opening-title-text {
  writing-mode: vertical-rl !important;
  text-orientation: upright !important;
  letter-spacing: 0.16em !important;
}

/* Micro visual kerning balancing right/left optical tracking over layout stacks */
html[data-lang="zh-Hant"] .opening-grid-v3 .title-top,
html[data-lang="zh-Hans"] .opening-grid-v3 .title-top {
  justify-content: flex-end !important;
  padding-right: 4px !important; 
}
html[data-lang="zh-Hant"] .opening-grid-v3 .title-bottom,
html[data-lang="zh-Hans"] .opening-grid-v3 .title-bottom {
  justify-content: flex-start !important;
  padding-left: 4px !important;
}

/* English Rendering Mechanics: Fallback horizontal rules */
html[data-lang="en"] .opening-grid-v3 .opening-title-text {
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  letter-spacing: 0.06em !important;
}
html[data-lang="en"] .opening-grid-v3 .title-top {
  text-align: right !important;
  justify-content: flex-end !important;
}
html[data-lang="en"] .opening-grid-v3 .title-bottom {
  text-align: left !important;
  justify-content: flex-start !important;
}

/* Mobile responsive alignment profiles override block */
@media (max-width: 760px) {
  .opening-grid-v3 {
    padding-top: 104px !important;
    padding-bottom: 40px !important;
  }
  .opening-grid-v3 .strip {
    width: 82vw !important;
    height: clamp(66px, 10.4vh, 96px) !important;
  }
  .opening-grid-v3 .title-top,
  .opening-grid-v3 .title-bottom {
    width: 82vw !important;
  }
  .opening-grid-v3 .opening-title-text {
    font-size: clamp(28px, 7.5vw, 46px) !important;
  }
}

/* === FINAL FIX: centre-align all three horizontal opening images === */
.opening-grid-v3{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
}

.opening-grid-v3 .strip,
.opening-grid-v3 .strip-a,
.opening-grid-v3 .strip-b,
.opening-grid-v3 .strip-c{
  width:min(976px, 62.4vw) !important;
  max-width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
  align-self:center !important;
  justify-self:center !important;
  left:auto !important;
  right:auto !important;
  transform:none !important;
}

.opening-grid-v3 .strip-a,
.opening-grid-v3 .strip-b{
  margin-bottom:70px !important;
}

.opening-grid-v3 .strip-c{
  margin-bottom:0 !important;
}


/* === Sub-page header image overlay adjustment ===
   Reduced the beige overlay/filter strength by 40%.
   Original overlay was rgba(...,.96) and rgba(...,.76).
   New overlay is rgba(...,.58) and rgba(...,.46).
   This applies to all sub-page header images using .page-hero.
*/
.page-hero{
  background:linear-gradient(90deg, rgba(232,222,209,.58), rgba(232,222,209,.46)), var(--bg) !important;
  background-size:cover !important;
  background-position:center !important;
}
