/* Inspired by the Sun Urban City “Tô vẽ sắc màu” campaign artwork. */
:root{
  --font-text:"Be Vietnam Pro",system-ui,sans-serif;
  --font-display:"Playfair Display",Georgia,serif;
  --midnight:#1e2842;
  --cobalt:#273f9c;
  --ink:#222a3e;
  --muted:#4e5870;
  --paper:#fffdf9;
  --surface:#fff;
  --tint:#edf1fb;
  --line:#d5def0;
  --control-line:#7784a6;
  --sun:#f9d337;
  --sun-hover:#ffe16a;
  --coral:#ee5147;
  --leaf:#3ba36f;
  --sky:#28b2df;
  --on-dark:#eef2ff;
  --campaign-stripe:linear-gradient(90deg,var(--cobalt) 0 48%,var(--sun) 48% 68%,var(--coral) 68% 80%,var(--leaf) 80% 91%,var(--sky) 91%);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.72 var(--font-text)}
a{color:inherit}
.skip{position:absolute;top:0;left:12px;z-index:10;padding:10px;background:white;transform:translateY(-120%)}
.skip:focus{transform:none}
.wrap{max-width:1160px;margin-inline:auto;padding-inline:24px}
.header{background:var(--midnight);color:white;position:sticky;top:0;z-index:4}
.header::after{content:"";display:block;height:4px;background:var(--campaign-stripe)}
.header-row{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:700 18px/1.2 var(--font-display);white-space:nowrap}
.brand-mark{color:var(--sun);font-size:29px}
.brand small{display:block;font:600 8px/1.5 var(--font-text);letter-spacing:.2em;color:var(--sun)}
nav{display:flex;gap:24px}
nav a,.hotline{text-decoration:none;font-size:.86rem;font-weight:650}
nav a:hover{color:var(--sun)}
.hotline{color:var(--sun);white-space:nowrap}
.hero{position:relative;isolation:isolate;min-height:clamp(540px,75vh,790px);display:grid;align-items:center;color:white;background:var(--midnight)}
.hero-image,.hero::after{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
.hero-image{object-fit:cover;object-position:50% 53%}
.hero::after{content:"";background:linear-gradient(90deg,#111d45f5 0%,#15234bd9 39%,#253d8a70 73%,#273f9c29 100%)}
.hero-content{width:100%;padding-block:72px}
.hero-credit{position:absolute;right:16px;bottom:14px;font-size:.72rem;background:#1e2842ed;padding:4px 8px}
h1,h2,h3,p,figure,dl{margin:0}
h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.16;text-wrap:balance;color:var(--cobalt)}
.hero h1,.amenities h3,.contact h2{color:inherit}
h1{font-size:clamp(2.75rem,9vw,8rem);margin-block:12px 18px;letter-spacing:-.035em}
h2{font-size:clamp(2.2rem,5vw,3.75rem);margin:10px 0 16px;letter-spacing:-.025em}
h3{font-size:1.65rem;margin-bottom:10px}
.eyebrow{color:var(--sun);font-size:.76rem;font-weight:800;letter-spacing:.16em}
.eyebrow.dark{color:var(--cobalt)}
.hero-sub{max-width:33rem;color:var(--on-dark);font-size:clamp(1rem,2vw,1.3rem)}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}
.button{display:inline-block;padding:11px 18px;border:1px solid transparent;border-radius:4px;text-decoration:none;font-weight:750}
.gold{background:var(--sun);color:var(--midnight)}
.gold:hover{background:var(--sun-hover)}
.outline{border-color:#ffffffa6;color:white;background:#1e284253}
.outline:hover{background:#1e2842d9}
.section{padding-block:72px}
.overview,.split,.product-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:42px;align-items:center}
.overview p,.location p,.product-panel p{color:var(--muted)}
.overview .eyebrow,.location .eyebrow{color:var(--cobalt)}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-top:24px;border-top:1px solid var(--line);padding-top:18px}
.facts dt{color:var(--cobalt);font-size:clamp(1.05rem,2.2vw,1.75rem);font-weight:700;line-height:1.3;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.facts dd{margin:0;color:var(--muted);font-size:.8rem}
.media img,.product-panel img{width:100%;height:auto;display:block;border-radius:6px}
.media figcaption,.credit{color:var(--muted);font-size:.8rem;margin-top:8px}
.location{background:var(--tint)}
.location .media img{max-height:460px;object-fit:contain;background:var(--tint)}
.inline-link{display:inline-block;color:var(--cobalt);font-weight:750;margin-top:14px;text-underline-offset:4px}
.product-controls{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0 16px}
.product-controls button{font:inherit;font-weight:700;color:var(--ink);background:transparent;border:1px solid var(--line);padding:8px 13px;border-radius:4px;cursor:pointer}
.product-controls [aria-pressed=true]{background:var(--midnight);border-color:var(--midnight);color:white}
.product-panel{padding:18px;border:1px solid var(--line);border-radius:6px;gap:24px}
.product-panel[hidden]{display:none}
.product-panel img{aspect-ratio:16/9;object-fit:cover}
.amenities,.contact{background:linear-gradient(115deg,var(--midnight),var(--cobalt));color:white}
.amenity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:26px}
.amenity-grid article{padding:20px;border:1px solid #f9d33765}
.amenity-grid span{color:var(--sun);font-weight:750;display:block;margin-bottom:10px}
.amenity-grid p,.contact p:not(.eyebrow){color:var(--on-dark)}
.plan img{max-height:620px;object-fit:contain;background:var(--tint)}
.footer{padding-block:28px 94px;font-size:.85rem;color:var(--muted)}
.floating-phone{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));z-index:5;color:var(--midnight);background:var(--sun);font-weight:800;padding:10px 15px;border-radius:30px;text-decoration:none;box-shadow:0 3px 18px #0004}
@media(max-width:760px){nav{display:none}.wrap{padding-inline:17px}.section{padding-block:46px}.overview,.split,.product-panel{grid-template-columns:1fr;gap:22px}.amenity-grid{grid-template-columns:1fr}.hero{min-height:520px}.hero::after{background:#111d45b8}.header-row{min-height:63px}.brand{font-size:.93rem}.hotline{font-size:.76rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Shared navigation, project pages, and inquiry */
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--cobalt);outline-offset:4px}
.header :focus-visible,.hero :focus-visible,.contact :focus-visible,.lightbox :focus-visible{outline-color:var(--sun)}
nav{gap:16px}
.nav-group{position:relative}
.nav-group summary{display:flex;gap:.4rem;align-items:center;cursor:pointer;font-size:.86rem;font-weight:700;white-space:nowrap;list-style:none}
.nav-group summary::-webkit-details-marker{display:none}
.nav-group summary::after{content:"⌄";color:var(--sun)}
.nav-group[open] summary::after{content:"⌃"}
.nav-links{position:absolute;top:calc(100% + 11px);left:0;display:grid;min-width:13rem;background:#293763;color:white;border:1px solid #ffffff24;padding:6px;box-shadow:0 8px 24px #1e284233}
.nav-links a{padding:8px 11px;border-radius:3px}
.nav-links a:hover,.nav-links a[aria-current]{background:#ffffff18;color:var(--sun)}
.menu-toggle{display:none}
.breadcrumbs{display:flex;flex-wrap:wrap;gap:10px;padding-top:22px;font-size:.85rem;color:var(--muted)}
.breadcrumbs a{text-underline-offset:3px}
.detail-hero{display:grid;grid-template-columns:1fr 1fr;gap:42px;align-items:center;padding-block:35px 57px}
.detail-hero h1{font-size:clamp(2.5rem,5.6vw,5rem);letter-spacing:-.025em;max-width:16ch}
.detail-intro{color:var(--muted);font-size:1.08rem;max-width:51ch}
.detail-hero img{aspect-ratio:5/4;object-fit:cover}
.media-contain img{object-fit:contain;background:var(--tint)}
.detail-section{background:var(--tint)}
.detail-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 45px}
.detail-content article{border-top:1px solid var(--line);padding-top:15px;max-width:66ch}
.detail-content h2{font-size:clamp(1.45rem,3.2vw,2.4rem);letter-spacing:-.02em}
.detail-content p{color:var(--ink)}
.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px;margin-top:24px}
.gallery img{aspect-ratio:16/10;object-fit:cover}
.gallery .media-contain img{object-fit:contain}
.image-link{display:block;position:relative;border-radius:6px}
.image-link span{position:absolute;right:10px;bottom:10px;background:var(--midnight);color:white;min-width:34px;text-align:center;border-radius:4px;font-size:1.15rem}
.card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:26px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:6px;overflow:hidden;display:flex}
.card a{display:flex;flex-direction:column;width:100%;text-decoration:none}
.card a:focus-visible{outline-offset:-3px}
.card a:hover{background:var(--tint)}
.card img{width:100%;aspect-ratio:16/10;object-fit:cover}
.card a>div{padding:16px;display:flex;flex-direction:column;align-items:start;flex:1}
.card h3{margin-top:5px}
.card p:not(.eyebrow){color:var(--muted);font-size:.88rem;margin-bottom:12px}
.card .inline-link{margin-top:auto;font-size:.88rem}
.related .card-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.sources{padding-bottom:32px;color:var(--muted);font-size:.85rem}
.sources ul{padding-left:18px;margin:6px 0 0}
.footer{background:var(--tint);border-top:1px solid var(--line)}
.footer-layout{display:grid;grid-template-columns:1.35fr repeat(4,1fr);gap:20px}
.footer-layout>div>a:not(.brand){display:block;margin-top:4px;text-underline-offset:3px}
.footer-layout>div>strong{display:block;color:var(--ink);margin-bottom:8px}
.footer-brand{color:var(--midnight);margin-bottom:9px}
.footer-brand small,.footer-brand .brand-mark{color:var(--cobalt)}
.footer-source{grid-column:1/-1;border-top:1px solid var(--line);padding-top:13px}
.button-light{border-color:var(--control-line);color:var(--cobalt);background:transparent}
.button-light:hover{background:var(--tint)}
.inquiry{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:clamp(17px,4vw,42px);border:1px solid var(--line);background:var(--surface);border-radius:6px}
.inquiry form{display:grid;gap:14px}
.inquiry label{display:grid;gap:4px;font-weight:700}
.inquiry label span,.form-status{font-weight:400;color:var(--muted);font-size:.9rem}
.inquiry select,.inquiry textarea{width:100%;padding:10px;border:1px solid var(--control-line);border-radius:4px;color:var(--ink);background:white;font:inherit}
.inquiry .actions{margin-top:0}
.inquiry [data-message] button{margin-top:8px}
button.button{font:inherit;font-weight:750;cursor:pointer}
.lightbox{width:min(calc(100% - 26px),1200px);max-height:calc(100% - 24px);padding:12px;color:white;background:var(--midnight);border:0;border-radius:6px}
.lightbox::backdrop{background:#10182fe8}
.lightbox button{display:block;margin:0 0 8px auto;background:white;color:var(--midnight);border:0;border-radius:3px;padding:7px 10px;cursor:pointer}
.lightbox img{display:block;width:100%;height:auto;max-height:75vh;object-fit:contain}
.lightbox figcaption{text-align:center;padding:6px}
@media(max-width:900px){
  .card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-layout{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-layout>div:first-child{grid-column:1/-1}
  .header-row{gap:11px}
}
@media(max-width:760px){
  .header-row{justify-content:flex-start}
  .header-row .hotline{margin-left:auto}
  .menu-toggle{display:block;margin-left:auto;white-space:nowrap;color:white;background:transparent;border:1px solid #ffffff65;border-radius:4px;padding:5px 7px;font:inherit;font-size:.76rem}
  nav.is-open{display:grid;gap:0;position:absolute;top:100%;left:0;right:0;max-height:75vh;overflow:auto;background:var(--midnight);border-top:1px solid #ffffff33;padding:4px 17px 12px}
  .nav-group summary{padding:10px 0}
  .nav-links{position:static;box-shadow:none;min-width:0}
  .detail-hero,.inquiry,.detail-content{grid-template-columns:1fr;gap:23px}
  .detail-hero{padding-block:18px 35px}
  .detail-hero h1{max-width:19ch}
  .gallery{gap:13px}
  .hero-credit{bottom:7px}
}
@media(max-width:405px){
  .brand{font-size:.82rem}
  .brand-mark{font-size:22px}
  .header-row .hotline{font-size:.69rem}
  .card-grid{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr}
}
