  /* ============ TOKENS ============ */
  #bs-app{
    color-scheme: light;
    --navy-950:#1E1A17;
    --navy-900:#2A2421;
    --navy-800:#3B332E;
    --navy-700:#4A4038;
    --gold-600:#B8935C;
    --gold-500:#D1B48C;
    --gold-300:#E8D7BC;
    --gold-100:#F4EBDD;
    --taupe:#EFECE6;
    --cream:#FDFBF7;
    --white:#FFFFFF;
    --ink-900:#2A2421;
    --ink-500:#8A7F73;
    --ink-300:#CBBBA3;
    --line:#E7E1D5;
    --radius-lg:26px;
    --radius-md:18px;
    --radius-sm:12px;
    --shadow-soft:0 12px 30px -14px rgba(42,36,33,0.28);
    --shadow-card:0 8px 22px -10px rgba(42,36,33,0.14);
    --font-display:'Cormorant Garamond', serif;
    --font-headline:'Prompt', sans-serif;
    --font-logo:'Playlist Script', cursive;
    --font-body:'Inter', sans-serif;

    all:initial;
    *,*::before,*::after{box-sizing:border-box}
    display:block;
    font-family:var(--font-body);
    color:var(--ink-900);
    background:#E9E2D2;
    min-height:100vh;
    -webkit-font-smoothing:antialiased;
  }
  #bs-app *{ box-sizing:border-box; }
  #bs-app button{font-family:inherit; cursor:pointer; margin:0; -webkit-appearance:none; appearance:none; text-align:inherit;}
  #bs-app a{ text-decoration:none; color:inherit; }
  #bs-app ul{ list-style:none; margin:0; padding:0; }
  #bs-app h1,#bs-app h2,#bs-app h3,#bs-app p{ margin:0; }
  #bs-app :focus-visible{ outline:2px solid var(--gold-500); outline-offset:2px; }

  /* ============ APP FRAME ============ */
  .bs-frame{
    max-width:460px;
    margin:0 auto;
    background:var(--cream);
    min-height:100vh;
    position:relative;
    box-shadow:var(--shadow-soft);
    overflow:hidden;
    padding-bottom:104px;
  }
  .bs-contactcard, .bs-listing, .bs-service, .bs-catcard, .bs-pcard,
  .bs-article, .bs-badgechip, .bs-quickcard, .bs-reviewcard{
    -webkit-transform:translateZ(0);
    transform:translateZ(0);
  }
  @media(min-width:99999px){
    #bs-app{ background:var(--cream); }
    .bs-frame{
      max-width:100%;
      box-shadow:none;
      border-radius:0;
      overflow:visible;
    }
  }

  /* ============ HEADER ============ */
  .bs-header{
    color:var(--white);
    padding:26px 22px 50px;
    position:relative;
    overflow:hidden;
    border-radius:0 0 28px 28px;
  }
  .bs-header::before{
    content:"";
    position:absolute; top:0; left:0; right:0; bottom:0;
    background-image:url('assets/header-bg.jpg');
    background-size:cover;
    background-position:center;
    opacity:0.5;
    z-index:0;
  }
  .bs-header::after{
    content:"";
    position:absolute; top:0; left:0; right:0; bottom:0;
    background:
      radial-gradient(120% 140% at 100% 0%, rgba(198,161,91,0.20), transparent 55%),
      linear-gradient(160deg, rgba(59,51,46,0.80) 0%, rgba(42,36,33,0.86) 55%, rgba(30,26,23,0.90) 100%);
    z-index:1;
  }
  .bs-header > *{ position:relative; z-index:2; }
  .bs-crestrow{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:20px;
  }
  .bs-brand{ display:flex; align-items:center; gap:12px; }
  .bs-logo-mark{
    display:inline-block;
    width:40px;
    height:24px;
    object-fit:contain;
    object-position:left center;
    flex-shrink:0;
  }
  .bs-brandname{ line-height:1.1; }
  .bs-brandname .en{
    font-family:var(--font-display); font-size:19px; letter-spacing:0.03em; font-weight:600;
    display:block; color:var(--white);
  }
  .bs-brandname .sub{
    font-size:10.5px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-300);
    display:block; margin-top:2px;
  }
  .bs-badge{
    display:inline-flex; align-items:center; justify-content:center; gap:4px;
    background:rgba(198,161,91,0.18);
    border:1.5px solid rgba(209,180,140,0.85);
    color:var(--gold-300);
    padding:7px 12px;
    border-radius:999px;
    font-size:11px; font-weight:700; letter-spacing:0.04em; line-height:1;
    white-space:nowrap; flex-shrink:0;
  }
  .bs-badge svg{ width:12px; height:12px; flex-shrink:0; display:block; position:relative; top:1px; }

  .bs-headline{
    font-family:var(--font-headline);
    font-weight:600;
    font-size:22px;
    line-height:1.42;
    letter-spacing:-0.01em;
    max-width:360px;
    margin:0 auto 12px !important;
    text-align:center !important;
  }
  .bs-headline .bs-logofont{
    font-family:var(--font-logo);
    color:var(--gold-300);
    font-weight:400;
    font-size:1.35em;
    line-height:1;
    vertical-align:-0.08em;
  }
  .bs-sub{
    font-size:13.5px; color:var(--ink-300); line-height:1.6; max-width:320px;
    margin:0 auto 20px !important; text-align:center !important;
  }
  .bs-pagehead{
    font-family:var(--font-display); font-weight:600; font-size:28px; margin-bottom:6px;
  }
  .bs-pagesub{ font-size:13px; color:var(--ink-300); max-width:300px; line-height:1.55; }

  .bs-stats{ display:flex; align-items:center; gap:6px; flex-wrap:nowrap; justify-content:center; }
  .bs-stat{
    background:rgba(255,255,255,0.05);
    border:1px solid rgba(255,255,255,0.12);
    border-radius:999px;
    padding:7px 11px;
    font-size:10px;
    line-height:1;
    color:var(--white);
    white-space:nowrap;
    flex-shrink:0;
    display:inline-flex; align-items:center; justify-content:center; gap:4px;
  }
  .bs-stat svg{ width:11px; height:11px; color:var(--gold-300); flex-shrink:0; display:block; }

  /* ============ QUICK ACTIONS (floating card) ============ */
  .bs-quickcard{
    background:var(--white);
    border-radius:22px;
    box-shadow:var(--shadow-card);
    margin:0 18px;
    position:relative;
    z-index:10;
    top:-30px;
    padding:20px 10px 16px;
    display:flex;
    justify-content:space-around;
  }
  .bs-quickitem{
    display:flex; flex-direction:column; align-items:center; gap:9px;
    background:none; border:none; color:var(--ink-900);
    width:31%;
  }
  .bs-quickicon{
    width:52px; height:52px; border-radius:50%;
    background:linear-gradient(160deg, var(--gold-100), var(--gold-300) 130%);
    display:flex; align-items:center; justify-content:center;
    color:var(--navy-900);
  }
  .bs-quickicon svg{ width:22px; height:22px; }
  .bs-quickitem span{ font-size:11.5px; font-weight:600; letter-spacing:0.01em; text-align:center; }

  .bs-quickcard-single{ padding:14px; display:block; }
  .bs-cta-main{
    width:100%; border:none; display:flex; align-items:center; gap:14px;
    background:linear-gradient(135deg, var(--gold-300), var(--gold-600));
    border-radius:18px; padding:16px 18px; text-align:left;
  }
  .bs-cta-main-icon{
    width:48px; height:48px; border-radius:50%; flex-shrink:0;
    background:var(--navy-900); color:var(--gold-300);
    display:flex; align-items:center; justify-content:center;
  }
  .bs-cta-main-icon svg{ width:22px; height:22px; }
  .bs-cta-main-text{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
  .bs-cta-main-text strong{ font-size:clamp(13px, 4vw, 16px); color:var(--navy-900); font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .bs-cta-main-text small{ font-size:clamp(9.5px, 2.8vw, 11px); color:var(--navy-900); opacity:0.75; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block; }
  .bs-cta-main-arrow{ flex-shrink:0; color:var(--navy-900); width:22px; height:22px; }
  .bs-cta-main-arrow svg{ width:100%; height:100%; }

  /* ============ CONTENT SHEET ============ */
  .bs-sheet{
    background:var(--cream);
    margin-top:-30px;
    position:relative;
    padding:6px 20px 30px;
  }
  .bs-sheet.no-quick{ margin-top:-8px; border-radius:22px 22px 0 0; padding-top:26px; }

  .bs-sectionhead{
    display:flex; align-items:baseline; justify-content:space-between;
    margin:26px 0 14px;
  }
  .bs-sectionhead h2{
    font-family:var(--font-display); font-weight:600; font-size:21px; color:var(--navy-900);
  }
  .bs-linkheading{
    background:none; border:none; padding:0; font:inherit; color:inherit; cursor:pointer;
    display:inline-flex; align-items:center; gap:6px;
  }
  .bs-linkheading::after{
    content:"›"; color:var(--gold-600); font-size:0.9em; font-weight:700;
  }
  .bs-sectionhead .bs-viewall{
    font-size:11.5px; color:var(--gold-600); font-weight:600; letter-spacing:0.03em;
    background:none; border:none; padding:0; margin:0; cursor:pointer; font-family:inherit;
    -webkit-appearance:none; appearance:none;
  }
  .bs-eyebrow{
    font-size:10.5px; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold-600);
    font-weight:700; margin-bottom:4px; display:block;
  }

  /* ---- video review cards (2-column) ---- */
  .bs-reviewgrid{ display:flex; gap:14px; overflow-x:auto; margin:0 -20px 8px; padding:0 20px 4px; scrollbar-width:none; }
  .bs-reviewgrid::-webkit-scrollbar{ display:none; }
  .bs-reviewcard{ display:flex; flex-direction:column; gap:9px; flex:0 0 44%; }
  .bs-reviewmedia{
    position:relative;
    width:100%;
    padding-top:135%;
    aspect-ratio:20/27;
    border-radius:16px;
    overflow:hidden;
    background:linear-gradient(160deg, var(--navy-800), var(--navy-950));
    box-shadow:var(--shadow-card);
  }
  .bs-playbtn{
    position:absolute; top:50%; left:50%;
    transform:translate(-50%,-50%);
    width:52px; height:52px; border-radius:50%; border:none;
    background:rgba(255,255,255,0.94); color:var(--navy-900);
    display:flex; align-items:center; justify-content:center;
  }
  .bs-playbtn svg{ width:20px; height:20px; margin-left:2px; }
  .bs-reviewcaption{ font-size:11.5px; color:var(--ink-500); font-weight:600; text-align:center; }

  /* ---- horizontal scroller (home featured) ---- */
  .bs-hscroll{
    display:flex; gap:14px; overflow-x:auto; padding-bottom:6px; margin:0 -20px; padding-left:20px; padding-right:20px;
    scrollbar-width:none;
  }
  .bs-hscroll::-webkit-scrollbar{ display:none; }
  .bs-pcard{
    flex:0 0 154px;
    background:var(--white);
    border-radius:12px;
    box-shadow:0 4px 12px rgba(0,0,0,0.08);
    overflow:hidden;
  }
  .bs-pcard-media{
    position:relative;
    width:100%;
    padding-top:100%;
    background:linear-gradient(150deg, var(--navy-800), var(--navy-950));
    overflow:hidden;
  }
  .bs-pcard-media svg{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:46px; height:46px; color:var(--gold-300); opacity:0.9;
  }
  .bs-hot{
    position:absolute; top:8px; left:8px;
    background:var(--gold-500); color:var(--navy-900);
    font-size:9px; font-weight:800; letter-spacing:0.04em;
    padding:3.5px 9px; border-radius:999px; border:none;
  }
  .bs-pcard-body{ padding:14px 14px 16px; }
  .bs-pcard-code{ font-size:9px; color:var(--ink-300); font-weight:600; margin-bottom:3px; }
  .bs-pcard-brand{ font-size:9.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-500); font-weight:600; }
  .bs-pcard-name{ font-size:13px; font-weight:600; margin:4px 0 6px; line-height:1.4; }
  .bs-pcard-cond{ font-size:10px; color:var(--gold-600); font-weight:600; margin-bottom:6px; }
  .bs-pcard-price{ font-size:13px; font-weight:700; color:var(--navy-900); }
  .bs-pcard-price span{ font-size:10px; color:var(--ink-500); font-weight:500; display:block; margin-bottom:1px; }

  /* ---- CTA banner ---- */
  .bs-cta{
    margin:28px 0 8px;
    background:linear-gradient(135deg, var(--navy-900), var(--navy-950));
    border-radius:var(--radius-md);
    padding:22px;
    position:relative;
    overflow:hidden;
    color:var(--white);
  }
  .bs-cta::after{
    content:"";
    position:absolute; right:-30px; top:-30px; width:130px; height:130px; border-radius:50%;
    border:1px solid rgba(198,161,91,0.35);
  }
  .bs-cta h3{ font-family:var(--font-display); font-size:20px; font-weight:600; margin-bottom:6px; max-width:220px; }
  .bs-cta p{ font-size:12.5px; color:var(--ink-300); margin-bottom:16px; max-width:230px; line-height:1.6; }
  .bs-btn-gold{
    display:inline-flex; align-items:center; justify-content:center; gap:6px;
    background:linear-gradient(140deg, var(--gold-300), var(--gold-600));
    color:var(--navy-950); font-weight:700; font-size:12.5px;
    padding:11px 16px; border-radius:999px; border:none;
    white-space:nowrap; line-height:1;
  }
  .bs-btn-gold svg{ width:13px; height:13px; flex-shrink:0; display:block; position:relative; top:3px; }
  .bs-btn-gold-outline{
    padding:14px 34px !important;
    border:2px solid var(--gold-500) !important;
    box-shadow:0 0 0 1px rgba(209,180,140,0.3);
    text-align:center;
    min-width:120px;
  }

  /* ---- badge row ---- */
  .bs-badgerow{ display:flex; gap:10px; margin-top:22px; }
  .bs-badgechip{
    flex:1; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-sm);
    padding:14px 10px; text-align:center;
  }
  .bs-badgechip svg{ width:20px; height:20px; color:var(--gold-600); margin-bottom:6px; }
  .bs-badgechip span{ display:block; font-size:11px; font-weight:600; line-height:1.35; }

  /* ---- category grid (products page) ---- */
  .bs-filterrow{ display:flex; gap:8px; margin:22px 0 4px; flex-wrap:wrap; }
  .bs-filterchip{
    display:inline-flex; align-items:center; justify-content:center; line-height:1;
    font-size:11.5px; font-weight:700; padding:8px 15px; border-radius:999px;
    background:var(--taupe); color:var(--ink-500); border:1px solid transparent;
  }
  .bs-filterchip-active{ background:var(--gold-500); color:var(--navy-900); }

  .bs-toolbar{ display:flex; flex-direction:column; gap:8px; margin:16px 0 4px; }
  .bs-search-input{
    width:100%; border:1px solid var(--line); background:var(--white); border-radius:999px;
    padding:11px 16px; font-size:13px; font-family:inherit; color:var(--ink-900);
  }
  .bs-search-input:focus{ outline:none; border-color:var(--gold-500); }
  .bs-select-input{
    flex:1; border:1px solid var(--line); background:var(--white); border-radius:999px;
    padding:10px 14px; font-size:12.5px; font-family:inherit; color:var(--ink-900);
  }
  .bs-toolbar-row{ display:flex; gap:8px; }

  .bs-catgrid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .bs-catcard{
    background:var(--white); border-radius:var(--radius-md); padding:18px 14px;
    box-shadow:var(--shadow-card); display:flex; flex-direction:column; gap:10px;
  }
  .bs-catcard .bs-cicon{
    width:40px; height:40px; border-radius:12px; background:var(--gold-100);
    display:flex; align-items:center; justify-content:center; color:var(--navy-900);
  }
  .bs-catcard .bs-cicon svg{ width:19px; height:19px; }
  .bs-catcard h4{ font-size:14px; font-weight:700; }
  .bs-catcard p{ font-size:11px; color:var(--ink-500); }

  /* ---- listing rows (products) ---- */
  .bs-listing{
    display:flex; gap:14px; background:var(--white); border-radius:12px;
    padding:14px; box-shadow:0 4px 12px rgba(0,0,0,0.08); margin-bottom:12px; align-items:center;
  }
  .bs-listing-media{
    width:64px; height:64px; border-radius:14px; flex-shrink:0;
    background:linear-gradient(150deg, var(--navy-800), var(--navy-950));
    display:flex; align-items:center; justify-content:center;
  }
  .bs-listing-media svg{ width:28px; height:28px; color:var(--gold-300); }
  .bs-listing-body{ flex:1; min-width:0; }
  .bs-listing-brand{ font-size:9.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-500); font-weight:700; }
  .bs-listing-name{ font-size:13.5px; font-weight:600; margin:2px 0 4px; }
  .bs-listing-tags{ display:flex; gap:6px; flex-wrap:wrap; }
  .bs-tag{ display:inline-flex; align-items:center; justify-content:center; line-height:1; font-size:9.5px; background:var(--gold-100); color:var(--gold-600); padding:4px 8px; border-radius:999px; font-weight:700; }
  .bs-tag-gold{ background:var(--gold-500); color:var(--navy-900); }
  .bs-listing-price{ text-align:right; flex-shrink:0; }
  .bs-listing-price strong{ font-size:14px; color:var(--navy-900); display:block; }
  .bs-listing-price span{ font-size:9.5px; color:var(--ink-500); }

  /* ---- services (accordion-style cards) ---- */
  .bs-service{
    background:var(--white); border-radius:var(--radius-md); padding:18px;
    box-shadow:var(--shadow-card); margin-bottom:14px;
    display:flex; gap:14px;
  }
  .bs-service .bs-sicon{
    width:46px; height:46px; border-radius:50%; flex-shrink:0;
    background:linear-gradient(160deg, var(--navy-800), var(--navy-950));
    display:flex; align-items:center; justify-content:center; color:var(--gold-300);
  }
  .bs-service .bs-sicon svg{ width:21px; height:21px; }
  .bs-service h3{ font-size:15.5px; font-weight:700; margin-bottom:5px; }
  .bs-service p{ font-size:12px; color:var(--ink-500); line-height:1.6; margin-bottom:10px; }
  .bs-link-gold{
    font-size:12px; font-weight:700; color:var(--gold-600); display:inline-flex; align-items:center; gap:5px;
    background:none; border:none; padding:0; margin:0; cursor:pointer; font-family:inherit;
    -webkit-appearance:none; appearance:none; text-decoration:none;
  }
  .bs-link-gold svg{ width:12px; height:12px; position:relative; top:2px; }

  /* ---- articles ---- */
  .bs-article{
    display:flex; gap:14px; padding:16px 0; border-bottom:1px solid var(--line);
  }
  .bs-article:last-child{ border-bottom:none; }
  .bs-article-media{
    width:78px; height:78px; border-radius:14px; flex-shrink:0;
    background:linear-gradient(150deg, var(--gold-100), var(--gold-300));
    display:flex; align-items:center; justify-content:center; color:var(--navy-900);
  }
  .bs-article-media svg{ width:26px; height:26px; }
  .bs-article-date{ font-size:10px; color:var(--ink-500); font-weight:600; letter-spacing:0.04em; text-transform:uppercase; }
  .bs-article h3{ font-size:14.5px; font-weight:700; margin:4px 0 5px; line-height:1.35; }
  .bs-article p{ font-size:11.5px; color:var(--ink-500); line-height:1.5; }

  /* ---- contact ---- */
  .bs-contactcard{
    display:flex; align-items:center; gap:14px; background:var(--white);
    border-radius:var(--radius-md); padding:15px; box-shadow:var(--shadow-card); margin-bottom:12px;
    text-decoration:none;
  }
  .bs-contactcard .bs-cicon2{
    width:44px; height:44px; border-radius:50%; flex-shrink:0;
    background:var(--gold-100); display:flex; align-items:center; justify-content:center; color:var(--navy-900);
  }
  .bs-contactcard .bs-cicon2 svg{ width:19px; height:19px; }
  .bs-contactcard .bs-cctext{ display:flex; flex-direction:column; gap:2px; min-width:0; flex:1; }
  .bs-contactcard .bs-cctitle{ font-size:13.5px; font-weight:700; color:var(--ink-900); }
  .bs-contactcard .bs-ccsub{ font-size:12px; color:var(--ink-500); }
  .bs-contactcard .bs-chevron{ margin-left:auto; color:var(--ink-300); width:16px; height:16px; flex-shrink:0; }

  .bs-hours{
    background:var(--navy-900); color:var(--white); border-radius:var(--radius-md);
    padding:18px; margin:20px 0; display:flex; justify-content:space-between; align-items:center;
  }
  .bs-hours h4{ font-size:13px; font-weight:700; margin-bottom:4px; }
  .bs-hours p{ font-size:11.5px; color:var(--gold-300); }
  .bs-hours svg{ width:26px; height:26px; color:var(--gold-300); }

  .bs-form{ margin-top:22px; }
  .bs-form label{ font-size:11.5px; font-weight:700; display:block; margin-bottom:6px; color:var(--navy-900); }
  .bs-form input, .bs-form textarea{
    width:100%; border:1px solid var(--line); background:var(--white); border-radius:var(--radius-sm);
    padding:12px 14px; font-size:13px; font-family:inherit; margin-bottom:14px; color:var(--ink-900);
  }
  .bs-form textarea{ resize:vertical; min-height:80px; }
  .bs-form button{
    width:100%; border:none; background:linear-gradient(140deg, var(--gold-300), var(--gold-600));
    color:var(--navy-950); font-weight:700; font-size:13.5px; padding:14px; border-radius:999px;
  }

  /* ============ BOTTOM NAV ============ */
  .bs-bottomnav{
    position:fixed; bottom:0; z-index:60;
    left:50%; transform:translateX(-50%);
    width:100%; max-width:460px;
    background:var(--white);
    border-top:1px solid var(--line);
    display:flex;
    padding:10px 6px calc(10px + env(safe-area-inset-bottom));
    box-shadow:0 -8px 24px -18px rgba(12,28,61,0.4);
  }
  .bs-navbtn{
    flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
    background:none; border:1px solid transparent; border-radius:8px; color:var(--ink-300); padding:4px 1px 3px;
    min-width:0;
  }
  .bs-navbtn svg{ width:18px; height:18px; margin:0; padding:0; display:block; flex-shrink:0; }
  .bs-navbtn span{ font-size:10px; font-weight:600; margin:0; padding:0; line-height:1; display:block; white-space:nowrap; }
  .bs-navbtn.active{ color:var(--gold-600); border-color:var(--gold-500); }

  /* ============ SCREENS ============ */
  .bs-screen{ display:none; }
  .bs-screen.active{ display:block; animation:bsFade 0.35s ease; }
  @keyframes bsFade{ from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);} }
  @media (prefers-reduced-motion: reduce){
    .bs-screen.active{ animation:none; }
  }

  /* ============ GRID WRAPPERS (become multi-column on desktop) ============ */
  .bs-listgrid > .bs-listing:last-child,
  .bs-servicegrid > .bs-service:last-child,
  .bs-articlegrid > .bs-article:last-child{ margin-bottom:0; }

  /* ============ DESKTOP / WIDE SCREEN LAYOUT ============ */
  @media(min-width:99999px){
    .bs-header{
      max-width:1180px; margin:0 auto;
      padding:64px 48px 96px;
      border-radius:0 0 44px 44px;
    }
    .bs-logo-mark{ width:48px; height:29px; }
    .bs-brandname .en{ font-size:22px; }
    .bs-headline{ font-size:34px; max-width:620px; line-height:1.4; }
    .bs-sub{ font-size:15.5px; max-width:520px; margin-bottom:26px; }
    .bs-pagehead{ font-size:44px; }
    .bs-pagesub{ font-size:15px; max-width:540px; }
    .bs-stats{ gap:10px; flex-wrap:nowrap; }
    .bs-stat{ font-size:12px; padding:8px 14px; }
    .bs-stat svg{ width:13px; height:13px; }
    .bs-badge{ padding:8px 14px; }
    .bs-badge svg{ width:13px; height:13px; }

    .bs-quickcard{
      max-width:1180px; margin:0 auto; top:-46px;
      padding:26px 64px; border-radius:26px;
    }
    .bs-quickitem{ width:auto; flex-direction:row; gap:16px; }
    .bs-quickicon{ width:58px; height:58px; }
    .bs-quickicon svg{ width:24px; height:24px; }
    .bs-quickitem span{ font-size:14.5px; }
    .bs-quickcard-single{ padding:18px 24px; }
    .bs-cta-main{ padding:20px 28px; gap:20px; }
    .bs-cta-main-icon{ width:58px; height:58px; }
    .bs-cta-main-icon svg{ width:26px; height:26px; }

    .bs-sheet{ max-width:1180px; margin:-48px auto 0; padding:6px 48px 90px; }
    .bs-sheet.no-quick{ margin-top:-16px; padding-top:44px; }

    .bs-sectionhead h2{ font-size:25px; }
    .bs-sectionhead .bs-viewall{ font-size:13px; }

    .bs-reviewgrid{ display:grid; grid-template-columns:repeat(4,1fr); max-width:100%; gap:24px; overflow:visible; margin:0 0 8px; padding:0; }
    .bs-reviewcard{ flex:unset; }
    .bs-reviewmedia{ padding-top:120%; }
    .bs-playbtn{ width:64px; height:64px; }
    .bs-playbtn svg{ width:24px; height:24px; }
    .bs-reviewcaption{ font-size:13px; }

    .bs-hscroll{
      display:grid; grid-template-columns:repeat(4, 1fr); gap:22px;
      overflow:visible; margin:0; padding:0;
    }
    .bs-pcard{ flex:unset; }
    .bs-pcard-media svg{ width:54px; height:54px; }
    .bs-pcard-name{ font-size:14px; }

    .bs-cta{
      padding:44px 60px; display:flex; align-items:center; justify-content:space-between; gap:40px;
    }
    .bs-cta h3{ font-size:26px; max-width:380px; }
    .bs-cta p{ font-size:14px; max-width:380px; margin-bottom:0; }
    .bs-cta .bs-btn-gold{ flex-shrink:0; padding:14px 26px; font-size:13.5px; }

    .bs-badgerow{ max-width:720px; gap:16px; }
    .bs-badgechip{ padding:20px 14px; }
    .bs-badgechip span{ font-size:12.5px; }

    .bs-catgrid{ grid-template-columns:repeat(4, 1fr); gap:20px; }
    .bs-catcard{ padding:24px 18px; }
    .bs-catcard h4{ font-size:15.5px; }

    .bs-listgrid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
    .bs-listing{ margin-bottom:0; padding:16px; }

    .bs-servicegrid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
    .bs-service{ margin-bottom:0; }

    .bs-articlegrid{ display:grid; grid-template-columns:1fr 1fr; gap:8px 32px; }
    .bs-article{ border-bottom:1px solid var(--line); }

    .bs-contactgrid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:0; }
    .bs-contactcard{ margin-bottom:0; }

    .bs-hours{ max-width:100%; padding:22px 28px; }
    .bs-form{ max-width:640px; }

    .bs-bottomnav{ padding:14px 24px calc(14px + env(safe-area-inset-bottom)); }
    .bs-navbtn svg{ width:23px; height:23px; }
    .bs-navbtn span{ font-size:12px; }
  }

  @media(min-width:99999px){
    .bs-header, .bs-quickcard, .bs-sheet{ max-width:1280px; }
  }

  /* ============ FULLY-RESPONSIVE HARDENING ============ */
  #bs-app img, #bs-app video{ max-width:100%; height:auto; }
  #bs-app *, #bs-app *::before, #bs-app *::after{ box-sizing:border-box; }

  @media(max-width:359px){
    .bs-headline{ font-size:19px; }
    .bs-sub{ font-size:12.5px; }
    .bs-pagehead{ font-size:24px; }
    .bs-pagesub{ font-size:12.5px; }
    .bs-catgrid{ gap:10px; }
    .bs-catcard{ padding:14px 10px; }
    .bs-catcard h4{ font-size:13px; }
    .bs-badgerow{ gap:8px; }
    .bs-badgechip{ padding:12px 8px; }
    .bs-badgechip span{ font-size:10.5px; }
    .bs-quickcard-single{ padding:12px; }
    .bs-cta-main{ padding:14px 16px; gap:12px; }
    .bs-cta-main-icon{ width:42px; height:42px; }
    .bs-pcard{ flex:0 0 132px; }
  }

  @media(orientation:landscape) and (max-height:420px){
    .bs-header{ padding-top:16px; padding-bottom:36px; }
    .bs-quickcard{ top:-20px; }
  }

  @media print{
    .bs-bottomnav, #bs-banner-overlay{ display:none !important; }
  }

  /* ============ HIDE THEME/PLUGIN AUTO-INJECTED ELEMENTS ============ */
  /* Many themes auto-add post navigation, related posts, share buttons,
     or author boxes to every page. These are not part of the app and can
     show up as empty link cards. Hide them wherever #bs-app is present. */
  body:has(#bs-app) .post-navigation,
  body:has(#bs-app) .nav-links,
  body:has(#bs-app) .page-links,
  body:has(#bs-app) nav.navigation,
  body:has(#bs-app) .entry-footer,
  body:has(#bs-app) .entry-meta,
  body:has(#bs-app) .author-bio,
  body:has(#bs-app) .author-box,
  body:has(#bs-app) .related-posts,
  body:has(#bs-app) .jp-relatedposts,
  body:has(#bs-app) .sharedaddy,
  body:has(#bs-app) .share-buttons,
  body:has(#bs-app) .post-tags,
  body:has(#bs-app) .comments-area{
    display:none !important;
  }
