:root{
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
  /* brand colors. --accent is the color of buttons and highlights: change it in one place. */
  --page:#FFFFFF; --ink:#2E2A1E; --ink-soft:#5A5245; --band:#EEF5F9; --sky:#B9D8EA;
  --accent:#2F6585; --on-accent:#FFFFFF; --cream:#FAF6EF; --tan:#EFE6D8; --line:#D9E3E9;
  --columbia:#B9D8EA; --brown:#241F14; --footer:#241F14;
  --display:"Poppins",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --body:"Lora",Georgia,"Times New Roman",serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --page:#14110C; --ink:#F0E9DB; --ink-soft:#BEB4A1; --band:#1B2831; --sky:#2C4A5C;
    --accent:#86BCDC; --on-accent:#10202B; --cream:#1D1913; --tan:#2A241B; --line:#33404A; --columbia:#2C4A5C; --brown:#14110C; --footer:#0F0D09;
  }
}
:root[data-theme="dark"]{
  --page:#14110C; --ink:#F0E9DB; --ink-soft:#BEB4A1; --band:#1B2831; --sky:#2C4A5C;
  --accent:#86BCDC; --on-accent:#10202B; --cream:#1D1913; --tan:#2A241B; --line:#33404A; --columbia:#2C4A5C; --brown:#14110C; --footer:#0F0D09;
}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 84px);}
*,*::before,*::after{box-sizing:inherit;}
body{margin:0;background:var(--page);color:var(--ink);font-family:var(--body);font-size:16.5px;line-height:1.6;-webkit-text-size-adjust:100%;}
h1,h2,h3,h4{font-family:var(--display);font-weight:700;line-height:1.18;margin:0;color:var(--ink);}
h1{font-size:clamp(30px,3.8vw,42px);letter-spacing:-.015em;text-wrap:balance;}
h2{font-size:clamp(22px,2.4vw,28px);letter-spacing:-.01em;text-wrap:balance;}
h3{font-size:18px;font-weight:600;}
p{margin:0 0 .9em;}
a{color:var(--accent);}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px;}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px;}
.sr{position:absolute;left:-9999px;}
.skip{position:absolute;left:-9999px;top:8px;background:var(--accent);color:var(--on-accent);padding:10px 16px;z-index:100;font-family:var(--display);font-weight:600;}
.skip:focus{left:8px;}
.small{font-size:14px;}
.muted{color:var(--ink-soft);}

/* strips */
.draft{background:var(--cream);border-bottom:1px solid var(--line);font-family:var(--display);font-size:12.5px;line-height:1.5;padding:6px 0;}
.status{background:var(--columbia);color:var(--ink);font-family:var(--display);font-size:13px;line-height:1.5;border-bottom:1px solid rgba(46,42,30,.12);}
.status .wrap{display:flex;justify-content:space-between;align-items:center;gap:4px 24px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px;}
.status a{color:var(--ink);font-weight:600;}
.status a:hover{text-decoration:none;}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .status{color:#EDE6D8;}:root:not([data-theme="light"]) .status a{color:#EDE6D8;}}
@media (max-width:700px){.status .wrap{justify-content:center;text-align:center;}}

/* header */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:var(--page);border-bottom:1px solid var(--line);}
.nav{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;}
.brand{display:block;line-height:0;}
.logo{height:34px;width:auto;display:block;}
.links{display:flex;align-items:center;gap:2px;}
.links a{font-family:var(--display);font-weight:500;font-size:14px;color:var(--ink-soft);text-decoration:none;padding:8px 10px;border-bottom:2px solid transparent;}
.links a:hover{color:var(--ink);}
.links a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent);}
.links a.cta{background:var(--accent);color:var(--on-accent);font-weight:600;border-radius:4px;border-bottom:0;margin-left:10px;padding:10px 16px;}
.links a.cta:hover{filter:brightness(1.08);}
.links a.cta[aria-current="page"]{outline:2px solid var(--ink);outline-offset:2px;}
.menu-btn{display:none;background:none;border:1.5px solid var(--ink);border-radius:4px;padding:7px 14px;font-family:var(--display);font-weight:600;font-size:14px;color:var(--ink);cursor:pointer;}
@media (max-width:1020px){
  .menu-btn{display:inline-block;}
  .links{display:none;position:absolute;left:0;right:0;top:100%;background:var(--page);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:4px 24px 16px;gap:0;}
  .links.open{display:flex;}
  .links a{padding:13px 0;border-bottom:1px solid var(--line);}
  .links a[aria-current="page"]{border-bottom-color:var(--accent);}
  .links a.cta{margin:12px 0 0;text-align:center;border-bottom:0;padding:13px;}
}

