@font-face {
    font-family:"Marcellus";
    src:url("../fonts/marcellus.woff2") format("woff2");
    font-display:swap;
    font-weight:400;
    font-style:normal;
    unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family:"Marcellus Fallback";
    src:local("Georgia");
    size-adjust:103%;
    descent-override:27%;
    line-gap-override:0%;
    ascent-override:94%;
}
@font-face {
    font-family:"Quattrocento Sans";
    src:url("../fonts/quattrocento-sans.woff2") format("woff2");
    font-display:swap;
    font-weight:400;
    font-style:normal;
    unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family:"Quattrocento Sans Fallback";
    src:local("Arial");
    size-adjust:97%;
    descent-override:27%;
    line-gap-override:0%;
    ascent-override:88%;
}
@font-face {
    font-family:"Quattrocento Sans";
    src:url("../fonts/quattrocento-sans-700.woff2") format("woff2");
    font-display:swap;
    font-weight:700;
    font-style:normal;
    unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* tokens from brand metaphor "lino en niebla" */
:root {
    --color-fondo:rgb(27,34,41);
    --color-tela:rgb(37,46,55);
    --color-borde:rgb(58,70,82);
    --color-niebla:rgb(230,234,238);
    --color-bruma:rgb(163,174,185);
    --color-claro:rgb(221,227,233);
    --color-claro-txt:rgb(27,34,41);
    --color-indigo:rgb(79,111,138);
    --color-indigo-link:rgb(143,169,191);
    --color-sombra:rgb(12,16,20);

    --space-xs:.5rem;
    --space-sm:.85rem;
    --space-md:1.25rem;
    --space-lg:2rem;
    --space-xl:3.25rem;
    --space-xxl:5rem;

    --fuente-tit:"Marcellus","Marcellus Fallback",Georgia,serif;
    --fuente-txt:"Quattrocento Sans","Quattrocento Sans Fallback",Arial,sans-serif;
    --ancho:1200px;
}

html {
    scroll-padding-top:132px;
}

p {
    margin:0 0 var(--space-md);
}

/* js reveal */
.js-only {
    display:none;
}

.with-js .menu-x,
.with-js .tray-x {
    display:inline-block;
}

.with-js .btn.js-only {
    display:inline-block;
}

.with-js .btn-block.js-only {
    display:block;
}

/* tap targets: standalone header links */
.hd-tel,
.hd-logo,
.hd-cart,
.hd-nav a {
    display:inline-flex;
    align-items:center;
    min-height:44px;
}

/* sections */
.sec-tight {
    padding-top:var(--space-lg);
    padding-bottom:var(--space-lg);
}

.band {
    background:var(--color-tela);
    border-top:1px solid var(--color-borde);
    border-bottom:1px solid var(--color-borde);
}

.sec-t {
    font-size:clamp(1.3rem,2.4vw,1.9rem);
    text-transform:uppercase;
    letter-spacing:.05em;
    margin:0 0 var(--space-lg);
}

/* hero media vignette, straight corners */
.hero-med::after {
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    box-shadow:inset 0 0 90px rgba(12,16,20,.55);
}

/* accordion (native details) */
.acc {
    display:grid;
    gap:var(--space-sm);
    max-width:860px;
}

.acc-it {
    border:1px solid var(--color-borde);
    background:var(--color-tela);
}

.acc-q {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:var(--space-md);
    padding:var(--space-md);

    font-family:var(--fuente-tit);
    font-size:1.05rem;
    cursor:pointer;
    list-style:none;
}

.acc-q::-webkit-details-marker {
    display:none;
}

.acc-q::after {
    content:"+";
    color:var(--color-indigo-link);
    font-size:1.3rem;
    line-height:1;
}

.acc-it[open] .acc-q::after {
    content:"\2212";
}

.acc-a {
    padding:0 var(--space-md) var(--space-md);
    color:var(--color-bruma);
}

.acc-a p {
    margin:0;
}

/* playbill rows */
.pbr {
    border-top:1px solid var(--color-borde);
}

.pbr-row {
    border-bottom:1px solid var(--color-borde);
}

.pbr-q {
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:var(--space-md);
    padding:var(--space-md) 0;

    font-family:var(--fuente-tit);
    text-transform:uppercase;
    letter-spacing:.03em;
    font-size:clamp(1.1rem,2vw,1.5rem);
    cursor:pointer;
    list-style:none;
}

.pbr-q::-webkit-details-marker {
    display:none;
}

.pbr-from {
    color:var(--color-indigo-link);
    font-family:var(--fuente-txt);
    font-size:.85rem;
    letter-spacing:0;
    text-transform:none;
    margin-left:auto;
    padding-right:var(--space-md);
}

.pbr-q::after {
    content:"+";
    color:var(--color-indigo-link);
    font-size:1.2rem;
    line-height:1;
}

.pbr-row[open] .pbr-q::after {
    content:"\2212";
}

.pbr-panel {
    display:grid;
    grid-template-columns:minmax(0,300px) 1fr;
    gap:var(--space-lg);
    align-items:center;
    padding-bottom:var(--space-lg);
}

.pbr-med img,
.pbr-med .swatch {
    width:100%;
    height:auto;
    border:1px solid var(--color-borde);
    box-shadow:8px 8px 0 var(--color-sombra);
}

.pbr-med .swatch {
    display:block;
    aspect-ratio:4 / 3;
}

.pbr-body p {
    color:var(--color-bruma);
}

/* marquee band */
.mrq {
    overflow:hidden;
    border-top:1px solid var(--color-borde);
    border-bottom:1px solid var(--color-borde);
    padding-top:var(--space-sm);
    padding-bottom:var(--space-sm);
}

.mrq-track {
    display:flex;
    width:max-content;
    white-space:nowrap;
    animation:mrq 34s linear infinite;
}

.mrq-track span {
    padding:0 1.2rem;
    font-family:var(--fuente-tit);
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:.9rem;
    color:var(--color-bruma);
}

.mrq-dot {
    color:var(--color-indigo-link);
    padding:0 .5rem;
}

@keyframes mrq {
    from { transform:translateX(0); }
    to { transform:translateX(-50%); }
}

/* about + quotes */
.about {
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:var(--space-xl);
    align-items:start;
}

.about-txt p {
    color:var(--color-bruma);
}

.about-rev {
    display:grid;
    gap:var(--space-md);
}

.quote {
    margin:0;
    border-left:3px solid var(--color-indigo);
    background:var(--color-tela);
    padding:var(--space-md);
}

.quote blockquote {
    margin:0;
}

.quote p {
    margin:0;
    font-style:italic;
    color:var(--color-niebla);
}

/* cta band (light tile exception) */
.cta-band {
    background:var(--color-claro);
    color:var(--color-claro-txt);
}

.cta-in {
    max-width:720px;
}

.cta-band p {
    color:rgb(55,66,77);
}

.cta-btns {
    display:flex;
    align-items:center;
    gap:var(--space-md);
    flex-wrap:wrap;
    margin-top:var(--space-md);
}

.cta-alt {
    margin-top:var(--space-sm);
}

.pbr-more {
    margin:.5rem 0 0;
}

.ft-contact {
    margin-top:var(--space-sm);
    font-size:.9rem;
    color:var(--color-bruma);
}

.ft-contact a {
    color:var(--color-indigo-link);
}

.cta-band .lnk {
    color:var(--color-claro-txt);
}

/* collection filter bar */
.fbar {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:.5rem;
    margin-top:var(--space-md);
}

.fbar-l {
    color:var(--color-bruma);
    font-size:.85rem;
}

.fchip {
    border:1px solid var(--color-borde);
    border-radius:999px;
    padding:.35em .9em;
    font-size:.85rem;
    color:var(--color-niebla);
    text-decoration:none;
}

.fchip:hover {
    background:var(--color-tela);
}

/* product grid + cards (offset frame) */
.sec-cat {
    scroll-margin-top:132px;
}

.pgrid {
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
    gap:var(--space-lg);
}

.crd {
    display:flex;
    flex-direction:column;
    border:1px solid var(--color-borde);
    background:var(--color-tela);
    box-shadow:8px 8px 0 var(--color-sombra);
}

.crd-med {
    display:block;
}

.crd-med img,
.crd-med .swatch {
    width:100%;
    height:auto;
    aspect-ratio:4 / 3;
    object-fit:cover;
    display:block;
}

.crd-body {
    display:flex;
    flex-direction:column;
    gap:.2rem;
    padding:var(--space-md);
    flex:1;
}

.crd-cat {
    margin:0;
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--color-indigo-link);
}

