/*
Theme Name: St Pete's Crystals & Magic
Theme URI: https://crystalsandmagic.com
Author: McNichols Co (built with Claude)
Description: Custom editorial theme for St Pete's Crystals & Magic — handmade jewelry, crystals, metaphysical provisions, reiki and somatic healing in St. Petersburg, FL. Shop checkout links out to the shop's Square Online store.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: cnm
*/

/* =========================================================
   St Pete's Crystals & Magic — Site Styles
   ========================================================= */

:root{
  --ink: #0B0F0E;
  --ink-soft: #132521;
  --teal: #2D6964;
  --teal-light: #5FA89F;
  --cream: #F6F1E7;
  --paper: #FBF8F2;
  --gold: #C9A227;
  --white: #FFFFFF;

  --line: rgba(11,15,14,0.14);
  --line-on-dark: rgba(255,255,255,0.18);

  --serif: 'Fraunces', Georgia, serif;
  --sans: 'Jost', 'Helvetica Neue', Arial, sans-serif;
  --script: 'Sacramento', cursive;

  --container: 1200px;
  --nav-h: 84px;
}

*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ font-family:var(--serif); font-weight:500; margin:0; line-height:1.05; }
p{ margin:0 0 1em; }
.container{ max-width:var(--container); margin:0 auto; padding:0 32px; }
section{ position:relative; }

.eyebrow{
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--teal);
  font-weight:600;
}
.eyebrow.on-dark{ color:var(--teal-light); }

.script{ font-family:var(--script); font-size:28px; color:var(--gold); line-height:1; }

/* Buttons & links */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--sans); font-weight:600; font-size:13px;
  letter-spacing:.14em; text-transform:uppercase;
  padding:16px 30px; border-radius:2px; border:1px solid transparent;
  cursor:pointer; transition:all .25s ease;
}
.btn-primary{ background:var(--teal); color:var(--white); }
.btn-primary:hover{ background:var(--ink); }
.btn-outline{ background:transparent; color:var(--ink); border-color:var(--ink); }
.btn-outline:hover{ background:var(--ink); color:var(--white); }
.btn-outline.on-dark{ color:var(--white); border-color:var(--line-on-dark); }
.btn-outline.on-dark:hover{ background:var(--white); color:var(--ink); }
.btn-gold{ background:var(--gold); color:var(--ink); }
.btn-gold:hover{ background:var(--white); }

.link-arrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:13px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  border-bottom:1px solid currentColor; padding-bottom:3px;
}
.link-arrow svg{ width:14px; height:14px; transition:transform .2s ease; }
.link-arrow:hover svg{ transform:translateX(4px); }

/* =========================================================
   Header / Nav
   ========================================================= */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  height:var(--nav-h);
  display:flex; align-items:center;
  background:transparent;
  transition:background .35s ease, box-shadow .35s ease, height .35s ease;
}
.site-header.is-scrolled{
  background:rgba(11,15,14,0.92);
  backdrop-filter:blur(6px);
  height:72px;
  box-shadow:0 2px 24px rgba(0,0,0,.2);
}
.site-header .container{ display:flex; align-items:center; justify-content:space-between; width:100%; }
.brand{ display:flex; align-items:center; gap:14px; }
.brand img{ width:58px; height:58px; border-radius:50%; }
.brand-name{ font-family:var(--serif); font-size:19px; color:var(--white); letter-spacing:.02em; }
.brand-name small{ display:block; font-family:var(--sans); font-size:9px; letter-spacing:.24em; color:var(--teal-light); text-transform:uppercase; margin-top:2px; }

.main-nav ul{ display:flex; gap:38px; }
.main-nav a{
  font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-weight:500;
  color:var(--white); opacity:.88; position:relative; padding:6px 0;
}
.main-nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .25s ease;
}
.main-nav a:hover{ opacity:1; }
.main-nav a:hover::after{ transform:scaleX(1); }
.main-nav .nav-shop{ display:none; }

.header-cta{ display:flex; align-items:center; gap:20px; }
.nav-toggle{ display:none; background:none; border:0; cursor:pointer; padding:6px; }
.nav-toggle span{ display:block; width:24px; height:2px; background:var(--white); margin:5px 0; transition:.25s; }

