/* 18+ Entertainment Network · Corporate Landing v1.1.4 · 2026-09-23 */
:root {
  --ink: #090909; --surface: #111216; --surface2: #191a1e; --paper: #f5f2ed;
  --red: #e60029; --red-hot: #ff3154; --red-deep: #ad001d;
  --muted: #acabb0; --line: rgba(255,255,255,.15);
  --ease: cubic-bezier(.22,.61,.36,1);
  --font-content: "Quicksand", "Noto Sans Khmer", "Noto Sans HK", "PingFang TC", system-ui, sans-serif;
  --font-mark: "Archivo Black", "Arial Black", Impact, sans-serif;
  --font-hero: "League Spartan", "Arial Black", Impact, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; background: var(--ink); }
body { margin:0; min-width:320px; background:var(--ink); color:var(--paper); font-family:var(--font-content); -webkit-font-smoothing: antialiased; text-rendering:optimizeLegibility; overflow-x:clip; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
a:focus-visible, button:focus-visible { outline:2px solid #fff; outline-offset:4px; }
.skip-link { position:fixed; z-index:90; top:0; left:16px; padding:11px 16px; background:#fff; color:#080808; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(12px); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.container { width:min(1320px,calc(100% - 64px)); margin-inline:auto; }
.site-header { position:absolute; inset:0 0 auto; z-index:25; }
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:88px; }
.brand { display:inline-flex; gap:10px; align-items:center; min-width:0; color:#fff; font-size:11px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; line-height:1.4; }
.brand:hover { color:#fff; }
.brand-dot { flex:none; width:8px; height:8px; border-radius:50%; background:var(--red-hot); box-shadow:0 0 0 5px rgba(255,49,84,.14),0 0 20px rgba(255,49,84,.7); }
.brand-short { display:none; }
.header-right { display:flex; align-items:center; gap:clamp(15px,3vw,38px); }
.header-location { font-size:10px; font-weight:700; text-transform:uppercase; color:#fff; opacity:.83; white-space:nowrap; letter-spacing:.1em; }
.lang-switch { display:inline-flex; align-items:center; gap:7px; padding:3px 0; white-space:nowrap; }
.lang-switch a { width:31px; height:33px; display:inline-flex; justify-content:center; align-items:center; border-radius:4px 4px 0 0; border-bottom:2px solid transparent; transition:transform .2s var(--ease), background .2s var(--ease),border-color .2s ease; }
.lang-switch a:hover { transform:translateY(-2px); background:rgba(0,0,0,.16); }
.lang-switch a[aria-current="page"] { border-bottom-color:#fff; background:rgba(0,0,0,.12); }
.lang-switch .flag { font-size:23px; line-height:1; font-family:"Noto Color Emoji","Apple Color Emoji","Segoe UI Emoji",sans-serif; }
.hero { min-height:780px; min-height:max(780px,100svh); isolation:isolate; position:relative; overflow:hidden; background:linear-gradient(90deg,#080808 0 50%,var(--red) 50% 100%); }
.hero-split { position:absolute; z-index:-3; inset:0; display:grid; grid-template-columns:1fr 1fr; pointer-events:none; }
.hero-half { position:relative; overflow:hidden; }
.hero-half--dark { background:radial-gradient(circle at 78% 24%,rgba(230,0,42,.20),transparent 36%),radial-gradient(circle at 0% 95%,rgba(255,255,255,.055),transparent 30%),#080808; }
.hero-half--red { background:radial-gradient(circle at 3% 17%,rgba(0,0,0,.22),transparent 35%),radial-gradient(circle at 98% 90%,rgba(255,255,255,.14),transparent 38%),linear-gradient(140deg,#f00c35,#e60029 59%,#ad001d); }
.hero-half::after { content:""; position:absolute; inset:0; opacity:.14; background:linear-gradient(rgba(255,255,255,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.13) 1px,transparent 1px); background-size:62px 62px; mask-image:linear-gradient(to bottom,transparent,#000 22%,#000 80%,transparent); }
/* v1.1.3: each half of the insignia is constrained to its own hero background.
   Desktop: red League Spartan ExtraBold numerals on the dark LEFT, black vector plus on red RIGHT.
   The vector plus is intentionally independent of glyph/font metrics. */
.hero-mark { --hero-mark-size:clamp(195px,26vw,410px); position:absolute; z-index:1; top:34%; inset-inline:0; height:var(--hero-mark-size); transform:translateY(-50%); display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:stretch; white-space:nowrap; user-select:none; pointer-events:none; filter:drop-shadow(0 14px 37px rgba(0,0,0,.20)); }
.hero-mark__half { display:flex; min-width:0; align-items:center; }
.hero-mark__half--dark { justify-content:flex-end; padding-right:clamp(16px,2.75vw,52px); }
.hero-mark__half--red { justify-content:flex-start; padding-left:clamp(16px,2.75vw,52px); }
.hero-mark__number { display:block; font-family:var(--font-hero); font-size:var(--hero-mark-size); font-weight:800; line-height:1; letter-spacing:-.058em; color:#fc1238; text-shadow:0 0 55px rgba(255,20,60,.22); font-variant-numeric:lining-nums; }
.hero-mark__plus { display:block; flex:none; width:calc(var(--hero-mark-size) * .385); height:calc(var(--hero-mark-size) * .385); fill:#080808; transform:translateY(calc(var(--hero-mark-size) * -.145)); filter:drop-shadow(0 2px 0 rgba(255,255,255,.06)); }
.hero-mark__caption { position:absolute; left:50%; bottom:-39px; transform:translateX(-50%); padding:9px 13px; border:1px solid rgba(255,255,255,.28); border-radius:3px; font:700 10px/1.35 var(--font-content); letter-spacing:.035em; background:rgba(0,0,0,.63); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); color:#fff; text-shadow:none; text-align:center; white-space:normal; width:max-content; max-width:min(340px,calc(100vw - 40px)); }
.hero-orbit { position:absolute; z-index:0; top:34%; left:50%; width:min(74vw,1050px); aspect-ratio:1; border:1px solid rgba(255,255,255,.13); border-radius:50%; transform:translate(-50%,-50%); pointer-events:none; animation:orbit 10s ease-in-out infinite alternate; }
.hero-orbit::before,.hero-orbit::after { content:""; position:absolute; border:inherit; border-radius:inherit; inset:11%; }
.hero-orbit::after { inset:24%; opacity:.45; }
.grain { position:absolute; z-index:2; inset:-50%; opacity:.035; pointer-events:none; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.68' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E"); }
.hero-grid { position:relative; z-index:4; display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:clamp(60px,10vw,160px); min-height:780px; min-height:max(780px,100svh); padding-top:clamp(390px,45vh,530px); padding-bottom:121px; }
.hero-copy { max-width:460px; min-width:0; }
.hero-copy--right { justify-self:end; text-align:right; color:#100b0d; }
.eyebrow { display:inline-flex; align-items:center; gap:11px; margin:0 0 18px; font-size:10px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; }
.eyebrow::before { content:""; width:29px; height:1px; background:currentColor; opacity:.72; flex:none; }
.hero-copy h1,.hero-copy h2 { font-family:var(--font-content); font-weight:700; text-transform:uppercase; font-size:clamp(34px,3.9vw,55px); line-height:1.11; letter-spacing:-.03em; margin:0; text-wrap:balance; }
html[lang="km-KH"] .hero-copy h1,html[lang="km-KH"] .hero-copy h2,html[lang="zh-Hant-HK"] .hero-copy h1,html[lang="zh-Hant-HK"] .hero-copy h2 { line-height:1.3; letter-spacing:0; font-size:clamp(30px,3.15vw,50px); }
.hero-copy h1 em { font-style:normal; color:#ff3355; }
.hero-copy p { max-width:44ch; margin:20px 0 0; font-size:clamp(12px,1.12vw,14px); line-height:1.85; color:rgba(255,255,255,.78); }
.hero-copy--right p { margin-left:auto; color:rgba(0,0,0,.78); }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:25px; }
.hero-copy--right .hero-actions { justify-content:flex-end; }
.btn { display:inline-flex; justify-content:center; align-items:center; gap:10px; min-height:44px; padding:11px 18px; border-radius:4px; font-size:11px; font-weight:700; letter-spacing:.055em; text-transform:uppercase; transition:transform .2s var(--ease),background .2s; }
.btn:hover { transform:translateY(-2px); }
.btn--red { background:var(--red-hot); color:#080808; }
.btn--red:hover { background:#ff6c80; }
.btn--dark { background:#100f13; color:#fff; }
.btn--dark:hover { background:#303038; }
.btn--outline { border:1px solid rgba(255,255,255,.45); color:#fff; }
.btn--outline:hover { background:rgba(255,255,255,.10); }
.btn svg { width:15px; height:15px; flex:none; }

/* Contact rail — restored from the supplied original, responsive and language-aware. */
.contact-rail { position:absolute; z-index:9; left:50%; bottom:57px; transform:translateX(-50%); display:flex; align-items:center; justify-content:center; gap:12px; max-width:calc(100% - 32px); padding:9px 15px; border:1px solid rgba(255,255,255,.23); border-radius:999px; background:rgba(5,5,8,.73); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); box-shadow:0 13px 35px rgba(0,0,0,.27); color:rgba(255,255,255,.92); font-size:11px; font-weight:700; letter-spacing:.01em; white-space:nowrap; }
.contact-rail a { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:22px; transition:color .2s var(--ease),transform .2s var(--ease); }
.contact-rail a:hover { color:#fff; transform:translateY(-1px); }
.contact-rail a+a { border-left:1px solid rgba(255,255,255,.24); padding-left:12px; }
.contact-rail svg { width:15px; height:15px; flex:none; color:#ff4563; }
.contact-rail__label { color:#adb0b9; font-size:10px; }
.contact-primary { display:flex; flex-direction:column; align-items:flex-start; gap:8px; margin-top:25px; }
.contact-primary__label { color:#ff4563; text-transform:uppercase; letter-spacing:.075em; font-weight:700; font-size:11px; }
.contact-primary a { display:inline-flex; align-items:center; gap:9px; padding:0 0 5px; max-width:100%; border-bottom:1px solid rgba(255,255,255,.4); color:#fff; font-size:clamp(17px,2.1vw,24px); font-weight:700; overflow-wrap:anywhere; }
.contact-primary a:hover { color:#ff4563; }
.contact-primary svg { flex:none; width:20px; height:20px; }
.panel-primary { padding:15px 0 19px; border-top:1px solid var(--line); }
.panel-primary h3 { margin:0 0 9px; color:var(--red-hot); font-size:11px; text-transform:uppercase; letter-spacing:.12em; }
.panel-primary a { color:white; font-size:18px; font-weight:700; overflow-wrap:anywhere; }
.panel-primary a:hover { color:var(--red-hot); }
/* Keep the header insignia in Archivo Black; the large hero numerals use League Spartan ExtraBold. */
.brand-logo { display:inline-flex; align-items:flex-start; gap:.045em; flex:none; font-family:var(--font-mark); font-size:31px; line-height:.95; font-weight:900; letter-spacing:0; white-space:nowrap; color:#fff; }
.brand-logo__number { color:#fff; line-height:.95; letter-spacing:-.12em; }
.brand-logo__plus { flex:none; color:var(--red-hot); font-size:.69em; line-height:1; letter-spacing:0; margin-top:-.16em; }
.brand-full,.brand-short { max-width:16ch; }
html[lang="km-KH"] body { font-family:"Quicksand","Noto Sans Khmer",system-ui,sans-serif; }
html[lang="zh-Hant-HK"] body { font-family:"Quicksand","Noto Sans HK","PingFang TC",system-ui,sans-serif; }

.hero-bottom { position:absolute; z-index:6; bottom:27px; left:50%; width:min(1320px,calc(100% - 64px)); transform:translateX(-50%); display:flex; align-items:end; justify-content:space-between; gap:20px; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.12em; }
.hero-bottom__left { color:#fff; opacity:.63; }
.hero-bottom__right { color:#170a0d; opacity:.76; }
.section { padding:clamp(72px,9vw,120px) 0; }
.section--intro { background:#0e0f12; border-top:1px solid #222; }
.section-heading { max-width:840px; margin-bottom:40px; }
.section-kicker { margin:0 0 15px; color:var(--red-hot); font-size:10px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; }
.section-title { max-width:18ch; margin:0; font-family:var(--font-content); font-size:clamp(37px,4.7vw,70px); font-weight:700; line-height:1.19; letter-spacing:-.025em; text-transform:uppercase; }
html[lang="km-KH"] .section-title,html[lang="zh-Hant-HK"] .section-title { font-size:clamp(32px,4.4vw,58px); line-height:1.35; }
.section-lead { max-width:750px; margin:22px 0 0; color:#c1c1c7; font-size:clamp(14px,1.35vw,17px); line-height:1.86; }
.stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-block:1px solid var(--line); margin:55px 0 72px; }
.stat { padding:28px clamp(18px,4vw,52px) 28px 0; }
.stat + .stat { border-left:1px solid var(--line); padding-left:clamp(18px,4vw,52px); }
.stat strong { display:block; color:#fff; font:700 clamp(22px,3vw,43px)/1.16 var(--font-content); }
.stat span { display:block; max-width:180px; margin-top:9px; color:#a7a7b0; font-size:11px; line-height:1.7; letter-spacing:.04em; }
.services-head { display:flex; align-items:end; justify-content:space-between; gap:28px; margin-bottom:24px; }
.services-head h3 { font-size:clamp(22px,3vw,37px); line-height:1.3; margin:0; }
.services-head p { color:#a7a7b0; max-width:440px; font-size:13px; line-height:1.8; margin:0; }
.service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; }
.service-card { min-height:300px; background:linear-gradient(145deg,#1c1d22,#14151a); border:1px solid rgba(255,255,255,.10); padding:30px; border-radius:5px; position:relative; overflow:hidden; }
.service-card::after { content:""; position:absolute; inset:auto -60px -140px auto; width:220px; height:220px; background:radial-gradient(circle,rgba(234,0,39,.16),transparent 67%); pointer-events:none; }
.service-card__icon { display:grid; place-items:center; width:45px; height:45px; border-radius:4px; background:rgba(255,49,84,.12); color:var(--red-hot); }
.service-card__icon svg { width:22px; height:22px; }
.service-card__num { display:block; margin-top:27px; color:#777985; font:700 10px var(--font-content); letter-spacing:.18em; }
.service-card h4 { font-size:clamp(17px,1.75vw,23px); line-height:1.4; margin:10px 0 13px; }
.service-card p { font-size:13px; line-height:1.85; color:#aeb0ba; margin:0; }
.section--reach { padding-block:65px; background:linear-gradient(110deg,#cf0024,#ef133c); color:#140b0c; }
.reach-inner { display:flex; align-items:center; justify-content:space-between; gap:32px; }
.reach-title { font:700 clamp(32px,4.1vw,56px)/1.14 var(--font-content); text-transform:uppercase; letter-spacing:-.025em; margin:0 0 10px; }
.reach-desc { max-width:680px; margin:0; font-size:14px; line-height:1.85; color:rgba(0,0,0,.77); }
.section--contact { background:#0a0a0c; }
.contact-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(24px,7vw,120px); }
.contact-intro .section-title { max-width:12ch; }
.contact-intro .section-lead { font-size:15px; }
.office-grid { display:grid; gap:14px; }
.office { padding:25px 28px; border:1px solid rgba(255,255,255,.13); background:#141417; border-radius:4px; }
.office__name { color:#ff4261; font-size:11px; letter-spacing:.17em; text-transform:uppercase; font-weight:700; margin:0 0 15px; }
.office__email { color:#fff; font-size:clamp(17px,2.1vw,27px); font-weight:700; letter-spacing:-.03em; display:inline-flex; gap:10px; align-items:center; border-bottom:1px solid rgba(255,255,255,.32); padding-bottom:6px; overflow-wrap:anywhere; }
.office__email:hover { color:var(--red-hot); }
.office__email svg { width:19px; height:19px; flex:none; }
.office address { margin:15px 0 0; font-size:12px; line-height:1.8; font-style:normal; color:#aeb0b9; }
.site-footer { background:#070708; border-top:1px solid #222; }
.footer-inner { display:flex; justify-content:space-between; align-items:center; gap:24px; min-height:100px; padding-block:22px; }
.footer-brand { display:block; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.09em; }
.footer-brand small { display:block; margin-top:7px; font-size:10px; font-weight:500; text-transform:none; letter-spacing:0; color:#8f909a; line-height:1.5; }
.footer-copy { text-align:right; color:#9b9ba4; font-size:11px; line-height:1.8; }
.footer-copy a { color:#dedee3; }
.footer-copy a:hover { color:#ff4261; }
.info-toggle { position:fixed; z-index:30; right:23px; bottom:23px; display:grid; place-items:center; width:46px; height:46px; border-radius:50%; border:1px solid rgba(255,255,255,.3); background:rgba(11,11,13,.87); backdrop-filter:blur(10px); color:#fff; cursor:pointer; box-shadow:0 12px 36px rgba(0,0,0,.25); transition:transform .25s var(--ease),background .25s ease; }
.info-toggle:hover { background:var(--red); transform:scale(1.06); }
.info-toggle svg { width:20px; height:20px; }
.panel { position:fixed; inset:16px 16px 16px auto; width:min(460px,calc(100% - 32px)); max-height:calc(100dvh - 32px); height:auto; overflow:auto; margin:0; padding:30px; border:1px solid rgba(255,255,255,.18); border-radius:4px; background:rgba(13,13,17,.97); color:#fff; box-shadow:-22px 0 60px rgba(0,0,0,.4); }
.panel::backdrop { background:rgba(0,0,0,.65); backdrop-filter:blur(3px); }
.panel-header { display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid var(--line); padding-bottom:19px; }
.panel-header h2 { font-size:16px; line-height:1.35; margin:0; }
.panel-close { border:0; background:rgba(255,255,255,.08); color:#fff; border-radius:3px; width:35px; height:35px; display:grid; place-items:center; cursor:pointer; flex:none; }
.panel-close:hover { background:var(--red); }
.panel-close svg { width:18px; height:18px; }
.panel-intro { margin:20px 0; font-size:13px; line-height:1.8; color:#bbbcc6; }
.panel-location { padding:18px 0; border-top:1px solid var(--line); }
.panel-location h3 { color:var(--red-hot); font-size:11px; letter-spacing:.14em; text-transform:uppercase; margin:0 0 9px; }
.panel-location a { color:#fff; font-size:18px; font-weight:700; overflow-wrap:anywhere; }
.panel-location a:hover { color:var(--red-hot); }
.panel-location address { margin-top:10px; font-size:12px; line-height:1.7; color:#b0b0b7; font-style:normal; }
.panel-bottom { padding-top:22px; border-top:1px solid var(--line); font-size:12px; color:#b0b0b7; }
body.panel-open { overflow:hidden; }
@keyframes orbit { to { transform:translate(-50%,-50%) scale(1.04) rotate(4deg); opacity:.63; } }
@media (max-width:1040px) {
  .header-location { display:none; }
  .hero-grid { gap:85px; }
  .hero-copy h1,.hero-copy h2 { font-size:clamp(33px,4.4vw,56px); }
  .hero-mark { top:31%; --hero-mark-size:clamp(195px,28vw,350px); }
  .hero-orbit { top:31%; }
}
@media (max-width:720px) {
  .container { width:calc(100% - 36px); }
  .header-inner { min-height:65px; gap:7px; }
  .brand { font-size:10px; letter-spacing:.07em; gap:8px; }
  .brand-short { display:inline; }
  .brand-full { display:none; }
  .brand-dot { width:7px; height:7px; }
  .lang-switch { gap:3px; }
  .lang-switch a { width:30px; height:32px; }
  .lang-switch .flag { font-size:22px; }
  .hero { min-height:1050px; background:linear-gradient(to bottom,#080808 0 50%,#e60029 50% 100%); }
  .hero-split { grid-template-columns:1fr; grid-template-rows:1fr 1fr; }
  .hero-grid { min-height:1050px; grid-template-columns:1fr; grid-template-rows:1fr 1fr; align-items:stretch; gap:0; padding:0 0 68px; }
  .hero-copy { width:100%; max-width:520px; }
  .hero-copy--left { align-self:start; justify-self:start; padding-top:101px; padding-right:8px; }
  .hero-copy--right { align-self:end; justify-self:end; padding-bottom:18px; padding-left:8px; }
  .eyebrow { font-size:9px; margin-bottom:11px; letter-spacing:.12em; }
  .hero-copy h1,.hero-copy h2 { font-size:clamp(36px,9vw,54px); }
  html[lang="km-KH"] .hero-copy h1,html[lang="km-KH"] .hero-copy h2,html[lang="zh-Hant-HK"] .hero-copy h1,html[lang="zh-Hant-HK"] .hero-copy h2 { font-size:clamp(28px,7vw,42px); }
  .hero-copy p { font-size:12px; line-height:1.65; margin-top:12px; }
  .hero-actions { margin-top:14px; }
  .btn { padding:9px 14px; min-height:40px; font-size:10px; }
  /* On stacked mobile hero, dark and red panels are ABOVE / BELOW each other.
     Keep the red 18 entirely above the seam and the dark + entirely below it. */
  .hero-mark { --hero-mark-size:clamp(116px,37vw,172px); top:50%; height:calc(var(--hero-mark-size) * 1.9); grid-template-columns:minmax(0,1fr); grid-template-rows:1fr 1fr; }
  .hero-mark__half--dark { justify-content:center; align-items:flex-end; padding:0 0 9px; }
  .hero-mark__half--red { justify-content:center; align-items:flex-start; padding:12px 0 0; }
  .hero-mark__number { color:#fc1238; text-shadow:0 2px 16px rgba(0,0,0,.3); line-height:.87; }
  .hero-mark__plus { transform:none; filter:drop-shadow(0 2px 0 rgba(255,255,255,.08)); }
  .hero-mark__caption { bottom:-28px; padding:6px 8px; font-size:7px; letter-spacing:.18em; }
  .hero-orbit { top:50%; width:108vw; }
  .hero-bottom { bottom:17px; width:calc(100% - 36px); font-size:8px; letter-spacing:.07em; }
  .hero-bottom__right { display:none; }
  .section { padding:67px 0; }
  .section-heading { margin-bottom:32px; }
  .stats { margin:40px 0 48px; grid-template-columns:1fr; }
  .stat { padding:18px 0; }
  .stat + .stat { border-left:0; border-top:1px solid var(--line); padding-left:0; }
  .stat span { max-width:none; }
  .services-head { align-items:start; flex-direction:column; gap:10px; }
  .service-grid { grid-template-columns:1fr; }
  .service-card { min-height:auto; padding:25px; }
  .service-card__num { margin-top:20px; }
  .section--reach { padding-block:49px; }
  .reach-inner { flex-direction:column; align-items:start; gap:21px; }
  .contact-layout { grid-template-columns:1fr; }
  .contact-intro .section-title { max-width:16ch; }
  .office { padding:23px 20px; }
  .footer-inner { align-items:start; flex-direction:column; gap:12px; padding-block:26px; padding-right:50px; }
  .footer-copy { text-align:left; }
  .info-toggle { width:40px; height:40px; left:13px; right:auto; bottom:13px; }
  .panel { inset:10px 10px 10px auto; width:calc(100% - 20px); max-height:calc(100dvh - 20px); padding:23px; }
}
@media (max-width:380px) {
  .hero { min-height:1110px; }
  .hero-grid { min-height:1110px; }
  .hero-copy--left { padding-top:93px; }
  .hero-copy h1,.hero-copy h2 { font-size:clamp(34px,8.4vw,42px); }
  html[lang="km-KH"] .hero-copy h1,html[lang="km-KH"] .hero-copy h2,html[lang="zh-Hant-HK"] .hero-copy h1,html[lang="zh-Hant-HK"] .hero-copy h2 { font-size:clamp(27px,6.7vw,33px); }
  .hero-copy p { font-size:11px; }
  .hero-mark { --hero-mark-size:clamp(112px,35vw,152px); }
}

/* Contact rail remains readable and separated from CTAs on narrower screens. */
@media (max-width:1150px) {
  .hero-bottom { bottom:17px; }
  .hero-bottom__right { display:none; }
  .contact-rail { bottom:53px; }
}
@media (max-width:720px) {
  .brand-logo { font-size:24px; }
  .brand { gap:9px; }
  .hero-grid { padding-bottom:124px; }
  .hero-copy--right { padding-bottom:0; }
  .hero-copy h1,.hero-copy h2 { font-size:clamp(32px,8.5vw,50px); }
  .hero-mark { --hero-mark-size:clamp(116px,37vw,172px); }
  .hero-mark__caption { display:none; }
  .contact-rail { bottom:46px; padding:9px 13px; gap:10px; font-size:10px; }
  .contact-rail__label { display:none; }
  .contact-rail__telegram-handle { display:none; }
  .contact-rail a+a { padding-left:10px; }
  .hero-bottom { bottom:15px; }
  .contact-primary { margin-top:22px; }
}
@media (max-width:380px) {
  .brand-logo { font-size:22px; }
  .hero-grid { padding-bottom:138px; }
  .hero-copy h1,.hero-copy h2 { font-size:clamp(30px,8vw,38px); }
  .hero-mark { --hero-mark-size:clamp(110px,36vw,137px); }
  .contact-rail { bottom:49px; padding:8px 11px; }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; scroll-behavior:auto!important; }
}

/* v1.1.4 — Network CTA in the reach banner. */
.reach-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:12px; }
.btn--network { color:#151016; border:1px solid rgba(15,10,15,.65); background:rgba(255,255,255,.1); }
.btn--network:hover { background:rgba(255,255,255,.3); }
.footer-separator { color:#6c6c72; }
@media(max-width:720px){ .reach-actions { justify-content:flex-start; } }

/* Mobile caption: reserve adequate vertical breathing room on wider stacked
   hero layouts so the complete brand name never overlaps the headline. */
@media(max-width:400px) { .hero-mark__caption { display:block; bottom:24px; padding:6px 9px; font-size:8px; letter-spacing:0; max-width:calc(100vw - 28px); } }
@media(min-width:401px) and (max-width:720px) { .hero,.hero-grid { min-height:1240px; } .hero-mark__caption { display:block; bottom:24px; padding:6px 9px; font-size:8px; letter-spacing:0; max-width:calc(100vw - 28px); } }

@media(min-width:381px) and (max-width:400px) { .hero,.hero-grid { min-height:1170px; } }

/* Medium desktops: place the long brand caption beneath the plus on the red
   panel, clear of both lengthy headline columns; desktop-wide stays centered. */
@media(min-width:721px) and (max-width:1199px) {
  .hero-mark__caption { left:calc(50% + 100px); bottom:calc(var(--hero-mark-size) * .22); }
}