.crd-cat a {
    color:inherit;
    text-decoration:none;
}

.crd-t {
    font-size:1.1rem;
    margin:.1rem 0;
}

.crd-t a {
    color:var(--color-niebla);
    text-decoration:none;
}

.crd-t a:hover {
    color:var(--color-indigo-link);
}

.crd-col {
    margin:0;
    color:var(--color-bruma);
    font-size:.9rem;
}

.crd-price {
    margin:auto 0 0;
    padding-top:.5rem;
    font-family:var(--fuente-tit);
    font-size:1.15rem;
}

/* fabric swatches (products with no photo) */
.swatch {
    position:relative;
    overflow:hidden;
}

.fab-cotton {
    background-image:repeating-linear-gradient(0deg,rgba(0,0,0,.06) 0,rgba(0,0,0,.06) 1px,transparent 1px,transparent 16px),repeating-linear-gradient(90deg,rgba(0,0,0,.06) 0,rgba(0,0,0,.06) 1px,transparent 1px,transparent 16px);
}

/* product page */
.prod-in {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:var(--space-xl);
    align-items:start;
}

.prod-med img,
.prod-med .swatch {
    width:100%;
    height:auto;
    border:1px solid var(--color-borde);
    box-shadow:10px 10px 0 var(--color-sombra);
}

