/*
Theme Name: Holy Smokes Editor Sync
Theme URI: https://holysmokes.store/
Author: OpenAI for Q Design Studio
Author URI: https://holysmokes.store/
Description: A Gutenberg-first WordPress theme for Holy Smokes with editor/live sync and the theme age-gate overlay disabled to avoid site-breaking conflicts.
Version: 1.2.3
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: holysmokes-elmira
Tags: custom-logo, custom-menu, featured-images, full-width-template, theme-options, translation-ready, blog, e-commerce, one-column, two-columns
*/

/* =========
   Brand tokens
   ========= */
:root{
  --hs-black:#000000;
  --hs-white:#ffffff;
  --hs-teal:#45C7D7;
  --hs-pink:#F2B8C9;
  --hs-mist:#F3F3F3;
  --hs-line:#D9D9D9;
  --hs-text:#111111;
  --hs-muted:#5b5b5b;
  --hs-legal:#FFF59D;
  --hs-container:min(1180px, calc(100% - 2rem));
  --hs-shadow:0 20px 45px rgba(0,0,0,.08);
  --hs-radius:24px;
  --hs-radius-sm:16px;
  --hs-transition:220ms ease;
}

/* Reset-ish */
*,
*::before,
*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--hs-text);
  background:var(--hs-white);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  line-height:1.65;
  font-size:16px;
}
body.has-age-gate-open{
  overflow:hidden;
}
img{
  max-width:100%;
  height:auto;
  display:block;
}
a{
  color:inherit;
  text-decoration:none;
}
a:hover,
a:focus{
  color:var(--hs-teal);
}
button,
input,
select,
textarea{
  font:inherit;
}
.screen-reader-text{
  position:absolute!important;
  height:1px;
  width:1px;
  overflow:hidden;
  clip:rect(1px,1px,1px,1px);
  white-space:nowrap;
}
.skip-link{
  position:absolute;
  left:-9999px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden;
}
.skip-link:focus{
  left:1rem;
  top:1rem;
  width:auto;
  height:auto;
  z-index:1000;
  padding:.8rem 1rem;
  background:var(--hs-black);
  color:var(--hs-white);
  border-radius:12px;
}
.container,
.wp-block-group.alignwide,
.alignwide{
  width:var(--hs-container);
  margin-inline:auto;
}
.alignfull{
  width:100%;
}
.site-main{
  min-height:40vh;
}
.page-section{
  padding:clamp(3.5rem, 4vw, 5rem) 0;
}
.section-title{
  font-size:clamp(1.9rem, 4vw, 3.2rem);
  line-height:1.05;
  margin:0 0 .75rem;
  letter-spacing:-.03em;
}
.section-eyebrow{
  display:inline-flex;
  gap:.55rem;
  align-items:center;
  margin-bottom:1rem;
  color:var(--hs-muted);
  font-size:.9rem;
  text-transform:uppercase;
  letter-spacing:.13em;
}
.section-eyebrow::before{
  content:"";
  width:2.75rem;
  height:2px;
  background:var(--hs-teal);
  display:inline-block;
}
.section-intro{
  max-width:720px;
  color:var(--hs-muted);
}
.has-mist-bg{
  background:var(--hs-mist);
}
.has-black-bg{
  background:var(--hs-black);
  color:var(--hs-white);
}
.card{
  background:var(--hs-white);
  border:1px solid var(--hs-line);
  border-radius:var(--hs-radius);
  box-shadow:var(--hs-shadow);
  overflow:hidden;
}
.badge{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.45rem .8rem;
  border-radius:999px;
  font-size:.8rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.badge-teal{
  background:rgba(69,199,215,.16);
  color:#0e525d;
}
.badge-pink{
  background:rgba(242,184,201,.28);
  color:#7b4758;
}
.button,
.wp-block-button__link,
button[type="submit"],
input[type="submit"]{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  padding:.95rem 1.35rem;
  border-radius:999px;
  border:1px solid var(--hs-black);
  background:var(--hs-black);
  color:var(--hs-white);
  font-weight:700;
  line-height:1;
  transition:transform var(--hs-transition), background var(--hs-transition), color var(--hs-transition), border-color var(--hs-transition);
  cursor:pointer;
}
.button:hover,
.wp-block-button__link:hover,
button[type="submit"]:hover,
input[type="submit"]:hover{
  transform:translateY(-2px);
  background:var(--hs-teal);
  color:var(--hs-black);
  border-color:var(--hs-teal);
}
.button.secondary{
  background:transparent;
  color:var(--hs-black);
  border-color:var(--hs-black);
}
.button.secondary:hover{
  background:var(--hs-black);
  color:var(--hs-white);
}
.button.accent{
  background:var(--hs-teal);
  color:var(--hs-black);
  border-color:var(--hs-teal);
}
.button.accent:hover{
  background:var(--hs-black);
  color:var(--hs-white);
  border-color:var(--hs-black);
}

/* Header */
.site-header{
  position:sticky;
  top:0;
  z-index:90;
  background:rgba(0,0,0,.93);
  color:var(--hs-white);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(255,255,255,.1);
}
.topbar{
  border-bottom:1px solid rgba(255,255,255,.1);
  font-size:.93rem;
}
.topbar .container,
.header-inner{
  display:flex;
  gap:1rem;
  align-items:center;
  justify-content:space-between;
}
.topbar .container{
  padding:.65rem 0;
  flex-wrap:wrap;
}
.topbar-left,
.topbar-right{
  display:flex;
  gap:.9rem 1.2rem;
  align-items:center;
  flex-wrap:wrap;
}
.topbar-right span:last-child{
  color:var(--hs-teal);
  font-weight:700;
}
.header-inner{
  padding:1rem 0;
}
.branding{
  display:flex;
  align-items:center;
  gap:1rem;
}
.site-logo img{
  max-height:58px;
  width:auto;
}
.site-title{
  font-size:1.2rem;
  font-weight:800;
  line-height:1;
  margin:0;
}
.site-description{
  color:rgba(255,255,255,.75);
  font-size:.92rem;
  margin:.3rem 0 0;
}
.menu-toggle{
  display:none;
  background:transparent;
  border:1px solid rgba(255,255,255,.25);
  color:var(--hs-white);
  padding:.75rem 1rem;
  border-radius:999px;
}
.main-navigation ul{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  align-items:center;
  gap:1.2rem;
}
.main-navigation li{
  position:relative;
}
.main-navigation a{
  font-weight:700;
  color:var(--hs-white);
}
.header-cta{
  display:flex;
  align-items:center;
  gap:.8rem;
}
.header-cta .button{
  padding:.8rem 1.05rem;
}

/* Hero */
.hero{
  position:relative;
  color:var(--hs-white);
  background:
    linear-gradient(130deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.85) 50%, rgba(0,0,0,.92) 100%),
    radial-gradient(circle at top left, rgba(69,199,215,.24), transparent 35%),
    radial-gradient(circle at bottom right, rgba(242,184,201,.16), transparent 30%),
    var(--hs-black);
  overflow:hidden;
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px);
  background-size:32px 32px;
  mask-image:linear-gradient(to bottom, rgba(0,0,0,.7), transparent);
}
.hero-inner{
  width:var(--hs-container);
  margin-inline:auto;
  padding:clamp(4rem, 7vw, 7rem) 0;
  display:grid;
  grid-template-columns:1.08fr .92fr;
  gap:2rem;
  align-items:center;
  position:relative;
  z-index:1;
}
.hero-copy h1{
  font-size:clamp(2.7rem, 6vw, 5.3rem);
  line-height:.95;
  margin:.2rem 0 1rem;
  letter-spacing:-.05em;
}
.hero-copy p{
  max-width:640px;
  color:rgba(255,255,255,.84);
  font-size:1.08rem;
}
.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.9rem;
  margin-top:1.5rem;
}
.hero-meta{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
  margin-top:2rem;
}
.hero-meta .meta-card{
  padding:1rem;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
}
.meta-card strong{
  display:block;
  font-size:1.1rem;
}
.hero-panel{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
  border-radius:30px;
  padding:1.5rem;
  box-shadow:var(--hs-shadow);
}
.hero-panel img{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  border-radius:24px;
}
.hero-panel .mini-stack{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1rem;
  margin-top:1rem;
}
.mini-card{
  padding:1rem;
  background:rgba(255,255,255,.06);
  border-radius:18px;
}
.mini-card strong{
  display:block;
  margin-bottom:.25rem;
}