/* pages */
.page{display:none;}
.page.active{display:block;}
.section{padding:44px 0;}
.section.band{background:var(--band);}
.section.cream{background:var(--cream);}
.section.tight{padding:32px 0;}
.pagehead{padding-top:36px;padding-bottom:8px;}
.pagehead p{margin:10px 0 0;max-width:62ch;color:var(--ink-soft);}
.sec-head{margin-bottom:22px;}
.sec-head p{margin:8px 0 0;max-width:64ch;color:var(--ink-soft);}

/* buttons */
.btn-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;}
.btn{display:inline-block;font-family:var(--display);font-weight:600;font-size:15px;text-decoration:none;padding:12px 22px;border-radius:4px;border:2px solid transparent;cursor:pointer;line-height:1.3;}
.btn.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent);}
.btn.primary:hover{filter:brightness(1.08);}
.btn.light{background:#fff;color:#16324A;border-color:#fff;}
.btn.light:hover{background:#EEF5F9;}
.btn.outline{background:transparent;color:var(--ink);border-color:var(--ink);}
.btn.outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.8);}
.btn[disabled]{opacity:.5;cursor:not-allowed;}
.textlink{font-family:var(--display);font-weight:600;font-size:14.5px;}

/* hero (photo) */
.hero{position:relative;overflow:hidden;background:var(--brown);color:#fff;min-height:clamp(620px,82vh,780px);display:flex;flex-direction:column;justify-content:space-between;align-items:center;text-align:center;}
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%;display:block;}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(36,31,20,.55) 0%,rgba(36,31,20,.18) 26%,rgba(36,31,20,0) 40%,rgba(36,31,20,.5) 60%,rgba(36,31,20,.9) 100%);}
.hero-top{position:relative;z-index:2;padding:34px 24px 0;width:100%;}
.hero-logo{display:block;width:min(470px,74vw);height:auto;margin:0 auto;}
.hero-bottom{position:relative;z-index:2;width:100%;max-width:820px;padding:0 24px 40px;}
.hero h1{color:#fff;font-size:clamp(26px,3.4vw,40px);margin-bottom:10px;text-shadow:0 1px 14px rgba(0,0,0,.35);}
.hero p.lede{font-size:17.5px;line-height:1.55;color:#F3EEE4;margin:0 auto;max-width:56ch;}
.hero .btn-row{justify-content:center;margin-top:18px;}
.hero .note{font-size:14.5px;color:#E6DFD1;margin:12px 0 0;}
.btn.columbia{background:var(--columbia);color:#2E2A1E;border-color:var(--columbia);}
.btn.columbia:hover{filter:brightness(1.05);}
@media (max-width:700px){
  .hero{min-height:640px;}
  .hero-top{padding-top:26px;}
  .hero-logo{width:min(300px,78vw);}
  .hero-bottom{padding-bottom:30px;}
}

/* home modules */
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;}
@media (max-width:820px){.two{grid-template-columns:1fr;gap:22px;}}
.pkgs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;}
@media (max-width:820px){.pkgs{grid-template-columns:1fr;gap:20px;}}
.pkg{border-top:4px solid var(--sky);padding-top:14px;}
.pkg:nth-child(2){border-top-color:var(--accent);}
.pkg:nth-child(3){border-top-color:var(--ink);}
.pkg h3{margin-bottom:6px;}
.pkg p{margin:0;font-size:15.5px;}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;counter-reset:s;}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:520px){.steps{grid-template-columns:1fr;gap:16px;}}
.steps li{counter-increment:s;border-top:3px solid var(--accent);padding-top:12px;}
.steps li::before{content:counter(s);display:block;font-family:var(--display);font-weight:700;font-size:30px;line-height:1;color:var(--accent);margin-bottom:6px;}
.steps h3{font-size:16.5px;margin-bottom:4px;}
.steps p{margin:0;font-size:15px;line-height:1.5;}
.checks{list-style:none;margin:0;padding:0;}
.checks li{position:relative;padding:0 0 0 26px;margin-bottom:9px;font-size:16px;}
.checks li::before{content:"";position:absolute;left:2px;top:7px;width:12px;height:7px;border-left:2.5px solid var(--accent);border-bottom:2.5px solid var(--accent);transform:rotate(-45deg);}
.list{margin:8px 0 0;padding-left:20px;}
.list li{margin-bottom:5px;}
.notlist{margin:6px 0 0;padding-left:20px;color:var(--ink-soft);font-size:15px;}
.notlist li{margin-bottom:3px;}