.prod-med .swatch {
    display:block;
    aspect-ratio:4 / 3;
}

.prod-info h1 {
    font-size:clamp(1.6rem,3vw,2.2rem);
    margin:.2rem 0 .3rem;
}

.prod-col {
    color:var(--color-bruma);
    margin:0 0 var(--space-sm);
}

.prod-price {
    font-family:var(--fuente-tit);
    font-size:1.6rem;
    margin:0 0 var(--space-md);
}

.prod-price span {
    font-family:var(--fuente-txt);
    font-size:.75rem;
    text-transform:uppercase;
    letter-spacing:.05em;
    color:var(--color-bruma);
}

.prod-desc {
    color:var(--color-bruma);
}

[data-prod-form] {
    margin-top:var(--space-md);
}

.sz {
    border:1px solid var(--color-borde);
    padding:var(--space-md);
    margin:0 0 var(--space-md);
}

.sz legend {
    padding:0 .4em;
    font-family:var(--fuente-tit);
    text-transform:uppercase;
    letter-spacing:.05em;
    font-size:.8rem;
    color:var(--color-indigo-link);
}

.sz-opt {
    display:flex;
    align-items:center;
    gap:.6rem;
    padding:.55rem 0;
    border-bottom:1px solid var(--color-borde);
    cursor:pointer;
}

.sz-opt:last-child {
    border-bottom:0;
    padding-bottom:0;
}

.sz-lab {
    flex:1;
}

.sz-pr {
    font-family:var(--fuente-tit);
    white-space:nowrap;
}

.sz-dis {
    color:var(--color-bruma);
    cursor:not-allowed;
}

.qty {
    display:flex;
    align-items:center;
    gap:.8rem;
    margin:0 0 var(--space-md);
}

.qty input {
    width:4.5rem;
    padding:.5em;
    border-radius:0;
    background:var(--color-fondo);
    color:var(--color-niebla);
    border:1px solid var(--color-borde);
    font-size:1rem;
}

[data-add-hint] {
    min-height:1.2em;
    margin:0 0 var(--space-sm);
    color:var(--color-indigo-link);
    font-size:.9rem;
}

.prod-meta {
    border-top:1px solid var(--color-borde);
    margin-top:var(--space-lg);
    padding-top:var(--space-md);
}

