:root{
    --paper:#F5F2EC;
    --paper-dim:#F4F0E6;
    --ink:#232019;
    --ink-soft:#7C7568;
    --brass:#C98A3E;
    --brass-dim:#E4C9A0;
    --clay:#3A3835;
    --line: rgba(35,32,25,0.10);
    --frame: 0px;
    --maxw: 1180px;

    /* accent family — muted, one per service category */
    --c-poppy:#7A5C3E;
    --c-teal:#4E6259;
    --c-sky:#4A5A6B;
    --c-marigold:#836B3C;
    --c-lilac:#5C5460;
    --c-leaf:#57604E;
  }

  *{box-sizing:border-box; margin:0; padding:0;}
  :root[data-theme="dark"] .hero-media,
  :root[data-theme="dark"] .about-media,
  :root[data-theme="dark"] .g-item{
    border:1px solid var(--line);
  }

  /* dark theme tokens — warm, not clinical black */
  :root[data-theme="dark"]{
    --paper:#141311;
    --paper-dim:#232019;
    --ink:#F6F1E6;
    --ink-soft:#A9A294;
    --brass:#E0B36B;
    --brass-dim:#6B6455;
    --clay:#E8E2D2;
    --line: rgba(246,241,230,0.15);

    --c-poppy:#C4A583;
    --c-teal:#9AB0A6;
    --c-sky:#98A8B8;
    --c-marigold:#C4AE81;
    --c-lilac:#A79FAC;
    --c-leaf:#A2AB98;
  }

  html{
    scroll-behavior:smooth;
    background:var(--paper);
  }
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter', sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    min-height:100vh;
    min-height:100svh;
  }

  h1,h2,h3,h4{
    font-family:'Cormorant', serif;
    font-weight:300;
    letter-spacing:0;
    color:var(--ink);
  }

  a{color:inherit; text-decoration:none;}
  a[data-target]{cursor:pointer;}
  [data-target]:focus-visible{outline:2px solid var(--ink); outline-offset:3px;}
  img{max-width:100%; display:block;}
  button{font-family:inherit; cursor:pointer;}

  .wrap{
    max-width:var(--maxw);
    margin:0 auto;
    padding:0 32px;
  }

  .eyebrow{
    font-family:'Inter', sans-serif;
    font-size:11px;
    font-weight:500;
    letter-spacing:0.22em;
    text-transform:uppercase;
    color:var(--ink-soft);
  }

  .eyebrow.line::before{
    content:"";
    display:inline-block;
    width:26px;
    height:1px;
    background:var(--ink-soft);
    margin-right:10px;
    vertical-align:middle;
  }

  /* reveal on scroll */
  .reveal{
    opacity:0;
    transform:translateY(18px);
    transition:opacity 0.8s ease, transform 0.8s ease;
  }
  .reveal.is-visible{opacity:1; transform:translateY(0);}
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1; transform:none; transition:none;}
    html{scroll-behavior:auto;}
  }

  /* ===== NAV ===== */
  header{
    position:fixed;
    top:var(--frame);
    left:var(--frame);
    right:var(--frame);
    z-index:150;
    padding:22px 32px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    transition:background 0.4s ease, padding 0.4s ease, border-color 0.4s ease;
    border-bottom:1px solid transparent;
  }
  header.scrolled{
    background:var(--paper);
    backdrop-filter:blur(8px);
    padding:14px 32px;
    border-bottom:1px solid var(--line);
  }
  .logo{
    font-family:'Cormorant', serif;
    font-size:21px;
    font-weight:400;
    letter-spacing:0.06em;
  }
  .logo span{color:var(--ink-soft);}

  nav.links{display:flex; gap:34px; align-items:center;}
  nav.links a{
    font-size:13.5px;
    font-weight:500;
    letter-spacing:0.03em;
    color:var(--ink-soft);
    position:relative;
    padding-bottom:3px;
  }
  nav.links a::after{
    content:"";
    position:absolute; left:0; bottom:0;
    width:0; height:1px;
    background:var(--ink);
    transition:width 0.3s ease;
  }
  nav.links a:hover::after{width:100%;}
  nav.links a:hover{color:var(--ink);}

  .btn{
    display:inline-block;
    background:var(--ink);
    color:var(--paper);
    font-size:13px;
    font-weight:600;
    letter-spacing:0.04em;
    padding:12px 24px;
    border:1px solid var(--c-poppy);
    transition:background 0.3s ease, color 0.3s ease, transform 0.2s ease;
  }
  .btn:hover{background:transparent; color:var(--ink); transform:translateY(-1px);}
  .btn.outline{
    background:transparent;
    color:var(--ink);
    border:1px solid var(--ink);
  }
  .btn.outline:hover{background:var(--ink); color:var(--paper);}
  .btn.brass{background:transparent; border-color:var(--ink); color:var(--ink);}
  .btn.brass:hover{background:var(--ink); color:var(--paper);}

  .menu-toggle{display:none; flex-direction:column; gap:5px; background:none; border:none;}
  .menu-toggle span{width:24px; height:1.5px; background:var(--ink);}

  .theme-toggle{
    background:none;
    border:1px solid var(--line);
    color:var(--ink-soft);
    width:34px; height:34px;
    display:flex; align-items:center; justify-content:center;
    font-size:14px;
    transition:border-color 0.3s ease, color 0.3s ease;
    flex-shrink:0;
  }
  .theme-toggle:hover{border-color:var(--ink); color:var(--ink);}
  .theme-toggle .icon-dark{display:none;}
  :root[data-theme="dark"] .theme-toggle .icon-dark{display:inline;}
  :root[data-theme="dark"] .theme-toggle .icon-light{display:none;}

  /* ===== HERO ===== */
  .hero{
    min-height:100svh;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding: 130px 0 0 0;
    position:relative;
  }
  .hero-media{
    position:relative;
    margin:0 var(--frame);
    height:60vh;
    height:60svh;
    min-height:380px;
    max-height:620px;
    overflow:hidden;
    background: linear-gradient(135deg, #EFE7DA 0%, #E8E3DA 55%, #DFDCD4 100%);
  }
  .hero-media::after{
    content:"";
    position:absolute; inset:0;
    background-image: repeating-linear-gradient(0deg, rgba(255,255,255,0.03) 0px, transparent 1px, transparent 3px);
    mix-blend-mode:overlay;
  }
  .hero-caption{
    position:absolute;
    left:32px; bottom:24px;
    color:var(--ink);
    font-size:12px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    opacity:0.85;
    z-index:2;
    background:rgba(252,250,245,0.75);
    padding:6px 12px;
    border-radius:2px;
  }
  .hero-caption b{color:var(--ink); font-weight:600;}

  .hero-copy{
    max-width:var(--maxw);
    margin:0 auto;
    padding:44px 32px 60px;
    background:var(--paper);
    position:relative;
    z-index:2;
  }
  .hero-copy h1{
    font-size:clamp(38px, 6vw, 74px);
    line-height:1.04;
    max-width:14ch;
  }
  .hero-copy h1 em{
    font-style:italic;
    color:var(--ink-soft);
    font-weight:400;
  }
  .hero-sub{
    max-width:46ch;
    margin:22px 0 34px;
    color:var(--ink-soft);
    font-size:17px;
  }
  .hero-ctas{display:flex; gap:16px; flex-wrap:wrap;}

  /* ===== SERVICE STRIP ===== */
  .strip{
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:20px 0;
    margin: 60px var(--frame) 0;
  }
  .strip .wrap{
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:12px;
    font-size:12.5px;
    letter-spacing:0.06em;
    text-transform:uppercase;
    color:var(--ink-soft);
  }
  .strip .wrap span{color:var(--ink); font-weight:500;}

  /* ===== SECTION GENERIC ===== */
  section{padding:120px 0; position:relative; scroll-margin-top:80px;}
  section.tight{padding:90px 0;}
  .section-head{
    max-width:640px;
    margin-bottom:56px;
  }
  .section-head h2{
    font-size:clamp(30px, 4vw, 46px);
    margin-top:14px;
    line-height:1.12;
  }
  .section-head p{
    margin-top:16px;
    color:var(--ink-soft);
    font-size:16.5px;
    max-width:56ch;
  }

  /* ===== GALLERY ===== */
  .gallery-grid{
    display:grid;
    grid-template-columns:repeat(6, 1fr);
    gap:20px;
  }
  .g-item{
    position:relative;
    overflow:hidden;
    background:linear-gradient(150deg, #F1F0EC, #E3E1DA 45%, #CAC7BE 100%);
  }
  .g-item:nth-child(6n+1){grid-column:span 4; aspect-ratio:4/3;}
  .g-item:nth-child(6n+2){grid-column:span 2; aspect-ratio:3/4;}
  .g-item:nth-child(6n+3){grid-column:span 2; aspect-ratio:3/4;}
  .g-item:nth-child(6n+4){grid-column:span 2; aspect-ratio:3/4;}
  .g-item:nth-child(6n+5){grid-column:span 2; aspect-ratio:3/4;}
  .g-item:nth-child(6n+6){grid-column:span 2; aspect-ratio:3/4;}

  /* tone variants are overridden per-category by --accent */
  .g-item.tone-ink, .g-item.tone-clay, .g-item.tone-brass{background:var(--accent, var(--c-poppy));}

  .g-item::before{
    content:"";
    position:absolute; inset:0;
    background-image: repeating-linear-gradient(45deg, rgba(255,255,255,0.05) 0px, transparent 2px, transparent 6px);
    opacity:0.6;
  }
  .g-plate{
    position:absolute; left:0; bottom:0; right:0;
    padding:14px;
    color:#FFFFFF;
    z-index:2;
    opacity:0;
    transform:translateY(8px);
    transition:opacity 0.35s ease, transform 0.35s ease;
    background:linear-gradient(to top, rgba(0,0,0,0.75), rgba(0,0,0,0));
  }
  .g-item:hover .g-plate{opacity:1; transform:translateY(0);}
  .g-item:hover{filter:brightness(1.05);}
  .g-plate .cat{
    font-size:10.5px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:#D8CBAE;
    display:block;
    margin-bottom:4px;
  }
  .g-plate .loc{font-family:'Cormorant', serif; font-size:15px; color:#FFFFFF;}

  @media (max-width:820px){
    .gallery-grid{grid-template-columns:repeat(2,1fr);}
    .g-item, .g-item:nth-child(6n+1){grid-column:span 1 !important; aspect-ratio:4/5;}
  }


  .hero-media img, .about-media img, .g-item img{
    width:100%; height:100%; object-fit:cover; display:block;
  }
  .g-item img{transition:transform 0.6s ease;}
  .g-item:hover img{transform:scale(1.04);}
  .g-item{background:var(--paper-dim);}
  .portfolio-category .g-item{background:var(--paper-dim);}
  .portfolio-category .g-item:nth-child(2),
  .portfolio-category .g-item:nth-child(3){filter:none;}
  .portfolio-category .g-item:hover{filter:none;}



  /* pricing is revealed only when the visitor asks for it */
  .gated{display:none;}
  .gated.is-shown{display:block;}


  /* hero slideshow */
  .hero-slides{position:absolute; inset:0;}
  .hero-slide{
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:cover;
    opacity:0;
    transition:opacity 1.1s ease-in-out;
    will-change:opacity;
    transform:translateZ(0);
    backface-visibility:hidden;
  }
  .hero-slide.is-active{opacity:1;}
  .hero-media::after{
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(to top, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.05) 40%, rgba(0,0,0,0) 70%);
    pointer-events:none;
    z-index:1;
  }
  .hero-caption{z-index:3;}

  .hero-dots{
    position:absolute;
    right:22px; bottom:26px;
    z-index:4;
    display:flex; gap:9px;
    padding:8px 12px;
    background:rgba(0,0,0,0.28);
    backdrop-filter:blur(6px);
    border-radius:100px;
  }
  .hero-dot{
    width:8px; height:8px;
    border:none; padding:0;
    border-radius:50%;
    background:rgba(255,255,255,0.42);
    cursor:pointer;
    transition:background 0.3s ease, transform 0.3s ease, width 0.3s ease;
  }
  .hero-dot:hover{background:rgba(255,255,255,0.75);}
  .hero-dot.is-active{background:#FFFFFF; width:22px; border-radius:100px;}
  .hero-dot:focus-visible{outline:2px solid #FFFFFF; outline-offset:3px;}

  @media (max-width:600px){
    .hero-dots{right:50%; transform:translateX(50%); bottom:16px; gap:7px; padding:7px 10px;}
    .hero-dot{width:7px; height:7px;}
    .hero-dot.is-active{width:18px;}
    .hero-caption{left:16px; bottom:56px; font-size:11px;}
  }
  @media (prefers-reduced-motion: reduce){
    .hero-slide{transition:none;}
  }

  /* portfolio category chooser */
  .cat-cards{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:20px;
  }
  .cat-card{
    --accent:var(--c-poppy);
    position:relative;
    aspect-ratio:4/3;
    overflow:hidden;
    border:none;
    padding:0;
    background:var(--accent);
    cursor:pointer;
    text-align:left;
    display:block;
    width:100%;
  }
  .cat-card[data-open="residential"]{--accent:var(--c-poppy);}
  .cat-card[data-open="commercial"]{--accent:var(--c-sky);}
  .cat-card[data-open="aerial"]{--accent:var(--c-teal);}
  .cat-card[data-open="dusk"]{--accent:var(--c-lilac);}
  .cat-card[data-open="staging"]{--accent:var(--c-leaf);}
  .cat-card[data-open="video"]{--accent:var(--c-marigold);}
  .cat-card img{
    width:100%; height:100%; object-fit:cover; display:block;
    transition:transform 0.6s ease;
  }
  .cat-card:hover img{transform:scale(1.05);}
  .cat-card .veil{
    position:absolute; inset:0;
    background:linear-gradient(to top, rgba(0,0,0,0.72) 0%, rgba(0,0,0,0.15) 55%, rgba(0,0,0,0) 100%);
  }
  .cat-card .label{
    position:absolute; left:20px; right:20px; bottom:18px; z-index:2;
  }
  .cat-card .label .n{
    font-size:10.5px; letter-spacing:0.16em; text-transform:uppercase;
    color:#FFFFFF; opacity:0.75; display:block; margin-bottom:5px;
  }
  .cat-card .label .t{
    font-family:'Cormorant', serif; font-size:23px; color:#FFFFFF; display:block; line-height:1.15;
  }
  .cat-card .label .t::after{
    content:""; display:block; width:30px; height:3px; background:var(--accent);
    margin-top:9px; border-radius:2px;
    transition:width 0.35s ease;
  }
  .cat-card:hover .label .t::after{width:64px;}
  .cat-card:focus-visible{outline:2px solid var(--ink); outline-offset:3px;}

  /* category detail: hidden until chosen */
  .portfolio-category{display:none;}
  .portfolio-category.is-open{display:block;}
  .portfolio-detail .portfolio-category{
    padding-top:0; margin-top:0; border-top:none;
  }
  .back-link{
    background:none; border:none; padding:0;
    font-family:'Inter', sans-serif;
    font-size:12.5px; letter-spacing:0.08em; text-transform:uppercase;
    color:var(--ink-soft); cursor:pointer; margin-bottom:26px;
    display:inline-flex; align-items:center; gap:8px;
  }
  .back-link:hover{color:var(--accent, var(--c-poppy));}

  @media (max-width:820px){ .cat-cards{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:520px){ .cat-cards{grid-template-columns:1fr;} }

  /* portfolio category blocks */
  .portfolio-category{
    --accent: var(--c-poppy);
    padding-top:64px;
    margin-top:64px;
    border-top:1px solid var(--line);
  }
  .portfolio-category[data-accent="residential"]{--accent:var(--c-poppy);}
  .portfolio-category[data-accent="commercial"]{--accent:var(--c-sky);}
  .portfolio-category[data-accent="aerial"]{--accent:var(--c-teal);}
  .portfolio-category[data-accent="dusk"]{--accent:var(--c-lilac);}
  .portfolio-category[data-accent="staging"]{--accent:var(--c-leaf);}
  .portfolio-category[data-accent="video"]{--accent:var(--c-marigold);}

  .portfolio-category .eyebrow{color:var(--accent);}
  .portfolio-category .cat-head h3{position:relative; display:inline-block;}
  .portfolio-category .cat-head h3::after{
    content:"";
    display:block;
    width:38px; height:3px;
    background:var(--accent);
    margin-top:10px;
    border-radius:2px;
  }
  .portfolio-category .cat-cta .btn{
    border-color:var(--accent);
    color:var(--accent);
  }
  .portfolio-category .cat-cta .btn:hover{
    background:var(--accent);
    color:var(--paper);
  }
  .portfolio-category .g-item{
    background:var(--accent);
  }
  .portfolio-category .g-item:nth-child(2){filter:saturate(0.7) brightness(1.12);}
  .portfolio-category .g-item:nth-child(3){filter:saturate(1.15) brightness(0.9);}
  .portfolio-category .g-item:hover{filter:brightness(1.06) saturate(1.1);}
  .portfolio-category:first-child{
    padding-top:0;
    margin-top:0;
    border-top:none;
  }
  .cat-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    flex-wrap:wrap;
    gap:16px;
    margin-bottom:28px;
  }
  .cat-head .eyebrow{display:block; margin-bottom:8px;}
  .cat-head h3{font-size:clamp(22px, 2.6vw, 30px); font-weight:400;}
  .cat-head .count{
    font-size:12px;
    color:var(--ink-soft);
    letter-spacing:0.04em;
  }

  .cat-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:16px;
  }
  .cat-grid .g-item{
    grid-column:span 1 !important;
    aspect-ratio:4/3 !important;
  }

  .cat-cta{
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:16px;
    margin-top:26px;
    padding-top:20px;
    border-top:1px dotted var(--line);
  }
  .cat-cta p{font-size:13.5px; color:var(--ink-soft);}

  @media (max-width:700px){
    .cat-grid{grid-template-columns:repeat(2,1fr);}
  }
  @media (max-width:480px){
    .cat-grid{grid-template-columns:1fr;}
    .cat-grid .g-item{aspect-ratio:4/3 !important;}
  }

  /* ===== SERVICES / PRICING ===== */
  .tiers{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:0;
    border:1px solid var(--line);
  }
  .tier{
    padding:36px 26px;
    border-right:1px solid var(--line);
    position:relative;
    display:flex;
    flex-direction:column;
  }
  .tier > a{margin-top:auto;}
  .tier:last-child{border-right:none;}
  .tier:nth-child(1){--t-accent:var(--c-sky);}
  .tier:nth-child(2){--t-accent:var(--c-teal);}
  .tier:nth-child(3){--t-accent:var(--c-marigold);}
  .tier:nth-child(4){--t-accent:var(--c-lilac);}
  .tier .eyebrow{color:var(--t-accent);}
  .tier ul li::before{color:var(--t-accent);}
  .tier > a.btn.outline{border-color:var(--t-accent); color:var(--t-accent);}
  .tier > a.btn.outline:hover{background:var(--t-accent); color:#FFFFFF;}

  .tier.featured{background:var(--clay); color:#FFFFFF;}
  .tier.featured h3{color:#FFFFFF;}
  .tier.featured .eyebrow{color:rgba(255,255,255,0.75);}
  .tier.featured ul li{color:rgba(255,255,255,0.88);}
  .tier.featured .badge{background:#FFFFFF; color:var(--clay);}
  .tier.featured .eyebrow{color:#FFFFFF; opacity:0.85;}
  .tier.featured h3{color:#FFFFFF;}
  .tier.featured .price{color:#FFFFFF;}
  .tier.featured ul li::before{color:#FFFFFF; opacity:0.7;}
  .tier .badge{
    position:absolute; top:0; right:0;
    background:#FFFFFF; color:var(--ink);
    font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase;
    padding:6px 14px;
  }
  .tier h3{font-size:22px; margin-top:12px;}
  .tier .price{
    font-family:'Cormorant', serif;
    font-size:32px;
    margin:14px 0 2px;
  }
  .tier .price small{font-size:12.5px; font-family:'Inter',sans-serif; color:var(--ink-soft); font-weight:500;}
  .tier.featured .price small{color:#FFFFFF; opacity:0.8;}
  .tier ul{list-style:none; margin:20px 0 28px; display:flex; flex-direction:column; gap:10px;}
  .tier ul li{
    font-size:13px;
    padding-left:16px;
    position:relative;
    color:var(--ink-soft);
    line-height:1.4;
  }
  .tier.featured ul li{color:#FFFFFF; opacity:0.9;}
  .tier ul li::before{
    content:"—";
    position:absolute; left:0; top:0;
    color:var(--brass);
  }
  .pricing-note{
    margin-top:20px;
    font-size:13px;
    color:var(--ink-soft);
    font-style:italic;
  }

  .addons-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:44px 48px;
  }
  .addon-group h4{
    font-family:'Cormorant', serif;
    font-weight:500;
    font-size:17px;
    margin-bottom:14px;
    padding-bottom:10px;
    border-bottom:1px solid var(--ink);
  }
  .addon-group ul{list-style:none; display:flex; flex-direction:column; gap:0;}
  .addon-group li{
    display:flex;
    justify-content:space-between;
    gap:12px;
    font-size:13.5px;
    color:var(--ink-soft);
    padding:8px 0;
    border-bottom:1px solid var(--line);
  }
  .addon-group li:last-child{border-bottom:none;}
  .addon-group li .price{
    color:var(--ink);
    font-weight:500;
    white-space:nowrap;
  }

  @media (max-width:820px){
    .addons-grid{grid-template-columns:1fr 1fr; gap:36px 30px;}
  }
  @media (max-width:560px){
    .addons-grid{grid-template-columns:1fr;}
  }

  .good-to-know{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:32px 48px;
    border-top:1px solid var(--line);
    padding-top:40px;
    margin-top:56px;
  }
  .good-to-know div h5{
    font-size:11px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--ink-soft);
    margin-bottom:8px;
    font-weight:600;
    font-family:'Inter', sans-serif;
  }
  .good-to-know div p{
    font-size:13.5px;
    color:var(--ink-soft);
    line-height:1.6;
  }
  @media (max-width:700px){
    .good-to-know{grid-template-columns:1fr;}
  }

  /* ===== PROCESS ===== */
  .process{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:32px;
  }
  .p-step .num{
    font-family:'Cormorant', serif;
    font-style:italic;
    font-size:15px;
    color:var(--ink-soft);
    margin-bottom:14px;
    display:block;
  }
  .p-step h4{font-size:19px; margin-bottom:10px;}
  .p-step p{font-size:14.5px; color:var(--ink-soft);}

  @media (max-width:980px){
    .tiers{grid-template-columns:repeat(2,1fr);}
    .tier{border-right:none; border-bottom:1px solid var(--line);}
    .tier:nth-child(odd){border-right:1px solid var(--line);}
  }
  @media (max-width:900px){
    .process{grid-template-columns:repeat(2,1fr); row-gap:40px;}
  }
  @media (max-width:640px){
    .tiers{grid-template-columns:1fr;}
    .tier:nth-child(odd){border-right:none;}
  }

  /* ===== ABOUT ===== */
  .about-grid{
    display:grid;
    grid-template-columns:0.9fr 1.1fr;
    gap:64px;
    align-items:center;
  }
  .about-media{
    aspect-ratio:4/5;
    background:linear-gradient(160deg, #EFE7DA, #DFDCD4 80%);
    position:relative;
    overflow:hidden;
  }
  .about-media::before{
    content:"";
    position:absolute; inset:0;
    background-image: repeating-linear-gradient(-45deg, rgba(255,255,255,0.04) 0px, transparent 2px, transparent 6px);
  }
  .about-copy p{color:var(--ink-soft); margin-top:18px; font-size:16px; max-width:52ch;}
  .about-copy h2{font-size:clamp(28px,3.6vw,40px); margin-top:14px;}
  .stat-row{display:flex; gap:40px; margin-top:36px; flex-wrap:wrap;}
  .stat b{font-family:'Cormorant', serif; font-size:30px; display:block; color:var(--ink);}
  .stat span{font-size:12.5px; letter-spacing:0.05em; text-transform:uppercase; color:var(--ink-soft);}

  @media (max-width:820px){
    .about-grid{grid-template-columns:1fr;}
  }

  /* ===== REVIEWS ===== */
  .reviews-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  .review-card{
    background:var(--paper);
    padding:36px 30px;
  }
  .review-card:nth-child(1){border-top:2px solid var(--ink);}
  .review-card:nth-child(2){border-top:2px solid var(--ink);}
  .review-card:nth-child(3){border-top:2px solid var(--ink);}
  .stars{color:var(--ink-soft); font-size:14px; letter-spacing:2px; margin-bottom:16px;}
  .review-card p{
    font-family:'Cormorant', serif;
    font-style:italic;
    font-size:17px;
    line-height:1.5;
    color:var(--ink);
  }
  .review-who{
    margin-top:20px;
    font-size:13px;
    color:var(--ink-soft);
    letter-spacing:0.02em;
  }
  .review-who b{color:var(--ink); font-weight:600;}

  @media (max-width:820px){
    .reviews-grid{grid-template-columns:1fr;}
  }

  /* ===== CONTACT ===== */
  .contact-wrap{
    display:grid;
    grid-template-columns:0.85fr 1.15fr;
    gap:64px;
  }
  .contact-info h2{font-size:clamp(28px,3.6vw,40px);}
  .contact-info p{color:var(--ink-soft); margin-top:16px; max-width:44ch;}
  .contact-list{margin-top:36px; display:flex; flex-direction:column; gap:18px;}
  .contact-list div{display:flex; flex-direction:column; gap:2px;}
  .contact-list span.label{font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft);}
  .contact-list span.val{font-family:'Cormorant', serif; font-size:18px;}

  form{display:flex; flex-direction:column; gap:20px;}
  .form-row{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
  label{
    font-size:11.5px;
    letter-spacing:0.06em;
    text-transform:uppercase;
    color:var(--ink-soft);
    margin-bottom:8px;
    display:block;
  }
  input, select, textarea{
    width:100%;
    background:transparent;
    border:none;
    border-bottom:1px solid var(--line);
    padding:10px 2px;
    font-family:'Inter', sans-serif;
    font-size:15px;
    color:var(--ink);
    outline:none;
    transition:border-color 0.3s ease;
  }
  input:focus, select:focus, textarea:focus{border-color:var(--ink); border-bottom-width:1px;}
  textarea{resize:vertical; min-height:90px;}
  .field{display:flex; flex-direction:column;}

  @media (max-width:820px){
    .contact-wrap{grid-template-columns:1fr;}
    .form-row{grid-template-columns:1fr;}
  }

  /* ===== FOOTER ===== */
  footer{
    border-top:1px solid var(--line);
    padding:50px 0 40px;
    margin:0 var(--frame);
  }
  .foot-top{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    flex-wrap:wrap;
    gap:30px;
    padding-bottom:34px;
  }
  .foot-nav{display:flex; gap:28px; flex-wrap:wrap;}
  .foot-nav a{font-size:13px; color:var(--ink-soft);}
  .foot-nav a:hover{color:var(--ink);}
  .foot-bottom{
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
    font-size:12px; color:var(--ink-soft); padding-top:24px; border-top:1px solid var(--line);
  }

  @media (max-width:760px){
    nav.links{
      position:fixed; top:0; right:0; height:100vh; width:78%;
      background:var(--paper); flex-direction:column;
      justify-content:center; align-items:flex-start;
      padding:40px; gap:28px;
      transform:translateX(100%);
      transition:transform 0.4s ease;
      border-left:1px solid var(--line);
      z-index:180;
    }
    nav.links.open{transform:translateX(0);}
    nav.links a{font-size:18px;}
    .menu-toggle{display:flex;}
    header .btn{display:none;}
    .wrap{padding:0 20px;}
    section{padding:80px 0;}
  }

  
  h1,h2,h3,h4{font-weight:300; letter-spacing:-0.005em;}
  h1{line-height:1.08;}
  h2{line-height:1.14;}
  .eyebrow{font-size:10px; font-weight:500; letter-spacing:0.26em;}
  .section-head p,.hero-sub,.lede{font-weight:300;}
  body{font-weight:300; letter-spacing:0.002em;}
  .btn{font-size:11px; font-weight:500; letter-spacing:0.16em; text-transform:uppercase; padding:15px 30px;}
  nav.links a{font-size:12.5px; font-weight:400; letter-spacing:0.06em;}
  .logo{letter-spacing:0.12em; font-weight:400;}
  label{font-size:10px; letter-spacing:0.16em;}
  .hero-caption{letter-spacing:0.16em; font-size:10.5px;}

  /* ---- multi-page shell ---- */
  .page-head{
    padding:150px 0 0;
  }
  .page-head .wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}
  .page-head h1{
    font-size:clamp(32px, 5vw, 58px);
    line-height:1.06;
    margin-top:14px;
    max-width:18ch;
  }
  .page-head p.lede{
    margin-top:18px;
    color:var(--ink-soft);
    font-size:17px;
    max-width:58ch;
  }
  .page-head .rule{
    height:1px; background:var(--line);
    margin-top:52px;
  }
  nav.links a.is-current{color:var(--ink);}
  nav.links a.is-current::after{width:100%;}

  /* ---- slideshow manual controls ---- */
  .hero-nav{
    position:absolute;
    top:50%; transform:translateY(-50%);
    z-index:4;
    width:46px; height:46px;
    display:flex; align-items:center; justify-content:center;
    border:none; cursor:pointer;
    background:rgba(255,255,255,0.82);
    color:var(--ink);
    font-size:19px; line-height:1;
    transition:background 0.25s ease, opacity 0.25s ease;
    -webkit-tap-highlight-color:transparent;
  }
  .hero-nav:hover{background:#FFFFFF;}
  .hero-nav.prev{left:0;}
  .hero-nav.next{right:0;}
  .hero-nav:focus-visible{outline:2px solid var(--ink); outline-offset:2px;}
  .hero-slides{touch-action:pan-y;}

  @media (max-width:600px){
    .hero-nav{width:40px; height:40px; font-size:17px; background:rgba(255,255,255,0.72);}
    .page-head{padding-top:120px;}
  }

  /* ---- prep tips ---- */
  .tips-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:44px 56px;
  }
  .tip h3{
    font-size:22px;
    font-weight:400;
    margin-bottom:6px;
  }
  .tip .rooms{
    font-size:11px; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--ink-soft); display:block; margin-bottom:12px;
  }
  .tip ul{list-style:none; display:flex; flex-direction:column; gap:9px;}
  .tip li{
    font-size:14.5px; color:var(--ink-soft); line-height:1.55;
    padding-left:18px; position:relative;
  }
  .tip li::before{
    content:""; position:absolute; left:0; top:9px;
    width:7px; height:1px; background:var(--ink-soft);
  }
  .tip-callout{
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:32px 0;
    margin:56px 0;
  }
  .tip-callout p{
    font-family:'Cormorant', serif;
    font-size:clamp(19px, 2.4vw, 26px);
    line-height:1.45;
    max-width:52ch;
  }
  @media (max-width:760px){
    .tips-grid{grid-template-columns:1fr; gap:38px;}
  }

  /* hidden Netlify detection forms must stay hidden */
  form[hidden]{display:none !important;}

  /* ==== ELEV8-EXTRA-START ==== */
  /* ---------- services dropdown ---------- */
  .has-sub{position:relative;}
  .sub-toggle{
    background:none; border:none; cursor:pointer; padding:0 0 3px 0;
    font-family:'Inter',sans-serif; font-size:12.5px; font-weight:400;
    letter-spacing:0.06em; color:var(--ink-soft); display:inline-flex;
    align-items:center; gap:5px; position:relative;
  }
  .sub-toggle::after{
    content:""; position:absolute; left:0; bottom:0; width:0; height:1px;
    background:var(--c-poppy); transition:width 0.3s ease;
  }
  .has-sub:hover .sub-toggle::after,
  .sub-toggle[aria-expanded="true"]::after{width:100%;}
  .sub-toggle .chev{font-size:9px; opacity:0.7; transition:transform 0.25s ease;}
  .sub-toggle[aria-expanded="true"] .chev{transform:rotate(180deg);}
  .submenu{
    position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%) translateY(-6px);
    min-width:268px; background:var(--paper); border:1px solid var(--line);
    padding:10px 0; display:flex; flex-direction:column;
    opacity:0; visibility:hidden; transition:opacity .22s ease, transform .22s ease, visibility .22s;
    z-index:160; box-shadow:0 18px 40px -22px rgba(0,0,0,0.35);
  }
  .has-sub:hover .submenu, .submenu.open{opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);}
  .submenu a{
    padding:9px 22px; font-size:12.5px; letter-spacing:0.03em;
    color:var(--ink-soft); white-space:nowrap;
  }
  .submenu a::after{display:none;}
  .submenu a:hover{color:var(--ink); background:var(--paper-dim);}

  @media (max-width:760px){
    .has-sub{width:100%;}
    .sub-toggle{font-size:18px; color:var(--ink);}
    .submenu{
      position:static; transform:none; opacity:1; visibility:visible;
      border:none; box-shadow:none; background:transparent;
      min-width:0; padding:6px 0 0 14px; display:none;
    }
    .submenu.open{display:flex; transform:none;}
    .has-sub:hover .submenu{opacity:1; visibility:visible;}
    .submenu a{padding:7px 0; font-size:15px;}
  }

  /* ---------- page head band ---------- */
  .page-head{padding:150px 0 0;}
  .page-head .wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}
  .page-head h1{font-size:clamp(32px,5vw,56px); line-height:1.07; margin-top:14px; max-width:19ch;}
  .page-head h1 em{font-style:italic; color:var(--ink-soft);}
  .page-head p.lede{margin-top:18px; color:var(--ink-soft); font-size:17px; max-width:60ch; font-weight:300;}
  .page-head .rule{height:1px; background:var(--line); margin-top:52px;}
  @media (max-width:600px){ .page-head{padding-top:120px;} }

  /* ---------- prose ---------- */
  .prose{max-width:760px;}
  .prose p{font-size:16px; line-height:1.75; color:var(--ink-soft); margin-bottom:18px; font-weight:300;}
  .prose p strong{color:var(--ink); font-weight:500;}
  .prose h2{font-size:clamp(22px,3vw,30px); font-weight:300; margin:44px 0 14px;}
  .prose h3{font-size:19px; font-weight:400; margin:30px 0 10px;}
  .prose ul{margin:0 0 20px 0; padding-left:20px; display:flex; flex-direction:column; gap:9px;}
  .prose li{font-size:15.5px; line-height:1.65; color:var(--ink-soft); font-weight:300;}
  .prose a{color:var(--ink); text-decoration:underline; text-underline-offset:3px;}

  /* ---------- service cards (home) ---------- */
  .svc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
  .svc-card{background:var(--paper); padding:30px 26px; display:flex; flex-direction:column; transition:background .25s ease;}
  .svc-card:hover{background:var(--paper-dim);}
  .svc-card .n{font-size:10px; letter-spacing:0.22em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:10px;}
  .svc-card h3{font-size:21px; font-weight:400; margin-bottom:9px;}
  .svc-card p{font-size:13.5px; line-height:1.6; color:var(--ink-soft); font-weight:300; margin-bottom:18px;}
  .svc-card .go{margin-top:auto; font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink);}
  @media (max-width:860px){ .svc-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .svc-grid{grid-template-columns:1fr;} }

  /* ---------- service page gallery ---------- */
  .svc-gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
  .svc-gallery figure{position:relative; overflow:hidden; aspect-ratio:4/3; background:var(--paper-dim);}
  .svc-gallery img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease;}
  .svc-gallery figure:hover img{transform:scale(1.04);}
  .svc-gallery figcaption{
    position:absolute; left:0; right:0; bottom:0; padding:12px 14px;
    background:linear-gradient(to top, rgba(0,0,0,0.72), rgba(0,0,0,0));
    color:#fff; font-size:11px; letter-spacing:0.08em;
    opacity:0; transform:translateY(6px); transition:opacity .3s ease, transform .3s ease;
  }
  .svc-gallery figure:hover figcaption{opacity:1; transform:translateY(0);}
  @media (max-width:760px){ .svc-gallery{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:460px){ .svc-gallery{grid-template-columns:1fr;} }

  /* ---------- FAQ ---------- */
  .faq{border-top:1px solid var(--line); max-width:820px;}
  .faq details{border-bottom:1px solid var(--line);}
  .faq summary{
    padding:20px 32px 20px 0; cursor:pointer; list-style:none; position:relative;
    font-size:16.5px; font-weight:400; color:var(--ink);
  }
  .faq summary::-webkit-details-marker{display:none;}
  .faq summary::after{
    content:"+"; position:absolute; right:4px; top:19px;
    font-size:19px; color:var(--ink-soft); transition:transform .25s ease;
  }
  .faq details[open] summary::after{content:"\2013";}
  .faq details p{padding:0 0 22px; font-size:15px; line-height:1.7; color:var(--ink-soft); font-weight:300; max-width:68ch;}

  /* ---------- areas ---------- */
  .area-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:34px 44px;}
  .area h3{font-size:19px; font-weight:400; margin-bottom:8px;}
  .area p{font-size:14px; line-height:1.65; color:var(--ink-soft); font-weight:300;}
  .area p a{color:var(--ink); text-decoration:underline; text-underline-offset:2px;}
  @media (max-width:860px){ .area-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .area-grid{grid-template-columns:1fr;} }

  /* ---------- blog ---------- */
  .post-list{border-top:1px solid var(--line);}
  .post-item{display:block; padding:30px 0; border-bottom:1px solid var(--line); transition:opacity .25s ease;}
  .post-item:hover{opacity:0.68;}
  .post-item .date{font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-soft);}
  .post-item h2{font-size:clamp(21px,2.6vw,27px); font-weight:300; margin:8px 0 8px;}
  .post-item p{font-size:15px; line-height:1.65; color:var(--ink-soft); font-weight:300; max-width:68ch;}
  .post-meta{
    font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft);
    padding-bottom:24px; border-bottom:1px solid var(--line); margin-bottom:38px;
  }

  /* ---------- shared blocks ---------- */
  .band{background:var(--paper-dim); padding:80px 0; margin-top:80px;}
  .cta-band{border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:34px 0; margin:56px 0;}
  .cta-band p{font-family:'Cormorant',serif; font-size:clamp(19px,2.4vw,26px); line-height:1.45; max-width:54ch;}
  .breadcrumb{font-size:11.5px; letter-spacing:0.08em; color:var(--ink-soft); margin-bottom:6px;}
  .breadcrumb a{color:var(--ink-soft); text-decoration:none;}
  .breadcrumb a:hover{color:var(--ink);}

  /* ---------- footer contact ---------- */
  .foot-contact{
    display:flex; flex-wrap:wrap; gap:10px 28px; padding:22px 0 0;
    font-size:13px; color:var(--ink-soft);
  }
  .foot-contact a{color:var(--ink-soft);}
  .foot-contact a:hover{color:var(--ink);}
  .foot-contact .sep{opacity:0.4;}
  @media (max-width:600px){ .foot-contact{flex-direction:column; gap:8px;} .foot-contact .sep{display:none;} }


  /* longer H1 needs more measure than the original two-word headline */
  .hero-copy h1{max-width:21ch; font-size:clamp(34px, 5.2vw, 66px);}
  @media (max-width:600px){ .hero-copy h1{max-width:16ch; font-size:clamp(30px,8vw,40px);} }

  /* hidden Netlify detection forms must stay hidden */
  form[hidden]{display:none !important;}

  .breadcrumb{margin-bottom:18px;}
  .page-head .eyebrow.line{display:block;}
  /* ==== ELEV8-EXTRA-END ==== */


  /* ==== ELEV8-EXTRA-START ==== */
  /* ---------- services dropdown ---------- */
  .has-sub{position:relative;}
  .sub-toggle{
    background:none; border:none; cursor:pointer; padding:0 0 3px 0;
    font-family:'Inter',sans-serif; font-size:12.5px; font-weight:400;
    letter-spacing:0.06em; color:var(--ink-soft); display:inline-flex;
    align-items:center; gap:5px; position:relative;
  }
  .sub-toggle::after{
    content:""; position:absolute; left:0; bottom:0; width:0; height:1px;
    background:var(--c-poppy); transition:width 0.3s ease;
  }
  .has-sub:hover .sub-toggle::after,
  .sub-toggle[aria-expanded="true"]::after{width:100%;}
  .sub-toggle .chev{font-size:9px; opacity:0.7; transition:transform 0.25s ease;}
  .sub-toggle[aria-expanded="true"] .chev{transform:rotate(180deg);}
  .submenu{
    position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%) translateY(-6px);
    min-width:268px; background:var(--paper); border:1px solid var(--line);
    padding:10px 0; display:flex; flex-direction:column;
    opacity:0; visibility:hidden; transition:opacity .22s ease, transform .22s ease, visibility .22s;
    z-index:160; box-shadow:0 18px 40px -22px rgba(0,0,0,0.35);
  }
  .has-sub:hover .submenu, .submenu.open{opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);}
  .submenu a{
    padding:9px 22px; font-size:12.5px; letter-spacing:0.03em;
    color:var(--ink-soft); white-space:nowrap;
  }
  .submenu a::after{display:none;}
  .submenu a:hover{color:var(--ink); background:var(--paper-dim);}

  @media (max-width:760px){
    .has-sub{width:100%;}
    .sub-toggle{font-size:18px; color:var(--ink);}
    .submenu{
      position:static; transform:none; opacity:1; visibility:visible;
      border:none; box-shadow:none; background:transparent;
      min-width:0; padding:6px 0 0 14px; display:none;
    }
    .submenu.open{display:flex; transform:none;}
    .has-sub:hover .submenu{opacity:1; visibility:visible;}
    .submenu a{padding:7px 0; font-size:15px;}
  }

  /* ---------- page head band ---------- */
  .page-head{padding:150px 0 0;}
  .page-head .wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}
  .page-head h1{font-size:clamp(32px,5vw,56px); line-height:1.07; margin-top:14px; max-width:19ch;}
  .page-head h1 em{font-style:italic; color:var(--ink-soft);}
  .page-head p.lede{margin-top:18px; color:var(--ink-soft); font-size:17px; max-width:60ch; font-weight:300;}
  .page-head .rule{height:1px; background:var(--line); margin-top:52px;}
  @media (max-width:600px){ .page-head{padding-top:120px;} }

  /* ---------- prose ---------- */
  .prose{max-width:760px;}
  .prose p{font-size:16px; line-height:1.75; color:var(--ink-soft); margin-bottom:18px; font-weight:300;}
  .prose p strong{color:var(--ink); font-weight:500;}
  .prose h2{font-size:clamp(22px,3vw,30px); font-weight:300; margin:44px 0 14px;}
  .prose h3{font-size:19px; font-weight:400; margin:30px 0 10px;}
  .prose ul{margin:0 0 20px 0; padding-left:20px; display:flex; flex-direction:column; gap:9px;}
  .prose li{font-size:15.5px; line-height:1.65; color:var(--ink-soft); font-weight:300;}
  .prose a{color:var(--ink); text-decoration:underline; text-underline-offset:3px;}

  /* ---------- service cards (home) ---------- */
  .svc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
  .svc-card{background:var(--paper); padding:30px 26px; display:flex; flex-direction:column; transition:background .25s ease;}
  .svc-card:hover{background:var(--paper-dim);}
  .svc-card .n{font-size:10px; letter-spacing:0.22em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:10px;}
  .svc-card h3{font-size:21px; font-weight:400; margin-bottom:9px;}
  .svc-card p{font-size:13.5px; line-height:1.6; color:var(--ink-soft); font-weight:300; margin-bottom:18px;}
  .svc-card .go{margin-top:auto; font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink);}
  @media (max-width:860px){ .svc-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .svc-grid{grid-template-columns:1fr;} }

  /* ---------- service page gallery ---------- */
  .svc-gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
  .svc-gallery figure{position:relative; overflow:hidden; aspect-ratio:4/3; background:var(--paper-dim);}
  .svc-gallery img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease;}
  .svc-gallery figure:hover img{transform:scale(1.04);}
  .svc-gallery figcaption{
    position:absolute; left:0; right:0; bottom:0; padding:12px 14px;
    background:linear-gradient(to top, rgba(0,0,0,0.72), rgba(0,0,0,0));
    color:#fff; font-size:11px; letter-spacing:0.08em;
    opacity:0; transform:translateY(6px); transition:opacity .3s ease, transform .3s ease;
  }
  .svc-gallery figure:hover figcaption{opacity:1; transform:translateY(0);}
  @media (max-width:760px){ .svc-gallery{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:460px){ .svc-gallery{grid-template-columns:1fr;} }

  /* ---------- FAQ ---------- */
  .faq{border-top:1px solid var(--line); max-width:820px;}
  .faq details{border-bottom:1px solid var(--line);}
  .faq summary{
    padding:20px 32px 20px 0; cursor:pointer; list-style:none; position:relative;
    font-size:16.5px; font-weight:400; color:var(--ink);
  }
  .faq summary::-webkit-details-marker{display:none;}
  .faq summary::after{
    content:"+"; position:absolute; right:4px; top:19px;
    font-size:19px; color:var(--ink-soft); transition:transform .25s ease;
  }
  .faq details[open] summary::after{content:"\2013";}
  .faq details p{padding:0 0 22px; font-size:15px; line-height:1.7; color:var(--ink-soft); font-weight:300; max-width:68ch;}

  /* ---------- areas ---------- */
  .area-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:34px 44px;}
  .area h3{font-size:19px; font-weight:400; margin-bottom:8px;}
  .area p{font-size:14px; line-height:1.65; color:var(--ink-soft); font-weight:300;}
  .area p a{color:var(--ink); text-decoration:underline; text-underline-offset:2px;}
  @media (max-width:860px){ .area-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .area-grid{grid-template-columns:1fr;} }

  /* ---------- blog ---------- */
  .post-list{border-top:1px solid var(--line);}
  .post-item{display:block; padding:30px 0; border-bottom:1px solid var(--line); transition:opacity .25s ease;}
  .post-item:hover{opacity:0.68;}
  .post-item .date{font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-soft);}
  .post-item h2{font-size:clamp(21px,2.6vw,27px); font-weight:300; margin:8px 0 8px;}
  .post-item p{font-size:15px; line-height:1.65; color:var(--ink-soft); font-weight:300; max-width:68ch;}
  .post-meta{
    font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft);
    padding-bottom:24px; border-bottom:1px solid var(--line); margin-bottom:38px;
  }

  /* ---------- shared blocks ---------- */
  .band{background:var(--paper-dim); padding:80px 0; margin-top:80px;}
  .cta-band{border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:34px 0; margin:56px 0;}
  .cta-band p{font-family:'Cormorant',serif; font-size:clamp(19px,2.4vw,26px); line-height:1.45; max-width:54ch;}
  .breadcrumb{font-size:11.5px; letter-spacing:0.08em; color:var(--ink-soft); margin-bottom:6px;}
  .breadcrumb a{color:var(--ink-soft); text-decoration:none;}
  .breadcrumb a:hover{color:var(--ink);}

  /* ---------- footer contact ---------- */
  .foot-contact{
    display:flex; flex-wrap:wrap; gap:10px 28px; padding:22px 0 0;
    font-size:13px; color:var(--ink-soft);
  }
  .foot-contact a{color:var(--ink-soft);}
  .foot-contact a:hover{color:var(--ink);}
  .foot-contact .sep{opacity:0.4;}
  @media (max-width:600px){ .foot-contact{flex-direction:column; gap:8px;} .foot-contact .sep{display:none;} }


  /* longer H1 needs more measure than the original two-word headline */
  .hero-copy h1{max-width:21ch; font-size:clamp(34px, 5.2vw, 66px);}
  @media (max-width:600px){ .hero-copy h1{max-width:16ch; font-size:clamp(30px,8vw,40px);} }

  /* hidden Netlify detection forms must stay hidden */
  form[hidden]{display:none !important;}
  /* ==== ELEV8-EXTRA-END ==== */
