@font-face{font-family:Heebo;src:url(assets/heebo.ttf) format('truetype');font-weight:100 900;font-display:swap}
:root{--bg:#101b21;--surface:#18272e;--fg:#f4f1e9;--muted:#b8c6cc;--accent:#a2ded0;--line:#34464e;--ink:#10292d;--paper:#edece4;--radius:14px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--bg);color:var(--fg);font:17px/1.7 Heebo,Arial,sans-serif;padding-bottom:90px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button:disabled{cursor:wait}h1,h2,h3,p,figure{margin:0}h1,h2,h3{text-wrap:balance}h1{font-size:clamp(35px,8.5vw,62px);line-height:1.15;letter-spacing:-.035em;font-weight:700}h1 span{color:var(--accent)}h2{font-size:clamp(29px,5.5vw,41px);line-height:1.23;letter-spacing:-.025em}h3{font-size:21px;line-height:1.4}p{color:var(--muted)}.eyebrow{font-size:12px;letter-spacing:.03em;color:var(--accent);margin-bottom:12px;font-weight:500}.skip{position:fixed;top:-100px;right:16px;z-index:60;background:var(--surface);padding:12px}.skip:focus-visible{top:12px}
.header{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1280px;margin:auto;padding:20px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px}.brand img{border-radius:11px}.brand b{display:block;font-size:27px;letter-spacing:.02em;line-height:1.2}.brand small{display:block;font-size:12px;line-height:1.4}.header nav{display:none}.header-phone{font-size:15px;padding-block:12px;font-weight:500}.hero{max-width:1280px;margin:auto;padding:36px 20px 28px;position:relative;background:radial-gradient(ellipse at 5% 15%,#2b4b482e,transparent 65%)}.hero-copy{min-width:0}.hero .lead{font-size:17px;line-height:1.8;margin-top:22px;max-width:520px}.scope-note{font-size:12px;margin:10px 0 24px;max-width:520px;color:var(--muted)}.hero-actions{display:grid;gap:10px}.button{display:flex;align-items:center;justify-content:center;gap:12px;min-height:54px;padding:14px 20px;border:1px solid var(--line);border-radius:8px;font-size:15px;font-weight:600;line-height:1.65;text-align:center;transition:background .18s,border-color .18s,color .18s}.button svg,.project-link svg{width:20px;height:20px;flex-shrink:0}.primary{background:var(--accent);color:var(--ink);border-color:var(--accent)}.primary:hover{background:#c3eee3;border-color:#c3eee3}.secondary{background:transparent;color:var(--fg)}.secondary:hover{background:#24383e;border-color:#607e80}.hero-actions .secondary{min-height:44px;border-color:transparent;font-size:14px;padding:8px}.hero-helper{font-size:12px;margin-top:8px;max-width:480px}.project-link{display:inline-flex;gap:10px;align-items:center;min-height:44px;margin-top:10px;font-size:13px;color:var(--muted)}.project-link:hover{color:var(--fg)}
.hero-film{margin-top:24px;border:1px solid #48615f;border-radius:var(--radius);overflow:hidden;background:var(--surface)}.film-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px}.film-heading span{font-size:11px;color:var(--accent)}.film-heading b{font-size:14px;font-weight:500}.hero-film video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#090e11}.film-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 12px;border-bottom:1px solid var(--line)}.film-controls button{min-height:44px;padding:8px 12px;font-size:12px;border:1px solid #57736e;border-radius:5px;background:transparent;color:var(--fg)}.film-controls button:hover{background:#263e42}.film-controls span{font-size:11px;color:var(--muted)}.hero-film figcaption{padding:14px 16px}.hero-film figcaption>span{font-size:11px;color:var(--accent)}.hero-film figcaption p{font-size:12px;margin-top:5px}.hero-summary{border-top:1px solid var(--line);margin-top:28px;padding-top:22px}.project-path{list-style:none;margin:0;padding:0;display:grid;gap:12px}.project-path li{display:flex;align-items:center;gap:14px}.project-path span{font-size:12px;color:var(--accent);font-variant-numeric:tabular-nums}.project-path b{font-size:14px;font-weight:500}.location{font-size:12px;margin-top:20px;max-width:660px;line-height:1.7}
.section{max-width:1280px;margin:auto;padding:48px 20px;border-bottom:1px solid var(--line)}.section-heading>p:last-child:not(.eyebrow){font-size:15px;margin-top:14px;max-width:620px}.services{background:var(--paper);color:var(--ink);border:0}.services .eyebrow{color:#42665f}.services .section-heading>p,.services .service-list p{color:#465f60}.service-list{display:grid;gap:0;margin-top:28px;counter-reset:service}.service-list article{padding:20px 0;border-top:1px solid #b7c6be}.service-list article:last-child{padding-bottom:0}.service-number{font-size:12px;color:#52746d;display:block;margin-bottom:8px}.service-list h3{font-size:21px}.service-list p{font-size:15px;margin-top:8px;max-width:520px}.services :focus-visible{outline-color:#176350}
.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:26px}.work-photo{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}.work-photo>a{display:block;overflow:hidden}.work-photo img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;background:#0d171c;transition:transform .25s}.work-photo>a:hover img{transform:scale(1.025)}.work-photo figcaption{padding:14px 12px}.work-photo b{font-size:15px;font-weight:500;line-height:1.5;display:block}.work-photo p{font-size:12px;line-height:1.7;margin-top:5px}.project-note{font-size:13px;border-top:1px solid var(--line);padding-top:20px;margin-top:22px;max-width:780px}.project-note b{color:var(--fg);font-weight:500}
.vrf-experience{background:linear-gradient(160deg,#1c30352e,transparent 65%)}.explorer-layout{display:grid;gap:20px;margin-top:28px}.explorer-visual{min-width:0}.villa-scene{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0}.villa-scene>img{display:block;width:100%;height:auto}.villa-hotspot{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0;border:0;background:transparent;color:var(--ink);font-family:inherit}.villa-hotspot>span{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:#f4f1e9;border:2px solid #182a31;font:700 11px/1 Heebo,Arial,sans-serif;box-shadow:0 2px 12px #0009}.villa-hotspot[aria-pressed=true]>span{background:var(--accent);outline:3px solid #a2ded066}.villa-hotspot>b{display:none}.villa-hotspot:focus-visible{outline:3px solid white;outline-offset:1px;border-radius:50%}.spot-ground{left:43%;top:58%}.spot-upper{left:61%;top:28%}.spot-outdoor{left:81%;top:16%}.explorer-switches{display:flex;gap:5px;flex-wrap:wrap;padding:8px;background:var(--surface);border:1px solid var(--line);border-top:0;border-radius:0 0 var(--radius) var(--radius)}.explorer-switches button{flex:1;min-height:48px;padding:8px 4px;font-size:11px;line-height:1.5;color:var(--fg);background:transparent;border:1px solid var(--line);border-radius:5px;white-space:nowrap}.explorer-switches button[aria-pressed=true]{background:var(--accent);color:var(--ink);border-color:var(--accent)}.illustration-label{font-size:11px;margin-top:10px;line-height:1.75;color:var(--muted)}.vrf-detail{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;align-self:stretch;min-width:0}.vrf-detail h3{font-size:26px;line-height:1.3;margin-bottom:18px}.vrf-detail>p:not(.eyebrow){font-size:15px;line-height:1.8}.vrf-detail dl{margin:20px 0}.vrf-detail dl>div{border-top:1px solid var(--line);padding:14px 0}.vrf-detail dt{font-size:11px;color:var(--accent);margin-bottom:6px}.vrf-detail dd{margin:0;font-size:14px;line-height:1.7}.vrf-detail .button{width:100%;margin-top:10px;font-size:13px;padding-inline:12px}
.review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:26px}.review{padding:16px 14px;background:var(--surface);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column}.review-service{font-size:11px;color:var(--accent);margin-bottom:16px}.review blockquote{margin:0 0 18px}.review blockquote p{font-size:17px;line-height:1.7;color:var(--fg)}.review figcaption{margin-top:auto;border-top:1px solid var(--line);padding-top:14px;display:grid;gap:4px}.review figcaption b{font-size:14px;font-weight:500}.review figcaption span,.review figcaption small{font-size:11px;color:var(--muted)}.questions details{border-top:1px solid var(--line)}.questions details:first-of-type{margin-top:26px}.questions summary{cursor:pointer;min-height:56px;padding:18px 0;font-size:16px}.questions details p{padding:0 0 22px;font-size:15px;line-height:1.85;max-width:750px}
.contact{background:var(--paper);color:var(--ink);border:0;border-radius:var(--radius);margin:24px 16px;padding:34px 22px}.contact .eyebrow{color:#42665f}.contact>p:not(.eyebrow){color:#486063;max-width:600px;font-size:16px;margin-top:18px}.contact-actions{display:grid;gap:12px;margin-top:24px}.contact .primary{background:#164e46;border-color:#164e46;color:#fff}.contact .primary:hover{background:#246b5f}.contact .secondary{color:var(--ink);border-color:#a2b7ae;font-size:14px;flex-wrap:wrap}.contact .secondary:hover{background:#d8e2d9}.contact .area{font-size:12px!important}.contact :focus-visible{outline-color:#176350}footer{max-width:1280px;margin:auto;padding:24px 20px;display:flex;justify-content:space-between;align-items:center;gap:20px;color:var(--muted);font-size:12px}footer a{padding-block:12px}
.mobile-actions{position:fixed;inset:auto 0 0;display:grid;grid-template-columns:1fr 1.7fr;gap:8px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#101b21f5;border-top:1px solid var(--line);backdrop-filter:blur(12px);z-index:20}.mobile-actions a{display:flex;align-items:center;justify-content:center;min-height:48px;font-size:13px;font-weight:600;border:1px solid #4a626c;border-radius:7px;text-align:center;padding:8px}.mobile-actions a:last-child{background:var(--accent);border-color:var(--accent);color:var(--ink)}
dialog{width:min(540px,calc(100% - 28px));max-height:calc(100dvh - 32px);padding:24px;overflow:auto;background:var(--bg);color:var(--fg);font:16px/1.7 Heebo,Arial,sans-serif;border:1px solid var(--line);border-radius:var(--radius)}dialog::backdrop{background:#020b10cf;backdrop-filter:blur(4px)}.brief-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.brief-top>span{font-size:12px;color:var(--muted)}.close-inspect{width:44px;height:44px;font-size:26px;background:var(--surface);border:1px solid var(--line);border-radius:6px;color:var(--fg)}#vrf-inspect{width:min(920px,calc(100% - 24px))}#vrf-inspect h2{font-size:25px}.inspect-image{height:clamp(240px,50vw,480px);margin-top:20px;background-image:url(assets/vrf-villa-realistic.webp);background-repeat:no-repeat;background-size:210% auto;border-radius:8px}#inspect-text{font-size:15px;margin-top:18px}
/* This scoped fix also protects older capture assets until CRM canonical sync. */
#ami-contact-dialog form .ami-contact-trap{left:auto;right:0;clip-path:inset(50%);white-space:nowrap}
@media(min-width:700px){body{padding-bottom:0}.header{padding:22px 40px}.header nav{display:flex;align-items:center;gap:20px}.header nav a{padding-block:12px;font-size:12px;color:var(--muted)}.header nav a:hover{color:var(--fg)}.header-phone{font-size:14px}.hero{padding:56px 40px 34px;display:grid;grid-template-columns:1fr 1.1fr;align-items:center;gap:36px}.hero-actions{display:flex;flex-wrap:wrap}.hero-actions .primary{font-size:14px;padding-inline:16px}.hero .lead{font-size:18px}.hero-film{margin:0}.film-heading{padding:16px 20px;flex-wrap:wrap}.film-heading b{font-size:17px}.hero-summary{grid-column:1/-1;margin-top:0;padding-top:24px}.project-path{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.project-path li{align-items:flex-start}.project-path b{font-size:13px}.location{max-width:none}.section{padding:60px 40px}.service-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.service-list article{padding-top:24px}.services .section-heading h2 br{display:none}.work-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.work-photo img{aspect-ratio:4/3}.work-photo figcaption{padding:16px 18px}.work-photo b{font-size:18px}.work-photo p{font-size:13px}.explorer-layout{grid-template-columns:1.55fr 1fr;gap:24px}.villa-hotspot>b{display:block;position:absolute;top:39px;font-size:11px;line-height:1.5;white-space:nowrap;padding:4px 9px;background:#12242ae6;color:#fff;border:1px solid #526c74;border-radius:4px}.villa-hotspot>span{width:32px;height:32px}.vrf-detail{padding:26px}.review-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.review{padding:22px 18px}.review blockquote p{font-size:19px}.contact{margin:32px auto;padding:46px 40px;max-width:1200px;display:grid;grid-template-columns:1fr 1fr;gap:0 48px}.contact .eyebrow{grid-column:1/-1}.contact h2{grid-column:1}.contact>p:not(.eyebrow){grid-column:1;margin-top:18px}.contact .contact-actions{grid-column:2;grid-row:2/4;align-self:center}.contact .area{grid-column:1/-1!important}footer{padding:24px 40px}.mobile-actions{display:none}}
@media(min-width:1050px){.header nav a{font-size:14px}.header nav{gap:28px}.hero{grid-template-columns:1fr 1.16fr;gap:46px;padding-block:64px 38px}.hero-summary{padding-top:30px}.hero .lead{font-size:19px}.section{padding-block:72px}.section-heading>p:last-child:not(.eyebrow){font-size:16px}.explorer-layout{grid-template-columns:1.7fr 1fr}.vrf-detail h3{font-size:29px}.contact{padding-block:52px}.hero-actions .secondary{padding-inline:0}.project-path b{font-size:15px}}
@media(min-width:700px) and (max-width:920px){.header nav{gap:13px}.header nav a{font-size:11px}.header-phone{font-size:12px}.hero{gap:24px}.hero h1{font-size:40px}.review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.explorer-layout{grid-template-columns:1fr}.vrf-detail{padding:26px}.contact{margin-inline:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
