:root {
  --ink:#101d2f; --ink-soft:#26384c; --paper:#f7f4ed; --white:#fff;
  --accent:#b79a62; --accent-dark:#786038; --line:#dbe0e2; --muted:#687684;
  --shadow:0 25px 70px rgba(16,29,47,.12);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; overflow-x:hidden; background:var(--paper); color:var(--ink); font-family:"Avenir Next",Avenir,"Segoe UI",sans-serif; font-size:1rem; line-height:1.6; }
body.menu-open { overflow:hidden; }
button,input,textarea { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
button { color:inherit; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
.shell { width:min(1180px,calc(100% - 48px)); margin-inline:auto; }
.section { padding-block:clamp(5rem,10vw,9rem); }
.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; }
.skip-link { position:fixed; z-index:1000; top:1rem; left:1rem; padding:.75rem 1rem; background:var(--white); color:var(--ink); transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.eyebrow { margin:0 0 1.35rem; color:var(--accent-dark); font-size:.75rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; }
.eyebrow-light { color:#dac698; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:Georgia,"Times New Roman",serif; font-weight:400; letter-spacing:-.045em; line-height:.98; }
h1 em,h2 em { color:#dac698; font-weight:400; }
h2 { font-size:clamp(2.7rem,5.2vw,5rem); }
:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.button { min-height:52px; display:inline-flex; align-items:center; justify-content:center; gap:.8rem; padding:.85rem 1.25rem; border:1px solid transparent; border-radius:999px; cursor:pointer; font-size:.91rem; font-weight:700; transition:transform .25s ease,background .25s ease,color .25s ease; }
.button:hover { transform:translateY(-2px); }
.button-light { background:var(--white); color:var(--ink); }
.button-light:hover { background:#e8dcc1; }
.button-dark { background:var(--ink); color:var(--white); }
.button-dark:hover { background:var(--accent-dark); }
.button-accent { background:var(--accent); color:var(--white); }
.button-accent:hover { background:#c7af7e; }
.text-link { display:inline-flex; align-items:center; gap:.5rem; padding-block:.35rem; border-bottom:1px solid currentColor; font-size:.9rem; font-weight:700; }
.text-link-light { color:var(--white); }
.reveal { opacity:0; transform:translateY(30px); transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity:1; transform:none; }

/* Navigation */
.site-header { position:relative; z-index:50; width:100%; height:86px; transition:background .3s ease,box-shadow .3s ease,color .3s ease; }
.header-overlay { position:absolute; color:var(--white); border-bottom:1px solid rgba(255,255,255,.18); }
.header-solid { position:sticky; top:0; background:var(--paper); color:var(--ink); border-bottom:1px solid var(--line); }
.site-header.is-scrolled { position:fixed; top:0; background:rgba(247,244,237,.94); color:var(--ink); border-bottom:1px solid var(--line); box-shadow:0 10px 35px rgba(16,29,47,.07); backdrop-filter:blur(16px); }
.header-inner { height:100%; display:flex; align-items:center; justify-content:space-between; }
.brand { display:inline-flex; align-items:center; gap:.8rem; }
.brand-mark { width:44px; height:44px; display:inline-grid; place-items:center; border:1px solid currentColor; font-family:Georgia,serif; font-size:.82rem; letter-spacing:.04em; }
.brand-name { display:flex; flex-direction:column; font-family:Georgia,serif; font-size:1.18rem; line-height:1; }
.brand-name small { margin-top:.2rem; font:inherit; font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; }
.site-header nav { display:flex; align-items:center; gap:2.3rem; font-size:.86rem; font-weight:650; }
.site-header nav>a:not(.nav-cta) { position:relative; padding-block:.5rem; }
.site-header nav>a:not(.nav-cta)::after { content:""; position:absolute; left:0; right:100%; bottom:0; height:1px; background:currentColor; transition:right .25s ease; }
.site-header nav>a:hover::after,.site-header nav>a[aria-current="page"]::after { right:0; }
.nav-cta { padding:.65rem 1.15rem; border:1px solid currentColor; border-radius:999px; }
.nav-cta:hover { background:var(--accent); border-color:var(--accent); color:var(--white); }
.menu-button { display:none; width:42px; height:42px; border:0; background:transparent; cursor:pointer; }
.menu-button span { display:block; width:24px; height:2px; margin:5px auto; background:currentColor; transition:transform .25s ease,opacity .25s ease; }
.menu-button[aria-expanded="true"] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.menu-button[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.menu-button[aria-expanded="true"] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* Home */
.hero { position:relative; min-height:760px; height:100svh; max-height:1040px; display:flex; align-items:center; color:var(--white); overflow:hidden; background:#1b2b3d; }
.hero-backdrop,.image-home { background-image:linear-gradient(90deg,rgba(8,21,35,.82),rgba(8,21,35,.18) 58%,rgba(8,21,35,.03)),url("../images/hero-house-residence.jpg"); background-size:cover; background-position:center; }
.hero-backdrop { position:absolute; inset:0; animation:heroIn 1.4s ease-out both; }
.hero-backdrop::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(6,17,30,.55),transparent 46%); }
@keyframes heroIn { from { opacity:.4; transform:scale(1.05); } to { opacity:1; transform:scale(1); } }
.hero-content { position:relative; z-index:1; padding-top:4rem; }
.hero h1 { max-width:900px; margin-bottom:1.8rem; font-size:clamp(4rem,8.6vw,8.2rem); }
.hero-copy { max-width:590px; color:rgba(255,255,255,.86); font-size:clamp(1rem,1.8vw,1.2rem); line-height:1.75; }
.hero-actions { display:flex; align-items:center; gap:2rem; margin-top:2.3rem; }
.hero-details { position:absolute; z-index:2; left:50%; bottom:0; display:grid; grid-template-columns:repeat(3,1fr); padding:1.45rem 0; transform:translateX(-50%); border-top:1px solid rgba(255,255,255,.25); }
.hero-details div { display:flex; align-items:center; gap:1rem; padding-right:2rem; }
.hero-details strong { font-family:Georgia,serif; font-size:1.65rem; font-weight:400; }
.hero-details span { max-width:110px; color:rgba(255,255,255,.7); font-size:.72rem; line-height:1.35; text-transform:uppercase; letter-spacing:.08em; }
.mission { display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(3rem,9vw,9rem); align-items:end; }
.mission h2 { max-width:710px; margin:0; }
.mission-copy p { color:var(--ink-soft); font-size:1.08rem; line-height:1.8; }
.services { display:grid; grid-template-columns:repeat(3,1fr); }
.service-card { position:relative; min-height:390px; display:flex; flex-direction:column; align-items:flex-start; padding:2rem; border:1px solid var(--line); border-right:0; background:var(--white); }
.service-card:last-child { border-right:1px solid var(--line); }
.service-card-dark { background:var(--ink); color:var(--white); border-color:var(--ink); }
.service-card-accent { background:#ece3d1; }
.service-number { align-self:flex-end; margin-bottom:auto; font-size:.72rem; letter-spacing:.15em; opacity:.6; }
.service-icon { font-family:Georgia,serif; font-size:2rem; color:var(--accent); }
.service-card h3 { margin:1.5rem 0 .8rem; font-family:Georgia,serif; font-size:2rem; font-weight:400; }
.service-card p { max-width:310px; margin:0; color:inherit; opacity:.72; font-size:.95rem; }
.renovation { display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(3rem,8vw,8rem); align-items:center; }
.image-frame,.feature-image,.about-image,.contact-photo { position:relative; width:100%; border:0; cursor:zoom-in; background-color:#d9dde0; background-position:center; background-size:cover; }
.image-frame { min-height:680px; }
.image-kitchen { background-image:url("../images/hero-house-guidance.jpg"); }
.image-interior { background-image:url("../images/hero-house-living.jpg"); }
.image-action { position:absolute; right:1rem; bottom:1rem; display:inline-flex; gap:.65rem; align-items:center; padding:.7rem .9rem; background:rgba(255,255,255,.92); color:var(--ink); font-size:.75rem; font-weight:700; box-shadow:0 10px 30px rgba(0,0,0,.15); opacity:0; transform:translateY(8px); transition:.25s ease; }
.zoomable:hover .image-action,.zoomable:focus-visible .image-action { opacity:1; transform:none; }
.renovation-copy h2 { font-size:clamp(3rem,5vw,4.8rem); }
.renovation-copy>p:not(.eyebrow) { color:var(--muted); font-size:1.05rem; line-height:1.8; }
.check-list { margin:2.4rem 0 0; padding:0; list-style:none; border-top:1px solid var(--line); }
.check-list li { display:flex; gap:1.1rem; padding:1.15rem 0; border-bottom:1px solid var(--line); font-weight:600; }
.check-list span { color:var(--accent-dark); font-size:.75rem; letter-spacing:.1em; }
.gallery-section { background:#eee9de; }
.gallery-heading { display:grid; grid-template-columns:.45fr 1fr .45fr; gap:2rem; align-items:end; margin-bottom:3rem; }
.gallery-heading h2 { margin:0; font-size:clamp(3rem,5vw,4.8rem); }
.gallery-heading>p:last-child { margin:0; color:var(--muted); font-size:.9rem; }
.gallery-grid { display:grid; grid-template-columns:1.35fr .65fr; grid-template-rows:repeat(2,310px); gap:1rem; }
.gallery-card { position:relative; overflow:hidden; padding:0; border:0; cursor:zoom-in; background:var(--ink); text-align:left; }
.gallery-wide { grid-row:1/3; }
.gallery-card img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease,opacity .4s ease; }
.gallery-card::after { content:""; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,rgba(5,15,27,.72)); pointer-events:none; }
.gallery-card:hover img { transform:scale(1.035); opacity:.9; }
.gallery-card span { position:absolute; z-index:1; left:1.4rem; right:1.4rem; bottom:1.2rem; display:flex; justify-content:space-between; color:var(--white); font-weight:700; }
.feature-panel { display:grid; grid-template-columns:1.35fr .65fr; min-height:600px; background:var(--ink); }
.feature-image,.about-image { min-height:540px; }
.feature-quote { display:flex; flex-direction:column; justify-content:center; padding:clamp(2.5rem,5vw,5rem); color:var(--white); }
.quote-mark { height:40px; color:var(--accent); font-family:Georgia,serif; font-size:4rem; line-height:1; }
.feature-quote blockquote { margin:2rem 0 1.5rem; font-family:Georgia,serif; font-size:clamp(2rem,3.2vw,3rem); line-height:1.18; }
.feature-quote p { margin:0; color:rgba(255,255,255,.58); font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; }
.closing-cta { text-align:center; }
.closing-cta h2 { margin-bottom:1.3rem; }
.closing-cta>p:not(.eyebrow) { max-width:630px; margin:0 auto 2rem; color:var(--muted); font-size:1.06rem; }

/* About */
.page-hero { padding-block:clamp(6rem,12vw,10rem); }
.page-hero h1 { max-width:1050px; margin-bottom:2rem; font-size:clamp(3.8rem,7.8vw,7.5rem); }
.page-hero>p:last-child { max-width:630px; margin:0 0 0 auto; color:var(--muted); font-size:1.15rem; }
.about-intro { display:grid; grid-template-columns:1fr 1fr; min-height:700px; }
.about-story { padding:clamp(3rem,7vw,7rem); background:var(--white); }
.about-story h2 { font-size:clamp(2.8rem,4.4vw,4rem); }
.about-story>p:not(.eyebrow) { color:var(--muted); }
.values-section { margin-top:clamp(5rem,10vw,9rem); background:var(--ink); color:var(--white); }
.section-heading { display:grid; grid-template-columns:.5fr 1fr; gap:3rem; align-items:start; }
.section-heading h2 { margin-top:0; font-size:clamp(3rem,5.5vw,5.2rem); }
.values-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:5rem; border-top:1px solid rgba(255,255,255,.2); }
.values-grid article { padding:2.2rem 2.2rem 0 0; border-right:1px solid rgba(255,255,255,.2); }
.values-grid article:not(:first-child) { padding-left:2.2rem; }
.values-grid article:last-child { border-right:0; }
.values-grid article>span { color:var(--accent); font-family:Georgia,serif; font-size:1.9rem; }
.values-grid h3 { margin:3rem 0 .8rem; font-family:Georgia,serif; font-size:1.65rem; font-weight:400; }
.values-grid p { color:rgba(255,255,255,.65); }
.timeline { display:grid; grid-template-columns:.8fr 1.2fr; gap:7rem; }
.timeline h2 { font-size:clamp(3rem,4.5vw,4.2rem); }
.timeline ol { margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.timeline li { display:grid; grid-template-columns:90px 1fr; gap:1.5rem; padding:1.6rem 0; border-bottom:1px solid var(--line); }
.timeline li>span { color:var(--accent-dark); font-size:.75rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.timeline h3 { margin-bottom:.25rem; font-size:1rem; }
.timeline p { margin:0; color:var(--muted); font-size:.92rem; }

/* Contact */
.contact-hero { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(3rem,8vw,8rem); padding-block:clamp(5rem,10vw,9rem); align-items:center; }
.contact-hero h1 { margin-bottom:2rem; font-size:clamp(4.2rem,7.5vw,7rem); }
.contact-hero>div:first-child>p:last-child { max-width:550px; color:var(--muted); font-size:1.08rem; }
.contact-card { padding:clamp(2rem,4vw,3.5rem); background:var(--white); border:1px solid var(--line); box-shadow:var(--shadow); }
.contact-card-label { padding-bottom:1.25rem; border-bottom:1px solid var(--line); color:var(--accent-dark); font-size:.75rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.contact-card>a,.contact-card>div { display:grid; grid-template-columns:28px 1fr 20px; gap:1.1rem; align-items:start; padding:1.35rem 0; border-bottom:1px solid var(--line); }
.contact-card>div { grid-template-columns:28px 1fr; }
.contact-symbol { margin-top:.15rem; color:var(--accent-dark); font-weight:700; }
.contact-card small { display:block; margin-bottom:.2rem; color:var(--muted); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; }
.contact-card a b { color:var(--accent-dark); transition:transform .2s ease; }
.contact-card a:hover b { transform:translate(3px,-3px); }
.inquiry-section { background:var(--ink); color:var(--white); }
.inquiry-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(3rem,9vw,9rem); }
.inquiry-intro h2 { font-size:clamp(3rem,5vw,4.8rem); }
.inquiry-intro>p:last-child { max-width:420px; color:rgba(255,255,255,.62); }
.inquiry-form { display:flex; flex-direction:column; gap:1.35rem; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.inquiry-form label,.inquiry-form legend { font-size:.78rem; font-weight:700; letter-spacing:.06em; }
.inquiry-form input[type="text"],.inquiry-form input[type="email"],.inquiry-form textarea { width:100%; margin-top:.45rem; padding:.95rem 0; border:0; border-bottom:1px solid rgba(255,255,255,.35); border-radius:0; outline:0; background:transparent; color:var(--white); font-size:1rem; resize:vertical; transition:border-color .2s ease; }
.inquiry-form input:focus,.inquiry-form textarea:focus { border-color:var(--accent); }
.inquiry-form .invalid { border-color:#dac698!important; }
.inquiry-form fieldset { margin:0; padding:.5rem 0 0; border:0; }
.choice-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:.65rem; margin-top:.7rem; }
.choice-grid label { cursor:pointer; }
.choice-grid input { position:absolute; opacity:0; }
.choice-grid span { display:block; padding:.8rem; border:1px solid rgba(255,255,255,.3); text-align:center; transition:.2s ease; }
.choice-grid input:checked+span { background:var(--accent); border-color:var(--accent); }
.choice-grid input:focus-visible+span { outline:3px solid var(--accent); outline-offset:3px; }
.field-error { display:none; margin-top:.3rem; color:#dac698; font-size:.75rem; font-weight:500; letter-spacing:0; }
.field-error.show { display:block; }
.inquiry-form .button { align-self:flex-start; margin-top:.5rem; }
.form-status { min-height:1.5rem; margin:0; color:#dac698; font-size:.9rem; }
.contact-banner { display:grid; grid-template-columns:1.4fr .8fr .8fr; max-width:1440px; min-height:500px; margin-inline:auto; background:var(--ink); color:var(--white); }
.contact-photo { min-height:420px; }
.contact-note { display:flex; flex-direction:column; justify-content:flex-end; padding:clamp(2rem,4vw,3.5rem); border-left:1px solid rgba(255,255,255,.18); }
.contact-note>span { margin-bottom:auto; color:var(--accent); font-size:.75rem; font-weight:700; }
.contact-note h2 { margin-bottom:1rem; font-family:Georgia,serif; font-size:2rem; font-weight:400; line-height:1.1; }
.contact-note p { margin:0; color:rgba(255,255,255,.66); font-size:.9rem; }
.sample-notice { padding-block:1rem 4rem; color:var(--muted); font-size:.78rem; }

/* Footer and overlays */
.site-footer { padding-top:5rem; background:#0a1626; color:var(--white); }
.footer-grid { display:grid; grid-template-columns:1.5fr .6fr .9fr; gap:4rem; padding-bottom:5rem; }
.footer-mark { color:var(--accent); }
.footer-grid h2 { margin:2rem 0 1rem; font-size:clamp(2.5rem,4vw,4rem); }
.footer-grid>div:first-child p { max-width:470px; color:rgba(255,255,255,.6); }
.footer-links { display:flex; flex-direction:column; align-items:flex-start; gap:.8rem; padding-top:.5rem; }
.footer-links a { color:rgba(255,255,255,.72); font-size:.9rem; }
.footer-links a:hover { color:var(--accent); }
.footer-label { margin-bottom:1rem; color:var(--white); font-size:.7rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.footer-bottom { display:flex; justify-content:space-between; padding-block:1.4rem; border-top:1px solid rgba(255,255,255,.14); color:rgba(255,255,255,.46); font-size:.75rem; }
.lightbox { width:100%; height:100%; max-width:none; max-height:none; margin:0; padding:clamp(1rem,4vw,3rem); border:0; background:rgba(5,15,27,.94); color:var(--white); }
.lightbox::backdrop { background:rgba(5,15,27,.85); }
.lightbox[open] { display:grid; place-items:center; animation:fadeIn .2s ease; }
@keyframes fadeIn { from { opacity:0; } }
.lightbox figure { max-width:min(1200px,100%); margin:0; }
.lightbox img { max-width:100%; max-height:82vh; margin:auto; object-fit:contain; }
.lightbox figcaption { padding-top:.8rem; color:rgba(255,255,255,.72); text-align:center; font-size:.85rem; }
.lightbox-close { position:fixed; z-index:2; top:1rem; right:1rem; width:48px; height:48px; border:1px solid rgba(255,255,255,.4); border-radius:50%; background:transparent; color:var(--white); cursor:pointer; font-size:2rem; line-height:1; }
.back-to-top { position:fixed; z-index:20; right:1.2rem; bottom:1.2rem; width:46px; height:46px; border:0; border-radius:50%; background:var(--accent); color:var(--white); box-shadow:0 10px 30px rgba(16,29,47,.2); cursor:pointer; opacity:0; pointer-events:none; transform:translateY(10px); transition:.25s ease; }
.back-to-top.show { opacity:1; pointer-events:auto; transform:none; }

@media (max-width:900px) {
  .site-header { height:74px; }
  .menu-button { position:relative; z-index:2; display:block; }
  .site-header nav { position:fixed; inset:0; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:1.5rem; padding:2.5rem; background:var(--ink); color:var(--white); font-family:Georgia,serif; font-size:2.2rem; transform:translateY(-102%); visibility:hidden; transition:transform .35s ease,visibility .35s; }
  .site-header nav.nav-open { transform:translateY(0); visibility:visible; }
  .nav-cta { margin-top:1rem; font-family:"Avenir Next",Avenir,sans-serif; font-size:.9rem; }
  .mission,.renovation,.about-intro,.contact-hero,.timeline,.inquiry-grid { grid-template-columns:1fr; }
  .services { grid-template-columns:1fr; }
  .service-card { min-height:320px; border-right:1px solid var(--line); border-bottom:0; }
  .service-card:last-child { border-bottom:1px solid var(--line); }
  .image-frame { min-height:520px; }
  .gallery-heading { grid-template-columns:1fr; }
  .gallery-grid { grid-template-columns:1fr 1fr; grid-template-rows:430px 260px; }
  .gallery-wide { grid-column:1/3; grid-row:auto; }
  .feature-panel { grid-template-columns:1fr; }
  .feature-image { min-height:480px; }
  .section-heading { grid-template-columns:1fr; gap:0; }
  .values-grid { grid-template-columns:1fr; }
  .values-grid article,.values-grid article:not(:first-child) { padding:2rem 0; border-right:0; border-bottom:1px solid rgba(255,255,255,.2); }
  .values-grid h3 { margin-top:1.5rem; }
  .timeline { gap:3rem; }
  .contact-banner { grid-template-columns:1fr 1fr; }
  .contact-photo { grid-column:1/-1; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-grid>div:first-child { grid-column:1/-1; }
}
@media (max-width:600px) {
  .shell { width:min(100% - 30px,1180px); }
  .hero { min-height:780px; }
  .hero h1 { font-size:clamp(3.7rem,17vw,5.3rem); }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:1.1rem; }
  .hero-details { grid-template-columns:repeat(3,1fr); }
  .hero-details div { display:block; padding-right:.5rem; }
  .hero-details strong,.hero-details span { display:block; }
  .hero-details strong { font-size:1.3rem; }
  .hero-details span { margin-top:.25rem; font-size:.6rem; }
  .mission { gap:2.5rem; }
  .image-frame,.about-image { min-height:430px; }
  .gallery-grid { grid-template-columns:1fr; grid-template-rows:360px 260px 260px; }
  .gallery-wide { grid-column:auto; }
  .feature-panel { width:100%; }
  .feature-image { min-height:390px; }
  .page-hero>p:last-child { margin-left:0; }
  .about-intro { width:100%; }
  .timeline li { grid-template-columns:65px 1fr; }
  .field-row,.choice-grid { grid-template-columns:1fr; }
  .contact-card { padding:1.4rem; }
  .contact-card>a,.contact-card>div { gap:.7rem; }
  .contact-banner { grid-template-columns:1fr; }
  .contact-photo { grid-column:auto; }
  .contact-note { min-height:280px; border-left:0; border-top:1px solid rgba(255,255,255,.18); }
  .footer-grid { grid-template-columns:1fr; gap:2.5rem; }
  .footer-grid>div:first-child { grid-column:auto; }
  .footer-bottom { flex-direction:column; gap:.4rem; }
  .image-action { opacity:1; transform:none; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; }
  .reveal { opacity:1; transform:none; }
}

/* Hero House: warm, refined veteran housing */
.button-accent,.back-to-top,.choice-grid input:checked+span { color:var(--ink); }
.brand-mark { border-color:var(--accent); color:var(--accent); }
.hero-details strong { font-size:clamp(1.2rem,2vw,1.65rem); }
.hero-details span { max-width:150px; }
.image-kitchen { min-height:480px; }
.hero h1 { font-size:clamp(3.7rem,7.5vw,7.2rem); }
.gallery-wide img { object-position:center; }
@media(max-width:600px){.hero h1{font-size:clamp(3.3rem,14vw,5.1rem)}.image-kitchen{min-height:340px}}

.hero-backdrop { background-position:62% center; }
.renovation .image-frame { min-height:340px; aspect-ratio:1.8; }
.gallery-grid { grid-template-columns:1fr 1fr; grid-template-rows:360px 270px; }
.gallery-wide { grid-column:1 / -1; grid-row:auto; }
.about-image,.feature-image { min-height:420px; }
@media(max-width:600px){.gallery-grid{grid-template-columns:1fr;grid-template-rows:260px 220px 220px}.gallery-wide{grid-column:auto}.about-image,.feature-image{min-height:300px}.renovation .image-frame{min-height:290px}}
