@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/be-vietnam-pro-vietnamese-400-normal.woff2") format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/be-vietnam-pro-latin-400-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:"Be Vietnam Pro";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/be-vietnam-pro-vietnamese-500-normal.woff2") format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/be-vietnam-pro-latin-500-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:"Be Vietnam Pro";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/be-vietnam-pro-vietnamese-600-normal.woff2") format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/be-vietnam-pro-latin-600-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:"Lora";font-style:normal;font-weight:400 700;font-display:swap;src:url("../fonts/lora-vietnamese-wght-normal.woff2") format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:"Lora";font-style:normal;font-weight:400 700;font-display:swap;src:url("../fonts/lora-latin-wght-normal.woff2") format("woff2-variations");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:"Lora";font-style:italic;font-weight:400 700;font-display:swap;src:url("../fonts/lora-vietnamese-wght-italic.woff2") format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:"Lora";font-style:italic;font-weight:400 700;font-display:swap;src:url("../fonts/lora-latin-wght-italic.woff2") format("woff2-variations");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}
:root{--paper:#edf0ee;--white:#fff;--ink:#1b2528;--muted:#5d686b;--line:#cbd3d2;--forest:#1f3b41;--forest-2:#2a4a51;--olive:#56666a;--sand:#dfe5e3;--copper:#7a4f0c;--sun:#e3ae47;--sun-2:#f0c66f;--alu:#b7c0c0;--fabric:linear-gradient(0deg,rgba(255,255,255,.035) 1px,transparent 1px) 0 0/100% 4px,var(--forest);--rail:linear-gradient(#e2e8e8,#a8b3b4 55%,#7d898a);--wrap:1240px;--gutter:clamp(22px,5.4vw,82px);--font:"Be Vietnam Pro",Arial,sans-serif;--serif:"Lora",Georgia,"Times New Roman",serif}
*,*:before,*:after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.7 var(--font);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid #1f6f7d;outline-offset:4px}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{line-height:1.12;letter-spacing:-.035em}
h1,h2{font-weight:500}
h1 em,h2 em{font-family:var(--serif);font-weight:400}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;z-index:200;left:16px;top:-60px;padding:12px 16px;background:var(--forest);color:#fff}.skip-link:focus{top:12px}
.wrap{width:100%;max-width:calc(var(--wrap) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.wrap--reading{max-width:calc(820px + 2*var(--gutter))}

.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.16em;line-height:1.5}
.eyebrow--dark{color:var(--olive)}

.site-header{height:84px;background:rgba(237,240,238,.96);border-bottom:1px solid rgba(32,35,31,.08);position:relative;z-index:80}
.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between}
.wordmark{display:inline-flex;align-items:center;gap:12px;color:var(--forest)}
.wordmark__icon{width:34px;height:34px;display:flex;align-items:center;justify-content:center;gap:3px;border:1px solid #9aa6a7;transform:rotate(45deg)}
.wordmark__icon i{height:18px;width:3px;background:var(--copper);display:block}.wordmark__icon i:nth-child(2){height:25px;background:var(--forest)}.wordmark__icon i:nth-child(3){height:13px}
.wordmark>span:last-child{display:grid;gap:3px}.wordmark strong{font-size:.86rem;letter-spacing:.12em;line-height:1.2}.wordmark small{font-size:.6rem;letter-spacing:.14em;color:#5d686b}
.primary-nav{display:flex;align-items:center;gap:clamp(18px,2.6vw,40px)}
.menu{display:flex;align-items:center;gap:clamp(14px,2.1vw,31px);list-style:none;margin:0;padding:0}
.menu a{font-size:.875rem;font-weight:550;color:#484d47;white-space:nowrap;transition:color .2s}.menu a:hover,.menu .current-menu-item>a{color:var(--copper)}
.header-call{display:flex;align-items:center;gap:15px;font-size:.76rem;font-weight:650;color:var(--forest);padding-left:24px;border-left:1px solid var(--line);white-space:nowrap}
.header-call b{font-size:.69rem;background:var(--forest);color:#fff;padding:11px 15px;font-weight:600;letter-spacing:.025em;transition:background .2s}.header-call:hover b{background:var(--copper)}
.menu-toggle{display:none}
.wordmark{flex:none;white-space:nowrap}
.button{min-height:50px;padding:0 24px;display:inline-flex;align-items:center;justify-content:center;gap:14px;font-size:.875rem;font-weight:650;letter-spacing:.015em;border:1px solid transparent;transition:background .2s,color .2s,border-color .2s}
.button span{font-size:1rem}
.button--light{background:#e3ae47;color:#28362f}.button--light:hover{background:#fff}
.text-link{display:inline-flex;align-items:center;gap:12px;font-size:.875rem;font-weight:650;color:var(--forest);border-bottom:1px solid #929b8b;padding:5px 0 9px;transition:gap .2s,color .2s}
.text-link:hover{gap:18px;color:var(--copper)}
.journal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.journal-card__image{display:block;background:#d7dfdd;aspect-ratio:1.36;overflow:hidden;margin-bottom:20px}
.journal-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.journal-card__image:hover img{transform:scale(1.04)}
.journal-card .eyebrow{margin-bottom:9px;font-size:.68rem;color:var(--muted)}
.journal-card h2,.journal-card h3{font:500 1.15rem/1.45 var(--font);letter-spacing:-.02em;margin-bottom:9px;color:var(--forest)}
.journal-card h2 a:hover,.journal-card h3 a:hover{color:var(--copper)}
.journal-card>p:last-child{color:var(--muted);font-size:.9375rem;line-height:1.75;margin:0}
.journal-card__placeholder{display:grid;place-items:center;width:100%;height:100%;background:linear-gradient(135deg,#d2dad8,#e2e8e6);color:#6b7a7d;font:italic 2rem var(--serif)}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.project-card__image{display:block;position:relative;aspect-ratio:1.36;overflow:hidden;background:#d7dfdd;margin-bottom:18px}
.project-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .45s}
.project-card__image:hover img{transform:scale(1.04)}

.project-card h2,.project-card h3{font:500 1.2rem/1.4 var(--font);letter-spacing:-.02em;color:var(--forest);margin:0 0 8px}
.project-card h2 a:hover,.project-card h3 a:hover{color:var(--copper)}
.project-card>p:last-child{font-size:.9375rem;color:var(--muted);line-height:1.75;margin:0}
.request-form{display:grid;grid-template-columns:1fr 1fr;gap:15px 14px}
.request-form label{display:grid;gap:6px;align-content:space-between;font-size:.8125rem;color:#e0e3db}
.request-form label span{color:#a9b4aa}
.request-form input,.request-form select,.request-form textarea{width:100%;min-height:44px;padding:10px 12px;color:#fff;background:#1a3338;border:1px solid #5a7378;border-radius:0}
.request-form input,.request-form select{height:44px}
.request-form input:focus,.request-form select:focus,.request-form textarea:focus{border-color:#e3ae47;outline:2px solid #e3ae47;outline-offset:1px}
.request-form select{color:#d8ded7}.request-form textarea{resize:vertical}.request-form__wide{grid-column:1/-1}
.request-form button{border:0;cursor:pointer;justify-content:center}
.request-form__note{font-size:.75rem;color:#bdc8bd;margin:0}
.request-form .request-form__consent{display:flex;align-items:flex-start;gap:10px;font-size:.78rem;line-height:1.6;color:#cbd3ca}
.request-form__consent input[type=checkbox]{flex:0 0 16px;width:16px;height:16px;min-height:16px;margin:2px 0 0;accent-color:#e3ae47}
.request-form__consent a{color:#f0c66f;text-decoration:underline;text-underline-offset:3px}
.form-status{padding:12px 14px;background:#f4ded3;color:#573e30;font-size:.875rem;margin:0 0 14px}.form-status--success{background:#e0e9d8;color:#30462f}
.site-footer{background:#172d32;color:#eef0e9;padding:62px 0 19px}
.footer-main{display:grid;grid-template-columns:1.3fr .7fr 1fr;gap:8vw;padding-bottom:51px}
.wordmark--footer{color:#f2f0e8}.wordmark--footer small{color:#b8c1b8}
.footer-brand>p{max-width:340px;color:#b7c0b6;font-size:.875rem;line-height:1.8;margin:23px 0 0}
.footer-title{font:600 .7rem/1.4 var(--font);letter-spacing:.13em;text-transform:uppercase;color:#e3ae47;margin:4px 0 20px}
.footer-links{list-style:none;padding:0;margin:0;display:grid;gap:10px}.footer-links a,.site-footer address{font-size:.875rem;color:#c8d0c7;line-height:1.9}.footer-links a:hover,.site-footer address a:hover{color:#f0c66f}.site-footer address{font-style:normal}
.footer-bottom{position:relative;padding-top:18px;display:flex;justify-content:space-between;gap:20px;font-size:.75rem;color:#aeb9af}.footer-bottom:before{content:"";position:absolute;top:0;left:var(--gutter);right:var(--gutter);border-top:1px solid rgba(255,255,255,.18)}.footer-bottom a:hover{color:var(--sun-2)}
.mobile-actions{display:none}
.page-hero{position:relative;background:var(--fabric);color:#fff;padding:72px 0 80px;margin-bottom:14px}
.page-hero:before{content:"";position:absolute;inset:0 0 auto;height:10px;background:var(--rail)}
.page-hero:after{content:"";position:absolute;inset:100% 0 auto;height:14px;background:var(--rail);box-shadow:0 3px 8px rgba(15,32,36,.3)}
.page-hero .eyebrow{color:var(--sun)}.page-hero :focus-visible{outline-color:var(--sun)}
.page-hero h1{font-size:clamp(2.5rem,5.4vw,4.75rem);font-weight:600;line-height:1.04;letter-spacing:-.045em;max-width:18ch;color:#fff;margin:10px 0 20px}
.page-hero__lead{font-size:1.0625rem;color:#d3dedf;max-width:680px;line-height:1.8;margin:0}
.breadcrumbs{display:flex;flex-wrap:wrap;gap:10px;font-size:.8125rem;color:#b9c7c9;margin-bottom:32px}
.breadcrumbs a{text-decoration:underline;text-decoration-color:rgba(255,255,255,.3);text-underline-offset:4px}.breadcrumbs a:hover{color:#fff;text-decoration-color:var(--sun)}
.content-page{padding-block:60px 100px}
.prose{font-size:1rem;line-height:1.9;color:#414840}
.prose h2{font:500 clamp(1.8rem,3vw,2.5rem)/1.2 var(--font);letter-spacing:-.035em;color:var(--forest);margin:2em 0 .7em}
.prose h3{font:600 1.25rem/1.4 var(--font);color:var(--forest);margin:1.7em 0 .5em}
.prose p,.prose ul,.prose ol{margin:0 0 1.15em}
.prose img{margin:30px 0}
.prose a{color:#7a4f0c;text-decoration:underline;text-underline-offset:3px}.prose a:hover{text-decoration-thickness:2px}
.prose ul,.prose ol{padding-left:1.3em}.prose li{margin-bottom:.4em}.prose li::marker{color:var(--copper)}
.inline-cta{position:relative;display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:70px;padding:40px 36px 34px;background:var(--fabric);color:#fff}.inline-cta:before{content:"";position:absolute;inset:0 0 auto;height:8px;background:var(--rail)}
.inline-cta h2{font:600 1.5rem/1.25 var(--font);letter-spacing:-.025em;color:#fff;margin:0 0 6px}.inline-cta p{font-size:.9375rem;color:#c3d1d3;margin:0}.inline-cta .button--dark{flex:none;background:var(--sun);color:var(--ink)}.inline-cta .button--dark:hover{background:var(--sun-2)}.inline-cta :focus-visible{outline-color:var(--sun)}
.button--dark{background:var(--forest);color:white}.button--dark:hover{background:var(--copper)}
.article-cover{padding-top:30px}.article-cover img{width:100%;max-height:620px;object-fit:cover}
.article-content{padding-block:45px 90px}
.listing-section{padding-block:55px 100px}
.listing-section .journal-grid{row-gap:52px}
.pagination .nav-links{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:50px}.pagination a,.pagination span{display:inline-grid;place-items:center;min-width:44px;min-height:44px;padding:0 14px;border:1px solid var(--line);font-size:.875rem;transition:border-color .2s,color .2s}.pagination a:hover{border-color:var(--forest);color:var(--copper)}.pagination .current{background:var(--forest);color:#fff}
.not-found{padding-block:120px;text-align:center}.not-found h1{font-size:clamp(2.8rem,5vw,5rem);color:var(--forest)}.not-found p{max-width:500px;margin:0 auto 25px;color:#666}
.empty-state{grid-column:1/-1;max-width:640px;margin:0;padding:28px 30px;border-left:3px solid var(--sun);background:#e2e8e6;color:var(--muted);line-height:1.75}.empty-state a{color:var(--copper);text-decoration:underline;text-underline-offset:3px}
.listing-more{margin-top:48px;color:var(--muted)}.listing-more a{color:var(--copper);text-decoration:underline;text-underline-offset:3px}
@media(max-width:1100px){.primary-nav{gap:18px}.menu{gap:15px}.menu a{font-size:.8125rem}.header-call{padding-left:15px}.header-call>span{display:none}}
@media(max-width:900px){.site-header{height:72px}.menu-toggle{display:grid;place-items:center;width:44px;height:44px;background:none;border:0;color:var(--forest);cursor:pointer}.menu-toggle__icon,.menu-toggle__icon:before,.menu-toggle__icon:after{display:block;width:21px;height:1px;background:currentColor;position:relative;transition:transform .2s}.menu-toggle__icon:before,.menu-toggle__icon:after{content:"";position:absolute;left:0}.menu-toggle__icon:before{top:-6px}.menu-toggle__icon:after{top:6px}.menu-toggle[aria-expanded=true] .menu-toggle__icon{background:transparent}.menu-toggle[aria-expanded=true] .menu-toggle__icon:before{top:0;transform:rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-toggle__icon:after{top:0;transform:rotate(-45deg)}.primary-nav{display:none;position:absolute;left:0;right:0;top:72px;background:var(--paper);padding:20px var(--gutter) 28px;border-bottom:1px solid var(--line);box-shadow:0 18px 25px #1e2a2414;align-items:stretch;gap:22px}.menu-open .primary-nav{display:flex;flex-direction:column}.menu{display:grid;gap:0}.menu li{border-bottom:1px solid var(--line)}.menu a{display:block;padding:13px 0;font-size:.92rem}.header-call{display:flex;align-self:flex-start;padding:0;border:0}.header-call>span{display:inline}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){:root{--gutter:21px}.site-header{height:68px}.wordmark__icon{width:29px;height:29px}.wordmark strong{font-size:.74rem}.wordmark small{font-size:.56rem}.primary-nav{top:68px}.menu-open{overflow:hidden}.primary-nav{max-height:calc(100svh - 68px);overflow-y:auto}.journal-grid,.project-grid{grid-template-columns:1fr;gap:35px}.journal-card__image,.project-card__image{aspect-ratio:1.55;margin-bottom:15px}.journal-card h2,.journal-card h3,.project-card h2,.project-card h3{font-size:1.08rem}.request-form{gap:13px 10px}.request-form input,.request-form select{min-height:42px;height:42px}.site-footer{padding:45px 0 80px}.footer-main{grid-template-columns:1fr 1fr;gap:30px 18px;padding-bottom:31px}.footer-brand{grid-column:1/-1}.footer-title{margin-bottom:13px}.footer-bottom{font-size:.75rem;align-items:flex-start}.mobile-actions{position:fixed;display:grid;grid-template-columns:1fr 1fr;left:0;right:0;bottom:0;z-index:75;background:#f8f7f1;padding:8px max(var(--gutter),env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom));box-shadow:0 -5px 20px #172d321a}.mobile-actions a{display:grid;place-items:center;min-height:46px;background:var(--forest);color:#fff;font-size:.875rem;font-weight:600}.mobile-actions a+a{background:var(--sun);color:var(--ink);margin-left:8px}.page-hero{padding:44px 0 50px}.breadcrumbs{margin-bottom:24px}.page-hero h1{font-size:2.5rem}.page-hero__lead{font-size:1rem}.content-page{padding-block:37px 65px}.prose{font-size:1rem}.prose h2{font-size:1.75rem}.inline-cta{display:block;margin-top:45px;padding:34px 22px 26px}.inline-cta .button{margin-top:19px}.article-content{padding-block:30px 65px}.listing-section{padding-block:35px 65px}.listing-section .journal-grid{row-gap:35px}.not-found{padding-block:90px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
/* v1.1: ảnh công trình thật, header CTA, nhịp chữ */
h1,h2,h3{text-wrap:balance}

.header-call{gap:18px}
.header-call__phone{font-size:.875rem;font-weight:650;color:var(--forest)}.header-call__phone:hover{color:var(--copper)}
.header-call__cta{font-size:.8125rem;background:var(--forest);color:#fff;padding:12px 18px;font-weight:600;letter-spacing:.025em;transition:background .2s}.header-call__cta:hover{background:var(--copper)}
.article-cover figcaption{font-size:.8125rem;color:#5d686b;letter-spacing:.02em;padding-top:10px}
.request-form label .request-form__label{color:#e0e3db}.request-form__label small{color:#a9b4aa;font-size:inherit}
figure.article-cover{margin-block:0}

.footer-bottom__links{display:flex;gap:22px;flex-wrap:wrap}
@media(max-width:1100px){.header-call__phone{display:none}}
@media(min-width:901px) and (max-width:1240px){.primary-nav{gap:16px}.menu{gap:14px}.menu a{font-size:.8125rem}.header-call{padding-left:14px}}
@media(min-width:901px) and (max-width:1060px){.wordmark small{display:none}.primary-nav{gap:14px}.menu{gap:12px}.menu a{font-size:.78rem}.header-call{padding-left:12px}.header-call__cta{padding:11px 13px;font-size:.75rem}}
@media(max-width:900px){.header-call{flex-direction:column;align-items:flex-start;gap:14px}.header-call__phone{display:inline;font-size:.92rem}}
@media(max-width:680px){.footer-bottom{flex-direction:column;gap:10px}}
/* v1.2: footer chính sách/sản phẩm/mạng xã hội, bản đồ liên hệ */
.footer-main{grid-template-columns:1.25fr .75fr .9fr 1.1fr;gap:clamp(28px,4.5vw,64px)}
.footer-title--spaced{margin-top:30px}
.footer-social{display:flex;gap:10px;list-style:none;padding:0;margin:24px 0 0}
.footer-social a{display:grid;place-items:center;width:44px;height:44px;border:1px solid rgba(255,255,255,.28);color:#e3ae47;font-size:.7rem;font-weight:700;letter-spacing:.02em;transition:background .2s,color .2s,border-color .2s}
.footer-social a:hover{background:#e3ae47;border-color:#e3ae47;color:var(--forest)}
.footer-social svg{width:17px;height:17px;fill:currentColor}
.footer-map-link{display:inline-block;margin-top:12px;font-size:.875rem;color:#f0c66f;border-bottom:1px solid rgba(240,198,111,.45);padding-bottom:2px}.footer-map-link:hover{color:#fff}
.map-embed{position:relative;margin-top:48px;background:#e2e8e6}
.map-embed__placeholder{padding:30px}
.map-embed__address{font-size:.95rem;line-height:1.8;color:var(--forest);margin:8px 0 20px}
.map-embed__actions{display:flex;flex-wrap:wrap;align-items:center;gap:22px}
.map-embed__load{border:0;cursor:pointer}
.map-embed--loaded .map-embed__placeholder{padding-bottom:20px}
.map-embed iframe{display:block;width:100%;height:380px;border:0}
@media(max-width:900px){.footer-main{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media(max-width:680px){.footer-main{grid-template-columns:1fr 1fr;gap:30px 18px}.map-embed__placeholder{padding:22px}.map-embed iframe{height:300px}}
/* Form trên nền sáng (trang Liên hệ): bản gốc chỉ có style cho panel tối ở trang chủ. */
.prose .request-form label{color:var(--forest);font-size:.875rem;font-weight:600}
.prose .request-form .request-form__label{color:inherit}.prose .request-form__consent span,.prose .request-form__label small{color:#5d686b;font-weight:400}
.prose .request-form input,.prose .request-form select,.prose .request-form textarea{background:#fff;color:var(--ink);border-color:#c9cbc1;font-weight:400}
.prose .request-form select{color:var(--ink)}
.prose .request-form input:focus,.prose .request-form select:focus,.prose .request-form textarea:focus{border-color:var(--copper);outline-color:var(--copper)}
.prose .request-form .request-form__consent{color:#4e554d}
.prose .request-form__consent a{color:#7a4f0c}
.prose .request-form .button--light{background:var(--forest);color:#fff}.prose .request-form .button--light:hover{background:var(--copper)}
.prose .form-status{margin-top:10px}
@media(max-width:680px){.footer-main>div:last-child{grid-column:1/-1}.footer-map-link{white-space:nowrap}}
.footer-brand>p a{color:#f0c66f;border-bottom:1px solid rgba(240,198,111,.4)}.footer-brand>p a:hover{color:#fff}
/* v1.3: dải năng lực, nhóm rèm */
/* Lưới ảnh thi công: trang chủ và trang Dự án khi chưa có hồ sơ dự án */
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,28px)}
.empty-state+.photo-grid{margin-top:36px}
.photo-figure{margin:0}
.photo-figure img{width:100%;aspect-ratio:3/4;object-fit:cover;background:#d7dfdd}
.photo-figure figcaption{padding-top:10px;font-size:.85rem;line-height:1.5;color:var(--muted)}
@media(max-width:600px){.photo-grid{grid-template-columns:1fr 1fr}.photo-grid .photo-figure:first-child{grid-column:1/-1}.photo-grid .photo-figure:first-child img{aspect-ratio:4/3}}
/* Trang bài viết: nội dung + sidebar bài liên quan */
.article-layout{display:grid;grid-template-columns:minmax(0,820px) 320px;justify-content:space-between;gap:60px;align-items:start}
.article-layout--single{grid-template-columns:minmax(0,820px);justify-content:center}
.article-main .article-cover{padding-top:30px}
.related{position:sticky;top:110px;padding-block:30px 90px}
.related__box{background:#fff;border:1px solid var(--line);padding:26px 22px 10px;box-shadow:0 6px 24px #172d320d}
.related__title{font:700 .9rem/1.3 var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--forest);margin:0 0 20px}
.related__list{list-style:none;margin:0;padding:0}
.related__item{display:grid;grid-template-columns:110px minmax(0,1fr);gap:14px;align-items:center;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid #e3e8e7}
.related__item:last-child{border-bottom:0;margin-bottom:6px}
.related__image{display:block;aspect-ratio:1.2;overflow:hidden;background:#d7dfdd}
.related__image img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.related__item:hover .related__image img{transform:scale(1.05)}
.related__image .journal-card__placeholder{font-size:1rem}
.related__link{font:500 .9375rem/1.45 var(--font);color:var(--ink);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.related__link:hover{color:var(--copper)}
@media(max-width:980px){.article-layout{grid-template-columns:minmax(0,1fr);gap:0}.related{position:static;padding-block:0 65px}}
/* Trang Kiến thức: nhóm bài theo chủ đề */
.topic-group+.topic-group{padding-top:0}
.topic-group__head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:34px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.topic-group__head h2{font:500 clamp(1.7rem,3vw,2.3rem)/1.2 var(--font);letter-spacing:-.035em;color:var(--forest);margin:0 0 10px}
.topic-group__head p{max-width:720px;margin:0;color:var(--muted);line-height:1.75}
.topic-group__head .link{flex:none;font-size:.95rem;font-weight:600;color:var(--ink);text-decoration:underline;text-decoration-color:var(--alu);text-underline-offset:6px}.topic-group__head .link:hover{color:var(--copper)}
@media(max-width:680px){.topic-group__head{display:block}.topic-group__head .link{display:inline-block;margin-top:14px}}
/* Bảng trong nội dung bài viết/trang */
.prose table{width:100%;border-collapse:collapse;margin:0 0 1.6em;font-size:.9375rem;line-height:1.6;display:block;overflow-x:auto}
.prose th,.prose td{padding:12px 14px;border:1px solid var(--line);text-align:left;vertical-align:top;min-width:120px}
.prose thead th{background:var(--forest);color:#fff;font-weight:600;border-color:var(--forest)}
.prose tbody tr:nth-child(even){background:#f4f6f5}
.prose tbody td:first-child{font-weight:600;color:var(--forest)}
/* Trang Quy trình: sơ đồ 5 bước */
.process-map{padding-block:46px 10px}
.process-map__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;counter-reset:none}
.process-map__step{position:relative}
.process-map__step:not(:last-child):after{content:"";position:absolute;top:34px;left:calc(50% + 44px);right:calc(-50% + 26px);height:2px;background:repeating-linear-gradient(90deg,var(--alu) 0 8px,transparent 8px 14px)}
.process-map__step a{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:0 6px 14px;color:var(--ink);border-radius:4px}
.process-map__icon{position:relative;display:grid;place-items:center;width:68px;height:68px;border-radius:50%;background:var(--forest);color:#fff;transition:background .2s,transform .2s}
.process-map__icon b{position:absolute;top:-4px;right:-6px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--sun);color:var(--ink);font-size:.8rem;font-weight:700;border:2px solid var(--paper)}
.process-map__step strong{font:600 1rem/1.35 var(--font);color:var(--forest);margin-top:6px}
.process-map__desc{font-size:.875rem;line-height:1.55;color:var(--muted)}
.process-map__step a:hover .process-map__icon{background:var(--copper);transform:translateY(-2px)}
.process-map__step a:hover strong{color:var(--copper)}
.process-map__note{margin:22px 0 0;text-align:center;font-size:.875rem;color:var(--muted)}
.content-page h2[id]{scroll-margin-top:110px}
@media(max-width:900px){
.process-map{padding-block:34px 0}
.process-map__list{grid-template-columns:1fr;gap:0}
.process-map__step:not(:last-child):after{top:60px;bottom:-4px;left:27px;right:auto;width:2px;height:auto;background:repeating-linear-gradient(180deg,var(--alu) 0 7px,transparent 7px 12px)}
.process-map__step a{display:grid;grid-template-columns:56px minmax(0,1fr);grid-template-rows:auto auto;column-gap:16px;row-gap:2px;align-items:start;text-align:left;padding:0 0 22px}
.process-map__icon{grid-row:1/3;width:56px;height:56px}
.process-map__icon svg{width:22px;height:22px}
.process-map__step strong{margin-top:6px}
.process-map__note{text-align:left}
}
/* Dự án: lưới ảnh thi công */
.project-gallery .photo-grid{margin-top:20px}
.prose .photo-figure img{margin:0}
.single-project .article-cover img{max-height:560px}
