/*
Theme Name:   Buddha's Big Island Bread Co.
Theme URI:    https://buddhasbread.com
Description:  Child theme for Buddha's Big Island Bread Co. — built on Astra.
Author:       Matt Krebs
Template:     astra
Version:      2.0.0
Text Domain:  buddhas-bread-child
*/

:root{
  --ink:#161210;
  --ink-soft:#4A4038;
  --cream:#F4ECDA;
  --paper:#FAF5E9;
  --hot:#E14620;
  --hot-dark:#B93413;
  --teal:#1E8A80;
  --teal-dark:#146059;
  --line:rgba(22,18,16,0.14);
}

/* ---------- Reset & base ---------- */
*{margin:0;padding:0;box-sizing:border-box;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Work Sans', sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
h1,h2,h3{
  font-family:'Anton',sans-serif;
  font-weight:400;
  text-transform:uppercase;
  line-height:0.96;
  letter-spacing:0.01em;
}
.eyebrow{
  font-family:'Anton',sans-serif;
  font-size:13px;
  letter-spacing:.04em;
  color:var(--hot);
  display:inline-block;
}

/* ---------- Marquee ticker ---------- */
.ticker-wrap{
  background:var(--hot);
  overflow:hidden;
  white-space:nowrap;
  padding:11px 0;
}
.ticker{display:inline-block;animation:buddhas-scroll 24s linear infinite;}
.ticker span{
  display:inline-block;
  font-family:'Anton',sans-serif;
  font-size:15px;
  color:var(--cream);
  letter-spacing:.04em;
  padding:0 22px;
}
@keyframes buddhas-scroll{
  0%{transform:translateX(0);}
  100%{transform:translateX(-50%);}
}
@media (prefers-reduced-motion: reduce){
  .ticker{animation:none;}
}

/* ---------- Header ---------- */
.site-header-custom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:22px 5%;
  background:var(--cream);
  border-bottom:3px solid var(--ink);
  position:relative;
  z-index:20;
}
.header-side{
  font-family:'Work Sans',sans-serif;
  font-weight:700;
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.03em;
  color:var(--ink);
  flex:1;
  display:flex;
  gap:30px;
}
.header-side.right{
  justify-content:flex-end;
  gap:22px;
  align-items:center;
}
.header-side a{opacity:.85;transition:opacity .2s ease, color .2s ease;}
.header-side a:hover{opacity:1;color:var(--hot);}
.cart-btn{
  background:var(--ink);
  color:var(--paper);
  font-family:'Anton',sans-serif;
  font-size:14px;
  letter-spacing:.03em;
  padding:12px 22px;
  border:none;
  cursor:pointer;
  transition:background .18s ease;
}
.cart-btn:hover{background:var(--hot);}
#cartCount{display:inline-block;min-width:12px;}
.logo-wrap{flex:0 0 auto;}
.logo-wrap img{height:58px;width:auto;}

.menu-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:5px;
  width:32px;
  height:32px;
  background:none;
  border:none;
  padding:0;
  cursor:pointer;
  flex:0 0 auto;
}
.menu-toggle span{
  display:block;
  width:100%;
  height:3px;
  background:var(--ink);
  transition:transform .25s ease, opacity .2s ease;
}
.menu-toggle.open span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.menu-toggle.open span:nth-child(2){opacity:0;}
.menu-toggle.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}

.mobile-nav{
  position:fixed;
  top:0;
  right:0;
  height:100%;
  width:78%;
  max-width:320px;
  background:var(--ink);
  box-shadow:-10px 0 34px rgba(22,18,16,0.3);
  z-index:60;
  display:flex;
  flex-direction:column;
  padding:96px 32px 40px;
  gap:22px;
  transform:translateX(100%);
  transition:transform .3s ease;
}
.mobile-nav.open{transform:translateX(0);}
.mobile-nav a{
  font-family:'Anton',sans-serif;
  font-size:18px;
  letter-spacing:.02em;
  color:var(--paper);
  padding-bottom:14px;
  border-bottom:1px solid rgba(250,245,233,0.18);
}
.mobile-nav a:hover{color:var(--hot);}
.mobile-nav-cart{
  margin-top:6px;
  text-align:center;
  background:var(--hot);
  color:var(--paper);
  border:none;
  cursor:pointer;
  font-family:'Anton',sans-serif;
  font-size:16px;
  letter-spacing:.03em;
  padding:14px;
}
.mobile-nav-scrim{
  position:fixed;
  inset:0;
  background:rgba(22,18,16,0.5);
  z-index:50;
  opacity:0;
  pointer-events:none;
  transition:opacity .3s ease;
}
.mobile-nav-scrim.open{opacity:1;pointer-events:auto;}

