
/* Presentación de las páginas públicas; administración conserva su distribución. */
.sitio-publico { --tinta:#493b48; --acento:#72518a; --borde:#e6dce9; background-color:#f5edf8; background-image:url('../img/fondo-flamitas-web.png'); background-size:cover; background-position:center; background-repeat:no-repeat; background-attachment:fixed; color:var(--tinta); line-height:1.65; }
.sitio-publico *, .sitio-publico *::before, .sitio-publico *::after { box-sizing:border-box; }
.sitio-publico h1,.sitio-publico h2 { font-family:'AmsterdamTwo',serif; font-weight:normal; }
.sitio-publico a:focus-visible,.sitio-publico button:focus-visible,.sitio-publico input:focus-visible,.sitio-publico summary:focus-visible { outline:3px solid var(--acento); outline-offset:4px; }
.sitio-publico .menu { background:#fcf9fcf5; border-bottom:1px solid var(--borde); padding:22px 0; }
.sitio-publico .header { padding:36px 24px 20px; min-height:0; }
.sitio-publico .header h1 { font-size:clamp(2rem,4vw,3.4rem); line-height:1.5; margin:0; }
.sitio-publico .header p { font-size:1rem; line-height:1.8; text-transform:none; letter-spacing:0; margin:12px 0; opacity:1; }
.sitio-publico .portada { min-height:380px; padding:48px 24px; background:transparent; }
.eyebrow { display:block; font:500 .72rem/1.6 'Montserrat',sans-serif; letter-spacing:.18em; text-transform:uppercase; color:#756080; }
.portada-acciones { display:flex; align-items:center; justify-content:center; gap:26px; flex-wrap:wrap; margin-top:24px; }
.boton-principal { display:inline-flex; gap:32px; align-items:center; padding:14px 26px; background:var(--acento); color:white; border-radius:8px; text-decoration:none; font-size:.9rem; }
.boton-principal:hover { background:#58396e; }
.enlace-suave { color:#634875; text-underline-offset:5px; font-size:.9rem; }
.sitio-publico .about { max-width:1100px; margin:80px auto; display:grid; grid-template-columns:1.3fr 1fr; padding:0; overflow:hidden; border:1px solid var(--borde); border-radius:20px; background:#fff!important; }
.sitio-publico .about-texto { padding:48px; text-align:left; }
.sitio-publico .about-texto h2 { font-size:2.1rem; line-height:1.5; margin:12px 0 18px; text-align:left; }
.sitio-publico .about-texto p { font-size:.95rem; line-height:1.85; }
.sitio-publico .about-imagen img { width:100%; height:100%; object-fit:cover; display:block; }
.guia-compra { max-width:1100px; margin:72px auto; padding:40px 24px; scroll-margin-top:100px; }
.guia-compra h2 { font-size:clamp(1.7rem,3vw,2.3rem); line-height:1.5; margin:12px 0 24px; }
.pasos-compra { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; text-align:left; margin-bottom:32px; }
.pasos-compra article { padding:24px; border-top:1px solid #cdb8d8; }
.paso-numero { color:var(--acento); font-size:.8rem; letter-spacing:.1em; }
.pasos-compra h3 { font-size:1rem; margin:14px 0 10px; }.pasos-compra p { font-size:.9rem; margin:0; }
.sitio-publico .gallery { max-width:1200px; padding:24px; margin:20px auto 60px; background:transparent!important; }
.sitio-publico .gallery h2 { font-size:2rem; line-height:1.5; margin:0 0 10px; }
.catalogo-intro { margin:0 0 36px; color:#725e74; font-size:.9rem; }
.sitio-publico .gallery-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.sitio-publico .gallery-grid .producto { display:flex; align-items:stretch; min-width:0; padding:12px; border:1px solid var(--borde); background:white; border-radius:14px; text-align:left; gap:10px; }
.sitio-publico .gallery-grid .producto img { width:100%; max-width:none; height:auto; aspect-ratio:1; object-fit:cover; border-radius:8px; background:#f4eef5; transform:none; box-shadow:none; }
.sitio-publico .producto:hover { transform:translateY(-3px); box-shadow:0 8px 24px #513f5810; }
.sitio-publico .producto h3 { font:500 1rem/1.5 'Montserrat',sans-serif; min-height:3em; margin:4px 0 0; overflow-wrap:anywhere; }
.sitio-publico .producto h4 { font:500 1.1rem/1.5 'Montserrat',sans-serif; margin:auto 0 0; }
.producto-detalle { font-size:.82rem; }.producto-detalle summary { cursor:pointer; color:#70567e; min-height:36px; padding:4px 0; }
.sitio-publico .producto p { font-size:.82rem; margin:0; line-height:1.6; overflow-wrap:anywhere; white-space:pre-line; }
.sitio-publico .producto input { width:100%; min-width:0; padding:12px 4px; border-radius:7px; background:var(--acento); font-size:.8rem; margin:0; min-height:44px; }
.sitio-publico .producto input:disabled { background:#ebe5ee; color:#665b6b; opacity:1; cursor:not-allowed; }
.catalogo-cargando { grid-column:1/-1; padding:48px 16px; background:#f4eef8; border-radius:12px; }
.sitio-publico .formulario-acceso,.sitio-publico .cuenta-bloque { background:white; border:1px solid var(--borde); box-shadow:0 8px 30px #50335808; }
.sitio-publico input[type=submit],.sitio-publico #btnFinalizarPedido { background:var(--acento); color:white; border-radius:8px; min-height:44px; }
.sitio-publico .footer { background:#f1eaf4; padding:40px max(24px,calc((100vw - 1100px)/2)); text-align:left; display:grid; grid-template-columns:1fr auto; gap:20px; }
.footer-enlaces { display:flex; flex-wrap:wrap; align-items:start; gap:24px; }.footer-enlaces a { color:#614b6e; text-underline-offset:4px; }.footer-copy { grid-column:1/-1; border-top:1px solid #ddcfe3; padding-top:20px; font-size:.75rem; }
.sitio-publico #avisoConexion { padding:8px 16px; background:#f3edf7; }.sitio-publico #avisoConexion p { font-size:.8rem; }
#confirmacionCompra { position:fixed; left:50%; bottom:24px; transform:translateX(-50%); z-index:10002; width:max-content; max-width:calc(100vw - 32px); padding:14px 22px; background:#493b48; color:white; border-radius:10px; box-shadow:0 6px 24px #0002; font:500 .9rem/1.6 'Montserrat',sans-serif; }
.sitio-publico:has(.whatsapp-flotante) { padding-bottom:0; }.sitio-publico .footer { padding-bottom:150px; }
@media(max-width:1000px) { .sitio-publico .gallery-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.sitio-publico .about { margin:48px 24px; }.sitio-publico .about-texto { padding:32px; } }
@media(max-width:768px) { .sitio-publico .menu { padding:12px 8px; }.sitio-publico .portada { min-height:320px; padding:32px 20px; }.sitio-publico .about { grid-template-columns:1fr; margin:40px 16px; }.sitio-publico .about-imagen { max-height:480px; overflow:hidden; }.sitio-publico .about-imagen img { height:auto; }.pasos-compra { grid-template-columns:1fr; gap:8px; }.guia-compra { margin:32px auto; padding:24px 16px; }.guia-compra h2 { margin-bottom:18px; }.sitio-publico .gallery { padding:16px; margin:16px auto 40px; }.sitio-publico .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.sitio-publico .gallery-grid .producto { padding:9px; }.sitio-publico .producto h3 { font-size:.88rem; }.sitio-publico .producto input { font-size:.72rem; }.sitio-publico .footer { grid-template-columns:1fr; }.sitio-publico .header { padding:24px 16px 16px; }.sitio-publico .header p { font-size:.9rem; } }
@media(max-width:360px) { .sitio-publico .gallery-grid { grid-template-columns:1fr; }.sitio-publico .header h1 { font-size:1.8rem; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.sitio-publico *, .sitio-publico *::before,.sitio-publico *::after { animation:none!important; transition:none!important; } }

@media(max-width:768px) { .sitio-publico { background-attachment:scroll; } }

/* Títulos compactos también en acceso, cuenta y carrito. */
.sitio-publico .formulario-acceso h2,.sitio-publico .cuenta-bloque h2,.sitio-publico .panel-carrito-contenido h2,.sitio-publico .modal-latitas-contenido h2 { font-size:1.8rem; line-height:1.5; margin:0 0 18px; }

.datos-transferencia { padding:20px; background:#f6eff9; border:1px solid #d9c8e3; border-radius:12px; text-align:left; margin:16px 0; min-width:0; }
.datos-transferencia h3 { font:500 1rem/1.5 'Montserrat',sans-serif; }.datos-transferencia p { font-size:.85rem; line-height:1.6; }.datos-transferencia dl { margin:16px 0; }.datos-transferencia dt { font-size:.8rem; color:#725a7f; margin-top:10px; }.datos-transferencia dd { margin:0; overflow-wrap:anywhere; user-select:text; }
.transferencia-acciones { display:flex; flex-wrap:wrap; gap:10px; }.datos-transferencia button,.datos-transferencia a { padding:10px 14px; min-height:44px; border:1px solid #72518a; border-radius:8px; background:white; color:#604176; font:inherit; font-size:.85rem; cursor:pointer; }.datos-transferencia a { display:inline-block; margin-top:12px; }.datos-transferencia label { display:block; margin-bottom:8px; }.datos-transferencia select { width:100%; min-height:44px; font:inherit; font-size:16px; padding:10px; border-radius:8px; }
.transferencia-pedido-guardado { max-width:720px; margin:24px auto; padding:0 16px; }

/* Mi cuenta: formularios de datos y contraseña con el mismo estilo que acceso. */
.form-cuenta { display:flex; flex-direction:column; gap:10px; margin-top:24px; padding-top:20px; border-top:1px solid var(--borde); }
.form-cuenta h3 { font:500 1.05rem/1.5 'Montserrat',sans-serif; margin:0 0 4px; }
.form-cuenta label { font-size:.9rem; font-weight:500; }
.form-cuenta input:not([type=submit]) { box-sizing:border-box; width:100%; min-height:44px; border:1px solid rgba(74,59,53,.18); border-radius:14px; padding:12px 14px; font-family:'Montserrat',sans-serif; font-size:16px; }
.form-cuenta input[type=submit] { border:none; margin-top:8px; cursor:pointer; }
.ayuda-formulario { font-size:.8rem; line-height:1.5; color:#6b5a70; margin:0; text-align:left!important; }
.cuenta-solo-datos { grid-template-columns:minmax(0,560px); justify-content:center; }

/* Campo de contraseña con botón de ojo: el botón queda dentro del campo y no lo ensancha. */
.campo-password { position:relative; display:block; width:100%; }
.campo-password > input[type] { padding-right:52px; }
.btn-mostrar-password { position:absolute; top:50%; right:2px; transform:translateY(-50%); width:44px; height:44px; padding:0; margin:0; display:grid; place-items:center; border:0; border-radius:12px; background:transparent; color:var(--acento,#72518a); cursor:pointer; }
.btn-mostrar-password:hover { background:#f3edf7; }
.sitio-publico .btn-mostrar-password:focus-visible { outline:2px solid var(--acento); outline-offset:-2px; }
.btn-mostrar-password svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