/* Grids */
.category-grid,
.feature-grid,
.story-grid,
.contact-grid,
.deal-grid,
.faq-grid,
.product-feature-grid{
  display:grid;
  gap:1.25rem;
}
.category-grid{
  grid-template-columns:repeat(3,1fr);
}
.category-card,
.feature-card,
.contact-card,
.deal-card,
.faq-card,
.product-feature{
  padding:1.4rem;
  border-radius:var(--hs-radius);
  border:1px solid var(--hs-line);
  background:var(--hs-white);
  box-shadow:var(--hs-shadow);
}
.category-card{
  display:flex;
  flex-direction:column;
  min-height:100%;
}
.category-card .category-media,
.product-feature .product-media,
.deal-card .deal-media{
  aspect-ratio:4/5;
  border-radius:18px;
  margin-bottom:1rem;
  background:
    linear-gradient(145deg, rgba(69,199,215,.18), rgba(242,184,201,.18)),
    var(--hs-mist);
  border:1px dashed rgba(0,0,0,.2);
  display:grid;
  place-items:center;
  text-align:center;
  padding:1rem;
  color:var(--hs-muted);
  font-weight:700;
}
.category-card h3,
.feature-card h3,
.contact-card h3,
.deal-card h3,
.faq-card h3,
.product-feature h3{
  margin:.15rem 0 .5rem;
  font-size:1.35rem;
  line-height:1.1;
}
.category-card p,
.feature-card p,
.contact-card p,
.deal-card p,
.faq-card p,
.product-feature p{
  color:var(--hs-muted);
  margin:0;
}
.feature-grid{
  grid-template-columns:repeat(4,1fr);
}
.story-grid{
  grid-template-columns:1fr 1fr;
  align-items:start;
}
.story-panel{
  padding:2rem;
  border-radius:var(--hs-radius);
  background:var(--hs-white);
  border:1px solid var(--hs-line);
  box-shadow:var(--hs-shadow);
}
.story-points{
  list-style:none;
  padding:0;
  margin:1.25rem 0 0;
  display:grid;
  gap:.85rem;
}
.story-points li{
  padding-left:1.8rem;
  position:relative;
}
.story-points li::before{
  content:"";
  position:absolute;
  left:0;
  top:.55rem;
  width:.75rem;
  height:.75rem;
  border-radius:999px;
  background:var(--hs-teal);
}
.hours-card{
  padding:2rem;
  background:var(--hs-black);
  color:var(--hs-white);
  border-radius:var(--hs-radius);
}
.hours-list{
  display:grid;
  gap:.9rem;
  margin-top:1rem;
}
.hours-list div{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  border-bottom:1px solid rgba(255,255,255,.12);
  padding-bottom:.65rem;
}
.hours-list div:last-child{
  border-bottom:none;
}
.contact-grid{
  grid-template-columns:repeat(3,1fr);
}
.deal-grid{
  grid-template-columns:repeat(3,1fr);
}
.faq-grid{
  grid-template-columns:repeat(2,1fr);
}
.map-shell{
  min-height:320px;
  border-radius:var(--hs-radius);
  border:1px solid var(--hs-line);
  background:
    linear-gradient(160deg, rgba(69,199,215,.09), rgba(242,184,201,.12)),
    var(--hs-mist);
  display:grid;
  place-items:center;
  padding:2rem;
  text-align:center;
}
.product-feature-grid{
  grid-template-columns:repeat(2,1fr);
}

