
:root{
  --blue:#003b82;
  --blue-dark:#002b60;
  --red:#e30613;
  --yellow:#ffd400;
  --ink:#182033;
  --muted:#687085;
  --line:#e4e7ee;
  --soft:#f5f7fb;
  --white:#ffffff;
  --radius:20px;
  --shadow:0 8px 28px rgba(18,31,55,.08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:var(--soft);
  -webkit-font-smoothing:antialiased;
}
button,input,select{font:inherit}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
button{cursor:pointer}
.container{width:min(1180px,calc(100% - 32px));margin:0 auto}

.topbar{
  background:var(--blue);
  color:#fff;
  min-height:68px;
  display:flex;
  align-items:center;
  position:sticky;
  top:0;
  z-index:30;
  box-shadow:0 4px 18px rgba(0,43,96,.16);
}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;min-width:0}
.brand-logo{
  display:block;
  width:auto;
  height:50px;
  max-width:180px;
  object-fit:contain;
}
.top-map{
  display:inline-flex;align-items:center;gap:8px;
  border:1px solid rgba(255,255,255,.34);
  border-radius:12px;padding:10px 14px;font-size:14px;font-weight:800;
  background:#fff;color:var(--blue);
}
.top-map svg,.map-btn svg,.search-box svg{width:19px;height:19px;flex:0 0 auto}

