/* Legends Renovations
   Dark and warm: midnight navy and brass from the LR seal, with plaster and
   linen for the light sections and walnut for the closing band. Headings in
   Cormorant Garamond (italic accents used sparingly), body and labels in Jost.
   Ornament is architectural and restrained: brass hairlines, double frames that
   echo the seal, a house elevation drawn in fine line, and numbered marks. */

:root{
  --midnight:#0A1730; --navy:#0E1E3D; --navy-2:#162a52;
  --brass:#C8A24B; --brass-soft:#E2C98A; --brass-ink:#6B531A;
  --walnut:#4A2F1C;
  --plaster:#EDE4D3; --linen:#F5EFE4;
  --ink:#1D1A16; --ink-mute:#574d40;
  --on-dark:#EFE7D8; --on-dark-mute:rgba(239,231,216,.76);
  --rule:rgba(29,26,22,.14); --rule-dark:rgba(200,162,75,.28);
  --maxw:1200px;
  --serif:"Cormorant Garamond","Cormorant",Georgia,"Times New Roman",serif;
  --sans:"Jost","Futura","Avenir Next",-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--midnight)}
body{
  margin:0;background:var(--plaster);color:var(--ink);
  font-family:var(--sans);font-weight:400;font-size:1.0625rem;line-height:1.7;-webkit-font-smoothing:antialiased;
}
/* paper grain over everything, very faint */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:200;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
img,svg{max-width:100%}
a{color:inherit}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
@media(max-width:560px){.wrap{padding:0 20px}}
h1,h2,h3{font-family:var(--serif);font-weight:600;color:var(--navy);margin:0;line-height:1.08;letter-spacing:-.005em;text-wrap:balance}
h1{font-weight:700}
h1 em,h2 em{font-style:italic;font-weight:500;color:var(--brass)}
.eyebrow,.mark{
  display:flex;align-items:center;gap:14px;margin:0 0 18px;
  font-family:var(--sans);font-weight:500;font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;color:var(--brass-ink);
}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--brass)}
.mark{font-family:var(--serif);font-style:italic;font-size:1.1rem;letter-spacing:.06em;text-transform:none;color:var(--brass-ink)}
.mark::after{content:"";flex:0 0 64px;height:1px;background:var(--brass)}
.dark .eyebrow,.dark .mark{color:var(--brass)}

/* ---------- header: always dark, double brass hairline under it ---------- */
header{position:sticky;top:0;z-index:40;background:var(--midnight);border-bottom:1px solid var(--rule-dark);padding-top:env(safe-area-inset-top)}
header::after{content:"";position:absolute;left:0;right:0;bottom:3px;height:1px;background:rgba(200,162,75,.14)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:20px;height:84px}
.logo img{height:50px;width:auto;display:block}
#siteNav{display:flex;align-items:center;gap:26px}
#siteNav a{color:var(--on-dark);text-decoration:none;font-weight:400;font-size:.95rem;letter-spacing:.04em;padding:6px 0;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
#siteNav a:hover,#siteNav a[aria-current="page"]{color:var(--brass-soft);border-bottom-color:var(--brass)}
#siteNav a.tel{border:1px solid var(--brass);padding:8px 16px;white-space:nowrap;color:var(--brass-soft);letter-spacing:.08em}
#siteNav a.tel:hover{background:var(--brass);color:var(--midnight)}
.langsw{display:inline-flex;gap:0;border:1px solid var(--rule-dark)}
#siteNav .langsw a{font-size:.74rem;letter-spacing:.16em;padding:5px 10px;border:0;color:var(--on-dark-mute)}
#siteNav .langsw a[aria-current="true"]{background:var(--brass);color:var(--midnight)}
.menu-btn{display:none;background:none;border:0;cursor:pointer;padding:10px;margin-right:-10px}
.menu-btn span{display:block;width:26px;height:1.5px;background:var(--brass-soft);margin:6px 0;transition:transform .25s,opacity .2s}
.menu-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-btn[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
@media(max-width:1040px){
  .menu-btn{display:block}
  .bar{height:70px}
  .logo img{height:40px}
  #siteNav{
    position:absolute;top:70px;left:0;right:0;background:var(--midnight);
    flex-direction:column;align-items:stretch;gap:0;border-bottom:1px solid var(--rule-dark);
    max-height:0;overflow:hidden;transition:max-height .35s ease;
  }
  #siteNav.open{max-height:560px}
  #siteNav a{padding:16px 24px;border-bottom:1px solid rgba(200,162,75,.12);font-size:1.05rem}
  #siteNav a:hover,#siteNav a[aria-current="page"]{border-bottom-color:rgba(200,162,75,.12)}
  #siteNav a.tel{margin:16px 24px 0;text-align:center}
  .langsw{margin:16px 24px 20px;align-self:flex-start}
}