.prod-meta dt {
    font-family:var(--fuente-tit);
    text-transform:uppercase;
    font-size:.74rem;
    letter-spacing:.06em;
    color:var(--color-indigo-link);
    margin-top:var(--space-sm);
}

.prod-meta dd {
    margin:0 0 .4rem;
    color:var(--color-bruma);
}

.prod-meta dd a {
    color:var(--color-indigo-link);
}

/* two column layouts */
.two-col {
    display:grid;
    grid-template-columns:1.3fr .7fr;
    gap:var(--space-xl);
    align-items:start;
}

.two-main {
    min-width:0;
}

.two-aside {
    min-width:0;
}

/* info card */
.info-crd {
    border:1px solid var(--color-borde);
    background:var(--color-tela);
    box-shadow:8px 8px 0 var(--color-sombra);
    padding:var(--space-lg);
}

.info-crd + .info-crd {
    margin-top:var(--space-lg);
}

.info-crd p {
    color:var(--color-bruma);
}

.defs dt {
    font-family:var(--fuente-tit);
    text-transform:uppercase;
    font-size:.74rem;
    letter-spacing:.06em;
    color:var(--color-indigo-link);
    margin-top:var(--space-sm);
}

.defs dd {
    margin:0;
    color:var(--color-niebla);
}

.defs dd a {
    color:var(--color-indigo-link);
}

.note-small {
    color:var(--color-bruma);
    font-size:.85rem;
    margin-top:var(--space-md);
}

/* tables */
.tbl {
    width:100%;
    border-collapse:collapse;
    margin:var(--space-md) 0;
}

.tbl caption {
    text-align:left;
    color:var(--color-bruma);
    font-size:.85rem;
    margin-bottom:.5rem;
}

.tbl th,
.tbl td {
    border:1px solid var(--color-borde);
    padding:.7em .9em;
    text-align:left;
    vertical-align:top;
}

.tbl thead th {
    background:var(--color-tela);
    font-family:var(--fuente-tit);
    text-transform:uppercase;
    font-size:.78rem;
    letter-spacing:.04em;
}

.tbl tbody th {
    background:var(--color-tela);
}

.tbl-two th {
    width:32%;
    overflow-wrap:anywhere;
}

.tbl-two td {
    overflow-wrap:anywhere;
}

/* step list */
.step-list {
    list-style:none;
    margin:var(--space-md) 0;
    padding:0;
    display:grid;
    gap:var(--space-md);
}

.step-list li {
    display:flex;
    align-items:flex-start;
    gap:var(--space-md);
    border:1px solid var(--color-borde);
    background:var(--color-tela);
    padding:var(--space-md);
}

.step-n {
    font-family:var(--fuente-tit);
    font-size:1.7rem;
    line-height:1;
    color:var(--color-indigo-link);
    min-width:1.4em;
}

.step-list h3 {
    font-size:1.05rem;
    margin:0 0 .3rem;
}

.step-list p {
    margin:0;
    color:var(--color-bruma);
}

/* desistimiento model */
.modelo-txt {
    border-left:3px solid var(--color-indigo);
    background:var(--color-fondo);
    padding:var(--space-md);
    color:var(--color-bruma);
    margin:var(--space-md) 0 0;
}

.modelo-txt p {
    margin:.4rem 0;
}

/* legal pages */
.legal {
    display:grid;
    grid-template-columns:260px 1fr;
    gap:var(--space-xl);
    align-items:start;
}

.toc {
    position:sticky;
    top:132px;
    border:1px solid var(--color-borde);
    background:var(--color-tela);
    padding:var(--space-md);
}

.toc-t {
    font-family:var(--fuente-tit);
    text-transform:uppercase;
    font-size:.8rem;
    letter-spacing:.06em;
    margin:0 0 var(--space-sm);
}

.toc-list {
    margin:0;
    padding-left:1.2em;
    color:var(--color-bruma);
}

.toc-list li {
    margin-bottom:.3rem;
}

.toc-list a {
    color:var(--color-indigo-link);
    text-decoration:none;
}

.legal-body {
    min-width:0;
}

