/*
Theme Name: БУБЛЬбум
Theme URI: https://example.com/
Author: SLIM WEB
Description: Фирменная тема WordPress для БУБЛЬбум — воздушные шары в Москве и МО.
Version: 1.59.0
Requires at least: 6.0
Requires PHP: 8.1
Text Domain: slim-balloons
*/

:root{
  --bg:#fffafc;
  --surface:#ffffff;
  --text:#231f20;
  --muted:#756a70;
  --line:#eee3e8;
  --accent:#ef5b86;
  --accent2:#8b5cf6;
  --radius:24px;
  --shadow:0 16px 40px rgba(47,28,38,.08);
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);line-height:1.5}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(calc(100% - 32px),var(--max));margin:auto}
.site-header{position:sticky;top:0;z-index:20;background:rgba(255,250,252,.92);backdrop-filter:blur(14px);border-bottom:1px solid rgba(238,227,232,.8)}
.header-row{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{font-size:22px;font-weight:800;letter-spacing:-.02em}
.nav{display:flex;align-items:center;gap:18px;font-weight:600}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:999px;font-weight:800;border:1px solid transparent;transition:.2s}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff}
.btn-light{background:#fff;border-color:var(--line)}
.hero{padding:80px 0 54px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:48px;align-items:center}
.eyebrow{display:inline-flex;padding:9px 13px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:14px;font-weight:800}
.hero h1{font-size:clamp(42px,7vw,76px);line-height:.98;letter-spacing:-.055em;margin:22px 0 22px}
.hero p{font-size:19px;color:var(--muted);max-width:680px;margin:0 0 28px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.hero-showcase{
  min-height:440px;
  position:relative;
}
.hero-collage{
  position:relative;
  min-height:440px;
}
.hero-shot{
  position:absolute;
  overflow:hidden;
  border-radius:30px;
  background:linear-gradient(135deg,#ffe4ec,#efe7ff);
  border:1px solid rgba(238,227,232,.9);
  box-shadow:var(--shadow);
}
.hero-shot img{width:100%;height:100%;object-fit:cover}
.hero-shot-1{width:68%;height:78%;right:0;top:0;transform:rotate(2deg)}
.hero-shot-2{width:48%;height:54%;left:0;bottom:0;transform:rotate(-4deg)}
.hero-shot-3{width:36%;height:40%;left:10%;top:2%;transform:rotate(5deg)}
.hero-placeholder{
  min-height:440px;border-radius:40px;
  background:
    radial-gradient(circle at 28% 26%,#ffd166 0 8%,transparent 8.5%),
    radial-gradient(circle at 72% 28%,#ef5b86 0 14%,transparent 14.5%),
    radial-gradient(circle at 48% 64%,#8b5cf6 0 17%,transparent 17.5%),
    radial-gradient(circle at 78% 72%,#6ee7b7 0 10%,transparent 10.5%),
    linear-gradient(135deg,#fff,#ffeef4);
  box-shadow:var(--shadow);position:relative
}
.hero-placeholder:after{content:"🎈";font-size:140px;position:absolute;inset:0;display:grid;place-items:center;filter:drop-shadow(0 18px 25px rgba(0,0,0,.12))}
.section{padding:64px 0}
.section-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:26px}
.section h2{font-size:clamp(30px,4vw,46px);letter-spacing:-.035em;margin:0}
.section-sub{color:var(--muted);max-width:620px;margin:8px 0 0}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.card-media{display:block;aspect-ratio:4/3;background:linear-gradient(135deg,#ffe4ec,#efe7ff);overflow:hidden}
.card-media img{width:100%;height:100%;object-fit:cover}
.card-body{padding:20px}
.card h3{font-size:21px;margin:0 0 8px}
.price{font-size:24px;font-weight:900;margin:12px 0 14px}
.card-text{color:var(--muted);min-height:48px}
.meta{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.tag{padding:6px 10px;border-radius:999px;background:#faf3f6;border:1px solid var(--line);font-size:13px}
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.feature{background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px}
.feature strong{display:block;font-size:18px;margin-bottom:8px}
.feature p{margin:0;color:var(--muted)}
.contact-box{padding:36px;border-radius:32px;background:linear-gradient(135deg,#231f20,#44354d);color:#fff;display:grid;grid-template-columns:1fr auto;gap:26px;align-items:center}
.contact-box p{color:#eadfe5;margin:10px 0 0}
.footer{padding:30px 0 42px;color:var(--muted);font-size:14px}
.single-wrap{padding:54px 0 70px}
.single-grid{display:grid;grid-template-columns:1fr 1fr;gap:38px;align-items:start}
.single-photo{aspect-ratio:1/1;border-radius:28px;overflow:hidden;background:#fff;border:1px solid var(--line)}
.single-photo img{width:100%;height:100%;object-fit:cover}
.single-title{font-size:clamp(36px,5vw,58px);line-height:1;letter-spacing:-.04em;margin:0 0 16px}
.single-price{font-size:32px;font-weight:900;margin:18px 0}
.content{color:var(--muted)}
.archive-title{font-size:clamp(38px,5vw,58px);margin:0 0 10px}
.empty{padding:28px;border:1px dashed #d7c9d0;border-radius:18px;color:var(--muted)}
@media(max-width:900px){
  .hero-grid,.single-grid,.contact-box{grid-template-columns:1fr}
  .hero-showcase,.hero-collage,.hero-placeholder{min-height:330px}
  .cards,.feature-grid{grid-template-columns:1fr 1fr}
  .nav a:not(.btn){display:none}
}
@media(max-width:620px){
  .hero{padding-top:44px}
  .cards,.feature-grid{grid-template-columns:1fr}
  .hero h1{font-size:46px}
  .hero-showcase,.hero-collage,.hero-placeholder{min-height:260px}
  .header-row{min-height:64px}
  .brand{font-size:19px}
}

/* v1.1 image normalization */
.card-media > img{display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:620px){
  .single-photo{aspect-ratio:4/3}
}


/* v1.3 contact icon buttons */
.contact-icons{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.icon-btn{
  width:48px;
  height:48px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 8px 22px rgba(47,28,38,.07);
  transition:transform .18s ease, box-shadow .18s ease;
}
.icon-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(47,28,38,.12);
}
.icon-btn svg{
  width:23px;
  height:23px;
  display:block;
}
.icon-btn-dark{
  background:rgba(255,255,255,.1);
  border-color:rgba(255,255,255,.2);
  color:#fff;
  box-shadow:none;
}
.header-icons{
  display:flex;
  align-items:center;
  gap:8px;
}
.header-icons .icon-btn{
  width:42px;
  height:42px;
}
.header-icons .icon-btn svg{
  width:20px;
  height:20px;
}
@media(max-width:900px){
  .header-icons{display:flex}
}

.occasion-strip{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:24px;
}
.occasion-pill{
  display:inline-flex;
  padding:9px 13px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  font-size:14px;
  font-weight:700;
}
.card-body .btn{min-height:42px;padding:0 17px}
@media(max-width:620px){
  .hero-shot-1{width:72%;height:74%}
  .hero-shot-2{width:50%;height:48%}
  .hero-shot-3{width:38%;height:34%}
}


/* v1.5 — БУБЛЬбум brand */
.brand-lockup{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:23px;
  font-weight:900;
  letter-spacing:-.04em;
}
.brand-bubbles{
  position:relative;
  width:34px;
  height:28px;
  flex:0 0 auto;
}
.brand-bubbles i{
  position:absolute;
  border-radius:50%;
  display:block;
}
.brand-bubbles i:nth-child(1){width:17px;height:17px;left:0;top:7px;background:#ef5b86}
.brand-bubbles i:nth-child(2){width:14px;height:14px;left:12px;top:0;background:#8b5cf6}
.brand-bubbles i:nth-child(3){width:12px;height:12px;right:0;bottom:1px;background:#ffd166}
.brand-word .brand-strong{font-weight:950}
.brand-word .brand-soft{
  font-weight:850;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.hero .eyebrow{gap:7px}
.promise-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
.promise{
  padding:22px;
  border-radius:22px;
  background:#fff;
  border:1px solid var(--line);
}
.promise-mark{
  width:42px;height:42px;border-radius:14px;
  display:grid;place-items:center;
  background:linear-gradient(135deg,#ffe7ef,#eee7ff);
  font-size:21px;margin-bottom:14px;
}
.promise strong{display:block;font-size:17px;margin-bottom:6px}
.promise p{margin:0;color:var(--muted);font-size:14px}
.vk-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:800;
}
.vk-badge{
  width:30px;height:30px;border-radius:9px;
  display:grid;place-items:center;
  background:#2787f5;color:#fff;font-size:13px;font-weight:900;
}
.footer-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
}
@media(max-width:900px){
  .promise-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .promise-grid{grid-template-columns:1fr}
  .brand-lockup{font-size:20px}
}


/* v1.6 — финальная структура MVP */
.info-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:18px;
}
.info-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:26px;
  padding:28px;
}
.info-card h3{margin:0 0 10px;font-size:22px}
.info-card p{margin:0;color:var(--muted)}
.faq{
  display:grid;
  gap:10px;
}
.faq details{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:0 20px;
}
.faq summary{
  cursor:pointer;
  list-style:none;
  padding:18px 0;
  font-weight:800;
}
.faq summary::-webkit-details-marker{display:none}
.faq details p{
  margin:0 0 18px;
  color:var(--muted);
}
.tax-head{
  padding:54px 0 20px;
}
.tax-head .eyebrow{margin-bottom:14px}
@media(max-width:900px){
  .info-grid{grid-template-columns:1fr}
}


/* v1.7 — privacy, cookies, floating contacts */
.footer-links{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  align-items:center;
}
.footer-links a{text-decoration:underline;text-underline-offset:3px}

.floating-contact{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:90;
}
.floating-main{
  width:58px;
  height:58px;
  border:0;
  border-radius:50%;
  display:grid;
  place-items:center;
  cursor:pointer;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  color:#fff;
  box-shadow:0 14px 34px rgba(80,45,90,.28);
  position:relative;
}
.floating-main:before,
.floating-main:after{
  content:"";
  position:absolute;
  inset:-7px;
  border:2px solid rgba(239,91,134,.35);
  border-radius:50%;
  animation:bublboom-ring 2.2s infinite;
}
.floating-main:after{animation-delay:1.1s}
.floating-main svg{width:26px;height:26px}
@keyframes bublboom-ring{
  0%{transform:scale(.82);opacity:.7}
  70%{transform:scale(1.25);opacity:0}
  100%{opacity:0}
}
.floating-actions{
  position:absolute;
  right:4px;
  bottom:70px;
  display:flex;
  flex-direction:column;
  gap:9px;
  opacity:0;
  pointer-events:none;
  transform:translateY(8px);
  transition:.18s ease;
}
.floating-contact.is-open .floating-actions{
  opacity:1;
  pointer-events:auto;
  transform:translateY(0);
}
.floating-actions .icon-btn{
  width:48px;
  height:48px;
}

.cookie-banner{
  position:fixed;
  left:18px;
  right:18px;
  bottom:18px;
  z-index:100;
  max-width:840px;
  margin:auto;
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:0 18px 55px rgba(35,31,32,.18);
  padding:18px;
  display:none;
  gap:18px;
  align-items:center;
  justify-content:space-between;
}
.cookie-banner.is-visible{display:flex}
.cookie-copy{font-size:14px;color:var(--muted)}
.cookie-copy strong{display:block;color:var(--text);font-size:16px;margin-bottom:4px}
.cookie-copy a{text-decoration:underline;text-underline-offset:3px}
.cookie-actions{display:flex;gap:8px;flex-wrap:wrap;flex:0 0 auto}
.cookie-actions button{cursor:pointer}
.legal-page{
  padding:54px 0 74px;
}
.legal-page article{
  max-width:860px;
  margin:auto;
  background:#fff;
  border:1px solid var(--line);
  border-radius:28px;
  padding:clamp(22px,5vw,48px);
}
.legal-page h1{font-size:clamp(34px,5vw,52px);line-height:1.05;margin-top:0}
.legal-page h2{margin-top:32px}
.legal-note{
  border:1px solid #f0d5de;
  background:#fff6f9;
  border-radius:16px;
  padding:14px 16px;
  margin:18px 0;
}
@media(max-width:700px){
  .cookie-banner{align-items:stretch;flex-direction:column}
  .cookie-actions{width:100%}
  .cookie-actions .btn{flex:1}
  .floating-contact{right:16px;bottom:16px}
}

/* v1.8 — product variants + price configurator */
.product-price-table{margin:22px 0;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff}
.product-price-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;padding:13px 16px;border-bottom:1px solid var(--line);align-items:center}
.product-price-row:last-child{border-bottom:0}
.product-price-row strong{font-weight:900;white-space:nowrap}
.product-price-title{padding:14px 16px 8px;font-size:14px;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.calc-wrap{background:linear-gradient(145deg,#fff,#fff8fb);border:1px solid var(--line);border-radius:32px;padding:clamp(22px,4vw,38px);box-shadow:var(--shadow)}
.calc-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:28px;align-items:start}
.calc-form{display:grid;gap:16px}
.calc-field label{display:block;font-weight:850;margin-bottom:7px}
.calc-field select,.calc-field input[type="number"]{width:100%;min-height:50px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:0 14px;font:inherit;color:var(--text)}
.calc-options{display:grid;gap:9px}
.calc-option{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fff}
.calc-option label{margin:0;display:flex;align-items:center;gap:9px;cursor:pointer;font-weight:650}
.calc-option-price{font-weight:900;white-space:nowrap}
.calc-result{position:sticky;top:96px;border-radius:24px;padding:26px;background:#34273a;color:#fff}
.calc-result .muted{color:#d8cbdc}
.calc-total{font-size:clamp(38px,5vw,58px);line-height:1;letter-spacing:-.04em;font-weight:950;margin:12px 0}
.calc-breakdown{display:grid;gap:8px;margin:20px 0;padding-top:18px;border-top:1px solid rgba(255,255,255,.16);font-size:14px}
.calc-line{display:flex;justify-content:space-between;gap:14px}
.calc-min{margin-top:14px;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.1);font-size:14px}
.calc-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.calc-actions .btn-light{background:#fff}
.calc-disclaimer{margin-top:12px;font-size:13px;color:#d8cbdc}
.calc-note{padding:13px 15px;border-radius:14px;background:#fff7dc;border:1px solid #f0dfa2;font-size:14px}
@media(max-width:900px){.calc-grid{grid-template-columns:1fr}.calc-result{position:static}}


/* v1.9 — multi-category custom order builder */
.builder-wrap{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(290px,.65fr);gap:24px;align-items:start}
.builder-catalog{display:grid;gap:18px}
.builder-category{background:#fff;border:1px solid var(--line);border-radius:24px;padding:20px;box-shadow:0 10px 28px rgba(47,28,38,.04)}
.builder-category-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:12px}
.builder-category h3{margin:0;font-size:21px;letter-spacing:-.02em}
.builder-category-note{font-size:13px;color:var(--muted)}
.builder-variants{display:grid;gap:10px}
.builder-item{border:1px solid var(--line);border-radius:18px;background:#fffafc;overflow:hidden}
.builder-main-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:14px}
.builder-item-title{font-weight:800}
.builder-item-price{font-weight:950;white-space:nowrap}
.qty-control{display:grid;grid-template-columns:34px 58px 34px;align-items:center;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.qty-control button{height:38px;border:0;background:#fff;cursor:pointer;font:inherit;font-size:19px;color:var(--text)}
.qty-control button:hover{background:#faf3f6}
.qty-control input{width:100%;height:38px;border:0;border-left:1px solid var(--line);border-right:1px solid var(--line);text-align:center;font:inherit;font-weight:800;outline:none;-moz-appearance:textfield}
.qty-control input::-webkit-outer-spin-button,.qty-control input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.builder-extras{display:grid;gap:7px;padding:0 14px 14px;margin-top:-2px}
.builder-extra{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border-radius:12px;background:#fff;border:1px dashed var(--line);font-size:14px}
.builder-extra label{display:flex;align-items:center;gap:8px;cursor:pointer}
.builder-extra-price{font-weight:850;white-space:nowrap}
.builder-unpriced{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px;border:1px dashed #d7c9d0;border-radius:16px;background:#fff}
.builder-unpriced strong{display:block}
.builder-unpriced small{display:block;color:var(--muted);margin-top:3px}
.builder-summary{position:sticky;top:92px;border-radius:26px;padding:24px;background:#34273a;color:#fff;box-shadow:var(--shadow)}
.builder-summary .muted{color:#d8cbdc}
.builder-total{font-size:clamp(38px,5vw,56px);line-height:1;font-weight:950;letter-spacing:-.04em;margin:10px 0 4px}
.builder-summary-list{display:grid;gap:10px;margin:20px 0;padding-top:17px;border-top:1px solid rgba(255,255,255,.16);max-height:48vh;overflow:auto}
.builder-summary-item{padding-bottom:9px;border-bottom:1px solid rgba(255,255,255,.1)}
.builder-summary-item:last-child{border-bottom:0}
.builder-summary-line{display:flex;justify-content:space-between;gap:12px;font-size:14px}
.builder-summary-line span:first-child{min-width:0}
.builder-summary-extra{color:#dbcfe0;font-size:12px;margin-top:4px}
.builder-empty{color:#d8cbdc;font-size:14px;padding:8px 0}
.builder-min{padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.1);font-size:14px;margin-top:12px}
.builder-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.builder-actions .btn{min-height:44px;padding:0 14px;cursor:pointer}
.builder-actions .btn-light{background:#fff}
.builder-contact{margin-top:12px}
.builder-contact .contact-icons{justify-content:flex-start}
.builder-disclaimer{margin-top:13px;font-size:12px;color:#d8cbdc}
.builder-top-note{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.builder-chip{padding:8px 11px;border-radius:999px;background:#fff7dc;border:1px solid #f0dfa2;font-size:13px;font-weight:750}
@media(max-width:980px){.builder-wrap{grid-template-columns:1fr}.builder-summary{position:static}.builder-summary-list{max-height:none}}
@media(max-width:620px){
 .builder-category{padding:14px}
 .builder-main-row{grid-template-columns:1fr auto;gap:9px}
 .builder-item-price{grid-column:1/2;grid-row:2/3}
 .qty-control{grid-column:2/3;grid-row:1/3}
 .builder-actions{grid-template-columns:1fr}
}


/* v1.10 — более компактный конструктор, размер текста без изменений */
.builder-wrap{
  gap:18px;
}
.builder-catalog{
  gap:12px;
}
.builder-category{
  border-radius:20px;
  padding:14px 16px;
}
.builder-category-head{
  margin-bottom:8px;
  gap:12px;
}
.builder-variants{
  gap:7px;
}
.builder-item{
  border-radius:14px;
}
.builder-main-row{
  gap:10px;
  padding:9px 11px;
}
.qty-control{
  grid-template-columns:30px 48px 30px;
  border-radius:10px;
}
.qty-control button{
  height:34px;
}
.qty-control input{
  height:34px;
}
.builder-extras{
  gap:5px;
  padding:0 11px 9px;
}
.builder-extra{
  gap:9px;
  padding:6px 9px;
  border-radius:10px;
}
.builder-unpriced{
  gap:10px;
  padding:9px 11px;
  border-radius:13px;
}
.builder-top-note{
  gap:6px;
  margin-bottom:12px;
}
.builder-chip{
  padding:6px 9px;
}
.builder-summary{
  border-radius:22px;
  padding:20px;
}
.builder-summary-list{
  gap:7px;
  margin:15px 0;
  padding-top:13px;
}
.builder-summary-item{
  padding-bottom:7px;
}
.builder-min{
  padding:9px 11px;
  margin-top:9px;
}
.builder-actions{
  margin-top:11px;
}
.builder-contact{
  margin-top:9px;
}
.builder-disclaimer{
  margin-top:9px;
}

@media(max-width:620px){
  .builder-category{padding:11px 12px}
  .builder-main-row{padding:8px 9px}
  .builder-extras{padding:0 9px 8px}
}


/* v1.11 — header no longer overlaps page content while scrolling */
.site-header{
  position:relative;
  top:auto;
}

/* Comfortable offset when navigating to page sections by anchor */
#catalog,
#calculator,
#delivery,
#delivery-info,
#faq,
#contacts{
  scroll-margin-top:24px;
}


/* v1.12 — prices never wrap + aligned card actions + order buttons */
.price,
.single-price,
.builder-total,
.builder-item-price,
.builder-extra-price,
.builder-summary-line strong,
.calc-total,
.calc-line strong,
.product-price-row strong{
  white-space:nowrap;
  word-break:keep-all;
}

.builder-summary-line strong{
  flex:0 0 auto;
  min-width:max-content;
}

/* Cards keep the price and buttons on one horizontal level across the row */
.card{
  display:flex;
  flex-direction:column;
  height:100%;
}
.card-body{
  display:flex;
  flex-direction:column;
  flex:1;
}
.card-text{
  min-height:0;
  margin-bottom:12px;
}
.card-body .price{
  margin-top:auto;
}
.card-actions{
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
}
.card-actions .btn{
  flex:1 1 118px;
  min-width:0;
  padding-left:14px;
  padding-right:14px;
}
.card-actions .btn-light{
  background:#fff;
  border-color:var(--line);
}

/* Product page CTA */
.single-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:26px;
}
.single-actions .contact-icons{
  flex-wrap:nowrap;
}

@media(max-width:420px){
  .card-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .card-actions .btn{
    width:100%;
  }
}


/* v1.14 — фирменные цвета контактов как в SLIM WEB */
.icon-btn.icon-phone{
  background:#22c55e;
  border-color:#22c55e;
  color:#fff;
}
.icon-btn.icon-telegram{
  background:#229ED9;
  border-color:#229ED9;
  color:#fff;
}
.icon-btn.icon-max{
  background:linear-gradient(135deg,#471AFF,#9500FF);
  border-color:#471AFF;
  color:#fff;
}
.icon-btn.icon-phone:hover,
.icon-btn.icon-telegram:hover,
.icon-btn.icon-max:hover{
  color:#fff;
  filter:brightness(1.04);
}
.icon-btn.icon-phone.icon-btn-dark,
.icon-btn.icon-telegram.icon-btn-dark,
.icon-btn.icon-max.icon-btn-dark{
  color:#fff;
}

/* Кнопки отправки состава */
.builder-send-actions{
  grid-template-columns:1fr 1fr;
}
.builder-send{
  min-height:48px !important;
  gap:9px;
  color:#fff;
  border:0;
  font-weight:800;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.builder-send svg{
  width:20px;
  height:20px;
  flex:0 0 auto;
}
.builder-send-telegram{
  background:#229ED9;
}
.builder-send-max{
  background:linear-gradient(135deg,#471AFF,#9500FF);
}
.builder-send:hover{
  color:#fff;
  filter:brightness(1.04);
  transform:translateY(-1px);
}
.builder-send:disabled{
  opacity:.45;
  cursor:not-allowed;
  transform:none;
  filter:none;
}
.builder-clear-wide{
  grid-column:1/-1;
}
.builder-share-note{
  display:none;
  margin-top:9px;
  padding:9px 11px;
  border-radius:12px;
  background:rgba(255,255,255,.10);
  color:#eee4f0;
  font-size:13px;
  line-height:1.35;
}
.builder-share-note.is-visible{
  display:block;
}

@media(max-width:620px){
  .builder-send-actions{
    grid-template-columns:1fr;
  }
  .builder-clear-wide{
    grid-column:auto;
  }
}


/* v1.15 — точный MAX из SLIM WEB + чище блок «Ваш набор» */
.money-nowrap,
.builder-min strong{
  white-space:nowrap;
}

/* MAX — тот же фирменный графический знак, что использовали в SLIM WEB */
.icon-btn.icon-max{
  background:#fff;
  border-color:rgba(0,0,0,.08);
  padding:0;
  overflow:hidden;
  border-radius:13px;
}
.icon-btn.icon-max .max-brand-icon{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  border-radius:13px;
}
.icon-btn.icon-max.icon-btn-dark{
  background:#fff;
  border-color:rgba(255,255,255,.2);
}

/* Точный MAX-значок в кнопке отправки */
.builder-send-max .max-send-icon{
  width:26px;
  height:26px;
  flex:0 0 auto;
  display:block;
  border-radius:7px;
  object-fit:cover;
  box-shadow:0 1px 3px rgba(0,0,0,.16);
}

/* Нижний дублирующий ряд контактов из summary удалён */
.builder-disclaimer{
  margin-top:12px;
}


/* v1.18 — все контактные иконки квадратные в едином стиле */
.icon-btn{
  width:46px;
  height:46px;
  border-radius:12px;
}
.icon-btn svg,
.icon-btn img{
  border-radius:12px;
}
.icon-btn.icon-max{
  border-radius:12px;
}
.icon-btn.icon-max .max-brand-icon{
  border-radius:12px;
}

/* Чуть компактнее на мобильных */
@media(max-width:640px){
  .icon-btn{
    width:44px;
    height:44px;
    border-radius:11px;
  }
  .icon-btn svg,
  .icon-btn img,
  .icon-btn.icon-max .max-brand-icon{
    border-radius:11px;
  }
}


/* v1.19 — выбор способа заказа */
body.order-choice-open{
  overflow:hidden;
}
.order-choice-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.order-choice-modal.is-open{
  display:flex;
}
.order-choice-backdrop{
  position:absolute;
  inset:0;
  background:rgba(30,22,32,.56);
  backdrop-filter:blur(5px);
}
.order-choice-dialog{
  position:relative;
  z-index:1;
  width:min(470px,100%);
  background:#fffafc;
  border:1px solid var(--line);
  border-radius:26px;
  padding:28px;
  box-shadow:0 28px 80px rgba(34,21,37,.28);
}
.order-choice-close{
  position:absolute;
  right:14px;
  top:12px;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:10px;
  background:#fff;
  color:var(--text);
  font-size:28px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 6px 18px rgba(0,0,0,.07);
}
.order-choice-eyebrow{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  background:#fff0f6;
  color:#9f3e70;
  font-weight:800;
  font-size:12px;
  margin-bottom:12px;
}
.order-choice-dialog h2{
  margin:0;
  padding-right:42px;
  font-size:30px;
  line-height:1.08;
}
.order-choice-product{
  margin:10px 0 0;
  color:var(--muted);
  font-size:14px;
}
.order-choice-list{
  display:grid;
  gap:10px;
  margin-top:22px;
}
.order-choice-item{
  display:grid;
  grid-template-columns:50px 1fr;
  gap:13px;
  align-items:center;
  padding:11px 13px;
  border-radius:16px;
  background:#fff;
  border:1px solid var(--line);
  color:var(--text);
  text-decoration:none;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.order-choice-item:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 26px rgba(43,28,46,.08);
}
.order-choice-item strong{
  display:block;
  font-size:15px;
}
.order-choice-item small{
  display:block;
  color:var(--muted);
  font-size:12px;
  margin-top:2px;
}
.order-choice-icon{
  width:46px;
  height:46px;
  border-radius:12px;
  display:grid;
  place-items:center;
  color:#fff;
  overflow:hidden;
}
.order-choice-icon svg{
  width:22px;
  height:22px;
}
.order-choice-phone .order-choice-icon{
  background:#22c55e;
}
.order-choice-telegram .order-choice-icon{
  background:#229ED9;
}
.order-choice-max-icon{
  background:#fff;
}
.order-choice-max-icon img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
@media(max-width:520px){
  .order-choice-modal{
    align-items:flex-end;
    padding:12px;
  }
  .order-choice-dialog{
    border-radius:24px 24px 18px 18px;
    padding:22px 18px 18px;
  }
  .order-choice-dialog h2{
    font-size:26px;
  }
}


/* v1.20 — wider site + more compact product cards */
:root{
  --site-max:1560px;
}

.container,
.wrap{
  width:min(calc(100% - 32px), var(--site-max));
  max-width:var(--site-max);
}

/* Main product grids: 6 cards on wide desktops */
.cards{
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:16px;
}

/* More compact ready-made set cards */
.card{
  border-radius:20px;
}
.card-media{
  aspect-ratio:1 / 1;
  min-height:0;
}
.card-body{
  padding:16px;
}
.card-body h3{
  font-size:18px;
  line-height:1.15;
  margin-bottom:8px;
}
.card-text{
  font-size:13px;
  line-height:1.45;
  margin-bottom:10px;
}
.card-body .price{
  font-size:21px;
  margin-bottom:12px;
}
.card-actions{
  gap:7px;
}
.card-actions .btn{
  min-height:38px;
  padding:0 10px;
  font-size:13px;
  flex-basis:96px;
}

/* Keep hero/product detail pleasantly constrained */
.hero,
.single-grid{
  max-width:1450px;
  margin-left:auto;
  margin-right:auto;
}

@media(max-width:1400px){
  .cards{
    grid-template-columns:repeat(5,minmax(0,1fr));
  }
}
@media(max-width:1180px){
  .cards{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}
@media(max-width:900px){
  .cards{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media(max-width:680px){
  .container,
  .wrap{
    width:min(calc(100% - 24px), var(--site-max));
  }
  .cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  .card-body{
    padding:13px;
  }
  .card-body h3{
    font-size:16px;
  }
  .card-text{
    font-size:12px;
  }
  .card-body .price{
    font-size:18px;
  }
  .card-actions{
    grid-template-columns:1fr;
  }
}
@media(max-width:430px){
  .cards{
    grid-template-columns:1fr;
  }
}


/* v1.21 — горизонтальная карусель всего каталога на главной */
.catalog-head-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.catalog-scroll-controls{
  display:flex;
  gap:7px;
}
.catalog-scroll-btn{
  width:42px;
  height:42px;
  border-radius:12px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--text);
  font-size:22px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 6px 18px rgba(40,25,42,.05);
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.catalog-scroll-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 9px 22px rgba(40,25,42,.09);
  background:#fff7fb;
}
.catalog-drag-hint{
  margin:-4px 0 12px;
  color:var(--muted);
  font-size:12px;
}

/* Override the normal product grid only on the homepage carousel */
.catalog-carousel{
  display:flex;
  grid-template-columns:none;
  gap:16px;
  overflow-x:auto;
  overflow-y:hidden;
  padding:2px 2px 22px;
  margin:0 -2px;
  scroll-snap-type:x proximity;
  scroll-behavior:smooth;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  cursor:grab;
  user-select:none;
  scrollbar-width:none;
}
.catalog-carousel::-webkit-scrollbar{
  display:none;
}
.catalog-carousel.is-dragging{
  cursor:grabbing;
  scroll-behavior:auto;
}
.catalog-carousel .card{
  flex:0 0 calc((100% - 80px)/6);
  min-width:0;
  scroll-snap-align:start;
  user-select:none;
}
.catalog-carousel .card a,
.catalog-carousel .card img{
  -webkit-user-drag:none;
  user-drag:none;
}

/* 5 visible cards on slightly narrower desktop */
@media(max-width:1400px){
  .catalog-carousel .card{
    flex-basis:calc((100% - 64px)/5);
  }
}
@media(max-width:1180px){
  .catalog-carousel .card{
    flex-basis:calc((100% - 48px)/4);
  }
}
@media(max-width:900px){
  .catalog-carousel .card{
    flex-basis:calc((100% - 32px)/3);
  }
}
@media(max-width:680px){
  .catalog-carousel{
    gap:12px;
    padding-bottom:16px;
    scroll-snap-type:x mandatory;
  }
  .catalog-carousel .card{
    flex:0 0 calc((100% - 12px)/2);
  }
  .catalog-scroll-controls{
    display:none;
  }
  .catalog-drag-hint{
    font-size:11px;
  }
}
@media(max-width:430px){
  .catalog-carousel .card{
    flex:0 0 86%;
  }
  .catalog-drag-hint{
    margin-top:0;
  }
}


/* v1.22 — subtitle of catalog section in one line on desktop */
#catalog .section-sub{
  white-space: nowrap;
}

@media(max-width: 900px){
  #catalog .section-sub{
    white-space: normal;
  }
}


/* v1.23 — все карточки карусели одной высоты */
.catalog-carousel{
  align-items:stretch;
}

.catalog-carousel .card{
  height:auto;
  align-self:stretch;
}

.catalog-carousel .card-body{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
}

.catalog-carousel .card-text{
  flex:0 0 auto;
}

.catalog-carousel .card-body .price{
  margin-top:auto;
}

.catalog-carousel .card-actions{
  margin-top:0;
}


/* v1.24 — интерактивные элементы карусели всегда кликабельны */
.catalog-carousel a,
.catalog-carousel button{
  pointer-events:auto;
  cursor:pointer;
}
.catalog-carousel .card-actions{
  position:relative;
  z-index:3;
}


/* v1.25 — navigation, VK, delivery, hover cards and one-line section descriptions */

/* All section lead descriptions stay on one line on desktop */
.section-sub,
.tax-head .section-sub,
.archive-title + .section-sub{
  white-space:nowrap;
  max-width:none;
}

/* Global back button on inner pages */
.page-back-row{
  padding-top:18px;
}
.page-back-button{
  border:1px solid var(--line);
  background:#fff;
  color:var(--text);
  min-height:42px;
  padding:0 16px;
  border-radius:12px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  font:inherit;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 6px 18px rgba(40,25,42,.05);
  transition:transform .16s ease, box-shadow .16s ease;
}
.page-back-button:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(40,25,42,.09);
}

/* VK joins Phone / Telegram / MAX as the fourth square contact icon */
.icon-btn.icon-vk{
  background:#0077FF;
  border-color:#0077FF;
  color:#fff;
}
.vk-icon-letters{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-weight:950;
  font-size:14px;
  line-height:1;
  letter-spacing:-.05em;
}
.order-choice-vk-icon{
  background:#0077FF;
}

/* Cards lift and grow slightly on hover */
.card{
  transition:transform .18s ease, box-shadow .18s ease;
  transform-origin:center;
}
.card:hover{
  transform:scale(1.025);
  box-shadow:0 18px 38px rgba(46,27,45,.14);
  z-index:8;
}

/* Give carousel cards enough breathing room for hover scale */
.catalog-carousel{
  padding-top:8px;
  padding-left:4px;
  padding-right:4px;
  padding-bottom:26px;
}

/* Footer now contains only service/legal info; contacts live in the header and chooser */
.footer-links{
  justify-content:flex-end;
}

/* On smaller screens allow natural wrapping instead of horizontal overflow */
@media(max-width:900px){
  .section-sub,
  .tax-head .section-sub,
  .archive-title + .section-sub{
    white-space:normal;
  }
}
@media(hover:none){
  .card:hover{
    transform:none;
  }
}


/* v1.28 — Gutenberg/block home compatibility */
.bublboom-block-home > .wp-block-group{margin-block-start:0;margin-block-end:0}
.bublboom-block-home .wp-block-shortcode{margin:0}
.wp-block-group.container{width:min(calc(100% - 32px),var(--site-max, var(--max)));max-width:var(--site-max, var(--max));margin-left:auto;margin-right:auto}
.wp-block-group.hero-grid{display:grid}
.wp-block-group.promise-grid{display:grid}
.wp-block-group.feature-grid{display:grid}
.wp-block-group.info-grid{display:grid}
.wp-block-group.hero-actions{display:flex}
.wp-block-button.btn{min-height:auto;padding:0;border:0;background:none}
.wp-block-button.btn .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:999px;font-weight:800;border:1px solid transparent;transition:.2s;text-decoration:none}
.wp-block-button.btn .wp-block-button__link:hover{transform:translateY(-1px)}
.wp-block-button.btn-primary .wp-block-button__link{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff}
.wp-block-button.btn-light .wp-block-button__link{background:#fff;border-color:var(--line);color:var(--text)}
.bublboom-block-home .promise > .wp-block-group__inner-container,
.bublboom-block-home .feature > .wp-block-group__inner-container,
.bublboom-block-home .info-card > .wp-block-group__inner-container{display:contents}
.bublboom-block-home .section-head .wp-block-group{margin:0}
.bublboom-block-home .faq .wp-block-details{margin:0}
.bublboom-block-home .contact-box .wp-block-shortcode{margin:0}

/* Make block editor closer to the front-end when editor styles are enabled. */
.editor-styles-wrapper .hero,
.editor-styles-wrapper .section{max-width:none}


/* v1.31 — block-native layout. Gutenberg uses native Columns; editor has its own stylesheet. */
.bublboom-block-home .bb-dynamic-shell{display:contents}
.bublboom-block-home .bb-hero-columns{gap:48px;align-items:center}
.bublboom-block-home .bb-columns{gap:18px;align-items:stretch}
.bublboom-block-home .bb-columns > .wp-block-column{display:flex;min-width:0}
.bublboom-block-home .bb-columns > .wp-block-column > .wp-block-group{width:100%;height:100%}
.bublboom-block-home .bb-contact-columns{margin:0;gap:26px}
.bublboom-block-home .bb-contact-columns .contact-icons{justify-content:flex-end}
@media(max-width:900px){
  .bublboom-block-home .bb-hero-columns,
  .bublboom-block-home .bb-columns,
  .bublboom-block-home .bb-contact-columns{gap:16px}
  .bublboom-block-home .bb-contact-columns .contact-icons{justify-content:flex-start}
}

/* v1.32 — Gutenberg editable site header/footer */
.site-header .bb-header-block{
  min-height:74px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.site-header .bb-header-nav{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:18px;
  flex-wrap:wrap;
}
.site-header .bb-header-link{margin:0;font-weight:600}
.site-header .bb-header-link a{text-decoration:none;color:inherit}
.site-header .bb-header-link a:hover{color:var(--accent)}
.site-header .bb-header-nav .contact-icons{margin-left:2px}
.footer .bb-footer-block{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
}
.footer .bb-footer-copy,
.footer .bb-footer-link{margin:0}
.footer .bb-footer-link a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){
  .site-header .bb-header-block{min-height:64px}
  .site-header .bb-header-link{display:none}
  .site-header .bb-header-nav{gap:8px}
  .footer .bb-footer-block{align-items:flex-start;flex-direction:column}
}


/* v1.33 — final customer-ready fixes */
.builder-item{
  transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.builder-item.is-selected{
  background:#fff0f6;
  border:2px solid var(--accent);
  box-shadow:0 0 0 4px rgba(239,91,134,.14),0 10px 24px rgba(239,91,134,.10);
}
.builder-item.is-selected .builder-main-row{
  background:linear-gradient(90deg,#ffe1ec 0%,#fff5f9 72%,#fff 100%);
}
.builder-item.is-selected .builder-item-title::before{
  content:"✓";
  display:inline-grid;
  place-items:center;
  width:22px;
  height:22px;
  margin-right:8px;
  border-radius:50%;
  background:var(--accent);
  color:#fff;
  font-size:13px;
  font-weight:950;
  vertical-align:middle;
}
.builder-send-actions{grid-template-columns:repeat(3,minmax(0,1fr));}
.builder-send-vk{background:#0077ff;color:#fff;}
.builder-send-vk .vk-icon-letters{font-size:13px;min-width:22px;}
.builder-clear-wide{grid-column:1/-1;}
.footer .bb-footer-block .contact-icons{display:flex;gap:8px;align-items:center;}
.footer .bb-footer-block .icon-btn{width:40px;height:40px;}
.hero-collage{filter:drop-shadow(0 20px 38px rgba(72,40,57,.10));}
.hero-shot{background:#fff;}
.hero-shot img{display:block;}
@media(max-width:900px){
  .builder-send-actions{grid-template-columns:1fr 1fr;}
  .builder-send-vk{grid-column:1/-1;}
}
@media(max-width:620px){
  .builder-send-actions{grid-template-columns:1fr;}
  .builder-send-vk{grid-column:auto;}
}


/* v1.34 — delivery, official-style social marks, cleaner footer */
.brand-social-mark{display:block;width:24px;height:24px;flex:0 0 24px}
.icon-btn .brand-social-telegram{width:25px;height:25px;color:#fff}
.icon-btn.icon-telegram{background:#229ED9}
.icon-btn.icon-vk{padding:0;background:transparent;border:0;overflow:hidden}
.icon-btn .brand-social-vk{width:100%;height:100%}
.builder-send .brand-social-mark{width:22px;height:22px}
.builder-send-vk .brand-social-vk{width:24px;height:24px}
.order-choice-vk-icon{padding:0;background:transparent;overflow:hidden}
.order-choice-vk-icon .brand-social-vk{width:100%;height:100%}
.bb-delivery-compact{padding-top:20px!important;padding-bottom:20px!important}
.delivery-note{padding:28px 32px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 10px 28px rgba(47,28,38,.04)}
.delivery-note h2{margin:0 0 8px;font-size:clamp(28px,3vw,40px)}
.delivery-note p{margin:0;color:var(--muted);font-size:16px}
.footer .bb-footer-block{justify-content:space-between}
.hero-shot img{object-fit:cover;object-position:center}
.product-price-row{min-height:52px}
.product-price-row span{padding-right:12px}
@media(max-width:620px){.delivery-note{padding:22px}.product-price-row{grid-template-columns:1fr}.product-price-row strong{justify-self:start}}


/* v1.35 — compact catalogue, clean share buttons, tighter site width */
:root{--site-max:1320px;}

.catalog-scroll-controls,
.catalog-drag-hint{display:none!important;}

.catalog-carousel{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:16px!important;
  overflow:visible!important;
  scroll-snap-type:none!important;
  padding:8px 0 26px!important;
  cursor:default!important;
}
.catalog-carousel .card{
  width:auto!important;
  min-width:0!important;
  flex:none!important;
  scroll-snap-align:none!important;
}
.catalog-carousel.is-dragging{cursor:default!important;user-select:auto!important}

.builder-send{
  gap:0!important;
  justify-content:center!important;
  text-align:center!important;
}
.builder-send .brand-social-mark,
.builder-send .max-send-icon{display:none!important;}

.icon-btn.icon-telegram{
  background:#229ED9!important;
  border-color:#229ED9!important;
  color:#fff!important;
}
.icon-btn.icon-vk{
  background:#0077FF!important;
  border-color:#0077FF!important;
  color:#fff!important;
  overflow:hidden!important;
}
.icon-btn.icon-vk .brand-social-vk{
  width:23px!important;
  height:23px!important;
}
.icon-btn.icon-telegram .brand-social-telegram{
  width:24px!important;
  height:24px!important;
}

@media(max-width:1180px){
  .catalog-carousel{grid-template-columns:repeat(4,minmax(0,1fr))!important}
}
@media(max-width:900px){
  .catalog-carousel{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:680px){
  .catalog-carousel{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:430px){
  .catalog-carousel{grid-template-columns:1fr!important}
}


/* v1.36 — hover previews + independent quantities for extras */
.builder-item-title-wrap{position:relative;min-width:0}
.builder-item-title-preview{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:800;text-align:left;cursor:help}
.builder-preview-hint{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:2px 8px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--muted);font-size:11px;font-weight:750;white-space:nowrap}
.builder-item-photo-popover{position:absolute;left:0;bottom:calc(100% + 10px);z-index:50;width:220px;padding:7px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 40px rgba(47,28,38,.18);opacity:0;visibility:hidden;transform:translateY(6px);transition:.16s ease;pointer-events:none}
.builder-item-photo-popover img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:11px}
.builder-item-title-wrap:hover .builder-item-photo-popover,.builder-item-title-wrap:focus-within .builder-item-photo-popover{opacity:1;visibility:visible;transform:translateY(0)}
.builder-extra{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}
.builder-extra-copy{display:flex;align-items:baseline;justify-content:space-between;gap:10px;min-width:0}
.builder-extra-label{font-weight:650}
.builder-extra-actions{display:flex;align-items:center;gap:8px}
.builder-extra-state{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#f4edf1;border:1px solid var(--line);color:transparent;font-size:13px;font-weight:950;transition:.15s}
.builder-extra.is-selected .builder-extra-state{background:var(--accent);border-color:var(--accent);color:#fff}
.qty-control-extra{grid-template-columns:30px 46px 30px}
.qty-control-extra button,.qty-control-extra input{height:34px}
.qty-control-extra button:disabled,.qty-control-extra input:disabled{opacity:.38;cursor:not-allowed;background:#faf7f8}
.builder-extra.is-selected{background:#fff4f8;border-style:solid;border-color:#f4a7be}
@media(max-width:680px){.builder-item-photo-popover{width:190px}.builder-preview-hint{font-size:10px}.builder-extra{grid-template-columns:1fr}.builder-extra-actions{justify-content:flex-end}.builder-extra-copy{width:100%}}


/* v1.37 — compact on-demand previews; no layout growth */
.builder-item{overflow:visible}
.builder-item-title-wrap{position:relative;min-width:0;display:flex;align-items:center}
.builder-item-title-preview{display:inline-flex;align-items:center;gap:7px;max-width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:800;text-align:left;cursor:pointer}
.builder-preview-hint{display:inline-flex;align-items:center;justify-content:center;height:20px;padding:0 7px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--muted);font-size:10px;font-weight:750;line-height:1;white-space:nowrap}
.builder-item-photo-popover{position:absolute;left:0;top:calc(100% + 8px);z-index:100;width:180px;margin:0;padding:6px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 36px rgba(47,28,38,.18);opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .14s ease,transform .14s ease,visibility .14s ease;pointer-events:none}
.builder-item-photo-popover img{display:block;width:100%;height:128px;object-fit:cover;border-radius:9px}
.builder-item-title-preview:hover + .builder-item-photo-popover,
.builder-item-title-preview:focus + .builder-item-photo-popover,
.builder-item-title-preview:focus-visible + .builder-item-photo-popover{opacity:1;visibility:visible;transform:translateY(0)}
@media(max-width:680px){
  .builder-item-photo-popover{width:150px;left:0}
  .builder-item-photo-popover img{height:108px}
}

/* v1.38 — base item price sits slightly left of add-on prices */
@media (min-width:681px){
  .builder-main-row .builder-item-price{margin-right:26px;}
}

/* v1.39 — move base item price further left than extra prices */
@media (min-width:681px){
  .builder-main-row .builder-item-price{margin-right:58px;}
}

/* v1.40 — clear parent/child hierarchy in builder */
@media (min-width:681px){
  .builder-main-row{
    position:relative;
    z-index:2;
  }
  .builder-main-row .builder-item-price{
    margin-right:72px;
    font-weight:950;
  }
  .builder-extras{
    position:relative;
    margin-left:28px;
    padding-left:20px;
  }
  .builder-extras::before{
    content:"";
    position:absolute;
    left:6px;
    top:0;
    bottom:14px;
    width:2px;
    border-radius:2px;
    background:#eadde3;
  }
  .builder-extra{
    position:relative;
    font-size:13px;
  }
  .builder-extra::before{
    content:"";
    position:absolute;
    left:-15px;
    top:50%;
    width:14px;
    height:2px;
    background:#eadde3;
    transform:translateY(-50%);
  }
  .builder-extra-label{
    padding-left:2px;
    font-weight:650;
  }
  .builder-extra-price{
    font-weight:850;
  }
}
@media (max-width:680px){
  .builder-extras{
    margin-left:14px;
    padding-left:12px;
    border-left:2px solid #eadde3;
  }
}

/* v1.41 — softer hierarchy: no scheme lines, no extra checkmark, align qty controls */
@media (min-width:681px){
  .builder-main-row .builder-item-price{
    margin-right:26px;
    font-weight:950;
  }
  .builder-extras{
    margin-left:18px;
    padding-left:0;
  }
  .builder-extras::before,
  .builder-extra::before{
    content:none !important;
    display:none !important;
  }
  .builder-extra{
    font-size:13px;
    background:#fff8fb;
    border-style:solid;
    border-color:#f1d8e1;
  }
  .builder-extra-label{
    padding-left:0;
    font-weight:650;
  }
  .builder-extra-state{
    display:none !important;
  }
  .builder-extra-actions{
    gap:0;
  }
}
@media (max-width:680px){
  .builder-extras{
    margin-left:12px;
    padding-left:0;
    border-left:none;
  }
  .builder-extra-state{
    display:none !important;
  }
  .builder-extra-actions{
    gap:0;
  }
}

/* v1.42 — final builder alignment + FAQ disclosure buttons */
@media (min-width:681px){
  /* Parent and child rows share the same right-side columns. */
  .builder-main-row{
    grid-template-columns:minmax(0,1fr) 104px 108px;
    column-gap:12px;
    align-items:center;
  }
  .builder-main-row .builder-item-price{
    margin-right:0 !important;
    width:104px;
    text-align:right;
    font-size:16px;
    font-weight:950;
  }
  .builder-main-row > .qty-control{
    width:108px;
    justify-self:end;
    grid-template-columns:30px 48px 30px;
  }

  /* Extras remain visually nested, but without diagram lines. */
  .builder-extras{
    margin-left:0 !important;
    padding-left:14px !important;
  }
  .builder-extras::before,
  .builder-extra::before{
    content:none !important;
    display:none !important;
  }
  .builder-extra{
    grid-template-columns:minmax(0,1fr) 104px 108px !important;
    column-gap:12px !important;
    align-items:center;
    background:#fff8fb;
    border:1px solid #f1d8e1;
  }
  .builder-extra-copy,
  .builder-extra-actions{
    display:contents !important;
  }
  .builder-extra-label{
    grid-column:1;
    padding-left:8px;
  }
  .builder-extra-price{
    grid-column:2;
    width:104px;
    text-align:right;
    font-size:14px;
    font-weight:850;
  }
  .builder-extra-state{
    display:none !important;
  }
  .qty-control-extra{
    grid-column:3;
    width:108px;
    justify-self:end;
    grid-template-columns:30px 48px 30px !important;
  }
}

/* FAQ: explicit + / − control on the right. */
.faq summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.faq summary::after{
  content:"+";
  flex:0 0 30px;
  width:30px;
  height:30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--line);
  border-radius:50%;
  background:#fff;
  color:var(--text);
  font-size:20px;
  font-weight:700;
  line-height:1;
}
.faq details[open] summary::after{content:"−";}

@media (max-width:680px){
  .builder-extra-state{display:none !important;}
  .faq summary::after{flex-basis:28px;width:28px;height:28px;font-size:18px;}
}

/* v1.43 — final visual hierarchy for constructor */
@media (min-width:681px){
  .builder-main-row,
  .builder-extra{
    grid-template-columns:minmax(0,1fr) 118px 118px !important;
    column-gap:12px !important;
    align-items:center !important;
  }

  .builder-main-row .builder-item-price,
  .builder-extra-price{
    width:118px;
    text-align:right;
    justify-self:end;
    white-space:nowrap;
    margin:0 !important;
  }

  .builder-main-row .builder-item-price{
    font-size:18px !important;
    line-height:1;
    font-weight:950 !important;
  }

  .builder-extra-price{
    font-size:14px !important;
    line-height:1;
    font-weight:800 !important;
    color:var(--text);
  }

  .builder-main-row > .qty-control,
  .builder-extra .qty-control-extra{
    width:118px !important;
    min-width:118px;
    justify-self:end !important;
    align-self:center !important;
    box-sizing:border-box;
    margin:0 !important;
    grid-template-columns:32px 54px 32px !important;
  }
}

/* v1.44 — final alignment + copy button + hide min text when reached */
@media (min-width:681px){
  .builder-main-row,
  .builder-extra{
    grid-template-columns:minmax(0,1fr) 112px 116px !important;
    column-gap:12px !important;
    align-items:center !important;
  }
  .builder-main-row{
    padding:14px !important;
  }
  .builder-extras{
    margin-left:0 !important;
    padding:0 14px 14px !important;
  }
  .builder-extra{
    padding:9px 11px !important;
  }
  .builder-main-row .builder-item-price,
  .builder-extra-price{
    width:112px !important;
    display:block;
    text-align:right !important;
    justify-self:end !important;
    align-self:center !important;
    margin:0 !important;
    white-space:nowrap;
  }
  .builder-main-row .builder-item-price{
    font-size:18px !important;
    font-weight:950 !important;
  }
  .builder-extra-price{
    font-size:14px !important;
    font-weight:800 !important;
  }
  .builder-main-row > .qty-control,
  .builder-extra .qty-control-extra{
    width:116px !important;
    min-width:116px !important;
    max-width:116px !important;
    display:grid !important;
    grid-template-columns:32px 52px 32px !important;
    justify-self:end !important;
    align-self:center !important;
    margin:0 !important;
    transform:none !important;
  }
  .builder-main-row > .qty-control button,
  .builder-main-row > .qty-control input,
  .builder-extra .qty-control-extra button,
  .builder-extra .qty-control-extra input{
    height:38px !important;
  }
}
.builder-min:empty{display:none;}
.builder-copy{background:#fff;}

/* v1.45 — final desktop polish */
@media (min-width:681px){
  /* Send buttons: one row of 4 + clear below */
  .builder-send-actions{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:8px !important;
  }
  .builder-send-actions .builder-clear-wide{
    grid-column:1 / -1;
  }

  /* Main item vs extras: same columns, aligned prices and qty */
  .builder-main-row,
  .builder-extra{
    grid-template-columns:minmax(0,1fr) 112px 108px !important;
    column-gap:12px !important;
    align-items:center !important;
  }
  .builder-main-row{
    padding:14px !important;
  }
  .builder-extras{
    padding:0 14px 14px 14px !important;
    margin-left:0 !important;
  }
  .builder-extra{
    margin-left:18px !important;
    padding:10px 14px !important;
    background:#fff8fb !important;
  }

  .builder-item-title-preview,
  .builder-main-row .builder-item-price{
    font-size:18px !important;
    line-height:1.15 !important;
    font-weight:900 !important;
  }
  .builder-extra-label,
  .builder-extra-price{
    font-size:15px !important;
    line-height:1.15 !important;
    font-weight:800 !important;
  }

  .builder-main-row .builder-item-price,
  .builder-extra-price{
    width:112px !important;
    min-width:112px !important;
    max-width:112px !important;
    justify-self:end !important;
    text-align:right !important;
    margin:0 !important;
    white-space:nowrap !important;
  }

  .builder-main-row > .qty-control,
  .builder-extra .qty-control-extra{
    width:108px !important;
    min-width:108px !important;
    max-width:108px !important;
    display:grid !important;
    grid-template-columns:32px 44px 32px !important;
    justify-self:end !important;
    align-self:center !important;
    margin:0 !important;
  }
  .builder-main-row > .qty-control button,
  .builder-main-row > .qty-control input,
  .builder-extra .qty-control-extra button,
  .builder-extra .qty-control-extra input{
    height:38px !important;
    box-sizing:border-box;
  }
}

.builder-summary-meta{
  margin-top:4px;
  font-size:12px;
  color:var(--muted);
}

/* v1.46 — final typography + compact one-line action buttons */
@media (min-width:681px){
  .builder-item-title-preview,
  .builder-main-row .builder-item-price{
    font-size:19px !important;
    line-height:1.15 !important;
    font-weight:900 !important;
  }
  .builder-extra-label,
  .builder-extra-price{
    font-size:14px !important;
    line-height:1.15 !important;
    font-weight:800 !important;
  }
}
.builder-send-actions .btn{
  white-space:nowrap !important;
  font-size:12px !important;
  line-height:1 !important;
  min-width:0 !important;
  padding-left:8px !important;
  padding-right:8px !important;
}
.builder-send-actions .builder-copy{
  font-size:12px !important;
}

/* v1.47 — same right gutter for all steppers */
@media (min-width:681px){
  .builder-main-row > .qty-control,
  .builder-extra .qty-control-extra{
    justify-self:stretch !important;
    width:108px !important;
    min-width:108px !important;
    max-width:108px !important;
    margin-right:0 !important;
  }
  .builder-main-row,
  .builder-extra{
    padding-right:14px !important;
  }
}

/* v1.48 — align extra steppers to the same right edge as main items */
@media (min-width:681px){
  .builder-extra{
    margin-left:0 !important;
  }
  .builder-extra-label{
    padding-left:18px !important;
  }
}

/* v1.49 — true alignment of extra rows with main rows */
@media (min-width:681px){
  .builder-main-row{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 112px 108px !important;
    column-gap:12px !important;
    align-items:center !important;
  }
  .builder-main-row .builder-item-price{
    width:112px !important;
    min-width:112px !important;
    text-align:right !important;
    justify-self:end !important;
  }
  .builder-main-row > .qty-control{
    width:108px !important;
    min-width:108px !important;
    max-width:108px !important;
    justify-self:end !important;
    margin:0 !important;
  }

  .builder-extra{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 112px 108px !important;
    column-gap:12px !important;
    align-items:center !important;
    margin-left:0 !important;
  }
  .builder-extra-copy,
  .builder-extra-actions{
    display:contents !important;
  }
  .builder-extra-label{
    grid-column:1 !important;
    padding-left:18px !important;
  }
  .builder-extra-price{
    grid-column:2 !important;
    width:112px !important;
    min-width:112px !important;
    text-align:right !important;
    justify-self:end !important;
    white-space:nowrap !important;
    margin:0 !important;
  }
  .builder-extra-state{
    display:none !important;
  }
  .builder-extra .qty-control-extra{
    grid-column:3 !important;
    width:108px !important;
    min-width:108px !important;
    max-width:108px !important;
    justify-self:end !important;
    margin:0 !important;
  }
}

/* v1.50 — exact right-edge alignment for add-on steppers */
@media (min-width:681px){
  .builder-extra .qty-control-extra{
    transform:translateX(14px) !important;
  }
}

/* v1.51 — larger, identical right gutter for all quantity steppers */
@media (min-width:681px){
  .builder-main-row{
    padding-right:24px !important;
  }
  .builder-extras{
    padding-right:14px !important;
  }
  .builder-extra{
    padding-right:10px !important;
  }
  .builder-extra .qty-control-extra{
    transform:none !important;
  }
}

/* =========================================================
 * v1.52 FINAL RELEASE — responsive polish + precise preview trigger
 * ========================================================= */

/* Photo preview opens ONLY from the small “фото” control. */
.builder-item-title-wrap{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  position:relative!important;
  min-width:0;
}
.builder-item-title{
  min-width:0;
}
.builder-preview-hint{
  flex:0 0 auto;
  cursor:pointer!important;
}
.builder-item-photo-popover{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
.builder-preview-hint:hover + .builder-item-photo-popover,
.builder-preview-hint:focus + .builder-item-photo-popover,
.builder-preview-hint:focus-visible + .builder-item-photo-popover{
  opacity:1!important;
  visibility:visible!important;
  transform:translateY(0)!important;
}
/* Neutralize older broad hover/focus rules. */
.builder-item-title-wrap:hover .builder-item-photo-popover,
.builder-item-title-wrap:focus-within .builder-item-photo-popover{
  opacity:0!important;
  visibility:hidden!important;
}
.builder-item-title-wrap .builder-preview-hint:hover + .builder-item-photo-popover,
.builder-item-title-wrap .builder-preview-hint:focus + .builder-item-photo-popover,
.builder-item-title-wrap .builder-preview-hint:focus-visible + .builder-item-photo-popover{
  opacity:1!important;
  visibility:visible!important;
}

/* Desktop keeps the approved typography. */
@media (min-width:681px){
  .builder-main-row .builder-item-title,
  .builder-main-row .builder-item-price{
    font-size:19px!important;
    line-height:1.15!important;
    font-weight:900!important;
  }
  .builder-extra-label,
  .builder-extra-price{
    font-size:14px!important;
    line-height:1.15!important;
    font-weight:800!important;
  }
}

/* Tablet: readable, but deliberately not oversized. */
@media (max-width:900px){
  .hero{padding:52px 0 42px}
  .hero h1{font-size:44px!important;line-height:1.02!important;margin:18px 0 18px}
  .hero p{font-size:17px!important;line-height:1.5}
  .section{padding:48px 0}
  .section h2{font-size:34px!important;line-height:1.08}
  .section-sub{font-size:15px}
  .single-title{font-size:40px!important}
  .archive-title{font-size:40px!important}
  .card h3{font-size:19px}
  .price{font-size:22px}
  .contact-box{padding:28px}
  .contact-box h2{font-size:32px;line-height:1.08}
  .faq summary{font-size:15px}
}

/* Phone: compact typography and controls. */
@media (max-width:680px){
  .container{width:min(calc(100% - 22px),var(--max))}
  .hero{padding:34px 0 30px}
  .hero h1{font-size:34px!important;line-height:1.02!important;letter-spacing:-.04em!important;margin:16px 0}
  .hero p{font-size:15px!important;line-height:1.5;margin-bottom:20px}
  .eyebrow{font-size:12px;padding:7px 10px}
  .section{padding:36px 0}
  .section-head{margin-bottom:18px}
  .section h2{font-size:28px!important;line-height:1.1}
  .section-sub{font-size:14px;line-height:1.45}
  .card-body{padding:16px}
  .card h3{font-size:18px;line-height:1.2}
  .card-text{font-size:14px;line-height:1.45}
  .price{font-size:20px}
  .single-wrap{padding:34px 0 48px}
  .single-title{font-size:32px!important;line-height:1.05!important}
  .single-price{font-size:26px}
  .archive-title{font-size:32px!important;line-height:1.08}
  .feature{padding:18px}
  .feature strong{font-size:16px}
  .feature p{font-size:14px}
  .contact-box{padding:22px;border-radius:24px}
  .contact-box h2{font-size:28px!important;line-height:1.08;margin:0}
  .contact-box p{font-size:14px}
  .faq details{padding:0 14px}
  .faq summary{padding:15px 0;font-size:14px;line-height:1.35}
  .faq details p{font-size:14px;line-height:1.5;margin-bottom:15px}
  .footer{font-size:13px;padding:24px 0 32px}

  /* Constructor stays compact on a phone. */
  .builder-category h3{font-size:18px}
  .builder-main-row{padding:9px!important}
  .builder-item-title{font-size:15px!important;line-height:1.2!important;font-weight:850!important}
  .builder-item-price{font-size:16px!important;font-weight:900!important}
  .builder-extra-label,.builder-extra-price{font-size:13px!important;line-height:1.2!important}
  .builder-preview-hint{height:18px!important;padding:0 6px!important;font-size:9px!important}
  .builder-item-photo-popover{width:145px!important}
  .builder-item-photo-popover img{height:105px!important}
  .builder-total{font-size:36px!important}
  .builder-summary{padding:18px}
  .builder-summary-line{font-size:13px}
  .builder-send-actions{grid-template-columns:1fr 1fr!important}
  .builder-send-actions .builder-clear-wide{grid-column:1/-1}
  .builder-send-actions .btn{font-size:11px!important;min-height:40px!important;padding:0 7px!important}
}

@media (max-width:430px){
  .hero h1{font-size:31px!important}
  .section h2{font-size:26px!important}
  .single-title,.archive-title{font-size:29px!important}
  .site-header .bb-header-block{gap:8px}
  .header-icons{gap:5px}
  .header-icons .icon-btn{width:36px;height:36px}
  .brand-lockup{font-size:17px}
  .brand-bubbles{transform:scale(.86);transform-origin:left center}
  .builder-send-actions{grid-template-columns:1fr 1fr!important}
}

/* =========================================================
 * v1.53 FINAL — clearer hierarchy blocks + cleaner photo preview
 * ========================================================= */

/* Clear visual hierarchy: category > variant > extras */
.builder-category{
  background:#f6eef2 !important;
  border-color:#e8d6df !important;
}
.builder-item{
  background:#fbf4f7 !important;
  border-color:#edd1dd !important;
  overflow:visible !important;
}
.builder-main-row{
  background:#fbf4f7 !important;
}
.builder-extras{
  background:transparent !important;
}
.builder-extra{
  background:#fffafb !important;
  border:1px dashed #e9d4dd !important;
}

/* Show preview only from the small "фото" control and make it cover cleanly */
.builder-item-title-wrap{
  position:relative !important;
  z-index:3;
}
.builder-item-photo-popover{
  left:auto !important;
  right:0 !important;
  top:calc(100% + 8px) !important;
  bottom:auto !important;
  z-index:999 !important;
  width:170px !important;
  padding:8px !important;
  background:#fff !important;
  border:1px solid #ead7df !important;
  border-radius:14px !important;
  box-shadow:0 18px 50px rgba(47,28,38,.22) !important;
  isolation:isolate;
}
.builder-item-photo-popover img{
  display:block;
  width:100%;
  height:120px !important;
  object-fit:cover;
  border-radius:10px !important;
  background:#fff;
}
/* hard disable any opening except the chip itself */
.builder-item-title-wrap:hover .builder-item-photo-popover,
.builder-item-title-wrap:focus-within .builder-item-photo-popover{
  opacity:0 !important;
  visibility:hidden !important;
}
.builder-preview-hint:hover + .builder-item-photo-popover,
.builder-preview-hint:focus + .builder-item-photo-popover,
.builder-preview-hint:focus-visible + .builder-item-photo-popover,
.builder-preview-hint:active + .builder-item-photo-popover{
  opacity:1 !important;
  visibility:visible !important;
  transform:translateY(0) !important;
}

/* Tablet/phone: keep readable, not oversized */
@media (max-width:1024px){
  .builder-category h3{font-size:20px !important;}
}
@media (max-width:680px){
  .builder-category{
    padding:14px !important;
    border-radius:18px !important;
  }
  .builder-category h3{font-size:18px !important;}
  .builder-item-title-preview,
  .builder-item-title,
  .builder-main-row .builder-item-price{
    font-size:17px !important;
  }
  .builder-extra-label,
  .builder-extra-price{
    font-size:13px !important;
  }
  .builder-item-photo-popover{
    width:150px !important;
    right:0 !important;
  }
  .builder-item-photo-popover img{
    height:106px !important;
  }
}

/* v1.54 — preview must render above all neighbouring rows */
.builder-category,
.builder-variants{
  overflow:visible !important;
}
.builder-item{
  position:relative !important;
  z-index:1;
}
.builder-item:has(.builder-preview-hint:hover),
.builder-item:has(.builder-preview-hint:focus),
.builder-item:has(.builder-preview-hint:focus-visible){
  z-index:2000 !important;
}
.builder-item:has(.builder-preview-hint:hover) .builder-main-row,
.builder-item:has(.builder-preview-hint:focus) .builder-main-row,
.builder-item:has(.builder-preview-hint:focus-visible) .builder-main-row{
  position:relative;
  z-index:2001 !important;
}
.builder-item-photo-popover{
  z-index:5000 !important;
  background:#fff !important;
  opacity:0 !important;
  visibility:hidden !important;
  overflow:hidden !important;
}
.builder-preview-hint:hover + .builder-item-photo-popover,
.builder-preview-hint:focus + .builder-item-photo-popover,
.builder-preview-hint:focus-visible + .builder-item-photo-popover,
.builder-preview-hint:active + .builder-item-photo-popover{
  opacity:1 !important;
  visibility:visible !important;
}
.builder-item-photo-popover::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:#fff;
  border-radius:inherit;
}

/* v1.55 — photo preview anchored directly to the “фото” chip */
.builder-preview-anchor{
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  flex:0 0 auto;
  z-index:1000;
}
.builder-preview-anchor .builder-item-photo-popover{
  position:absolute !important;
  left:50% !important;
  right:auto !important;
  top:calc(100% + 7px) !important;
  bottom:auto !important;
  transform:translate(-50%,-4px) !important;
  width:170px !important;
  z-index:1001 !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
.builder-preview-anchor:hover .builder-item-photo-popover,
.builder-preview-anchor:focus-within .builder-item-photo-popover{
  opacity:1 !important;
  visibility:visible !important;
  transform:translate(-50%,0) !important;
}
/* Disable older sibling/wrapper hover positioning rules. */
.builder-preview-hint:hover + .builder-item-photo-popover,
.builder-preview-hint:focus + .builder-item-photo-popover,
.builder-preview-hint:focus-visible + .builder-item-photo-popover{
  opacity:1 !important;
  visibility:visible !important;
  transform:translate(-50%,0) !important;
}
.builder-item-title-wrap:hover > .builder-item-photo-popover,
.builder-item-title-wrap:focus-within > .builder-item-photo-popover{
  opacity:0 !important;
  visibility:hidden !important;
}
@media(max-width:680px){
  .builder-preview-anchor .builder-item-photo-popover{
    width:150px !important;
    left:0 !important;
    transform:translate(0,-4px) !important;
  }
  .builder-preview-anchor:hover .builder-item-photo-popover,
  .builder-preview-anchor:focus-within .builder-item-photo-popover,
  .builder-preview-hint:hover + .builder-item-photo-popover,
  .builder-preview-hint:focus + .builder-item-photo-popover,
  .builder-preview-hint:focus-visible + .builder-item-photo-popover{
    transform:translate(0,0) !important;
  }
}


/* =========================================================
 * v1.56 — final pre-launch fixes
 * - mobile live total
 * - privacy page repair is handled in functions.php
 * ========================================================= */
.builder-mobile-total{
  display:none;
}
@media (max-width:980px){
  .builder-mobile-total{
    position:fixed;
    left:12px;
    right:84px;
    bottom:14px;
    z-index:80;
    min-height:54px;
    border:0;
    border-radius:18px;
    padding:8px 14px;
    background:#34273a;
    color:#fff;
    box-shadow:0 14px 36px rgba(35,31,32,.24);
    align-items:center;
    gap:10px;
    cursor:pointer;
    text-align:left;
    font:inherit;
  }
  .builder-mobile-total.is-visible{display:flex}
  .builder-mobile-total-label{font-size:12px;color:#d8cbdc;line-height:1.1}
  .builder-mobile-total-value{font-size:21px;line-height:1;font-weight:950;white-space:nowrap}
  .builder-mobile-total-jump{margin-left:auto;font-size:12px;font-weight:850;white-space:nowrap}
}
@media (max-width:430px){
  .builder-mobile-total{left:10px;right:80px;bottom:12px;min-height:50px;padding:7px 12px;border-radius:16px}
  .builder-mobile-total-value{font-size:19px}
  .builder-mobile-total-jump{font-size:11px}
}


/* =========================================================
 * v1.57 — mobile total clear button
 * ========================================================= */
@media (max-width:980px){
  .builder-mobile-total{
    padding:0 !important;
    overflow:hidden;
  }
  .builder-mobile-total-main{
    min-width:0;
    flex:1 1 auto;
    min-height:54px;
    padding:8px 10px 8px 14px;
    border:0;
    background:transparent;
    color:inherit;
    display:flex;
    align-items:center;
    gap:10px;
    text-align:left;
    font:inherit;
    cursor:pointer;
  }
  .builder-mobile-total-clear{
    flex:0 0 48px;
    align-self:stretch;
    border:0;
    border-left:1px solid rgba(255,255,255,.18);
    background:transparent;
    color:#fff;
    font:700 28px/1 Arial,sans-serif;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
  }
  .builder-mobile-total-clear:active{background:rgba(255,255,255,.1)}
}
@media (max-width:430px){
  .builder-mobile-total-main{min-height:50px;padding:7px 8px 7px 12px;gap:8px}
  .builder-mobile-total-clear{flex-basis:44px;font-size:26px}
}


/* =========================================================
 * v1.58 — cleaner mobile catalogue + friendlier order text
 * ========================================================= */
.catalog-mobile-more{display:none}
@media (max-width:680px){
  #catalog .catalog-head-actions{display:none!important}
  #catalog .catalog-carousel .card:nth-child(n+4){display:none!important}
  #catalog .catalog-mobile-more{
    display:flex;
    justify-content:center;
    padding:2px 0 10px;
  }
  #catalog .catalog-mobile-more .btn{
    width:min(100%,360px);
    justify-content:center;
    text-align:center;
  }
}

/* =========================================================
 * v1.59 — mobile legal layout + inscription text fields
 * ========================================================= */
.builder-inscription[hidden]{display:none!important}
.builder-inscription{
  grid-column:1/-1;
  min-width:0;
}
.builder-inscription-base{
  margin:-1px 11px 10px;
  padding:10px 11px;
  border:1px solid #eadde3;
  border-radius:12px;
  background:#fff;
}
.builder-inscription-extra{
  padding-top:8px;
  border-top:1px solid #eee3e8;
}
.builder-inscription label{
  display:block!important;
  font-size:12px;
  line-height:1.35;
  font-weight:800;
  color:var(--muted);
  cursor:default!important;
}
.builder-inscription-input{
  display:block;
  width:100%;
  min-width:0;
  height:42px;
  margin-top:6px;
  padding:0 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  color:var(--text);
  font:inherit;
  font-size:14px;
  outline:none;
}
.builder-inscription-input:focus{
  border-color:#cba8ba;
  box-shadow:0 0 0 3px rgba(239,91,134,.09);
}
.builder-summary-inscription{
  display:block;
  margin-top:4px;
  color:#f3e8f0;
  font-size:12px;
  line-height:1.4;
}

@media (max-width:680px){
  .legal-page{padding:28px 0 52px}
  .legal-page .container{width:min(calc(100% - 20px),var(--max))}
  .legal-page article{
    padding:20px 18px;
    border-radius:22px;
    overflow:hidden;
  }
  .legal-page h1{
    max-width:100%;
    margin-bottom:24px;
    font-size:30px!important;
    line-height:1.08!important;
    letter-spacing:-.028em!important;
    overflow-wrap:break-word;
    word-break:normal;
    hyphens:auto;
  }
  .legal-page h2{
    font-size:24px;
    line-height:1.15;
    overflow-wrap:break-word;
  }
  .legal-page p,
  .legal-page a,
  .legal-page strong{
    overflow-wrap:anywhere;
  }
  .builder-inscription-base{margin:0 9px 9px}
  .builder-inscription-extra{padding-top:7px}
}
@media (max-width:430px){
  .legal-page h1{font-size:28px!important}
  .legal-page h2{font-size:22px}
}


/* =========================================================
 * BubblesBoom Site v1.0.2 — base-theme independent typography
 * Astra (and some other base themes) reset heading weight/size.
 * The legacy BubblesBoom theme relied on browser heading weight,
 * so make those values explicit to keep the visual result identical.
 * ========================================================= */
body.bubblesboom-site-plugin{
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  font-size:16px;
  font-weight:400;
  color:var(--text);
}
body.bubblesboom-site-plugin h1,
body.bubblesboom-site-plugin h2,
body.bubblesboom-site-plugin h3,
body.bubblesboom-site-plugin h4,
body.bubblesboom-site-plugin h5,
body.bubblesboom-site-plugin h6,
body.bubblesboom-site-plugin .wp-block-heading{
  font-family:inherit!important;
  color:inherit;
  font-weight:700!important;
}
body.bubblesboom-site-plugin .hero h1{
  font-size:clamp(42px,7vw,76px)!important;
  line-height:.98!important;
  letter-spacing:-.055em!important;
  font-weight:700!important;
}
body.bubblesboom-site-plugin .section h2{
  font-size:clamp(30px,4vw,46px)!important;
  line-height:1.08!important;
  letter-spacing:-.035em!important;
  font-weight:700!important;
}
body.bubblesboom-site-plugin .single-title{
  font-size:clamp(36px,5vw,58px)!important;
  line-height:1!important;
  letter-spacing:-.04em!important;
  font-weight:700!important;
}
body.bubblesboom-site-plugin .archive-title{
  font-size:clamp(38px,5vw,58px)!important;
  line-height:1.05!important;
  font-weight:700!important;
}
body.bubblesboom-site-plugin .card h3,
body.bubblesboom-site-plugin .card-body h3{
  font-weight:700!important;
}
body.bubblesboom-site-plugin .contact-box h2,
body.bubblesboom-site-plugin .order-choice-dialog h2,
body.bubblesboom-site-plugin .legal-page h1,
body.bubblesboom-site-plugin .legal-page h2{
  font-weight:700!important;
}
body.bubblesboom-site-plugin button,
body.bubblesboom-site-plugin input,
body.bubblesboom-site-plugin textarea,
body.bubblesboom-site-plugin select{
  font-family:inherit;
}
@media (max-width:900px){
  body.bubblesboom-site-plugin .hero h1{font-size:44px!important;line-height:1.02!important}
  body.bubblesboom-site-plugin .section h2{font-size:34px!important;line-height:1.08!important}
  body.bubblesboom-site-plugin .single-title{font-size:40px!important}
  body.bubblesboom-site-plugin .archive-title{font-size:40px!important}
}
@media (max-width:680px){
  body.bubblesboom-site-plugin .hero h1{font-size:34px!important;line-height:1.02!important}
  body.bubblesboom-site-plugin .section h2{font-size:28px!important;line-height:1.1!important}
  body.bubblesboom-site-plugin .single-title{font-size:32px!important;line-height:1.05!important}
  body.bubblesboom-site-plugin .archive-title{font-size:32px!important;line-height:1.08!important}
}
@media (max-width:430px){
  body.bubblesboom-site-plugin .hero h1{font-size:31px!important}
  body.bubblesboom-site-plugin .section h2{font-size:26px!important}
  body.bubblesboom-site-plugin .single-title,
  body.bubblesboom-site-plugin .archive-title{font-size:29px!important}
}


/* =========================================================
 * BubblesBoom Site v1.0.3 — final parity polish
 * ========================================================= */

/* Legacy layout: explanatory copy sits below the section title. */
body.bubblesboom-site-plugin .bb-section-head-stacked{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:7px!important;
}
body.bubblesboom-site-plugin .bb-section-head-stacked .section-sub{
  margin:0!important;
  max-width:760px!important;
  white-space:normal!important;
}

/* Give opened FAQ answers breathing room above the card edge. */
body.bubblesboom-site-plugin .faq details[open]{
  padding-bottom:8px!important;
}
body.bubblesboom-site-plugin .faq details p{
  margin:0!important;
  padding:2px 0 12px!important;
}

/* VK mark in the order dialog: explicit blue tile prevents white-on-white SVG. */
body.bubblesboom-site-plugin .order-choice-vk-icon{
  background:#0077FF!important;
  color:#fff!important;
  padding:0!important;
  overflow:hidden!important;
}
body.bubblesboom-site-plugin .order-choice-vk-icon .brand-social-vk{
  width:26px!important;
  height:26px!important;
  color:#fff!important;
}

/* Footer credit for the developer. */
body.bubblesboom-site-plugin .footer .bb-footer-credit a,
body.bubblesboom-site-plugin .footer-row .footer-links a{
  color:inherit;
}
body.bubblesboom-site-plugin .footer-row .footer-links{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  align-items:center;
}

/* v1.2.0 — корзина готовых наборов: несколько наборов и количество */
.ready-set-order-control{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:4px 0 12px;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fffafd;
  transition:border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.ready-set-order-control.has-qty{
  border-color:rgba(239,91,134,.45);
  background:#fff3f8;
  box-shadow:0 5px 14px rgba(239,91,134,.07);
}
.ready-set-order-label{
  color:var(--muted);
  font-size:12px;
  font-weight:750;
  line-height:1.2;
}
.ready-set-qty-control{
  display:grid;
  grid-template-columns:30px 40px 30px;
  align-items:center;
  border:1px solid var(--line);
  border-radius:11px;
  overflow:hidden;
  background:#fff;
  flex:0 0 auto;
}
.ready-set-qty-control button{
  height:32px;
  border:0;
  background:#fff;
  color:var(--text);
  font:inherit;
  font-size:18px;
  line-height:1;
  cursor:pointer;
}
.ready-set-qty-control button:hover{background:#fff3f8}
.ready-set-qty-input{
  width:40px;
  height:32px;
  padding:0;
  border:0;
  border-left:1px solid var(--line);
  border-right:1px solid var(--line);
  background:#fff;
  color:var(--text);
  text-align:center;
  font:inherit;
  font-size:13px;
  font-weight:900;
  outline:none;
  -moz-appearance:textfield;
}
.ready-set-qty-input::-webkit-outer-spin-button,
.ready-set-qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.ready-set-order-control-single{
  width:min(420px,100%);
  margin:24px 0 0;
  padding:12px 14px;
}
.ready-set-order-control-single .ready-set-order-label{
  font-size:14px;
  color:var(--text);
  font-weight:850;
}
.ready-set-order-control-single .ready-set-qty-control{
  grid-template-columns:38px 54px 38px;
}
.ready-set-order-control-single .ready-set-qty-control button,
.ready-set-order-control-single .ready-set-qty-input{height:40px}
.ready-set-order-control-single .ready-set-qty-input{width:54px;font-size:15px}

.ready-cart-bar{
  position:fixed;
  left:50%;
  bottom:20px;
  z-index:9990;
  display:none;
  width:min(620px,calc(100% - 180px));
  transform:translateX(-50%);
  align-items:stretch;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.18);
  border-radius:18px;
  background:#34273a;
  color:#fff;
  box-shadow:0 16px 42px rgba(38,24,42,.28);
}
.ready-cart-bar.is-visible{display:flex}
.ready-cart-main{
  flex:1 1 auto;
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:16px;
  min-height:62px;
  padding:9px 14px 9px 16px;
  border:0;
  background:transparent;
  color:#fff;
  text-align:left;
  cursor:pointer;
}
.ready-cart-copy{min-width:0;display:flex;flex-direction:column;gap:2px}
.ready-cart-label{font-size:11px;line-height:1.1;color:#d8cbdc}
.ready-cart-value{font-size:16px;line-height:1.1;white-space:nowrap}
.ready-cart-total{font-size:18px;font-weight:950;white-space:nowrap}
.ready-cart-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:0 12px;
  border-radius:11px;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  color:#fff;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}
.ready-cart-clear{
  flex:0 0 48px;
  border:0;
  border-left:1px solid rgba(255,255,255,.14);
  background:transparent;
  color:#fff;
  font-size:26px;
  line-height:1;
  cursor:pointer;
}
.ready-cart-clear:hover{background:rgba(255,255,255,.08)}

.order-choice-cart{
  margin-top:16px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
}
.order-choice-cart-title{
  margin-bottom:9px;
  font-size:13px;
  font-weight:900;
  color:var(--text);
}
.order-choice-cart-items{display:grid;gap:8px}
.order-choice-cart-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:start;
  padding-bottom:8px;
  border-bottom:1px solid #f0e5ea;
}
.order-choice-cart-row:last-child{border-bottom:0;padding-bottom:0}
.order-choice-cart-name{
  min-width:0;
  font-size:13px;
  font-weight:800;
  line-height:1.25;
}
.order-choice-cart-detail{
  color:var(--muted);
  font-size:12px;
  line-height:1.25;
  text-align:right;
  white-space:nowrap;
}
.order-choice-cart-total{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:11px;
  padding-top:11px;
  border-top:1px solid var(--line);
  font-size:13px;
}
.order-choice-cart-total strong{font-size:16px;white-space:nowrap}

@media(max-width:680px){
  .ready-set-order-control{
    gap:7px;
    padding:7px 8px;
  }
  .ready-set-order-label{font-size:11px}
  .ready-set-qty-control{grid-template-columns:28px 34px 28px}
  .ready-set-qty-control button,.ready-set-qty-input{height:30px}
  .ready-set-qty-input{width:34px;font-size:12px}

  .ready-cart-bar{
    left:10px;
    right:78px;
    bottom:76px;
    width:auto;
    transform:none;
    border-radius:16px;
  }
  .ready-cart-main{
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
    min-height:54px;
    padding:7px 9px 7px 12px;
  }
  .ready-cart-total{font-size:16px}
  .ready-cart-action{display:none}
  .ready-cart-clear{flex-basis:44px;font-size:24px}

  .order-choice-cart-row{
    grid-template-columns:1fr;
    gap:3px;
  }
  .order-choice-cart-detail{
    text-align:left;
    white-space:normal;
  }
}

@media(max-width:390px){
  .ready-set-order-control{
    display:grid;
    grid-template-columns:1fr auto;
  }
  .ready-cart-total{font-size:14px}
}



/* v1.3.1 — unified order cart + catalogue quantity alignment */
.builder-summary-section-title{
  margin:14px 0 8px;
  padding-top:12px;
  border-top:1px solid rgba(255,255,255,.14);
  color:#fff;
  font-size:12px;
  font-weight:900;
  letter-spacing:.02em;
}
.builder-summary-section-title:first-child{
  margin-top:2px;
  padding-top:0;
  border-top:0;
}

/* The quantity stepper must always stay inside a catalogue card. */
.ready-set-order-control-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  overflow:hidden;
}
.ready-set-order-control-card .ready-set-order-label{
  min-width:0;
}
.ready-set-order-control-card .ready-set-qty-control{
  grid-template-columns:28px 36px 28px;
  justify-self:end;
  max-width:100%;
  box-sizing:border-box;
}
.ready-set-order-control-card .ready-set-qty-input{
  width:36px;
}



/* =========================================================
 * BubblesBoom Site v1.3.3 — catalogue quantity layout fix
 * ========================================================= */

/* Catalogue cards can be very narrow in the 5–6 column desktop layout.
   Reserve enough width for the full word "Количество" and keep the stepper
   compact. Nothing is clipped and the control stays inside the card. */
.ready-set-order-control-card{
  display:grid!important;
  grid-template-columns:minmax(64px,1fr) 76px!important;
  align-items:center!important;
  column-gap:4px!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  padding:6px 6px!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}
.ready-set-order-control-card .ready-set-order-label{
  display:block!important;
  min-width:64px!important;
  max-width:none!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
  font-size:10px!important;
  line-height:1.1!important;
  letter-spacing:-.015em!important;
}
.ready-set-order-control-card .ready-set-qty-control{
  justify-self:end!important;
  display:grid!important;
  grid-template-columns:23px 30px 23px!important;
  width:76px!important;
  min-width:76px!important;
  max-width:76px!important;
  box-sizing:border-box!important;
}
.ready-set-order-control-card .ready-set-qty-control button,
.ready-set-order-control-card .ready-set-qty-input{
  height:30px!important;
  min-width:0!important;
  padding:0!important;
}
.ready-set-order-control-card .ready-set-qty-control button{
  font-size:15px!important;
}
.ready-set-order-control-card .ready-set-qty-input{
  width:30px!important;
  font-size:12px!important;
}

/* In wider cards and on phones return a slightly larger, more comfortable stepper. */
@media(max-width:680px){
  .ready-set-order-control-card{
    grid-template-columns:minmax(72px,1fr) 88px!important;
    column-gap:8px!important;
    padding:7px 8px!important;
  }
  .ready-set-order-control-card .ready-set-order-label{
    min-width:72px!important;
    font-size:11px!important;
    letter-spacing:0!important;
  }
  .ready-set-order-control-card .ready-set-qty-control{
    grid-template-columns:26px 36px 26px!important;
    width:88px!important;
    min-width:88px!important;
    max-width:88px!important;
  }
  .ready-set-order-control-card .ready-set-qty-input{
    width:36px!important;
    font-size:13px!important;
  }
  .ready-set-order-control-card .ready-set-qty-control button,
  .ready-set-order-control-card .ready-set-qty-input{
    height:32px!important;
  }
}

/* General layout guards for plugin-owned pages. */
body.bubblesboom-site-plugin .card-body,
body.bubblesboom-site-plugin .card-actions,
body.bubblesboom-site-plugin .builder-wrap,
body.bubblesboom-site-plugin .builder-catalog,
body.bubblesboom-site-plugin .builder-main-row,
body.bubblesboom-site-plugin .builder-extra,
body.bubblesboom-site-plugin .section-head,
body.bubblesboom-site-plugin .contact-box,
body.bubblesboom-site-plugin .header-row{min-width:0}

body.bubblesboom-site-plugin .card h3,
body.bubblesboom-site-plugin .card h3 a,
body.bubblesboom-site-plugin .card-text,
body.bubblesboom-site-plugin .builder-item-title,
body.bubblesboom-site-plugin .builder-category-note,
body.bubblesboom-site-plugin .feature strong,
body.bubblesboom-site-plugin .feature p,
body.bubblesboom-site-plugin .faq summary,
body.bubblesboom-site-plugin .faq details p{overflow-wrap:break-word}

body.bubblesboom-site-plugin .card-actions .btn,
body.bubblesboom-site-plugin .builder-actions .btn,
body.bubblesboom-site-plugin .single-actions .btn{max-width:100%;box-sizing:border-box}

body.bubblesboom-site-plugin video,
body.bubblesboom-site-plugin iframe{max-width:100%}

/* v1.3.11 — order review, accessible feedback and gentle motion. */
.bb-order-breakdown{grid-column:1/-1;color:var(--muted);font-size:12px;line-height:1.5;overflow-wrap:anywhere;display:grid;gap:3px}
.bb-order-delivery{font-size:12px;color:var(--muted);line-height:1.5;margin:12px 0 0}
.bb-modal-order-actions{margin-top:14px}
.bb-modal-order-actions .btn{width:100%;min-height:44px}
.bb-modal-share-note{color:var(--text);font-size:13px;line-height:1.45;margin:8px 0 0}
.bb-modal-share-note:empty{display:none}
.order-choice-dialog{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}
.bb-order-undo{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;width:max-content;max-width:calc(100% - 24px);background:#34273a;color:#fff;padding:12px 14px;border-radius:16px;box-shadow:0 10px 35px #34273a35;z-index:10020;font-size:14px}
.bb-order-undo[hidden]{display:none!important}
.bb-order-undo button{border:0;background:transparent;color:#fff;cursor:pointer;min-height:40px;font:inherit}
.bb-order-undo [data-order-undo]{text-decoration:underline;text-underline-offset:4px;font-weight:700}
.bb-order-undo [data-undo-dismiss]{font-size:24px;padding:0 8px}
.bb-copy-dialog{position:fixed;inset:0;box-sizing:border-box;width:min(620px,calc(100% - 24px));max-height:calc(100dvh - 24px);margin:auto;padding:28px;border:1px solid var(--line);border-radius:24px;background:#fffafc;color:var(--text);box-shadow:0 20px 70px #34273a40;overflow:auto;z-index:10050}
.bb-copy-dialog:not([open]){display:none}
.bb-copy-dialog::backdrop{background:rgba(35,21,38,.58)}
.bb-copy-dialog h2{font-size:25px;margin:0 28px 12px 0;line-height:1.2}
.bb-copy-dialog .bb-copy-help{font-size:14px;line-height:1.5;margin-bottom:16px}
.bb-copy-dialog label{font-size:13px;font-weight:700;display:block;margin:0 0 8px}
.bb-copy-dialog textarea{display:block;box-sizing:border-box;width:100%;padding:12px;resize:vertical;border:1px solid #ccb9c5;border-radius:12px;background:#fff;color:#34273a;font-size:16px;line-height:1.5;min-height:180px}
.bb-copy-close{position:absolute;top:12px;right:12px;border:0;background:transparent;color:var(--text);font-size:28px;width:40px;height:40px;cursor:pointer}
.bb-copy-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.bb-copy-actions [hidden]{display:none!important}
.bb-copy-actions .btn{flex:1;white-space:nowrap}
body.bubblesboom-site-plugin :where(button,a,input,textarea):focus-visible{outline:3px solid #9a3774;outline-offset:3px}
.builder-summary :where(button,a):focus-visible{outline-color:#ffb4da!important}
body.bubblesboom-site-plugin .floating-main:before,body.bubblesboom-site-plugin .floating-main:after{animation:none}
@keyframes bb-reveal{from{opacity:.45;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes bb-item-feedback{0%,100%{box-shadow:0 0 0 0 transparent}40%{box-shadow:0 0 0 3px rgba(217,77,138,.22)}}
@keyframes bb-faq-open{from{opacity:.3;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:no-preference){
  .bb-revealed{animation:bb-reveal .42s ease-out both}
  .bb-item-feedback{animation:bb-item-feedback .4s ease-out}
  .faq details[open]>:not(summary){animation:bb-faq-open .22s ease-out}
  .order-choice-modal.is-open .order-choice-dialog{animation:bb-reveal .2s ease-out}
}
/* Use one combined total on phones, tablets and desktop. */
body.bubblesboom-site-plugin .builder-mobile-total{display:none!important}
@media(max-width:680px){
  body.bubblesboom-site-plugin .ready-cart-bar{left:10px;right:78px;bottom:calc(12px + env(safe-area-inset-bottom,0px));width:auto;transform:none}
  body.bubblesboom-site-plugin .ready-cart-main{grid-template-columns:minmax(0,1fr) auto;gap:5px 8px;padding:9px 10px;min-height:76px}
  body.bubblesboom-site-plugin .ready-cart-copy{gap:3px}
  body.bubblesboom-site-plugin .ready-cart-value{font-size:13px}
  body.bubblesboom-site-plugin .ready-cart-label{font-size:11px}
  body.bubblesboom-site-plugin .ready-cart-total{font-size:14px;max-width:100%;white-space:normal;text-align:right;overflow-wrap:anywhere}
  body.bubblesboom-site-plugin .ready-cart-action{display:flex;grid-column:1/-1;min-height:27px;font-size:12px;width:100%;padding:2px 8px;box-sizing:border-box}
  body.bubblesboom-site-plugin .ready-cart-clear{flex-basis:36px}
  body.bubblesboom-site-plugin.bb-order-present .footer{padding-bottom:125px}
  body.bubblesboom-site-plugin .builder-summary{scroll-margin-top:100px}
  .bb-copy-dialog{padding:22px 18px}
  .bb-copy-dialog h2{font-size:22px}
  .bb-order-undo{gap:7px;font-size:13px;padding:8px 10px;bottom:calc(12px + env(safe-area-inset-bottom,0px))}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  body.bubblesboom-site-plugin *,body.bubblesboom-site-plugin *::before,body.bubblesboom-site-plugin *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* v1.3.12 — keep the combined order total visible while browsing the catalogue. */
@media(min-width:681px){
  body.bubblesboom-site-plugin.bb-order-present .footer{padding-bottom:110px}
}

/* v1.3.13 — distinct category headings and gentle card interaction. */
body.bubblesboom-site-plugin #calculator .section-head>div{min-width:0;max-width:100%}
body.bubblesboom-site-plugin #calculator .section-sub{white-space:normal!important}
body.bubblesboom-site-plugin .builder-catalog{gap:26px}
body.bubblesboom-site-plugin .builder-category{
  padding:0!important;
  border:2px solid #ded0e6!important;
  border-radius:22px!important;
  background:#fff!important;
  box-shadow:0 8px 24px rgba(52,39,58,.06);
}
body.bubblesboom-site-plugin .builder-category-head{
  align-items:center;
  min-height:66px;
  margin:0;
  padding:16px 20px;
  border-radius:19px 19px 0 0;
  background:linear-gradient(115deg,#493052,#6d477e);
  color:#fff;
  box-sizing:border-box;
}
body.bubblesboom-site-plugin .builder-category-head h3{
  margin:0;
  font-size:23px!important;
  line-height:1.25;
  font-weight:850;
  letter-spacing:-.025em;
  color:#fff!important;
}
body.bubblesboom-site-plugin .builder-variants{padding:14px;gap:10px}
body.bubblesboom-site-plugin .builder-item{background:#fff!important;border-color:#eadce6!important}
body.bubblesboom-site-plugin .builder-main-row{background:#fff!important}
body.bubblesboom-site-plugin .bb-columns-4 .promise strong,
body.bubblesboom-site-plugin .promise-grid .promise strong,
body.bubblesboom-site-plugin #order-process .feature strong{color:var(--text)}
@keyframes bb-card-enter{
  from{opacity:.25;transform:translateY(20px) scale(.985)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@media(prefers-reduced-motion:no-preference){
  .bb-motion-card{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
  .bb-motion-card .promise-mark{transition:transform .3s ease}
  .bb-card-revealed{animation:bb-card-enter .6s cubic-bezier(.2,.7,.25,1) var(--bb-card-delay,0ms) backwards}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .bb-motion-card:hover{transform:translateY(-6px);box-shadow:0 16px 32px rgba(91,47,105,.12);border-color:#cbafd9}
  .bb-motion-card:hover .promise-mark{transform:rotate(-7deg) scale(1.08)}
}

/* This notice describes browser storage; it does not turn on analytics. */
.bb-storage-notice{
  position:fixed;
  z-index:9991;
  left:20px;
  bottom:20px;
  display:flex;
  align-items:center;
  gap:16px;
  width:min(430px,calc(100% - 40px));
  padding:16px;
  box-sizing:border-box;
  border:1px solid #ddcddf;
  border-radius:18px;
  background:#fff;
  color:#34273a;
  box-shadow:0 10px 36px rgba(52,39,58,.15);
}
.bb-storage-notice[hidden]{display:none!important}
.bb-storage-notice-copy{flex:1;min-width:0}
.bb-storage-notice strong{display:block;font-size:14px;line-height:1.3;margin-bottom:4px}
.bb-storage-notice p{font-size:12px;line-height:1.5;margin:0;color:#66586c}
.bb-storage-notice a{color:#79469a;text-decoration:underline;text-underline-offset:3px}
.bb-storage-notice .btn{flex:0 0 auto;min-height:40px;padding:0 14px;font-size:12px;border:0;cursor:pointer}
body.bb-order-present .bb-storage-notice{bottom:100px}
@media(max-width:680px){
  body.bubblesboom-site-plugin .builder-catalog{gap:22px}
  body.bubblesboom-site-plugin .builder-category{border-radius:18px!important}
  body.bubblesboom-site-plugin .builder-category-head{padding:14px;min-height:58px;border-radius:15px 15px 0 0}
  body.bubblesboom-site-plugin .builder-category-head h3{font-size:20px!important}
  body.bubblesboom-site-plugin .builder-variants{padding:10px;gap:8px}
  .bb-storage-notice{left:12px;bottom:calc(88px + env(safe-area-inset-bottom,0px));width:calc(100% - 24px);padding:13px;gap:10px}
  body.bb-order-present .bb-storage-notice{bottom:calc(110px + env(safe-area-inset-bottom,0px))}
}

/* v1.3.14 — smaller constructor without smaller readable text or broken price/quantity alignment. */
body.bubblesboom-site-plugin #calculator{padding-top:46px;padding-bottom:46px}
body.bubblesboom-site-plugin #calculator .section-head{margin-bottom:16px}
body.bubblesboom-site-plugin .builder-top-note{margin-bottom:12px;gap:6px}
body.bubblesboom-site-plugin .builder-chip{padding:5px 9px}
body.bubblesboom-site-plugin .builder-wrap{gap:16px}
body.bubblesboom-site-plugin .builder-catalog{gap:16px}
body.bubblesboom-site-plugin .builder-category{border-radius:19px!important}
body.bubblesboom-site-plugin .builder-category-head{min-height:53px;padding:11px 16px;border-radius:16px 16px 0 0}
body.bubblesboom-site-plugin .builder-category-head h3{font-size:21px!important}
body.bubblesboom-site-plugin .builder-variants{padding:10px;gap:7px}
body.bubblesboom-site-plugin .builder-summary{padding:19px;border-radius:20px}
body.bubblesboom-site-plugin .builder-total{font-size:clamp(35px,4vw,46px);margin-top:7px}
body.bubblesboom-site-plugin .builder-summary-list{margin:14px 0;gap:7px;max-height:40vh}
body.bubblesboom-site-plugin .builder-min{padding:8px 11px;margin-top:8px}
body.bubblesboom-site-plugin .builder-disclaimer{margin-top:9px}
@media(min-width:681px){
  body.bubblesboom-site-plugin .builder-main-row{padding:10px 14px!important}
  body.bubblesboom-site-plugin .builder-extras{padding:0 14px 10px!important;gap:6px}
  body.bubblesboom-site-plugin .builder-extra{padding:7px 10px!important}
  body.bubblesboom-site-plugin .builder-main-row>.qty-control button,
  body.bubblesboom-site-plugin .builder-main-row>.qty-control input,
  body.bubblesboom-site-plugin .builder-extra .qty-control-extra button,
  body.bubblesboom-site-plugin .builder-extra .qty-control-extra input{height:36px!important}
}
@media(max-width:980px){
  body.bubblesboom-site-plugin .builder-summary-list{max-height:none}
}
@media(max-width:680px){
  body.bubblesboom-site-plugin #calculator{padding-top:32px;padding-bottom:32px}
  body.bubblesboom-site-plugin .builder-catalog{gap:12px}
  body.bubblesboom-site-plugin .builder-category-head{min-height:49px;padding:10px 12px;border-radius:15px 15px 0 0}
  body.bubblesboom-site-plugin .builder-category-head h3{font-size:19px!important}
  body.bubblesboom-site-plugin .builder-variants{padding:8px;gap:7px}
  body.bubblesboom-site-plugin .builder-main-row{padding:8px 9px!important}
  body.bubblesboom-site-plugin .builder-extras{padding-bottom:8px}
  body.bubblesboom-site-plugin .builder-summary{padding:16px}
  body.bubblesboom-site-plugin .builder-summary-list{max-height:none}
}

/* Centered storage/cookie information and an always-available footer settings control. */
.bb-footer-tools{display:flex;justify-content:flex-end;margin-top:10px}
.bb-footer-cookie-settings{background:none;border:0;border-radius:6px;color:inherit;font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:4px 0}
.bb-footer-cookie-settings:hover{color:var(--accent)}
.bb-footer-cookie-settings:focus-visible{outline:3px solid #9a3774;outline-offset:4px}
.bb-storage-backdrop{position:fixed;inset:0;background:rgba(36,22,39,.52);z-index:10060}
.bb-storage-backdrop[hidden]{display:none!important}
body.bb-storage-open{overflow:hidden}
.bb-storage-notice{
  position:fixed;left:50%;top:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);margin:0;
  z-index:10061;display:flex;flex-direction:column;align-items:stretch;gap:14px;
  width:min(470px,calc(100% - 28px));max-height:calc(100dvh - 28px);overflow-y:auto;
  padding:24px;border-radius:22px;border:1px solid #ddcddf;background:#fff;color:#34273a;
  box-shadow:0 22px 75px rgba(32,20,35,.3);box-sizing:border-box;
}
.bb-storage-notice[hidden]{display:none!important}
.bb-storage-notice-copy strong{font-size:19px;line-height:1.3;margin-bottom:9px}
.bb-storage-notice-copy p{font-size:14px;line-height:1.55}
.bb-storage-notice-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.bb-storage-notice-actions .btn{min-height:44px;font-size:14px;padding:0 20px}
.bb-storage-clear{cursor:pointer;border:0;background:transparent;color:#724683;text-decoration:underline;text-underline-offset:3px;font:inherit;font-size:13px;min-height:44px;padding:0 2px}
.bb-storage-notice .bb-storage-feedback{font-size:13px;color:#4f3659;margin:0}
.bb-storage-feedback[hidden]{display:none!important}
body.bb-order-present .bb-storage-notice{bottom:auto;top:50%}
@media(max-width:680px){
  .bb-footer-tools{justify-content:flex-start;margin-top:12px}
  .bb-storage-notice{left:50%;right:auto;bottom:auto;width:min(470px,calc(100% - 24px));padding:20px;gap:12px}
  body.bb-order-present .bb-storage-notice{bottom:auto;top:50%}
  .bb-storage-notice-actions{flex-direction:column-reverse;align-items:stretch;gap:6px}
  .bb-storage-notice-actions .btn{width:100%}
  .bb-storage-clear{width:100%;text-align:center}
}


/* v1.3.15: постраничная навигация полного каталога */
.bubblesboom-site-plugin .navigation.pagination { margin: 34px 0 0; }
.bubblesboom-site-plugin .nav-links { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px; }
.bubblesboom-site-plugin .page-numbers { display:inline-flex; justify-content:center; align-items:center; min-width:38px; min-height:38px; padding:8px 13px; border:1px solid rgba(70,38,95,.14); border-radius:12px; background:white; text-decoration:none; color:#4b3656; font-size:14px; }
.bubblesboom-site-plugin .page-numbers.current { background:#ac43dd; color:#fff; border-color:#ac43dd; }
.bubblesboom-site-plugin .page-numbers:hover:not(.current) { border-color:#ac43dd; }

/* 1.3.16 — gallery thumbnails on product pages */
.bbp-photo-gallery{min-width:0;width:100%}
.bbp-photo-thumbs{display:flex;gap:9px;overflow-x:auto;margin-top:12px;padding:2px 2px 9px;scrollbar-width:thin;align-items:center}
.bbp-photo-thumb{flex:0 0 76px;width:76px;height:76px;box-sizing:border-box;cursor:pointer;border:2px solid transparent;padding:2px;border-radius:12px;background:#fff;transition:border-color .18s ease,transform .18s ease}
.bbp-photo-thumb:hover{transform:translateY(-2px)}
.bbp-photo-thumb[aria-pressed=true]{border-color:#bd40cd}
.bbp-photo-thumb:focus-visible{outline:3px solid #7140ff;outline-offset:2px}
.bbp-photo-thumb img{width:100%;height:100%;object-fit:cover;border-radius:8px;display:block}
@media(max-width:600px){.bbp-photo-thumbs{gap:7px}.bbp-photo-thumb{flex-basis:64px;width:64px;height:64px}}


/* v1.38 — richer delivery section + more noticeable FAQ animation */
.delivery-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.delivery-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:26px;
  padding:24px 26px;
  box-shadow:0 10px 28px rgba(47,28,38,.04);
}
.delivery-card h3{margin:0 0 12px;font-size:22px;line-height:1.2}
.delivery-card ul{margin:0;padding-left:22px;color:var(--muted);display:grid;gap:10px}
.delivery-card li{line-height:1.55}
.delivery-card strong{color:var(--text)}
.delivery-card:last-child:nth-child(odd){grid-column:1/-1}
.bublboom-block-home .delivery-grid{display:grid}
.bublboom-block-home .delivery-card > .wp-block-group__inner-container{display:contents}

body.bubblesboom-site-plugin .faq details{
  transition:border-color .22s ease, box-shadow .22s ease, background-color .22s ease, transform .22s ease;
}
body.bubblesboom-site-plugin .faq details:hover{
  border-color:#e3b8c8;
  box-shadow:0 10px 24px rgba(84,50,68,.06);
}
body.bubblesboom-site-plugin .faq details[open]{
  background:#fff;
  border-color:#e5bfd0;
  box-shadow:0 16px 36px rgba(84,50,68,.08);
  transform:translateY(-2px);
}
body.bubblesboom-site-plugin .faq summary{
  transition:color .18s ease;
}
body.bubblesboom-site-plugin .faq details[open] summary{color:#9a3774}
body.bubblesboom-site-plugin .faq summary::after{
  transition:transform .22s ease, background-color .22s ease, color .22s ease, border-color .22s ease;
}
body.bubblesboom-site-plugin .faq details[open] summary::after{
  content:'+';
  transform:rotate(45deg) scale(1.05);
  background:#fff4f8;
  border-color:#efbfd0;
  color:#9a3774;
}
@media(max-width:900px){.delivery-grid{grid-template-columns:1fr}}


/* v1.3.19 delivery details appended to the existing front-page delivery section */
.bb-delivery-rates{margin-top:22px;padding-bottom:12px}
.bb-delivery-rates-heading{margin-bottom:16px}
.bb-delivery-rates-heading h3{margin:0 0 6px;font-size:clamp(23px,2.6vw,30px);line-height:1.15}
.bb-delivery-rates-heading p{margin:0;color:var(--muted);line-height:1.55;max-width:760px}
.bb-delivery-rates .delivery-card h4{margin:0 0 12px;font-size:21px;line-height:1.25;color:var(--text)}
.bb-delivery-rates .delivery-card ul{padding-left:22px}
#delivery.bb-delivery-compact .bb-delivery-rates{padding-top:8px}
@media(max-width:680px){
  .bb-delivery-rates{margin-top:16px}
  .bb-delivery-rates .delivery-card{padding:20px}
  .bb-delivery-rates .delivery-card h4{font-size:18px}
}


/* v1.3.20 — unified delivery panel: one clearly framed area, five compact rows */
body.bubblesboom-site-plugin .bb-delivery-section{
  padding-top:24px;
  padding-bottom:54px;
}
body.bubblesboom-site-plugin .bb-delivery-panel{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:#fff;
  border:1px solid #eadce3;
  border-radius:28px;
  box-shadow:0 18px 46px rgba(67,39,54,.07);
}
body.bubblesboom-site-plugin .bb-delivery-panel::before{
  content:"";
  display:block;
  height:5px;
  background:linear-gradient(90deg,#ea5b98,#9b61ef);
}
body.bubblesboom-site-plugin .bb-delivery-panel-header{
  padding:27px 34px 23px;
  background:linear-gradient(112deg,#fff7fa 0%,#fff 75%);
  border-bottom:1px solid #f0e4ea;
}
body.bubblesboom-site-plugin .bb-delivery-panel-header h2{
  margin:0 0 8px;
  font-size:clamp(27px,3vw,37px);
  line-height:1.12;
  letter-spacing:-.035em;
}
body.bubblesboom-site-plugin .bb-delivery-panel-header p{
  color:var(--muted);
  margin:0;
  line-height:1.5;
  font-size:15px;
}
body.bubblesboom-site-plugin .bb-delivery-panel-body{
  padding:0 34px;
}
body.bubblesboom-site-plugin .bb-delivery-line{
  display:grid;
  grid-template-columns:minmax(0,230px) minmax(0,1fr);
  gap:12px 34px;
  align-items:start;
  padding:19px 0;
}
body.bubblesboom-site-plugin .bb-delivery-line + .bb-delivery-line{
  border-top:1px solid #f1e8ec;
}
body.bubblesboom-site-plugin .bb-delivery-line h3{
  margin:2px 0 0;
  font-size:16px;
  font-weight:800;
  letter-spacing:-.01em;
  line-height:1.4;
}
body.bubblesboom-site-plugin .bb-delivery-detail{
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:0;
}
body.bubblesboom-site-plugin .bb-delivery-detail p{
  margin:0;
  color:var(--muted);
  font-size:15px;
  line-height:1.45;
  overflow-wrap:break-word;
}
body.bubblesboom-site-plugin .bb-delivery-detail strong{color:var(--text)}
body.bubblesboom-site-plugin .bb-delivery-panel-note{
  margin:0;
  padding:15px 34px;
  color:var(--muted);
  font-size:13px;
  line-height:1.5;
  background:#fffbfd;
  border-top:1px solid #f1e8ec;
}
@media(max-width:700px){
  body.bubblesboom-site-plugin .bb-delivery-section{padding-top:12px;padding-bottom:32px}
  body.bubblesboom-site-plugin .bb-delivery-panel{border-radius:20px}
  body.bubblesboom-site-plugin .bb-delivery-panel-header{padding:22px 19px 19px}
  body.bubblesboom-site-plugin .bb-delivery-panel-header p{font-size:14px}
  body.bubblesboom-site-plugin .bb-delivery-panel-body{padding:0 19px}
  body.bubblesboom-site-plugin .bb-delivery-line{grid-template-columns:minmax(0,1fr);gap:7px;padding:16px 0}
  body.bubblesboom-site-plugin .bb-delivery-line h3{font-size:15px}
  body.bubblesboom-site-plugin .bb-delivery-detail p{font-size:14px}
  body.bubblesboom-site-plugin .bb-delivery-panel-note{padding:14px 19px}
}