@media(max-width:760px){
  .header-side.left{display:none;}
  .logo-wrap img{height:44px;}
  .site-header-custom{padding:16px 6%;}
  .menu-toggle{display:flex;}
}
@media(max-width:600px){
  .site-header-custom{padding:14px 5%;}
  .header-side.right{gap:14px;}
  .header-side.right a{display:none;}
  .logo-wrap img{height:38px;}
}

/* ---------- Hero (new split layout) ---------- */
.hero{position:relative;background:var(--ink);overflow:hidden;}
.hero-grid{max-width:1500px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;align-items:stretch;}
.hero-copy{padding:8vw 5% 8vw 6%;display:flex;flex-direction:column;justify-content:center;color:var(--paper);}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--hot);color:var(--paper);
  font-family:'Anton',sans-serif;font-size:13px;letter-spacing:.04em;
  padding:9px 16px;width:fit-content;margin-bottom:28px;
}
.hero h1{font-size:clamp(46px,6.4vw,92px);color:var(--paper);}
.hero h1 .hot{color:var(--hot);}
.hero-sub{font-size:18px;color:#D9CFC0;font-weight:500;margin:24px 0 32px;max-width:36ch;line-height:1.6;}
.hero-photo{position:relative;min-height:440px;overflow:hidden;}
.hero-photo img{position:absolute;inset:0;width:100% !important;height:100% !important;object-fit:cover;max-width:none;}

@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-photo{min-height:340px;order:1;}
  .hero-copy{order:2;padding:44px 7%;}
  .hero h1{font-size:clamp(38px,11vw,56px);}
}

/* ---------- Buttons ---------- */
.btn-primary, .hero-cta, .link-cta, .shop-btn{
  display:inline-block;
  background:var(--hot);
  color:var(--paper);
  font-family:'Anton',sans-serif;
  font-size:17px;
  letter-spacing:.03em;
  padding:17px 34px;
  width:fit-content;
  border:none;
  cursor:pointer;
  text-align:center;
  transition:background .18s ease, color .18s ease;
}
.btn-primary:hover, .hero-cta:hover, .link-cta:hover, .shop-btn:hover{background:var(--hot-dark);}
.btn-primary.alt{background:var(--teal);}
.btn-primary.alt:hover{background:var(--teal-dark);}
.btn-outline{
  display:inline-block;
  background:none;
  color:var(--ink);
  border:3px solid var(--ink);
  font-family:'Anton',sans-serif;
  font-size:16px;
  letter-spacing:.03em;
  padding:14px 30px;
  width:fit-content;
  transition:all .18s ease;
}
.btn-outline:hover{background:var(--ink);color:var(--paper);}

/* ---------- Wave divider ---------- */
.wave{display:block;width:100%;line-height:0;}
.wave svg{width:100%;height:auto;display:block;}

/* ---------- Fact strip ---------- */
.fact-strip{background:var(--cream);border-bottom:3px solid var(--ink);display:flex;justify-content:center;flex-wrap:wrap;}
.fact{flex:1 1 200px;text-align:center;padding:26px 20px;border-right:1px solid var(--line);}
.fact:last-child{border-right:none;}
.fact-num{font-family:'Anton',sans-serif;font-size:30px;color:var(--hot);display:block;}
.fact-label{font-size:12px;font-weight:700;color:var(--ink);text-transform:uppercase;letter-spacing:.06em;margin-top:2px;display:block;}
@media(max-width:700px){.fact{flex:1 1 50%;border-bottom:1px solid var(--line);}}

