.hub-page { background:#fff; color:#0a0a0a; }
.hub-primary-nav { display:flex; align-items:center; gap:24px; margin-left:auto; font-size:13px; }
.hub-primary-nav a:hover,.hub-page footer nav a:hover { text-decoration:underline; text-underline-offset:4px; }
.hub-main { max-width:1240px; margin:auto; padding:32px 24px 80px; }
.hub-hero { padding:68px 0 72px; max-width:920px; }
.hub-hero--geo { max-width:1000px; }
.hub-eyebrow,.range-tool-kicker { margin:0 0 14px; color:#666; font-size:12px; letter-spacing:.12em; text-transform:uppercase; }
.hub-hero h1 { max-width:1000px; font-size:clamp(38px,6vw,76px); line-height:1.02; }
.hub-hero > p:last-of-type { max-width:760px; margin:24px 0 0; color:#555; font-size:18px; line-height:1.65; }
.hub-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.hub-button { display:inline-flex; justify-content:center; align-items:center; min-height:48px; padding:0 22px; border:1px solid #111; border-radius:7px; background:#111; color:#fff; font-size:14px; }
.hub-button--ghost { background:#fff; color:#111; }
.hub-button:hover { transform:translateY(-1px); }
.hub-proof { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid #e5e5e5; border-radius:10px; overflow:hidden; }
.hub-proof article { min-width:0; padding:28px; border-right:1px solid #e5e5e5; }
.hub-proof article:last-child { border:0; }
.hub-proof span { color:#888; font-size:12px; }
.hub-proof p { margin:24px 0 0; font-size:16px; line-height:1.5; }
.hub-section { margin-top:88px; }
.hub-section-heading { display:flex; justify-content:space-between; align-items:end; gap:28px; margin-bottom:28px; }
.hub-section-heading > p,.hub-section-heading > a { color:#666; font-size:13px; }
.hub-products { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:34px 22px; }
.hub-products article { min-width:0; }
.hub-products article a > div { display:grid; place-items:center; aspect-ratio:4/3; border-radius:12px; background:radial-gradient(circle at 50% 62%,#fff 0,#f2efe8 38%,#ded8cd 100%); overflow:hidden; }
.hub-products img { width:100%; height:100%; padding:6%; object-fit:contain; mix-blend-mode:normal; filter:drop-shadow(0 13px 12px rgba(25,22,18,.14)); transition:transform .35s ease; }
.hub-products article:hover img { transform:scale(1.025); }
.hub-products article p { margin:15px 0 7px; color:#777; font-size:12px; }
.hub-products h3 { min-height:44px; margin:0 0 10px; font-size:16px; line-height:1.35; font-weight:500; }
.hub-products article strong { font-size:15px; }
.hub-products article:hover h3 { text-decoration:underline; text-underline-offset:4px; }
.hub-empty { padding:38px; border-radius:9px; background:#f6f6f6; }
.hub-empty p { max-width:650px; color:#666; line-height:1.6; }
.hub-empty .hub-button { margin-top:12px; }
.hub-cities { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border:1px solid #e5e5e5; border-radius:9px; overflow:hidden; }
.hub-cities a { min-width:0; padding:18px; border-right:1px solid #eee; border-bottom:1px solid #eee; }
.hub-cities strong,.hub-cities span { display:block; overflow-wrap:anywhere; }
.hub-cities strong { font-size:13px; }
.hub-cities span { margin-top:6px; color:#777; font-size:11px; }
.hub-cities a:hover { background:#f7f7f7; }
.hub-keywords { margin-top:72px; padding:34px; border-radius:9px; background:#111; color:#fff; }
.hub-keywords ul { display:flex; flex-wrap:wrap; gap:10px; margin:22px 0 0; padding:0; list-style:none; }
.hub-keywords li { padding:10px 14px; border:1px solid #444; border-radius:999px; color:#ddd; font-size:13px; }
.hub-faq { max-width:880px; margin:88px 0 0; }
.hub-faq details { border-bottom:1px solid #ddd; }
.hub-faq summary { padding:22px 0; cursor:pointer; font-size:16px; font-weight:600; }
.hub-faq details p { max-width:720px; margin:0 0 24px; color:#555; line-height:1.65; }
.delivery-panel { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; padding:42px; border-radius:10px; background:#f4f4f4; }
.delivery-panel strong { display:block; font-size:52px; letter-spacing:-.04em; }
.delivery-panel p,.delivery-panel li { color:#555; line-height:1.65; }
.delivery-panel ul { padding-left:18px; }
.range-tool { margin-top:88px; padding:42px; border-radius:11px; background:#f3f3f3; }
.range-tool-heading { max-width:760px; }
.range-tool-heading > p:last-child { color:#555; line-height:1.65; }
.range-tool-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr); gap:42px; margin-top:34px; }
.range-choice { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0; padding:0; border:0; }
.range-choice legend { margin-bottom:12px; font-size:13px; font-weight:600; }
.range-choice label { position:relative; min-width:0; }
.range-choice input { position:absolute; opacity:0; }
.range-choice span { display:block; height:100%; padding:18px; border:1px solid #d2d2d2; border-radius:8px; background:#fff; cursor:pointer; }
.range-choice input:checked + span { border-color:#111; box-shadow:inset 0 0 0 1px #111; }
.range-choice input:focus-visible + span { outline:2px solid #111; outline-offset:4px; }
.range-choice strong,.range-choice small { display:block; }
.range-choice small { margin-top:8px; color:#666; line-height:1.45; }
.range-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin-top:28px; }
.range-fields label { display:flex; flex-direction:column; gap:9px; min-width:0; font-size:13px; font-weight:600; }
.range-fields output { color:#666; font-weight:400; }
.range-fields select { width:100%; height:44px; padding:0 12px; border:1px solid #ccc; border-radius:7px; background:#fff; color:#111; }
.range-fields input[type=range] { width:100%; accent-color:#111; }
.range-results { min-width:0; padding:30px; border-radius:9px; background:#111; color:#fff; }
.range-results > p:first-child { margin:0 0 8px; color:#aaa; font-size:13px; }
.range-results > strong { display:block; font-size:clamp(42px,6vw,68px); letter-spacing:-.05em; }
.range-meter { height:7px; margin:18px 0 28px; border-radius:99px; background:#333; overflow:hidden; }
.range-meter i { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,#fff 0 33%,#1c69ff 33% 66%,#e53035 66%); transition:width .25s ease; }
.range-results dl > div { border-color:#333; }
.range-results dt { color:#aaa; }
.range-base-price,.range-disclaimer { color:#aaa; font-size:12px; line-height:1.55; }
.range-base-price strong { color:#fff; }
.hub-page .product-footer nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px 18px; }
@media(max-width:900px) {
  .hub-products { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hub-cities { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .range-tool-grid,.delivery-panel { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:767px) {
  .hub-primary-nav { gap:12px; }
  .hub-primary-nav a:last-child { display:none; }
  .hub-main { padding:24px 20px 56px; }
  .hub-hero { padding:38px 0 46px; }
  .hub-hero h1 { font-size:39px; }
  .hub-hero > p:last-of-type { font-size:16px; }
  .hub-proof { grid-template-columns:minmax(0,1fr); }
  .hub-proof article { border-right:0; border-bottom:1px solid #e5e5e5; }
  .hub-section,.range-tool,.hub-faq { margin-top:58px; }
  .hub-section-heading { align-items:start; flex-direction:column; gap:10px; }
  .hub-products { grid-template-columns:minmax(0,1fr); }
  .hub-cities { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .delivery-panel,.range-tool { padding:26px 20px; gap:30px; }
  .delivery-panel strong { font-size:40px; }
  .range-choice,.range-fields { grid-template-columns:minmax(0,1fr); }
  .range-results { padding:24px 20px; }
  .hub-page .product-footer nav { justify-content:flex-start; }
}
@media(prefers-reduced-motion:reduce) { .range-meter i,.hub-button { transition:none; transform:none!important; } }