/* Content */
.entry-header{
  width:var(--hs-container);
  margin-inline:auto;
  padding:3.5rem 0 1rem;
}
.entry-title{
  font-size:clamp(2.2rem, 4vw, 4rem);
  line-height:.98;
  letter-spacing:-.04em;
  margin:0;
}
.entry-content,
.page-content,
.post-listing{
  width:var(--hs-container);
  margin-inline:auto;
}
.entry-content{
  padding-bottom:3rem;
}
.entry-content > *{
  max-width:860px;
}
.entry-content .alignwide,
.entry-content .alignfull{
  max-width:none;
}
.post-card{
  padding:1.5rem;
  border:1px solid var(--hs-line);
  border-radius:24px;
  background:var(--hs-white);
  box-shadow:var(--hs-shadow);
}
.post-grid{
  display:grid;
  gap:1rem;
}

/* Footer */
.site-footer{
  margin-top:4rem;
  background:var(--hs-black);
  color:var(--hs-white);
}
.footer-upper{
  padding:3.2rem 0 2rem;
}
.footer-grid{
  width:var(--hs-container);
  margin-inline:auto;
  display:grid;
  grid-template-columns:1.2fr .8fr .9fr;
  gap:1.5rem;
}
.footer-title{
  font-size:1.2rem;
  margin:0 0 .85rem;
}
.footer-links,
.footer-meta{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:.7rem;
}
.footer-meta strong{
  color:var(--hs-teal);
  display:block;
}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);
  padding:1rem 0 1.5rem;
}
.footer-bottom .container{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:center;
  flex-wrap:wrap;
}
.site-legal{
  background:var(--hs-legal);
  color:var(--hs-black);
  padding:1rem 0 1.2rem;
  border-top:1px solid rgba(0,0,0,.18);
}
.site-legal .container{
  font-size:.95rem;
}
.legal-license{
  font-weight:800;
  margin-bottom:.4rem;
}
.legal-note{
  color:#1c1c1c;
}

