:root{
  color-scheme:light;
  --paper:#FBF9F4; --ink:#141418; --soft:#EFE9DB; --muted:#4E4E57;
  --amber:#FFC233; --red:#E03A26; --success:#146B45; --error:#B82F1F; --edge:#141418;
  --foil:linear-gradient(100deg,#E03A26,#FFC233,#4FBF9B,#5B8FE0,#B45BC4);
  --slab:"Alfa Slab One","Archivo",Georgia,serif;
  --body:"Archivo",system-ui,-apple-system,sans-serif;
}
/* Cream is the site default regardless of the device color preference. */
:root[data-theme="dark"]{
  color-scheme:dark;
  --paper:#121216; --ink:#F7F4EC; --soft:#1E1E24; --muted:#ADADB6;
  --red:#FF6150; --edge:#F7F4EC; --success:#7CDAA7; --error:#FF998C;
}
*{box-sizing:border-box}
body{background:var(--paper); color:var(--ink); font-family:var(--body); font-size:17px; line-height:1.55; margin:0; padding-inline:20px; -webkit-font-smoothing:antialiased}
.wrap{max-width:1000px; margin-inline:auto}
h1,h2,h3{margin:0; text-wrap:balance; line-height:1.05}
p{margin:0}
a{color:inherit}
.foil{background:var(--foil); -webkit-background-clip:text; background-clip:text; color:transparent}
.h2{font-weight:700; font-size:clamp(23px,4vw,32px); letter-spacing:-.015em}
.lede{margin-top:10px; color:var(--muted); max-width:52ch}

.nav{position:sticky; top:0; z-index:50; background:var(--paper); border-bottom:3px solid var(--edge); margin-inline:-20px; padding:12px 20px; display:flex; flex-wrap:wrap; gap:8px 22px; align-items:center}
.nav .brand{font-family:var(--slab); font-size:19px; margin-right:auto; white-space:nowrap; text-decoration:none; border:none; padding:0}
.nav a{text-decoration:none; font-weight:600; font-size:15.5px; color:var(--ink); padding:6px 2px; border-bottom:3px solid transparent}
.nav a:hover,.nav a[aria-current="page"]{border-bottom-color:var(--red)}
.nav a.brand:hover{border-bottom-color:transparent}
@media (max-width:640px){ .nav .brand{flex:1 0 100%} .nav a{font-size:14.5px} }

.hero{padding-block:32px 0; display:grid; gap:34px; grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); align-items:center}
@media (max-width:820px){ .hero{grid-template-columns:1fr; gap:26px} }
.wordmark{font-family:var(--slab); font-size:clamp(26px,4.6vw,38px); line-height:1}
h1{font-family:var(--slab); font-size:clamp(38px,7.4vw,66px); line-height:1; margin-top:20px; letter-spacing:-.01em}
.page h1{font-size:clamp(32px,6vw,52px); margin-top:34px}
.say{margin-top:18px; font-size:clamp(17px,2.3vw,19px); max-width:44ch; color:var(--muted)}
.actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:26px}
.btn{display:inline-block; text-decoration:none; font-weight:700; font-size:17px; padding:15px 26px; border:3px solid var(--edge); color:var(--ink); background:transparent; font-family:var(--body); cursor:pointer}
.btn-primary{background:var(--red); color:#fff; border-color:var(--red)}
.btn:focus-visible{outline:3px solid var(--amber); outline-offset:3px}
.btn[disabled]{opacity:.6; cursor:wait}
@media (prefers-reduced-motion:no-preference){ .btn{transition:transform .12s ease} .btn:hover{transform:translateY(-2px)} .art .shine{animation:shine 6s ease-in-out infinite} }
@keyframes shine{0%,100%{opacity:.0}50%{opacity:.55}}
.art{position:relative}
.art svg{display:block; width:100%; height:auto}
.stamp{position:absolute; left:2%; bottom:2%; background:var(--ink); color:var(--paper); font-family:var(--slab); font-size:clamp(12px,2.1vw,16px); padding:8px 14px; transform:rotate(-7deg); line-height:1.15; text-align:center}

.band{background:var(--amber); color:#141418; border:3px solid var(--edge); margin-top:44px; padding:26px 24px; display:grid; gap:18px 30px; grid-template-columns:auto minmax(0,1fr); align-items:center}
@media (max-width:700px){ .band{grid-template-columns:1fr} }
.band .scale{width:92px; height:auto}
.band .eq{font-family:var(--slab); font-size:clamp(26px,5.6vw,44px); line-height:1.05}
.band .fine{margin-top:10px; font-size:15.5px; max-width:58ch; font-weight:500}
.band a{color:#141418}

section{margin-top:52px}
.rows{border:3px solid var(--edge); margin-top:24px}
.row{display:grid; grid-template-columns:44px minmax(0,1fr) auto; gap:16px; align-items:center; padding:18px; border-bottom:3px solid var(--edge)}
.row:last-child{border-bottom:none}
.stack{width:32px; height:38px; display:grid; align-content:end; gap:3px}
.stack i{display:block; height:5px; background:var(--muted); border-radius:1px}
.stack i.f{background:linear-gradient(90deg,#E03A26,#FFC233,#4FBF9B,#5B8FE0)}
.stack i.o{background:var(--red)}
.row b{display:block; font-weight:700; font-size:17.5px}
.row span{display:block; color:var(--muted); font-size:15px; margin-top:3px}
.row .tier{font-family:var(--slab); font-size:clamp(16px,3vw,22px); text-align:right; white-space:nowrap}
@media (max-width:560px){ .row{grid-template-columns:30px minmax(0,1fr); padding:16px 14px} .row .tier{grid-column:2; text-align:left; margin-top:6px} }

.flow{display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); margin-top:26px}
.step{border:3px solid var(--edge); padding:20px 18px; background:var(--soft)}
.step .num{display:inline-block; background:var(--ink); color:var(--paper); font-family:var(--slab); font-size:15px; width:30px; height:30px; text-align:center; line-height:30px; margin-bottom:12px}
.step :is(h2,h3){font-size:18px; margin-bottom:7px}
.step p{font-size:15.5px; color:var(--muted)}

.faq{margin-top:26px; border-top:2px solid var(--edge)}
.qa{padding:18px 0; border-bottom:2px solid var(--edge)}
.qa :is(h2,h3){font-size:17px; margin-bottom:6px}
.qa p{color:var(--muted); max-width:62ch}
.qa p+p{margin-top:8px}

.shop{border:3px solid var(--edge); padding:24px 22px}
.shop p{margin-top:10px; color:var(--muted); max-width:48ch}
.soon{display:inline-block; margin-top:16px; background:var(--amber); color:#141418; font-weight:700; font-size:14.5px; padding:8px 14px}

.cta{background:var(--ink); color:var(--paper); padding:44px 26px; text-align:center; position:relative; overflow:hidden}
.cta::before{content:""; position:absolute; inset:0 0 auto 0; height:8px; background:var(--foil)}
.cta h2{font-family:var(--slab); font-size:clamp(30px,6.8vw,52px)}
.cta p{margin-top:14px; opacity:.8}
.cta .addr{display:inline-block; margin-top:22px; background:var(--amber); color:#141418; font-family:var(--slab); font-size:clamp(17px,4vw,25px); padding:14px 22px; text-decoration:none}

/* rate table */
.rates{border:3px solid var(--edge); margin-top:24px; width:100%; border-collapse:collapse}
.rates th,.rates td{padding:16px 18px; text-align:left; border-bottom:3px solid var(--edge); vertical-align:top}
.rates tr:last-child td{border-bottom:none}
.rates th{font-size:14px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:700}
.rates .money{font-family:var(--slab); font-size:clamp(18px,3.2vw,26px); white-space:nowrap}
.rates .sub{display:block; color:var(--muted); font-size:14.5px; margin-top:4px}
.rates .pass{color:var(--muted)}
@media (max-width:560px){ .rates th:nth-child(3),.rates td:nth-child(3){display:none} .rates th,.rates td{padding:14px 12px} }

/* estimator */
.calc{border:3px solid var(--edge); background:var(--soft); padding:22px 20px; margin-top:26px; display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); align-items:end}
.calc label{display:block; font-weight:700; font-size:14.5px; margin-bottom:6px}
.calc .out{grid-column:1/-1; font-family:var(--slab); font-size:clamp(24px,5vw,40px); line-height:1.1}
.calc .out small{display:block; font-family:var(--body); font-size:15px; color:var(--muted); font-weight:500; margin-top:8px; max-width:60ch}
input,select,textarea{width:100%; font:inherit; color:var(--ink); background:var(--paper); border:3px solid var(--edge); padding:12px 14px; border-radius:0}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--amber); outline-offset:2px}
textarea{min-height:110px; resize:vertical}

/* quote form */
.form{border:3px solid var(--edge); padding:26px 22px; margin-top:26px; display:grid; gap:18px; grid-template-columns:1fr 1fr}
.form .full{grid-column:1/-1}
.form label{display:block; font-weight:700; font-size:14.5px; margin-bottom:6px}
.form .hint{display:block; font-weight:500; color:var(--muted); font-size:13.5px; margin-top:4px}
.form .status{grid-column:1/-1; font-weight:600; min-height:1.4em}
.form .status.ok{color:var(--success)}
.form .status.err{color:var(--error)}
.thumbs{display:flex; flex-wrap:wrap; gap:8px; margin-top:10px}
.thumbs img{width:72px; height:72px; object-fit:cover; border:3px solid var(--edge)}
@media (max-width:640px){ .form{grid-template-columns:1fr} }

/* prose pages & blog */
.prose{max-width:68ch; margin-top:26px}
.prose p,.prose li{color:var(--ink)}
.prose p+p,.prose ul,.prose ol,.prose h2,.prose h3,.prose table,.prose blockquote{margin-top:20px}
.prose h2{font-size:clamp(21px,3.4vw,27px); font-weight:700; letter-spacing:-.01em}
.prose h3{font-size:19px; font-weight:700}
.prose ul,.prose ol{padding-left:22px}
.prose li+li{margin-top:6px}
.prose table{width:100%; border-collapse:collapse; border:3px solid var(--edge)}
.prose th,.prose td{padding:10px 12px; border-bottom:2px solid var(--edge); text-align:left}
.prose th{font-size:13.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted)}
.prose blockquote{border-left:4px solid var(--amber); padding-left:16px; color:var(--muted)}
.prose code{background:var(--soft); padding:2px 6px; font-size:.92em}
.meta{color:var(--muted); font-size:14.5px; margin-top:12px}
.posts{margin-top:26px; border-top:2px solid var(--edge)}
.post{padding:20px 0; border-bottom:2px solid var(--edge)}
.post :is(h2,h3){font-size:20px; font-weight:700}
.post :is(h2,h3) a{text-decoration:none}
.post :is(h2,h3) a:hover{text-decoration:underline}
.post p{color:var(--muted); margin-top:6px; max-width:62ch}
.post .meta{margin-top:6px}

.notice{border:3px solid var(--edge); background:var(--amber); color:#141418; padding:16px 18px; margin-top:24px; font-weight:500}
.notice a{color:#141418}
.two{display:grid; gap:18px; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); margin-top:24px}
.card{border:3px solid var(--edge); padding:20px 18px}
.card :is(h2,h3){font-size:18px; margin-bottom:8px}
.card p{color:var(--muted); font-size:15.5px}
.card p+p{margin-top:8px}

footer{padding-block:32px 46px; color:var(--muted); font-size:13.5px}
footer p+p{margin-top:8px}
footer nav{display:flex; flex-wrap:wrap; gap:6px 18px; margin-bottom:14px}
footer nav a{color:var(--ink); font-weight:600; text-decoration:none}
footer nav a:hover{text-decoration:underline}
.skip{position:absolute; left:-9999px}
.skip:focus{position:static}

.eligibility{margin-top:20px;border:2px solid var(--edge);padding:14px 18px;max-width:68ch}
.eligibility summary{cursor:pointer;font-weight:700;min-height:32px}
.eligibility p,.eligibility ul{margin-top:12px}
.eligibility summary:focus-visible{outline:3px solid var(--amber);outline-offset:3px}

.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:20px;margin:24px 0}.catalog-card{border:1px solid #7777;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:8px}.catalog-card img{width:100%;height:250px;object-fit:contain}.catalog-card h2{font-size:1.15rem;margin:8px 0}.catalog-card p{margin:0}.catalog-card small{opacity:.75}.catalog-card a{margin-top:8px}.catalog-price{font-weight:700}#catalog-search{display:block;max-width:100%;width:420px;padding:12px;margin-top:8px}

.catalog-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;align-items:end;margin:24px 0;padding:20px;border:1px solid #7777;border-radius:12px}.catalog-filters label{display:flex;flex-direction:column;gap:6px;font-weight:600}.catalog-filters .catalog-search-label{grid-column:1/-1}.catalog-filters input,.catalog-filters select{width:100%;min-width:0;box-sizing:border-box;padding:12px;border:1px solid #777;border-radius:6px;background:var(--paper,#fff);color:var(--ink);font:inherit}.catalog-filters #catalog-search{width:100%;margin:0}.catalog-filters button{padding:12px;border:1px solid currentColor;border-radius:6px;cursor:pointer;font:inherit}.catalog-filters :is(input,select,button):focus-visible{outline:3px solid #537f42;outline-offset:3px}

.catalog-suggestions { margin: 1.25rem 0; padding: 1rem; border: 1px solid #7777; border-radius: 12px; }
.catalog-suggestions h2 { margin-top: 0; }
.catalog-suggestions > div { display: flex; flex-wrap: wrap; gap: .5rem; }
.catalog-suggestions button, .catalog-card button { font: inherit; padding: .35rem .65rem; }
.catalog-card details > summary { cursor: pointer; margin: .4rem 0; }
.catalog-card label select { margin-left: .25rem; }

.catalog-more[hidden] { display: none; }

.home-paths { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.home-paths section { border: 1px solid #7777; border-radius: 12px; padding: 1.25rem; }
.home-paths section h2 { margin-top: 0; }
.home-search { display: flex; flex-wrap: wrap; align-items: end; gap: .5rem; margin-bottom: 1rem; }
.home-search label { flex-basis: 100%; }
.home-search input { flex: 1; min-width: 0; padding: .8rem; font: inherit; }
@media (max-width: 640px) { .home-paths { grid-template-columns: 1fr; } }

.catalog-filter-panel { grid-column: 1 / -1; }
.catalog-filter-panel summary { cursor: pointer; font-weight: 650; }
.catalog-filter-fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(135px, 1fr));
  gap: 12px;
  margin-top: .8rem;
}
.card-detail {
  width: min(34rem, calc(100% - 2rem));
  max-height: calc(100% - 2rem);
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--edge);
  border-radius: 12px;
  padding: 1rem;
}
.card-detail::backdrop { background: #141418aa; }
.card-detail > button { padding: .5rem .8rem; margin-bottom: .65rem; }
.card-detail .catalog-card { border: 0; padding: 0; }
.card-detail .catalog-card img { height: min(47vh, 390px); }
.catalog-card h2 a { color: inherit; }
@media (max-width: 640px) {
  .catalog-filters { gap: 10px; margin: 14px 0; padding: 12px; }
  .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .catalog-card { padding: 10px; }
  .catalog-card img { height: 160px; }
}
@media (max-width: 340px) {
  .catalog-grid { grid-template-columns: 1fr; }
}

.quote-extra > summary { cursor: pointer; font-weight: 600; }
.quote-extra > .form { margin-top: 1rem; }

.bulk-review{margin:2rem 0;padding:clamp(12px,3vw,28px);border:1px solid #7777;border-radius:12px}.bulk-counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:16px;min-width:0;border:1px solid #7777;border-radius:8px;padding:16px}.bulk-counts legend{font-weight:700}.bulk-actions{display:flex;flex-wrap:wrap;gap:12px}.bulk-review :is(input,textarea,button){max-width:100%;box-sizing:border-box}.bulk-review :is(input,textarea,button):focus-visible{outline:3px solid #537f42;outline-offset:3px}.bulk-review button{min-height:44px}.bulk-review .status{overflow-wrap:anywhere}.bulk-review .form>div{min-width:0}
.shopping-mode{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}.shopping-mode a{padding:12px 24px;border:1px solid currentColor;border-radius:999px;text-decoration:none;font-weight:700}.nav a[aria-current]{text-decoration:underline;text-underline-offset:6px}.shopping-mode a:focus-visible,.nav a:focus-visible{outline:3px solid #537f42;outline-offset:3px}
.bulk-review .btn:disabled{opacity:1;background:#ddd;color:#333;cursor:default}.bulk-review :is(input,textarea,button),#bulk-status{scroll-margin-top:130px}
.catalog-product-group{min-width:0;border:1px solid #7777;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px}.catalog-product-group label{font-weight:600}.catalog-product-group :is(select,input){display:block;width:100%;box-sizing:border-box;min-width:0;padding:10px;font:inherit;background:var(--paper);color:var(--ink)}.catalog-product-group .catalog-card{border:0;padding:0}.catalog-group-summary{font-weight:700;margin:0}.catalog-handoff-note{font-size:.85rem;margin:0;color:var(--muted)}.catalog-product-group :is(select,input):focus-visible{outline:3px solid #537f42;outline-offset:3px}

.catalog-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}.catalog-product-group h2{font-size:1.2rem;margin:0}

/* Readable primary-button color in either explicitly chosen theme. */
.btn-primary,.notice .btn-primary{background:#B82F1F;border-color:#B82F1F;color:#fff}
.home-carousel { margin: 0 0 1.25rem; }
.home-slide { position: relative; display: grid; align-items: center; min-height: clamp(220px, 28vw, 350px); overflow: hidden; border: 1px solid #7775; border-radius: 16px; isolation: isolate; background: #f8e8d6; }
.home-slide[hidden], .home-slide-controls[hidden] { display: none; }
.home-slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -1; }
.home-slide-copy { width: fit-content; max-width: min(80%, 28rem); margin: 1rem clamp(1rem, 4vw, 3rem); padding: 1rem 1.25rem; border-radius: 12px; background: #fff8ed; color: #171719; }
.home-slide-intro .home-slide-copy { margin-inline: auto; text-align: center; background: #fff8edf2; }
.home-slide-copy h1, .home-slide-copy h2 { margin: 0; font-size: clamp(1.6rem, 4vw, 2.7rem); line-height: 1.08; }
.home-slide-copy p { margin: .55rem 0; }
.home-slide-copy .btn { margin-top: .2rem; }
.home-slide-controls { display: flex; flex-wrap: wrap; justify-content: center; gap: .35rem; margin-top: .65rem; }
.home-slide-controls button { padding: .45rem .7rem; min-height: 44px; font: inherit; font-size: .9rem; border: 1px solid #7777; border-radius: 999px; color: inherit; background: transparent; cursor: pointer; }
.home-slide-controls button[aria-pressed="true"] { background: #252337; color: #fff; border-color: #252337; }
@media (max-width: 640px) {
  .home-slide { min-height: 205px; }
  .home-slide-copy { padding: .75rem; }
  .home-slide-intro img { object-position: 28% center; }
}

.quote-dialog{width:min(660px,calc(100vw - 24px));max-height:90dvh;overflow:auto;background:var(--paper);color:var(--ink);border:2px solid var(--edge);border-radius:18px;padding:clamp(16px,4vw,28px)}.quote-dialog::backdrop{background:#14141899}.quote-dialog h2{font-size:clamp(24px,5vw,32px);margin:20px 0}.quote-dialog .form{margin-top:20px}.quote-step{grid-column:1/-1;min-width:0;border:0;padding:0;display:grid;gap:20px}.quote-step[hidden]{display:none}.quote-step legend{font-weight:700;font-size:21px;margin-bottom:18px}.quote-step :is(input,select,textarea){width:100%;max-width:100%;box-sizing:border-box}.quote-guide-nav{display:flex;justify-content:space-between;gap:12px;margin-top:24px}.quote-dialog .btn{padding:12px 18px;min-height:44px}.quote-step section{margin-top:0}.quote-step #q-status{overflow-wrap:anywhere}#quote-full{margin-top:24px}#quote-full>summary{cursor:pointer}.quote-step legend:focus-visible{outline:3px solid var(--amber);outline-offset:4px}

.quote-dialog .form{border:0;padding:0;grid-template-columns:1fr}.quote-guide-nav{position:sticky;bottom:-16px;background:var(--paper);padding-block:12px;z-index:2}

.quote-dialog [hidden],#quote-start[hidden],#q-new[hidden]{display:none!important}

.card-typeahead { position: relative; min-width: 0; }
.home-search .card-typeahead { flex: 1; }
.home-search .card-typeahead input { width: 100%; }
.card-typeahead-list { position: absolute; z-index: 5; top: 100%; inset-inline: 0; margin: .3rem 0 0; padding: .25rem; list-style: none; background: #fff9ee; color: #252337; border: 1px solid #777; border-radius: 10px; box-shadow: 0 6px 18px #25233726; }
.card-typeahead-list li { display: grid; padding: .45rem .65rem; min-height: 44px; border-radius: 7px; cursor: pointer; overflow-wrap: anywhere; }
.card-typeahead-list li:hover, .card-typeahead-list li[aria-selected="true"] { background: #efe2d0; }
.catalog-featured { margin-block: 1rem; }
.catalog-featured h2 { margin-bottom: .5rem; }
.catalog-featured-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; padding: 0; list-style: none; }
.catalog-featured-grid a { display: flex; align-items: center; gap: .5rem; height: 100%; padding: .5rem; border: 1px solid #7777; border-radius: 10px; color: inherit; }
.catalog-featured-grid img { width: 38px; height: 53px; flex: none; object-fit: contain; }
.catalog-featured-grid span { min-width: 0; overflow-wrap: anywhere; }
.catalog-featured-grid small { display: block; }
@media (max-width: 760px) { .catalog-featured-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
