/* Premium Example, the ZH Tech Premium package demo.
   Deliberately a tier above the Standard demo: editorial serif display type,
   ivory and near black instead of white, gold hairlines, motion on scroll,
   and interactive pieces the cheaper tiers do not get. */

*,*::before,*::after{box-sizing:border-box}
h1,h2,h3,h4,p,ul,ol,li,figure,figcaption,dl,dd,blockquote{margin:0;padding:0}
ul,ol{list-style:none}
img,svg{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;margin:0;padding:0}

:root{
  --bg:#f7f4ee;
  --bg-2:#f1ece3;
  --card:#fffefb;
  --ink:#11161d;
  --ink-2:#5b6470;
  --ink-3:#8b939d;
  --line:#e2dbcf;
  --deep:#0b1119;
  --deep-2:#121b26;
  --accent:#b0472a;
  --accent-dk:#8f371f;
  --accent-soft:#f6e9e3;
  --gold:#c2a15c;
  --gold-dim:rgba(194,161,92,.34);
  --radius:2px;
  --shadow:0 1px 2px rgba(17,22,29,.05), 0 12px 30px -18px rgba(17,22,29,.28);
  --shadow-lift:0 2px 4px rgba(17,22,29,.06), 0 26px 50px -24px rgba(17,22,29,.4);
}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);
     font-family:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
     font-size:17px;line-height:1.66;-webkit-font-smoothing:antialiased}
.wrap{width:min(1180px,100% - 44px);margin-inline:auto}
.narrow{width:min(880px,100% - 44px);margin-inline:auto}
h1,h2,h3{font-family:"Fraunces","Iowan Old Style",Georgia,serif;font-weight:600;
         line-height:1.08;letter-spacing:-.018em}
a{color:var(--accent)}

/* Scroll reveal. Only armed when JS is running (html.js) so a failed script can
   never leave the page blank, and skipped entirely for reduced motion. */
@media (prefers-reduced-motion: no-preference){
  .js .head, .js .cards, .js .steps, .js .shots, .js .reviews, .js .estimator,
  .js .towns, .js .faq, .js .ba-wrap, .js .direct, .js .lead-form,
  .js .qbody, .js .credibility{
    opacity:0;transform:translateY(20px);
    transition:opacity .75s cubic-bezier(.2,.7,.3,1), transform .75s cubic-bezier(.2,.7,.3,1);
  }
  .js .in{opacity:1;transform:none}
}

/* Demo notice */
.demo{background:#070b11;color:#e6ecf2;font-size:14px;line-height:1.45;padding:11px 0;
      border-bottom:1px solid var(--gold-dim)}
.demo .wrap{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;justify-content:center;text-align:center}
.demo b{color:var(--gold);letter-spacing:.14em;text-transform:uppercase;font-size:12px;font-weight:600}
.demo a{color:#fff}

/* Header */
header.site{position:sticky;top:0;z-index:40;background:rgba(247,244,238,.88);
            backdrop-filter:blur(14px) saturate(1.4);border-bottom:1px solid transparent;
            transition:border-color .3s, background .3s}
header.site.stuck{border-bottom-color:var(--line);background:rgba(247,244,238,.96)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:18px 0;
     transition:padding .3s}
header.site.stuck .bar{padding:11px 0}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:inherit}
.mark{width:46px;height:46px;flex:none;background:var(--deep);
      display:grid;place-items:center;box-shadow:inset 0 0 0 1px var(--gold-dim);
      transition:width .3s,height .3s}
header.site.stuck .mark{width:40px;height:40px}
.mark svg{width:24px;height:24px}
.brand b{font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:21px;display:block;line-height:1.1}
.brand small{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
nav.main{display:flex;align-items:center;gap:30px;font-size:14px;font-weight:500;
         letter-spacing:.08em;text-transform:uppercase}
nav.main a{color:var(--ink-2);text-decoration:none;padding:6px 0;position:relative}
nav.main a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1.5px;
                  background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .28s}