/* Age gate */
.age-gate{
  position:fixed;
  inset:0;
  display:none;
  place-items:center;
  padding:1.5rem;
  background:rgba(0,0,0,.82);
  z-index:999;
}
.age-gate.is-active{
  display:grid;
}
.age-gate-card{
  width:min(560px, 100%);
  padding:2rem;
  border-radius:32px;
  background:var(--hs-white);
  color:var(--hs-text);
  box-shadow:0 30px 90px rgba(0,0,0,.32);
  text-align:center;
}
.age-gate-logo{
  width:min(220px, 58vw);
  margin:0 auto 1rem;
}
.age-gate-card h2{
  margin:.4rem 0 .75rem;
  font-size:clamp(2rem, 5vw, 3rem);
  line-height:1;
}
.age-gate-card p{
  color:var(--hs-muted);
}
.age-gate-actions{
  display:flex;
  justify-content:center;
  gap:.9rem;
  flex-wrap:wrap;
  margin-top:1.35rem;
}
.age-gate-note{
  margin-top:1rem;
  font-size:.92rem;
  color:var(--hs-muted);
}

/* Forms / search */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="search"],
textarea{
  width:100%;
  padding:.9rem 1rem;
  border:1px solid var(--hs-line);
  border-radius:16px;
  background:#fff;
}
input:focus,
textarea:focus{
  outline:2px solid rgba(69,199,215,.2);
  border-color:var(--hs-teal);
}
.search-form{
  display:flex;
  gap:.6rem;
}
.search-form label{
  flex:1;
}

/* Utilities */
.cluster{
  display:flex;
  gap:.85rem;
  flex-wrap:wrap;
  align-items:center;
}
.mt-0{margin-top:0}
.mt-1{margin-top:1rem}
.mt-2{margin-top:2rem}
.mb-0{margin-bottom:0}
.text-muted{color:var(--hs-muted)}

/* Responsive */
@media (max-width: 1040px){
  .hero-inner,
  .story-grid,
  .footer-grid{
    grid-template-columns:1fr;
  }
  .feature-grid{
    grid-template-columns:repeat(2,1fr);
  }
  .category-grid,
  .deal-grid,
  .contact-grid{
    grid-template-columns:repeat(2,1fr);
  }
  .product-feature-grid,
  .faq-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width: 820px){
  .menu-toggle{
    display:inline-flex;
  }
  .main-navigation{
    position:absolute;
    left:0;
    right:0;
    top:100%;
    background:var(--hs-black);
    padding:0 1rem 1rem;
    display:none;
    border-bottom:1px solid rgba(255,255,255,.1);
  }
  .main-navigation.is-open{
    display:block;
  }
  .main-navigation ul{
    flex-direction:column;
    align-items:flex-start;
    gap:.9rem;
    padding-top:.85rem;
  }
  .header-cta{
    display:none;
  }
  .category-grid,
  .deal-grid,
  .contact-grid,
  .feature-grid,
  .hero-meta{
    grid-template-columns:1fr;
  }
}
@media (max-width: 620px){
  .topbar .container,
  .header-inner{
    align-items:flex-start;
  }
  .hero-copy h1{
    font-size:clamp(2.3rem, 10vw, 3.6rem);
  }
  .site-title{
    font-size:1rem;
  }
  .topbar{
    font-size:.85rem;
  }
}


