:root{
  --ink:#111827;
  --ink-2:#414844;
  --muted:#717973;
  --paper:#faf6ee;
  --paper-2:#fffdf8;
  --paper-3:#f1ead9;
  --line:#c1c8c2;
  --green:#1b4332;
  --green-ink:#012d1d;
  --mint:#dcefe4;
  --amber:#e8a33d;
  --amber-soft:#ffddb5;
  --red:#ba1a1a;
  --radius:8px;
}
*{box-sizing:border-box}
::selection{background:var(--amber-soft);color:var(--ink)}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height:1.6;
}
a{color:var(--green);text-decoration:none;border-bottom:1px solid transparent}
a:hover{border-bottom-color:var(--green)}
.wrap{max-width:1100px;margin:0 auto;padding:0 24px}
.topbar{border-bottom:2px solid var(--ink);background:var(--paper-2)}
.topbar-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between}
.brand{font-family:"Playfair Display", Georgia, serif;font-weight:700;font-size:1.35rem;letter-spacing:-.02em;color:var(--ink);text-decoration:none}
.brand span{color:var(--green)}
.pill{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--ink);border-radius:999px;padding:.28rem .68rem;background:var(--paper-2);color:var(--ink-2);font-size:.85rem;font-weight:600}
.hero{padding:72px 0 48px;border-bottom:1px solid var(--line)}
.eyebrow{color:var(--green);font-weight:800;text-transform:uppercase;letter-spacing:.14em;font-size:.78rem}
h1{font-family:"Playfair Display", Georgia, serif;font-size:clamp(3rem,7vw,5.6rem);line-height:1.02;letter-spacing:-.045em;margin:.4rem 0 1rem;max-width:920px}
.lede{font-size:clamp(1.12rem,2vw,1.35rem);line-height:1.55;color:var(--ink-2);max-width:840px}
.stamp{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:22px}
.hero-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:40px}
.panel,.card{background:var(--paper-2);border:1px solid var(--ink);border-radius:var(--radius)}
.panel.pad,.card{padding:24px}
.answer{padding:28px;display:grid;gap:14px;background:var(--mint);border:2px solid var(--green)}
.answer strong{font-size:1.12rem}
.answer p{margin:0;color:var(--ink-2)}
.answer ul{margin:0;padding-left:1.1rem}
.section{padding:64px 0 0}
.section h2{font-family:"Playfair Display", Georgia, serif;font-size:clamp(2rem,3.6vw,3rem);line-height:1.1;letter-spacing:-.03em;margin:0 0 12px;padding-bottom:12px;border-bottom:2px solid var(--ink)}
.section-intro{color:var(--ink-2);max-width:820px;margin:0 0 24px;font-size:1.02rem}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.card h3{margin:.1rem 0 .55rem;font-size:1.15rem;letter-spacing:-.01em}
.card p{margin:.4rem 0;color:var(--ink-2)}
.tag{display:inline-flex;align-items:center;border:1px solid var(--ink);border-radius:999px;padding:.24rem .62rem;background:var(--amber);color:var(--ink);font-weight:800;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.75rem}
.price{background:var(--paper-2);border:2px solid var(--amber)}
.provider{display:grid}
.provider p{margin:0;padding:14px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(180px,.9fr) 1.4fr;gap:16px;align-items:start}
.provider p:last-child{border-bottom:0}
.provider strong{font-size:1.05rem}
.provider .meta{display:block;color:var(--muted);font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-top:.25rem}
.provider .fit{display:block;color:var(--ink-2);margin:0}
.callout{border:1px solid var(--ink);background:var(--paper-2);border-radius:var(--radius);padding:22px}
.callout strong{display:block;margin-bottom:.4rem;font-size:1.02rem}
.callout p{margin:0;color:var(--ink-2)}
.callout.warn{background:var(--paper-3)}
.faq details{background:var(--paper-2);border:1px solid var(--ink);border-radius:var(--radius);padding:16px 18px;margin:12px 0}
.faq summary{cursor:pointer;font-weight:800;letter-spacing:-.01em}
.faq details[open]{border-color:var(--green)}
.footer{border-top:2px solid var(--ink);margin-top:64px;padding:28px 0 64px;color:var(--muted);font-size:.95rem;background:var(--paper-2)}
.linklist{display:grid;gap:.6rem;margin:0;padding:0;list-style:none}
.linklist li{padding-left:1rem;position:relative}
.linklist li:before{content:"";position:absolute;left:0;top:.72em;width:.42rem;height:.42rem;border-radius:50%;background:var(--amber)}
@media (max-width: 900px){
  .hero-grid,.grid-2,.grid-3{grid-template-columns:1fr}
  .hero{padding-top:48px}
  h1{font-size:clamp(2.4rem,13vw,4rem)}
  .provider p{grid-template-columns:1fr;gap:.35rem}
  .wrap{padding:0 16px}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}