nav.main a:hover{color:var(--ink)}
nav.main a:hover::after{transform:scaleX(1)}
nav.main a[aria-current]{color:var(--ink)}
nav.main a[aria-current]::after{transform:scaleX(1)}
.hasmenu{position:relative}
.hasmenu > button{display:flex;align-items:center;gap:7px;color:var(--ink-2);font-size:14px;font-weight:500;
                  letter-spacing:.08em;text-transform:uppercase;cursor:pointer;padding:6px 0}
.hasmenu > button:hover{color:var(--ink)}
.hasmenu svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2.6}
.menu{position:absolute;top:calc(100% + 12px);left:-16px;min-width:216px;background:var(--card);
      border:1px solid var(--line);box-shadow:var(--shadow-lift);padding:8px;display:none}
.hasmenu:hover .menu,.hasmenu:focus-within .menu{display:block}
.menu a{display:block;padding:10px 13px;font-size:14.5px;letter-spacing:0;text-transform:none;
        color:var(--ink);text-decoration:none}
.menu a:hover{background:var(--bg-2);color:var(--accent-dk)}
@media (max-width:1060px){nav.main{display:none}}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:var(--radius);
     padding:14px 26px;font-weight:600;text-decoration:none;border:1px solid transparent;
     white-space:nowrap;cursor:pointer;font-size:14.5px;letter-spacing:.09em;text-transform:uppercase;
     transition:background .22s, border-color .22s, transform .22s, color .22s}