/* ---------- Welcome (short homepage teaser) ---------- */
.welcome{
  max-width:640px;
  margin:0 auto;
  text-align:center;
  padding:90px 6% 70px;
}
.welcome h2{
  font-size:clamp(32px,4vw,46px);
  margin:16px 0 22px;
  color:var(--ink);
}
.welcome p{
  color:var(--ink-soft);
  font-size:17px;
  line-height:1.7;
  font-weight:500;
  margin-bottom:14px;
}
.welcome .link-cta{margin-top:16px;}
@media(max-width:600px){
  .welcome{padding:56px 7% 44px;}
  .welcome h2{font-size:29px;}
}

/* ---------- Island Favorites / product grid ---------- */
.favorites{max-width:1320px;margin:0 auto;padding:90px 5% 30px;}
.favorites-head{text-align:center;margin-bottom:52px;}
.favorites-head h2{font-size:clamp(36px,5vw,56px);}
.favorites-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:3px solid var(--ink);border-left:3px solid var(--ink);}
.product{background:var(--paper);border-right:3px solid var(--ink);border-bottom:3px solid var(--ink);padding:0 0 28px;text-align:left;}
.product-img{position:relative;aspect-ratio:1/1;overflow:hidden;border-bottom:3px solid var(--ink);background:var(--cream);margin-bottom:22px;}
.product-img img{width:100%;height:100%;object-fit:cover;}
.badge{
  position:absolute;top:14px;left:14px;
  background:var(--hot);color:var(--paper);
  font-family:'Anton',sans-serif;font-size:12px;letter-spacing:.04em;
  padding:8px 13px;
}
.product h3{font-size:26px;color:var(--ink);margin:0 22px 8px;}
.product .price{
  font-family:'Anton',sans-serif;font-size:17px;color:var(--hot);
  margin:0 22px 12px;
}
.product p{
  font-size:14.5px;color:var(--ink-soft);line-height:1.65;
  margin:0 22px 20px;font-weight:500;
}
.product .shop-btn{display:block;width:calc(100% - 44px);margin:0 22px;background:var(--ink);}
.product .shop-btn:hover{background:var(--hot);}
@media(max-width:900px){.favorites-grid{grid-template-columns:1fr;}.favorites{padding:60px 6% 20px;}}

/* ---------- Bulk orders band ---------- */
.band{
  background:var(--teal);
  color:var(--paper);
  padding:90px 6%;
  border-top:3px solid var(--ink);
  border-bottom:3px solid var(--ink);
}
.band-inner{max-width:700px;margin:0 auto;text-align:center;}
.band .eyebrow{
  background:var(--ink);color:var(--paper);
  padding:8px 16px;display:inline-block;margin-bottom:22px;
}
.band h2{font-size:clamp(32px,4.4vw,52px);margin:0 auto 20px;max-width:16ch;}
.band p{font-size:16.5px;font-weight:500;max-width:52ch;margin:0 auto 14px;color:#DCEFEC;line-height:1.65;}
.band .tagline{font-size:17px;font-weight:600;color:var(--paper);margin-top:10px;}
.band .link-cta{margin-top:28px;background:var(--hot);}
.band .link-cta:hover{background:var(--hot-dark);}
.band-tags{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin:28px 0 8px;}
.band-tag{
  font-family:'Anton',sans-serif;font-size:13px;letter-spacing:.03em;
  border:2px solid var(--paper);color:var(--paper);
  padding:10px 18px;transition:all .15s ease;
}
.band-tag:hover{background:var(--paper);color:var(--teal-dark);}
@media(max-width:600px){.band{padding:56px 7%;}}

/* ---------- Segments (Bulk Orders page: Realtors/Corporate/Events) ---------- */
.segment{max-width:760px;margin:0 auto;padding:76px 6%;}
.segment-band{background:var(--cream);border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);}
.segment h2{font-size:clamp(28px,3.6vw,42px);margin:12px 0 16px;}
.segment p{color:var(--ink-soft);font-size:16px;line-height:1.7;font-weight:500;margin-bottom:18px;}
.segment-list{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;list-style:none;padding:0;margin:0;}
.segment-list li{font-size:14.5px;font-weight:600;color:var(--ink);padding-left:20px;position:relative;}
.segment-list li::before{content:'';position:absolute;left:0;top:8px;width:8px;height:8px;background:var(--hot);}
@media(max-width:600px){.segment{padding:52px 7%;}.segment-list{grid-template-columns:1fr;}}