/* Site chrome: nav, footer, category cards */
.nav{display:flex;gap:1.1rem;align-items:center;flex-wrap:wrap}
.nav a{color:var(--ink-2);font-weight:600;font-size:.88rem;border-bottom:2px solid transparent;padding-bottom:2px}
.nav a:hover{border-bottom-color:var(--amber);color:var(--ink)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;padding-top:8px}
.footer-brand p{margin:.7rem 0 0;color:var(--ink-2);max-width:420px}
.footer-note{font-size:.85rem;color:var(--muted)!important}
.footer-col strong{display:block;margin-bottom:.7rem;font-size:.95rem;color:var(--ink)}
.footer-meta{margin-top:28px;padding-top:18px;border-top:1px solid var(--line);font-size:.85rem}
.catcard{display:block;background:var(--paper-2);border:1px solid var(--ink);border-radius:var(--radius);padding:24px;color:var(--ink)}
.catcard:hover{border-color:var(--green);border-width:2px;padding:23px}
.catcard h3{font-family:"Playfair Display", Georgia, serif;font-size:1.6rem;letter-spacing:-.02em;margin:.1rem 0 .5rem}
.catcard p{margin:0 0 1rem;color:var(--ink-2)}
.catcard-cta{font-weight:700;color:var(--green);font-size:.95rem}
@media (max-width: 900px){
  .nav{display:none}
  .footer-grid{grid-template-columns:1fr}
}
.footer-brandline{margin:10px 0 0;color:var(--ink-2);font-weight:600}

/* Browse-by-job list */
.joblist{padding:8px 24px}
.jobrow{display:grid;grid-template-columns:1.1fr 2fr 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);align-items:baseline}
.jobrow:last-child{border-bottom:0}
.jobrow strong{font-size:1.02rem}
.jobdesc{color:var(--ink-2);font-size:.92rem}
.jobcities{text-align:right}
.jobcities a{font-weight:600;font-size:.88rem;margin-left:.9rem;white-space:nowrap}
@media (max-width: 900px){
  .jobrow{grid-template-columns:1fr;gap:.3rem}
  .jobcities{text-align:left}
  .jobcities a{margin-left:0;margin-right:.9rem}
}

/* Job rows as expanders */
details.jobrow{display:block;padding:0}
details.jobrow summary{display:grid;grid-template-columns:1.1fr 2fr auto;gap:16px;padding:14px 0;cursor:pointer;list-style:none;align-items:baseline}
details.jobrow summary::-webkit-details-marker{display:none}
details.jobrow summary::after{content:"+";font-family:"Playfair Display",serif;font-size:1.4rem;color:var(--green);line-height:1}
details.jobrow[open] summary::after{content:"–"}
details.jobrow summary:hover strong{color:var(--green)}
.jobcity-pick{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;padding:0 0 14px}
.jobcity-label{color:var(--muted);font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-right:.3rem}
.citypick{display:inline-flex;border:1px solid var(--ink);border-radius:999px;padding:.28rem .8rem;background:var(--paper-2);font-weight:600;font-size:.88rem;color:var(--ink)}
.citypick:hover{background:var(--green);color:var(--paper-2);border-color:var(--green)}
@media (max-width: 900px){
  details.jobrow summary{grid-template-columns:1fr auto}
  details.jobrow summary .jobdesc{grid-column:1 / -1}
}