/* dark-on-light variant for interior pages with light hero */
.site-header.on-light:not(.is-scrolled) .brand-name{ color:var(--ink); }
.site-header.on-light:not(.is-scrolled) .main-nav a{ color:var(--ink); }
.site-header.on-light:not(.is-scrolled) .nav-toggle span{ background:var(--ink); }

/* =========================================================
   Hero
   ========================================================= */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:flex-end;
  background:linear-gradient(180deg, rgba(11,15,14,.35), rgba(11,15,14,.78)), var(--ink);
  background-size:cover; background-position:center;
  color:var(--white); overflow:hidden;
  padding-bottom:90px;
}
.hero-texture{
  position:absolute; inset:0; opacity:.5; mix-blend-mode:overlay; pointer-events:none;
  background-image:radial-gradient(circle at 15% 20%, rgba(95,168,159,.35), transparent 40%),
                    radial-gradient(circle at 85% 75%, rgba(201,162,39,.25), transparent 45%);
}
.hero-inner{ position:relative; z-index:2; width:100%; }
.hero-eyebrow{ color:var(--teal-light); margin-bottom:22px; display:flex; align-items:center; gap:14px; }
.hero-eyebrow .rule{ width:48px; height:1px; background:var(--teal-light); display:inline-block; }
.hero h1{
  font-size:clamp(58px, 11vw, 168px);
  text-transform:uppercase;
  letter-spacing:-.01em;
  color:var(--white);
  margin-bottom:26px;
}
.hero h1 em{ font-style:italic; color:var(--gold); }
.hero-sub{ max-width:520px; font-size:16px; color:rgba(255,255,255,.82); margin-bottom:34px; }
.hero-actions{ display:flex; gap:18px; flex-wrap:wrap; }

.hero-badge{
  position:absolute; right:48px; bottom:48px; z-index:3;
  width:150px; height:150px;
}
.hero-badge .ring{
  position:absolute; inset:0; animation:spin 14s linear infinite;
}
.hero-badge .core{
  position:absolute; inset:22px; border-radius:50%; background:var(--gold);
  display:flex; align-items:center; justify-content:center; color:var(--ink);
}
.hero-badge .core svg{ width:22px; height:22px; }
@keyframes spin{ to{ transform:rotate(360deg); } }

.hero-scroll{
  position:absolute; left:50%; bottom:18px; transform:translateX(-50%);
  color:rgba(255,255,255,.7); font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  display:flex; flex-direction:column; align-items:center; gap:8px; z-index:3;
}
.hero-scroll .stem{ width:1px; height:34px; background:rgba(255,255,255,.4); overflow:hidden; position:relative; }
.hero-scroll .stem::after{ content:""; position:absolute; top:-100%; left:0; width:100%; height:100%; background:var(--white); animation:drip 2.2s ease-in-out infinite; }
@keyframes drip{ 0%{ top:-100%; } 60%{ top:100%; } 100%{ top:100%; } }

/* =========================================================
   Sections
   ========================================================= */
.section{ padding:120px 0; }
.section.tight{ padding:80px 0; }
.section.dark{ background:var(--ink); color:var(--white); }
.section.teal{ background:var(--ink-soft); color:var(--white); }
.section.cream{ background:var(--cream); }
.section.paper{ background:var(--paper); }

.section-head{ max-width:640px; margin-bottom:56px; }
.section-head h2{ font-size:clamp(34px,4.2vw,58px); margin-top:14px; }
.section-head p{ margin-top:18px; color:rgba(11,15,14,.68); font-size:16px; }
.section.dark .section-head p, .section.teal .section-head p{ color:rgba(255,255,255,.68); }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }

.divider{ width:64px; height:1px; background:var(--gold); margin:22px 0; }
.divider.center{ margin-left:auto; margin-right:auto; }