/* ---------- We Deliver schedule ---------- */
.schedule{max-width:1000px;margin:0 auto;padding:90px 6%;}
.schedule-title{text-align:center;margin-bottom:44px;}
.schedule-title h2{font-size:clamp(30px,3.6vw,44px);}
.schedule-title p{font-size:15.5px;color:var(--ink-soft);font-weight:500;margin-top:14px;}
.schedule-list{border-top:3px solid var(--ink);}
.row{
  display:grid;grid-template-columns:110px 1fr;align-items:center;gap:22px;
  padding:22px 4px;border-bottom:3px solid var(--ink);
}
.when{font-family:'Anton',sans-serif;}
.when .month{font-size:11px;letter-spacing:.05em;color:var(--hot);display:block;margin-bottom:2px;text-transform:uppercase;}
.when .num{font-family:'Anton',sans-serif;font-size:24px;color:var(--ink);}
.what{font-size:16.5px;font-weight:600;color:var(--ink);}
@media(max-width:600px){.schedule{padding:56px 7%;}.row{grid-template-columns:74px 1fr;}}

/* ---------- Ohana / About split section ---------- */
.ohana{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);}
.ohana-photo{position:relative;min-height:560px;overflow:hidden;}
.ohana-photo img{position:absolute;inset:0;width:100% !important;height:100% !important;object-fit:cover;object-position:center 75%;max-width:none;}
.ohana-text{padding:70px 7%;display:flex;flex-direction:column;justify-content:center;background:var(--paper);}
.ohana-text h2{font-size:clamp(30px,4vw,46px);margin:14px 0 22px;}
.ohana-text p{color:var(--ink-soft);font-size:16px;line-height:1.75;font-weight:500;margin-bottom:14px;max-width:46ch;}
.signoff{margin-top:16px;font-weight:700;color:var(--ink);font-size:15px;}
@media(max-width:800px){.ohana{grid-template-columns:1fr;}.ohana-photo{min-height:280px;}.ohana-text{padding:48px 7%;}}

/* ---------- Page intro (About / Bulk Orders / FAQ / Contact headers) ---------- */
.page-intro{max-width:680px;margin:0 auto;text-align:center;padding:90px 6% 56px;}
.page-intro h1{font-size:clamp(34px,4.6vw,52px);margin:14px 0 20px;color:var(--ink);}
.page-intro p{color:var(--ink-soft);font-size:16.5px;line-height:1.7;font-weight:500;}
@media(max-width:600px){.page-intro{padding:54px 7% 36px;}.page-intro h1{font-size:28px;}}