/* Gutenberg-first page builder helpers */
.entry-content{
  padding:clamp(2rem, 4vw, 3rem) 0 3rem;
}
.entry-content > *:first-child{
  margin-top:0;
}
.entry-content > *:last-child{
  margin-bottom:0;
}
.entry-content .wp-block-group,
.entry-content .wp-block-columns,
.entry-content .wp-block-cover,
.entry-content .wp-block-media-text,
.entry-content .wp-block-image,
.entry-content .wp-block-buttons,
.entry-content .wp-block-separator,
.entry-content .wp-block-spacer,
.entry-content .wp-block-heading,
.entry-content .wp-block-paragraph,
.entry-content .wp-block-list{
  max-width:none;
}
.entry-content .alignwide,
.entry-content .alignfull{
  max-width:none;
}
.entry-content .wp-block-button__link{
  text-decoration:none;
}
.hs-editor-empty{
  width:var(--hs-container);
  margin:0 auto 3rem;
  padding:1.5rem;
  border:1px dashed var(--hs-line);
  border-radius:24px;
  background:var(--hs-mist);
}
.hs-page-hero{
  padding:clamp(4rem, 7vw, 6rem) 0;
}
.hs-page-hero.has-black-bg{
  background:
    linear-gradient(130deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.85) 50%, rgba(0,0,0,.92) 100%),
    radial-gradient(circle at top left, rgba(69,199,215,.24), transparent 35%),
    radial-gradient(circle at bottom right, rgba(242,184,201,.16), transparent 30%),
    var(--hs-black);
  color:var(--hs-white);
}
.hs-page-hero .wp-block-heading,
.hs-page-hero p,
.hs-page-hero li{
  color:inherit;
}
.hs-page-hero .wp-block-heading{
  letter-spacing:-.04em;
  line-height:.98;
}
.hs-kicker{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  padding:.45rem .8rem;
  border-radius:999px;
  font-size:.8rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
  background:rgba(69,199,215,.16);
  color:inherit;
}
.hs-kicker::before{
  content:"";
  width:.55rem;
  height:.55rem;
  border-radius:50%;
  background:currentColor;
  opacity:.8;
}
.hs-card,
.hs-stat-card,
.hs-info-card,
.hs-product-card,
.hs-deal-card,
.hs-contact-card,
.hs-feature-card{
  height:100%;
  padding:1.4rem;
  border-radius:var(--hs-radius);
  border:1px solid var(--hs-line);
  background:var(--hs-white);
  box-shadow:var(--hs-shadow);
}
.hs-dark-card{
  height:100%;
  padding:1.8rem;
  border-radius:var(--hs-radius);
  background:var(--hs-black);
  color:var(--hs-white);
}
.hs-dark-card .wp-block-heading,
.hs-dark-card p,
.hs-dark-card li{
  color:inherit;
}
.hs-media-box{
  aspect-ratio:4/5;
  border-radius:18px;
  background:linear-gradient(145deg, rgba(69,199,215,.18), rgba(242,184,201,.18)), var(--hs-mist);
  border:1px dashed rgba(0,0,0,.2);
  display:grid;
  place-items:center;
  text-align:center;
  padding:1rem;
  color:var(--hs-muted);
  font-weight:700;
  margin-bottom:1rem;
}
.hs-hours-table{
  display:grid;
  gap:.75rem;
}
.hs-hours-row{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding-bottom:.65rem;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.hs-hours-row:last-child{
  border-bottom:none;
}
.hs-soft-panel{
  padding:1.7rem;
  border-radius:var(--hs-radius);
  background:var(--hs-mist);
}
.hs-cta-band{
  border-radius:var(--hs-radius);
  padding:2rem;
  background:linear-gradient(135deg, rgba(69,199,215,.16), rgba(242,184,201,.16)), var(--hs-white);
  border:1px solid var(--hs-line);
  box-shadow:var(--hs-shadow);
}
.hs-legal-strip{
  padding:1rem 1.2rem;
  border-radius:18px;
  background:#fff7c2;
  border:1px solid rgba(0,0,0,.12);
}
@media (max-width: 820px){
  .hs-page-hero{
    padding:3.5rem 0;
  }
}


/* Hero button contrast fixes */
.hs-page-hero.has-black-bg .wp-block-buttons{
  gap:1rem;
}
.hs-page-hero.has-black-bg .wp-block-button:not(.is-style-outline) .wp-block-button__link,
.hs-page-hero.has-black-bg .wp-block-button.is-style-fill .wp-block-button__link{
  background:var(--hs-white)!important;
  color:var(--hs-black)!important;
  border:1px solid var(--hs-white)!important;
  box-shadow:none;
}
.hs-page-hero.has-black-bg .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.hs-page-hero.has-black-bg .wp-block-button.is-style-fill .wp-block-button__link:hover,
.hs-page-hero.has-black-bg .wp-block-button:not(.is-style-outline) .wp-block-button__link:focus,
.hs-page-hero.has-black-bg .wp-block-button.is-style-fill .wp-block-button__link:focus{
  background:var(--hs-teal)!important;
  color:var(--hs-black)!important;
  border-color:var(--hs-teal)!important;
}
.hs-page-hero.has-black-bg .wp-block-button.is-style-outline .wp-block-button__link{
  background:transparent!important;
  color:var(--hs-white)!important;
  border:2px solid rgba(255,255,255,.95)!important;
}
.hs-page-hero.has-black-bg .wp-block-button.is-style-outline .wp-block-button__link:hover,
.hs-page-hero.has-black-bg .wp-block-button.is-style-outline .wp-block-button__link:focus{
  background:rgba(255,255,255,.12)!important;
  color:var(--hs-white)!important;
  border-color:rgba(255,255,255,.95)!important;
}

/* About page hero cleanup helpers */
.entry-content .wp-block-cover.alignfull,
.entry-content .wp-block-group.alignfull.has-black-bg,
.entry-content .hs-page-hero.alignfull{
  margin-top:0;
}
.entry-content .wp-block-cover.alignfull .wp-block-cover__inner-container,
.entry-content .wp-block-group.alignfull.has-black-bg > .wp-block-group__inner-container,
.entry-content .hs-page-hero.alignfull > .wp-block-group__inner-container{
  width:var(--hs-container);
  margin-inline:auto;
}


/* ============================================================
   Holy Smokes theme — 1.2.2 patch (appended, non-destructive)
   Added: brand-accent primary CTA (teal default, pink hover),
          keyboard focus rings, age-gate scroll-lock safety net
   Rollback: delete from this block to EOF.
   Applied: automation via WP admin Theme File Editor
   ============================================================ */

.hs-page-hero.has-black-bg .wp-block-button.is-style-fill .wp-block-button__link,
.hs-page-hero.has-black-bg .wp-block-button:not(.is-style-outline) .wp-block-button__link,
.wp-block-button.is-style-fill .wp-block-button__link,
.wp-block-button:not(.is-style-outline) .wp-block-button__link {
    background: var(--hs-teal) !important;
    color: var(--hs-black) !important;
    border: 1px solid var(--hs-teal) !important;
    box-shadow: none;
}

.hs-page-hero.has-black-bg .wp-block-button.is-style-fill .wp-block-button__link:hover,
.hs-page-hero.has-black-bg .wp-block-button.is-style-fill .wp-block-button__link:focus,
.hs-page-hero.has-black-bg .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.hs-page-hero.has-black-bg .wp-block-button:not(.is-style-outline) .wp-block-button__link:focus,
.wp-block-button.is-style-fill .wp-block-button__link:hover,
.wp-block-button.is-style-fill .wp-block-button__link:focus,
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.wp-block-button:not(.is-style-outline) .wp-block-button__link:focus {
    background: var(--hs-pink) !important;
    color: var(--hs-black) !important;
    border-color: var(--hs-pink) !important;
}

.wp-block-button .wp-block-button__link:focus-visible {
    outline: 2px solid var(--hs-white);
    outline-offset: 3px;
}

.hs-page-hero.has-black-bg .wp-block-button.is-style-outline .wp-block-button__link:focus-visible {
    outline: 2px solid var(--hs-teal);
    outline-offset: 3px;
}

body.has-age-gate-open #primary,
body.has-age-gate-open .site-main,
body.has-age-gate-open .site-header,
body.has-age-gate-open .site-footer {
    visibility: hidden;
}


/* ============================================================
   Holy Smokes theme — 1.2.3 patch (appended, non-destructive)
   Editor canvas parity — match WP-prefixed specificity
   Rollback: delete from this comment block to EOF.
   ============================================================ */

/* WP auto-prefixes add_editor_style() rules with .editor-styles-wrapper,
   raising their specificity to (0,6,0) and beating the 1.2.2 rules
   at (0,5,0). Re-declare the CTA colors at matching specificity so the
   editor canvas renders teal like the front-end. */
.editor-styles-wrapper .hs-page-hero.has-black-bg .wp-block-button.is-style-fill .wp-block-button__link,
.editor-styles-wrapper .hs-page-hero.has-black-bg .wp-block-button:not(.is-style-outline) .wp-block-button__link,
.editor-styles-wrapper .wp-block-button.is-style-fill .wp-block-button__link,
.editor-styles-wrapper .wp-block-button:not(.is-style-outline) .wp-block-button__link {
    background: var(--hs-teal) !important;
    color: var(--hs-black) !important;
    border: 1px solid var(--hs-teal) !important;
    box-shadow: none;
}
.editor-styles-wrapper .hs-page-hero.has-black-bg .wp-block-button.is-style-fill .wp-block-button__link:hover,
.editor-styles-wrapper .hs-page-hero.has-black-bg .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.editor-styles-wrapper .wp-block-button.is-style-fill .wp-block-button__link:hover,
.editor-styles-wrapper .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
    background: var(--hs-pink) !important;
    color: var(--hs-black) !important;
    border-color: var(--hs-pink) !important;
}