/* Intro / welcome */
.intro-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:70px; align-items:center; }
.intro-copy p{ color:rgba(11,15,14,.75); font-size:16px; }
.intro-stats{ display:flex; gap:40px; margin-top:34px; }
.stat-num{ font-family:var(--serif); font-size:44px; background:linear-gradient(135deg,#8a8f8e,#2b2f2e 40%,#c9ccca 60%,#57605d); -webkit-background-clip:text; background-clip:text; color:transparent; }
.stat-label{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:rgba(11,15,14,.55); margin-top:6px; }
.intro-photo{ position:relative; }
.intro-photo img{ width:100%; aspect-ratio:4/5; object-fit:cover; }
.intro-photo .frame{ position:absolute; inset:20px; border:1px solid var(--gold); pointer-events:none; }

/* Category strip */
.cat-strip{ display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.cat-card{ background:var(--paper); padding:34px 20px; text-align:center; transition:background .25s ease, transform .25s ease; }
.cat-card:hover{ background:var(--teal); color:var(--white); transform:translateY(-4px); }
.cat-card .ico{ width:34px; height:34px; margin:0 auto 16px; color:var(--teal); }
.cat-card:hover .ico{ color:var(--white); }
.cat-card h4{ font-size:15px; font-family:var(--sans); font-weight:600; letter-spacing:.04em; }
.cat-card span{ display:block; font-size:11px; opacity:.65; margin-top:6px; }

/* Spec cards (services / events) */
.spec-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:34px; }
.spec-card{ background:var(--paper); display:flex; flex-direction:column; border:1px solid var(--line); }
.spec-media{ aspect-ratio:5/4; overflow:hidden; background:var(--ink-soft); position:relative; }
.spec-media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.spec-card:hover .spec-media img{ transform:scale(1.06); }
.spec-tag{ position:absolute; top:16px; left:16px; background:var(--gold); color:var(--ink); font-size:10px; letter-spacing:.14em; text-transform:uppercase; padding:6px 10px; font-weight:600; }
.spec-body{ padding:28px; flex:1; display:flex; flex-direction:column; }
.spec-body h3{ font-size:22px; margin-bottom:10px; color:var(--ink); }
.spec-body p{ font-size:14px; color:rgba(11,15,14,.66); flex:1; }
.spec-row{ display:flex; justify-content:space-between; border-top:1px solid var(--line); padding:10px 0; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:rgba(11,15,14,.55); }
.spec-row b{ color:var(--ink); font-family:var(--sans); font-weight:600; letter-spacing:0; text-transform:none; font-size:13px; }
.spec-cta{ margin-top:18px; color:var(--ink); }
/* spec-card always sits on a light paper surface, even inside a dark section — never inherit light text */
.spec-card{ color:var(--ink); }

/* Big number / founding callout */
.callout{ display:flex; align-items:center; gap:60px; }
.callout-num{ font-family:var(--serif); font-size:clamp(90px,14vw,220px); line-height:.85;
  background:linear-gradient(135deg,#4c5c58,#cfd6d3 35%,#5a6c67 55%,#e7ece9 75%,#3d4b47);
  -webkit-background-clip:text; background-clip:text; color:transparent; }
.callout-copy{ max-width:420px; }
.callout-copy p{ color:rgba(255,255,255,.7); }

/* Two column editorial (About) */
.editorial{ display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.editorial-media{ position:relative; }
.editorial-media img{ width:100%; aspect-ratio:3/4; object-fit:cover; }
.editorial h2{ font-size:clamp(38px,5vw,64px); }
.editorial .lede{ font-size:18px; color:rgba(11,15,14,.75); margin:22px 0 28px; }
.people{ display:grid; grid-template-columns:1fr 1fr; gap:26px; margin-top:36px; }
.person{ border-top:1px solid var(--line); padding-top:16px; }
.person h4{ font-family:var(--sans); font-size:14px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; }
.person span{ display:block; font-size:12px; color:var(--teal); margin:4px 0 8px; text-transform:uppercase; letter-spacing:.08em; }
.person p{ font-size:14px; color:rgba(11,15,14,.65); }

/* Mission split (dark) */
.mission{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.mission-media{ position:relative; display:flex; align-items:center; justify-content:center; }
.mission-ring{ width:260px; height:260px; border-radius:50%; border:1px solid var(--line-on-dark); display:flex; align-items:center; justify-content:center; position:relative; }
.mission-ring img{ width:70%; }
.mission h3{ text-transform:uppercase; font-size:13px; letter-spacing:.18em; color:var(--teal-light); font-family:var(--sans); margin-bottom:14px; }
.mission h2{ font-size:clamp(32px,4vw,50px); margin-bottom:20px; }
.mission p{ color:rgba(255,255,255,.72); }

/* Shop */
.shop-hero-card{ background:var(--ink); color:var(--white); border-radius:2px; padding:70px 60px; position:relative; overflow:hidden; }
.shop-hero-card .badge-corner{ position:absolute; top:40px; right:40px; }
.square-note{ display:flex; align-items:center; gap:14px; margin-top:26px; font-size:13px; color:rgba(255,255,255,.65); }
.square-note svg{ width:20px; height:20px; flex:none; }

.category-list{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); border:1px solid var(--line); margin-top:20px; }
.category-row{ background:var(--paper); padding:26px 28px; display:flex; align-items:center; justify-content:space-between; transition:background .2s ease; }
.category-row:hover{ background:var(--teal); color:var(--white); }
.category-row h4{ font-family:var(--sans); font-size:15px; font-weight:600; }
.category-row span{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; opacity:.6; }

/* Shop page category photo cards — real photos linking straight to each
   category on the Square store. */
.category-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.category-card{ display:block; background:var(--paper); border:1px solid var(--line); overflow:hidden; }
.category-card-media{ aspect-ratio:4/3; overflow:hidden; background:var(--ink-soft); }
.category-card-media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.category-card:hover .category-card-media img{ transform:scale(1.06); }
.category-card-label{ display:flex; align-items:center; justify-content:space-between; padding:16px 18px; }
.category-card-label{ font-family:var(--sans); font-size:14px; font-weight:600; color:var(--ink); }
.category-card-label span{ font-size:11px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; opacity:.55; }
.category-card:hover .category-card-label{ color:var(--teal); }

/* Events */
.event-row{ display:grid; grid-template-columns:120px 1fr auto; gap:28px; align-items:center; padding:26px 0; border-top:1px solid var(--line); }
.event-row:last-child{ border-bottom:1px solid var(--line); }
.event-date{ text-align:center; background:var(--ink); color:var(--white); padding:14px 8px; }
.event-date .d{ font-family:var(--serif); font-size:28px; display:block; }
.event-date .m{ font-size:10px; letter-spacing:.2em; text-transform:uppercase; opacity:.75; }
.event-info h4{ font-family:var(--serif); font-size:20px; margin-bottom:6px; font-weight:500; }
.event-info span{ font-size:12px; color:rgba(11,15,14,.55); letter-spacing:.04em; }
.event-empty{ padding:60px 0; text-align:center; color:rgba(11,15,14,.55); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }

/* Follow Along (social feed — Facebook Page Plugin + real Instagram embeds) */
.social-feed-grid{ display:grid; grid-template-columns:auto 1fr; gap:56px; align-items:start; justify-content:center; }
.social-col-head{
  display:flex; align-items:center; gap:10px; margin-bottom:20px;
  font-family:var(--sans); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--teal-light);
}
.social-col-head svg{ width:18px; height:18px; }
.fb-embed-wrap{ min-width:180px; }
.fb-embed-wrap iframe{ max-width:100%; }
.ig-grid{ display:grid; grid-template-columns:repeat(2,minmax(280px,340px)); gap:20px; }
.ig-cell{ background:var(--ink-soft); overflow:hidden; }
.ig-cell iframe{ width:100% !important; }

/* Testimonials */
.quote-strip{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
.quote{ border-top:1px solid var(--line-on-dark); padding-top:22px; }
.quote p{ font-family:var(--serif); font-size:19px; font-style:italic; color:var(--white); }
.quote span{ display:block; margin-top:14px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--teal-light); }

/* Contact */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:80px; }
.field{ position:relative; margin-bottom:34px; }
.field input, .field textarea{
  width:100%; background:transparent; border:0; border-bottom:1px solid var(--line);
  padding:12px 2px; font-family:var(--sans); font-size:15px; color:var(--ink); outline:none;
  transition:border-color .2s ease;
}
.section.dark .field input, .section.dark .field textarea{ color:var(--white); border-color:var(--line-on-dark); }
.field label{ position:absolute; left:2px; top:12px; font-size:13px; color:rgba(11,15,14,.5); letter-spacing:.04em; text-transform:uppercase; pointer-events:none; transition:.2s ease; }
.section.dark .field label{ color:rgba(255,255,255,.5); }
.field input:focus ~ label, .field input:not(:placeholder-shown) ~ label,
.field textarea:focus ~ label, .field textarea:not(:placeholder-shown) ~ label{
  top:-14px; font-size:10px; color:var(--teal);
}
.field input:focus, .field textarea:focus{ border-color:var(--teal); }
.field textarea{ resize:vertical; min-height:110px; }

.info-list{ margin-top:30px; }
.info-list li{ display:flex; gap:16px; padding:16px 0; border-top:1px solid var(--line-on-dark); font-size:14px; }
.info-list li:last-child{ border-bottom:1px solid var(--line-on-dark); }
.info-list svg{ width:18px; height:18px; flex:none; color:var(--teal-light); margin-top:2px; }
.hours-table{ width:100%; margin-top:14px; font-size:14px; }
.hours-table tr{ border-top:1px solid var(--line-on-dark); }
.hours-table tr:last-child{ border-bottom:1px solid var(--line-on-dark); }
.hours-table td{ padding:9px 0; }
.hours-table td:last-child{ text-align:right; color:rgba(255,255,255,.75); }

/* Map */
.map-wrap{ filter:grayscale(1) invert(0.92) contrast(0.9); height:100%; min-height:340px; border:1px solid var(--line-on-dark); }
.map-wrap iframe{ width:100%; height:100%; min-height:340px; border:0; display:block; }

/* Footer */
.site-footer{ background:var(--ink); color:rgba(255,255,255,.7); padding:80px 0 0; }
.footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.1fr; gap:50px; padding-bottom:60px; border-bottom:1px solid var(--line-on-dark); }
.footer-brand .brand-name{ color:var(--white); }
.footer-brand p{ font-size:14px; margin-top:16px; color:rgba(255,255,255,.55); max-width:280px; }
.footer-social{ display:flex; gap:14px; margin-top:20px; }
.footer-social a{ width:36px; height:36px; border:1px solid var(--line-on-dark); border-radius:50%; display:flex; align-items:center; justify-content:center; transition:.2s; }
.footer-social a:hover{ background:var(--teal); border-color:var(--teal); }
.footer-social svg{ width:15px; height:15px; }
.footer-col h5{ font-family:var(--sans); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--white); margin-bottom:20px; }
.footer-col li{ margin-bottom:12px; font-size:14px; }
.footer-col a:hover{ color:var(--teal-light); }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding:26px 0; font-size:12px; color:rgba(255,255,255,.4); flex-wrap:wrap; gap:10px; }

