  :root{
    --ink:#1B2027;
    --steel:#4B5661;
    --steel-light:#7A848D;
    --paper:#EEF0F1;
    --paper-raised:#FFFFFF;
    --line:#D6D9DC;
    --rust:#C2571A;
    --rust-dark:#9E4212;
    --brass:#A9812E;
    --focus:#0B63C4;
    --radius:6px;
    --max:1080px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter',system-ui,-apple-system,sans-serif;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{
    font-family:'Oswald',sans-serif;
    font-weight:600;
    line-height:1.15;
    margin:0 0 .5em;
  }
  h1{font-size:clamp(1.9rem,6vw,2.9rem); font-weight:700;}
  h2{font-size:clamp(1.4rem,4vw,1.9rem); border-bottom:3px solid var(--rust); display:inline-block; padding-bottom:.2em;}
  p{margin:0 0 1em; max-width:70ch;}
  a{color:var(--rust-dark);}
  a:focus-visible, button:focus-visible, summary:focus-visible{outline:3px solid var(--focus); outline-offset:2px;}
  img{max-width:100%; display:block;}
  .wrap{max-width:var(--max); margin:0 auto; padding:0 20px;}
  section{padding:48px 0;}
  .icon{width:20px; height:20px; flex-shrink:0;}

  /* Top bar */
  .topbar{
    background:var(--ink);
    color:#fff;
    font-size:.9rem;
  }
  .topbar .wrap{
    display:flex; align-items:center; justify-content:space-between;
    padding-top:8px; padding-bottom:8px; gap:12px; flex-wrap:wrap;
  }
  .topbar a{color:#fff; text-decoration:none; display:flex; align-items:center; gap:6px;}
  .status-pill{
    display:inline-flex; align-items:center; gap:6px;
    padding:3px 10px; border-radius:999px; font-weight:600; font-size:.82rem;
  }
  .status-pill.open{background:#254A2E; color:#8FE3A5;}
  .status-pill.closed{background:#4A2525; color:#F0A3A3;}
  .dot{width:8px; height:8px; border-radius:50%; background:currentColor;}

  /* Hero */
  .hero{
    background:
      linear-gradient(180deg, rgba(27,32,39,.94), rgba(27,32,39,.88)),
      repeating-linear-gradient(135deg, #2b323b 0 2px, #232931 2px 26px);
    color:#fff;
    padding:52px 0 44px;
  }
  .hero .tagline{color:#C7CDD3; font-size:1.05rem; max-width:56ch;}
  .rating-line{
    display:flex; align-items:center; gap:8px; flex-wrap:wrap;
    margin-bottom:20px; font-size:.98rem;
  }
  .stars{display:inline-flex; gap:2px; color:var(--brass);}
  .stars svg{width:18px; height:18px;}
  .cta-row{display:flex; flex-wrap:wrap; gap:12px; margin-top:8px;}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:13px 20px; border-radius:var(--radius);
    font-weight:600; font-size:.98rem; text-decoration:none;
    border:2px solid transparent; cursor:pointer; line-height:1;
    font-family:'Inter',sans-serif;
  }
  .btn-primary{background:var(--rust); color:#fff;}
  .btn-primary:hover{background:var(--rust-dark);}
  .btn-outline{background:transparent; color:#fff; border-color:#5A6068;}
  .btn-outline:hover{border-color:#fff;}
  .btn-light{background:#fff; color:var(--ink); border-color:#fff;}
  .btn-light:hover{background:#E9E9E9;}

  /* Info section */
  .info-grid{
    display:grid; grid-template-columns:1fr; gap:28px;
  }
  @media(min-width:800px){ .info-grid{grid-template-columns: 1.1fr 1fr;} }
  .card{
    background:var(--paper-raised);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:24px;
  }
  .nap-list{list-style:none; margin:0 0 20px; padding:0;}
  .nap-list li{
    display:flex; gap:12px; padding:10px 0; border-bottom:1px solid var(--line);
  }
  .nap-list li:last-child{border-bottom:none;}
  .nap-list .icon{color:var(--rust); margin-top:3px;}
  .hours-table{width:100%; border-collapse:collapse; font-size:.95rem;}
  .hours-table td{padding:6px 0; border-bottom:1px solid var(--line);}
  .hours-table tr:last-child td{border-bottom:none;}
  .hours-table td:last-child{text-align:right; color:var(--steel);}
  .hours-table tr.today td{font-weight:700; color:var(--ink);}
  .hours-table tr.today td:last-child{color:var(--rust-dark);}
  .map-frame{
    border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
    height:100%; min-height:280px;
  }
  .map-frame iframe{width:100%; height:100%; min-height:280px; border:0; display:block;}

  /* Products */
  .products-grid{
    display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
    gap:16px; margin:28px 0 32px;
  }
  .product-card{
    background:var(--paper-raised); border:1px solid var(--line);
    border-radius:var(--radius); padding:18px;
  }
  .product-card .icon{color:var(--rust); width:26px; height:26px; margin-bottom:10px;}
  .product-card h3{font-size:1.02rem; margin-bottom:.3em; font-family:'Inter',sans-serif; font-weight:700;}
  .product-card p{font-size:.9rem; color:var(--steel); margin:0;}
  .product-card.partner{
    border:2px dashed var(--brass); background:#FBF7EE;
  }
  .product-card.partner p{color:var(--steel);}
  .product-card.partner a{font-weight:600; font-size:.88rem;}

  /* Reviews */
  .review-summary{
    display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin-bottom:24px;
  }
  .review-summary .score{font-family:'Oswald',sans-serif; font-size:2.6rem; font-weight:700; line-height:1;}
  .reviews-grid{
    display:grid; grid-template-columns:1fr; gap:16px;
  }
  @media(min-width:760px){ .reviews-grid{grid-template-columns:1fr 1fr;} }
  .review-card{
    background:var(--paper-raised); border:1px solid var(--line);
    border-radius:var(--radius); padding:20px;
  }
  .review-card .stars{margin-bottom:8px;}
  .review-card .who{font-weight:700; margin-top:10px; font-size:.95rem;}
  .review-card .meta{color:var(--steel-light); font-size:.82rem;}
  .review-card p{font-size:.94rem; margin:0;}

  /* FAQ */
  .faq details{
    border-bottom:1px solid var(--line); padding:14px 0;
  }
  .faq summary{
    cursor:pointer; font-weight:600; font-size:1.02rem; list-style:none;
    display:flex; justify-content:space-between; align-items:center; gap:12px;
  }
  .faq summary::-webkit-details-marker{display:none;}
  .faq summary::after{content:"+"; font-size:1.4rem; color:var(--rust); flex-shrink:0;}
  .faq details[open] summary::after{content:"–";}
  .faq p{margin-top:10px; color:var(--steel);}

  /* SEO content block */
  .seo-block{background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius); padding:26px; margin-top:8px;}
  .seo-block p{max-width:none;}

  footer{
    background:var(--ink); color:#C7CDD3; padding:40px 0 100px;
    font-size:.92rem;
  }
  footer a{color:#fff;}
  footer .foot-grid{display:flex; flex-wrap:wrap; gap:30px; justify-content:space-between;}
  .social-row{display:flex; gap:14px; margin-top:14px;}
  .social-row a{
    width:38px; height:38px; border:1px solid #454C55; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
  }
  .social-row svg{width:18px; height:18px;}

  /* Sticky mobile CTA */
  .mobile-cta{
    position:fixed; bottom:0; left:0; right:0; z-index:50;
    display:flex; background:var(--paper-raised); border-top:1px solid var(--line);
    box-shadow:0 -4px 14px rgba(0,0,0,.12);
  }
  .mobile-cta a{
    flex:1; display:flex; align-items:center; justify-content:center; gap:8px;
    padding:14px 0; font-weight:700; text-decoration:none; font-size:.95rem;
  }
  .mobile-cta a:first-child{background:var(--rust); color:#fff;}
  .mobile-cta a:last-child{color:var(--ink);}
  @media(min-width:760px){ .mobile-cta{display:none;} }
  @media(max-width:759px){ body{padding-bottom:62px;} }

  .visually-hidden{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}

/* ===== Shared additions: category pages, product cards, footer links ===== */
.btn-dark{background:var(--ink); color:#fff;}
.btn-dark:hover{background:#333B44;}

/* Product / category cards (deep links) */
.product-card{position:relative; display:flex; flex-direction:column; transition:border-color .15s;}
.product-card:hover{border-color:var(--rust);}
.product-card .more{margin-top:auto; padding-top:14px; font-weight:600; font-size:.9rem; color:var(--rust-dark); text-decoration:none;}
.product-card .more::after{content:""; position:absolute; inset:0;}
.product-card .more:hover{text-decoration:underline;}
.product-card .more:focus-visible{outline:none;}
.product-card:has(.more:focus-visible){outline:3px solid var(--focus); outline-offset:2px;}
.product-card .inline-link{position:relative; z-index:2;}
.product-card h3{margin-bottom:.4em;}

/* Category page hero + breadcrumb */
.hero-sm{padding:30px 0 34px;}
.hero-sm .tagline{margin-bottom:20px;}
.crumbs{font-size:.88rem; color:#AEB6BD; margin-bottom:14px;}
.crumbs a{color:#fff; text-decoration:none; border-bottom:1px solid #5A6068;}
.crumbs span[aria-hidden]{margin:0 8px;}

/* Alternating sections */
section.alt{background:var(--paper-raised); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}

/* Product groups */
.group-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:16px; margin:24px 0 18px;}
.group-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:20px;}
.group-card h3{font-family:'Inter',sans-serif; font-size:1.02rem; font-weight:700; color:var(--rust-dark); margin-bottom:.6em;}
.check-list{list-style:none; margin:0; padding:0;}
.check-list li{position:relative; padding:6px 0 6px 20px; font-size:.93rem; line-height:1.4; border-bottom:1px dashed var(--line);}
.check-list li:last-child{border-bottom:none;}
.check-list li::before{content:""; position:absolute; left:2px; top:.95em; width:7px; height:7px; background:var(--rust); border-radius:50%;}
.callout{border-left:4px solid var(--rust); background:var(--paper); padding:14px 18px; border-radius:0 var(--radius) var(--radius) 0; margin-top:6px;}

/* Tips list */
.tips-list{counter-reset:tip; list-style:none; margin:22px 0 0; padding:0; max-width:760px;}
.tips-list li{counter-increment:tip; position:relative; padding:12px 0 12px 50px; border-bottom:1px solid var(--line);}
.tips-list li:last-child{border-bottom:none;}
.tips-list li::before{content:counter(tip); position:absolute; left:0; top:10px; width:32px; height:32px; border-radius:50%; background:var(--ink); color:#fff; font-family:'Oswald',sans-serif; font-weight:600; display:flex; align-items:center; justify-content:center;}

/* Customer quotes */
.quote-grid{display:grid; grid-template-columns:1fr; gap:16px; margin-top:22px;}
@media(min-width:760px){ .quote-grid{grid-template-columns:1fr 1fr;} }
.quote{margin:0; background:var(--paper-raised); border:1px solid var(--line); border-left:4px solid var(--brass); border-radius:var(--radius); padding:18px 20px;}
.quote p{margin:0 0 .6em; font-size:.97rem;}
.quote .by{color:var(--steel-light); font-size:.84rem; margin:0;}

/* Footer link columns */
.foot-links{list-style:none; margin:0; padding:0;}
.foot-links li{margin:7px 0;}
.foot-links a{color:#C7CDD3; text-decoration:none;}
.foot-links a:hover{color:#fff; text-decoration:underline;}

/* Visit block */
.visit .cta-row{margin-top:18px;}