/* ============================================================
   Holy Smokes — Visual patch (header contrast + kicker + normalisation)
   Append-only. Rollback: delete from this comment to EOF.
   ============================================================ */

/* Header CTA buttons — must be legible on rgba(0,0,0,.93) header */
.header-cta .button.secondary {
	color: var(--hs-white);
	border-color: rgba(255,255,255,0.75);
}
.header-cta .button.secondary:hover,
.header-cta .button.secondary:focus {
	background: var(--hs-white);
	color: var(--hs-black);
	border-color: var(--hs-white);
}

/* Deals hero kicker — match Home kicker energy (larger pill, teal bg) */
.deals-hero-kicker {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	padding: .5rem 1.1rem;
	border-radius: 999px;
	font-size: .95rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .1em;
	background: rgba(69,199,215,.18);
	color: var(--hs-teal);
	margin-bottom: 1rem;
}
.deals-hero-kicker::before {
	content: "";
	width: .55rem;
	height: .55rem;
	border-radius: 50%;
	background: var(--hs-teal);
	flex-shrink: 0;
}

/* Section eyebrow / kicker normalization across all pages */
.hs-kicker {
	font-size: .9rem;
}

/* Topbar OCM line — suppress until real number is set */
.topbar-ocm-placeholder {
	display: none;
}