/* ---------- buttons ---------- */
.cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.cta{
  display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:12px 28px;
  background:var(--brass);color:var(--midnight);text-decoration:none;
  font-family:var(--sans);font-weight:500;font-size:.86rem;letter-spacing:.16em;text-transform:uppercase;
  border:1px solid var(--brass);border-radius:1px;transition:background .25s,color .25s,transform .25s;
}
.cta:hover{background:var(--brass-soft);transform:translateY(-1px)}
.cta.ghost{background:transparent;color:var(--navy);border-color:var(--navy)}
.cta.ghost:hover{background:var(--navy);color:var(--linen)}
.dark .cta.ghost,.hero .cta.ghost,.page-head .cta.ghost,.land-head .cta.ghost{color:var(--on-dark);border-color:rgba(239,231,216,.55)}
.dark .cta.ghost:hover,.hero .cta.ghost:hover,.page-head .cta.ghost:hover,.land-head .cta.ghost:hover{background:var(--on-dark);color:var(--midnight)}
.cta.gold{background:var(--brass);border-color:var(--brass);color:var(--midnight)}

/* ---------- home hero: full bleed, dark, layered ----------
   --hero-img is set inline when public/hero/home.jpg exists. Without it, the
   fallback is the brass elevation drawing over a warm lamp glow. */
.hero{
  position:relative;overflow:hidden;color:var(--on-dark);
  min-height:min(90vh,880px);display:flex;flex-direction:column;justify-content:center;padding:96px 0 0;
  background:
    linear-gradient(90deg,rgba(10,23,48,.97) 0%,rgba(10,23,48,.84) 44%,rgba(10,23,48,.3) 100%),
    var(--hero-img,none) center/cover no-repeat,
    radial-gradient(55% 65% at 76% 40%,rgba(226,170,92,.30),transparent 70%),
    radial-gradient(40% 50% at 12% 100%,rgba(74,47,28,.6),transparent 70%),
    var(--midnight);
}
.hero.has-img .hero-art{display:none}
/* with a photo: keep the left dark for the headline, let the right side glow */
.hero.has-img{background:
    linear-gradient(90deg,rgba(10,23,48,.95) 0%,rgba(10,23,48,.72) 36%,rgba(10,23,48,.12) 72%,rgba(10,23,48,0) 100%),
    var(--hero-img) 70% center/cover no-repeat,var(--midnight)}
@media(max-width:760px){.hero.has-img{background:
    linear-gradient(180deg,rgba(10,23,48,.55) 0%,rgba(10,23,48,.88) 55%,rgba(10,23,48,.96) 100%),
    var(--hero-img) 68% center/cover no-repeat,var(--midnight)}}
.hero-art{position:absolute;right:-1%;bottom:96px;width:min(760px,60vw);height:auto;opacity:.55;pointer-events:none}
.hero::before{ /* double brass frame, inset like the seal rings */
  content:"";position:absolute;inset:22px;border:1px solid rgba(200,162,75,.34);pointer-events:none;
  outline:1px solid rgba(200,162,75,.14);outline-offset:-8px;
}
.hero-grid{position:relative;z-index:1;width:100%;flex:1;display:flex;align-items:center}
.hero-copy{max-width:740px;padding-bottom:56px}
.hero .eyebrow{color:var(--brass)}
.hero h1{color:var(--linen);font-size:clamp(3rem,7.2vw,6.4rem);line-height:.96;letter-spacing:-.015em}
.hero h1 em{display:block;color:var(--brass-soft)}
.lede{margin:30px 0 0;font-size:1.2rem;line-height:1.65;color:var(--on-dark-mute);max-width:54ch;font-weight:300}
.hero-points-wrap{position:relative;z-index:1}
.hero-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--rule-dark);margin:0 0 36px;padding:0}
.hero-points li{list-style:none;padding:22px 24px 4px 0;display:flex;gap:14px;align-items:baseline;color:var(--on-dark)}
.hero-points li+li{padding-left:24px;border-left:1px solid var(--rule-dark)}
.hero-points span{font-family:var(--serif);font-style:italic;color:var(--brass);font-size:1.5rem;line-height:1}
.hero-points strong{font-weight:400;letter-spacing:.03em}
@media(max-width:900px){
  .hero{min-height:auto;padding:64px 0 0;display:block}
  .hero-art{width:120vw;right:-40vw;bottom:auto;top:24px;opacity:.2}
  .hero::before{inset:10px;outline-offset:-6px}
  .hero-copy{padding-bottom:40px}
  .hero-points{grid-template-columns:1fr;margin-bottom:28px}
  .hero-points li,.hero-points li+li{padding:14px 0;border-left:0;border-top:1px solid var(--rule-dark)}
  .hero-points li:first-child{border-top:0}
}