/* photo band */
.photoband{position:relative;overflow:hidden;background:var(--brown);color:#fff;}
.photoband img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%;display:block;}
.photoband .shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(36,31,20,.85) 0%,rgba(36,31,20,.55) 50%,rgba(36,31,20,.08) 100%);}
.photoband .inner{position:relative;z-index:2;padding:52px 0;max-width:560px;}
.photoband h2{color:#fff;margin-bottom:8px;}
.photoband p{color:#EAF2F8;margin:0 0 6px;}
@media (max-width:760px){.photoband .shade{background:rgba(36,31,20,.7);}.photoband .inner{padding:38px 0;}}

/* owner */
.owner{display:grid;grid-template-columns:220px minmax(0,1fr);gap:32px;align-items:start;}
@media (max-width:720px){.owner{grid-template-columns:1fr;gap:18px;}.owner .portrait{max-width:240px;}}
.photo{display:block;width:100%;height:auto;border-radius:4px;}
.owner h2{margin-bottom:10px;}
.cta-bar{background:var(--band);border-top:1px solid var(--line);}
.cta-bar .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px 32px;flex-wrap:wrap;padding-top:30px;padding-bottom:30px;}
.cta-bar p{margin:6px 0 0;color:var(--ink-soft);max-width:56ch;}
.cta-bar .btn-row{margin-top:0;}

/* services */
.rules{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 24px;border-top:2px solid var(--ink);margin-top:6px;}
@media (max-width:900px){.rules{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:520px){.rules{grid-template-columns:1fr;}}
.rule{padding:14px 0 12px;border-bottom:1px solid var(--line);}
.rule h3{font-size:15.5px;margin-bottom:3px;}
.rule p{margin:0;font-size:14.5px;line-height:1.5;color:var(--ink-soft);}
.cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:26px;}
@media (max-width:900px){.cols{grid-template-columns:1fr;gap:28px;}}
.col{border-top:4px solid var(--sky);padding-top:14px;}
.col.c2{border-top-color:var(--accent);}
.col.c3{border-top-color:var(--ink);}
.col h2{font-size:22px;margin-bottom:4px;}
.col .for{font-size:14.5px;color:var(--ink-soft);margin-bottom:10px;}
.col h4{font-family:var(--display);font-weight:600;font-size:13.5px;margin:12px 0 4px;}
.col .list{margin-top:4px;font-size:15px;}
.col .list li{margin-bottom:4px;line-height:1.45;}
.table-wrap{overflow-x:auto;margin-top:12px;}
.hint{display:none;font-family:var(--display);font-size:13.5px;color:var(--ink-soft);margin:14px 0 0;}
@media (max-width:860px){.hint{display:block;}}
table.compare{border-collapse:collapse;width:100%;min-width:620px;font-size:14.5px;}
table.compare th,table.compare td{padding:9px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);}
table.compare thead th{border-bottom:2px solid var(--ink);font-family:var(--display);font-weight:700;font-size:15.5px;}
table.compare tbody th{font-family:var(--display);font-weight:500;font-size:14px;width:26%;}

/* pricing */
.pgrid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:44px;margin-top:20px;align-items:start;}
@media (max-width:860px){.pgrid{grid-template-columns:1fr;gap:26px;}}
.price-table{border-collapse:collapse;width:100%;min-width:480px;font-size:16px;}
.price-table th,.price-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;}
.price-table thead th{font-family:var(--display);font-weight:700;border-bottom:2px solid var(--ink);font-size:15px;}
.price-table tbody th{font-family:var(--display);font-weight:600;font-size:14.5px;}
.price-table td{font-family:var(--display);font-weight:500;}
.price-table .quoted{color:var(--ink-soft);font-weight:400;font-family:var(--body);}
.block{margin-bottom:20px;}
.block h3{font-size:17px;margin-bottom:5px;}
.block p,.block li{font-size:15.5px;}
.block p{margin:0;}