.hero{background:#fff;border-bottom:1px solid var(--line)}
.hero-inner{padding:42px 0 34px}
.kicker{
  display:inline-flex;align-items:center;
  background:var(--yellow);color:#1b1b1b;font-weight:900;font-size:12px;
  letter-spacing:.8px;padding:8px 11px;border-radius:9px;text-transform:uppercase
}
.hero h1{margin:15px 0 10px;font-size:clamp(34px,6vw,62px);line-height:.98;color:var(--blue);letter-spacing:-2px}
.hero h1 span{color:var(--red)}
.hero h1 .hero-primary{color:var(--blue)}
.hero p{margin:0;max-width:720px;color:var(--muted);font-size:17px;line-height:1.55}
.hero-copy{max-width:720px}
.hero-slogan{margin-top:4px;color:var(--blue);font-size:16px;font-weight:900;letter-spacing:.4px;text-transform:uppercase}
.period{
  margin-top:22px;display:flex;align-items:center;flex-wrap:wrap;gap:10px
}
.period-main{
  background:var(--blue);color:#fff;border-radius:12px;padding:11px 14px;font-weight:850;font-size:14px
}
.period-status{
  border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 13px;color:var(--ink);font-weight:750;font-size:13px
}

.controls-wrap{position:sticky;top:68px;z-index:20;background:rgba(245,247,251,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.controls{padding:16px 0 13px}
.control-row{display:grid;grid-template-columns:minmax(0,1fr) 285px 210px;gap:12px}
.search-box{position:relative}
.search-box svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted)}
.search-box input,.sort-select,.availability-select{
  width:100%;height:48px;border:1px solid var(--line);background:#fff;border-radius:13px;color:var(--ink);outline:none;
  transition:border-color .2s,box-shadow .2s;
}
.search-box input{padding:0 15px 0 43px}
.sort-select,.availability-select{padding:0 38px 0 13px}
.search-box input:focus,.sort-select:focus,.availability-select:focus{border-color:#8faed2;box-shadow:0 0 0 3px rgba(0,59,130,.08)}
.chips{display:flex;gap:8px;overflow:auto;padding:11px 0 2px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{
  border:1px solid var(--line);background:#fff;color:var(--ink);font-size:13px;font-weight:800;
  padding:9px 12px;border-radius:999px;white-space:nowrap
}
.chip.active{background:var(--blue);border-color:var(--blue);color:#fff}


.availability-filter-status{
  margin-top:10px;
  padding:9px 12px;
  border:1px solid #cbd9eb;
  border-radius:11px;
  background:#eef5fc;
  color:var(--blue-dark);
  font-size:12px;
  font-weight:750;
  line-height:1.4;
}
.product-availability{
  display:flex;
  align-items:flex-start;
  gap:6px;
  margin:-4px 0 12px;
  font-size:11px;
  font-weight:800;
  line-height:1.35;
}
.product-availability svg{
  width:14px;
  height:14px;
  flex:0 0 14px;
  margin-top:1px;
}
.product-availability.all{color:#247a43}
.product-availability.selected{color:var(--blue)}
.modal-availability{
  margin:13px 0 4px;
  padding:10px 12px;
  border-radius:11px;
  font-size:12px;
  font-weight:800;
  line-height:1.45;
}
.modal-availability.all{
  background:#edf8f1;
  color:#246b3c;
  border:1px solid #c9e8d3;
}
.modal-availability.selected{
  background:#eef5fc;
  color:var(--blue-dark);
  border:1px solid #cbd9eb;
}

.catalog{padding:28px 0 90px}
.catalog-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:16px}
.catalog-head h2{margin:0;font-size:24px}
.result-count{margin:0;color:var(--muted);font-size:14px;font-weight:650}
.grid{display:grid;grid-template-columns:repeat(var(--grid-cols,4),minmax(0,1fr));gap:16px}
.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  display:flex;flex-direction:column;min-width:0;box-shadow:0 1px 0 rgba(17,24,39,.02);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#d9dde6}
.product-visual{
  aspect-ratio:1/1;background:#fff;position:relative;display:grid;place-items:center;padding:4px;border-bottom:1px solid #f0f2f6
}
.product-visual img{width:100%;height:100%;object-fit:contain}
.product-visual button{
  position:absolute;inset:0;border:0;background:transparent;padding:0;
}
.badges{position:absolute;top:12px;left:12px;display:flex;gap:6px;flex-wrap:wrap;pointer-events:none}
.badge{
  background:var(--blue);color:#fff;font-size:11px;font-weight:900;border-radius:8px;padding:6px 8px;letter-spacing:.2px
}
.badge.adult{background:#2a2f3a}
.badge.missing{background:#6b7280}
.card-body{padding:15px 15px 16px;display:flex;flex:1;flex-direction:column}
.ref{font-size:11px;color:#8a91a1;font-weight:800;letter-spacing:.45px;text-transform:uppercase}
.card h3{font-size:15px;line-height:1.35;margin:7px 0 8px;min-height:61px}
.category{font-size:12px;color:var(--muted);font-weight:650;margin-bottom:14px}
.card-actions{margin-top:auto}
.map-btn{
  width:100%;min-height:44px;border:0;border-radius:11px;background:var(--red);color:#fff;
  display:flex;align-items:center;justify-content:center;gap:8px;font-weight:900;font-size:14px;padding:10px 12px
}
.map-btn:hover{background:#c90510}

.product-price{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:-2px 0 13px;padding:10px 11px;border-radius:11px;background:#f7f9fc;border:1px solid var(--line)}
.product-price span{font-size:9px;font-weight:900;letter-spacing:.55px;color:var(--blue)}
.product-price strong{font-size:21px;line-height:1;color:var(--red);white-space:nowrap}
.badge.promo{background:var(--red)}
.hide-codes .ref{display:none!important}
.hide-categories .category{display:none!important}
.modal-commerce{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:13px 0 3px}
.modal-price{font-size:28px;font-weight:950;color:var(--red)}
.modal-promo{background:var(--yellow);color:#1b1b1b;font-size:12px;font-weight:900;border-radius:9px;padding:7px 9px}

.empty{
  display:none;background:#fff;border:1px solid var(--line);border-radius:18px;text-align:center;padding:44px 20px;color:var(--muted)
}
.empty strong{display:block;color:var(--ink);font-size:18px;margin-bottom:8px}


/* Nuestras tiendas */
.stores-section{
  padding:64px 0 82px;
  background:#fff;
  border-top:1px solid var(--line);
}
.stores-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
  margin-bottom:22px;
}
.stores-heading h2{
  margin:13px 0 8px;
  font-size:clamp(28px,4vw,40px);
  color:var(--blue);
  letter-spacing:-.8px;
}
.stores-heading p{
  margin:0;
  color:var(--muted);
  line-height:1.55;
  max-width:760px;
}
.stores-open-all{
  flex:0 0 auto;
  background:var(--blue);
  color:#fff;
  border-radius:12px;
  padding:12px 16px;
  font-size:14px;
  font-weight:900;
}
.stores-layout{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);
  gap:18px;
  align-items:start;
}
.stores-map-card{
  border:1px solid var(--line);
  border-radius:20px;
  overflow:hidden;
  background:var(--soft);
  position:sticky;
  top:164px;
}
.stores-map-card iframe{
  display:block;
  width:100%;
  height:620px;
  border:0;
  background:#eef1f5;
}
.map-help{
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:13px 15px;
  background:#fff;
  border-top:1px solid var(--line);
  font-size:12px;
  color:var(--muted);
}
.map-help strong{color:var(--ink);font-size:13px}
.stores-panel{
  border:1px solid var(--line);
  border-radius:20px;
  padding:14px;
  background:var(--soft);
}
.store-search{
  position:relative;
  display:block;
}
.store-search svg{
  width:19px;height:19px;
  position:absolute;
  left:14px;top:50%;
  transform:translateY(-50%);
  color:var(--muted);
}
.store-search input{
  width:100%;
  height:48px;
  padding:0 14px 0 43px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#fff;
  color:var(--ink);
  outline:none;
}
.store-search input:focus{
  border-color:#8faed2;
  box-shadow:0 0 0 3px rgba(0,59,130,.08);
}
.store-count{
  margin:10px 3px 9px;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}
.store-list{
  display:grid;
  gap:9px;
  max-height:595px;
  overflow:auto;
  padding-right:3px;
  scrollbar-width:thin;
}
.store-card{
  display:grid;
  grid-template-columns:38px minmax(0,1fr) 20px;
  gap:11px;
  align-items:start;
  padding:13px;
  border:1px solid var(--line);
  border-radius:15px;
  background:#fff;
  cursor:pointer;
  transition:border-color .18s,box-shadow .18s,transform .18s;
  outline:none;
}
.store-card:hover,.store-card:focus-visible{
  border-color:#b7c5d8;
  box-shadow:0 6px 18px rgba(18,31,55,.08);
  transform:translateY(-1px);
}
.store-pin{
  width:38px;height:38px;
  border-radius:11px;
  display:grid;
  place-items:center;
  background:#eef4fb;
  color:var(--blue);
}
.store-pin svg{width:21px;height:21px}
.store-main{min-width:0}
.store-main h3{
  margin:0 0 4px;
  color:var(--blue-dark);
  font-size:14px;
  line-height:1.3;
}
.store-main p{
  margin:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.4;
}
.store-phone{
  display:inline-block;
  margin-top:6px;
  color:var(--blue);
  font-size:12px;
  font-weight:800;
}
.store-arrow{
  width:19px;height:19px;
  margin-top:8px;
  color:#a1a8b6;
}
.store-actions{
  display:flex;
  gap:7px;
  margin-top:10px;
}
.route-btn{
  min-height:36px;
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  border-radius:10px;
  font-size:12px;
  font-weight:900;
  padding:8px 9px;
}
.route-btn svg{width:17px;height:17px}
.route-btn.driving{
  background:var(--blue);
  color:#fff;
}
.route-btn.walking{
  border:1px solid #cad4e2;
  background:#fff;
  color:var(--blue);
}
.store-empty{
  display:none;
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  text-align:center;
  padding:28px 16px;
  color:var(--muted);
  font-size:13px;
}
.store-empty strong{
  display:block;
  color:var(--ink);
  font-size:15px;
  margin-bottom:5px;
}

.footer{background:#fff;border-top:1px solid var(--line);padding:30px 0 100px}
.footer-inner{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:start}
.footer strong{color:var(--blue)}
.footer p{margin:7px 0 0;color:var(--muted);font-size:13px;line-height:1.5;max-width:760px}
.footer a{color:var(--blue);font-weight:850}
.adult-note{
  margin-top:15px;padding:12px 14px;background:#f3f4f6;border-radius:11px;color:#4b5563;font-size:12px;font-weight:700
}

.mobile-map{
  display:none;position:fixed;left:14px;right:14px;bottom:14px;z-index:40;
  min-height:54px;border-radius:15px;background:var(--red);color:#fff;box-shadow:0 12px 28px rgba(86,5,10,.2);
  align-items:center;justify-content:center;gap:9px;font-weight:900;padding:12px 18px
}
.mobile-map svg{width:20px;height:20px}

.modal{
  position:fixed;inset:0;background:rgba(12,18,28,.66);z-index:60;display:none;align-items:center;justify-content:center;padding:22px
}
.modal.open{display:flex}
.modal-card{
  width:min(760px,100%);max-height:min(90vh,850px);overflow:auto;background:#fff;border-radius:23px;
  box-shadow:0 24px 70px rgba(0,0,0,.25)
}
.modal-top{display:flex;justify-content:flex-end;padding:12px 12px 0}
.modal-close{
  width:42px;height:42px;border:1px solid var(--line);background:#fff;border-radius:12px;font-size:25px;line-height:1;color:var(--ink)
}
.modal-content{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:0 24px 25px}
.modal-image{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;aspect-ratio:1/1}
.modal-image img{width:100%;height:100%;object-fit:contain}
.modal-info{align-self:center}
.modal-info .ref{margin-bottom:8px}
.modal-info h2{font-size:24px;line-height:1.15;margin:0 0 10px}
.modal-info p{font-size:14px;color:var(--muted);line-height:1.55}
.modal-description{
  margin:14px 0 0!important;
  color:#3f4d60!important;
  font-size:14px!important;
  line-height:1.58!important;
  max-width:54ch;
}
.modal-info .map-btn{margin-top:18px}
.modal-adult{font-size:12px!important;color:#4b5563!important;background:#f3f4f6;border-radius:10px;padding:10px 12px;font-weight:700}

@media(max-width:980px){
  .grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:720px){

  .stores-section{padding:42px 0 70px}
  .stores-heading{align-items:flex-start;flex-direction:column;gap:14px}
  .stores-open-all{width:100%;text-align:center}
  .stores-layout{grid-template-columns:1fr}
  .stores-map-card{position:relative;top:auto}
  .stores-map-card iframe{height:390px}
  .store-list{max-height:none}

  .container{width:min(100% - 24px,1180px)}
  .topbar{min-height:62px}
  .brand-logo{height:44px;max-width:158px}
  .top-map{display:none}
  .hero-inner{padding:30px 0 28px}
  .hero h1{letter-spacing:-1.2px}
  .hero p{font-size:15px}
  .hero-slogan{font-size:14px;margin-top:3px}
  .controls-wrap{top:62px}
  .control-row{grid-template-columns:1fr}
  .sort-select{display:none}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
  .catalog{padding-top:20px}
  .card{border-radius:16px}
  .card-body{padding:12px}
  .card h3{font-size:14px;min-height:76px}
  .category{font-size:11px}
  .badges{top:8px;left:8px}
  .badge{font-size:10px;padding:5px 7px}
  .map-btn{font-size:13px;min-height:42px}
  .mobile-map{display:flex}
  .footer-inner{grid-template-columns:1fr}
  .footer{padding-bottom:94px}
  .modal-content{grid-template-columns:1fr;padding:0 18px 20px;gap:15px}
  .modal-image{max-height:45vh}
  .modal-info h2{font-size:20px}
}
@media(max-width:390px){

  .stores-map-card iframe{height:330px}
  .store-card{grid-template-columns:34px minmax(0,1fr);padding:11px}
  .store-pin{width:34px;height:34px}
  .store-arrow{display:none}
  .store-actions{flex-direction:column}

  .container{width:calc(100% - 20px)}
  .grid{gap:8px}
  .card-body{padding:10px}
  .card h3{font-size:13px}
  .ref{font-size:10px}
  .map-btn{padding:9px 8px}
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;transition:none!important}
}


/* Privacidad y consentimiento */
[hidden]{display:none!important}
.cookie-overlay{
  position:fixed;inset:0;z-index:110;background:rgba(14,24,38,.34);backdrop-filter:blur(1.5px)
}
.cookie-banner{
  position:fixed;z-index:120;left:50%;bottom:18px;transform:translateX(-50%);
  width:min(1120px,calc(100% - 28px));background:#fff;border:1px solid #d9e0ea;border-radius:20px;
  box-shadow:0 22px 70px rgba(9,25,48,.24);overflow:hidden
}
.cookie-brandline{
  display:flex;align-items:center;min-height:52px;padding:8px 20px;background:var(--blue)
}
.cookie-brandline img{display:block;width:auto;height:38px;max-width:144px;object-fit:contain}
.cookie-content{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;padding:20px}
.cookie-content h2{margin:0 0 8px;color:var(--blue-dark);font-size:21px;letter-spacing:-.25px}
.cookie-content p{margin:0;color:#566274;font-size:13.5px;line-height:1.55;max-width:760px}
.cookie-policy-links{display:flex;flex-wrap:wrap;gap:14px;margin-top:11px}
.cookie-policy-links a{color:var(--blue);font-size:12px;font-weight:850;text-decoration:underline;text-underline-offset:3px}
.cookie-actions{display:grid;grid-template-columns:1fr;gap:8px;min-width:220px}
.cookie-btn{
  min-height:43px;border-radius:11px;padding:9px 15px;font:inherit;font-size:13px;font-weight:900;cursor:pointer
}
.cookie-accept{border:1px solid var(--blue);background:var(--blue);color:#fff}
.cookie-reject{border:1px solid #c8d1de;background:#fff;color:var(--blue-dark)}
.cookie-config{border:0;background:#eef3f9;color:var(--blue)}
.cookie-btn:focus-visible,.consent-close:focus-visible,.map-consent-btn:focus-visible{outline:3px solid rgba(0,59,130,.2);outline-offset:2px}

.consent-modal{
  position:fixed;inset:0;z-index:140;display:none;align-items:center;justify-content:center;
  padding:20px;background:rgba(10,19,33,.68)
}
.consent-modal.open{display:flex}
.consent-card{
  width:min(690px,100%);max-height:min(90vh,820px);overflow:auto;background:#fff;border-radius:21px;
  box-shadow:0 26px 80px rgba(0,0,0,.28);padding:22px
}
.consent-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.consent-kicker{display:block;color:var(--red);font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.55px;margin-bottom:5px}
.consent-head h2{margin:0;color:var(--blue-dark);font-size:23px;line-height:1.2}
.consent-close{flex:0 0 auto;width:40px;height:40px;border:1px solid var(--line);background:#fff;border-radius:11px;font-size:24px;color:var(--ink);cursor:pointer}
.consent-intro{margin:13px 0 18px;color:var(--muted);font-size:13px;line-height:1.55}
.consent-option{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;
  padding:16px 0;border-top:1px solid var(--line);cursor:pointer
}
.consent-option h3{margin:0 0 4px;color:var(--ink);font-size:15px}
.consent-option p{margin:0;color:var(--muted);font-size:12.5px;line-height:1.5}
.consent-option.always-on{cursor:default}
.consent-status{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;padding:7px 9px;border-radius:999px;background:#e9f5ec;color:#236b34;font-size:11px;font-weight:900}
.switch-wrap{position:relative;display:block;width:48px;height:28px}
.switch-wrap input{position:absolute;opacity:0;pointer-events:none}
.switch-ui{display:block;width:48px;height:28px;border-radius:999px;background:#c8d0db;transition:.18s;position:relative}
.switch-ui::after{content:"";position:absolute;width:22px;height:22px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.2);transition:.18s}
.switch-wrap input:checked + .switch-ui{background:var(--blue)}
.switch-wrap input:checked + .switch-ui::after{transform:translateX(20px)}
.switch-wrap input:focus-visible + .switch-ui{outline:3px solid rgba(0,59,130,.2);outline-offset:3px}
.consent-note{margin-top:3px;padding:12px 13px;border-radius:11px;background:#f4f6f9;color:#5f6876;font-size:11.5px;line-height:1.5}
.consent-footer-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}

.map-consent-placeholder{
  min-height:620px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:34px;background:linear-gradient(180deg,#eef3f8,#f7f9fb);color:var(--blue-dark)
}
.map-consent-placeholder p{max-width:460px;margin:8px 0 16px;color:var(--muted);font-size:13px;line-height:1.5}
.map-consent-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:17px;background:#fff;color:var(--blue);box-shadow:0 8px 24px rgba(0,59,130,.08);margin-bottom:12px}
.map-consent-icon svg{width:29px;height:29px}
.map-consent-btn{border:0;border-radius:11px;background:var(--blue);color:#fff;font:inherit;font-size:13px;font-weight:900;padding:11px 15px;cursor:pointer}

.legal-links{display:flex;flex-wrap:wrap;gap:12px 16px;margin-top:16px}
.legal-links a,.legal-links button{color:var(--blue);font:inherit;font-size:12px;font-weight:850;background:none;border:0;padding:0;cursor:pointer}
.legal-links a:hover,.legal-links button:hover{text-decoration:underline;text-underline-offset:3px}

body.cookie-banner-open .mobile-map{bottom:238px}
body.consent-modal-open{overflow:hidden}

@media(max-width:720px){
  .cookie-banner{bottom:10px;width:calc(100% - 18px);border-radius:17px}
  .cookie-brandline{min-height:46px;padding:7px 15px}
  .cookie-brandline img{height:32px;max-width:125px}
  .cookie-content{grid-template-columns:1fr;gap:15px;padding:16px}
  .cookie-content h2{font-size:18px}
  .cookie-content p{font-size:12.5px}
  .cookie-actions{grid-template-columns:1fr;min-width:0}
  .cookie-btn{width:100%}
  .consent-card{padding:18px;border-radius:18px}
  .consent-head h2{font-size:20px}
  .consent-option{grid-template-columns:1fr auto;gap:12px}
  .consent-footer-actions{flex-direction:column-reverse}
  .map-consent-placeholder{min-height:390px;padding:24px 18px}
  body.cookie-banner-open .mobile-map{display:none}
}
@media(max-width:390px){
  .cookie-policy-links{gap:8px 12px}
  .consent-option{grid-template-columns:1fr}
  .consent-option .switch-wrap{justify-self:start}
  .consent-status{justify-self:start}
  .map-consent-placeholder{min-height:330px}
}

.unit-price{margin:-7px 0 13px;padding:0 2px;color:#5e6879;font-size:11px;font-weight:800;line-height:1.35}.modal-unit-price{width:100%;margin:-3px 0 12px;color:#5d6878;font-size:12px;font-weight:800}.modal-unit-price[hidden]{display:none}

@media(max-width:900px){
  .control-row{grid-template-columns:minmax(0,1fr) 1fr}
  .search-box{grid-column:1/-1}
}
@media(max-width:620px){
  .control-row{grid-template-columns:1fr}
  .search-box{grid-column:auto}
}


/* V10 · Tienda por código postal */
.preferred-store-bar{margin-top:12px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid #bfd1e6;border-radius:14px;background:#f1f7fd}
.preferred-store-bar[hidden]{display:none}
.preferred-store-icon{width:42px;height:42px;border-radius:12px;background:var(--blue);color:#fff;display:grid;place-items:center}
.preferred-store-icon svg{width:22px;height:22px}.preferred-store-copy{display:grid;gap:2px;min-width:0}.preferred-store-copy span{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}.preferred-store-copy strong{font-size:14px;color:var(--blue-dark);line-height:1.25}.preferred-store-copy small{font-size:11px;color:var(--muted)}
.preferred-store-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.preferred-store-actions button{border:1px solid #bfd1e6;background:#fff;color:var(--blue);border-radius:10px;padding:8px 10px;font-size:11px;font-weight:900;cursor:pointer}.preferred-store-actions button:hover{background:#e9f2fb}
.stock-disclaimer{margin:8px 2px 0;color:var(--muted);font-size:10px;line-height:1.4}.stock-disclaimer[hidden]{display:none}
.postcode-gate{position:fixed;inset:0;z-index:10050;background:rgba(5,20,42,.72);backdrop-filter:blur(7px);display:grid;place-items:center;padding:18px}.postcode-gate[hidden]{display:none}.postcode-card{width:min(560px,100%);max-height:calc(100vh - 36px);overflow:auto;background:#fff;border-radius:22px;padding:26px;box-shadow:0 25px 70px rgba(0,0,0,.28)}.postcode-logo{display:block;width:138px;height:auto;margin:0 auto 18px}.postcode-kicker{display:block;text-align:center;color:var(--red);font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.8px}.postcode-card h2{margin:7px 0 8px;text-align:center;color:var(--blue);font-size:clamp(27px,5vw,38px);letter-spacing:-.8px}.postcode-card>p{margin:0 auto 20px;text-align:center;max-width:470px;color:var(--muted);font-size:14px;line-height:1.55}.postcode-card form>label{display:block;margin:0 0 7px;font-size:12px;font-weight:900;color:var(--ink)}.postcode-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px}.postcode-input-row input{height:52px;border:1px solid var(--line);border-radius:12px;padding:0 15px;font-size:19px;font-weight:900;letter-spacing:1.5px;outline:none}.postcode-input-row input:focus{border-color:#8faed2;box-shadow:0 0 0 3px rgba(0,59,130,.09)}.postcode-input-row button,.postcode-fallback button{border:0;border-radius:12px;padding:0 18px;background:var(--blue);color:#fff;font-size:12px;font-weight:950;cursor:pointer}.postcode-input-row button[disabled]{opacity:.62;cursor:wait}#postcodeHelp{display:block;margin-top:7px;color:var(--muted);font-size:10px}.postcode-error{margin-top:10px;padding:9px 11px;border-radius:10px;background:#fff1f1;border:1px solid #f2caca;color:#9b2020;font-size:11px;font-weight:800}.postcode-result{margin-top:14px;padding:12px 14px;border:1px solid #c9e8d3;background:#edf8f1;border-radius:12px;display:grid;gap:3px}.postcode-result[hidden]{display:none}.postcode-result span{font-size:9px;text-transform:uppercase;letter-spacing:.6px;font-weight:950;color:#3d7b50}.postcode-result strong{font-size:14px;color:#205b34}.postcode-result small{font-size:10px;color:#52715d}.postcode-fallback{margin-top:14px;padding:12px;border:1px solid #d6e0ed;background:#f7f9fc;border-radius:12px}.postcode-fallback[hidden]{display:none}.postcode-fallback p{margin:0 0 9px;color:var(--muted);font-size:11px;line-height:1.4}.postcode-fallback select{width:100%;height:44px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 10px;margin-bottom:8px}.postcode-fallback button{width:100%;height:42px}.postcode-privacy{margin:16px 0 0!important;padding-top:13px;border-top:1px solid var(--line);font-size:9px!important;line-height:1.45!important;color:#7b8492!important}
@media(max-width:720px){.preferred-store-bar{grid-template-columns:38px minmax(0,1fr)}.preferred-store-icon{width:38px;height:38px}.preferred-store-actions{grid-column:1/-1;justify-content:stretch}.preferred-store-actions button{flex:1}.postcode-card{padding:22px 18px}.postcode-input-row{grid-template-columns:1fr}.postcode-input-row button{height:48px}.postcode-logo{width:120px}}

.postcode-privacy a{color:var(--blue);text-decoration:underline;text-underline-offset:2px}


/* ============================================================
   V12 · EXPERIENCIA MÓVIL COMPACTA
   El catálogo debe ser el protagonista al hacer scroll.
   ============================================================ */

.availability-control{
  min-width:0;
}
.mobile-change-postcode{
  display:none;
}

/* Tablet y móvil */
@media(max-width:720px){

  /* El gran bloque de filtros deja de quedarse pegado a la pantalla. */
  .controls-wrap{
    position:relative;
    top:auto;
    z-index:10;
    background:var(--soft);
    backdrop-filter:none;
  }

  .controls{
    padding:10px 0 8px;
  }

  .control-row{
    grid-template-columns:1fr;
    gap:8px;
  }

  .search-box input,
  .availability-select{
    height:44px;
    border-radius:11px;
    font-size:14px;
  }

  .search-box input{
    padding-left:41px;
  }

  /* Tienda seleccionada + acceso rápido para cambiar CP. */
  .availability-control{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:7px;
    align-items:center;
  }

  .availability-select{
    min-width:0;
    font-weight:750;
    color:var(--blue-dark);
    border-color:#bfd1e6;
    background-color:#fff;
  }

  .mobile-change-postcode{
    display:inline-flex;
    height:44px;
    align-items:center;
    justify-content:center;
    border:1px solid #bfd1e6;
    border-radius:11px;
    background:#fff;
    color:var(--blue);
    padding:0 11px;
    white-space:nowrap;
    font-size:11px;
    font-weight:900;
  }

  /* Categorías más pequeñas y en una sola línea desplazable. */
  .chips{
    gap:6px;
    padding:8px 0 1px;
    margin-right:-12px;
    padding-right:12px;
  }

  .chip{
    padding:7px 10px;
    font-size:11px;
  }

  /* Estos dos bloques repetían la misma información que el selector. */
  .availability-filter-status,
  .preferred-store-bar,
  .stock-disclaimer{
    display:none!important;
  }

  /* Más cerca del catálogo. */
  .catalog{
    padding-top:14px;
  }

  .catalog-head{
    margin-bottom:11px;
  }

  .catalog-head h2{
    font-size:20px;
  }

  .result-count{
    font-size:12px;
  }

  /* En tienda ya seleccionada no repetimos "Disponible en todas..." en
     cada tarjeta: sigue visible en escritorio y en la ficha completa. */
  .product-availability.all{
    display:none;
  }

  .product-availability.selected{
    margin:0 0 9px;
    font-size:10px;
  }

  .card h3{
    min-height:58px;
    margin-bottom:6px;
  }

  .category{
    margin-bottom:10px;
  }

  /* Botón de tiendas flotante pequeño: ya no tapa las tarjetas. */
  .mobile-map{
    left:auto;
    right:max(13px,env(safe-area-inset-right));
    bottom:max(13px,env(safe-area-inset-bottom));
    width:52px;
    height:52px;
    min-height:52px;
    padding:0;
    border-radius:50%;
    gap:0;
    font-size:0;
    box-shadow:0 8px 22px rgba(86,5,10,.24);
  }

  .mobile-map svg{
    width:24px;
    height:24px;
  }

  /* Ya no hace falta reservar casi 100 px de pie por el antiguo botón. */
  .footer{
    padding-bottom:76px;
  }
}

/* Teléfonos estrechos */
@media(max-width:390px){
  .search-box input,
  .availability-select,
  .mobile-change-postcode{
    height:42px;
  }

  .mobile-change-postcode{
    padding:0 9px;
    font-size:10px;
  }

  .chips{
    margin-right:-10px;
    padding-right:10px;
  }

  .chip{
    padding:6px 9px;
    font-size:10.5px;
  }

  .catalog{
    padding-top:11px;
  }

  .card h3{
    min-height:54px;
  }
}

/* Evitar que el consentimiento intente recolocar el nuevo botón circular
   demasiado arriba. Si el banner está visible, simplemente se oculta. */
@media(max-width:720px){
  body.cookie-banner-open .mobile-map{
    display:none!important;
  }
}


/* V13 · acceso directo a navegación en coche desde la tienda seleccionada */
.preferred-store-route{
  text-decoration:none;
  cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease, filter .16s ease;
}
.preferred-store-route:hover{
  transform:translateY(-1px);
  box-shadow:0 6px 15px rgba(0,59,130,.18);
  filter:brightness(1.04);
}
.preferred-store-route:focus-visible{
  outline:3px solid rgba(0,59,130,.22);
  outline-offset:3px;
}


/* V14 · productos ligados a secciones de tienda */
.product-availability.department{color:#9a6500}
.modal-availability.department{
  background:#fff7e8;
  color:#805500;
  border:1px solid #f0d79f;
}


/* ============================================================
   V15 · TIENDAS DISPONIBLES POR PRODUCTO
   ============================================================ */
button.map-btn{
  cursor:pointer;
  font-family:inherit;
}

.product-stores-modal{
  position:fixed;
  inset:0;
  z-index:75;
  display:none;
  align-items:center;
  justify-content:center;
  padding:22px;
  background:rgba(12,18,28,.68);
}
.product-stores-modal.open{display:flex}

.product-stores-card{
  width:min(760px,100%);
  max-height:min(90vh,860px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:#fff;
  border-radius:22px;
  box-shadow:0 26px 80px rgba(0,0,0,.28);
}

.product-stores-head{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-start;
  padding:22px 22px 12px;
}
.product-stores-kicker{
  display:block;
  margin-bottom:6px;
  color:var(--blue);
  font-size:10px;
  font-weight:950;
  letter-spacing:.55px;
  text-transform:uppercase;
}
.product-stores-head h2{
  margin:0;
  color:var(--ink);
  font-size:24px;
  line-height:1.15;
}
.product-stores-head p{
  margin:7px 0 0;
  color:var(--muted);
  font-size:13px;
  font-weight:750;
}
.product-stores-close{
  width:42px;
  height:42px;
  flex:0 0 42px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  color:var(--ink);
  font-size:25px;
  line-height:1;
  cursor:pointer;
}

.product-stores-summary{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 22px 12px;
  padding:11px 13px;
  border:1px solid #cbd9eb;
  border-radius:12px;
  background:#eef5fc;
  color:var(--blue-dark);
}
.product-stores-summary strong{
  flex:0 0 auto;
  font-size:13px;
}
.product-stores-summary span{
  font-size:12px;
  line-height:1.4;
}

.product-stores-search{
  position:relative;
  display:block;
  margin:0 22px 12px;
}
.product-stores-search svg{
  position:absolute;
  left:13px;
  top:50%;
  width:18px;
  height:18px;
  transform:translateY(-50%);
  color:var(--muted);
}
.product-stores-search input{
  width:100%;
  height:44px;
  padding:0 13px 0 40px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
  color:var(--ink);
  outline:none;
}
.product-stores-search input:focus{
  border-color:#8faed2;
  box-shadow:0 0 0 3px rgba(0,59,130,.08);
}

.product-stores-list{
  display:grid;
  gap:8px;
  overflow:auto;
  padding:0 22px 12px;
  scrollbar-width:thin;
}

.product-store-row{
  display:grid;
  grid-template-columns:38px minmax(0,1fr) auto;
  gap:11px;
  align-items:center;
  padding:11px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#fff;
}
.product-store-row.preferred{
  border-color:#8eb3df;
  background:#f3f8fe;
}
.product-store-pin{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#eef4fb;
  color:var(--blue);
}
.product-store-pin svg{width:20px;height:20px}
.product-store-copy{
  min-width:0;
  display:grid;
  gap:3px;
}
.product-store-titleline{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
}
.product-store-copy strong{
  color:var(--blue-dark);
  font-size:13px;
}
.product-store-copy > span{
  color:var(--muted);
  font-size:11px;
  line-height:1.35;
}
.your-store-badge{
  padding:3px 6px;
  border-radius:999px;
  background:var(--blue);
  color:#fff;
  font-size:8px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.35px;
}

.product-store-routes{
  display:flex;
  gap:6px;
}
.product-store-route{
  min-height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  border-radius:9px;
  padding:7px 9px;
  white-space:nowrap;
  font-size:10px;
  font-weight:900;
}
.product-store-route svg{
  width:15px;
  height:15px;
}
.product-store-route.driving{
  background:var(--blue);
  color:#fff;
}
.product-store-route.walking{
  border:1px solid #c8d4e2;
  background:#fff;
  color:var(--blue);
}

.product-stores-empty{
  display:grid;
  gap:4px;
  padding:24px 16px;
  border:1px solid var(--line);
  border-radius:12px;
  text-align:center;
  color:var(--muted);
}
.product-stores-empty strong{color:var(--ink);font-size:14px}
.product-stores-empty span{font-size:12px}

.product-stores-note{
  margin:0;
  padding:11px 22px 16px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:10px;
  line-height:1.45;
}

@media(max-width:620px){
  .product-stores-modal{
    align-items:flex-end;
    padding:0;
  }
  .product-stores-card{
    width:100%;
    max-height:91vh;
    border-radius:20px 20px 0 0;
  }
  .product-stores-head{
    padding:17px 16px 10px;
  }
  .product-stores-head h2{font-size:20px}
  .product-stores-summary{
    margin:0 16px 10px;
    align-items:flex-start;
    flex-direction:column;
    gap:2px;
  }
  .product-stores-search{margin:0 16px 10px}
  .product-stores-list{padding:0 16px 10px}
  .product-store-row{
    grid-template-columns:34px minmax(0,1fr);
    gap:9px;
    align-items:start;
  }
  .product-store-pin{
    width:34px;
    height:34px;
  }
  .product-store-routes{
    grid-column:1/-1;
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .product-store-route{
    min-height:38px;
    font-size:11px;
  }
  .product-stores-note{padding:10px 16px 13px}
}


/* ============================================================
   V16 · FECHAS INDIVIDUALES POR PRODUCTO
   ============================================================ */
.period-row{display:none!important}

.product-period{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  margin:0 0 11px;
  font-size:10px;
  line-height:1.3;
}
.product-period-state{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:4px 7px;
  border-radius:999px;
  font-weight:950;
  white-space:nowrap;
}
.product-period-dates{
  color:var(--muted);
  font-weight:800;
}
.product-period.active .product-period-state{
  background:#eaf8ef;
  color:#247a43;
}
.product-period.upcoming .product-period-state{
  background:#fff5df;
  color:#8a5b00;
}
.product-period.ended .product-period-state{
  background:#f1f3f6;
  color:#6f7784;
}

.modal-product-period{
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin:11px 0 0;
  padding:10px 12px;
  border-radius:11px;
  font-size:12px;
  line-height:1.4;
}
.modal-product-period strong{
  flex:0 0 auto;
}
.modal-product-period span{
  color:inherit;
}
.modal-product-period.active{
  background:#edf8f1;
  color:#246b3c;
  border:1px solid #c9e8d3;
}
.modal-product-period.upcoming{
  background:#fff7e8;
  color:#805500;
  border:1px solid #f0d79f;
}
.modal-product-period.ended{
  background:#f4f5f7;
  color:#68707c;
  border:1px solid #dfe3e8;
}

@media(max-width:720px){
  .product-period{
    margin:0 0 8px;
    gap:5px;
    font-size:9.5px;
  }
  .product-period-state{
    min-height:20px;
    padding:3px 6px;
  }
}


/* ============================================================
   V17 · MI TIENDA EN CABECERA
   ============================================================ */
.top-store-wrap{
  position:relative;
  flex:0 0 auto;
}

button.top-map{
  font-family:inherit;
  cursor:pointer;
}

.top-store-trigger{
  white-space:nowrap;
}

.top-store-chevron{
  width:15px!important;
  height:15px!important;
  margin-left:2px;
  transition:transform .16s ease;
}
.top-store-trigger[aria-expanded="true"] .top-store-chevron{
  transform:rotate(180deg);
}

.top-store-menu{
  position:absolute;
  right:0;
  top:calc(100% + 10px);
  z-index:90;
  width:340px;
  overflow:hidden;
  border:1px solid #dce3ec;
  border-radius:16px;
  background:#fff;
  box-shadow:0 18px 50px rgba(13,31,54,.18);
}
.top-store-menu[hidden]{display:none}

.top-store-menu-head{
  padding:16px 16px 12px;
  border-bottom:1px solid var(--line);
}
.top-store-menu-head > span{
  display:block;
  margin-bottom:4px;
  color:#7c8695;
  font-size:9px;
  font-weight:950;
  letter-spacing:.55px;
  text-transform:uppercase;
}
.top-store-menu-head strong{
  display:block;
  color:var(--blue-dark);
  font-size:15px;
  line-height:1.3;
}
.top-store-menu-head p{
  margin:5px 0 0;
  color:var(--muted);
  font-size:11px;
  line-height:1.4;
}

.top-store-menu-departments{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  padding:10px 16px;
  border-bottom:1px solid var(--line);
  background:#f8fafc;
}
.top-store-menu-departments span{
  display:inline-flex;
  padding:4px 7px;
  border-radius:999px;
  background:#eef4fb;
  color:var(--blue);
  font-size:9px;
  font-weight:900;
}
.top-store-menu-departments .top-store-no-departments{
  background:#f2f3f5;
  color:#747d89;
}

.top-store-menu-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  padding:12px;
}

.top-store-action{
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:7px;
  padding:9px 10px;
  border:1px solid #dce3ec;
  border-radius:10px;
  background:#fff;
  color:var(--blue-dark);
  font-family:inherit;
  font-size:10px;
  font-weight:900;
  line-height:1.25;
  text-align:left;
  cursor:pointer;
}
.top-store-action svg{
  width:17px;
  height:17px;
  flex:0 0 17px;
}
.top-store-action:hover{
  border-color:#aebfd4;
  background:#f8fbff;
}
.top-store-action.primary{
  grid-column:1/-1;
  justify-content:center;
  min-height:46px;
  background:var(--blue);
  border-color:var(--blue);
  color:#fff;
  font-size:11px;
}
.top-store-action.primary:hover{
  background:var(--blue-dark);
  border-color:var(--blue-dark);
}

@media(max-width:720px){
  .top-store-wrap{display:none}
}

/* V19 · uniformidad de imágenes de producto */
.card-media img,
.product-image img,
.card img{
  object-fit:contain;
  object-position:center center;
}


/* V21 · aviso discreto bajo la fecha general */
.period-disclaimer{
  margin:7px 0 0;
  color:#7b8492;
  font-size:11px;
  line-height:1.35;
  font-weight:650;
}
@media(max-width:720px){
  .period-disclaimer{
    font-size:10px;
    margin-top:6px;
  }
}


/* V22 · logo enlazado a la web oficial Sangüi */
.brand{
  cursor:pointer;
}
.brand:focus-visible{
  outline:3px solid rgba(255,255,255,.65);
  outline-offset:4px;
  border-radius:8px;
}


/* V26 · se elimina la fecha general del catálogo */
.period,
.period-main,
.period-disclaimer{
  display:none !important;
}


/* V34 · logo superior centrado y un poco más pequeño en móvil */
@media(max-width:720px){
  .topbar-inner{justify-content:center}
  .brand{margin:0 auto;justify-content:center}
  .brand-logo{height:38px;max-width:136px;margin:0 auto}
}


/* V46 · acceso al folleto PDF y folleto digital */
.hero-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(440px,520px);
  gap:38px;
  align-items:center;
}
.hero-main-copy{min-width:0}
.brochure-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.brochure-actions[hidden]{display:none!important}

.brochure-card{
  min-width:0;
  min-height:178px;
  display:grid;
  grid-template-rows:104px 1fr;
  overflow:hidden;
  border:1px solid #dce4ee;
  border-radius:18px;
  background:#fff;
  color:var(--ink);
  text-decoration:none;
  box-shadow:0 8px 24px rgba(15,42,77,.07);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.brochure-card:hover{
  transform:translateY(-2px);
  border-color:#b9cbe0;
  box-shadow:0 13px 31px rgba(15,42,77,.12);
}
.brochure-card:focus-visible{
  outline:3px solid rgba(0,59,130,.18);
  outline-offset:3px;
}
.brochure-visual{
  position:relative;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:#f1f6fc;
}
.brochure-card-digital .brochure-visual{background:#f7f8fb}

.brochure-sheet{
  position:relative;
  width:68px;
  height:84px;
  border-radius:6px;
  background:#fff;
  box-shadow:0 8px 18px rgba(27,54,87,.16);
  border:1px solid #dfe5ec;
  transform:rotate(-2deg);
  overflow:hidden;
}
.brochure-sheet-brand{
  display:block;
  padding:8px 7px 5px;
  color:var(--blue);
  font-weight:950;
  font-size:12px;
  font-style:italic;
}
.brochure-sheet-bars{
  display:block;
  height:9px;
  background:linear-gradient(90deg,var(--blue) 0 53%,var(--red) 53% 100%);
}
.brochure-sheet-products{
  position:absolute;
  left:8px;right:8px;bottom:10px;
  height:37px;
  border-radius:5px;
  background:
    radial-gradient(circle at 20% 55%,#ffcc42 0 8px,transparent 9px),
    radial-gradient(circle at 52% 42%,#4aa86c 0 8px,transparent 9px),
    radial-gradient(circle at 80% 58%,#e45858 0 8px,transparent 9px),
    #f3f5f8;
}
.brochure-device{
  width:58px;
  height:89px;
  padding:5px;
  border-radius:13px;
  background:#17243a;
  box-shadow:0 8px 20px rgba(23,36,58,.2);
}
.brochure-device-screen{
  height:100%;
  display:block;
  position:relative;
  overflow:hidden;
  border-radius:9px;
  background:#fff;
}
.brochure-device-brand{
  display:block;
  padding:8px 5px 4px;
  color:var(--blue);
  font-size:10px;
  font-weight:950;
  font-style:italic;
}
.brochure-device-products{
  position:absolute;
  left:5px;right:5px;top:29px;bottom:6px;
  border-radius:5px;
  background:
    linear-gradient(#edf3f9 0 0) top/100% 7px no-repeat,
    radial-gradient(circle at 25% 43%,#f0bd2b 0 6px,transparent 7px),
    radial-gradient(circle at 72% 42%,#e44b52 0 6px,transparent 7px),
    radial-gradient(circle at 27% 76%,#3d9d66 0 6px,transparent 7px),
    radial-gradient(circle at 73% 76%,#457ac1 0 6px,transparent 7px),
    #f6f8fb;
}
.brochure-badge{
  position:absolute;
  right:9px;
  bottom:8px;
  padding:4px 6px;
  border-radius:7px;
  background:var(--red);
  color:#fff;
  font-size:8px;
  font-weight:950;
  letter-spacing:.25px;
}
.brochure-card-digital .brochure-badge{background:var(--blue)}

.brochure-card-copy{
  display:grid;
  gap:2px;
  padding:11px 12px 13px;
}
.brochure-card-copy small{
  color:var(--muted);
  font-size:9px;
  font-weight:700;
}
.brochure-card-copy strong{
  color:var(--blue-dark);
  font-size:13px;
  line-height:1.2;
}
.brochure-card-copy span{
  color:var(--muted);
  font-size:10px;
  font-weight:700;
}

@media(max-width:1100px){
  .hero-layout{
    grid-template-columns:minmax(0,1fr) minmax(390px,450px);
    gap:24px;
  }
}
@media(max-width:900px){
  .hero-layout{grid-template-columns:1fr}
  .brochure-actions{
    max-width:520px;
    margin-top:4px;
  }
}
@media(max-width:520px){
  .brochure-actions{grid-template-columns:1fr 1fr;gap:9px}
  .brochure-card{
    min-height:157px;
    grid-template-rows:92px 1fr;
    border-radius:15px;
  }
  .brochure-card-copy{padding:9px 10px 11px}
  .brochure-card-copy strong{font-size:12px}
  .brochure-sheet{width:58px;height:72px}
  .brochure-device{width:50px;height:77px}
}


/* V47 · etiquetas opcionales por producto */
.badge.flag-new{
  background:#075aa5;
  color:#fff;
}
.badge.flag-stock{
  background:#ffedb0;
  color:#704900;
  border:1px solid #e4c365;
}
.badge.flag-explosive{
  background:#e30613;
  color:#fff;
  box-shadow:0 4px 11px rgba(227,6,19,.18);
}
.modal-product-flags{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:8px 0 3px;
}
.modal-product-flags[hidden]{display:none!important}
.modal-product-flags .badge{
  display:inline-flex;
  font-size:10px;
  padding:6px 8px;
}

@media(max-width:600px){
  .badge.flag-stock{max-width:150px}
}
.store-price-hint{margin:-7px 0 10px;color:#52677e;font-size:9px;font-weight:750;line-height:1.35}
.product-price.varies{border-color:#bdd5ea;background:#eef6fd}
.product-store-price{display:inline-flex!important;align-items:center;gap:5px;width:max-content;margin-top:5px;padding:5px 8px;border-radius:999px;background:#eaf7ef;color:#11643a!important;font-size:9px!important;font-weight:900}
.product-store-price strong{font-size:12px;color:#073e25}.product-store-price.pending{background:#f3f5f7;color:#6e7783!important}
.product-stores-price-note{display:block!important;margin-top:7px;padding:8px 10px;border-radius:9px;background:#fff5cf;color:#6a5200!important;font-weight:800}

/* ============================================================
   V55 · SELECTOR DE IDIOMA ES / EN / FR / DE
   ============================================================ */
.language-switcher{
  display:flex;
  align-items:center;
  gap:5px;
  padding:4px;
  border:1px solid rgba(255,255,255,.34);
  border-radius:12px;
  background:rgba(255,255,255,.10);
  backdrop-filter:blur(6px);
}
.language-button{
  min-width:42px;
  height:34px;
  padding:0 7px;
  border:1px solid transparent;
  border-radius:9px;
  background:transparent;
  color:#fff;
  font:inherit;
  font-size:10px;
  font-weight:900;
  letter-spacing:.25px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  transition:background .15s ease,border-color .15s ease,transform .15s ease;
}
.language-button:hover{background:rgba(255,255,255,.14)}
.language-button.active{
  background:#fff;
  color:var(--blue);
  border-color:#fff;
  box-shadow:0 3px 10px rgba(0,0,0,.12);
}
.language-button:focus-visible{outline:3px solid rgba(255,255,255,.55);outline-offset:2px}
.language-flag{font-size:17px;line-height:1}
.top-language{margin-left:auto;margin-right:8px}
.postcode-language{
  width:max-content;
  margin:-4px auto 13px;
  border-color:#d7e0eb;
  background:#f5f8fc;
  backdrop-filter:none;
}
.postcode-language .language-button{color:#4b596b}
.postcode-language .language-button:hover{background:#e9f0f8}
.postcode-language .language-button.active{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:none}

@media(max-width:720px){
  .topbar-inner{position:relative}
  .top-language{
    position:absolute;
    right:0;
    top:50%;
    transform:translateY(-50%);
    margin:0;
    gap:2px;
    padding:3px;
  }
  .top-language .language-button{min-width:32px;width:32px;height:31px;padding:0}
  .top-language .language-button>span:last-child{display:none}
  .top-language .language-flag{font-size:18px}
}
@media(max-width:430px){
  .top-language{right:-4px}
  .top-language .language-button{min-width:29px;width:29px;height:29px}
  .top-language .language-flag{font-size:16px}
  .postcode-language{gap:3px}
  .postcode-language .language-button{min-width:38px;padding:0 5px}
}


/* V59 · logo superior robusto entre navegadores */
.brand{
  flex:0 0 auto;
}
.brand-logo{
  min-height:1px;
}


/* V61 · Selector de tienda directo y compatible con Firefox */
.store-chooser-card{max-height:min(720px,calc(100vh - 32px))}
.store-chooser-list{min-height:120px}
.store-chooser-row{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:11px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:13px;background:#fff;color:inherit;text-align:left;cursor:pointer;font:inherit;transition:border-color .15s ease,background .15s ease,transform .15s ease}
.store-chooser-row:hover,.store-chooser-row:focus-visible{border-color:#8eb3df;background:#f6faff;outline:none}
.store-chooser-row:active{transform:translateY(1px)}
.store-chooser-row.preferred{border-color:#8eb3df;background:#f3f8fe}
.store-chooser-copy{min-width:0;display:grid;gap:3px}
.store-chooser-copy strong{color:var(--blue-dark);font-size:13px}
.store-chooser-copy small{color:var(--muted);font-size:11px;line-height:1.35}
.store-chooser-action{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 10px;border-radius:9px;background:var(--blue);color:#fff;font-size:10px;font-weight:900;white-space:nowrap}
.store-chooser-row.preferred .store-chooser-action{background:#e5eef9;color:var(--blue-dark)}
@media(max-width:640px){.store-chooser-row{grid-template-columns:38px minmax(0,1fr)}.store-chooser-action{grid-column:1/-1;width:100%}}


/* V63 · Frescos por tienda */
.fresh-section{padding:38px 0 46px;background:linear-gradient(180deg,#fff 0%,#f7fafc 100%);border-top:1px solid #e7edf4;border-bottom:1px solid #e7edf4}
.fresh-head{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:18px}
.fresh-head h2{margin:4px 0 8px;color:var(--blue,#003b82);font-size:clamp(1.65rem,3vw,2.35rem);line-height:1.08}
.fresh-head p{max-width:760px;margin:0;color:#5f6d7b;line-height:1.55}
.fresh-change-store{border:1px solid #cbd8e6;background:#fff;color:var(--blue,#003b82);font-weight:800;border-radius:999px;padding:11px 17px;cursor:pointer;white-space:nowrap;box-shadow:0 3px 12px rgba(20,48,78,.06)}
.fresh-change-store:hover{background:#f1f6fb}
.fresh-store-card{display:flex;align-items:center;gap:13px;background:#fff;border:1px solid #dbe5ef;border-radius:18px;padding:14px 16px;margin-bottom:16px;box-shadow:0 7px 24px rgba(17,48,79,.06)}
.fresh-store-pin{width:42px;height:42px;border-radius:50%;background:#edf5ff;color:var(--blue,#003b82);display:grid;place-items:center;flex:0 0 auto}
.fresh-store-pin svg{width:23px;height:23px}
.fresh-store-copy{min-width:0;display:flex;flex-direction:column;gap:2px}
.fresh-store-copy span{font-size:.76rem;text-transform:uppercase;letter-spacing:.07em;font-weight:800;color:#788694}
.fresh-store-copy strong{font-size:1rem;color:#18324a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fresh-store-copy small{color:#6c7985;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fresh-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.fresh-card{position:relative;min-height:150px;border-radius:20px;padding:18px;background:#fff;border:1px solid #dce6ef;box-shadow:0 8px 24px rgba(22,54,87,.06);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}
.fresh-card.available{border-color:#c9dfcf;background:linear-gradient(145deg,#fff 0%,#f5fbf6 100%)}
.fresh-card.unavailable{opacity:.58;filter:saturate(.45)}
.fresh-card-icon{width:48px;height:48px;border-radius:15px;background:#eef4f9;display:grid;place-items:center;font-size:1.65rem}
.fresh-card.available .fresh-card-icon{background:#e7f5ea}
.fresh-card h3{margin:14px 0 5px;font-size:1.07rem;color:#19344d}
.fresh-card-status{display:inline-flex;align-items:center;gap:7px;font-size:.84rem;font-weight:800;color:#6f7b87}
.fresh-card.available .fresh-card-status{color:#27733b}
.fresh-card-status::before{content:'';width:8px;height:8px;border-radius:50%;background:#9aa6b1}
.fresh-card.available .fresh-card-status::before{background:#3f9b57;box-shadow:0 0 0 4px rgba(63,155,87,.12)}
.fresh-empty{grid-column:1/-1;padding:24px;text-align:center;background:#fff;border:1px dashed #c9d6e2;border-radius:18px;color:#667482}
.fresh-note{margin:14px 2px 0;color:#768390;font-size:.82rem;line-height:1.45}
@media(max-width:820px){.fresh-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fresh-head{align-items:flex-start;flex-direction:column}.fresh-change-store{align-self:flex-start}.fresh-store-copy small{white-space:normal}}
@media(max-width:480px){.fresh-section{padding:28px 0 34px}.fresh-grid{gap:10px}.fresh-card{min-height:132px;padding:14px;border-radius:17px}.fresh-card-icon{width:43px;height:43px;font-size:1.45rem}.fresh-card h3{font-size:.98rem}.fresh-store-card{padding:12px}.fresh-store-copy strong{white-space:normal}}


/* V66 · tarjeta Frescos sustituye al antiguo acceso PDF */
.brochure-card-fresh .brochure-visual{background:linear-gradient(145deg,#f3faf4 0%,#eef7f0 100%)}
.fresh-hero-visual{position:relative}
.fresh-hero-icon-grid{display:grid;grid-template-columns:repeat(2,44px);grid-template-rows:repeat(2,38px);gap:6px;align-items:center;justify-items:center;padding:7px 10px;border-radius:16px;background:#fff;border:1px solid #d8e8dc;box-shadow:0 8px 18px rgba(28,90,48,.10);font-size:1.45rem;line-height:1}
.fresh-hero-icon-grid span{display:grid;place-items:center;width:100%;height:100%;border-radius:9px;background:#f7faf8}
.brochure-card-fresh:hover{border-color:#bdd9c5}
.fresh-badge{background:#24833f!important;min-width:auto;padding:4px 7px}
#heroFreshLink{line-height:1.25}
@media(max-width:560px){.fresh-hero-icon-grid{grid-template-columns:repeat(2,38px);grid-template-rows:repeat(2,34px);font-size:1.25rem}}

/* V71 · precios específicos por tienda en ficha pública */
.modal-store-prices{margin:10px 0 4px;padding:10px 12px;border:1px solid #c9d9ec;border-radius:12px;background:#f4f8fd;color:#0b3566}
.modal-store-prices-title{font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}
.modal-store-price-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:6px 0;border-top:1px solid #dbe6f2}
.modal-store-price-row:first-of-type{border-top:0}
.modal-store-price-row span{font-size:.86rem;line-height:1.2}
.modal-store-price-row strong{white-space:nowrap;font-size:.95rem;color:#083a78}