/* ---------- inner page heads: the same dark world, smaller ---------- */
.page-head,.land-head{
  position:relative;overflow:hidden;color:var(--on-dark);padding:76px 0 68px;
  background:
    url("/brand/elevation.svg") right -40px bottom -60px/600px auto no-repeat,
    radial-gradient(50% 80% at 85% 20%,rgba(226,170,92,.18),transparent 70%),
    linear-gradient(rgba(200,162,75,.045) 1px,transparent 1px) 0 0/100% 32px,
    linear-gradient(90deg,rgba(200,162,75,.045) 1px,transparent 1px) 0 0/32px 100%,
    var(--navy);
  border-bottom:1px solid var(--brass);
}
.page-head::after,.land-head::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:1px;background:rgba(200,162,75,.35)}
.page-head .wrap,.land-head .wrap{position:relative;z-index:1}
.page-head h1,.land-head h1{color:var(--linen);font-size:clamp(2.4rem,5vw,4.1rem);max-width:20ch}
.page-head p:not(.eyebrow):not(.pub),.land-head .lede{margin:22px 0 0;color:var(--on-dark-mute);font-size:1.15rem;max-width:58ch;font-weight:300}
.page-head .eyebrow,.land-head .eyebrow{color:var(--brass)}
.page-head .pub{margin:20px 0 0;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-soft)}
.page-head .cta-row{margin-top:32px}
.crumbs ol{list-style:none;margin:0 0 28px;padding:0;display:flex;flex-wrap:wrap;gap:8px;font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark-mute)}
.crumbs li+li::before{content:"/";margin-right:8px;color:var(--brass)}
.crumbs a{color:var(--brass-soft);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
@media(max-width:700px){
  .page-head,.land-head{padding:52px 0 46px;background-size:380px auto,auto,100% 32px,32px 100%,auto;background-position:right -150px bottom -40px,0 0,0 0,0 0,0 0}
}

/* ---------- sections ---------- */
section{padding:104px 0;scroll-margin-top:84px}
@media(max-width:700px){section{padding:68px 0}}
.white,.linen{background:var(--linen)}
.sand{background:var(--plaster)}
.dark{background:var(--navy);color:var(--on-dark)}
.dark h2,.dark h3{color:var(--linen)}
.dark p{color:var(--on-dark-mute)}
.sec-head{max-width:64ch;margin-bottom:56px}
.sec-head h2{font-size:clamp(2.2rem,4.4vw,3.5rem)}
.sec-head p{color:var(--ink-mute);margin:20px 0 0;font-size:1.12rem;font-weight:300}
.dark .sec-head p{color:var(--on-dark-mute)}

/* cards: linen panels with brass corner brackets */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
@media(max-width:900px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.cards{grid-template-columns:1fr}}
.card{position:relative;background:var(--linen);padding:36px 30px 32px;border:1px solid var(--rule)}
.card::before,.card::after{content:"";position:absolute;width:18px;height:18px;border:0 solid var(--brass);transition:width .35s,height .35s}
.card::before{top:-1px;left:-1px;border-top-width:2px;border-left-width:2px}
.card::after{bottom:-1px;right:-1px;border-bottom-width:2px;border-right-width:2px}
.card h3{font-size:1.7rem;margin-bottom:12px}
.card p{margin:0;color:var(--ink-mute)}
.white .card,.linen .card{background:var(--plaster)}
.card .no{display:block;font-family:var(--serif);font-style:italic;color:var(--brass-ink);font-size:1rem;margin-bottom:14px}
.link-card{display:flex;flex-direction:column;text-decoration:none;transition:border-color .3s,transform .3s}
.link-card:hover{border-color:rgba(200,162,75,.6);transform:translateY(-3px)}
.link-card:hover::before,.link-card:hover::after{width:46px;height:46px}
.link-card p{flex:1}
.link-card .more{margin-top:24px;font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass-ink);font-weight:500}
.cards.four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1000px){.cards.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.cards.four{grid-template-columns:1fr}}

