/* KimTiao presentation, accessibility and responsive refinement, October 2026. */
:root { --gold-on-light:#90682e; --surface-warm:#f1ede5; }
body { font-weight:400; color:#302c27; overflow-wrap:break-word; }
p { line-height:1.78; }
a, button, input, select, textarea { -webkit-tap-highlight-color:transparent; }
:where(a,button,input,textarea,select):focus-visible { outline:2px solid #d7ad66 !important; outline-offset:4px; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.eyebrow { color:var(--gold-on-light); }
.dark .eyebrow,.page-hero .eyebrow,.hero .eyebrow,.cta-panel .eyebrow,.site-footer .eyebrow,.map-panel .eyebrow,.brief-strip .eyebrow { color:var(--gold-light); }
.muted,.section-head p,.timeline-row p,.feature p,.content-main p { color:#676059; }
.dark .section-head p,.dark p { color:rgba(255,255,255,.70); }
.btn { position:relative; overflow:hidden; line-height:1.3; text-align:center; }
.btn:disabled { opacity:.6; cursor:wait; transform:none; }
.header-inner { gap:clamp(10px,1.6vw,26px); }
.desktop-nav { gap:clamp(12px,1.65vw,28px); }
.desktop-nav a { font-size:.67rem; letter-spacing:.1em; white-space:nowrap; }
.brand-name { letter-spacing:.035em; }
.site-header.scrolled,.site-header.internal { background:rgba(10,10,10,.975); }
.header-actions .btn { letter-spacing:.095em; }
.mobile-menu { padding-bottom:max(36px,env(safe-area-inset-bottom)); overflow-y:auto; overscroll-behavior:contain; }
.mobile-menu nav a { display:block; padding:7px 0; }
.mobile-menu nav a[aria-current="page"] { color:var(--gold-light); }
.mobile-menu .mobile-contact { padding:32px 0 0; }
.hero-media img { object-position:center center; }
.hero-content { padding-bottom:clamp(84px,8vw,120px); }
.hero h1 { font-size:clamp(3.5rem,7.2vw,8rem); line-height:1.01; }
.hero p { line-height:1.78; }
.hero-note { font-size:.7rem; }
.scroll-cue { display:flex; align-items:center; gap:10px; }
.scroll-cue span { font-size:1.3rem; }
.page-hero { isolation:isolate; }
.page-hero::before { filter:saturate(.93); }
.section { padding-block:clamp(78px,9vw,134px); }
.section-head h2 { text-wrap:balance; }
.split-copy h2, .cta-panel h2 { text-wrap:balance; }
.service-card,.editorial-grid figure,.gallery figure { border:1px solid rgba(214,190,141,.1); }
.service-card h3 { text-wrap:balance; }
.service-card::before { content:""; position:absolute; z-index:2; inset:15px; border:1px solid rgba(255,255,255,.13); pointer-events:none; }
.service-card-content { bottom:34px; }
.service-card:focus-visible img { transform:scale(1.04); }
.editorial-grid figure img { transition:transform .65s ease; }
.editorial-grid figure:hover img { transform:scale(1.035); }
.brief-strip { background:linear-gradient(130deg,#191816,#11100e); color:#fff; padding:clamp(55px,7vw,90px) 0; border-block:1px solid #8e7149; }
.brief-layout { display:grid; grid-template-columns:1fr .77fr; gap:clamp(35px,7vw,120px); align-items:center; }
.brief-strip h2 { font-size:clamp(2.8rem,5vw,5.5rem); max-width:680px; margin:0; }
.brief-strip p { color:rgba(255,255,255,.77); max-width:545px; font-size:1rem; }
.brief-strip .text-link { color:#edd7ae; }
.trust-item { color:rgba(255,255,255,.82); }
.gallery-summary { color:#6d665e; font-size:.81rem; margin:0 0 18px; }
.filter-btn { font-size:.7rem; border-radius:0; min-height:44px; }
.filter-btn[aria-pressed="true"] { background:var(--ink); color:#fff; }
.gallery figure { isolation:isolate; }
.gallery figure[hidden] { display:none!important; }
.gallery figure figcaption { z-index:2; pointer-events:none; padding-right:54px; }
.gallery-open { position:absolute; inset:0; width:100%; height:100%; display:block; z-index:3; border:0; background:transparent; color:#fff; }
.gallery-open span { position:absolute; top:15px; right:15px; display:grid; place-items:center; width:35px; height:35px; border:1px solid rgba(255,255,255,.65); border-radius:50%; background:rgba(0,0,0,.26); font-size:1.1rem; opacity:.85; transition:background .2s ease,transform .2s ease; }
.gallery-open:hover span,.gallery-open:focus-visible span { background:#161411; transform:scale(1.06); }
.gallery-dialog { position:fixed; inset:0; margin:auto; border:1px solid #b69a65; background:#0c0c0c; padding:0; color:#fff; width:min(94vw,1120px); max-width:1120px; max-height:94svh; overflow:auto; box-shadow:0 30px 110px rgba(0,0,0,.55); }
.gallery-dialog::backdrop { background:rgba(4,4,4,.9); backdrop-filter:blur(7px); }
.gallery-dialog-inner { padding:clamp(12px,2vw,25px); }
.gallery-dialog-top { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:0 0 14px; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:#d8c39a; }
.gallery-dialog-close { display:inline-flex; gap:9px; align-items:center; border:0; background:transparent; color:#fff; font-size:.8rem; text-transform:uppercase; letter-spacing:.1em; padding:6px; }
.gallery-dialog-close span { font-size:1.8rem; line-height:1; }
.gallery-dialog-frame { display:grid; grid-template-columns:46px minmax(0,1fr) 46px; align-items:center; gap:12px; min-height:0; }
.gallery-dialog-frame img { max-width:100%; width:100%; max-height:calc(94svh - 150px); min-height:0; object-fit:contain; }
.gallery-prev,.gallery-next { background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.22); color:#fff; font-family:Georgia,serif; font-size:2rem; line-height:1; min-width:42px; min-height:52px; }
.gallery-dialog-caption { margin:12px 0 0; text-align:center; color:rgba(255,255,255,.8); font-size:.88rem; }
.faq-answer[hidden] { display:none!important; }
.faq-question:hover { color:var(--gold-on-light); }
.faq-answer { display:block; transition:none; }
.faq-answer > div { overflow:visible; }
.contact-form .field input,.contact-form .field textarea,.contact-form .field select { font-size:1rem; padding:13px 6px; min-height:44px; }
.contact-form .field textarea { min-height:155px; }
.field label { font-size:.72rem; }
.form-note { line-height:1.7; font-size:.8rem; }
.form-status { margin-bottom:20px; border-left:3px solid currentColor; padding:18px 20px; }
.form-status:focus { outline:none; }
.footer-col a { padding-block:2px; }
.footer-col a,.footer-col address { color:rgba(255,255,255,.76); }
.footer-brand img { height:auto; width:min(100%,230px); }
.footer-brand p { color:rgba(255,255,255,.68); }
.footer-bottom { color:rgba(255,255,255,.65); }
.floating-wa { border:1px solid #e7cb93; background:#c4a36a; color:#0d0b07; }
.floating-wa::before { content:none; }
.floating-wa:hover { background:#e0c996; }
.floating-wa svg { display:block; }
.mobile-cta { padding-bottom:max(10px,env(safe-area-inset-bottom)); box-shadow:0 -6px 35px rgba(0,0,0,.14); }
.reveal { opacity:1; transform:none; }
.motion-ready .reveal { opacity:0; transform:translateY(17px); transition:opacity .7s ease, transform .7s ease; }
.motion-ready .reveal.visible { opacity:1; transform:none; }
@media(min-width:1500px) { .hero-media img { object-position:center 48%; } }
@media(max-width:1100px) {
 .mobile-menu nav { gap:0; }
 .mobile-menu nav a { font-size:clamp(1.7rem,5.8vw,3rem); line-height:1.26; padding:7px 0; }
}
@media(max-width:760px) {
 .site-header { height:76px; }
 .site-header.scrolled,.site-header.internal { height:70px; }
 .header-inner { gap:12px; }
 .header-actions { gap:4px; }
 .header-actions .btn { min-height:44px; padding-inline:12px; font-size:.65rem; }
 .hero { min-height:max(650px,100svh); }
 .hero-media img { object-position:53% 48%; }
 .hero h1 { font-size:clamp(2.8rem,12vw,4.8rem); }
 .hero-content { padding:118px 0 62px; }
 .hero p { font-size:1rem; line-height:1.65; }
 .hero-note { gap:6px; margin-top:38px; padding-top:18px; font-size:.62rem; }
 .hero .eyebrow,.page-hero .eyebrow { font-size:.64rem; letter-spacing:.13em; }
 .page-hero { min-height:480px; padding:130px 0 62px; }
 .page-hero h1 { font-size:clamp(2.8rem,11vw,4.8rem); overflow-wrap:normal; }
 .page-hero p { font-size:.98rem; }
 .section { padding-block:70px; }
 .trust-item { padding:23px 11px; font-size:.63rem; }
 .split-media img { min-height:380px; max-height:600px; }
 .service-card,.service-card:last-child { min-height:480px; }
 .service-card-content { inset:auto 20px 24px; }
 .service-card::before { inset:10px; }
 .brief-layout { grid-template-columns:1fr; gap:20px; }
 .brief-strip { padding-block:60px; }
 .brief-strip h2 { font-size:clamp(2.7rem,11vw,4.5rem); }
 .brief-strip .eyebrow { margin-bottom:12px; }
 .filter-bar { gap:7px; }
 .filter-btn { flex:1 1 calc(50% - 7px); padding-inline:9px; font-size:.64rem; }
 .gallery-dialog { width:96vw; max-height:92svh; }
 .gallery-dialog-frame { grid-template-columns:32px minmax(0,1fr) 32px; gap:4px; }
 .gallery-prev,.gallery-next { min-height:42px; min-width:30px; padding:0; font-size:1.7rem; }
 .gallery-dialog-frame img { max-height:calc(92svh - 140px); }
 .footer-col { min-width:0; }
 .footer-col h3 { line-height:1.5; }
 .floating-wa { bottom:calc(79px + env(safe-area-inset-bottom)); }
}
@media(max-width:440px) {
 .header-actions > .btn { display:none; }
 .brand-name { font-size:1.27rem; }
 .mobile-menu { padding:98px 22px 30px; }
 .mobile-menu nav a { font-size:clamp(1.6rem,7vw,2.15rem); line-height:1.25; padding:6px 0; }
 .mobile-contact { font-size:.77rem; }
 .footer-top { gap:29px 18px; }
 .footer-col a,.footer-col address { font-size:.75rem; }
 .section-head h2 { overflow-wrap:normal; }
}
@media(max-width:350px) {
 .hero h1,.page-hero h1 { font-size:2.65rem; }
 .hero-note { font-size:.58rem; }
 .mobile-cta .btn { letter-spacing:.05em; font-size:.66rem; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 .motion-ready .reveal,.motion-ready .reveal.visible { opacity:1; transform:none; transition:none; }
 .editorial-grid figure img,.gallery-open span { transition:none; }
}

.honeypot { position:absolute!important; width:1px!important; height:1px!important; left:0!important; overflow:hidden!important; clip-path:inset(50%); }

/* Footer logo QA correction — enlarged, high-contrast vector, shared on every page. */
.footer-brand .footer-home { display:inline-block; width:fit-content; max-width:100%; line-height:0; border-radius:2px; }
.footer-brand .footer-home:focus-visible { outline:2px solid #f1d29a; outline-offset:8px; }
.footer-brand .footer-home img { display:block; width:clamp(255px,22vw,310px); max-width:100%; height:auto; object-fit:contain; }
@media(max-width:760px) { .footer-brand .footer-home img { width:min(310px,84vw); } }