.btn-a{background:var(--accent);color:#fff}
.btn-a:hover{background:var(--accent-dk);transform:translateY(-1px)}
.btn-b{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-b:hover{border-color:var(--ink);transform:translateY(-1px)}
.btn-lg{padding:17px 34px;font-size:15px}
header .btn{padding:12px 20px;font-size:13px}

/* Small caps label with a gold rule, used as the section eyebrow everywhere */
.label{display:flex;align-items:center;gap:13px;font-size:11.5px;font-weight:700;
       letter-spacing:.24em;text-transform:uppercase;color:var(--accent)}
.label::before{content:"";width:32px;height:1px;background:var(--gold);flex:none}
.center .label{justify-content:center}
/* Same treatment on the dark bands, where the eyebrow sits above an h1 */
.eyebrow{display:flex;align-items:center;gap:13px;font-size:11.5px;font-weight:700;
         letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.eyebrow::before{content:"";width:32px;height:1px;background:var(--gold);flex:none}

/* Hero */
.hero{position:relative;overflow:hidden;background:var(--deep);color:#eef2f6;padding:112px 0 118px}
.hero::before{content:"";position:absolute;inset:0;
  background:
    radial-gradient(1000px 520px at 74% 2%, rgba(176,71,42,.36), transparent 62%),
    radial-gradient(760px 460px at 2% 104%, rgba(194,161,92,.15), transparent 66%),
    repeating-linear-gradient(90deg, rgba(255,255,255,.022) 0 1px, transparent 1px 54px);
}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold-dim)}
.hero .wrap{position:relative}
.hero.slim{padding:76px 0 80px}
.hero .label{color:var(--gold)}
.hero .label::before{background:var(--gold)}
.hero h1{font-size:clamp(42px,7.2vw,76px);margin:22px 0 22px;max-width:17ch;letter-spacing:-.028em}
.hero.slim h1{font-size:clamp(35px,5.4vw,54px);max-width:23ch}
.hero p.lead{font-size:20px;color:#b7c3cf;max-width:56ch;line-height:1.62}
.cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px}
.hero .btn-b{color:#eef2f6;border-color:rgba(255,255,255,.26)}
.hero .btn-b:hover{border-color:var(--gold);color:#fff}
.credibility{display:flex;flex-wrap:wrap;gap:0;margin-top:52px;padding-top:34px;
             border-top:1px solid rgba(255,255,255,.12)}
.credibility div{min-width:150px;padding-right:38px;margin-right:38px;
                 border-right:1px solid rgba(255,255,255,.1)}
.credibility div:last-child{border-right:0;margin-right:0;padding-right:0}
.credibility dt{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#7f8d9c;font-weight:700}
.credibility dd{font-family:"Fraunces",Georgia,serif;font-size:30px;font-weight:600;margin-top:6px;
                color:#fff;letter-spacing:-.02em}
@media (max-width:700px){
  .credibility div{border-right:0;margin-right:0;padding-right:22px;min-width:132px;margin-bottom:16px}
}

/* Breadcrumbs */
.crumbs{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#7f8d9c;margin-bottom:26px}
.crumbs a{color:#b7c3cf;text-decoration:none}
.crumbs a:hover{color:var(--gold)}

/* Sections */
section{padding:104px 0}
section[id]{scroll-margin-top:92px}
section.tight{padding:74px 0}
.alt{background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.head{max-width:60ch}
.head h2{font-size:clamp(31px,4.7vw,50px);margin-top:18px}
.head p{color:var(--ink-2);margin-top:18px;font-size:18px}
.center{text-align:center;margin-inline:auto}

.cards{display:grid;gap:1px;margin-top:52px;background:var(--line);border:1px solid var(--line);
       grid-template-columns:repeat(auto-fit,minmax(322px,1fr))}
.card{background:var(--card);padding:38px 34px 34px;display:flex;flex-direction:column;
      transition:background .25s, transform .25s, box-shadow .25s;position:relative}
.cards .card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift);z-index:2}
.cards .card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--gold);
                     transform:scaleX(0);transform-origin:left;transition:transform .3s}
.cards .card:hover::before{transform:scaleX(1)}
.card .ic{width:40px;height:40px;display:grid;place-items:center;margin-bottom:22px;
          border:1px solid var(--gold-dim)}
.card .ic svg{width:20px;height:20px;stroke:var(--accent);fill:none;stroke-width:1.6;
              stroke-linecap:round;stroke-linejoin:round}
.card h3{font-size:22px;margin-bottom:11px}
.card p{color:var(--ink-2);font-size:16px;flex:1}
.card .more{margin-top:22px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
            text-decoration:none;color:var(--accent)}
.card .more:hover{color:var(--accent-dk)}
.card ul.tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:20px}
.card ul.tags li{font-size:11px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;
                 color:var(--ink-2);border:1px solid var(--line);padding:5px 10px}
/* A standalone card (outside .cards) keeps its own frame */
.split .card{border:1px solid var(--line);box-shadow:var(--shadow)}

/* Steps */
.steps{counter-reset:s;display:grid;gap:1px;margin-top:52px;background:var(--line);
       border:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.steps li{counter-increment:s;background:var(--bg);padding:38px 30px 34px}
.steps li::before{content:"0" counter(s);display:block;font-family:"Fraunces",Georgia,serif;
  font-size:34px;font-weight:600;color:var(--gold);margin-bottom:16px;line-height:1}
.steps h3{font-size:20px;margin-bottom:9px}
.steps p{color:var(--ink-2);font-size:16px}
.alt .steps li{background:var(--bg-2)}
.split .steps{grid-template-columns:1fr;margin-top:22px}

/* Gallery */
.shots{display:grid;gap:20px;margin-top:52px;grid-template-columns:repeat(auto-fit,minmax(322px,1fr))}
figure{background:var(--card);border:1px solid var(--line);transition:transform .3s, box-shadow .3s}
figure:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift)}
.ph{aspect-ratio:4/3;display:grid;place-items:center;position:relative;overflow:hidden}
.ph span{position:relative;font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;
         color:rgba(255,255,255,.76)}
.ph::after{content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(135deg,rgba(255,255,255,.05) 0 14px,transparent 14px 28px)}
.p1{background:linear-gradient(150deg,#1d2f40,#456580)}
.p2{background:linear-gradient(150deg,#54301e,#9a5a36)}
.p3{background:linear-gradient(150deg,#26333d,#5d7383)}
.p4{background:linear-gradient(150deg,#412d1e,#836033)}
.p5{background:linear-gradient(150deg,#1a2733,#3b566f)}
.p6{background:linear-gradient(150deg,#352623,#755044)}
figcaption{padding:20px 22px;font-size:15px;border-top:1px solid var(--line)}
figcaption b{display:block;font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:18px;
             letter-spacing:-.01em}
figcaption span{color:var(--ink-3);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
                display:block;margin-top:5px}

/* Before and after slider, one of the Premium extras */
.ba-wrap{margin-top:52px;display:grid;gap:44px;grid-template-columns:1.15fr .85fr;align-items:center}
@media (max-width:880px){.ba-wrap{grid-template-columns:1fr;gap:32px}}
.ba{position:relative;aspect-ratio:16/10;overflow:hidden;border:1px solid var(--line);
    box-shadow:var(--shadow);touch-action:none}
.ba .layer{position:absolute;inset:0}
.ba .before{background:linear-gradient(150deg,#4a4038,#95836f)}
.ba .after{background:linear-gradient(150deg,#1d3243,#4a7391);clip-path:inset(0 0 0 var(--split,50%))}
.ba .layer::after{content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(135deg,rgba(255,255,255,.05) 0 14px,transparent 14px 28px)}
.ba .tag{position:absolute;bottom:18px;font-size:10.5px;font-weight:700;letter-spacing:.22em;
         text-transform:uppercase;color:#fff;background:rgba(0,0,0,.45);padding:8px 13px;
         border:1px solid rgba(255,255,255,.2);z-index:3}
.ba .tag-b{left:18px}
.ba .tag-a{right:18px}
.ba .handle{position:absolute;top:0;bottom:0;left:var(--split,50%);width:2px;background:var(--gold);
            transform:translateX(-1px);pointer-events:none;z-index:4}
.ba .knob{position:absolute;top:50%;left:var(--split,50%);width:48px;height:48px;margin:-24px 0 0 -24px;
          border-radius:50%;background:var(--gold);display:grid;place-items:center;pointer-events:none;
          box-shadow:0 6px 22px rgba(0,0,0,.4);z-index:5}
.ba .knob svg{width:22px;height:22px;stroke:#0b1119;fill:none;stroke-width:2.4;
              stroke-linecap:round;stroke-linejoin:round}
.ba input[type=range]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;
                      margin:0;z-index:6}
.ba input[type=range]:focus-visible ~ .handle{width:4px;background:#fff}

/* Editorial pull quote, a band the cheaper tiers do not get */
.quoteband{background:var(--deep-2);color:#eef2f6;position:relative;overflow:hidden}
.quoteband::before{content:"";position:absolute;inset:0;
  background:radial-gradient(760px 420px at 80% 10%, rgba(194,161,92,.14), transparent 64%)}
.quoteband .narrow{position:relative;text-align:center}
.quoteband .qm{font-family:"Fraunces",Georgia,serif;font-size:86px;line-height:.7;color:var(--gold);
               display:block;margin-bottom:26px}
.quoteband p.big{font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:clamp(25px,3.6vw,40px);
                 line-height:1.28;letter-spacing:-.02em;color:#fff}
.quoteband .who{margin-top:30px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#93a2b1}
.quoteband .who b{color:var(--gold);font-weight:600}

/* Reviews */
.reviews{display:grid;gap:1px;margin-top:52px;background:var(--line);border:1px solid var(--line);
         grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
blockquote{background:var(--card);padding:36px 32px;display:flex;flex-direction:column}
.stars{display:flex;gap:4px;margin-bottom:20px}
.stars svg{width:15px;height:15px;fill:var(--gold)}
blockquote p{font-size:17px;flex:1;line-height:1.62}
blockquote footer{margin-top:24px;padding-top:18px;border-top:1px solid var(--line);
                  font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
blockquote footer b{color:var(--ink);font-weight:700}

/* Estimator */
.estimator{background:var(--deep-2);color:#eef2f6;padding:44px;margin-top:52px;
           display:grid;gap:44px;grid-template-columns:1fr 1fr;
           box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
@media (max-width:880px){.estimator{grid-template-columns:1fr;padding:30px}}
.estimator h3{font-size:27px;color:#fff}
.estimator .sub{color:#9fb0c0;font-size:16px;margin-top:10px}
.fld{margin-top:26px}
.fld label{display:block;font-size:11.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
           margin-bottom:11px;color:#a9bacb}
.fld input[type=range]{width:100%;accent-color:var(--gold)}
.fld output{font-family:"Fraunces",Georgia,serif;font-size:20px;color:#fff;letter-spacing:0;
            text-transform:none}
.opts{display:flex;flex-wrap:wrap;gap:9px}
.opts label{display:inline-flex;align-items:center;gap:9px;border:1px solid rgba(255,255,255,.2);
            padding:11px 16px;font-size:14px;font-weight:600;cursor:pointer;margin:0;color:#cbd7e2;
            letter-spacing:0;text-transform:none;transition:border-color .2s, background .2s, color .2s}
.opts input{accent-color:var(--gold)}
.opts label:has(input:checked){border-color:var(--gold);background:rgba(194,161,92,.13);color:#fff}
.readout{background:rgba(0,0,0,.3);border:1px solid var(--gold-dim);padding:34px;
         display:flex;flex-direction:column;justify-content:center}
.readout .k{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#8b9cad;font-weight:700}
.readout .range{font-family:"Fraunces",Georgia,serif;font-size:clamp(33px,5vw,48px);font-weight:600;
                color:#fff;margin-top:12px;line-height:1.02;letter-spacing:-.025em}
.readout .fin{margin-top:22px;padding-top:22px;border-top:1px solid rgba(255,255,255,.13);
              font-size:16px;color:#b7c3cf}
.readout .fin b{color:var(--gold);font-family:"Fraunces",Georgia,serif;font-size:24px;font-weight:600}
.readout .note{font-size:13.5px;color:#8b9cad;margin-top:20px;line-height:1.55}

/* Split content */
.split{display:grid;gap:56px;grid-template-columns:1fr 1fr;align-items:start}
@media (max-width:880px){.split{grid-template-columns:1fr;gap:40px}}
.prose p{color:var(--ink-2);font-size:17.5px}
.prose p + p{margin-top:17px}
.prose h2{font-size:clamp(30px,4.5vw,44px);margin-bottom:22px;margin-top:18px}
.prose h3{font-size:22px;margin:34px 0 10px;color:var(--ink)}
.ticks{margin-top:24px;display:grid;gap:14px}
.ticks li{display:flex;gap:14px;font-size:16.5px;color:var(--ink-2)}
.ticks li::before{content:"";width:18px;height:18px;flex:none;margin-top:4px;border:1px solid var(--gold-dim);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b0472a' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L19 7'/%3E%3C/svg%3E");
  background-size:11px;background-position:center;background-repeat:no-repeat}

.facts{margin-top:30px;display:grid;gap:1px;background:var(--line);border:1px solid var(--line);
       grid-template-columns:1fr 1fr}
.facts div{background:var(--card);padding:20px 22px}
.facts dt{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);font-weight:700}
.facts dd{font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:19px;margin-top:6px;
          letter-spacing:-.01em}

/* Town links */
.towns{display:grid;gap:1px;margin-top:40px;background:var(--line);border:1px solid var(--line);
       grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.towns a{display:block;background:var(--card);padding:28px 26px;text-decoration:none;color:var(--ink);
         transition:background .22s, transform .22s}
.towns a:hover{background:var(--accent-soft);transform:translateY(-2px)}
.towns b{display:block;font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:22px;
         letter-spacing:-.015em}
.towns span{font-size:11.5px;color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;
            display:block;margin-top:7px}

/* FAQ */
.faq{margin-top:48px;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:26px 46px 26px 0;font-family:"Fraunces",Georgia,serif;
             font-weight:600;font-size:20px;letter-spacing:-.015em;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:8px;top:33px;width:11px;height:11px;
  border-right:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);transform:rotate(45deg);
  transition:transform .22s}
.faq details[open] summary::after{transform:rotate(225deg)}
.faq p{padding:0 0 28px;color:var(--ink-2);max-width:72ch;font-size:17px}

/* Contact */
.contact{background:var(--deep);color:#eef2f6;position:relative}
.contact::before{content:"";position:absolute;inset:0;
  background:radial-gradient(820px 460px at 88% 6%, rgba(176,71,42,.24), transparent 62%)}
.contact .wrap{position:relative}
.contact h2{font-size:clamp(31px,4.7vw,50px);margin-top:20px}
.contact .label{color:var(--gold)}
.contact .label::before{background:var(--gold)}
.contact .lead{color:#b7c3cf;margin-top:20px;max-width:48ch;font-size:18px}
.direct{margin-top:38px;display:grid;gap:1px;background:rgba(255,255,255,.12);
        border:1px solid rgba(255,255,255,.12)}
.direct a{display:flex;align-items:center;gap:16px;background:var(--deep);padding:22px 24px;
          text-decoration:none;color:#fff;transition:background .22s}
.direct a:hover{background:var(--deep-2)}
.direct .k{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#8b9cad;font-weight:700}
.direct .v{font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:21px;margin-top:4px;
           letter-spacing:-.015em}
form.lead-form{background:var(--card);padding:38px;color:var(--ink);box-shadow:var(--shadow-lift)}
form.lead-form h3{font-size:25px}
form.lead-form p.sub{color:var(--ink-2);font-size:15.5px;margin-top:9px}
.field{margin-top:20px}
.field label{display:block;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
             margin-bottom:8px;color:var(--ink-2)}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);
  background:var(--bg);border:1px solid var(--line);border-radius:0;padding:13px 14px}
.field textarea{min-height:106px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(176,71,42,.13)}
.two{display:grid;gap:16px;grid-template-columns:1fr 1fr}
@media (max-width:540px){.two{grid-template-columns:1fr}}
form.lead-form .btn{width:100%;margin-top:26px}
.sent{display:none;background:var(--accent-soft);border-left:3px solid var(--accent);padding:20px;
      margin-top:20px;font-size:15.5px}
.sent.on{display:block}
.fineprint{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);
           margin-top:18px;text-align:center}

/* Footer */
footer.site{background:#070b11;color:#8b98a6;font-size:15px;padding:0 0 34px;
            border-top:1px solid var(--gold-dim)}
.foot-top{display:flex;align-items:center;gap:14px;padding:44px 0 34px;
          border-bottom:1px solid rgba(255,255,255,.09)}
.foot-top b{font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:21px;color:#fff;
            display:block;line-height:1.1}
.foot-top small{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:#7b8896;font-weight:600}
footer.site .cols{display:grid;gap:30px;grid-template-columns:1.6fr 1fr 1fr 1fr;padding-top:38px}
@media (max-width:860px){footer.site .cols{grid-template-columns:1fr 1fr}}
@media (max-width:520px){footer.site .cols{grid-template-columns:1fr}}
footer.site a{color:#cfd8e1;text-decoration:none}
footer.site a:hover{color:var(--gold)}
footer.site h4{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#fff;
               margin-bottom:16px;font-weight:700}
footer.site li{padding:4px 0}
.copy{border-top:1px solid rgba(255,255,255,.09);margin-top:36px;padding-top:22px;font-size:13px;color:#65717e}

/* Mobile call dock */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:50;display:none;gap:1px;background:var(--line);
      box-shadow:0 -6px 24px rgba(0,0,0,.2)}
.dock a{flex:1;background:var(--accent);color:#fff;text-align:center;padding:16px 8px;font-weight:700;
        font-size:13px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.dock a + a{background:var(--deep)}
@media (max-width:700px){
  .dock{display:flex}
  body{padding-bottom:58px}
  header .btn{display:none}
  section{padding:70px 0}
  .hero{padding:76px 0 82px}
  .facts{grid-template-columns:1fr}
  .card{padding:30px 26px}
  form.lead-form{padding:26px}
}