/* the "why" band: dark, columns split by brass hairlines, roman numerals */
.why{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--rule-dark);border-bottom:1px solid var(--rule-dark)}
.why.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.why article{padding:38px 30px 42px;border-left:1px solid var(--rule-dark)}
.why article:first-child{border-left:0;padding-left:0}
.why .num{display:block;font-family:var(--serif);font-style:italic;font-size:2.6rem;color:var(--brass);line-height:1;margin-bottom:20px}
.why h3{font-size:1.55rem;margin-bottom:12px}
@media(max-width:1000px){
  .why,.why.three{grid-template-columns:repeat(2,minmax(0,1fr))}
  .why article:nth-child(odd){border-left:0;padding-left:0}
  .why article:nth-child(n+3){border-top:1px solid var(--rule-dark)}
}
@media(max-width:600px){.why,.why.three{grid-template-columns:1fr}.why article{border-left:0;padding-left:0;border-top:1px solid var(--rule-dark)}.why article:first-child{border-top:0}}

/* process steps */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));counter-reset:s}
.steps.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.step{position:relative;padding:4px 26px 4px 0}
.step + .step{padding-left:26px;border-left:1px solid var(--rule)}
.step span{display:block;font-family:var(--serif);font-style:italic;font-size:1.1rem;color:var(--brass-ink);margin-bottom:12px}
.step span::before{counter-increment:s;content:counter(s,upper-roman);display:block;font-style:normal;font-weight:600;font-size:3rem;line-height:1;color:var(--brass);margin-bottom:6px}
.step h3{font-size:1.65rem;margin-bottom:10px}
.step p{margin:0;color:var(--ink-mute)}
@media(max-width:1000px){.steps.four{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}.steps.four .step:nth-child(3){border-left:0;padding-left:0}}
@media(max-width:600px){.steps,.steps.four{grid-template-columns:1fr;row-gap:0}.step,.step+.step,.steps.four .step{border-left:0;padding:26px 0;border-top:1px solid var(--rule)}}
.more-link{margin:44px 0 0}
.more-link a,.side-box a{color:var(--brass-ink);font-weight:500;letter-spacing:.06em}
.dark .more-link a{color:var(--brass-soft)}

/* service area */
.area-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:64px;align-items:center}
.area-grid .sec-head{margin:0}
@media(max-width:860px){.area-grid{grid-template-columns:1fr;gap:32px}}
.areas{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px}
.areas a{display:inline-block;padding:10px 20px;border:1px solid var(--rule-dark);color:var(--linen);text-decoration:none;font-family:var(--serif);font-size:1.35rem;transition:background .25s,color .25s,border-color .25s}
.areas a:hover{background:var(--brass);color:var(--midnight);border-color:var(--brass)}

