@font-face{font-family:Gloock;src:url(img/Gloock-Regular.ttf) format("truetype");font-display:swap}
@font-face{font-family:Bricolage;src:url(img/BricolageGrotesque-Regular.ttf) format("truetype");font-display:swap}
:root{color-scheme:light;--linen:#f5f1e9;--sand:#e9e0d1;--stone:#e3e2dc;--ink:#292b28;--muted:#53564e;--line:#bdb9ae;--paper:#fcfaf5;--focus:#60513c;--serif:Gloock,Georgia,serif}
*{box-sizing:border-box}
html{scroll-padding-top:105px}
body{margin:0;background:var(--linen);color:var(--ink);font:1rem/1.55 Bricolage,system-ui,sans-serif}
body:has(dialog[open]){overflow:hidden}
a{color:inherit;text-underline-offset:.25em}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
button:disabled{cursor:default;opacity:.6}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
::selection{background:var(--ink);color:var(--linen)}
h1,h2,p{margin:0}
h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.035em;line-height:1.04}
p{color:var(--muted)}
img{display:block;width:100%;height:auto}
.shell{width:min(100% - 2.5rem,1280px);margin-inline:auto}
.header{position:sticky;top:0;z-index:3;background:var(--linen);border-bottom:1px solid var(--line)}
.header-inner,.header nav,.foot{display:flex;align-items:center;justify-content:space-between;gap:1.25rem}
.header-inner{min-height:82px}
.brand img{width:67px;mix-blend-mode:multiply}
.header nav a{font-weight:700;text-decoration:none}
.header nav a:hover{text-decoration:underline}
.cart-button,.secondary{min-height:44px;border:1px solid var(--line);background:transparent;padding:.5rem .9rem}
.cart-button span{display:inline-grid;place-items:center;min-width:1.45rem;height:1.45rem;margin-left:.25rem;background:var(--stone);font-variant-numeric:tabular-nums}
.hero{display:grid;grid-template-columns: .92fr 1.08fr;margin-top:1.5rem;background:var(--sand)}
.hero-copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:1.5rem;padding:clamp(1.65rem,5.4vw,5rem)}
.hero h1{font-size:clamp(2.5rem,5.8vw,5.7rem)}
.hero p{max-width:32ch;font-size:clamp(1rem,1.45vw,1.2rem)}
.hero>img{height:100%;max-height:580px;min-height:350px;object-fit:cover;object-position:50% 53%}
.primary{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;min-height:46px;padding:.65rem 1.1rem;background:var(--ink);color:var(--paper);border:1px solid var(--ink);text-decoration:none;font-weight:700;text-align:center}
.primary:hover{background:#43483e}
.secondary:hover,.cart-button:hover{background:var(--stone)}
.catalog{padding-block:clamp(2.4rem,6vw,5.4rem)}
.catalog-head{display:grid;grid-template-columns:1fr minmax(16rem,25rem);gap:1.25rem;align-items:end;padding-bottom:1rem;border-bottom:1px solid var(--line)}
.catalog h2{font-size:clamp(2.35rem,4.8vw,4.5rem)}
label{display:block;font-weight:700}
input,select{display:block;width:100%;min-height:46px;margin-top:.35rem;padding:.55rem .75rem;background:var(--paper);border:1px solid #8a887e;border-radius:0}
input::placeholder{color:var(--muted);opacity:1}
.categories{display:flex;gap:.5rem;flex-wrap:wrap;margin-block:1rem}
.categories button{min-height:44px;background:transparent;border:1px solid var(--line);padding:.42rem .8rem}
.categories button:hover{background:var(--stone)}
.categories button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.result-count{margin-bottom:1rem;font-size:.92rem}
.products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2.15rem clamp(.75rem,2.2vw,2rem)}
.piece{min-width:0;border-bottom:1px solid var(--line)}
.piece-link{display:block;width:100%;text-align:left;padding:0 0 .8rem;background:none;border:0}
.piece-photo{display:block;overflow:hidden;background:var(--stone);aspect-ratio:4/5}
.piece-photo img{height:100%;object-fit:cover;transition:transform .3s ease-out}
.piece-link:hover img{transform:scale(1.035)}
.piece-meta{display:grid;gap:.25rem;margin-top:.8rem;line-height:1.32}
.piece-meta strong{font-size:clamp(1rem,1.5vw,1.22rem)}
.piece-meta span,.line-price{font-variant-numeric:tabular-nums;color:var(--muted)}
.piece-action{display:block;margin-top:.55rem;font-size:.88rem;text-decoration:underline;text-underline-offset:.24em}
.empty{grid-column:1/-1;margin-bottom:1rem}
footer{background:var(--stone);padding-block:2rem}
.foot{flex-wrap:wrap}
dialog{color:var(--ink);background:var(--paper);border:1px solid var(--line);padding:0;max-height:calc(100dvh - 2rem)}
dialog::backdrop{background:#292b2878}
#product-dialog{width:min(920px,calc(100% - 2rem))}
#product-body{position:relative;display:grid;grid-template-columns:1fr 1fr}
.detail-gallery{background:var(--sand);padding:1rem}
.detail-photo{height:min(58vh,490px);object-fit:contain}
.thumbs{display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem;margin-top:.8rem}
.thumbs button{width:53px;height:53px;background:var(--paper);border:1px solid var(--line);padding:2px}
.thumbs button[aria-pressed=true]{border:2px solid var(--ink)}
.thumbs img{height:100%;object-fit:cover}
.detail-info{align-self:center;padding:clamp(1.5rem,4vw,3.25rem)}
.detail-info h2{font-size:clamp(1.95rem,3.3vw,3rem);margin-bottom:.7rem}
.detail-info label{margin-top:1rem}
.detail-info .detail-price{font-size:1.5rem;font-weight:700;color:var(--ink);margin-block:1rem}
.detail-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.added:not(:empty){margin-top:.65rem}
.close{width:44px;height:44px;border:1px solid var(--line);background:var(--paper);font-size:1.65rem;line-height:1}
.detail-close{position:absolute;top:.6rem;right:.6rem;z-index:1}
#cart-dialog{inset:0 0 0 auto;margin:0;width:min(100%,450px);height:100dvh;max-width:none;max-height:none}
.drawer{padding:1.35rem}
.dialog-head,.total{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.dialog-head{margin-bottom:1.2rem}
.dialog-head h2{font-size:2.4rem}
.cart-list{list-style:none;padding:0;margin:0}
.cart-line{display:grid;grid-template-columns:68px minmax(0,1fr);gap:.85rem;border-bottom:1px solid var(--line);padding-block:1rem}
.cart-line img{width:68px;height:75px;object-fit:cover}
.cart-line small,.line-price{display:block}
.quantity{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;margin-top:.45rem}
.quantity button{min-width:44px;min-height:44px;border:1px solid var(--line);background:transparent}
.quantity .remove{border:0;text-decoration:underline}
.total{padding-block:1rem;font-variant-numeric:tabular-nums}
.checkout{display:flex;width:100%;margin-top:.75rem;justify-content:center}
.skip{position:fixed;z-index:5;top:.5rem;left:1rem;padding:.5rem;background:var(--paper);transform:translateY(-180%)}
.skip:focus{transform:none}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:970px){.products{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){
 .shell{width:calc(100% - 1.5rem)}
 .header-inner{min-height:66px}.brand img{width:54px}
 .hero{grid-template-columns:1fr;margin-top:.8rem}.hero-copy{gap:.85rem}
 .hero>img{height:260px;min-height:0}
 .catalog-head{grid-template-columns:1fr}
 .products{grid-template-columns:repeat(2,minmax(0,1fr))}
 #product-body{grid-template-columns:1fr}
 .detail-photo{height:245px}
 .detail-info{padding:1.25rem}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important}}
@media(min-width:681px){
 .hero h1{font-size:clamp(2.8rem,5.1vw,5rem);text-wrap:balance}
 .hero>img{height:100%;max-height:none;max-width:100%;min-width:0}
}

/* Portada y navegación */
.header nav{gap:clamp(.55rem,2vw,1.3rem);flex-wrap:wrap;justify-content:flex-end}
.header nav a[aria-current=page]{text-decoration:underline;text-underline-offset:.4em}
.home-page{min-height:100svh;display:flex;flex-direction:column}
.home-main{flex:1;display:grid;align-items:center;padding-block:clamp(1rem,4vw,3rem)}
.home-main .hero{margin-top:0;grid-template-columns:.94fr 1.06fr}
.home-main .hero-copy{gap:1.25rem}
.home-main .hero>img{max-height:610px}
@media(max-width:680px){
 .header nav{font-size:.86rem}
 .header nav .cart-button{padding-inline:.45rem}
 .home-main .hero{grid-template-columns:1fr}
 .home-main .hero>img{height:clamp(230px,46vh,360px)}
 .home-main .hero-copy{gap:.8rem}
}
@media(max-width:360px){.header nav a[href="./"]{display:none}}

/* Administración */
.manage{padding-block:clamp(2rem,5vw,4rem);min-height:70vh}
.manage h1{font-size:clamp(2.5rem,6vw,4.5rem);margin-bottom:.5rem}
.manage-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;flex-wrap:wrap}
#admin-status,#editor-status{margin-block:.8rem}
.manage-grid{display:grid;grid-template-columns:minmax(15rem,1fr) minmax(0,2.2fr);gap:1.25rem;align-items:start}
.manage-list,.editor{background:var(--paper);border:1px solid var(--line);padding:clamp(1rem,2.5vw,2rem)}
.manage-list label:not(:first-child),.manage-list details,#admin-count{margin-top:.9rem}
.manage-list summary{cursor:pointer;padding-block:.4rem;font-weight:700}
.manage-list ul{list-style:none;margin:.45rem 0 0;padding:0;max-height:29rem;overflow:auto}
.manage-list li+li{border-top:1px solid var(--line)}
.manage-list li button{width:100%;min-height:44px;text-align:left;border:0;background:none;padding:.5rem}
.manage-list li button:hover,.manage-list li button[aria-current=true]{background:var(--sand)}
.editor h2{font-size:clamp(1.8rem,4vw,3rem);margin-bottom:1rem}
.editor form{display:grid;gap:1rem}
.fields,.option-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.option-row{grid-template-columns:minmax(0,1fr) minmax(0,.65fr) auto;align-items:end;margin-bottom:.65rem}
fieldset{min-width:0;margin:0;border:1px solid var(--line);padding:.8rem}
legend{font-weight:700;padding-inline:.25rem}
fieldset p{margin-bottom:.6rem}
textarea{display:block;width:100%;margin-top:.35rem;padding:.55rem .75rem;border:1px solid #8a887e;background:var(--paper);font:inherit;color:inherit;resize:vertical}
.edit-photos{display:flex;gap:.65rem;flex-wrap:wrap;margin-bottom:.8rem}
.edit-photo{width:108px;display:grid;gap:.35rem}
.edit-photo img{aspect-ratio:1;object-fit:cover}
.edit-photo button{font-size:.78rem;padding:.25rem}
.editor-actions{display:flex;flex-wrap:wrap;gap:.5rem}
@media(max-width:760px){.manage-grid{grid-template-columns:1fr}.manage-list ul{max-height:12rem}}
@media(max-width:420px){.fields{grid-template-columns:1fr}.option-row{grid-template-columns:minmax(0,1fr) minmax(0,.8fr)}}
