.catalog-hero { padding: 7rem clamp(1.5rem, 7vw, 8rem) 5rem; border-bottom: 1px solid var(--line); }
.catalog-hero h1, .cart-heading h1 { max-width: 950px; margin: 0; font-family: var(--serif); font-size: clamp(3.5rem, 7vw, 7rem); font-weight: 400; letter-spacing: -.055em; line-height: .93; }
.catalog-hero > p:last-child { max-width: 520px; margin: 2rem 0 0; color: var(--muted); font-family: var(--serif); font-size: 1.15rem; }
.cart-heading > p:last-child { max-width: 520px; margin: 2rem 0 0; color: var(--muted); font-family: var(--sans); font-size: .95rem; line-height: 1.7; }
.catalog-shell { padding: 3rem clamp(1.5rem, 5vw, 5.5rem) 7rem; }
.catalog-filters { display: grid; grid-template-columns: minmax(250px, 1fr) 220px 220px auto auto; gap: 1rem; align-items: end; padding-bottom: 2rem; border-bottom: 1px solid var(--line); }
.catalog-filters label { display: block; margin-bottom: .5rem; color: var(--muted); font-size: .58rem; font-weight: 600; letter-spacing: .11em; text-transform: uppercase; }
.catalog-filters input, .catalog-filters select { width: 100%; height: 46px; padding: 0 .8rem; border: 1px solid var(--line); border-radius: 0; color: var(--ink); background: transparent; }
.catalog-filters button { height: 46px; padding: 0 1.2rem; border: 1px solid var(--ink); color: var(--white); background: var(--ink); cursor: pointer; }
.catalog-filters > a { padding: .8rem 0; font-size: .7rem; text-decoration: underline; }
.catalog-summary { display: flex; justify-content: space-between; margin: 2rem 0; color: var(--muted); font-size: .68rem; }
.catalog-summary strong { color: var(--ink); }
.market-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4rem 2.5rem; }
.market-book-card { min-width: 0; }
.market-cover-link { position: relative; display: grid; aspect-ratio: var(--book-cover-ratio); place-items: center; overflow: hidden; background: #e8e6df; }
.market-cover { width: 100%; height: 100%; object-fit: cover; transform: scale(1.18); transition: transform .45s cubic-bezier(.2,.7,.2,1), filter .45s ease; }
.cover-image { display: block; aspect-ratio: var(--book-cover-ratio); object-fit: cover; object-position: center; box-shadow: 12px 15px 25px rgba(23,23,19,.16); }
.market-cover-link:hover .market-cover { filter: saturate(1.03) contrast(1.01); transform: scale(1.23); }
.market-cover h2 { margin: auto 0; font-family: var(--serif); font-size: clamp(1.3rem, 2.4vw, 2.1rem); font-weight: 400; line-height: 1.02; }
.market-cover > p { margin: 0; font-size: .52rem; letter-spacing: .09em; text-transform: uppercase; }
.book-blue { background: #586876; }
.book-plum { background: #5a4654; }
.book-rust { background: #8d5945; }
.book-olive { color: #f1eddf; background: #6e7352; }
.book-cream { color: #27251f; background: #d7ceb8; }
.market-book-info { padding-top: 1.2rem; }
.market-book-info .eyebrow { margin-bottom: .55rem; }
.market-book-info h3 { margin: 0; font-family: var(--serif); font-size: 1.45rem; font-weight: 400; }
.market-author { margin: .25rem 0 1rem; color: var(--muted); font-size: .68rem; }
.price-row { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.price-row s, .detail-price s { display: block; color: var(--muted); font-size: .62rem; }
.price-row strong { font-size: .8rem; }
.cart-add { padding: .6rem .75rem; border: 1px solid var(--ink); color: var(--ink); background: transparent; font-size: .59rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; cursor: pointer; }
.cart-add:hover { color: var(--white); background: var(--ink); }
.cart-add:disabled, .button:disabled { opacity: .45; cursor: not-allowed; }
.pagination { display: flex; justify-content: center; gap: .5rem; margin-top: 5rem; }
.pagination a { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--line); font-size: .7rem; }
.pagination a.is-current { color: var(--white); background: var(--ink); border-color: var(--ink); }
.empty-state { padding: 7rem 1rem; text-align: center; }
.empty-state h2 { font-family: var(--serif); font-size: 3rem; font-weight: 400; }
.empty-state p { color: var(--muted); }
.empty-state .button { margin-top: 1rem; }

.breadcrumbs { display: flex; gap: .65rem; padding: 1.5rem clamp(1.5rem, 5vw, 5.5rem); color: var(--muted); border-bottom: 1px solid var(--line); font-size: .62rem; }
.book-detail { display: grid; grid-template-columns: 50% 50%; min-height: 720px; border-bottom: 1px solid var(--line); }
.detail-cover-wrap { display: grid; place-items: center; padding: 6rem; background: #e8e6df; }
.detail-cover { width: min(360px, 80%); }
.book-gallery { width: min(580px, 100%); outline: none; }
.book-gallery-stage { position: relative; display: grid; place-items: center; min-height: 580px; }
.book-gallery-slide { display: none; width: 100%; margin: 0; text-align: center; }
.book-gallery-slide.is-active { display: block; animation: gallery-reveal .35s ease both; }
.book-gallery-slide .detail-cover { max-height: 560px; object-fit: contain; }
.gallery-arrow { position: absolute; top: 50%; display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(24,24,20,.25); border-radius: 50%; color: #181814; background: rgba(247,246,241,.9); cursor: pointer; transform: translateY(-50%); transition: color .2s, background .2s, transform .2s; }
.gallery-arrow:hover { color: #fff; background: #181814; transform: translateY(-50%) scale(1.05); }
.gallery-prev { left: 0; }.gallery-next { right: 0; }
.gallery-count { position: absolute; right: 0; bottom: 0; padding: .45rem .65rem; color: #6f6c65; background: rgba(247,246,241,.88); font-size: .62rem; letter-spacing: .08em; }
.book-gallery-thumbs { display: flex; justify-content: center; gap: .7rem; margin-top: 1.25rem; }
.book-gallery-thumbs button { width: 64px; height: 76px; padding: 4px; border: 1px solid transparent; background: transparent; cursor: pointer; opacity: .55; transition: border-color .2s, opacity .2s; }
.book-gallery-thumbs button:hover,.book-gallery-thumbs button.is-active { border-color: #181814; opacity: 1; }
.book-gallery-thumbs img { width: 100%; height: 100%; object-fit: cover; }
@keyframes gallery-reveal { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.detail-cover h1 { margin: auto 0; font-family: var(--serif); font-size: clamp(2rem, 4vw, 3.6rem); font-weight: 400; line-height: .98; }
.detail-cover > p { font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; }
.detail-copy { display: flex; flex-direction: column; justify-content: center; padding: 5rem clamp(2rem, 7vw, 8rem); }
.detail-copy > h1 { margin: 0; font-family: var(--serif); font-size: clamp(3rem, 5vw, 5.6rem); font-weight: 400; letter-spacing: -.05em; line-height: .95; }
.detail-author { color: var(--muted); font-size: .8rem; }
.detail-description { max-width: 580px; margin: 2rem 0; font-family: var(--sans); font-size: .95rem; line-height: 1.75; }
.detail-price { margin-bottom: .8rem; }
.detail-price strong { display: block; font-family: var(--sans); font-size: 1.65rem; font-weight: 500; letter-spacing: -.03em; }
.stock-status { color: #4c6246; font-size: .68rem; }
.stock-status.is-empty { color: #984f45; }
.detail-actions { display: flex; gap: 1rem; margin: 1.5rem 0 2rem; }
.quantity-control { width: 90px; }
.quantity-control label { display: block; margin-bottom: .35rem; color: var(--muted); font-size: .58rem; text-transform: uppercase; }
.quantity-control input { width: 100%; height: 46px; padding: 0 .6rem; border: 1px solid var(--line); background: transparent; }
.book-specs { display: grid; grid-template-columns: 1fr 1fr; margin: 0; border-top: 1px solid var(--line); }
.book-specs div { padding: 1rem 0; border-bottom: 1px solid var(--line); }
.book-specs dt { color: var(--muted); font-size: .57rem; letter-spacing: .1em; text-transform: uppercase; }
.book-specs dd { margin: .25rem 0 0; font-size: .7rem; }
.related-books { padding: 6rem clamp(1.5rem, 5vw, 5.5rem); }
.related-books .section-heading h2 { font-family: var(--serif); font-size: 3.5rem; font-weight: 400; }

.cart-page { padding: 6rem clamp(1.5rem, 6vw, 7rem) 8rem; }
.cart-heading { margin-bottom: 4rem; }
.cart-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 5rem; align-items: start; }
.cart-empty { padding: 5rem 1rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: center; }
.cart-empty h2 { font-family: var(--serif); font-size: 2.5rem; font-weight: 400; }
.cart-item { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; gap: 1.5rem; padding: 1.5rem 0; border-top: 1px solid var(--line); }
.cart-item:last-child { border-bottom: 1px solid var(--line); }
.cart-item-cover { width: 110px; padding: .7rem; }
.cart-item-cover h3 { margin: auto 0; font-family: var(--serif); font-size: .85rem; font-weight: 400; }
.cart-item-info h2 { margin: .25rem 0; font-family: var(--serif); font-size: 1.45rem; font-weight: 400; }
.cart-item-info p { margin: 0; color: var(--muted); font-size: .65rem; }
.cart-item-actions { display: flex; align-items: center; gap: .5rem; margin-top: 1.5rem; }
.cart-item-actions button, .cart-item-actions input { width: 34px; height: 34px; border: 1px solid var(--line); background: transparent; text-align: center; }
.cart-item-actions button { cursor: pointer; }
.cart-remove { width: auto !important; margin-left: .7rem; padding: 0 .5rem; border: 0 !important; color: #8e5148; font-size: .62rem; text-decoration: underline; }
.cart-item-price { text-align: right; font-size: .8rem; }
.cart-summary { position: sticky; top: 2rem; padding: 2rem; color: var(--white); background: var(--ink); }
.cart-summary h2 { margin: 0 0 2rem; font-family: var(--serif); font-size: 2rem; font-weight: 400; }
.cart-summary > div { display: flex; justify-content: space-between; padding: .8rem 0; color: #aaa79f; border-bottom: 1px solid #3a3935; font-size: .7rem; }
.cart-summary .summary-total { padding: 1.3rem 0; color: var(--white); }
.cart-summary .summary-total strong { font-family: var(--sans); font-size: 1.35rem; font-weight: 500; letter-spacing: -.03em; }
.cart-summary > p { color: #8c8982; font-size: .64rem; }
.cart-summary .button { width: 100%; margin: 1.25rem 0; }
.cart-summary > a, .clear-cart { display: block; width: 100%; margin-top: .8rem; border: 0; color: #bbb8b0; background: transparent; font-size: .64rem; text-align: center; cursor: pointer; }
.clear-cart { text-decoration: underline; }
.toast { position: fixed; z-index: 50; right: 1.5rem; bottom: 1.5rem; padding: 1rem 1.25rem; color: var(--white); background: var(--ink); font-size: .7rem; opacity: 0; pointer-events: none; transform: translateY(10px); transition: .2s; }
.toast.is-visible { opacity: 1; transform: translateY(0); }
.compact-footer { grid-template-columns: 2fr 1fr 1fr; }
.checkout-page { padding: clamp(4.5rem, 7vw, 7rem) clamp(1.5rem, 6vw, 7rem) 8rem; }
.checkout-intro { max-width: 920px; margin-bottom: clamp(3.5rem, 6vw, 6rem); }
.checkout-intro .eyebrow { margin-bottom: 1.5rem; }
.checkout-intro h1 { max-width: 850px; margin: 0; font-family: var(--serif); font-size: clamp(3.6rem, 6.2vw, 6.6rem); font-weight: 400; letter-spacing: -.052em; line-height: .88; text-wrap: balance; }
.checkout-intro > p:last-child { max-width: 620px; margin: 1.75rem 0 0; color: var(--muted); font-family: var(--sans); font-size: .95rem; line-height: 1.7; }
.checkout-form { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 5rem; align-items: start; }
.checkout-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1.3rem; }
.checkout-fields label { color: var(--muted); font-size: .6rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.checkout-fields .wide { grid-column: 1 / -1; }
.checkout-fields input, .checkout-fields textarea { width: 100%; margin-top: .5rem; padding: .9rem; border: 1px solid var(--line); border-radius: 0; background: transparent; }
.checkout-summary { padding: 2rem; color: var(--white); background: var(--ink); }
.checkout-summary h2 { margin-top: 0; font-family: var(--serif); font-size: 2rem; font-weight: 400; }
.checkout-summary [data-checkout-items] > div, .checkout-total { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 0; border-bottom: 1px solid #3a3935; font-size: .68rem; }
.checkout-total { margin-top: 1rem; font-family: var(--sans); font-size: 1rem; }
.checkout-summary .button { width: 100%; margin-top: 1.5rem; }
.whatsapp-checkout-button { display: flex; justify-content: space-between; gap: 1rem; align-items: center; min-height: 52px; padding: 0 1.1rem; border: 1px solid #e4e1d8; color: #181814; background: #f4f3ed; font-size: .62rem; font-weight: 600; letter-spacing: .075em; text-decoration: none; text-transform: uppercase; transition: color .2s, background .2s, border-color .2s; }
.whatsapp-checkout-button:hover { color: #f4f3ed; border-color: #f4f3ed; background: transparent; }
.whatsapp-checkout-button i { font-family: var(--serif); font-size: 1rem; font-style: normal; transition: transform .2s; }
.whatsapp-checkout-button:hover i { transform: translateX(4px); }
.whatsapp-checkout-button:disabled { cursor: not-allowed; opacity: .45; transform: none; }
.checkout-summary > p { color: #aaa79f; font-size: .62rem; }
.checkout-summary .checkout-warning { padding: .75rem; color: #2d211b; background: #e6c9b7; }
.checkout-error { color: #f1b9ae !important; }
.article-list{padding:4rem clamp(1.5rem,7vw,8rem) 8rem}.article-list article{display:grid;grid-template-columns:150px minmax(0,1fr) 1fr 100px;gap:2rem;align-items:start;padding:2rem 0;border-top:1px solid var(--line)}.article-list h2{margin:0;font-family:var(--serif);font-size:2rem;font-weight:400}.article-list article>p:not(.eyebrow),.article-list time{color:var(--muted);font-size:.7rem}.article-detail{max-width:900px;margin:auto;padding:7rem 1.5rem}.article-detail header{text-align:center}.article-detail h1{margin:0;font-family:var(--serif);font-size:clamp(3rem,7vw,6rem);font-weight:400;line-height:.95}.article-detail time{display:block;margin-top:1.5rem;color:var(--muted);font-size:.65rem}.article-detail>img{width:100%;max-height:560px;margin:4rem 0;object-fit:cover}.article-body{max-width:680px;margin:4rem auto;font-family:var(--sans);font-size:1.05rem;line-height:1.85}

@media (max-width: 1000px) {
    .catalog-filters { grid-template-columns: 1fr 1fr; }
    .search-field { grid-column: 1 / -1; }
    .market-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .book-detail { grid-template-columns: 1fr; }
    .detail-cover-wrap { min-height: 650px; }
    .cart-layout { grid-template-columns: 1fr; }
    .cart-summary { position: static; }
    .checkout-form { grid-template-columns: 1fr; }
    .article-list article { grid-template-columns: 110px minmax(0, 1fr) auto; gap: 1.25rem; }
    .article-list article > p:not(.eyebrow) { grid-column: 2 / -1; }
}
@media (max-width: 640px) {
    .catalog-hero { padding-top: 5rem; }
    .catalog-filters { grid-template-columns: 1fr; }
    .search-field { grid-column: auto; }
    .market-grid { gap: 3rem 1rem; }
    .market-cover-link { padding: 0; }
    .price-row { align-items: stretch; flex-direction: column; }
    .cart-add { width: 100%; }
    .detail-cover-wrap { min-height: 500px; padding: 3rem 1.5rem; }
    .book-gallery-stage { min-height: 430px; }
    .gallery-prev { left: -.5rem; }.gallery-next { right: -.5rem; }
    .detail-copy { padding: 4rem 1.5rem; }
    .detail-actions { align-items: stretch; flex-direction: column; }
    .quantity-control { width: 100%; }
    .book-specs { grid-template-columns: 1fr; }
    .cart-page { padding-top: 4rem; }
    .cart-item { grid-template-columns: 80px 1fr; }
    .cart-item-cover { width: 80px; }
    .cart-item-price { grid-column: 2; text-align: left; }
    .compact-footer { grid-template-columns: 1fr 1fr; }
    .checkout-fields { grid-template-columns: 1fr; }
    .checkout-fields .wide { grid-column: auto; }
    .checkout-intro h1 { font-size: clamp(3.25rem, 16vw, 5rem); line-height: .9; }
    .checkout-intro > p:last-child { margin-top: 1.35rem; }
    .article-list { padding: 2.5rem 1.25rem 5rem; }
    .article-list article { display: flex; flex-direction: column; gap: .75rem; padding: 1.75rem 0; }
    .article-list article .eyebrow { margin-bottom: .15rem; }
    .article-list h2 { max-width: 100%; font-size: clamp(2rem, 10vw, 2.75rem); line-height: 1.02; overflow-wrap: anywhere; }
    .article-list article > p:not(.eyebrow) { margin: .35rem 0 .2rem; font-size: .78rem; line-height: 1.7; }
    .article-list time { order: 4; font-size: .62rem; }
    .article-detail { width: 100%; padding: 4.5rem 1.25rem; overflow: hidden; }
    .article-detail header { text-align: left; }
    .article-detail h1 { max-width: 100%; font-size: clamp(3rem, 15vw, 4.35rem); line-height: .92; overflow-wrap: anywhere; }
    .article-detail > img { max-height: 420px; margin: 2.75rem 0; }
    .article-body { max-width: 100%; margin: 2.75rem auto 0; font-size: 1rem; line-height: 1.8; overflow-wrap: anywhere; }
}