/* closing call to action: walnut, framed, with the seal */
section.closing{padding-top:0;padding-bottom:104px}
@media(max-width:700px){section.closing{padding-bottom:68px}}
.band-in{
  position:relative;color:var(--on-dark);padding:68px 64px;
  background:radial-gradient(70% 120% at 100% 0%,rgba(226,170,92,.22),transparent 60%),linear-gradient(135deg,var(--walnut),#2b1a0e);
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:36px;align-items:center;
}
.band-in::before{content:"";position:absolute;inset:12px;border:1px solid rgba(200,162,75,.45);pointer-events:none}
.band-in::after{content:"";position:absolute;right:30px;bottom:-30px;width:190px;height:190px;background:url("/brand/seal-gold.svg") center/contain no-repeat;opacity:.1;pointer-events:none}
.band-in h2{color:var(--linen);font-size:clamp(2rem,3.6vw,3.1rem)}
.band-in p{margin:14px 0 0;color:var(--on-dark-mute);font-weight:300;max-width:52ch}
.band-in a{
  position:relative;z-index:1;display:inline-flex;align-items:center;min-height:54px;padding:12px 30px;
  background:var(--brass);color:var(--midnight);text-decoration:none;white-space:nowrap;
  font-weight:500;font-size:.86rem;letter-spacing:.16em;text-transform:uppercase;transition:background .25s;
}
.band-in a:hover{background:var(--brass-soft)}
@media(max-width:760px){.band-in{grid-template-columns:1fr;padding:46px 28px}.band-in::after{width:130px;height:130px}.band-in a{justify-self:start}}

/* ---------- two-column content pages ---------- */
.two-col{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:72px;padding-block:88px}
@media(max-width:960px){.two-col{grid-template-columns:1fr;gap:44px;padding-block:56px}}
.prose{max-width:72ch}
.prose h2{font-size:clamp(1.75rem,2.8vw,2.35rem);margin:56px 0 14px;padding-top:24px;border-top:1px solid var(--rule);position:relative}
.prose h2::before{content:"";position:absolute;left:0;top:-1px;width:56px;height:2px;background:var(--brass)}
.prose > h2:first-child{margin-top:0}
.prose p{margin:0 0 16px}
.prose ul{margin:0 0 16px;padding-left:1.2em}
.prose li{margin:6px 0}
.prose li::marker{color:var(--brass)}
.narrow-prose{max-width:820px;padding-block:88px}
.ticks{list-style:none;padding:0!important;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--rule)}
.ticks li{margin:0;padding:15px 14px 15px 34px;position:relative;border-bottom:1px solid var(--rule)}
.ticks li:nth-child(odd){border-right:1px solid var(--rule)}
.ticks li:nth-child(even){padding-left:48px}
.ticks li::before{content:"";position:absolute;left:8px;top:25px;width:9px;height:9px;border:1px solid var(--brass);transform:rotate(45deg)}
.ticks li:nth-child(even)::before{left:22px}
@media(max-width:600px){.ticks{grid-template-columns:1fr}.ticks li:nth-child(odd){border-right:0}.ticks li:nth-child(even){padding-left:34px}.ticks li:nth-child(even)::before{left:8px}}
.faqs{border-top:1px solid var(--rule);margin-bottom:36px}
.faqs details{border-bottom:1px solid var(--rule);padding:20px 0}
.faqs summary{cursor:pointer;font-family:var(--serif);font-weight:600;font-size:1.4rem;color:var(--navy);list-style:none;display:flex;justify-content:space-between;gap:20px;line-height:1.25}
.faqs summary::-webkit-details-marker{display:none}
.faqs summary::after{content:"+";color:var(--brass);font-family:var(--sans);font-weight:300;font-size:1.7rem;line-height:1;transition:transform .3s}
.faqs details[open] summary::after{transform:rotate(45deg)}
.faqs details p{margin:12px 0 0;color:var(--ink-mute);max-width:66ch}
.side{display:flex;flex-direction:column;gap:22px}
.side-box{position:relative;background:var(--linen);padding:32px 28px;border:1px solid var(--rule)}
.side-box::before{content:"";position:absolute;inset:6px;border:1px solid rgba(200,162,75,.35);pointer-events:none}
.side-box > *{position:relative}
.side-box h2{font-size:1.5rem;margin-bottom:12px}
.side-box p{margin:0 0 14px;color:var(--ink-mute)}
.side-links{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.side-links a{display:inline-block;border:1px solid var(--rule);padding:6px 12px;font-size:.88rem;text-decoration:none;color:var(--navy);letter-spacing:.03em;transition:border-color .2s,background .2s}
.side-links a:hover{border-color:var(--brass);background:var(--plaster)}
.side-box.navy{background:var(--navy);border-color:var(--navy)}
.side-box.navy h2{color:var(--linen)}
.side-box.navy p{color:var(--on-dark-mute)}
.side-box.navy .cta.gold{color:var(--midnight);letter-spacing:.14em}
.psteps{list-style:none;margin:0;padding:0;counter-reset:p}
.pstep{display:grid;grid-template-columns:200px minmax(0,1fr);column-gap:40px;padding:44px 0;border-top:1px solid var(--rule)}
.pstep:last-child{border-bottom:1px solid var(--rule)}
.pstep span{grid-row:1 / span 4;font-family:var(--serif);font-style:italic;font-size:1.2rem;color:var(--brass-ink)}
.pstep span::before{counter-increment:p;content:counter(p,upper-roman);display:block;font-style:normal;font-weight:600;font-size:4rem;line-height:1;color:var(--brass);margin-bottom:8px}
.pstep h2{font-size:2.1rem;margin-bottom:10px}
.pstep p{margin:0 0 12px;color:var(--ink-mute);max-width:64ch}
.pstep ul{margin:0;padding-left:1.2em}
.pstep li::marker{color:var(--brass)}
@media(max-width:700px){.pstep{grid-template-columns:1fr}.pstep span{grid-row:auto;margin-bottom:10px}}

/* ---------- contact page ---------- */
.cgrid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr);gap:48px;padding-block:72px 104px}
@media(max-width:900px){.cgrid{grid-template-columns:minmax(0,1fr);gap:32px;padding-block:40px 68px}}
form{position:relative;background:var(--linen);padding:46px 42px;border:1px solid var(--rule)}
form::before{content:"";position:absolute;inset:7px;border:1px solid rgba(200,162,75,.35);pointer-events:none}
@media(max-width:560px){form{padding:34px 22px}}
form h2{font-size:2.1rem;margin-bottom:6px}
.form-note{color:var(--ink-mute);margin:0 0 28px}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:560px){.f2{grid-template-columns:1fr}}
.field{position:relative;margin-bottom:18px}
.field label{display:block;font-weight:500;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--navy);margin-bottom:8px}
.field .req{color:var(--brass-ink)}
input,select,textarea{
  width:100%;font:inherit;font-size:1rem;color:var(--ink);background:var(--plaster);
  border:1px solid rgba(29,26,22,.22);border-radius:0;padding:13px 14px;transition:border-color .2s,box-shadow .2s,background .2s;
}
textarea{min-height:150px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brass);background:#fbf8f1;box-shadow:0 0 0 3px rgba(200,162,75,.28)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
button.send{
  position:relative;z-index:1;background:var(--navy);color:var(--linen);border:1px solid var(--navy);cursor:pointer;min-height:54px;padding:12px 34px;
  font-family:var(--sans);font-weight:500;font-size:.86rem;letter-spacing:.16em;text-transform:uppercase;transition:background .25s,color .25s;
}
button.send:hover:not(:disabled){background:var(--brass);border-color:var(--brass);color:var(--midnight)}
button.send:disabled{opacity:.55;cursor:not-allowed}
.msg{position:relative;margin-top:16px;padding:13px 15px;display:none}
.msg.ok{display:block;background:#e9f1e5;border:1px solid #b9cfb2;color:#2f5227}
.msg.bad{display:block;background:#f7e9e5;border:1px solid #ddb5ac;color:#7a3325}
.form-consent{position:relative;z-index:1;font-size:.88rem;color:var(--ink-mute);margin:16px 0 0;line-height:1.55}
.form-consent a{color:var(--brass-ink)}
.panel{background:var(--navy);color:var(--on-dark);padding:42px 36px;align-self:start;position:relative}
.panel::before{content:"";position:absolute;inset:7px;border:1px solid var(--rule-dark);pointer-events:none}
.panel h2{font-size:1.9rem;margin-bottom:24px;color:var(--linen)}
.item{padding:0 0 20px;margin-bottom:20px;border-bottom:1px solid var(--rule-dark)}
.item:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}
.item span{display:block;font-family:var(--serif);font-style:italic;font-size:1.2rem;color:var(--brass);margin-bottom:4px}
.item p{margin:0;color:var(--on-dark-mute)}

/* ---------- offline landing pages (/sign, /neighbors): phone first ---------- */
.narrow{max-width:780px}
.land-head{padding:56px 0 60px}
.land-points{padding:60px 0;background:var(--linen)}
.land-h2{font-size:2.1rem;margin-bottom:24px}
.points{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.points li{padding:22px 0 22px 28px;border-bottom:1px solid var(--rule);position:relative}
.points li::before{content:"";position:absolute;left:2px;top:32px;width:9px;height:9px;border:1px solid var(--brass);transform:rotate(45deg)}
.points h3{font-size:1.5rem;margin-bottom:6px}
.points p{margin:0;color:var(--ink-mute)}
.land-close{padding-top:60px}
@media(max-width:560px){
  .land-head{padding:40px 0 44px}
  .cta-row.stack{flex-direction:column;margin-top:26px}
  .cta-row.stack .cta{width:100%;min-height:58px;font-size:.95rem}
}

/* ---------- legal pages ---------- */
.legal{max-width:800px;padding-top:60px;padding-bottom:96px}
.legal h2{font-size:1.8rem;margin:44px 0 10px}
.legal h2:first-child{margin-top:0}
.legal p,.legal li{line-height:1.75}
.legal p{margin:0 0 12px}
.legal ul{margin:0 0 12px;padding-left:1.3em}
.legal li::marker{color:var(--brass)}
.legal a{color:var(--brass-ink)}

/* ---------- footer ---------- */
footer{position:relative;background:var(--midnight);color:var(--on-dark-mute);padding:84px 0 0;font-size:.95rem;border-top:1px solid var(--brass)}
footer::before{content:"";position:absolute;left:0;right:0;top:4px;height:1px;background:rgba(200,162,75,.35)}
.foot{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:56px}
.foot-brand img{height:56px;width:auto;display:block}
.foot-tag{color:var(--on-dark-mute);margin:22px 0 8px;font-family:var(--serif);font-style:italic;font-size:1.25rem;line-height:1.4}
.foot-tel a{color:var(--brass-soft);font-size:1.25rem;letter-spacing:.08em;text-decoration:none}
.foot-tel a:hover{color:var(--brass)}
.foot-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.foot-cols h2{color:var(--brass);font-family:var(--sans);font-weight:500;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;margin-bottom:16px}
.foot-cols ul{list-style:none;margin:0;padding:0}
.foot-cols li{margin:7px 0}
.foot-cols a{color:var(--on-dark);text-decoration:none;font-size:.95rem;opacity:.86;transition:opacity .2s,color .2s}
.foot-cols a:hover{opacity:1;color:var(--brass-soft)}
@media(max-width:900px){.foot{grid-template-columns:1fr;gap:40px}.foot-cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ldp{margin:18px 0 0;font-size:.82rem;letter-spacing:.04em}
.ldp a{color:var(--on-dark-mute);text-decoration:none}
.ldp a:hover{color:var(--brass-soft);text-decoration:underline}
.foot-social{display:flex;gap:10px;margin:18px 0}
.foot-social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--rule-dark);color:var(--brass-soft);transition:background .25s,color .25s,border-color .25s}
.foot-social a:hover{background:var(--brass);border-color:var(--brass);color:var(--midnight)}
.foot-social svg{width:18px;height:18px}
.foot-side{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;margin-top:64px;padding-block:24px 32px;border-top:1px solid var(--rule-dark)}
.foot-links{display:flex;flex-wrap:wrap;gap:6px 26px}
.foot-links a{color:var(--on-dark-mute);text-decoration:none;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase}
.foot-links a:hover{color:var(--brass-soft)}
.foot-legal{display:flex;align-items:center;gap:14px;font-size:.82rem}
.foot-legal .eho{height:30px;width:auto;opacity:.7}
@media(max-width:700px){.foot-side{flex-direction:column;align-items:flex-start}}

/* ---------- phone bar (phones only) ---------- */
.mbar{display:none}
@media(max-width:760px){
  .mbar{
    display:grid;grid-template-columns:1fr 1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:50;
    background:var(--midnight);border-top:1px solid var(--brass);
    padding:10px 12px calc(10px + env(safe-area-inset-bottom));
  }
  .mbar a{display:flex;align-items:center;justify-content:center;min-height:48px;text-decoration:none;font-weight:500;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase}
  .mbar .mb-call{border:1px solid rgba(239,231,216,.5);color:var(--on-dark)}
  .mbar a + a{background:var(--brass);color:var(--midnight)}
  body{padding-bottom:calc(70px + env(safe-area-inset-bottom))}
}

/* ---------- skip link, focus, reveal ---------- */
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--brass);color:var(--midnight);padding:10px 18px;font-weight:500;text-decoration:none}
.skip:focus{left:0}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}
/* site.js adds .rv only to blocks that start below the fold; without JS nothing is hidden */
.rv{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease;transition-delay:calc(var(--i,0) * 80ms)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}.rv{opacity:1;transform:none}}
.hero > .wrap{width:100%}
/* iOS Safari 26 lets the page show above sticky headers and below fixed bars.
   Paint the bar colors into those gaps so nothing shows through. */
header::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:100vh;background:var(--midnight);pointer-events:none}
@media(max-width:760px){.mbar::after{content:"";position:absolute;left:0;right:0;top:100%;height:100vh;background:var(--midnight);pointer-events:none}}