/* ---------- Forms (Bulk Orders / Contact) ---------- */
.form-section{max-width:640px;margin:0 auto;padding:0 6% 100px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 20px;}
.form-field{display:flex;flex-direction:column;gap:6px;}
.form-field.full{grid-column:1 / -1;}
.form-field label{
  font-family:'Anton',sans-serif;font-size:11.5px;letter-spacing:.04em;
  color:var(--hot);text-transform:uppercase;
}
.form-field input, .form-field select, .form-field textarea{
  border:none;border-bottom:2px solid var(--ink);background:transparent;
  padding:10px 2px;font-family:'Work Sans',sans-serif;font-size:16px;color:var(--ink);
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{outline:none;border-bottom-color:var(--hot);}
.form-field textarea{resize:vertical;min-height:110px;}
.form-submit{
  grid-column:1 / -1;justify-self:start;margin-top:8px;
  background:var(--hot);color:var(--paper);border:none;
  font-family:'Anton',sans-serif;font-size:15px;letter-spacing:.03em;
  padding:15px 32px;cursor:pointer;transition:background .18s ease;
}
.form-submit:hover{background:var(--hot-dark);}
.form-msg{
  grid-column:1 / -1;
  margin-top:4px;
  font-size:13px;
  font-weight:600;
  color:var(--ink);
  min-height:16px;
}
.form-msg.is-error{color:var(--hot);}
.form-note{font-size:12.5px;color:#8A8074;margin-top:14px;}
@media(max-width:640px){.form-section{padding:0 7% 60px;}.form-grid{grid-template-columns:1fr;}.form-field{grid-column:1 / -1;}}

/* ---------- Contact info recap ---------- */
.contact-info-grid{max-width:1040px;margin:0 auto;padding:0 6% 80px;display:grid;grid-template-columns:repeat(3,1fr);gap:0;text-align:center;border-top:3px solid var(--ink);}
.contact-info-grid > div{padding:30px 20px;border-right:3px solid var(--ink);border-bottom:3px solid var(--ink);}
.contact-info-grid > div:last-child{border-right:none;}
.contact-info-grid h4{
  font-family:'Anton',sans-serif;font-size:12px;letter-spacing:.05em;
  color:var(--hot);margin-bottom:10px;text-transform:uppercase;
}
.contact-info-grid p, .contact-info-grid a{display:block;font-size:16px;color:var(--ink);font-weight:600;line-height:1.6;}
@media(max-width:780px){.contact-info-grid{grid-template-columns:1fr;}.contact-info-grid > div{border-right:none;}}

/* ---------- FAQ accordion ---------- */
.faq-list{max-width:760px;margin:0 auto;padding:0 6% 100px;}
.faq-item{border-bottom:3px solid var(--ink);padding:22px 0;}
.faq-item summary{
  cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:baseline;gap:20px;
  font-family:'Work Sans',sans-serif;font-weight:700;font-size:17px;color:var(--ink);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+';font-family:'Anton',sans-serif;font-size:20px;color:var(--hot);flex:0 0 auto;transition:transform .2s ease;}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{color:var(--ink-soft);font-size:15.5px;line-height:1.7;font-weight:500;margin-top:14px;padding-right:30px;}
@media(max-width:600px){.faq-list{padding:0 7% 60px;}.faq-item summary{font-size:15.5px;}}

/* ---------- Footer ---------- */
.site-footer-custom{background:var(--ink);color:var(--paper);padding:76px 6% 30px;}
.footer-top{
  max-width:1200px;margin:0 auto;
  display:grid;grid-template-columns:1.3fr 1fr 1fr 1.3fr;gap:40px;
  padding-bottom:46px;border-bottom:1px solid rgba(250,245,233,0.15);
}
.footer-brand h3{font-size:30px;margin-bottom:14px;color:var(--paper);}
.footer-brand p{font-size:14.5px;color:#C9BFAF;font-weight:500;line-height:1.7;max-width:32ch;}
.footer-col h4{font-family:'Anton',sans-serif;font-size:13px;letter-spacing:.04em;color:var(--hot);margin-bottom:14px;}
.footer-col a, .footer-col p{display:block;font-size:14.5px;color:#D9CFC0;line-height:1.9;font-weight:500;}
.footer-col a:hover{color:var(--paper);}
.newsletter-input{width:100%;background:none;border:none;border-bottom:2px solid #5A5048;color:var(--paper);padding:10px 2px;font-size:14px;margin-top:4px;}
.newsletter-input::placeholder{color:#8A8074;}
.newsletter-btn{margin-top:14px;background:var(--hot);color:var(--paper);font-family:'Anton',sans-serif;font-size:13px;letter-spacing:.03em;padding:11px 22px;border:none;cursor:pointer;}
.newsletter-btn:hover{background:var(--hot-dark);}
.newsletter-msg{
  margin-top:10px;
  font-size:13px;
  font-weight:500;
  color:#D9CFC0;
  min-height:16px;
}
.newsletter-msg.is-error{color:var(--hot);}
.footer-bottom{
  max-width:1200px;margin:26px auto 0;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;
  font-size:13px;color:#8A8074;font-weight:500;
}
.footer-social{display:flex;gap:14px;}
.footer-social a{
  width:40px;
  height:40px;
  border:2px solid var(--hot);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .18s ease;
}
.footer-social a:hover{background:var(--hot);}
.footer-social svg{width:18px;height:18px;}
.footer-social a:hover svg{stroke:var(--ink);}
.footer-social a:hover svg circle[fill]{fill:var(--ink);}
@media(max-width:900px){.footer-top{grid-template-columns:1fr 1fr;}}

/* ---------- Cart drawer ---------- */
.cart-drawer{
  position:fixed;top:0;right:0;height:100%;width:88%;max-width:400px;
  background:var(--paper);box-shadow:-10px 0 34px rgba(22,18,16,0.3);
  z-index:70;display:flex;flex-direction:column;
  padding:96px 30px 30px;transform:translateX(100%);transition:transform .3s ease;
}
.cart-drawer.open{transform:translateX(0);}
.cart-drawer-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:20px;border-bottom:3px solid var(--ink);margin-bottom:20px;}
.cart-close-btn{background:none;border:none;font-size:28px;line-height:1;color:var(--ink);cursor:pointer;}
.cart-lines{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:18px;}
.cart-line{padding-bottom:16px;border-bottom:1px solid var(--line);}
.cart-line-title{font-family:'Anton',sans-serif;font-size:16px;color:var(--ink);margin-bottom:8px;}
.cart-line-controls{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;}
.cart-qty-btn{width:26px;height:26px;border:2px solid var(--ink);background:none;cursor:pointer;color:var(--ink);font-weight:700;}
.cart-qty{min-width:14px;text-align:center;font-weight:700;}
.cart-remove-btn{margin-left:auto;background:none;border:none;color:var(--hot);font-family:'Anton',sans-serif;font-size:12px;letter-spacing:.03em;cursor:pointer;}
.cart-empty{display:none;font-size:14px;color:var(--ink-soft);padding:20px 0;font-weight:500;}
.cart-drawer-footer{border-top:3px solid var(--ink);padding-top:20px;margin-top:20px;}
.cart-subtotal-row{display:flex;justify-content:space-between;font-family:'Anton',sans-serif;font-size:16px;color:var(--ink);margin-bottom:16px;}
.cart-checkout-btn{width:100%;background:var(--hot);color:var(--paper);border:none;font-family:'Anton',sans-serif;font-size:15px;letter-spacing:.03em;padding:16px;cursor:pointer;transition:background .18s ease;}
.cart-checkout-btn:hover{background:var(--hot-dark);}
.cart-checkout-note{margin-top:10px;text-align:center;font-size:11.5px;color:#8A8074;}
.cart-scrim{position:fixed;inset:0;background:rgba(22,18,16,0.5);z-index:65;opacity:0;pointer-events:none;transition:opacity .3s ease;}
.cart-scrim.open{opacity:1;pointer-events:auto;}
@media(max-width:600px){.cart-drawer{padding:88px 22px 24px;}}

/* ---------- Kill Astra's default content-wrapper spacing ----------
   Astra adds its own top/bottom padding around page content by
   default. Our sections all handle their own spacing (and several,
   like .ohana and .hero, are meant to butt directly against the
   footer with zero gap), so we zero out the theme's wrapper spacing
   here rather than fighting it page by page.
*/
#primary, .site-main, .ast-container, #content, .entry-content, .elementor{
  padding-top:0 !important;
  padding-bottom:0 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
}

/* ---------- Kill Elementor's default section/column/widget spacing ----------
   Separate from the Astra reset above — Elementor adds its own default
   padding/gap around sections and widget wrappers unless explicitly
   zeroed. Since our HTML widgets already build in all the spacing they
   need, this removes Elementor's extra layer everywhere so sections
   butt up against each other (and the header/footer) with no
   unexpected gaps.

   Covers BOTH of Elementor's container systems, since which one is
   active depends on the Elementor version/experiments enabled:
   - Classic: .elementor-section / .elementor-container / .elementor-column
   - Current: .e-con flexbox containers (data-element_type="e-flexbox")
*/
.elementor-section{margin:0 !important;padding:0 !important;}
.elementor-container{padding:0 !important;max-width:none !important;}
.elementor-column > .elementor-widget-wrap{padding:0 !important;}
.elementor-widget-wrap > .elementor-element{margin-bottom:0 !important;}
.elementor-widget:last-child{margin-bottom:0 !important;}

[data-elementor-type="wp-page"]{gap:0 !important;}
.elementor-element.e-con{
  padding:0 !important;
  margin:0 !important;
  gap:0 !important;
  min-height:0 !important;
}
.elementor-widget-html,
.elementor-widget-html .elementor-widget-container{
  padding:0 !important;
  margin:0 !important;
}
