/* Public storefront (home page): gallery, About us, filterable catalogue, footer. */
:root{--header-height:4.6rem;--ink:#1a1a1a;--muted:#767676;--line:#e6e6e6;--soft:#f6f5f3;--accent:#1a1a1a;--danger:#b42318;--serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;--sans:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:5rem}
body.storefront{margin:0;color:var(--ink);font-family:var(--sans);background:#fff;-webkit-font-smoothing:antialiased}
body.has-drawer{overflow:hidden}
[hidden]{display:none!important}
a{color:inherit}
img{max-width:100%;display:block}

/* Header */
.site-header{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:1rem clamp(1rem,4vw,3rem);color:var(--ink);background:rgba(255,255,255,.97);box-shadow:0 1px 0 var(--line)}
.site-header__nav{display:flex;justify-content:center;gap:1.5rem}
.site-header__nav a{font-size:.78rem;font-weight:600;letter-spacing:.14em;text-decoration:none;text-transform:uppercase}
.site-header__nav a:hover{text-decoration:underline;text-underline-offset:.35em}
.site-header__brand{justify-self:start;text-decoration:none}
.site-header__brand img{max-height:3rem;width:auto}
.site-header__brand span{font-family:var(--serif);font-size:1.7rem;font-weight:600;letter-spacing:.04em}
.site-header__tools{display:flex;align-items:center;justify-content:flex-end;gap:.6rem}
.site-header__currency{min-height:2rem;border:1px solid currentColor;border-radius:0;padding:.2rem .4rem;color:inherit;background:transparent;font:inherit;font-size:.75rem}
.site-header__currency option{color:var(--ink)}
.site-header__languages{display:flex}
.site-header__languages form{margin:0}
.site-header__languages button{min-width:2rem;min-height:2rem;border:0;padding:.2rem .4rem;color:inherit;background:transparent;font:inherit;font-size:.75rem;font-weight:600;opacity:.65;cursor:pointer}
.site-header__languages button:disabled{opacity:1;text-decoration:underline;text-underline-offset:.3em;cursor:default}
.site-header__account{border:1px solid currentColor;padding:.45rem .8rem;font-size:.72rem;font-weight:600;letter-spacing:.1em;text-decoration:none;text-transform:uppercase}

/* Gallery */
.hero{position:relative;height:calc(100vh - var(--header-height));height:calc(100svh - var(--header-height));min-height:26rem;overflow:hidden;background:#111}
.hero__slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity 1s ease}
.hero__slide.is-active{opacity:1}
.hero__slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:transform 7s ease}
.hero__slide.is-active img{transform:scale(1)}
.hero__slide::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35) 0,transparent 30%,transparent 50%,rgba(0,0,0,.45) 100%)}
.hero__caption{position:absolute;inset:auto 1.5rem 16%;z-index:1;text-align:center;color:#fff}
.hero__caption h2{margin:0 auto;max-width:18ch;font-family:var(--serif);font-size:clamp(2.2rem,6vw,4.5rem);font-weight:500;line-height:1.05;letter-spacing:.06em;text-transform:uppercase}
.hero__caption p{margin:.9rem auto 0;max-width:40rem;font-size:clamp(.95rem,1.6vw,1.1rem)}
.hero__button{display:inline-block;margin-top:1.6rem;padding:.85rem 1.8rem;color:var(--ink);background:#fff;font-size:.78rem;font-weight:600;letter-spacing:.16em;text-decoration:none;text-transform:uppercase;transition:background .2s,color .2s}
.hero__button:hover{color:#fff;background:var(--ink)}
.hero__button--dark{color:#fff;background:var(--ink)}
.hero__button--dark:hover{color:var(--ink);background:#fff;box-shadow:inset 0 0 0 1px var(--ink)}
.hero__arrow{position:absolute;top:50%;z-index:2;width:3rem;height:3rem;border:0;color:#fff;background:transparent;font-size:2.6rem;line-height:1;cursor:pointer;transform:translateY(-50%);opacity:.75}
.hero__arrow:hover{opacity:1}
.hero__arrow--prev{inset-inline-start:1rem}
.hero__arrow--next{inset-inline-end:1rem}
[dir=rtl] .hero__arrow{transform:translateY(-50%) scaleX(-1)}
.hero__dots{position:absolute;inset:auto 0 1.6rem;z-index:2;display:flex;justify-content:center;gap:.6rem}
.hero__dots button{width:.55rem;height:.55rem;border:1px solid #fff;border-radius:50%;padding:0;background:transparent;cursor:pointer}
.hero__dots button.is-active{background:#fff}
.page-banner{padding:4rem 1.5rem;text-align:center;background:var(--soft)}
.page-banner h1{margin:0;font-family:var(--serif);font-size:clamp(2.2rem,6vw,4rem);font-weight:500;letter-spacing:.05em;text-transform:uppercase}
.page-banner p{margin:.8rem auto 0;max-width:36rem;color:var(--muted)}

/* About */
.section-eyebrow{margin:0 0 .6rem;color:var(--muted);font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.about{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));align-items:center;gap:clamp(1.5rem,5vw,4rem);max-width:74rem;margin:0 auto;padding:clamp(3rem,8vw,6rem) clamp(1rem,4vw,3rem)}
.about__image{width:100%;aspect-ratio:4/5;object-fit:cover}
.about__text h2{margin:0 0 1.2rem;font-family:var(--serif);font-size:clamp(2rem,4vw,3rem);font-weight:500}
.about__text p{margin:0 0 1rem;color:#444;font-size:1rem;line-height:1.8}
.about:not(:has(.about__image)){grid-template-columns:1fr;max-width:48rem;text-align:center}

/* Shop */
.shop{max-width:80rem;margin:0 auto;padding:clamp(3rem,7vw,5rem) clamp(1rem,4vw,3rem)}
.shop__heading{margin-bottom:2rem;text-align:center}
.shop__heading h2{margin:0;font-family:var(--serif);font-size:clamp(2rem,4vw,2.8rem);font-weight:500}
.shop__toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}
.shop__filters-toggle{display:none;border:1px solid var(--ink);padding:.5rem .9rem;color:var(--ink);background:#fff;font:inherit;font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.shop__count{margin:0;color:var(--muted);font-size:.85rem}
.shop__sort{display:flex;align-items:center;gap:.5rem;margin-inline-start:auto;color:var(--muted);font-size:.85rem}
.shop__sort select{min-height:2.3rem;border:1px solid var(--line);padding:.3rem .6rem;color:var(--ink);background:#fff;font:inherit}
.shop__layout{display:grid;grid-template-columns:16rem minmax(0,1fr);gap:2.5rem;align-items:start}
.shop__empty{padding:3rem 1rem;color:var(--muted);text-align:center}
.shop__empty button,.filters__reset{border:1px solid var(--ink);padding:.6rem 1.1rem;color:var(--ink);background:#fff;font:inherit;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}

/* Filters */
.filters{position:sticky;top:5.5rem;max-height:calc(100vh - 6.5rem);overflow-y:auto;overscroll-behavior:contain;padding-inline-end:.5rem;scrollbar-width:thin}
.filters__head{display:none}
.filters__group{padding:0 0 1.4rem;margin-bottom:1.4rem;border-bottom:1px solid var(--line)}
.filters__group h3{margin:0 0 .9rem;font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.filters__search{width:100%;min-height:2.5rem;border:1px solid var(--line);padding:.4rem .7rem;font:inherit}
.filters__option{display:flex;align-items:center;gap:.6rem;padding:.3rem 0;font-size:.9rem;cursor:pointer}
.filters__option input{width:1rem;height:1rem;accent-color:var(--accent)}
.filters__option span{flex:1}
.filters__option small{color:var(--muted)}
.filters__suboptions{margin:.1rem 0 .4rem;padding-inline-start:1.6rem;border-inline-start:1px solid var(--line);margin-inline-start:.45rem}
.filters__suboptions .filters__option{font-size:.85rem;padding:.22rem 0}
.filters__reset{width:100%}
.filters__backdrop{display:none}

.price-range{position:relative;height:1.4rem}
.price-range__track{position:absolute;inset:50% 0 auto;height:2px;background:var(--line);transform:translateY(-50%)}
.price-range__track span{position:absolute;top:0;bottom:0;background:var(--ink)}
.price-range input[type=range]{position:absolute;inset:0;width:100%;margin:0;background:none;pointer-events:none;-webkit-appearance:none;appearance:none}
.price-range input[type=range]::-webkit-slider-thumb{width:1rem;height:1rem;border:2px solid var(--ink);border-radius:50%;background:#fff;pointer-events:auto;cursor:pointer;-webkit-appearance:none}
.price-range input[type=range]::-moz-range-thumb{width:.85rem;height:.85rem;border:2px solid var(--ink);border-radius:50%;background:#fff;pointer-events:auto;cursor:pointer}
.price-range input[type=range]::-moz-range-track{background:none}
.price-inputs{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.8rem}
.price-inputs label{display:grid;gap:.2rem;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}
.price-inputs input{min-width:0;min-height:2.3rem;border:1px solid var(--line);padding:.3rem .5rem;color:var(--ink);font:inherit;font-size:.9rem;direction:ltr}
.price-range__label{margin:.7rem 0 0;font-size:.85rem;direction:ltr;text-align:start}

/* Product cards */
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:2rem 1.5rem}
.product-card__media{position:relative;display:grid;place-items:center;aspect-ratio:4/5;overflow:hidden;background:var(--soft)}
.product-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.product-card:hover .product-card__media img{transform:scale(1.05)}
.product-card__media span{color:#c9c4bd;font-family:var(--serif);font-size:3.5rem}
.product-card__badge{position:absolute;top:.8rem;inset-inline-start:.8rem;padding:.25rem .55rem;color:var(--ink);background:#fff;font-size:.68rem;font-style:normal;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.product-card__badge--out{color:#fff;background:var(--danger)}
.product-card__body{padding:.9rem .1rem 0;text-align:center}
.product-card__meta{margin:0;color:var(--muted);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase}
.product-card h3{margin:.4rem 0;font-family:var(--serif);font-size:1.25rem;font-weight:500;line-height:1.25}
.product-card__description{margin:0 0 .5rem;color:var(--muted);font-size:.85rem;line-height:1.5}
.product-card__price{display:block;font-size:.95rem;font-weight:600}

/* Footer */
.site-footer{padding:3.5rem clamp(1rem,4vw,3rem) 1.5rem;background:#efefef;color:#444}
.site-footer__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:2rem;max-width:74rem;margin:0 auto}
.site-footer__logo{display:block;max-width:10rem;max-height:4rem;width:auto;margin:0 0 1rem;object-fit:contain}
.site-footer h2{margin:0 0 1rem;color:var(--ink);font-family:var(--serif);font-size:1.6rem;font-weight:500}
.site-footer h3{margin:0 0 1rem;color:var(--ink);font-size:.85rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.site-footer ul{display:grid;gap:.6rem;margin:0;padding:0;list-style:none;font-size:.9rem}
.site-footer a{text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.site-footer__contact li{display:flex;gap:.6rem}
.site-footer__contact span{width:1rem;color:var(--muted)}
.site-footer__copy{max-width:74rem;margin:2.5rem auto 0;padding-top:1.5rem;border-top:1px solid #dcdcdc;color:var(--muted);font-size:.8rem;text-align:center}

@media (max-width:900px){
    .site-header{grid-template-columns:auto 1fr;row-gap:.5rem}
    .site-header__nav{grid-column:1/-1;grid-row:2;justify-content:center;gap:1.1rem}
    .site-header__brand{justify-self:start}
    .site-header__account{display:none}
    .shop__layout{grid-template-columns:1fr}
    .shop__filters-toggle{display:inline-block}
    .filters{position:fixed;inset:0 auto 0 0;z-index:40;width:min(22rem,88vw);max-height:none;padding:1.2rem;overflow-y:auto;background:#fff;transform:translateX(-105%);transition:transform .25s}
    [dir=rtl] .filters{inset:0 0 0 auto;transform:translateX(105%)}
    .filters.is-open{transform:none}
    .filters__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.2rem}
    .filters__head button{border:0;background:none;font-size:1.8rem;line-height:1;cursor:pointer}
    .filters__backdrop{display:block;position:fixed;inset:0;z-index:30;background:rgba(0,0,0,.35)}
}
@media (max-width:560px){
    .site-header__languages button{min-width:1.6rem}
    .product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem .8rem}
    .product-card h3{font-size:1.05rem}
    .shop__sort{margin-inline-start:0;width:100%}
    .shop__sort select{flex:1}
}
@media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    .hero__slide,.hero__slide img,.product-card__media img{transition:none}
}

/* Footer extras */
.site-footer__text{margin:0 0 1rem;max-width:22rem;line-height:1.7;font-size:.9rem}
.site-footer__social{display:flex;gap:.6rem;margin-top:1.2rem}
.site-footer__social a{display:grid;place-items:center;width:2.2rem;height:2.2rem;border:1px solid #cfcfcf;border-radius:50%;color:var(--ink)}
.site-footer__social a:hover{color:#fff;background:var(--ink);border-color:var(--ink);text-decoration:none}

/* Contact page */
.page-banner--compact{padding:3rem 1.5rem}
.page-banner--compact .section-eyebrow{margin-bottom:.4rem}
.page-banner--image{position:relative;display:grid;place-content:center;min-height:clamp(16rem,40vh,24rem);padding:3rem 1.5rem;color:#fff;background-color:#5c6761;background-size:cover;background-position:center}
.page-banner--image::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.35)}
.page-banner--image > *{position:relative}
.page-banner--image h1{text-shadow:0 1px 12px rgba(0,0,0,.25)}
.page-banner__crumbs{display:flex;justify-content:center;gap:.5rem;margin-top:.9rem;font-size:.8rem;letter-spacing:.08em;opacity:.9}
.page-banner__crumbs a{color:inherit;text-decoration:none}
.page-banner__crumbs a:hover{text-decoration:underline}
.contact__intro{max-width:40rem;margin:0 auto;padding:clamp(2rem,5vw,3rem) clamp(1rem,4vw,3rem) 0;color:var(--muted);text-align:center;line-height:1.7}
.contact{display:grid;grid-template-columns:minmax(0,22rem) minmax(0,1fr);gap:clamp(1.5rem,5vw,4rem);max-width:74rem;margin:0 auto;padding:clamp(2.5rem,6vw,4.5rem) clamp(1rem,4vw,3rem)}
.contact:not(:has(.contact__map)){grid-template-columns:1fr;max-width:40rem;text-align:center}
.contact__item{padding-bottom:1.4rem;margin-bottom:1.4rem;border-bottom:1px solid var(--line)}
.contact__item:last-child{border-bottom:0}
.contact__item h2{margin:0 0 .6rem;font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.contact__item p{margin:.2rem 0;color:#444;line-height:1.7}
.contact__item a{text-decoration:none}
.contact__item a:hover{text-decoration:underline}
.contact__whatsapp{margin-top:1rem}
.contact__map{min-height:24rem;background:var(--soft)}
.contact__map iframe{display:block;width:100%;height:100%;min-height:24rem;border:0}
.site-header__nav a[aria-current=page]{text-decoration:underline;text-underline-offset:.35em}
@media (max-width:900px){
    .contact{grid-template-columns:1fr}
}

/* Offers */
.offers{max-width:80rem;margin:0 auto;padding:clamp(3rem,7vw,5rem) clamp(1rem,4vw,3rem) 0}
.offers__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));gap:1.5rem}
.offer-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);background:#fff;transition:box-shadow .25s,transform .25s}
.offer-card:hover{box-shadow:0 18px 40px rgba(0,0,0,.08);transform:translateY(-2px)}
.offer-card__media{position:relative;display:grid;place-items:center;aspect-ratio:4/3;overflow:hidden;background:var(--soft)}
.offer-card__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.offer-card__media span{color:#c9c4bd;font-family:var(--serif);font-size:4rem}
.offer-card__badge{position:absolute;top:1rem;inset-inline-start:1rem;padding:.35rem .7rem;color:#fff;background:var(--danger);font-size:.72rem;font-style:normal;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.offer-card__body{display:flex;flex:1;flex-direction:column;gap:.55rem;padding:1.2rem 1.25rem 1.4rem}
.offer-card h3{margin:0;font-family:var(--serif);font-size:1.5rem;font-weight:500;line-height:1.2}
.offer-card__description{margin:0;color:var(--muted);font-size:.88rem;line-height:1.55}
.offer-card__includes{margin:0;color:#444;font-size:.85rem;line-height:1.5}
.offer-card__includes span{color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.offer-card__prices{display:flex;flex-wrap:wrap;align-items:baseline;gap:.7rem;margin-top:auto;padding-top:.4rem}
.offer-card__prices s{color:var(--muted);font-size:.9rem}
.offer-card__prices strong{color:var(--danger);font-size:1.25rem}
.offer-card__until{margin:0;color:var(--muted);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}

/* Offers inside the shop grid */
.product-card__badge--offer{color:#fff;background:var(--danger)}
.product-card--offer .product-card__media{background:#fbf3ef}
.product-card__prices{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.5rem}
.product-card__prices s{color:var(--muted);font-size:.85rem}
.product-card--offer .product-card__price{color:var(--danger)}

/* Clickable cards */
[data-cart-item]{cursor:pointer}
[data-cart-item]:focus-visible{outline:2px solid var(--ink);outline-offset:3px}

/* Header cart button */
.site-header__cart{position:relative;display:grid;place-items:center;width:2.4rem;height:2.4rem;border:0;color:inherit;background:transparent;cursor:pointer}
.site-header__cart-count{position:absolute;top:.1rem;inset-inline-end:0;min-width:1.15rem;height:1.15rem;border-radius:999px;padding:0 .3rem;color:#fff;background:var(--danger);font-size:.65rem;font-weight:700;line-height:1.15rem;text-align:center}

/* Item window */
.item-dialog{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:1rem}
.item-dialog__backdrop,.cart__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.item-dialog__panel{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:min(100%,56rem);max-height:calc(100vh - 2rem);overflow:auto;background:#fff;box-shadow:0 30px 80px rgba(0,0,0,.25)}
.item-dialog__close{position:absolute;top:.6rem;inset-inline-end:.6rem;z-index:1;width:2.4rem;height:2.4rem;border:0;border-radius:50%;color:var(--ink);background:rgba(255,255,255,.9);font-size:1.6rem;line-height:1;cursor:pointer}
.item-dialog__media{display:grid;place-items:center;min-height:20rem;background:var(--soft)}
.item-dialog__media img{width:100%;height:100%;max-height:36rem;object-fit:cover}
.item-dialog__media span{color:#c9c4bd;font-family:var(--serif);font-size:5rem}
.item-dialog__media--gallery{display:grid;grid-template-columns:4.5rem minmax(0,1fr);place-items:stretch;gap:.6rem;padding:.6rem}
.item-gallery__thumbs{display:flex;flex-direction:column;gap:.5rem;max-height:36rem;overflow-y:auto;scrollbar-width:thin}
.item-gallery__thumbs button{flex:0 0 auto;border:1px solid transparent;padding:0;background:#fff;cursor:pointer;opacity:.6;transition:opacity .2s,border-color .2s}
.item-gallery__thumbs button:hover,.item-gallery__thumbs button[aria-current=true]{border-color:var(--ink);opacity:1}
.item-gallery__thumbs img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover}
.item-gallery__stage{position:relative;display:grid;place-items:center;min-height:20rem;background:#fff}
.item-dialog__media--gallery .item-gallery__stage img{width:100%;height:100%;max-height:36rem;object-fit:contain}
.item-gallery__arrow{position:absolute;top:50%;width:2.2rem;height:2.2rem;border:0;border-radius:50%;color:var(--ink);background:rgba(255,255,255,.85);box-shadow:0 2px 8px rgba(0,0,0,.12);font-size:1.5rem;line-height:1;cursor:pointer;transform:translateY(-50%)}
.item-gallery__arrow--prev{inset-inline-start:.5rem}
.item-gallery__arrow--next{inset-inline-end:.5rem}
[dir=rtl] .item-gallery__arrow{transform:translateY(-50%) scaleX(-1)}
.item-dialog__body{display:flex;flex-direction:column;gap:.8rem;padding:clamp(1.4rem,4vw,2.5rem)}
.item-dialog__body h2{margin:0;font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.2rem);font-weight:500;line-height:1.15}
.item-dialog__prices{display:flex;flex-wrap:wrap;align-items:baseline;gap:.7rem;margin:0}
.item-dialog__prices s{color:var(--muted)}
.item-dialog__prices strong{font-size:1.4rem}
.item-dialog__details,.item-dialog__description{margin:0;color:#555;font-size:.92rem;line-height:1.7;white-space:pre-line}
.item-dialog__details:empty,.item-dialog__description:empty{display:none}
.item-dialog__buy{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:auto;padding-top:1rem}
.item-dialog__add{flex:1;margin:0;border:0;cursor:pointer;font-family:inherit}
.item-dialog__unavailable{margin:auto 0 0;color:var(--danger);font-weight:600}
.item-dialog__added{margin:0;color:#15803d;font-size:.88rem;font-weight:600}
.item-dialog__added button{border:0;padding:0;color:var(--ink);background:none;font:inherit;text-decoration:underline;cursor:pointer}
.quantity-picker{display:flex;border:1px solid var(--line)}
.quantity-picker button{width:2.8rem;border:0;color:var(--ink);background:#fff;font-size:1.2rem;cursor:pointer}
.quantity-picker input{width:3rem;border:0;text-align:center;font:inherit;-moz-appearance:textfield}
.quantity-picker input::-webkit-inner-spin-button{-webkit-appearance:none}

/* Cart drawer */
.cart{position:fixed;inset:0;z-index:70}
.cart__panel{position:absolute;inset:0 0 0 auto;display:flex;flex-direction:column;width:min(100%,27rem);background:#fff;box-shadow:-20px 0 60px rgba(0,0,0,.2)}
[dir=rtl] .cart__panel{inset:0 auto 0 0}
.cart__head{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.3rem;border-bottom:1px solid var(--line)}
.cart__head h2{margin:0;font-family:var(--serif);font-size:1.6rem;font-weight:500}
.cart__head button{border:0;background:none;font-size:1.8rem;line-height:1;cursor:pointer}
.cart__step{display:flex;flex:1;flex-direction:column;gap:1rem;min-height:0;padding:1.2rem 1.3rem;overflow-y:auto}
.cart__items{display:grid;gap:.9rem}
.cart-line{display:grid;grid-template-columns:3.6rem minmax(0,1fr) auto;grid-template-areas:"media info remove" "media qty total";gap:.35rem .8rem;align-items:center;padding-bottom:.9rem;border-bottom:1px solid var(--line)}
.cart-line__media{grid-area:media;display:grid;place-items:center;width:3.6rem;height:3.6rem;overflow:hidden;color:#c9c4bd;background:var(--soft);font-family:var(--serif);font-size:1.5rem}
.cart-line__media img{width:100%;height:100%;object-fit:cover}
.cart-line__info{grid-area:info;min-width:0}
.cart-line__info strong{display:block;font-size:.92rem}
.cart-line__info small{display:block;overflow:hidden;color:var(--muted);font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}
.cart-line__qty{grid-area:qty;display:flex;align-items:center;width:max-content;border:1px solid var(--line)}
.cart-line__qty button{width:1.9rem;height:1.9rem;border:0;background:#fff;cursor:pointer}
.cart-line__qty span{min-width:1.8rem;text-align:center;font-size:.85rem}
.cart-line__total{grid-area:total;font-size:.9rem;text-align:end}
.cart-line__remove{grid-area:remove;justify-self:end;border:0;color:var(--muted);background:none;font-size:1.3rem;line-height:1;cursor:pointer}
.cart__empty{margin:2rem 0;color:var(--muted);text-align:center}
.cart__totals{display:grid;gap:.45rem;margin:auto 0 0;padding-top:1rem;border-top:1px solid var(--line)}
.cart__totals div{display:flex;justify-content:space-between;gap:1rem;color:#555;font-size:.92rem}
.cart__totals dt,.cart__totals dd{margin:0}
.cart__grand{color:var(--ink)!important;font-size:1.1rem!important;font-weight:700}
.cart__next,.cart__actions .hero__button{width:100%;margin:0;border:0;cursor:pointer;font-family:inherit;text-align:center}
.cart__actions .hero__button:disabled,.cart__actions .hero__button:disabled:hover{color:#fff;background:var(--ink);box-shadow:none;opacity:.55;cursor:wait}
.cart__form label{display:grid;gap:.35rem;font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.cart__form label small{font-weight:400;text-transform:none}
.cart__form input,.cart__form textarea{width:100%;border:1px solid var(--line);padding:.7rem .8rem;color:var(--ink);font:inherit;font-size:.95rem;letter-spacing:normal;text-transform:none}
.cart__form input:focus,.cart__form textarea:focus{outline:2px solid var(--ink);outline-offset:-1px}
.cart__hint{margin:0;color:var(--muted);font-size:.85rem;line-height:1.6}
.cart__error{margin:0;padding:.7rem .8rem;color:var(--danger);background:#fef2f2;font-size:.85rem}
.cart__actions{display:grid;grid-template-columns:auto 1fr;gap:.6rem;align-items:center}
.cart__back{border:1px solid var(--ink);padding:.85rem 1rem;color:var(--ink);background:#fff;font:inherit;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.cart__done{align-items:center;justify-content:center;text-align:center}
.cart__done-icon{display:grid;place-items:center;width:4rem;height:4rem;border-radius:50%;color:#fff;background:#15803d;font-size:2rem}
.cart__done p{margin:0;color:#444;line-height:1.7}

@media (max-width:720px){
    .item-dialog{place-items:end center;padding:0}
    .item-dialog__panel{grid-template-columns:1fr;max-height:92vh}
    .item-dialog__media{min-height:14rem;max-height:40vh}
    .item-dialog__media--gallery{grid-template-columns:1fr;max-height:none}
    .item-gallery__thumbs{order:2;flex-direction:row;max-height:none;overflow-x:auto}
    .item-gallery__thumbs button{width:3.5rem}
    .item-gallery__stage{min-height:14rem}
    .item-dialog__media--gallery .item-gallery__stage img{max-height:40vh}
}
.item-dialog__panel:has(.item-dialog__media--gallery){width:min(100%,68rem);grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
@media (max-width:720px){.item-dialog__panel:has(.item-dialog__media--gallery){grid-template-columns:1fr}}
/* Variations (e.g. sizes): listed on the card, picked in the item window */
.product-card__variants{margin:.2rem 0 .35rem;color:var(--muted);font-size:.78rem;letter-spacing:.04em}
.product-card__price small{color:var(--muted);font-size:.75rem;font-weight:500}
.item-variants{margin:0;padding:0;border:0}
.item-variants legend{margin-bottom:.5rem;padding:0;color:var(--muted);font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.item-variants__options{display:flex;flex-wrap:wrap;gap:.5rem}
.item-variants__options button{min-width:3rem;padding:.55rem .9rem;border:1px solid var(--line);color:var(--ink);background:#fff;font:inherit;font-size:.85rem;cursor:pointer}
.item-variants__options button[aria-pressed=true]{border-color:var(--ink);color:#fff;background:var(--ink)}
.item-variants__options button.is-unavailable{color:var(--muted);text-decoration:line-through}
.item-variants__options button.is-unavailable[aria-pressed=true]{color:#fff}
.item-dialog__stock{margin:0;color:#b45309;font-size:.85rem;font-weight:600}
.cart__trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.cart__human{min-height:65px}

/* Schedule appointment */
.about--appointment{padding-bottom:0}
.booking{max-width:74rem;margin:0 auto;padding:clamp(2.5rem,6vw,4.5rem) clamp(1rem,4vw,3rem)}
.booking__layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,22rem);gap:clamp(1.5rem,4vw,3rem);align-items:start}
.booking__toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.booking__toolbar h2{margin:0;font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.2rem);font-weight:500;text-transform:capitalize}
.booking__nav{display:grid;place-items:center;width:2.5rem;height:2.5rem;border:1px solid var(--line);color:var(--ink);font-size:1.4rem;line-height:1;text-decoration:none}
.booking__nav:hover{border-color:var(--ink)}
.booking__nav.is-disabled{color:var(--line)}
[dir=rtl] .booking__nav{transform:scaleX(-1)}
.booking__weekdays,.booking__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem}
.booking__weekdays span{padding:.4rem 0;color:var(--muted);font-size:.7rem;font-weight:600;letter-spacing:.12em;text-align:center;text-transform:uppercase}
.booking__day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;min-height:4.2rem;border:1px solid var(--line);padding:.35rem .2rem;color:var(--muted);background:#fff;font:inherit}
.booking__day time{font-size:1rem;font-weight:600}
.booking__day small{font-size:.65rem;line-height:1.2;text-align:center}
.booking__day--outside{border-color:transparent;background:transparent}
.booking__day--closed{background:var(--soft);color:#b3b3b3}
.booking__day--full{background:#fdf2f2;color:#b45353}
.booking__day--open{color:var(--ink);cursor:pointer;transition:border-color .15s,background .15s}
.booking__day--open small{color:#15803d}
.booking__day--open:hover{border-color:var(--ink)}
.booking__day--open[aria-pressed=true]{color:#fff;background:var(--ink);border-color:var(--ink)}
.booking__day--open[aria-pressed=true] small{color:#d1fae5}
.booking__legend{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem;color:var(--muted);font-size:.75rem}
.booking__legend span{display:inline-flex;align-items:center;gap:.4rem}
.booking__dot{display:inline-block;width:.7rem;height:.7rem;border:1px solid var(--line);background:var(--soft)}
.booking__dot--open{border-color:#15803d;background:#dcfce7}
.booking__dot--full{border-color:#e7b4b4;background:#fdf2f2}
.booking__hint{margin:1rem 0 0;color:var(--muted);line-height:1.6}
.booking__panel{position:sticky;top:calc(var(--header-height) + 1rem);display:grid;gap:1.2rem;border:1px solid var(--line);padding:1.4rem}
.booking__panel > .booking__hint{margin:0}
.booking__panel h3{margin:0 0 .8rem;font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.booking__slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));gap:.4rem}
.booking__slot{border:1px solid var(--line);padding:.6rem .3rem;color:var(--ink);background:#fff;font:inherit;font-size:.85rem;cursor:pointer}
.booking__slot:hover{border-color:var(--ink)}
.booking__slot[aria-pressed=true]{color:#fff;background:var(--ink);border-color:var(--ink)}
.booking__slot.is-booked{color:#c4c4c4;background:var(--soft);text-decoration:line-through;cursor:not-allowed}
.booking__form{display:grid;gap:.9rem;padding-top:1.2rem;border-top:1px solid var(--line)}
.booking__summary{margin:0;font-weight:600;line-height:1.5}
.booking__summary:empty{display:none}
.booking__submit{width:100%;margin:0;border:0;cursor:pointer;font-family:inherit}
.booking__done{display:grid;gap:.3rem;margin-bottom:2rem;border:1px solid #bbf7d0;padding:1rem 1.2rem;color:#14532d;background:#f0fdf4}
.booking__done small{color:#166534}
@media (max-width:900px){
    .booking__layout{grid-template-columns:1fr}
    .booking__panel{position:static}
}
@media (max-width:520px){
    .booking__weekdays,.booking__grid{gap:.2rem}
    .booking__day{min-height:3.2rem}
    .booking__day small{display:none}
    .booking__day--open{box-shadow:inset 0 -3px 0 #22c55e}
}
.item-related{grid-column:1/-1;padding:clamp(1.2rem,3vw,2rem) clamp(1.4rem,4vw,2.5rem);border-top:1px solid var(--line)}
.item-related h3{margin:0 0 1rem;font-family:var(--serif);font-size:1.3rem;font-weight:500}
.item-related__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:1rem}
.item-related__card{display:flex;flex-direction:column;gap:.35rem;padding:0;border:0;color:var(--ink);background:none;font:inherit;text-align:start;cursor:pointer}
.item-related__media{display:grid;place-items:center;aspect-ratio:4/5;overflow:hidden;background:var(--soft);color:#c9c4bd;font-family:var(--serif);font-size:2.2rem}
.item-related__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.item-related__card:hover .item-related__media img,.item-related__card:focus-visible .item-related__media img{transform:scale(1.05)}
.item-related__name{font-size:.88rem;line-height:1.35}
.item-related__price{font-size:.9rem}
.item-related__card.is-unavailable .item-related__media{opacity:.55}
@media (max-width:720px){.item-related__list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (prefers-reduced-motion:reduce){.item-related__media img{transition:none}}
/* Floating WhatsApp button on every storefront page. */
.whatsapp-float{position:fixed;bottom:1.25rem;inset-inline-start:1.25rem;z-index:50;display:grid;place-items:center;width:3.4rem;height:3.4rem;border-radius:50%;color:#fff;background:#25d366;box-shadow:0 6px 18px rgba(0,0,0,.22);transition:transform .2s}
.whatsapp-float:hover{transform:scale(1.08)}
.whatsapp-float svg{width:1.9rem;height:1.9rem}
/* Contact page: "Send us a message" form with a pick-the-icon human check. */
.contact-form{max-width:52rem;margin:0 auto;padding:0 clamp(1rem,4vw,3rem) clamp(2.5rem,6vw,4.5rem)}
.contact-form h2{margin:0 0 1.4rem;font-size:1.4rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.contact-form form{display:grid;gap:1rem}
.contact-form__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
@media (max-width:640px){.contact-form__row{grid-template-columns:1fr}}
.contact-form__human{margin:0;border:1px solid var(--line);padding:1rem 1.2rem}
.contact-form__human legend{padding:0 .3rem;font-size:.9rem;color:#444}
.contact-form__human legend strong{color:var(--ink)}
.contact-form__icons{display:flex;justify-content:center;gap:1rem;margin-top:.6rem}
.contact-form__icons label{position:relative;display:block;cursor:pointer}
.contact-form__icons input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;pointer-events:none}
.contact-form__icons span{display:grid;place-items:center;width:3rem;height:3rem;border:1px solid transparent;color:var(--ink)}
.contact-form__icons span svg{width:1.6rem;height:1.6rem}
.contact-form__icons input:focus-visible+span{outline:2px solid var(--ink)}
.contact-form__icons input:checked+span{border-color:var(--ink);background:var(--soft)}
.contact-form__submit{justify-self:start}
