:root{
    --ink:#1c1a17;
    --panel:#242019;
    --steel:#4a5560;
    --steel-light:#7c8894;
    --paper:#f5f3ee;
    --paper-dim:#e8e4da;
    --orange:#d9530a;
    --orange-dark:#b8460a;
    --bronze:#8a5a32;
    --line:#d9d4c6;
    --radius:4px;
    --maxw:960px;
    font-size:16px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:"Source Sans 3",system-ui,sans-serif;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{
    font-family:"Barlow Condensed",system-ui,sans-serif;
    font-weight:800;
    line-height:1.05;
    letter-spacing:0.01em;
    margin:0 0 .4em;
    color:var(--ink);
  }
  h1{font-size:clamp(2.4rem,9vw,3.6rem);}
  h2{font-size:clamp(1.6rem,5.5vw,2.1rem); border-bottom:3px solid var(--orange); display:inline-block; padding-bottom:.15em;}
  h3{font-size:1.25rem; font-weight:700;}
  p{margin:0 0 1em;}
  a{color:var(--orange-dark);}
  img{max-width:100%; display:block;}
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 1.25rem;}
  .container-fluid{width:100%;}

  /* ---- Top strip ---- */
  .topstrip{background:var(--ink); color:var(--paper-dim); font-size:.85rem; padding:.45rem 0;}
  .topstrip .wrap{display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;}
  .topstrip a{color:var(--paper-dim); text-decoration:none;}
  .topstrip a:hover{color:var(--orange);}

  /* ---- Hero ---- */
  .hero{background:var(--panel); color:var(--paper); padding:2.6rem 0 2.2rem; position:relative; overflow:hidden;}
  .hero::before{
    content:"";
    position:absolute; inset:0;
    background:repeating-linear-gradient(115deg, rgba(255,255,255,.03) 0 26px, transparent 26px 90px);
    pointer-events:none;
  }
  .hero .wrap{position:relative;}
  .eyebrow-row{display:flex; align-items:center; gap:.6rem; margin-bottom:.6rem;}
  .bolt-icon{width:30px; height:30px; flex:none;}
  .category-tag{color:var(--orange); font-weight:700; font-size:.95rem;}
  .hero h1{color:#fff; margin-bottom:.25rem;}
  .hero .tagline{color:var(--paper-dim); font-size:1.05rem; max-width:38ch; margin-bottom:1.4rem;}
  .rating-inline{display:flex; align-items:center; gap:.5rem; margin-bottom:1.5rem; font-size:.95rem; color:var(--paper-dim);}
  .stars{color:var(--orange); letter-spacing:1px;}

  .cta-row{display:flex; flex-wrap:wrap; gap:.65rem;}
  .btn{
    display:inline-flex; align-items:center; gap:.5rem;
    font-family:"Source Sans 3",sans-serif; font-weight:700; font-size:.95rem;
    padding:.75rem 1.15rem; border-radius:var(--radius); text-decoration:none;
    border:2px solid transparent; transition:transform .12s ease, background .15s ease;
  }
  .btn:active{transform:scale(.98);}
  .btn-primary{background:var(--orange); color:#fff;}
  .btn-primary:hover{background:var(--orange-dark);}
  .btn-outline{background:transparent; color:#fff; border-color:var(--steel-light);}
  .btn-outline:hover{border-color:#fff;}
  .btn svg{width:18px; height:18px; flex:none;}

  /* ---- Info section ---- */
  .info-section{padding:2.4rem 0;}
  .info-grid{display:grid; grid-template-columns:1fr; gap:1.5rem;}
  @media(min-width:700px){ .info-grid{grid-template-columns:1.1fr .9fr;} }
  .info-card{
    background:#fff; border:1px solid var(--line); border-left:5px solid var(--orange);
    border-radius:var(--radius); padding:1.3rem 1.4rem;
  }
  .info-card dl{margin:0; display:grid; grid-template-columns:auto 1fr; gap:.5rem 1rem; font-size:.98rem;}
  .info-card dt{font-weight:700; color:var(--steel);}
  .info-card dd{margin:0;}
  .hours-table{width:100%; border-collapse:collapse; font-size:.95rem;}
  .hours-table td{padding:.4rem 0; border-bottom:1px solid var(--paper-dim);}
  .hours-table td:last-child{text-align:right; font-weight:600;}
  .hours-table tr.today td{color:var(--orange-dark); font-weight:700;}
  .closed{color:var(--steel-light);}

  /* ---- Products / SEO content ---- */
  .products-section{background:var(--paper-dim); padding:2.6rem 0;}
  .products-grid{display:grid; grid-template-columns:1fr; gap:1.1rem; margin-top:1.4rem;}
  @media(min-width:640px){ .products-grid{grid-template-columns:1fr 1fr;} }
  @media(min-width:960px){ .products-grid{grid-template-columns:1fr 1fr 1fr;} }
  .product-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.1rem 1.2rem;}
  .product-card h3{margin-bottom:.35rem; color:var(--ink);}
  .product-card p{margin-bottom:0; font-size:.93rem; color:#3d3a35;}
  .partner-slot{
    border:2px dashed var(--steel-light); background:#fff;
  }
  .partner-slot h3{color:var(--steel);}
  .partner-slot .badge{display:inline-block; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--steel-light); border:1px solid var(--steel-light); border-radius:3px; padding:.1rem .4rem; margin-bottom:.4rem;}

  /* ---- Reviews ---- */
  .reviews-section{padding:2.6rem 0;}
  .rating-summary{display:flex; align-items:center; gap:1.1rem; margin:1rem 0 1.6rem; flex-wrap:wrap;}
  .rating-number{font-family:"Barlow Condensed",sans-serif; font-weight:800; font-size:3rem; line-height:1;}
  .rating-summary .stars{font-size:1.3rem;}
  .rating-meta{color:var(--steel); font-size:.92rem;}
  .review-grid{display:grid; grid-template-columns:1fr; gap:1rem;}
  @media(min-width:700px){ .review-grid{grid-template-columns:1fr 1fr;} }
  .review-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.1rem 1.2rem;}
  .review-card .stars{display:block; margin-bottom:.4rem; font-size:.95rem;}
  .review-card p{font-size:.94rem; margin-bottom:.5rem; color:#2f2c28;}
  .review-card cite{font-style:normal; font-weight:700; font-size:.88rem; color:var(--steel);}
  .review-cta{margin-top:1.4rem;}

  /* ---- FAQ ---- */
  .faq-section{background:var(--paper-dim); padding:2.6rem 0;}
  .faq-item{background:#fff; border:1px solid var(--line); border-radius:var(--radius); margin-bottom:.7rem; overflow:hidden;}
  .faq-item summary{
    cursor:pointer; font-weight:700; padding:.9rem 1.1rem; list-style:none; position:relative;
    font-family:"Barlow Condensed",sans-serif; font-size:1.1rem;
  }
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary::after{content:"+"; position:absolute; right:1.1rem; top:.75rem; font-size:1.4rem; color:var(--orange);}
  .faq-item[open] summary::after{content:"\2212";}
  .faq-item .faq-a{padding:0 1.1rem 1rem; font-size:.95rem; color:#3d3a35;}

  /* ---- Map ---- */
  .map-section{padding:0;}
  .map-section iframe{width:100%; height:340px; border:0; display:block;}

  footer{background:var(--ink); color:var(--paper-dim); padding:2rem 0 5.5rem; font-size:.88rem;}
  footer .wrap{display:flex; flex-direction:column; gap:.5rem;}
  footer a{color:var(--paper-dim);}
  footer .foot-links a{color:var(--orange); margin-right:1rem; text-decoration:none; font-weight:600;}

  /* ---- Sticky mobile CTA bar ---- */
  .sticky-cta{
    position:fixed; left:0; right:0; bottom:0; z-index:50;
    display:flex; background:var(--ink); border-top:2px solid var(--orange);
    padding-bottom:env(safe-area-inset-bottom,0);
  }
  .sticky-cta a{
    flex:1; text-align:center; color:#fff; text-decoration:none; font-weight:700;
    padding:.8rem .5rem; font-size:.92rem; display:flex; align-items:center; justify-content:center; gap:.4rem;
  }
  .sticky-cta a:first-child{background:var(--orange);}
  .sticky-cta a svg{width:16px; height:16px;}
  @media(min-width:760px){ .sticky-cta{display:none;} }
  @media(min-width:760px){ body{padding-bottom:0;} }
  body{padding-bottom:64px;}
  @media(min-width:760px){ body{padding-bottom:0;} }

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

  /* ---- Added for category pages and homepage grid ---- */
  a:focus-visible,summary:focus-visible,.btn:focus-visible{outline:3px solid var(--orange);outline-offset:2px;}
  .hero a:not(.btn),.page-cta a:not(.btn){color:#ffb48a;}
  .crumbs{font-size:.88rem;margin-bottom:.9rem;color:var(--steel-light);}
  .crumbs a{color:var(--paper-dim)!important;text-decoration:underline;text-underline-offset:3px;}
  .crumbs [aria-current]{color:#fff;}
  .hero .lead{color:var(--paper-dim);font-size:1.05rem;max-width:56ch;margin-bottom:1.4rem;}
  .prose{max-width:70ch;}
  .prose h2{margin-top:2rem;}
  .group-grid{display:grid;grid-template-columns:1fr;gap:1rem;margin:1.2rem 0 1rem;}
  @media(min-width:700px){.group-grid{grid-template-columns:1fr 1fr;}}
  .group-card{background:#fff;border:1px solid var(--line);border-top:4px solid var(--orange);border-radius:var(--radius);padding:1.1rem 1.2rem;}
  .group-card h3{margin-bottom:.4rem;}
  .group-card ul{margin:0;padding-left:1.1rem;font-size:.95rem;color:#2f2c28;}
  .group-card li{margin-bottom:.25rem;}
  .stock-note{border-left:5px solid var(--steel);background:#fff;padding:.9rem 1.1rem;font-size:.95rem;margin:1.2rem 0;max-width:70ch;}
  .tips{padding-left:1.2rem;max-width:70ch;}
  .tips li{margin-bottom:.5rem;}
  .related-section{padding:2.6rem 0;}
  .cat-grid{display:grid;grid-template-columns:1fr;gap:1rem;margin-top:1.4rem;}
  @media(min-width:640px){.cat-grid{grid-template-columns:1fr 1fr;}.cat-grid .cat-card:nth-child(7):nth-last-child(2){grid-column:span 2;}}
  @media(min-width:900px){.cat-grid{grid-template-columns:1fr 1fr 1fr;}.cat-grid .cat-card:nth-child(7):nth-last-child(2){grid-column:auto;}}
  .cat-card{display:block;background:#fff;border:1px solid var(--line);border-left:5px solid var(--orange);border-radius:var(--radius);padding:1.1rem 1.2rem;text-decoration:none;color:var(--ink);transition:border-color .15s ease,background .15s ease;}
  .cat-card:hover{border-left-color:var(--ink);background:#fffdf8;}
  .cat-card h3{margin-bottom:.35rem;}
  .cat-card p{font-size:.93rem;color:#3d3a35;margin-bottom:.6rem;}
  .cat-card .more{color:var(--orange-dark);font-weight:700;font-size:.9rem;}
  .feature-strip{grid-column:1/-1;border:2px dashed var(--steel-light);background:#fff;border-radius:var(--radius);padding:1.2rem 1.3rem;}
  @media(min-width:900px){.feature-strip{grid-column:span 2;}}
  .feature-strip .badge{display:inline-block;font-size:.78rem;font-weight:700;color:var(--steel);border:1px solid var(--steel-light);border-radius:3px;padding:.1rem .45rem;margin-bottom:.45rem;}
  .feature-strip p{font-size:.95rem;margin-bottom:.6rem;}
  .page-cta{background:var(--panel);color:var(--paper);padding:2.2rem 0;}
  .page-cta h2{color:#fff;}
  .page-cta p{color:var(--paper-dim);max-width:60ch;}
  footer .foot-cats{display:flex;flex-wrap:wrap;gap:.35rem 1rem;}
  footer .foot-cats a{color:var(--paper-dim);}
  footer .foot-title{color:#fff;font-weight:700;margin-top:.6rem;}