/* Reveal-on-scroll */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease; }
.reveal.is-visible{ opacity:1; transform:none; }

/* Page hero (interior pages) */
.page-hero{ padding:calc(var(--nav-h) + 90px) 0 90px; background:var(--ink); color:var(--white); text-align:center; }
.page-hero .eyebrow{ justify-content:center; display:flex; }
.page-hero h1{ font-size:clamp(42px,7vw,84px); margin-top:16px; }
.breadcrumb{ margin-top:18px; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.5); }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 980px){
  .intro-grid, .editorial, .mission, .contact-grid{ grid-template-columns:1fr; gap:40px; }
  .editorial-media{ order:-1; }
  .social-feed-grid{ grid-template-columns:1fr; justify-items:center; gap:44px; }
  .spec-grid{ grid-template-columns:repeat(2,1fr); }
  .cat-strip{ grid-template-columns:repeat(3,1fr); }
  .category-list{ grid-template-columns:repeat(2,1fr); }
  .category-grid{ grid-template-columns:repeat(2,1fr); }
  .quote-strip{ grid-template-columns:1fr; gap:26px; }
  .callout{ flex-direction:column; text-align:center; gap:26px; }
  .footer-top{ grid-template-columns:1fr 1fr; }
}
@media (max-width: 720px){
  .container{ padding:0 22px; }
  :root{ --nav-h:64px; }
  .site-header, .site-header.is-scrolled{ height:64px; }
  .brand img{ width:44px; height:44px; }
  .brand-name{ font-size:14px; white-space:nowrap; }
  .brand-name small{ display:none; }
  .header-cta .btn{ display:none; }
  .main-nav{ position:fixed; inset:0; top:64px; background:var(--ink); display:flex; align-items:center; justify-content:center; transform:translateX(100%); transition:transform .35s ease; }
  .main-nav.is-open{ transform:translateX(0); }
  .main-nav ul{ flex-direction:column; text-align:center; gap:28px; }
  .main-nav a{ font-size:16px; }
  .main-nav .nav-shop{ display:block; margin-top:6px; }
  .nav-toggle{ display:block; }
  .section{ padding:80px 0; }
  .spec-grid{ grid-template-columns:1fr; }
  .cat-strip{ grid-template-columns:repeat(2,1fr); }
  .category-list{ grid-template-columns:1fr; }
  .category-grid{ grid-template-columns:1fr; }
  .footer-top{ grid-template-columns:1fr; }
  .hero-badge{ right:24px; bottom:24px; width:110px; height:110px; }
  .hero{ padding-bottom:60px; }
  .event-row{ grid-template-columns:70px 1fr; }
  .event-row .btn{ grid-column:1/-1; }
  .ig-grid{ grid-template-columns:minmax(260px,340px); }
  .shop-hero-card{ padding:110px 24px 40px; }
  .shop-hero-card .badge-corner{ top:20px; right:20px; }
  .shop-hero-card .badge-corner .hero-badge{ width:80px !important; height:80px !important; }
  .shop-hero-card .badge-corner .hero-badge .core svg{ width:16px; height:16px; }
}