.legal-sec {
    margin-bottom:var(--space-lg);
    scroll-margin-top:132px;
    border:1px solid var(--color-borde);
    background:var(--color-tela);
    padding:var(--space-lg);
}

.legal-sec .sec-t {
    font-size:1.3rem;
    margin-bottom:var(--space-sm);
}

.legal-sec p {
    color:var(--color-bruma);
}

.legal-sec a {
    color:var(--color-indigo-link);
}

/* status legend + chips */
.state-leg {
    list-style:none;
    margin:0;
    padding:0;
}

.state-leg li {
    margin-bottom:.6rem;
    color:var(--color-bruma);
}

.state-leg a {
    color:var(--color-indigo-link);
}

.st-chip {
    display:inline-block;
    background:var(--color-indigo);
    color:rgb(255,255,255);
    font-size:.74rem;
    letter-spacing:.03em;
    padding:.15em .6em;
    margin-right:.4em;
}

/* footer */
.ft {
    background:var(--color-tela);
    border-top:1px solid var(--color-borde);
    margin-top:var(--space-xxl);
}

.ft-in {
    display:grid;
    grid-template-columns:2fr 1fr 1fr;
    gap:var(--space-xl);
    padding-top:var(--space-xl);
    padding-bottom:var(--space-lg);
}

.ft-logo {
    display:block;
    font-family:var(--fuente-tit);
    text-transform:uppercase;
    letter-spacing:.05em;
    font-size:1.2rem;
    margin-bottom:var(--space-sm);
}

.ft-about {
    color:var(--color-bruma);
    font-size:.9rem;
    max-width:42ch;
}

.addr {
    font-style:normal;
    color:var(--color-bruma);
    font-size:.9rem;
    line-height:1.9;
    margin-top:var(--space-sm);
}

.addr a {
    color:var(--color-indigo-link);
}

.ft-t {
    font-family:var(--fuente-tit);
    text-transform:uppercase;
    font-size:.82rem;
    letter-spacing:.06em;
    margin:0 0 var(--space-sm);
}

.ft-col ul {
    list-style:none;
    margin:0;
    padding:0;
}

.ft-col li {
    margin-bottom:.4rem;
}

.ft-col a {
    color:var(--color-bruma);
    text-decoration:none;
    font-size:.9rem;
}

.ft-col a:hover {
    color:var(--color-niebla);
}

.ft-legal {
    border-top:1px solid var(--color-borde);
    padding-top:var(--space-md);
    padding-bottom:var(--space-lg);
}

.ft-legal small {
    color:var(--color-bruma);
    font-size:.8rem;
}

/* progressive mobile menu */
@media (max-width:760px) {
    html:not(.with-js) #menu {
        position:static;
        display:block;
        background:var(--color-tela);
        border-bottom:1px solid var(--color-borde);
        padding:var(--space-md);
    }

    html:not(.with-js) .menu-head {
        display:none;
    }

    html:not(.with-js) .brg {
        display:none;
    }
}

@media (max-width:900px) {
    .about,
    .prod-in,
    .two-col,
    .legal {
        grid-template-columns:1fr;
    }

    .toc {
        position:static;
    }

    .ft-in {
        grid-template-columns:1fr 1fr;
    }
}

@media (max-width:760px) {
    .pbr-panel {
        grid-template-columns:1fr;
    }

    .prod-in {
        grid-template-columns:1fr;
    }

    .prod-med {
        order:2;
    }

    .prod-info {
        order:1;
    }

    .prod-med img,
    .prod-med .swatch {
        max-height:60vh;
        object-fit:cover;
    }

    .ft-in {
        grid-template-columns:1fr;
        gap:var(--space-lg);
    }
}

@media (max-width:560px) {
    .tbl th,
    .tbl td {
        padding:.5em .5em;
        font-size:.8rem;
    }

    .hd-bar-in {
        gap:var(--space-sm);
    }

    .hd-logo {
        font-size:1.15rem;
    }

    .brg {
        padding-left:.6em;
        padding-right:.6em;
    }
}

@media (prefers-reduced-motion:reduce) {
    .mrq-track {
        animation:none;
    }
}