/* === Stream architecture: hub decision board + sub-page components === */
.crumbs{font-size:.82rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.crumbs a{color:var(--green)}
.crumbs .sep{margin:0 .5rem;color:var(--line)}

/* Decision board on hubs */
.pathboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:36px}
.pathcard{display:flex;flex-direction:column;background:var(--paper-2);border:1px solid var(--ink);border-radius:var(--radius);padding:26px 26px 22px;color:var(--ink);position:relative;transition:transform .18s ease, border-color .18s ease, background .18s ease}
.pathcard:hover{transform:translateY(-3px);border-color:var(--green);background:var(--paper)}
.pathcard h3{font-family:"Playfair Display",Georgia,serif;font-size:1.7rem;letter-spacing:-.02em;margin:.35rem 0 .5rem;line-height:1.15}
.pathcard p{margin:0 0 1.2rem;color:var(--ink-2);flex:1}
.pathcard .pathfoot{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pathcard .arrow{font-size:1.3rem;color:var(--green);transition:transform .18s ease}
.pathcard:hover .arrow{transform:translateX(5px)}
.chip-price{display:inline-flex;align-items:center;border:1px solid var(--ink);border-radius:999px;padding:.26rem .7rem;background:var(--amber);font-weight:800;font-size:.8rem;letter-spacing:.04em;white-space:nowrap}

/* Provider rows (richer than card grids) */
.prows{border-top:2px solid var(--ink)}
.prow{display:flex;flex-direction:column;padding:18px 14px;border-bottom:1px solid var(--line);border-left:3px solid transparent;transition:background .15s ease, border-color .15s ease}
.prow-main{display:grid;grid-template-columns:1.15fr .75fr 1.7fr;gap:18px;align-items:start}
.prow:hover{background:var(--paper-3);border-left-color:var(--amber)}
.prow-name{font-size:1.08rem;font-weight:800;letter-spacing:-.01em}
.prow:hover .prow-name{color:var(--green)}
.prow-contact{display:block;color:var(--muted);font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-top:.3rem}
.prow-price{font-family:"Playfair Display",Georgia,serif;font-size:1.25rem;font-weight:700;color:var(--green-ink);line-height:1.2}
.prow-price small{display:block;font-family:Inter,sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:.25rem}
.prow-fit{color:var(--ink-2);font-size:.95rem}
.prow-fit strong{color:var(--ink)}

/* Price tables */
.ptable{width:100%;border-collapse:collapse;margin-top:8px}
.ptable th{background:var(--paper-3);border:1px solid var(--ink);padding:10px 14px;text-align:left;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.ptable td{border:1px solid var(--line);padding:12px 14px;vertical-align:top;color:var(--ink-2);font-size:.95rem}
.ptable tr:hover td{background:var(--paper-2)}
.ptable .num{font-family:"Playfair Display",Georgia,serif;font-size:1.15rem;font-weight:700;color:var(--green-ink);white-space:nowrap}

/* Size guide cards */
.sizeguide{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.sizecard{background:var(--paper-2);border:1px solid var(--ink);border-radius:var(--radius);padding:20px;transition:border-color .15s ease, transform .15s ease}
.sizecard:hover{border-color:var(--amber);transform:translateY(-2px)}
.sizecard .vol{font-family:"Playfair Display",Georgia,serif;font-size:2.6rem;font-weight:800;letter-spacing:-.03em;color:var(--green);line-height:1}
.sizecard .vollabel{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:.3rem 0 .8rem}
.sizecard h3{font-size:1rem;margin:0 0 .4rem}
.sizecard p{margin:0;color:var(--ink-2);font-size:.88rem}

/* FAQ motion */
.faq details summary{transition:color .15s ease}
.faq details summary:hover{color:var(--green)}
.faq details p{animation:fadein .2s ease}
@keyframes fadein{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}

@media (max-width: 900px){
  .pathboard{grid-template-columns:1fr}
  .prow{grid-template-columns:1fr;gap:.4rem}
  .sizeguide{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (prefers-reduced-motion: reduce){
  .pathcard,.sizecard,.prow,.faq details p{transition:none;animation:none}
}

/* provider rating badge + review signals */
.rate{display:inline-flex;align-items:baseline;gap:.35rem;border:1px solid;border-radius:999px;padding:.12rem .6rem;font-weight:800;font-size:.86rem;line-height:1.4;white-space:nowrap;transition:transform .15s ease}
.rate em{font-style:normal;font-weight:600;font-size:.7rem;opacity:.65}
.rate:hover{transform:translateY(-1px)}
.rate-hi{background:var(--mint);border-color:var(--green);color:var(--green-ink)}
.rate-mid{background:var(--amber-soft);border-color:var(--amber);color:var(--ink)}
.rate-lo{background:#f9e9e4;border-color:#b04a3a;color:#8f3226}
.prow-review{margin-top:1.05rem;display:flex;flex-direction:column;gap:.55rem}
.prow-reviewhead{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.revlabel{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.sigsrc{font-size:.66rem;font-weight:700;letter-spacing:.04em;color:var(--muted);text-transform:none;border:1px solid var(--line);border-radius:999px;padding:.04rem .5rem;background:var(--paper-2)}
.sigwrap{display:flex;flex-direction:column;gap:.5rem;margin-top:.6rem;animation:fadein .22s ease}
.sigline{display:flex;flex-wrap:wrap;gap:.45rem}
.sig{display:inline-flex;align-items:center;border-radius:999px;padding:.22rem .7rem;font-size:.8rem;font-weight:600;border:1px solid;transition:transform .15s ease}
.sig:hover{transform:translateY(-1px)}
.sig-pos{border-color:var(--green);color:var(--green-ink);background:var(--mint)}
.sig-neg{border-color:#b04a3a;color:#8f3226;background:#f9e9e4}