/* =========================================================
   WordPress-specific
   ========================================================= */
/* Keep the fixed header clear of the admin toolbar when logged in */
body.admin-bar .site-header{ top:32px; }
@media (max-width: 782px){
  body.admin-bar .site-header{ top:46px; }
}

/* Readable defaults for editor-authored content (About, policy pages, single posts) */
.entry-content{ font-size:16px; color:rgba(11,15,14,.8); }
.entry-content > *:first-child{ margin-top:0; }
.entry-content h2{ font-size:clamp(28px,3.4vw,42px); margin:1.4em 0 .5em; }
.entry-content h3{ font-size:clamp(22px,2.6vw,30px); margin:1.3em 0 .5em; }
.entry-content h4{ font-family:var(--sans); font-weight:600; margin:1.2em 0 .4em; }
.entry-content p{ margin:0 0 1.2em; line-height:1.75; }
.entry-content a{ color:var(--teal); text-decoration:underline; text-underline-offset:3px; }
.entry-content a:hover{ color:var(--ink); }
.entry-content ul, .entry-content ol{ margin:0 0 1.2em; padding-left:1.3em; line-height:1.75; }
.entry-content ul{ list-style:disc; }
.entry-content ol{ list-style:decimal; }
.entry-content blockquote{ margin:1.6em 0; padding:.2em 0 .2em 1.4em; border-left:2px solid var(--gold); font-style:italic; color:rgba(11,15,14,.7); }
.entry-content img{ margin:1.6em 0; }
.entry-content figcaption{ font-size:13px; color:rgba(11,15,14,.55); margin-top:.5em; }
.entry-content table{ width:100%; border-collapse:collapse; margin:1.6em 0; }
.entry-content table th, .entry-content table td{ border:1px solid var(--line); padding:10px 14px; text-align:left; }
.section.dark .entry-content, .section.teal .entry-content{ color:rgba(255,255,255,.78); }
.section.dark .entry-content a, .section.teal .entry-content a{ color:var(--teal-light); }

/* Alignment helpers WordPress may insert into content */
.alignleft{ float:left; margin:.4em 1.6em 1.2em 0; }
.alignright{ float:right; margin:.4em 0 1.2em 1.6em; }
.aligncenter{ display:block; margin:1.6em auto; }
.wp-caption{ max-width:100%; }
.wp-caption-text{ font-size:13px; color:rgba(11,15,14,.55); margin-top:.5em; }
.screen-reader-text{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap; }

/* Simple form notices (contact page) */
.form-notice{ padding:14px 18px; margin-bottom:26px; font-size:14px; border:1px solid var(--line-on-dark); }
.form-notice.success{ border-color:var(--teal-light); color:var(--teal-light); }
.form-notice.error{ border-color:#c96a2a; color:#e0a67c; }
