  :root{
    --pine:#0C3838; --pine-deep:#082A2A; --pine-tint:#E6EEEC;
    --brass:#C8A468; --brass-deep:#A6864B; --brass-tint:#F5EDDC;
    --ink:#20292A; --stone:#5E6B6B; --mist:#F3F5F4; --line:#DCE2E0; --white:#FFFFFF;
    --radius:6px; --radius-lg:10px;
    --container:1180px; --gutter:clamp(16px, 4vw, 32px);
    --font:'Archivo', ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    color-scheme: light;
  }
  @media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ color-scheme: light; } }
  :root[data-theme="dark"]{ color-scheme: light; }

  *,*::before,*::after{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
  @media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
  body{
    margin:0; background:var(--white); color:var(--ink);
    font-family:var(--font); font-size:1.0625rem; line-height:1.65; font-weight:400;
    padding-left:env(safe-area-inset-left,0px); padding-right:env(safe-area-inset-right,0px);
    -webkit-font-smoothing:antialiased;
  }
  img{ max-width:100%; height:auto; display:block; }
  a{ color:var(--pine); text-decoration-thickness:1px; text-underline-offset:3px; }
  a:hover{ color:var(--pine-deep); }
  :focus-visible{ outline:3px solid var(--brass); outline-offset:3px; border-radius:4px; }
  button{ font:inherit; }
  h1,h2,h3,h4{ margin:0; color:var(--pine); font-weight:700; letter-spacing:-0.015em; font-stretch:112%; text-wrap:balance; }
  h1{ font-size:clamp(2.3rem, 4.2vw, 3.5rem); line-height:1.05; }
  h2{ font-size:clamp(1.8rem, 2.9vw, 2.5rem); line-height:1.12; }
  h3{ font-size:1.3rem; line-height:1.3; font-stretch:106%; }
  p{ margin:0 0 1em; }
  .lead{ font-size:1.2rem; line-height:1.55; color:var(--ink); max-width:38rem; }
  .muted{ color:var(--stone); }
  .container{ max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); }
  .section{ padding-block:clamp(56px, 8vw, 104px); }
  .section-tight{ padding-block:clamp(40px, 6vw, 72px); }
  .section-mist{ background:var(--mist); }
  .section-head{ max-width:44rem; margin-bottom:clamp(28px, 4vw, 48px); }
  .section-head p{ font-size:1.125rem; color:var(--stone); margin-top:14px; }

  /* Buttons */
  .btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:15px 24px; border-radius:var(--radius);
        font-weight:600; font-size:1rem; line-height:1; text-decoration:none; border:1.5px solid transparent; cursor:pointer;
        transition:background-color .15s ease, border-color .15s ease, color .15s ease; white-space:nowrap; }
  .btn-primary{ background:var(--pine); color:#fff; border-color:var(--pine); }
  .btn-primary:hover{ background:var(--pine-deep); border-color:var(--pine-deep); color:#fff; }
  .btn-secondary{ background:#fff; color:var(--pine); border-color:var(--pine); }
  .btn-secondary:hover{ background:var(--pine-tint); color:var(--pine-deep); }
  .btn-lg{ padding:18px 28px; font-size:1.0625rem; }
  .btn svg{ width:18px; height:18px; flex:none; }

  /* Utility bar */
  .utility{ background:var(--pine); color:#DCE7E4; font-size:.9rem; }
  .utility .container{ display:flex; justify-content:space-between; align-items:center; gap:16px; min-height:38px; }
  .utility a{ color:#fff; text-decoration:none; font-weight:600; }
  .utility a:hover{ text-decoration:underline; }
  .utility .area{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .utility a{ white-space:nowrap; }
  @media (max-width: 640px){ .utility .area{ display:none; } .utility .container{ justify-content:center; } }

  /* Header */
  .site-header{ position:sticky; top:0; z-index:40; background:rgba(255,255,255,.96); backdrop-filter:saturate(1.2) blur(8px); border-bottom:1px solid var(--line); }
  .site-header .container{ display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:78px; }
  .logo img{ height:46px; width:auto; }
  .nav{ display:flex; align-items:center; gap:clamp(14px, 1.8vw, 26px); }
  .nav a{ color:var(--ink); text-decoration:none; font-weight:500; font-size:.96rem; padding:6px 0; border-bottom:2px solid transparent; white-space:nowrap; }
  .phone-link{ white-space:nowrap; }
  @media (max-width: 1200px){ .header-cta .phone-link span{ display:none; } }
  .nav a:hover{ color:var(--pine); border-bottom-color:var(--brass); }
  .header-cta{ display:flex; align-items:center; gap:12px; }
  .phone-link{ display:inline-flex; align-items:center; gap:8px; color:var(--pine); font-weight:700; text-decoration:none; font-size:1.02rem; }
  .phone-link svg{ width:18px; height:18px; }
  .menu-btn{ display:none; background:none; border:1.5px solid var(--line); border-radius:var(--radius); padding:10px 12px; cursor:pointer; color:var(--pine); }
  .menu-btn svg{ width:22px; height:22px; display:block; }
  @media (max-width: 960px){
    .nav{ display:none; position:absolute; left:0; right:0; top:100%; background:#fff; border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; gap:0; padding:8px var(--gutter) 16px; }
    .nav a{ padding:14px 0; border-bottom:1px solid var(--line); font-size:1.05rem; }
    .nav a:last-child{ border-bottom:none; }
    .nav-open .nav{ display:flex; }
    .menu-btn{ display:inline-flex; }
    .header-cta .btn{ display:none; }
  }

  /* Hero */
  .hero{ padding-block:clamp(40px, 6vw, 88px) clamp(40px, 6vw, 72px); }
  .hero .container{ display:grid; grid-template-columns:minmax(0, 11fr) minmax(0, 10fr); gap:clamp(28px, 5vw, 72px); align-items:center; }
  .hero h1{ margin-bottom:20px; }
  .hero .lead{ margin-bottom:28px; }
  .hero-actions{ display:flex; gap:12px; flex-wrap:wrap; }
  .hero-note{ margin-top:22px; font-size:.95rem; color:var(--stone); }
  .hero-note strong{ color:var(--ink); font-weight:600; }
  @media (max-width: 900px){ .hero .container{ grid-template-columns:1fr; } }

  /* Before/after slider (hero) */
  .ba{ position:relative; overflow:hidden; border-radius:var(--radius-lg); aspect-ratio:4/5; background:var(--mist); user-select:none; -webkit-user-select:none; touch-action:pan-y; }
  .ba img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .ba img.after{ clip-path:inset(0 0 0 var(--pos, 50%)); }
  .ba .divider{ position:absolute; top:0; bottom:0; left:var(--pos, 50%); width:3px; background:#fff; transform:translateX(-50%); box-shadow:0 0 0 1px rgba(0,0,0,.12); pointer-events:none; }
  .ba .handle{ position:absolute; top:50%; left:var(--pos, 50%); transform:translate(-50%,-50%); width:52px; height:52px; border-radius:50%;
               background:var(--brass); color:var(--pine-deep); display:grid; place-items:center; box-shadow:0 8px 24px rgba(0,0,0,.28); pointer-events:none; }
  .ba .handle svg{ width:26px; height:26px; }
  .ba .tag{ position:absolute; top:14px; padding:7px 11px; border-radius:4px; font-size:.82rem; font-weight:600; letter-spacing:.01em; background:rgba(12,56,56,.82); color:#fff; pointer-events:none; }
  .ba .tag.before{ left:14px; } .ba .tag.after{ right:14px; }
  .ba input[type=range]{ position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize; -webkit-appearance:none; appearance:none; }
  .ba-caption{ display:flex; justify-content:space-between; gap:12px; margin-top:12px; font-size:.92rem; color:var(--stone); }
  .ba-caption strong{ color:var(--ink); font-weight:600; }
  @media (max-width: 900px){ .ba{ aspect-ratio:4/4.6; } }

  /* Trust row */
  .trust{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; }
  .trust ul{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4, 1fr); }
  .trust li{ padding:22px 24px 22px 0; border-left:1px solid var(--line); padding-left:24px; }
  .trust li:first-child{ border-left:none; padding-left:0; }
  .trust strong{ display:block; color:var(--pine); font-size:1.25rem; font-weight:700; font-stretch:108%; letter-spacing:-0.01em; line-height:1.2; margin-bottom:4px; }
  .trust span{ color:var(--stone); font-size:.95rem; }
  @media (max-width: 900px){
    .trust ul{ grid-template-columns:1fr 1fr; }
    .trust li{ border-left:none; padding-left:0; padding-right:16px; border-top:1px solid var(--line); }
    .trust li:nth-child(-n+2){ border-top:none; }
    .trust li:nth-child(2n){ padding-left:16px; border-left:1px solid var(--line); padding-right:0; }
  }

  /* Services */
  .service{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(28px, 5vw, 72px); align-items:center; }
  .service + .service{ margin-top:clamp(48px, 7vw, 88px); }
  .service.flip .service-media{ order:2; }
  .service-media img{ border-radius:var(--radius-lg); aspect-ratio:4/5; object-fit:cover; width:100%; }
  .service-media.wide img{ aspect-ratio:3/2; }
  .service h2{ margin-bottom:14px; }
  .service p{ color:var(--ink); }
  .scope{ list-style:none; padding:0; margin:18px 0 26px; display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; }
  .scope li{ position:relative; padding-left:22px; font-size:1rem; }
  .scope li::before{ content:""; position:absolute; left:0; top:.62em; width:10px; height:10px; border-radius:2px; background:var(--brass); }
  .service-actions{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
  .also{ margin-top:clamp(40px, 6vw, 64px); padding-top:28px; border-top:1px solid var(--line); display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 2fr); gap:20px 48px; }
  .also h3{ color:var(--pine); }
  .also p{ margin:0; color:var(--stone); }
  @media (max-width: 860px){
    .service, .also{ grid-template-columns:1fr; }
    .service.flip .service-media{ order:0; }
    .scope{ grid-template-columns:1fr; }
  }

  /* Before & after grid */
  .pairs{ display:grid; grid-template-columns:repeat(3, 1fr); gap:clamp(16px, 2.5vw, 28px); }
  .pair{ margin:0; }
  .pair-frame{ position:relative; overflow:hidden; border-radius:var(--radius-lg); aspect-ratio:4/5; background:var(--mist); }
  .pair-frame img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:opacity .25s ease; }
  .pair-frame img.before{ opacity:0; }
  .pair.show-before .pair-frame img.before{ opacity:1; }
  .pair-toggle{ position:absolute; left:12px; bottom:12px; display:inline-flex; background:rgba(255,255,255,.96); border-radius:999px; padding:4px; box-shadow:0 4px 16px rgba(0,0,0,.18); }
  .pair-toggle button{ border:0; background:transparent; padding:8px 14px; border-radius:999px; font-weight:600; font-size:.88rem; color:var(--stone); cursor:pointer; }
  .pair-toggle button[aria-pressed="true"]{ background:var(--pine); color:#fff; }
  .pair figcaption{ margin-top:12px; font-size:.95rem; color:var(--stone); }
  .pair figcaption strong{ display:block; color:var(--ink); font-weight:600; font-size:1rem; }
  @media (max-width: 960px){ .pairs{ grid-template-columns:repeat(2, 1fr); } }
  @media (max-width: 560px){ .pairs{ grid-template-columns:1fr; } }
  .pairs-foot{ margin-top:clamp(28px, 4vw, 44px); display:flex; gap:16px; align-items:center; flex-wrap:wrap; justify-content:space-between; }
  .pairs-foot p{ margin:0; color:var(--stone); max-width:40rem; }

  /* Process */
  .process{ display:grid; grid-template-columns:minmax(0, 6fr) minmax(0, 5fr); gap:clamp(28px, 5vw, 72px); align-items:start; }
  .steps{ list-style:none; margin:0; padding:0; counter-reset:step; }
  .steps li{ display:grid; grid-template-columns:56px 1fr; gap:18px; padding:22px 0; border-top:1px solid var(--line); }
  .steps li:last-child{ border-bottom:1px solid var(--line); }
  .steps .num{ width:44px; height:44px; border-radius:50%; background:var(--brass-tint); color:var(--brass-deep); display:grid; place-items:center; font-weight:700; font-size:1.05rem; font-stretch:108%; }
  .steps h3{ margin-bottom:6px; }
  .steps p{ margin:0; color:var(--stone); }
  .process-media{ position:sticky; top:100px; }
  .process-media img{ border-radius:var(--radius-lg); aspect-ratio:3/2; object-fit:cover; width:100%; }
  .process-media figcaption{ margin-top:12px; font-size:.92rem; color:var(--stone); }
  @media (max-width: 900px){ .process{ grid-template-columns:1fr; } .process-media{ position:static; order:-1; } }

  /* Owners */
  .owners{ display:grid; grid-template-columns:minmax(0, 7fr) minmax(0, 5fr); gap:clamp(28px, 5vw, 72px); align-items:center; }
  .owners h2{ margin-bottom:18px; }
  .owners img{ border-radius:var(--radius-lg); aspect-ratio:4/5; object-fit:cover; width:100%; }
  .note{ font-size:1.15rem; line-height:1.6; max-width:40rem; }
  .note p{ margin-bottom:1em; }
  .signature{ margin-top:22px; font-weight:600; color:var(--pine); }
  .signature span{ display:block; font-weight:400; color:var(--stone); font-size:.95rem; }
  @media (max-width: 860px){ .owners{ grid-template-columns:1fr; } }

  /* Service area */
  .areas{ display:grid; grid-template-columns:repeat(3, 1fr); gap:24px 40px; }
  .areas h3{ font-size:1.05rem; color:var(--stone); font-weight:600; font-stretch:100%; margin-bottom:10px; }
  .areas ul{ list-style:none; margin:0; padding:0; display:grid; gap:6px; }
  .areas li a{ text-decoration:none; color:var(--ink); font-weight:500; }
  .areas li a:hover{ color:var(--pine); text-decoration:underline; }
  @media (max-width: 700px){ .areas{ grid-template-columns:1fr 1fr; } }

  /* FAQ */
  .faq{ max-width:52rem; }
  .faq details{ border-top:1px solid var(--line); }
  .faq details:last-child{ border-bottom:1px solid var(--line); }
  .faq summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:20px 0; font-weight:600; font-size:1.1rem; color:var(--pine); }
  .faq summary::-webkit-details-marker{ display:none; }
  .faq summary::after{ content:"+"; flex:none; width:32px; height:32px; border-radius:50%; border:1.5px solid var(--line); display:grid; place-items:center; color:var(--brass-deep); font-weight:500; font-size:1.3rem; transition:transform .2s ease; }
  .faq details[open] summary::after{ transform:rotate(45deg); }
  .faq details p{ margin:0 0 20px; color:var(--ink); max-width:46rem; }

  /* Estimate */
  .estimate{ background:var(--pine); color:#fff; }
  .estimate .container{ display:grid; grid-template-columns:minmax(0, 5fr) minmax(0, 6fr); gap:clamp(28px, 5vw, 72px); align-items:start; }
  .estimate h2{ color:#fff; margin-bottom:14px; }
  .estimate p{ color:#CFE0DC; }
  .estimate .phone-big{ display:inline-flex; align-items:center; gap:10px; color:#fff; font-size:1.5rem; font-weight:700; text-decoration:none; margin:10px 0 4px; }
  .estimate .phone-big svg{ width:22px; height:22px; }
  .estimate .small{ font-size:.95rem; }
  .form{ background:#fff; border-radius:var(--radius-lg); padding:clamp(20px, 3vw, 32px); color:var(--ink); display:grid; gap:14px; }
  .form .row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  .form label{ display:grid; gap:6px; font-size:.92rem; font-weight:600; color:var(--pine); }
  .form input, .form select, .form textarea{ font:inherit; font-size:1rem; padding:12px 14px; border:1.5px solid var(--line); border-radius:var(--radius); background:#fff; color:var(--ink); width:100%; }
  .form input:focus, .form select:focus, .form textarea:focus{ outline:none; border-color:var(--brass); box-shadow:0 0 0 3px var(--brass-tint); }
  .form textarea{ min-height:110px; resize:vertical; }
  .form .fine{ font-size:.85rem; color:var(--stone); margin:0; }
  @media (max-width: 860px){ .estimate .container{ grid-template-columns:1fr; } .form .row{ grid-template-columns:1fr; } }

  /* Footer */
  .site-footer{ background:var(--pine-deep); color:#B9CBC7; padding-block:clamp(40px, 6vw, 64px) 28px; font-size:.95rem; }
  .site-footer .cols{ display:grid; grid-template-columns:2fr 1fr 1fr 1.2fr; gap:32px; }
  .site-footer h3{ color:#fff; font-size:1rem; font-stretch:100%; margin-bottom:12px; }
  .site-footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
  .site-footer a{ color:#DCE7E4; text-decoration:none; }
  .site-footer a:hover{ color:#fff; text-decoration:underline; }
  .site-footer .brand img{ height:44px; width:auto; margin-bottom:16px; }
  .site-footer .brand p{ max-width:34ch; margin:0 0 10px; }
  .site-footer .legal{ margin-top:36px; padding-top:20px; border-top:1px solid rgba(255,255,255,.14); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:.88rem; color:#93A8A3; }
  @media (max-width: 860px){ .site-footer .cols{ grid-template-columns:1fr 1fr; } }
  @media (max-width: 520px){ .site-footer .cols{ grid-template-columns:1fr; } }

  /* Reveal animation for hero slider */
  @media (prefers-reduced-motion: reduce){ .pair-frame img{ transition:none; } }

/* ---------- shared additions for inner pages ---------- */
.skip{ position:absolute; left:-9999px; top:0; background:var(--pine); color:#fff; padding:10px 16px; z-index:100; border-radius:0 0 6px 0; }
.skip:focus{ left:0; color:#fff; }
.nav a[aria-current="page"]{ color:var(--pine); border-bottom-color:var(--brass); }
.site-footer h2{ color:#fff; font-size:1rem; font-stretch:100%; margin-bottom:12px; letter-spacing:0; }
.site-footer p{ margin:0 0 10px; }

/* Breadcrumbs */
.crumbs ol{ list-style:none; margin:0 0 22px; padding:0; display:flex; flex-wrap:wrap; gap:6px; font-size:.9rem; color:var(--stone); }
.crumbs li + li::before{ content:"/"; margin-right:6px; color:var(--line); }
.crumbs a{ color:var(--stone); text-decoration:none; }
.crumbs a:hover{ color:var(--pine); text-decoration:underline; }

/* Page hero */
.page-hero{ padding-block:clamp(28px, 4vw, 48px) clamp(40px, 6vw, 72px); }
.page-hero h1{ margin-bottom:18px; }
.page-hero .lead{ margin-bottom:26px; }
.page-hero.compact{ padding-bottom:clamp(20px, 3vw, 32px); }
.page-hero.compact .lead{ max-width:46rem; margin-bottom:0; }
.page-hero.center{ text-align:center; padding-block:clamp(64px, 10vw, 120px); }
.page-hero.center .lead{ margin-inline:auto; margin-bottom:28px; }
.hero-actions.center{ justify-content:center; }
.page-hero-grid{ display:grid; grid-template-columns:minmax(0, 11fr) minmax(0, 10fr); gap:clamp(28px, 5vw, 72px); align-items:center; }
.page-hero-grid.landscape{ grid-template-columns:minmax(0, 1fr) minmax(0, 1.15fr); }
.page-hero-img{ width:100%; border-radius:var(--radius-lg); object-fit:cover; aspect-ratio:4/5; max-height:620px; }
.page-hero-grid.landscape .page-hero-img{ aspect-ratio:3/2; }
@media (max-width: 900px){ .page-hero-grid, .page-hero-grid.landscape{ grid-template-columns:1fr; } .page-hero-img{ aspect-ratio:4/3; } }

/* Feature grid */
.features{ display:grid; grid-template-columns:repeat(3, 1fr); gap:0; border-top:1px solid var(--line); }
.features > div{ padding:26px 28px 28px 0; border-bottom:1px solid var(--line); }
.features > div:not(:nth-child(3n+1)){ padding-left:28px; border-left:1px solid var(--line); }
.features h3{ margin-bottom:8px; font-size:1.15rem; }
.features p{ margin:0; color:var(--stone); }
@media (max-width: 900px){
  .features{ grid-template-columns:1fr 1fr; }
  .features > div, .features > div:not(:nth-child(3n+1)){ padding:22px 20px 22px 0; border-left:none; }
  .features > div:nth-child(2n){ padding-left:20px; border-left:1px solid var(--line); padding-right:0; }
}
@media (max-width: 600px){
  .features{ grid-template-columns:1fr; }
  .features > div, .features > div:nth-child(2n){ padding:20px 0; border-left:none; }
}

/* Two column text + numbered factors */
.two-col{ display:grid; grid-template-columns:minmax(0, 5fr) minmax(0, 6fr); gap:clamp(28px, 5vw, 80px); align-items:start; }
.two-col h2{ margin-bottom:16px; }
.two-col > div p{ color:var(--ink); }
.factors{ list-style:none; margin:0; padding:0; counter-reset:f; }
.factors li{ counter-increment:f; position:relative; padding:20px 0 20px 56px; border-top:1px solid var(--line); }
.factors li:last-child{ border-bottom:1px solid var(--line); }
.factors li::before{ content:counter(f); position:absolute; left:0; top:20px; width:38px; height:38px; border-radius:50%; background:var(--brass-tint); color:var(--brass-deep); display:grid; place-items:center; font-weight:700; font-stretch:108%; }
.factors h3{ font-size:1.12rem; margin-bottom:6px; }
.factors p{ margin:0; color:var(--stone); }
@media (max-width: 860px){ .two-col{ grid-template-columns:1fr; } }

/* Galleries */
.gallery{ display:grid; grid-template-columns:repeat(3, 1fr); gap:clamp(12px, 2vw, 24px); }
.gallery img{ width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:var(--radius-lg); }
.wide-img{ width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:var(--radius-lg); margin-top:clamp(12px, 2vw, 24px); }
@media (max-width: 700px){ .gallery{ grid-template-columns:1fr 1fr; } .gallery img:last-child{ grid-column:span 2; aspect-ratio:3/2; } }

/* Project cards */
.group-title{ font-size:1.5rem; margin:clamp(24px, 4vw, 40px) 0 18px; }
.group-title:first-child{ margin-top:0; }
.cards{ display:grid; grid-template-columns:repeat(3, 1fr); gap:clamp(16px, 2.5vw, 28px); }
.card{ display:block; text-decoration:none; color:var(--ink); }
.card img{ width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:var(--radius-lg); }
.card-body{ display:block; margin-top:12px; }
.card-body strong{ display:block; color:var(--pine); font-weight:600; line-height:1.35; }
.card-body span{ display:block; color:var(--stone); font-size:.95rem; margin-top:2px; }
.card:hover strong{ text-decoration:underline; text-underline-offset:3px; }
@media (max-width: 900px){ .cards{ grid-template-columns:1fr 1fr; } }
@media (max-width: 520px){ .cards{ grid-template-columns:1fr; } }

/* Pair captions as links */
.pair figcaption a{ text-decoration:none; color:inherit; }
.pair figcaption a:hover strong{ color:var(--pine); text-decoration:underline; text-underline-offset:3px; }

/* Project detail */
.project{ display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:clamp(28px, 5vw, 64px); align-items:start; }
.project .ba{ aspect-ratio:4/5; }
.ba-hint{ margin:10px 0 0; font-size:.92rem; color:var(--stone); }
.project-info .lead{ margin-bottom:24px; }
.project-info h2{ font-size:1.35rem; margin-bottom:12px; }
.checks{ list-style:none; margin:0 0 24px; padding:0; display:grid; gap:10px; }
.checks li{ position:relative; padding-left:28px; }
.checks li::before{ content:""; position:absolute; left:2px; top:.45em; width:12px; height:7px; border-left:2.5px solid var(--brass-deep); border-bottom:2.5px solid var(--brass-deep); transform:rotate(-45deg); }
.details{ margin:0 0 26px; display:grid; grid-template-columns:repeat(3, 1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.details div{ padding:14px 12px 14px 0; }
.details div + div{ padding-left:14px; border-left:1px solid var(--line); }
.details dt{ font-size:.85rem; color:var(--stone); }
.details dd{ margin:2px 0 0; font-weight:600; color:var(--pine); }
@media (max-width: 860px){ .project{ grid-template-columns:1fr; } }
@media (max-width: 480px){ .details{ grid-template-columns:1fr; } .details div + div{ border-left:none; padding-left:0; border-top:1px solid var(--line); } }

.project-feature{ display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1.1fr); gap:clamp(28px, 5vw, 64px); align-items:center; }
.project-feature .ba{ max-width:520px; }
.project-feature h3{ margin-bottom:12px; }
@media (max-width: 860px){ .project-feature{ grid-template-columns:1fr; } }

/* Contact page */
.contact-grid{ display:grid; grid-template-columns:minmax(0, 7fr) minmax(0, 5fr); gap:clamp(28px, 5vw, 64px); align-items:start; }
.contact-grid .form{ border:1px solid var(--line); }
.contact-side h2{ font-size:1.2rem; margin:0 0 8px; }
.contact-side h2:not(:first-child){ margin-top:28px; }
.contact-side p{ color:var(--stone); margin:0; }
.phone-big.dark{ color:var(--pine); }
.mini-steps{ margin:0; padding-left:20px; color:var(--stone); display:grid; gap:6px; }
@media (max-width: 860px){ .contact-grid{ grid-template-columns:1fr; } }

/* Service areas */
.area-groups{ display:grid; grid-template-columns:repeat(3, 1fr); gap:24px 40px; }
.area-group h2{ font-size:1.25rem; margin-bottom:12px; }
.area-group ul{ list-style:none; margin:0; padding:0; display:grid; gap:8px; font-size:1.05rem; }
.areas li{ color:var(--ink); font-weight:500; }
.areas-more{ margin:22px 0 0; }
@media (max-width: 700px){ .area-groups{ grid-template-columns:1fr 1fr; } }

/* Prose */
.prose{ max-width:46rem; }
.prose h2{ font-size:1.35rem; margin:28px 0 10px; }

/* Form extras */
.form-error{ background:#FDECEA; color:#8A1C12; border-radius:var(--radius); padding:10px 14px; font-size:.95rem; font-weight:500; }
.hp{ position:absolute !important; left:-10000px !important; width:1px; height:1px; overflow:hidden; }
.form{ position:relative; }
.form .fine a{ color:var(--stone); }

/* Phone link outside the dark estimate band */
.phone-big{ display:inline-flex; align-items:center; gap:10px; font-size:1.5rem; font-weight:700; text-decoration:none; margin:10px 0 6px; }
.phone-big svg{ width:22px; height:22px; flex:none; }

/* Keep the logo from shrinking when the menu is long */
.logo{ flex:none; }
.logo img{ height:46px; width:auto; max-width:none; }
