/* ============================================================================
   Pastelería La Casita Azul — sistema visual
   Paleta muestreada del logo real: azul empolvado + chocolate + dorado.
   ========================================================================== */

:root{
  /* Paleta reanclada el 20 ago 2026 a la carta de pantones oficial que
     entregó el cliente (Image y Logos/LOGO PANTONES.jpg), muestreada pixel
     a pixel: PANTONE 543 C (azul), 4625 C (café), 4525 C (dorado). Son los
     ÚNICOS tres colores de marca del sitio — nada de tonos oscurecidos o
     inventados aparte. Donde antes había una variante custom (turquesa,
     turquesa-osc, choco-cl, oro-osc) ahora se usa directo uno de estos tres,
     o el mismo color con transparencia (rgba) para un fondo/wash tenue —
     nunca un matiz distinto. Regla para dónde va cada uno: texto e iconos
     chicos sobre fondo claro usan --choco (el único de los tres con
     contraste suficiente — 15.28:1 sobre crema); --azul-marca y --oro van en
     fondos, botones, bordes, acentos y superficies grandes. */
  --azul-marca:    #A6C1DA;   /* PANTONE 543 C, muestreado con Medidor de Color Digital (sRGB) sobre LOGO PANTONES.jpg */
  --choco:         #37180C;   /* PANTONE 4625 C exacto — 15.28:1 sobre crema */
  --oro:           #BCC37B;   /* PANTONE 4525 C exacto */

  /* Neutros cálidos */
  --crema:         #FCF8F1;
  --crema-2:       #F5EDE0;
  --blanco:        #FFFFFF;
  --linea:         #E8DDCB;
  --texto:         #2C1F17;
  --texto-suave:   #6E5C50;

  /* Estado */
  --abierto:       #1E9E5A;
  --pendiente:     #9A6B12;

  --r-s:  10px;
  --r:    16px;
  --r-l:  24px;
  --sombra:    0 1px 3px rgba(55,24,12,.05), 0 6px 20px rgba(55,24,12,.06);
  --sombra-lg: 0 4px 12px rgba(55,24,12,.08), 0 18px 44px rgba(55,24,12,.10);
  --max: 1140px;
  --barra: 68px;

  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --sans:  -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{
  scroll-behavior:smooth;scroll-padding-top:76px;-webkit-text-size-adjust:100%;
  /* clip (no hidden) evita el desborde lateral sin romper position:sticky */
  overflow-x:clip;
}
body{
  font-family:var(--sans);background:var(--crema);color:var(--texto);
  line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip;
  padding-bottom:calc(var(--barra) + 26px + env(safe-area-inset-bottom));
}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
:focus-visible{outline:2.5px solid var(--azul-marca);outline-offset:3px;border-radius:4px}

/* Los fondos llegan al borde; solo el texto respeta el notch en horizontal. */
.wrap{
  max-width:var(--max);margin-inline:auto;
  padding-inline:max(20px, env(safe-area-inset-left)) max(20px, env(safe-area-inset-right));
}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
section{padding:46px 0}

h1,h2,h3{font-family:var(--serif);font-weight:700;letter-spacing:-.015em;line-height:1.15;color:var(--choco)}
h2{font-size:clamp(24px,5vw,34px)}
h3{font-size:18px}
.eyebrow{
  font-family:var(--sans);font-size:11.5px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--choco);margin-bottom:9px;
  display:flex;align-items:center;gap:8px
}
.eyebrow::before{
  content:"";display:inline-block;width:16px;height:3px;border-radius:2px;
  background:var(--azul-marca);flex:0 0 auto
}
.sec-head{margin-bottom:26px;max-width:62ch}
.sec-head p{color:var(--texto-suave);font-size:15.5px;margin-top:8px}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:14px 24px;border-radius:99px;font-size:15px;font-weight:650;
  transition:transform .15s ease, background .15s ease, box-shadow .15s ease;
  line-height:1.2
}
.btn:active{transform:scale(.98)}
.btn svg{width:18px;height:18px;flex:0 0 auto}
.btn-pri{background:var(--azul-marca);color:var(--choco);box-shadow:0 4px 14px rgba(166,193,218,.45)}
.btn-pri:hover{background:#85AACC}
.btn-pri svg{stroke:var(--choco) !important}
.btn-wa{background:#25D366;color:#08301A;box-shadow:0 4px 14px rgba(37,211,102,.3)}
.btn-wa:hover{background:#1FBE5B}
.btn-wa svg{fill:#08301A}
.btn-line{border:1.5px solid var(--linea);background:var(--blanco);color:var(--choco)}
.btn-line:hover{border-color:var(--azul-marca);background:rgba(166,193,218,.2)}
/* ---------- Header ---------- */
.top{
  position:sticky;top:10px;z-index:50;margin-inline:10px;border-radius:20px;
  background:rgba(255,255,255,.18);backdrop-filter:saturate(180%) blur(26px);
  -webkit-backdrop-filter:saturate(180%) blur(26px);
  border:1px solid rgba(255,255,255,.85);box-shadow:0 8px 26px rgba(55,24,12,.10);
  transition:box-shadow .2s, background .2s
}
.top.pegado{background:rgba(255,255,255,.3);box-shadow:0 10px 30px rgba(55,24,12,.14)}
.top .wrap{display:flex;align-items:center;gap:14px;height:58px}
@media(min-width:640px){ .top{margin-inline:20px} }
.marca{display:flex;align-items:center;gap:10px;margin-right:auto;min-width:0}
/* El logo trae esquinas blancas: el recorte circular lo asienta sobre la crema. */
.marca .sello{
  width:42px;height:42px;border-radius:50%;flex:0 0 auto;display:block;
  box-shadow:0 2px 8px rgba(55,24,12,.18)
}
.marca b{font-family:var(--serif);font-size:16.5px;color:var(--choco);white-space:nowrap}
.marca i{display:block;font-style:normal;font-size:10px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--choco);font-weight:700;line-height:1.3}
.top nav{display:none;gap:22px;font-size:14.5px;font-weight:550;color:var(--choco)}
.top nav a:hover{opacity:.65}
.top .btn{padding:9px 17px;font-size:13.5px}
@media(min-width:900px){ .top nav{display:flex} }

/* ---------- Hero ---------- */
.hero{background:var(--crema)}
/* padding-block, NUNCA el shorthand `padding`: este elemento comparte clase
   con .wrap y el shorthand borraría su padding lateral (bug real visto en
   Android, 31-jul-2026). */
.hero-in{padding-block:20px 40px}
.hero h1{font-size:clamp(31px,7.6vw,58px);max-width:14ch}
.hero .sub{font-size:clamp(15.5px,3.6vw,18.5px);color:var(--choco);opacity:.82;margin-top:14px;max-width:38ch}
.estrellas{color:var(--oro);letter-spacing:1.5px}

/* Galería del hero: carrusel deslizable, sin dependencias (scroll-snap nativo) */
.hero-galeria{position:relative;border-radius:var(--r-l);overflow:hidden;box-shadow:var(--sombra-lg);margin-bottom:24px}
.hero-galeria-track{
  display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  scrollbar-width:none
}
.hero-galeria-track::-webkit-scrollbar{display:none}
.hero-galeria-track img{
  flex:0 0 100%;width:100%;aspect-ratio:4/3;object-fit:cover;scroll-snap-align:start
}
.hero-galeria-dots{
  position:absolute;left:0;right:0;bottom:12px;z-index:2;
  display:flex;justify-content:center;gap:6px
}
.hero-galeria-dots button{
  width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.55);
  border:1px solid rgba(255,255,255,.7);padding:0;transition:width .2s, background .2s
}
.hero-galeria-dots button.activo{width:18px;border-radius:4px;background:#fff}

@media(min-width:820px){
  .hero-in{padding-block:48px 60px;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
  .hero-galeria{margin-bottom:0}
}

/* ---------- Buscador de sucursal ---------- */
.buscador{
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.85);border-radius:var(--r-l);
  backdrop-filter:saturate(180%) blur(30px);-webkit-backdrop-filter:saturate(180%) blur(30px);
  padding:20px;box-shadow:0 12px 34px rgba(55,24,12,.14);margin-top:26px;max-width:520px
}
.buscador h2{font-size:19px;margin-bottom:4px}
.buscador p{font-size:13.5px;color:var(--texto-suave);margin-bottom:14px}
.buscador .campos{display:flex;flex-direction:column;gap:9px}
.buscador select{
  font:inherit;font-size:15px;width:100%;padding:13px 14px;border-radius:var(--r-s);
  border:1.5px solid var(--linea);background:var(--crema);color:var(--texto);
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236E5C50' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;background-size:18px;
  padding-right:40px
}
.buscador select:focus{border-color:var(--azul-marca);outline:none}
.buscador .o{text-align:center;font-size:12.5px;color:var(--texto-suave);
  text-transform:uppercase;letter-spacing:.1em;margin:2px 0}
.buscador .btn{width:100%}
#geoAviso{font-size:13px;margin-top:10px;color:var(--texto-suave);display:none}
#geoAviso.ver{display:block}
#geoAviso.error{color:var(--pendiente)}

/* ---------- Franja de confianza ---------- */
.franja{background:var(--crema-2);color:var(--choco);padding:20px 0;border-block:1px solid var(--linea)}
.franja .grid{display:grid;grid-template-columns:repeat(4,1fr);text-align:center}
.franja .grid>div{padding-inline:4px;border-left:1px solid var(--linea)}
.franja .grid>div:first-child{border-left:none}
.franja .n{font-family:var(--serif);font-size:clamp(16px,4.6vw,36px);line-height:1;color:var(--choco)}
.franja .l{font-size:clamp(9.5px,2.4vw,12.5px);color:var(--texto-suave);margin-top:5px;letter-spacing:.02em}

/* ---------- Catálogo ---------- */
.cat{display:grid;grid-template-columns:repeat(auto-fill,minmax(224px,1fr));gap:18px}
.prod{
  background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r);
  overflow:hidden;box-shadow:var(--sombra);transition:transform .2s, box-shadow .2s
}
.prod:hover{transform:translateY(-3px);box-shadow:var(--sombra-lg)}
.prod img{aspect-ratio:4/3;object-fit:cover;width:100%}
.prod .txt{padding:14px 16px 17px}
.prod h3{font-size:16.5px;margin-bottom:4px}
.prod p{font-size:13.5px;color:var(--texto-suave);line-height:1.5}

/* ---------- Sucursales ---------- */
.muni{margin-bottom:30px}
.muni h3{
  font-size:15px;font-family:var(--sans);font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--choco);
  padding-bottom:9px;border-bottom:1.5px solid var(--linea);margin-bottom:15px;
  display:flex;align-items:baseline;gap:9px
}
.muni h3 em{font-style:normal;font-weight:500;color:var(--texto-suave);
  letter-spacing:0;text-transform:none;font-size:13px}
.sucs{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:14px}
.suc{
  display:flex;flex-direction:column;background:var(--blanco);border:1px solid var(--linea);
  border-radius:var(--r);padding:17px 18px;box-shadow:var(--sombra);
  transition:transform .18s, box-shadow .18s, border-color .18s
}
.suc:hover{transform:translateY(-2px);box-shadow:var(--sombra-lg);border-color:var(--azul-marca)}
.suc .cab{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.suc .cab h4{font-family:var(--serif);font-size:17.5px;font-weight:700;color:var(--choco)}
.suc .dir{font-size:13.3px;color:var(--texto-suave);line-height:1.5;flex:1}
.suc .pie{
  display:flex;align-items:center;gap:7px;margin-top:13px;padding-top:12px;
  border-top:1px solid var(--linea);font-size:13.5px;font-weight:600;color:var(--choco)
}
.suc .pie svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}
.suc .pie .flecha{margin-left:auto;transition:transform .18s}
.suc:hover .pie .flecha{transform:translateX(3px)}

/* Fila compacta — municipios de una sola sucursal, agrupados en
   "Otras ciudades". Sin dirección completa: la plaza alcanza para ubicarla y
   la dirección exacta vive en su propia página. */
.sucs-min{display:grid;grid-template-columns:repeat(auto-fill,minmax(276px,1fr));gap:10px}
.suc-min{
  display:flex;align-items:center;gap:11px;background:var(--blanco);
  border:1px solid var(--linea);border-radius:var(--r);padding:12px 15px;
  box-shadow:var(--sombra);transition:transform .18s, box-shadow .18s, border-color .18s
}
.suc-min:hover{transform:translateY(-2px);box-shadow:var(--sombra-lg);border-color:var(--azul-marca)}
.suc-min .txt{flex:1;min-width:0}
.suc-min .txt b{
  display:block;font-family:var(--serif);font-size:16.5px;font-weight:700;color:var(--choco)}
.suc-min .txt span{
  display:block;font-size:12.4px;color:var(--texto-suave);line-height:1.45;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.suc-min .tel{
  display:flex;align-items:center;gap:6px;flex:none;white-space:nowrap;
  font-size:13px;font-weight:600;color:var(--choco)}
.suc-min .tel svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.suc-min .flecha{
  width:15px;height:15px;flex:none;stroke:var(--choco);fill:none;stroke-width:2;
  transition:transform .18s}
.suc-min:hover .flecha{transform:translateX(3px)}
/* En pantallas angostas el teléfono compite con la plaza: baja a su propio
   renglón en lugar de aplastar el texto. */
@media(max-width:400px){
  .suc-min{flex-wrap:wrap}
  .suc-min .txt{flex:1 0 100%}
  .suc-min .tel{margin-top:2px}
  .suc-min .flecha{margin-left:auto}
}

/* ---------- Reseñas ---------- */
.resenas{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:15px}
.resena{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r);
  padding:19px;box-shadow:var(--sombra)}
.resena .cab{display:flex;align-items:center;gap:11px;margin-bottom:10px}
.resena .av{width:38px;height:38px;border-radius:50%;background:var(--azul-marca);
  color:var(--choco);display:grid;place-items:center;font-weight:700;font-size:16px}
.resena .nom{font-size:14.5px;font-weight:650;color:var(--choco)}
.resena .cuando{font-size:12px;color:var(--texto-suave)}
.resena p{font-size:14px;color:var(--texto-suave);line-height:1.6;margin-top:8px}

/* ---------- Página de sucursal ---------- */
.miga{font-size:13px;color:var(--texto-suave);padding-top:20px}
.miga a:hover{text-decoration:underline}
.miga span{opacity:.5;margin:0 6px}

.suc-hero{padding-block:14px 34px}
.suc-hero h1{font-size:clamp(27px,6.4vw,43px)}
.suc-hero .plaza{font-size:15.5px;color:var(--choco);font-weight:600;margin-top:7px}
.suc-hero .estado{
  display:inline-flex;align-items:center;gap:7px;margin-top:14px;
  background:var(--blanco);border:1px solid var(--linea);border-radius:99px;
  padding:6px 14px;font-size:13.5px;color:var(--texto-suave)
}
.suc-hero .estado i{width:8px;height:8px;border-radius:50%;background:var(--abierto);display:inline-block}
.suc-hero .estado.sin i{background:var(--pendiente)}

/* Datos + mapa lado a lado. No hay foto del local: sus sucursales están dentro
   de plazas comerciales y no tenemos ninguna imagen real. El mapa es el ancla
   visual honesta. */
.ficha{display:grid;gap:20px;grid-template-columns:1fr}
@media(min-width:880px){.ficha{grid-template-columns:1fr 1fr;align-items:stretch}}
.datos{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r-l);
  padding:22px;box-shadow:var(--sombra);display:flex;flex-direction:column}