/* Opening-soon badge override for pages */
.badge-opening {
	background: rgba(69,199,215,.16);
	color: #0e525d;
}


/* ── Typography / overline normalisation ────────────────────────────────
   .hs-overline (used on About + Products) gains pill treatment to match
   .hs-kicker (used on Home). Non-destructive — block inline styles intact.
   ─────────────────────────────────────────────────────────────────────── */
.hs-overline {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .4rem .9rem;
	border-radius: 999px;
	font-size: .82rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .11em;
	background: rgba(69,199,215,.13);
	line-height: 1.3;
}
.hs-overline::before {
	content: "";
	width: .5rem;
	height: .5rem;
	border-radius: 50%;
	background: currentColor;
	opacity: .85;
	flex-shrink: 0;
}

/* Section-level heading rhythm — consistent across pages ────────────── */
.wp-block-group .wp-block-heading + p {
	margin-top: .65rem;
}

/* Badge-teal normalisation ─────────────────────────────────────────── */
.badge-teal {
	background: rgba(69,199,215,.16);
	color: #0e525d;
	padding: .35rem .75rem;
	border-radius: 999px;
	font-size: .78rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .09em;
}


/* =========================================
   Social Icons — Footer (.hs-social)
   ========================================= */

.hs-social {
	display: flex;
	gap: 10px;
	align-items: center;
	margin-top: 20px;
	flex-wrap: wrap;
}

.hs-social__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.2);
	background: transparent;
	color: #fff;
	text-decoration: none;
	transition: border-color 0.2s ease, color 0.2s ease;
	flex-shrink: 0;
}

.hs-social__link:hover,
.hs-social__link:focus-visible {
	border-color: #45C7D7;
	color: #45C7D7;
	outline: none;
}

.hs-social__link svg {
	display: block;
}

@media (max-width: 600px) {
	.hs-social {
		margin-top: 16px;
	}
}