/* Página pública de un establecimiento. Primitivas y tokens: design-system.css. */
.sg-store-page{
    min-width:0;
    padding-bottom:clamp(52px,7vw,92px);
    background:var(--cream);
    color:var(--ink);
}

.sg-store-breadcrumbs{
    min-height:48px;
    padding-block:13px;
    display:flex;
    align-items:center;
    gap:8px;
    overflow:hidden;
    color:var(--text-muted);
    font:500 11px/1.4 'DM Mono',ui-monospace,monospace;
}
.sg-store-breadcrumbs a{flex:0 0 auto;color:var(--forest-800);font-weight:700}
.sg-store-breadcrumbs a:hover{color:var(--papaya-dark)}
.sg-store-breadcrumbs [aria-current="page"]{
    min-width:0;
    overflow:hidden;
    color:var(--forest-800);
    font-weight:700;
    text-overflow:ellipsis;
    white-space:nowrap;
}

/* La portada usa todo el ancho; solo su contenido vuelve al contenedor común. */
.sg-store-hero{
    position:relative;
    min-height:clamp(370px,47vw,560px);
    isolation:isolate;
    overflow:hidden;
    background:var(--forest-950);
}
.sg-store-hero__backdrop{
    position:absolute;
    z-index:-3;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    filter:saturate(.92) contrast(1.03);
}
.sg-store-hero::before{
    position:absolute;
    z-index:-2;
    inset:0;
    background:
        linear-gradient(180deg,rgba(8,37,31,.14) 0%,rgba(8,37,31,.22) 36%,rgba(8,37,31,.9) 100%),
        linear-gradient(90deg,rgba(8,37,31,.4),transparent 62%);
    content:'';
}
.sg-store-hero::after{
    position:absolute;
    z-index:-1;
    right:-8%;
    bottom:-70px;
    width:min(48vw,720px);
    height:190px;
    border:2px dashed rgba(168,201,107,.3);
    border-radius:50%;
    transform:rotate(-7deg);
    content:'';
}
.sg-store-hero__inner{
    min-height:inherit;
    padding-block:clamp(48px,8vw,92px) clamp(54px,7vw,78px);
    display:flex;
    align-items:flex-end;
}
.sg-store-identity{
    width:100%;
    min-width:0;
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    align-items:end;
    gap:clamp(16px,2.5vw,28px);
}
.sg-store-logo{
    width:clamp(92px,10vw,132px);
    aspect-ratio:1;
    display:grid;
    place-items:center;
    overflow:hidden;
    border:4px solid rgba(255,255,255,.93);
    border-radius:clamp(22px,3vw,32px);
    background:#fff;
    color:var(--forest-950);
    font:700 clamp(1.6rem,3vw,2.6rem)/1 'Space Grotesk',system-ui,sans-serif;
    letter-spacing:-.07em;
    box-shadow:0 18px 42px rgba(0,0,0,.28);
}
.sg-store-logo img{width:100%;height:100%;object-fit:cover}
.sg-store-identity__copy{min-width:0;color:#fff}
.sg-store-identity__eyebrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sg-store-category{
    padding:7px 11px;
    display:inline-flex;
    align-items:center;
    border:1px solid rgba(248,189,116,.55);
    border-radius:999px;
    background:var(--gold);
    color:var(--forest-950);
    font:700 10px/1.2 'DM Mono',ui-monospace,monospace;
    letter-spacing:.1em;
    text-transform:uppercase;
    box-shadow:0 6px 16px rgba(8,37,31,.22);
}
.sg-store-state{
    min-height:31px;
    padding:6px 10px;
    display:inline-flex;
    align-items:center;
    gap:7px;
    border:1px solid rgba(255,255,255,.3);
    border-radius:999px;
    background:rgba(8,37,31,.7);
    color:#fff;
    font:700 10px/1.2 'DM Mono',ui-monospace,monospace;
    backdrop-filter:blur(8px);
}
.sg-store-state i{width:7px;height:7px;border-radius:50%;background:var(--leaf);box-shadow:0 0 0 4px rgba(168,201,107,.16)}
.sg-store-state--closed i{background:var(--gold);box-shadow:0 0 0 4px rgba(248,189,116,.15)}
.sg-store-identity h1{
    max-width:900px;
    margin:10px 0 0;
    overflow-wrap:anywhere;
    color:#fff;
    font:700 clamp(2.5rem,6vw,5.45rem)/.9 'Space Grotesk',system-ui,sans-serif;
    letter-spacing:-.065em;
    text-wrap:balance;
    text-shadow:0 5px 24px rgba(0,0,0,.28);
}
/* La ficha evita repetir datos en el banner y los reúne en un solo lugar. */
.sg-store-overview{
    position:relative;
    z-index:4;
    margin-top:-28px;
    display:grid;
    grid-template-columns:minmax(260px,.92fr) minmax(0,1.55fr);
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:var(--sg-radius-feature);
    background:#fff;
    box-shadow:var(--sg-shadow-lift);
}
.sg-store-overview__intro{
    min-width:0;
    padding:clamp(22px,3vw,30px);
    border-right:1px solid var(--line);
    background:linear-gradient(145deg,#fff,var(--surface-soft));
}
.sg-store-overview__intro>span{
    display:block;
    margin-bottom:8px;
    color:var(--papaya-dark);
    font:700 10px 'DM Mono',ui-monospace,monospace;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.sg-store-overview__intro p{margin:0;color:var(--ink);font-size:14px;line-height:1.65}
.sg-store-overview__address{margin-top:12px!important;color:var(--text-muted)!important;font:500 11px/1.55 'DM Mono',ui-monospace,monospace!important}
.sg-store-facts{
    margin:0;
    padding:clamp(20px,3vw,28px);
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    align-items:center;
    gap:0;
}
.sg-store-fact{min-width:0;padding:5px clamp(12px,2vw,22px);border-left:1px solid var(--line-soft)}
.sg-store-fact:first-child{border-left:0}
.sg-store-fact dt{margin:0 0 7px;color:var(--text-muted);font:700 9px/1.35 'DM Mono',ui-monospace,monospace;letter-spacing:.07em;text-transform:uppercase}
.sg-store-fact dd{margin:0;color:var(--forest-950);font:700 clamp(.85rem,1.5vw,1.08rem)/1.25 'Space Grotesk',system-ui,sans-serif;overflow-wrap:anywhere}
.sg-store-fact dd small{display:block;margin-top:3px;color:var(--text-muted);font:500 9px/1.35 'DM Mono',ui-monospace,monospace}

.sg-store-body{
    padding-block:clamp(28px,4vw,46px) 0;
    display:grid;
    grid-template-columns:minmax(0,1fr) 330px;
    align-items:start;
    gap:clamp(22px,3vw,34px);
}
.sg-store-menu{min-width:0;scroll-margin-top:96px}
.sg-store-menu__heading{margin-bottom:18px}
.sg-store-menu__heading>div{min-width:0}
.sg-store-menu__heading span{color:var(--papaya-dark);font:700 10px 'DM Mono',ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}
.sg-store-menu__heading h2{margin:6px 0 0;color:var(--forest-950);font:700 clamp(1.8rem,3.4vw,3rem)/1 'Space Grotesk',system-ui,sans-serif;letter-spacing:-.055em}

.sg-menu-rail{
    position:sticky;
    z-index:15;
    top:86px;
    margin-bottom:22px;
    padding:12px;
    border:1px solid var(--line);
    border-radius:18px;
    background:rgba(255,255,255,.96);
    box-shadow:0 10px 28px rgba(8,37,31,.1);
    backdrop-filter:blur(10px);
}
.sg-menu-search{position:relative;display:flex;align-items:center}
.sg-menu-search svg{position:absolute;left:13px;width:17px;height:17px;fill:none;stroke:var(--text-muted);stroke-width:2;pointer-events:none}
.sg-menu-search input{
    width:100%;
    min-height:46px;
    padding:0 92px 0 40px;
    border:1px solid var(--line);
    border-radius:13px;
    background:var(--surface-soft);
    color:var(--ink);
    font:600 13px 'Manrope',system-ui,sans-serif;
}
.sg-menu-search input:focus-visible{border-color:var(--papaya-dark);outline:3px solid var(--focus-ring);outline-offset:1px}
.sg-menu-search input::placeholder{color:var(--text-muted)}
.sg-menu-search [data-menu-clear]{position:absolute;right:3px;min-height:44px;padding-inline:12px;border:0;border-radius:10px;background:transparent;color:var(--papaya-dark);font:700 10px 'DM Mono',ui-monospace,monospace;cursor:pointer}
.sg-menu-search [data-menu-clear]:hover{background:#f6ede4}

.sg-menu-section{margin-bottom:clamp(30px,4vw,44px);scroll-margin-top:176px}
.sg-menu-section__head{margin-bottom:14px;padding-bottom:12px;display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}
.sg-menu-section h2{margin:0;color:var(--forest-950);font:700 22px 'Space Grotesk',system-ui,sans-serif;letter-spacing:-.04em}
.sg-menu-section__head p{margin:0;color:var(--text-muted);font:500 10px 'DM Mono',ui-monospace,monospace;text-align:right}
.sg-product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.sg-product{
    position:relative;
    min-width:0;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    border:1px solid var(--line);
    border-radius:20px;
    background:#fff;
    box-shadow:0 7px 18px rgba(8,37,31,.055);
    transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.sg-product:hover{border-color:#c7a085;box-shadow:0 14px 28px rgba(8,37,31,.1);transform:translateY(-2px)}
.sg-product.is-unavailable{background:#f3f0ea}
.sg-product.is-hidden{display:none}
.sg-product__media{position:relative;margin:0;overflow:hidden;aspect-ratio:16/10;background:#e9e3d7}
.sg-product__media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.sg-product:hover .sg-product__media img{transform:scale(1.025)}
.sg-product__placeholder{width:100%;height:100%;padding:18px;display:grid;place-items:center;background:radial-gradient(circle at 78% 18%,rgba(168,201,107,.35),transparent 27%),linear-gradient(145deg,#eee7db,#e3dccf);color:var(--forest-800);text-align:center}
.sg-product__placeholder span{width:58px;height:58px;display:grid;place-items:center;overflow:hidden;border:1px solid rgba(8,37,31,.14);border-radius:18px;background:rgba(255,255,255,.75);font:700 18px 'Space Grotesk',system-ui,sans-serif}
.sg-product__placeholder img{width:100%;height:100%;object-fit:cover;transform:none!important}
.sg-product__placeholder small{display:block;margin-top:8px;color:var(--text-muted);font:700 9px 'DM Mono',ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase}
.sg-product__flag{position:absolute;z-index:2;top:12px;right:12px;padding:5px 9px;border-radius:999px;background:var(--leaf);color:var(--forest-950);font:700 10px 'DM Mono',ui-monospace,monospace;box-shadow:0 4px 12px rgba(8,37,31,.2)}
.sg-product__availability{position:absolute;z-index:2;right:12px;bottom:12px;padding:5px 8px;border:1px solid rgba(255,255,255,.5);border-radius:999px;background:rgba(8,37,31,.82);color:#fff;font:700 9px 'DM Mono',ui-monospace,monospace;backdrop-filter:blur(7px)}
.sg-product__content{min-width:0;padding:16px;display:flex;flex:1;flex-direction:column;gap:8px}
.sg-product h3{margin:0;color:var(--ink);font:700 16px/1.25 'Space Grotesk',system-ui,sans-serif;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.sg-product__description{min-height:39px;margin:0;color:var(--text-muted);font-size:12px;line-height:1.55;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.sg-product__footer{margin-top:auto;padding-top:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px dashed var(--line)}
.sg-product__price{min-width:0;display:flex;flex-direction:column;color:var(--forest-950);white-space:nowrap}
.sg-product__price s{color:var(--text-muted);font:500 10px 'DM Mono',ui-monospace,monospace}
.sg-product__price b{font:700 15px 'DM Mono',ui-monospace,monospace}
.sg-product__footer form{margin:0;flex:0 0 auto}
.sg-product__add{min-width:98px;min-height:44px;padding-inline:15px}
.sg-product__add.is-added{border-color:var(--leaf);background:var(--leaf);color:var(--forest-950)}

.sg-menu-noresults,.sg-store-empty{padding:clamp(38px,6vw,62px) 24px;border:1px dashed #cfc4b4;border-radius:22px;background:#fff;text-align:center}
.sg-menu-noresults h2,.sg-store-empty h2{margin:0;color:var(--forest-950);font:700 22px 'Space Grotesk',system-ui,sans-serif}
.sg-menu-noresults p,.sg-store-empty p{max-width:52ch;margin:8px auto 18px;color:var(--text-muted);font-size:13px;line-height:1.55}

.sg-store-side{position:sticky;top:88px;min-width:0}
.sg-career-card{overflow:hidden;border:1px solid var(--forest-800);border-radius:24px;background:linear-gradient(145deg,var(--forest-950),var(--forest-800));color:#fff;box-shadow:var(--sg-shadow-card)}
.sg-career-card__head{padding:22px 22px 16px}
.sg-career-card__eyebrow{color:var(--leaf);font:700 9px 'DM Mono',ui-monospace,monospace;letter-spacing:.09em;text-transform:uppercase}
.sg-career-card h2{margin:6px 0;color:#fff;font:700 24px 'Space Grotesk',system-ui,sans-serif;letter-spacing:-.045em}
.sg-career-card__head p{margin:0;color:#d4e0d9;font-size:12px;line-height:1.55}
.sg-career-route{margin:0 16px;padding:18px 16px;display:grid;gap:0;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(255,255,255,.055);list-style:none}
.sg-career-route li{position:relative;min-height:52px;padding-left:38px;display:flex;flex-direction:column;justify-content:center;color:#fff;font-size:12px;font-weight:800}
.sg-career-route li::before{position:absolute;z-index:1;top:14px;left:0;width:24px;height:24px;display:grid;place-items:center;border:2px solid rgba(255,255,255,.55);border-radius:50%;background:var(--forest-950);color:var(--leaf);content:''}
.sg-career-route li::after{position:absolute;top:38px;bottom:-14px;left:11px;border-left:2px dashed rgba(255,255,255,.25);content:''}
.sg-career-route li:last-child::after{display:none}
.sg-career-route li:nth-child(1)::before{border-color:var(--papaya);background:var(--papaya)}
.sg-career-route li:nth-child(2)::before{content:'+';font:700 15px 'DM Mono',monospace}
.sg-career-route li:nth-child(3)::before{border-color:var(--leaf);background:var(--leaf)}
.sg-career-route small{margin-top:2px;color:#bcd0c5;font:500 9px/1.4 'DM Mono',ui-monospace,monospace}
.sg-career-card__foot{padding:17px 22px 22px}
.sg-career-card__fee{margin:0 0 14px;color:#d4e0d9;font-size:11px;line-height:1.55}
.sg-career-card__fee strong{color:var(--gold)}

.sg-toast{position:fixed;z-index:120;bottom:22px;left:50%;max-width:calc(100vw - 32px);padding:12px 18px;transform:translate(-50%,16px);visibility:hidden;opacity:0;border:1px solid #8eaf56;border-radius:14px;background:#f2f9e6;color:#174b1b;font:700 12px 'Manrope',system-ui,sans-serif;text-align:center;box-shadow:0 14px 30px rgba(8,37,31,.2);transition:opacity .22s ease,transform .22s ease,visibility .22s}
.sg-toast.is-visible{visibility:visible;transform:translate(-50%,0);opacity:1}
.sg-toast.is-error{border-color:#d9a58f;background:var(--danger-soft);color:var(--danger)}

@media(max-width:1060px){
    .sg-store-overview{grid-template-columns:minmax(0,1fr)}
    .sg-store-overview__intro{border-right:0;border-bottom:1px solid var(--line)}
    .sg-store-body{grid-template-columns:minmax(0,1fr)}
    .sg-store-side{position:static}
    .sg-career-card{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr)}
    .sg-career-card__head{align-self:center}
    .sg-career-route{margin:16px 16px 16px 0}
    .sg-career-card__foot{grid-column:1/-1;padding-top:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px}
    .sg-career-card__fee{margin:0}
    .sg-career-card__foot .sg-button{width:auto;min-width:220px}
    .sg-menu-rail{position:static}
    .sg-menu-section{scroll-margin-top:120px}
}

@media(max-width:760px){
    .sg-store-hero{min-height:410px}
    .sg-store-hero__inner{padding-block:44px 48px}
    .sg-store-identity{grid-template-columns:auto minmax(0,1fr);align-items:center}
    .sg-store-logo{width:86px;border-width:3px;border-radius:23px}
    .sg-store-identity h1{font-size:clamp(2.25rem,11vw,4rem)}
    .sg-store-overview{margin-top:-20px;border-radius:22px}
    .sg-store-facts{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}
    .sg-store-fact{padding:13px;border-left:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
    .sg-store-fact:nth-child(odd){border-left:0}
    .sg-store-fact:nth-last-child(-n+2){border-bottom:0}
    .sg-product-grid{grid-template-columns:minmax(0,1fr)}
    .sg-career-card{display:block}
    .sg-career-route{margin:0 16px}
    .sg-career-card__foot{padding-top:17px;display:block}
    .sg-career-card__fee{margin-bottom:14px}
    .sg-career-card__foot .sg-button{width:100%;min-width:0}
}

@media(max-width:460px){
    .sg-store-breadcrumbs{font-size:10px}
    .sg-store-hero{min-height:390px}
    .sg-store-hero::after{display:none}
    .sg-store-hero__inner{padding-block:36px 42px}
    .sg-store-identity{align-items:end;gap:13px}
    .sg-store-logo{width:72px;border-radius:20px}
    .sg-store-identity__eyebrow{gap:6px}
    .sg-store-category{padding:6px 9px;font-size:9px}
    .sg-store-state{min-height:28px;padding:5px 8px;font-size:9px}
    .sg-store-identity h1{margin-top:7px;font-size:clamp(2rem,12vw,3.25rem)}
    .sg-store-overview__intro{padding:19px 17px}
    .sg-store-facts{padding:8px}
    .sg-store-fact{padding:11px 9px}
    .sg-store-fact dd{font-size:.82rem}
    .sg-menu-rail{padding:10px}
    .sg-menu-section__head{align-items:flex-start;flex-direction:column;gap:5px}
    .sg-menu-section__head p{text-align:left}
    .sg-product__content{padding:14px}
    .sg-product__footer{align-items:flex-end}
}

@media(min-width:2200px){
    .sg-store-body{grid-template-columns:minmax(0,1fr) 380px}
    .sg-product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-height:820px) and (min-width:761px){
    .sg-store-hero{min-height:350px}
    .sg-store-hero__inner{padding-block:40px}
    .sg-store-logo{width:94px}
}

@media(prefers-reduced-motion:reduce){
    .sg-product,.sg-product__media img,.sg-toast{transition:none}
    .sg-product:hover{transform:none}
    .sg-product:hover .sg-product__media img{transform:none}
}
/* Puntuación autenticada: bloque editorial entre la identidad y el catálogo. */
.sg-store-rating{margin:18px 0 0;padding:18px 20px;display:grid;grid-template-columns:minmax(220px,.75fr) minmax(460px,1.25fr);align-items:center;gap:20px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 8px 20px rgba(8,37,31,.05)}
.sg-store-rating h2{margin:0 0 4px;color:var(--forest-950);font:700 clamp(1.15rem,2vw,1.45rem)/1.1 'Space Grotesk',sans-serif;letter-spacing:-.03em}
.sg-store-rating p{margin:0;color:var(--text-muted);font-size:13px;line-height:1.55}
.sg-rating-form{min-width:0;display:grid;grid-template-columns:minmax(300px,1fr) auto;align-items:center;gap:10px}
.sg-rating-form fieldset{min-width:0;margin:0;padding:0;border:0}
.sg-rating-options{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.sg-rating-options label{min-width:0;cursor:pointer}
.sg-rating-options input{position:absolute;opacity:0;pointer-events:none}
.sg-rating-options span{min-height:44px;display:flex;align-items:center;justify-content:center;gap:3px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--forest-800);font:800 12px 'DM Mono',monospace;transition:border-color .16s,background .16s,transform .16s}
.sg-rating-options i{color:var(--gold);font-style:normal}
.sg-rating-options label:hover span{transform:translateY(-1px);border-color:var(--gold)}
.sg-rating-options input:checked+span{border-color:var(--forest-950);background:var(--forest-950);color:#fff}
.sg-rating-options input:focus-visible+span{outline:3px solid var(--focus-ring);outline-offset:2px}
.sg-rating-error{margin-top:8px!important;color:var(--danger)!important;font-weight:800}
.sg-store-rating--guest{grid-template-columns:minmax(0,1fr) auto}
.sg-rating-form>.sg-button,.sg-store-rating--guest>.sg-button{white-space:nowrap}
@media(max-width:760px){.sg-store-rating,.sg-store-rating--guest{grid-template-columns:minmax(0,1fr);padding:16px}.sg-rating-form{grid-template-columns:minmax(0,1fr)}.sg-rating-options{grid-template-columns:repeat(3,minmax(0,1fr))}.sg-rating-form>.sg-button,.sg-store-rating--guest>.sg-button{width:100%}}
@media(prefers-reduced-motion:reduce){.sg-rating-options span{transition:none}.sg-rating-options label:hover span{transform:none}}