/* forms + calculator */
.est{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:40px;margin-top:18px;align-items:start;}
@media (max-width:860px){.est{grid-template-columns:1fr;gap:24px;}}
label{display:block;font-family:var(--display);font-weight:500;font-size:14px;margin-bottom:5px;}
.field{margin-bottom:14px;}
.field .help{font-family:var(--body);font-size:13.5px;color:var(--ink-soft);margin:5px 0 0;}
input[type=text],input[type=email],input[type=tel],input[type=number],select,textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);background:var(--page);border:1.5px solid var(--ink-soft);border-radius:4px;padding:10px 12px;}
textarea{min-height:96px;resize:vertical;}
.check{display:flex;gap:10px;align-items:flex-start;font-family:var(--body);font-weight:400;font-size:15.5px;margin:0 0 8px;}
.check input{margin-top:5px;accent-color:var(--accent);}
.result{background:var(--band);border-top:5px solid var(--accent);padding:20px 22px;}
.result .tag{font-family:var(--display);font-size:13px;color:var(--ink-soft);margin-bottom:6px;}
.result .big{font-family:var(--display);font-weight:700;font-size:38px;line-height:1.1;margin:2px 0 2px;}
.result .line{display:flex;justify-content:space-between;gap:16px;padding:7px 0;border-bottom:1px solid var(--line);font-size:15px;}
.result .line span:last-child{font-family:var(--display);font-weight:600;text-align:right;}
.result .line:last-of-type{border-bottom:0;}
.formmsg{font-family:var(--display);font-size:14px;margin-top:12px;min-height:1.4em;}
.formmsg.ok{color:var(--accent);font-weight:600;}
.agrid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:44px;margin-top:18px;align-items:start;}
@media (max-width:900px){.agrid{grid-template-columns:1fr;gap:26px;}}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;}
@media (max-width:620px){.fgrid{grid-template-columns:1fr;}}
.fgrid .full{grid-column:1 / -1;}

/* faq */
.faq{display:grid;grid-template-columns:1fr 1fr;gap:0 44px;margin-top:14px;align-items:start;}
@media (max-width:860px){.faq{grid-template-columns:1fr;}}
details{border-bottom:1px solid var(--line);}
.faq details:first-child{border-top:2px solid var(--ink);}
@media (min-width:861px){.faq > div:nth-child(2) details:first-child{border-top:2px solid var(--ink);}}
summary{font-family:var(--display);font-weight:600;font-size:15.5px;padding:14px 32px 14px 0;cursor:pointer;list-style:none;position:relative;line-height:1.35;}
summary::-webkit-details-marker{display:none;}
summary::after{content:"+";position:absolute;right:2px;top:10px;font-size:24px;line-height:1;color:var(--accent);font-weight:500;}
details[open] summary::after{content:"\2212";}
details .answer{padding:0 0 12px;}
details p{font-size:15.5px;margin:0;}

/* about */
.aboutgrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:36px;align-items:center;}
@media (max-width:820px){.aboutgrid{grid-template-columns:1fr;gap:20px;}}
.float-photo{float:right;width:200px;margin:4px 0 10px 22px;}
@media (max-width:520px){.float-photo{float:none;width:100%;max-width:260px;margin:6px 0 12px;}}
.credit{font-family:var(--display);font-size:12.5px;color:var(--ink-soft);margin-top:6px;}

/* footer */
footer{background:var(--footer);color:#EDE6D8;padding:34px 0 24px;font-family:var(--display);}
.foot{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start;}
@media (max-width:760px){.foot{grid-template-columns:1fr;gap:18px;}}
.foot img{height:72px;width:auto;display:block;}
.foot a{color:#EDE6D8;}
.foot h4{color:#B9D8EA;font-size:13.5px;font-weight:600;margin-bottom:6px;}
.foot p,.foot li{margin:0 0 4px;font-size:14px;line-height:1.55;}
.foot ul{list-style:none;margin:0;padding:0;}
.fine{font-size:12.5px;opacity:.7;margin-top:20px;grid-column:1 / -1;}

@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .logo{filter:brightness(0) invert(.92);}}
:root[data-theme="dark"] .logo{filter:brightness(0) invert(.92);}

.figure{margin:0;}
.figure figcaption{font-family:var(--display);font-size:13px;color:var(--ink-soft);margin-top:8px;}
.float-photo{margin-bottom:10px;}
.float-photo img{display:block;width:100%;height:auto;border-radius:4px;}
.float-photo figcaption{font-family:var(--display);font-size:12.5px;color:var(--ink-soft);margin-top:6px;}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
img{max-width:100%;height:auto;}
.photoband img,.hero-photo{max-width:none;}
.pgrid>*,.est>*,.agrid>*,.two>*,.cols>*,.aboutgrid>*,.owner>*,.faq>*{min-width:0;}