.datos .acciones-suc{margin-top:auto;padding-top:18px}
.dato{display:flex;gap:13px;padding:13px 0;border-bottom:1px solid var(--linea)}
.dato:last-of-type{border-bottom:0}
.dato .ic{width:34px;height:34px;border-radius:9px;background:var(--azul-marca);
  display:grid;place-items:center;flex:0 0 auto}
.dato .ic svg{width:17px;height:17px;stroke:var(--choco);fill:none;stroke-width:1.9}
.dato .k{font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--texto-suave);font-weight:700;margin-bottom:2px}
.dato .v{font-size:14.5px;color:var(--texto);line-height:1.5}
.dato .v a:hover{text-decoration:underline}
.dato.pendiente .v{color:var(--pendiente)}
.acciones-suc{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px}
.acciones-suc .btn{width:100%;padding:13px 10px;font-size:14px}
.acciones-suc .btn:first-child{grid-column:1/-1}

.mapa{border-radius:var(--r-l);overflow:hidden;border:1px solid var(--linea);
  box-shadow:var(--sombra);background:var(--crema-2);min-height:340px;display:flex}
.mapa iframe{width:100%;min-height:340px;flex:1;border:0;display:block}

.otras{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:11px}
.otra{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r-s);
  padding:13px 15px;box-shadow:var(--sombra);transition:.18s}
