/* La huerta de Valdelasfuentes — estilo sobrio: verde de la tienda, mucho aire, fotografía grande */
@import url("https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wdth,wght@12..96,75..100,200..800&family=Space+Mono:wght@400;700&display=swap");

:root{
  --paper:#F5F6F2;--white:#fff;--ink:#15221B;--muted:#5C6A62;--line:#DDE2DA;
  --forest:#0F3D2E;--forest-2:#17543F;--lime:#C8F23A;--tomato:#D2461F;
  --tint:#EAF3DA;--r:16px;
  --gut:max(5vw,calc((100vw - 1180px) / 2));
  --font:'Hanken Grotesk',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{font:400 1.0625rem/1.6 var(--font);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font);font-weight:700;line-height:1.08;letter-spacing:-.03em}
a{color:var(--forest)}
img{max-width:100%;display:block}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--forest-2);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Cabecera ---------- */
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:1.5rem;padding:.8rem var(--gut);
  background:rgba(255,255,255,.88);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid var(--line)}
.logo{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--forest)}
.logo img{height:3.2rem;width:auto;flex:none}
.logo-text{display:flex;flex-direction:column;line-height:1.05;font-weight:700;font-size:1.4rem;letter-spacing:-.02em}
.logo-text small{font-weight:500;font-size:.95rem;color:var(--muted);letter-spacing:0}
.top nav{margin-left:auto;display:flex;gap:1.8rem}
.top nav a{color:var(--muted);text-decoration:none;font-weight:500;font-size:.95rem;padding:.3rem 0;border-bottom:2px solid transparent;transition:color .15s}
.top nav a:hover{color:var(--ink)}
.top nav a[aria-current=page]{color:var(--ink);border-color:var(--forest)}
.acct{display:flex;gap:.5rem;align-items:center}
.cart-btn{font:600 .88rem var(--font);background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:99px;padding:.45rem 1rem;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;transition:background .15s,border-color .15s}
a.cart-btn{display:inline-flex}
.cart-btn:hover{border-color:var(--ink)}
.cart-btn b{background:var(--forest);color:#fff;border-radius:99px;padding:0 .5rem;margin-left:.45rem;font-size:.78rem;line-height:1.5}
.login-btn,#openCart{background:var(--forest);color:#fff;border-color:var(--forest)}
.login-btn:hover,#openCart:hover{background:var(--forest-2);border-color:var(--forest-2)}
#openCart b{background:var(--lime);color:var(--ink)}
.locbar{background:var(--white);border-bottom:1px solid var(--line);padding:.55rem var(--gut);font-weight:500;font-size:.92rem;color:var(--muted)}
.locbar:empty{display:none}
.locbar.bad{background:#FBEAE4;color:var(--tomato)}
.locbar a{color:inherit;font-weight:600;margin-left:.6rem}

/* ---------- Menú de la cuenta ---------- */
.profile{position:relative}
.avatar{display:grid;place-items:center;width:2.3rem;height:2.3rem;border-radius:50%;border:0;background:var(--forest);color:#fff;font:700 1rem var(--font);cursor:pointer;transition:background .15s,box-shadow .15s}
.avatar:hover,.avatar[aria-expanded=true]{background:var(--forest-2);box-shadow:0 0 0 3px rgba(15,61,46,.18)}
.avatar.big{width:2.8rem;height:2.8rem;font-size:1.15rem;flex:none;cursor:default}
.menu{position:absolute;right:0;top:calc(100% + .6rem);width:min(300px,86vw);background:var(--white);border:1px solid var(--line);border-radius:18px;box-shadow:0 22px 60px rgba(10,30,22,.2);padding:.5rem;z-index:50;animation:zoom .15s ease}
.menu-head{display:flex;gap:.8rem;align-items:center;padding:.8rem .7rem 1rem}
.menu-head div{min-width:0}
.menu-head b{display:block;font-size:1.05rem;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.menu-head small{display:block;color:var(--muted);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.menu-pts{display:flex;justify-content:space-between;align-items:center;margin:0 .3rem .4rem;padding:.7rem .9rem;background:var(--tint);border-radius:12px;font-weight:500;font-size:.95rem}
.menu-pts b{font:700 1.3rem var(--font);color:var(--forest);letter-spacing:-.03em}
.menu a,.menu button{display:block;width:100%;text-align:left;font:500 .98rem var(--font);color:var(--ink);text-decoration:none;background:none;border:0;border-radius:10px;padding:.65rem .9rem;cursor:pointer}
.menu a:hover,.menu button:hover{background:var(--paper)}
.menu a small{display:block;color:var(--muted);font-size:.82rem;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.menu #adminLink{font-weight:600;color:var(--forest)}
.menu #logout{margin-top:.3rem;border-top:1px solid var(--line);border-radius:0 0 10px 10px;padding-top:.8rem;color:var(--tomato)}

/* ---------- Botones y campos ---------- */
.btn{font:600 1rem var(--font);background:var(--forest);color:#fff;border:1px solid var(--forest);border-radius:99px;padding:.8rem 1.6rem;cursor:pointer;text-decoration:none;display:inline-block;text-align:center;transition:background .15s,border-color .15s,color .15s}
.btn:hover{background:var(--forest-2);border-color:var(--forest-2)}
.btn.lime{background:var(--lime);color:var(--ink);border-color:var(--lime)}
.btn.lime:hover{background:#d6f65f;border-color:#d6f65f}
.btn.ghost{background:transparent;color:var(--forest);border-color:var(--forest)}
.btn.ghost:hover{background:var(--forest);color:#fff}
.btn:disabled{opacity:.4;cursor:not-allowed}
input,select{width:100%;font:inherit;padding:.7rem .85rem;border:1px solid #C7CEC4;border-radius:10px;background:var(--white);color:var(--ink);transition:border-color .15s,box-shadow .15s}
input:focus,select:focus{outline:none;border-color:var(--forest);box-shadow:0 0 0 3px rgba(15,61,46,.15)}
label{font-weight:600;font-size:.92rem}
.row{display:flex;gap:.6rem;flex-wrap:wrap}
.result{margin-top:.8rem;font-weight:500;min-height:1.4em}
.result.ok{color:var(--forest)}.result.bad{color:var(--tomato)}

/* ---------- Inicio: portada ---------- */
.hero{position:relative;display:flex;align-items:flex-end;min-height:min(86vh,780px);padding:6rem var(--gut) 7rem;color:#fff;
  background:
    linear-gradient(180deg,rgba(10,38,28,.15) 0%,rgba(10,38,28,.82) 100%),
    linear-gradient(100deg,rgba(10,38,28,.7) 20%,rgba(10,38,28,0) 75%),
    url(img/tienda.jpg) center/cover no-repeat,
    radial-gradient(120% 90% at 85% 10%,var(--forest-2),var(--forest) 60%)}
.hero-text{max-width:46rem;animation:enter .8s cubic-bezier(.2,.7,.2,1) both}
@keyframes enter{from{opacity:0;transform:translateY(14px)}}
.hero h1{font-size:clamp(2.7rem,7vw,5.6rem);font-weight:700;letter-spacing:-.04em;line-height:1;margin-bottom:1.3rem}
.hero-text>p{font-size:clamp(1.05rem,2vw,1.3rem);max-width:34rem;color:rgba(255,255,255,.88);margin-bottom:2rem}
.hero-cta{display:flex;gap:.7rem;flex-wrap:wrap}
.hero .btn.ghost{color:#fff;border-color:rgba(255,255,255,.6)}
.hero .btn.ghost:hover{background:#fff;color:var(--forest);border-color:#fff}

/* comprobar si llegamos */
.checker{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1.5fr auto;gap:1rem 2rem;align-items:center;
  width:min(1180px,90vw);margin:-3.5rem auto 0;padding:1.5rem 1.8rem;background:var(--white);border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 50px rgba(15,61,46,.14)}
.checker h2{font-size:1.4rem;margin-bottom:.15rem}
.checker p{color:var(--muted);font-size:.95rem}
.ck-field{position:relative}
.checker .result{grid-column:1/-1;margin-top:0;min-height:0}
.checker .result:empty{display:none}
.sugg{list-style:none;padding:0;position:absolute;left:0;right:0;top:calc(100% + .3rem);z-index:5;border-radius:12px;overflow:hidden;background:var(--white)}
.sugg:not(:empty){border:1px solid var(--line);box-shadow:0 14px 34px rgba(15,61,46,.16)}
.sugg button{width:100%;text-align:left;font:inherit;font-size:.95rem;padding:.65rem .9rem;border:0;border-bottom:1px solid var(--line);background:var(--white);cursor:pointer}
.sugg button:hover{background:var(--tint)}

/* bloques del inicio */
.block{padding:6rem var(--gut)}
.block h2{font-size:clamp(2rem,4.4vw,3.2rem);letter-spacing:-.035em}
.about{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.about.nophoto{grid-template-columns:minmax(0,46rem)}
.about.nophoto .about-photo{display:none}
.about-photo{aspect-ratio:4/5;border-radius:24px;overflow:hidden;background:var(--tint)}
.about-photo img{width:100%;height:100%;object-fit:cover}
.about-text p{margin-top:1.3rem;color:var(--muted);font-size:1.15rem;max-width:34rem}
.about-text .btn{margin-top:2rem}

.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem;padding:0 var(--gut) 6rem}
.facts>div{border-top:1px solid var(--ink);padding-top:1.2rem}
.facts h3{font-size:1.3rem;margin-bottom:.5rem}
.facts p{color:var(--muted)}

.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:0 var(--gut) 6rem}
.gallery[hidden]{display:none}
.gallery figure{aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;background:var(--tint)}
.gallery img{width:100%;height:100%;object-fit:cover}

.cats{background:var(--white);border-block:1px solid var(--line)}
.cats h2{margin-bottom:2.5rem}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem}
.tile{display:flex;flex-direction:column;justify-content:space-between;gap:2.5rem;min-height:150px;padding:1.3rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);text-decoration:none;color:var(--ink);font-weight:700;font-size:1.3rem;letter-spacing:-.02em;transition:background .15s,border-color .15s}
.tile small{font-weight:400;font-size:.9rem;color:var(--muted);letter-spacing:0}
.tile:hover{background:var(--forest);border-color:var(--forest);color:#fff}
.tile:hover small{color:rgba(255,255,255,.7)}

.promo{display:flex;gap:2rem;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:6rem var(--gut) 0;padding:3rem clamp(1.5rem,5vw,4rem);background:var(--forest);color:#fff;border-radius:28px}
.promo h2{font-size:clamp(1.8rem,4vw,2.8rem);max-width:22ch}
.promo p{margin-top:.8rem;color:rgba(255,255,255,.78);max-width:36rem}
.promo b{color:var(--lime);font-weight:700}

/* ---------- Ven a vernos ---------- */
.visit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(2rem,6vw,5rem);align-items:stretch}
.visit h2{margin-bottom:2rem}
.vlist{list-style:none;padding:0;display:grid;gap:1.3rem}
.vlist li{display:grid;grid-template-columns:1.5rem 1fr;gap:.9rem;align-items:start}
.vlist svg{width:1.5rem;height:1.5rem;margin-top:.15rem;color:var(--forest)}
.vlist b{display:block;font-weight:600}
.vlist span,.vlist a{color:var(--muted);text-decoration:none}
.vlist a:hover{color:var(--forest);text-decoration:underline}
.social{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:2.2rem}
.social a{display:inline-flex;align-items:center;gap:.6rem;padding:.6rem 1.1rem .6rem .9rem;border:1px solid var(--line);border-radius:99px;background:var(--white);color:var(--ink);text-decoration:none;font-weight:600;font-size:.95rem;transition:border-color .15s,background .15s}
.social a:hover{border-color:var(--forest);background:var(--tint)}
.social svg{width:1.25rem;height:1.25rem}
.map{width:100%;min-height:380px;height:100%;border:0;border-radius:24px;background:var(--tint)}

/* ---------- Productos ---------- */
.shop,.contact{padding:4rem var(--gut)}
.shop h1,.contact h1{font-size:clamp(2.2rem,5vw,3.6rem);letter-spacing:-.04em;margin-bottom:1.5rem}
.shop h2{font-size:clamp(1.5rem,3vw,2rem);margin:2.5rem 0 1rem}
.tools{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;margin-bottom:1rem}
.tools input{max-width:300px}
.chips{display:flex;gap:.5rem;flex-wrap:wrap}
.chip{font:500 .92rem var(--font);border:1px solid var(--line);background:var(--white);border-radius:99px;padding:.4rem 1rem;cursor:pointer;color:var(--ink);transition:border-color .15s}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed=true]{background:var(--forest);border-color:var(--forest);color:#fff}
.count{margin-bottom:1.2rem;color:var(--muted);font-size:.95rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1.2rem}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:.8rem .8rem 1.1rem;display:flex;flex-direction:column;gap:.35rem;transition:border-color .15s}
.card:hover{border-color:#B9C2B5}
.card .pic{position:relative;height:150px;border-radius:12px;background:var(--tint);display:grid;place-items:center;font-size:3.6rem;line-height:1;overflow:hidden;margin-bottom:.5rem}
.card .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.card>*:not(.pic){margin-inline:.3rem}
.card h3{font-size:1.15rem;letter-spacing:-.02em}
.price{font-weight:700;font-size:1.1rem}.price small{font-weight:400;color:var(--muted)}
.info{font-size:.9rem;color:var(--muted)}
.tag{align-self:flex-start;font-size:.76rem;background:var(--tint);color:var(--forest);border-radius:99px;padding:.1rem .65rem;font-weight:600}
.buy{display:flex;gap:.4rem;margin-top:auto;padding-top:.6rem;flex-wrap:wrap}
.buy select{width:auto;padding:.4rem .5rem;font-weight:600;font-size:.9rem}
.btn.add{padding:.45rem 1rem;font-size:.88rem}
.incart{min-height:1.2em;font-weight:500;color:var(--forest);font-size:.88rem}
.qty{display:flex;align-items:center;gap:.5rem}

/* ---------- Ofertas ---------- */
.balance{display:grid;grid-template-columns:auto auto 1fr;align-items:center;background:var(--forest);color:#fff;border-radius:24px;padding:1.6rem 0}
.balance.out{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:space-between;padding:1.6rem 2rem}
.bal-cell{display:grid;gap:.2rem;padding:0 2.4rem}
.bal-cell+.bal-cell{border-left:1px solid rgba(255,255,255,.18)}
.bal-cell span{font-size:.9rem;color:rgba(255,255,255,.72)}
.balance b{font:700 3.2rem/1 var(--font);letter-spacing:-.04em;color:var(--lime)}
.bal-note{margin:0;padding:0 2.4rem;border-left:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.78);font-size:.95rem;line-height:1.5}
@media(max-width:720px){.balance{grid-template-columns:1fr 1fr;row-gap:1.2rem;padding:1.4rem 0}.bal-cell{padding:0 1.4rem}.bal-note{grid-column:1/-1;border-left:0;border-top:1px solid rgba(255,255,255,.18);padding:1rem 1.4rem 0}}
.tickets{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.2rem;margin:1.5rem 0}
.ticket{display:grid;grid-template-columns:1fr 150px;background:var(--white);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.ticket>div{padding:1.3rem}
.ticket h3{font-size:1.3rem;margin-bottom:.2rem}
.ticket p{color:var(--muted);font-size:.95rem}
.ticket .cut{border-left:1px dashed #B9C2B5;background:var(--paper);display:grid;gap:.3rem;place-items:center;text-align:center;align-content:center}
.cut strong{font:700 2.2rem var(--font);letter-spacing:-.04em;color:var(--forest)}
.cut span{font-size:.88rem;color:var(--muted)}
.cut .btn{padding:.4rem 1rem;font-size:.85rem;margin-top:.3rem}
.bar{height:6px;border-radius:99px;background:var(--line);overflow:hidden;margin:.9rem 0 .4rem}
.bar i{display:block;height:100%;background:var(--forest);transition:width .4s}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2rem;list-style:none;padding:0;margin-top:3rem}
.steps li{border-top:1px solid var(--ink);padding-top:1rem}
.steps h3{font-size:1.2rem;margin-bottom:.4rem}
.steps p{color:var(--muted)}

/* ---------- Contacto ---------- */
.contact{display:grid;grid-template-columns:1fr 1.3fr;gap:3rem}
.clist{list-style:none;padding:0;display:grid;gap:1rem}
.clist a{color:var(--forest)}
.contact iframe{width:100%;min-height:360px;border:0;border-radius:24px}
main{min-height:60vh}

/* ---------- Pie ---------- */
footer{background:var(--forest);color:rgba(255,255,255,.75);font-size:.95rem;margin-top:6rem}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1.2fr;gap:3rem;padding:4rem var(--gut) 3rem}
.foot h4{color:#fff;font-size:1rem;letter-spacing:-.01em;margin-bottom:1rem;font-weight:600}
.foot p{max-width:26ch}
.foot .flogo{display:block;color:#fff;font-size:1.3rem;font-weight:700;letter-spacing:-.03em;margin-bottom:.8rem}
.foot ul{list-style:none;padding:0;display:grid;gap:.6rem}
.foot a{color:rgba(255,255,255,.75);text-decoration:none}
.foot a:hover{color:#fff;text-decoration:underline}
.foot .social{margin-top:1.2rem}
.foot .social a{background:transparent;border-color:rgba(255,255,255,.25);color:#fff}
.foot .social a:hover{background:rgba(255,255,255,.1);border-color:#fff;text-decoration:none}
.legal{padding:1.2rem var(--gut);border-top:1px solid rgba(255,255,255,.15);font-size:.85rem;color:rgba(255,255,255,.55)}
footer:not(:has(.foot)){text-align:center;padding:1.5rem}

/* ---------- Cesta lateral ---------- */
.veil{position:fixed;inset:0;background:rgba(10,30,22,.5);opacity:0;pointer-events:none;transition:opacity .2s;z-index:30}
.veil.on{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(460px,100%);background:var(--white);z-index:40;transform:translateX(100%);visibility:hidden;transition:transform .28s cubic-bezier(.2,.7,.2,1),visibility .28s;display:flex;flex-direction:column;overflow:hidden}
.drawer.on{transform:none;visibility:visible;box-shadow:-20px 0 60px rgba(10,30,22,.2)}
.drawer-head{display:flex;justify-content:space-between;align-items:center;padding:1.2rem 1.4rem;border-bottom:1px solid var(--line)}
.drawer-head h2{font-size:1.5rem}
.drawer-head button{width:2.2rem;height:2.2rem;border-radius:50%;border:1px solid var(--line);background:var(--white);font-size:1rem;cursor:pointer;color:var(--ink)}
.drawer-head button:hover{border-color:var(--ink)}
.drawer-body{flex:1;overflow:auto;padding:1rem 1.4rem}
#items{list-style:none;padding:0}
#items li{display:grid;grid-template-columns:auto 1fr auto;gap:.9rem;align-items:center;padding:.85rem 0;border-bottom:1px solid var(--line)}
.ie{font-size:1.5rem;width:2.8rem;height:2.8rem;display:grid;place-items:center;border-radius:12px;background:var(--tint)}
.im b,.ip b{display:block;font-weight:600}
.im small{color:var(--muted)}
.ip{text-align:right}
#items button{border:0;background:none;color:var(--muted);cursor:pointer;font:500 .82rem var(--font);text-decoration:underline;padding:0}
#items button:hover{color:var(--tomato)}
.empty{text-align:center;padding:3rem 1rem;color:var(--muted)}
.empty span{display:none}
.cpbox{border:1px solid var(--line);border-radius:12px;padding:.9rem;margin-top:1rem;background:var(--paper)}
.cpbox select{margin-top:.5rem}
.cp{font-weight:600}
.drawer-foot{padding:1.2rem 1.4rem 1.4rem;background:var(--forest);color:#fff}
.sum p{display:flex;justify-content:space-between;padding:.15rem 0}
.sum .total{font-size:1.4rem;font-weight:700;border-top:1px solid rgba(255,255,255,.25);margin-top:.4rem;padding-top:.6rem;color:var(--lime)}
.drawer-foot .result{margin:.6rem 0 0;min-height:0;font-size:.92rem;color:rgba(255,255,255,.85)}
.drawer-foot .result.ok,.drawer-foot a{color:var(--lime)}
.drawer-foot .result.bad{color:#FFC1B1}
.drawer-foot .btn{margin-top:.9rem;width:100%;background:var(--lime);color:var(--ink);border-color:var(--lime)}
.drawer-foot .btn:disabled{opacity:.35}

/* ---------- Ventanas ---------- */
dialog{margin:auto;max-height:92vh;overflow:auto;border:0;border-radius:24px;padding:2rem;width:min(430px,92vw);background:var(--white);color:var(--ink);box-shadow:0 30px 80px rgba(10,30,22,.35)}
dialog::backdrop{background:rgba(10,30,22,.55)}
dialog[open]{animation:zoom .22s ease}
@keyframes zoom{from{opacity:0;transform:scale(.97) translateY(8px)}}
dialog h2{font-size:1.7rem;margin-bottom:.5rem}
dialog label{display:block;margin:.9rem 0 .3rem}
dialog .btn{margin-top:1.1rem;width:100%}
dialog .btn.lime{background:var(--forest);border-color:var(--forest);color:#fff}
dialog .btn.ghost{background:transparent;color:var(--forest)}
dialog .x{position:absolute;top:.9rem;right:1rem;width:2.1rem;height:2.1rem;border-radius:50%;border:1px solid var(--line);background:var(--white);font-size:.95rem;cursor:pointer;color:var(--ink)}
dialog .links{margin-top:1rem;font-size:.95rem}
.msg{color:var(--tomato);font-weight:500;margin-top:.6rem;min-height:1.2em}
.big b{font:700 3.4rem var(--font);letter-spacing:-.04em;color:var(--forest)}
.how{font-size:.95rem;margin:.6rem 0;color:var(--muted)}

#coDlg{width:min(940px,94vw);padding:0}
#coDlg .x{z-index:2}
.co{display:grid;grid-template-columns:1.25fr 1fr}
.co-main{padding:2.2rem}
.co-main h2{font-size:2rem}
.co-sub{color:var(--muted)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
.fgrid .wide{grid-column:1/-1}
.pay{border:0;padding:0;margin-top:1.4rem}
.pay legend{font-weight:600;margin-bottom:.6rem}
.pay legend small{font-weight:400;color:var(--muted)}
.paytiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem}
.paytiles .ptile{position:relative;display:grid;align-content:start;gap:.15rem;margin:0;padding:1rem 1rem 1rem;text-align:left;background:var(--white);border:1px solid #C7CEC4;border-radius:14px;cursor:pointer;transition:border-color .15s,background .15s}
.ptile:hover{border-color:var(--forest)}
.ptile input{position:absolute;opacity:0;pointer-events:none}
.ptile .pe{display:none}
.ptile b{font-weight:600;padding-right:1.6rem}
.ptile small{font-weight:400;color:var(--muted);font-size:.85rem}
.ptile:has(input:checked){background:var(--tint);border-color:var(--forest);box-shadow:0 0 0 1px var(--forest)}
.ptile:has(input:checked)::after{content:'✓';position:absolute;top:.8rem;right:.8rem;width:1.3rem;height:1.3rem;display:grid;place-items:center;border-radius:50%;background:var(--forest);color:#fff;font-size:.78rem;font-weight:700}
.ptile:has(input:focus-visible){outline:3px solid var(--forest-2);outline-offset:2px}
.co-side{background:var(--forest);color:#fff;padding:2.2rem 1.8rem;display:flex;flex-direction:column;border-radius:0 24px 24px 0}
.co-side h3{font-size:1.4rem;color:#fff;margin-bottom:1rem}
#coItems{list-style:none;padding:0;flex:1;display:grid;gap:.5rem;align-content:start;margin-bottom:1rem}
#coItems li{display:flex;justify-content:space-between;gap:.6rem;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:.5rem;font-size:.95rem}
.sumline{display:flex;justify-content:space-between;font-size:1.4rem;font-weight:700;margin-top:.8rem}
.co-side .sumline b{color:var(--lime)}
.co-side .msg{color:#FFC1B1}
.co-side .btn{margin-top:1rem}

/* ---------- Mis pedidos y entrega ---------- */
.stats{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.stats div{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:.9rem 1.3rem;min-width:150px;color:var(--muted);font-size:.92rem}
.stats b{display:block;font:700 1.9rem var(--font);letter-spacing:-.03em;color:var(--forest)}
.orders{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.2rem;margin-bottom:1rem}
.order{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:1.3rem;display:flex;flex-direction:column;gap:.6rem}
.order.live{border-color:var(--forest);box-shadow:0 0 0 1px var(--forest)}
.order header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.order h3{font-size:1.3rem}
.order .when{font-size:.9rem;color:var(--muted)}
.order ul{list-style:none;padding:.6rem 0;font-size:.95rem;border-block:1px solid var(--line)}
.order ul li{display:flex;justify-content:space-between;gap:.5rem}
.order .money{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.3rem;font-weight:600}
.order .eta{background:var(--tint);border-radius:12px;padding:.7rem .9rem;font-weight:500}
.order .eta .btn{display:inline-block;margin:.5rem 0 0;font-size:.9rem;padding:.5rem 1.1rem}
.badge{font:600 .78rem var(--font);border-radius:99px;padding:.2rem .75rem;white-space:nowrap}
.badge.pendiente{background:var(--tint);color:var(--forest)}
.badge.pendiente_pago{background:#FFF1CC;color:#7A5B00}
.badge.entregado{background:var(--forest);color:#fff}
.badge.cancelado{background:#FBE3DC;color:var(--tomato)}
.shop.deliver{width:min(460px,92vw);margin:0 auto;padding:4rem 0;text-align:center}
.deliver label{display:block;text-align:left;margin:1rem 0 .3rem}
.deliver .btn{width:100%;margin-top:1rem}

/* ---------- Administración ---------- */
.admin .lead{color:var(--muted);margin:-.6rem 0 1rem}
.gate{padding:2rem;background:var(--white);border:1px solid var(--line);border-radius:var(--r);display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap}
.admin .tools .btn{margin-left:auto;padding:.6rem 1.3rem}
.alist{display:grid;gap:.6rem}
.arow{display:grid;grid-template-columns:minmax(150px,1.6fr) minmax(120px,1fr) minmax(190px,auto) auto auto;gap:.6rem 1rem;align-items:center;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:.7rem .9rem;transition:border-color .15s,box-shadow .15s}
.arow.dirty{border-color:var(--forest);box-shadow:0 0 0 1px var(--forest)}
.arow.off{background:#F1F2EE}
.arow.off .a-name input{color:var(--muted)}
.arow input,.arow select{padding:.5rem .65rem;font-size:.98rem}
.a-price{display:flex;align-items:center;gap:.4rem;color:var(--muted);white-space:nowrap}
.a-price label:first-child{width:6.2rem}
.a-price select{width:4.6rem}
.arow .save{padding:.5rem 1.1rem;font-size:.9rem}
.more{grid-column:1/-1;font-size:.92rem}
.more summary{cursor:pointer;color:var(--muted);font-weight:500;width:max-content}
.more summary:hover{color:var(--forest)}
.more-grid{display:grid;grid-template-columns:90px 1.2fr 1.2fr;gap:.6rem 1rem;align-items:end;margin-top:.7rem}
.more-grid .check{grid-column:1/3;display:flex;gap:.5rem;align-items:center;margin:0}
.more-grid .check input{width:auto}
.del{justify-self:end;background:none;border:1px solid #E3B4A6;color:var(--tomato);border-radius:99px;padding:.4rem 1rem;font:500 .88rem var(--font);cursor:pointer}
.del:hover{background:#FBEAE4}
.switch{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:500;font-size:.92rem;white-space:nowrap;margin:0}
.switch input{position:absolute;opacity:0;width:1px;height:1px}
.track{position:relative;width:2.4rem;height:1.4rem;border-radius:99px;background:#C7CEC4;transition:background .15s;flex:none}
.track::after{content:'';position:absolute;top:.2rem;left:.2rem;width:1rem;height:1rem;border-radius:50%;background:#fff;transition:transform .15s}
.switch input:checked+.track{background:var(--forest)}
.switch input:checked+.track::after{transform:translateX(1rem)}
.switch input:focus-visible+.track{outline:3px solid var(--forest-2);outline-offset:2px}
.cfg{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;align-items:end;background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:1.3rem}
.cfg label{display:grid;gap:.3rem}
.savebar{position:sticky;bottom:1rem;z-index:15;display:flex;gap:1rem;align-items:center;justify-content:space-between;width:min(560px,92vw);margin:1rem auto 0;padding:.7rem .8rem .7rem 1.3rem;background:var(--forest);color:#fff;border-radius:99px;box-shadow:0 16px 40px rgba(10,30,22,.3);font-weight:500}
.savebar .btn{padding:.55rem 1.3rem;font-size:.92rem}
.toast{position:fixed;left:50%;bottom:5.5rem;transform:translateX(-50%);z-index:60;max-width:92vw;padding:.7rem 1.3rem;background:var(--ink);color:#fff;border-radius:99px;font-weight:500;font-size:.95rem;box-shadow:0 12px 30px rgba(10,30,22,.3)}
.toast.bad{background:var(--tomato)}
#newDlg .two{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
#newDlg .check{display:flex;gap:.5rem;align-items:center}
#newDlg .check input{width:auto}

/* ---------- Adaptación a móvil ---------- */
@media(max-width:900px){
  .checker{grid-template-columns:1fr;margin-top:-2.5rem}
  .about,.visit,.contact{grid-template-columns:1fr}
  .about-photo{aspect-ratio:4/3}
  .facts,.foot{grid-template-columns:1fr;gap:2rem}
  .gallery{grid-template-columns:1fr 1fr}
  .block{padding:4rem var(--gut)}
  .co{grid-template-columns:1fr}
  .co-side{border-radius:0 0 24px 24px}
}
@media(max-width:800px){
  .top{flex-wrap:wrap;gap:.6rem 1rem}
  .top nav{order:3;width:100%;margin-left:0;gap:1.3rem;overflow-x:auto}
  .acct{margin-left:auto}
  .hero{min-height:auto;padding:5rem var(--gut) 6rem}
  .ticket{grid-template-columns:1fr 130px}
  .fgrid{grid-template-columns:1fr}
  .co-main{padding:1.5rem}
  .promo{margin-top:4rem}
}
@media(max-width:1000px){
  .arow{grid-template-columns:1fr 1fr;}
  .a-name{grid-column:1/-1}
  .a-price,.arow .switch{grid-column:auto}
  .arow .save{justify-self:end}
  .more-grid{grid-template-columns:1fr 1fr}
  .more-grid .check{grid-column:1/-1}
}
@media(max-width:520px){.gallery{grid-template-columns:1fr}.arow{grid-template-columns:1fr}.arow .save{justify-self:stretch}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* ---------- Productos: filtros ---------- */
.filters{display:grid;gap:1rem;margin-bottom:1.8rem;padding:1.1rem;background:var(--white);border:1px solid var(--line);border-radius:20px}
.fbar{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center}
.search{position:relative;flex:1 1 280px;display:block;margin:0}
.search svg{position:absolute;left:.95rem;top:50%;width:1.2rem;height:1.2rem;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.search input{padding:.8rem 1rem .8rem 2.8rem;border-radius:99px;background:var(--paper)}
.sort{display:flex;align-items:center;gap:.6rem;margin:0;font-weight:500;color:var(--muted);font-size:.92rem;white-space:nowrap}
.sort select{width:auto;border-radius:99px;padding:.7rem 1rem;background:var(--paper);color:var(--ink);font-weight:500}
.filters .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:.15rem .1rem}
.filters .chips::-webkit-scrollbar{display:none}
.filters .chip{flex:none;display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1.05rem;font-size:.95rem}
.filters .chip span{font-size:.8rem;color:var(--muted);background:var(--paper);border-radius:99px;padding:0 .5rem;line-height:1.5}
.filters .chip[aria-pressed=true] span{background:rgba(255,255,255,.2);color:#fff}
.fmeta{display:flex;gap:1rem 1.5rem;flex-wrap:wrap;align-items:center}
.fmeta .count{margin:0;color:var(--muted);font-size:.95rem;margin-left:auto}
.seasonal{display:inline-flex;align-items:center;gap:.6rem;cursor:pointer;margin:0;font-weight:500;font-size:.95rem}
.seasonal input{position:absolute;opacity:0;width:1px;height:1px}
.seasonal .track{position:relative;width:2.4rem;height:1.4rem;border-radius:99px;background:#C7CEC4;transition:background .15s;flex:none}
.seasonal .track::after{content:'';position:absolute;top:.2rem;left:.2rem;width:1rem;height:1rem;border-radius:50%;background:#fff;transition:transform .15s}
.seasonal input:checked+.track{background:var(--forest)}
.seasonal input:checked+.track::after{transform:translateX(1rem)}
.seasonal input:focus-visible+.track{outline:3px solid var(--forest-2);outline-offset:2px}
.linkbtn{background:none;border:0;padding:0;font:600 .92rem var(--font);color:var(--forest);text-decoration:underline;cursor:pointer}
.nomatch{grid-column:1/-1;text-align:center;padding:3.5rem 1rem;background:var(--white);border:1px dashed #B9C2B5;border-radius:var(--r);color:var(--muted)}
.nomatch b{color:var(--ink);font-size:1.15rem}
.nomatch .btn{margin-top:1.2rem}
@media(max-width:600px){
  .filters{padding:.9rem;border-radius:16px}
  .sort{width:100%}.sort select{flex:1}
  .fmeta .count{margin-left:0;width:100%;order:3}
}

/* ---------- Administración: pestañas y pedidos ---------- */
.tabs{display:flex;gap:.3rem;border-bottom:1px solid var(--line);margin-bottom:1.6rem;overflow-x:auto;scrollbar-width:none}
.tab{flex:none;font:600 1rem var(--font);color:var(--muted);background:none;border:0;border-bottom:3px solid transparent;padding:.8rem 1.1rem;cursor:pointer;margin-bottom:-1px}
.tab:hover{color:var(--ink)}
.tab.on{color:var(--forest);border-color:var(--forest)}
.neworder{position:sticky;top:4.6rem;z-index:12;display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:1rem;padding:.8rem 1rem .8rem 1.3rem;background:var(--forest);color:#fff;border-radius:16px;font-weight:600;box-shadow:0 14px 34px rgba(10,30,22,.25)}
.neworder .btn{padding:.45rem 1.1rem;font-size:.9rem}
.ohead{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;justify-content:space-between}
.oactions{display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap}
.btn.small{padding:.5rem 1.1rem;font-size:.9rem}
.updated{color:var(--muted);font-size:.88rem;margin:.6rem 0 1.2rem}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.8rem;margin-bottom:1.2rem}
.kpi{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.1rem;display:grid;gap:.1rem}
.kpi span{font-weight:600;font-size:.92rem;color:var(--muted)}
.kpi b{font:700 1.9rem/1.15 var(--font);letter-spacing:-.04em;color:var(--forest)}
.kpi small{color:var(--muted);font-size:.82rem}
.kpi.hot{background:var(--tint);border-color:var(--forest)}
.ocols{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:1rem;margin-bottom:.5rem}
.obox{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem 1.2rem;min-width:0}
.obox h3{font-size:1.05rem;margin-bottom:.9rem}
.chart{display:flex;align-items:flex-end;gap:3px;height:170px;padding-top:.5rem}
.chart .col{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:.3rem}
.chart .col i{display:block;width:100%;background:var(--forest);border-radius:4px 4px 0 0;min-height:0}
.chart .col:hover i{background:var(--forest-2)}
.chart .col span{font-size:.72rem;color:var(--muted);height:1rem;white-space:nowrap}
.nodata{color:var(--muted);font-size:.95rem;margin:auto;align-self:center}
.toplist{list-style:none;padding:0;display:grid;gap:.5rem}
.toplist li,.mrow{position:relative;display:grid;grid-template-columns:1fr auto;gap:0 .6rem;padding:.45rem .6rem;border-radius:8px;background:linear-gradient(90deg,var(--tint) var(--w),transparent var(--w))}
.toplist li span,.mrow span{font-weight:600}
.toplist li small,.mrow small{grid-column:1;color:var(--muted);font-size:.82rem}
.toplist li b,.mrow b{grid-row:1/3;grid-column:2;align-self:center;font-weight:700}
.methods{display:grid;gap:.5rem}
.olist{display:grid;gap:.6rem}
.orow{display:grid;grid-template-columns:110px minmax(130px,1fr) minmax(160px,2fr) 130px auto;gap:.3rem 1rem;align-items:center;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:.8rem 1rem}
.orow.st-pendiente{border-color:var(--forest);box-shadow:0 0 0 1px var(--forest)}
.orow.st-cancelado,.orow.st-pendiente_pago{background:#F1F2EE}
.orow b{display:block}
.orow small{color:var(--muted);font-size:.85rem}
.o-prod{color:var(--muted);font-size:.92rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.o-tot{text-align:right}
.o-more{grid-column:1/-1;font-size:.92rem}
.o-more summary{cursor:pointer;color:var(--forest);font-weight:600;width:max-content}
.o-detail{display:grid;gap:.5rem;margin-top:.7rem;padding:.9rem 1rem;background:var(--paper);border-radius:12px}
.o-detail ul{list-style:none;padding:.3rem 0;border-block:1px solid var(--line);display:grid;gap:.25rem}
.o-detail li{display:flex;justify-content:space-between;gap:1rem}
.o-sums{color:var(--muted)}
.admin .tools select{width:auto}
.osel select{border-radius:99px}
@media(max-width:1000px){
  .ocols{grid-template-columns:1fr}
  .orow{grid-template-columns:1fr 1fr}
  .o-prod{grid-column:1/-1}
  .o-tot{text-align:left}
}
@media(max-width:520px){.neworder{top:7.5rem}}

/* =====================================================================
   FUSIÓN DE ESTILO (tipo BR-Aam): crema cálida, tipografía gruesa y compacta,
   etiquetas en mono, grano, gotas, sello giratorio y animaciones suaves.
   Mismo contenido; se mantienen el verde y el lima de la tienda.
   ===================================================================== */
:root{
  --paper:#FFF6E2;--white:#FFFCF3;--line:#EADFBF;--muted:#6A6B55;--tint:#FCEBBE;
  --mango:#FFC21A;--r:22px;
  --ease:cubic-bezier(.16,1,.3,1);
  --display:'Bricolage Grotesque','Hanken Grotesk',system-ui,sans-serif;
  --mono:'Space Mono',ui-monospace,Menlo,monospace;
}
::selection{background:var(--mango);color:var(--ink)}

/* tipografía: títulos gruesos y compactos */
h1,h2{font-family:var(--display);font-weight:800;font-variation-settings:"opsz" 96,"wdth" 88;letter-spacing:-.045em;line-height:.96}
h3,h4{font-family:var(--display);font-weight:600;font-variation-settings:"opsz" 48,"wdth" 94;letter-spacing:-.03em}
.balance b,.cut strong,.menu-pts b,.bal-cell b{font-family:var(--display);font-weight:800;font-variation-settings:"opsz" 96,"wdth" 88}
.logo-text{font-family:var(--display);font-weight:800;font-variation-settings:"opsz" 48,"wdth" 90;letter-spacing:-.035em;font-size:1.25rem}
.logo-text small,.tile small,.count{font-family:var(--mono);font-weight:400;text-transform:uppercase;letter-spacing:.1em;font-size:.62rem}
.logo-text small{margin-top:.15rem;opacity:.75}
.count{font-size:.7rem}
.hero h1{font-size:clamp(3rem,9vw,7.4rem);line-height:.88;letter-spacing:-.05em}
.hero-text{max-width:58rem}
.block h2{font-size:clamp(2.3rem,5.6vw,4.6rem)}
.promo h2{font-size:clamp(2rem,4.6vw,3.6rem);max-width:20ch}
.shop h1,.contact h1{font-size:clamp(2.6rem,6.4vw,5rem)}
.tile{font-family:var(--display);font-weight:800;font-variation-settings:"opsz" 48,"wdth" 90}

/* cabecera y botones */
.top{background:rgba(255,246,226,.86);transition:padding .5s var(--ease)}
.top.scrolled{padding-block:.35rem}
.top .logo img{transition:height .5s var(--ease)}
.top.scrolled .logo img{height:2.1rem}
.btn{letter-spacing:.01em;transition:background .5s var(--ease),border-color .5s var(--ease),color .5s var(--ease),transform .3s var(--ease)}
.hero .btn,.promo .btn,.about-text .btn{display:inline-flex;align-items:center;gap:.7rem}
.hero .btn::after,.promo .btn::after,.about-text .btn::after{content:"";width:14px;height:14px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'><path d='M1 7h11M7 1l6 6-6 6' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'><path d='M1 7h11M7 1l6 6-6 6' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/contain no-repeat;transition:transform .5s var(--ease)}
.hero .btn:hover::after,.promo .btn:hover::after,.about-text .btn:hover::after{transform:translateX(4px)}

/* grano (sobre las zonas oscuras) */
.hero,.promo,.balance,footer{isolation:isolate}
.hero::before,.promo::before,.balance::before,footer::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;opacity:.07;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.promo,.balance,footer{position:relative}

/* sello giratorio en la portada */
.hero-text{position:relative;z-index:1}
.hero::after{content:"";position:absolute;right:var(--gut);bottom:9rem;width:clamp(110px,13vw,190px);aspect-ratio:1;z-index:1;pointer-events:none;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><defs><path id='c' d='M50 50m-34 0a34 34 0 1 1 68 0a34 34 0 1 1-68 0'/></defs><circle cx='50' cy='50' r='49' fill='%23FFC21A'/><text font-family='Space Mono,monospace' font-weight='700' font-size='8.4' letter-spacing='1.6' fill='%231C2A16'><textPath href='%23c'>FRUTA · VERDURA · ALCOBENDAS · </textPath></text><circle cx='50' cy='50' r='17' fill='%230F3D2E'/><g transform='translate(37.500 37) scale(.78)'><path d='M17.600 8.200c4.600.6 7.400 4.600 7 9.600-.4 5-4.600 8.400-9.400 8-4.400-.4-6.800-3.600-6.400-7.200.3-2.600 2-3.900 3.300-5.600 1.400-1.900 2.200-5.200 5.500-4.800z' fill='%23FFC21A'/><path d='M17.400 8.400c.4-2.200 1.800-3.600 4-4.200-.2 2.400-1.600 3.800-4 4.200z' fill='%23C8F23A'/></g></svg>") center/contain no-repeat;filter:drop-shadow(0 14px 18px rgba(0,0,0,.3));animation:spin 22s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* tarjetas */
.card .pic{transition:transform .6s var(--ease)}
.card:hover .pic{transform:translateY(-6px) rotate(-1.5deg)}
.checker{border-radius:28px;box-shadow:0 18px 50px rgba(80,50,0,.12)}

/* pie: gotas de la página cayendo sobre el verde + nombre gigante de fondo */
footer:has(.foot){position:relative;overflow:hidden}
footer:has(.foot)::before{content:"";position:absolute;left:0;right:0;top:0;height:clamp(40px,6vw,80px);z-index:0;pointer-events:none;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 100' preserveAspectRatio='none'><path d='M0 0H1200V30L1152 30C1144 30 1140 70 1130 70C1120 70 1116 30 1108 30L1072 30C1064 30 1060 54 1050 54C1040 54 1036 30 1028 30L952 30C944 30 940 88 930 88C920 88 916 30 908 30L842 30C834 30 830 64 820 64C810 64 806 30 798 30L712 30C704 30 700 76 690 76C680 76 676 30 668 30L622 30C614 30 610 56 600 56C590 56 586 30 578 30L492 30C484 30 480 94 470 94C460 94 456 30 448 30L412 30C404 30 400 60 390 60C380 60 376 30 368 30L282 30C274 30 270 82 260 82C250 82 246 30 238 30L202 30C194 30 190 52 180 52C170 52 166 30 158 30L92 30C84 30 80 68 70 68C60 68 56 30 48 30L0 30Z' fill='%23FFF6E2'/></svg>") top/100% 100% no-repeat}
footer:has(.foot) .foot{position:relative;z-index:1;padding-top:clamp(6rem,11vw,9rem)}
footer:has(.foot) .legal{position:relative;z-index:1}
footer:has(.foot) .foot::after{content:"LA HUERTA";content:"LA HUERTA"/"";position:absolute;left:50%;bottom:-.3em;transform:translateX(-50%);z-index:-1;white-space:nowrap;
  font:800 clamp(5rem,17vw,16rem)/.8 var(--display);font-variation-settings:"opsz" 96,"wdth" 88;letter-spacing:-.05em;color:rgba(255,255,255,.05);pointer-events:none}

/* aparición suave al hacer scroll */
.fx [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.fx [data-reveal].is-in{opacity:1;transform:none}

@media(max-width:700px){
  .hero::after{width:92px;right:1rem;top:auto;bottom:7.5rem}
  footer:has(.foot)::before{background-size:260% 100%;background-position:center top}
  .hero h1{font-size:clamp(2.7rem,13vw,4rem)}
}
@media(prefers-reduced-motion:reduce){.hero::after{animation:none}.fx [data-reveal]{opacity:1;transform:none}}

/* =====================================================================
   MODO SCROLL (solo inicio): portada fijada, indicador de etapa, titulares que se iluminan
   ===================================================================== */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}

.hero-track{position:relative;height:165svh}
.hero-track>.hero{position:sticky;top:var(--th,0px);height:calc(100svh - var(--th,0px));min-height:0;padding-top:5rem;padding-bottom:6rem}
.hero h1,.hero-text>p,.hero-cta{will-change:transform,opacity}
.hero::after{translate:calc(var(--e2,0) * -24vw) calc(var(--e2,0) * -16svh);scale:calc(1 + var(--e2,0) * 1.1)}

.w{transition:none}

.rd{position:fixed;left:var(--gut);bottom:1rem;z-index:15;width:min(15rem,46vw);padding:.6rem .85rem .7rem;border-radius:14px;
  background:rgba(255,246,226,.85);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);
  font:400 .6rem/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);pointer-events:none;
  opacity:0;transform:translateY(8px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.rd.on{opacity:1;transform:none}
.rd>div{display:flex;justify-content:space-between;gap:.6rem}
.rd-t{overflow:hidden;display:block}
.rd-t>span{display:block;animation:rdin .5s var(--ease)}
@keyframes rdin{from{transform:translateY(100%);opacity:0}}
.rd i{display:block;position:relative;height:1px;margin-top:.55rem;background:rgba(21,34,27,.18)}
.rd i b{position:absolute;inset:0;background:var(--forest);transform-origin:left;transform:scaleX(var(--pg,0))}
.about-photo img,.gallery img{will-change:transform}

@media(max-width:700px){
  .hero-track{height:150svh}
  .hero::after{translate:calc(var(--e2,0) * -30vw) calc(var(--e2,0) * -18svh)}
}


/* ---------- Páginas legales ---------- */
.legalpage{max-width:860px;margin:0 auto}
.legalnav{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:2.5rem}
.legalnav a{padding:.45rem 1rem;border:1px solid var(--line);border-radius:99px;text-decoration:none;font-weight:500;font-size:.92rem;color:var(--ink);background:var(--white)}
.legalnav a:hover{border-color:var(--ink)}
.legalpage article{padding:2rem 0;border-top:1px solid var(--line)}
.legalpage h2{font-size:clamp(1.6rem,3.4vw,2.3rem);margin-bottom:1rem}
.legalpage h3{font-size:1.1rem;margin:1.4rem 0 .4rem}
.legalpage p,.legalpage li{color:var(--muted);margin-bottom:.7rem}
.legalpage ul{padding-left:1.2rem}
.legalpage li b{color:var(--ink)}
.legalpage a{color:var(--forest)}
.legalpage mark.todo{background:#FFE08A;color:var(--ink);padding:0 .3rem;border-radius:4px}
.legalupd{margin-top:1rem;font-size:.85rem;color:var(--muted)}
.legalnote{font-size:.82rem;color:var(--muted);line-height:1.4}
.legal a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.legal a:hover{color:#fff}

/* Aviso de cookies */
.cookiebar{position:fixed;left:50%;bottom:1rem;transform:translateX(-50%);z-index:200;width:min(720px,calc(100vw - 2rem));display:flex;align-items:center;gap:1rem;padding:1rem 1.2rem;background:var(--forest,#0F3D2E);color:#fff;border-radius:18px;box-shadow:0 18px 50px rgba(10,30,22,.35);animation:enter .4s ease both}
.cookiebar p{margin:0;font-size:.9rem;line-height:1.45;color:rgba(255,255,255,.9)}
.cookiebar a{color:var(--lime,#C8F23A);text-underline-offset:2px}
.cookiebar .btn{flex:none;padding:.6rem 1.3rem}
@media(max-width:560px){.cookiebar{flex-direction:column;align-items:stretch;gap:.7rem;bottom:.6rem}}

/* Foto de producto en el panel */
.photo-box{grid-column:1/-1;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.photo-prev{width:120px;height:90px;object-fit:cover;border-radius:12px;background:var(--tint,#FCEBBE)}
.photo-btns{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem}
.photo-btn{cursor:pointer}
.photo-del{background:none;border:0;color:var(--tomato,#c0392b);font:inherit;font-size:.85rem;cursor:pointer;padding:0;text-decoration:underline}
.photo-msg{color:var(--muted,#6A6B55)}
.fhours{line-height:1.5}

/* Ubicación en la barra superior */
.locbtn{font:inherit;font-weight:700;color:var(--forest,#0F3D2E);background:var(--lime,#C8F23A);border:0;border-radius:99px;padding:.25rem .8rem;margin:0 .3rem;cursor:pointer}
.streetnote{margin:-.3rem 0 0;font-size:.85rem;color:var(--muted,#6A6B55)}
.streetnote a{color:inherit;font-weight:600}
.co input[readonly]{background:var(--tint,#FCEBBE);cursor:default}