.otra:hover{border-color:var(--azul-marca);transform:translateY(-2px)}
.otra b{font-family:var(--serif);font-size:15.5px;color:var(--choco);display:block}
.otra span{font-size:12.5px;color:var(--texto-suave)}

/* ---------- Footer ---------- */
footer{background:var(--choco);color:rgba(255,255,255,.76);padding:44px 0 34px;margin-top:28px}
footer h4{font-family:var(--serif);color:#fff;font-size:19px;margin-bottom:9px}
footer .sello-pie{
  width:88px;height:88px;border-radius:50%;margin-bottom:14px;
  box-shadow:0 3px 14px rgba(0,0,0,.24)
}
footer .cols{display:grid;gap:28px;grid-template-columns:1fr}
@media(min-width:760px){footer .cols{grid-template-columns:1.5fr 1fr 1fr}}
footer p,footer li{font-size:13.6px;line-height:1.72}
footer ul{list-style:none}
footer a:hover{color:#fff;text-decoration:underline}
footer .tit{font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--oro);font-weight:700;margin-bottom:10px}
.redes{display:flex;gap:10px;margin-top:14px}
.redes a{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.11);
  display:grid;place-items:center;transition:.18s}
.redes a:hover{background:var(--azul-marca)}
.redes a:hover svg{fill:var(--choco)}
.redes svg{width:19px;height:19px;fill:#fff}
.legal{border-top:1px solid rgba(255,255,255,.13);margin-top:30px;padding-top:18px;
  font-size:12px;display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between}
.legal a{text-decoration:underline;text-underline-offset:3px}

/* ---------- Aviso de privacidad (página de texto) ---------- */
.aviso{max-width:760px;padding-block:46px 64px}
.aviso h1{font-size:clamp(28px,6vw,40px);margin-bottom:22px}
.aviso h2{font-size:clamp(17px,3.6vw,20px);margin:30px 0 10px}
.aviso p,.aviso li{font-size:15.5px;line-height:1.7;color:var(--texto)}
.aviso p{margin-bottom:14px}
.aviso ul{margin:0 0 16px 22px}
.aviso li{margin-bottom:6px}
.aviso .volver{margin-top:34px}
.aviso .volver a{color:var(--choco);font-weight:650;text-decoration:underline;text-underline-offset:3px}

/* ---------- Barra fija: una sola pill "liquid glass" con 3 secciones ---------- */
.barra{
  position:fixed;left:0;right:0;
  bottom:calc(14px + env(safe-area-inset-bottom));z-index:60;
  width:fit-content;max-width:calc(100% - 28px);margin-inline:auto;
  display:flex;border-radius:999px;overflow:hidden;
  background:rgba(255,255,255,.18);backdrop-filter:saturate(180%) blur(26px);
  -webkit-backdrop-filter:saturate(180%) blur(26px);
  border:1px solid rgba(255,255,255,.85);box-shadow:0 8px 24px rgba(55,24,12,.16)
}
.barra a{
  flex:1 1 0;min-width:0;position:relative;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  height:var(--barra);padding-inline:20px;font-size:12px;font-weight:650;color:var(--choco);
  transition:background .15s
}
.barra a:active{background:rgba(55,24,12,.06)}
.barra a:not(:last-child)::after{
  content:"";position:absolute;right:0;top:22%;bottom:22%;width:1px;background:rgba(55,24,12,.14)
}
.barra a svg{width:21px;height:21px;stroke:var(--choco);fill:none;stroke-width:1.85}
.barra a.wa svg{fill:var(--choco);stroke:none}
.barra a.wa:active{background:rgba(55,24,12,.06)}
@media(min-width:900px){
  .barra{display:none}
  body{padding-bottom:0}
}

/* ---------- Notas internas (se quitan en producción) ---------- */
.cinta{
  background:repeating-linear-gradient(135deg,#2a2a2a,#2a2a2a 10px,#232323 10px,#232323 20px);
  color:#fff;font-size:11px;letter-spacing:.07em;text-transform:uppercase;
  text-align:center;padding:7px 14px;font-weight:650
}
.cinta a{text-decoration:underline;opacity:.85}
.notas{background:#232323;color:#D5D5D5;padding:34px 0 40px;font-size:13.4px}
.notas h3{color:#fff;font-size:17px;margin-bottom:11px}
.notas h4{color:#fff;font-size:13.5px;margin:18px 0 7px;font-family:var(--sans);
  letter-spacing:.05em;text-transform:uppercase}
.notas ul{margin-left:19px}
.notas li{margin-bottom:6px;line-height:1.6}
.notas b{color:#fff}
.notas code{background:#333;padding:1px 6px;border-radius:4px;font-size:12.3px}
.ok{color:#7DD6A0}.warn{color:#F2C976}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}
