:root{--color-bg-base:#f8f6f1;--color-bg-card:#fff;--color-bg-subtle:#f0ede6;--color-green:#2d6a4f;--color-green-mid:#388e5c;--color-green-dark:#1e4d38;--color-green-light:#e6f4ec;--color-cta:#c44b1b;--color-cta-hover:#a33a12;--color-ink:#1c1917;--color-ink-muted:#78716c;--color-ink-faint:#a8a29e;--color-border:#e8e0d0;--color-border-mid:#c9bfb3;--color-forest:var(--color-green);--color-forest-mid:var(--color-green-mid);--color-forest-hover:var(--color-green-dark);--color-amber:var(--color-cta);--color-amber-hover:var(--color-cta-hover);--color-charcoal:var(--color-ink);--color-charcoal-muted:var(--color-ink-muted);--color-parchment:var(--color-bg-base);--color-parchment-card:var(--color-bg-subtle);--color-parchment-deep:var(--color-bg-subtle);--color-cream:var(--color-bg-base);--color-cream-light:var(--color-bg-card);--color-cream-card:var(--color-bg-subtle);--color-paper:var(--color-bg-base);--color-paper-light:var(--color-bg-card);--color-paper-card:var(--color-bg-subtle);--color-bg:var(--color-bg-base);--color-bg-card-alt:var(--color-bg-subtle);--color-accent:var(--color-cta);--color-pine:var(--color-green);--color-pine-hover:var(--color-green-dark);--color-mustard:var(--color-cta);--color-mustard-hover:var(--color-cta-hover);--color-orange:var(--color-cta);--color-orange-hover:var(--color-cta-hover);--color-brass:var(--color-cta);--color-stamp-red:var(--color-cta);--color-stamp-red-hover:var(--color-cta-hover);--color-cloth-brown:var(--color-green);--color-gold:var(--color-cta);--font-heading:var(--font-jakarta,"Plus Jakarta Sans"),sans-serif;--font-body:var(--font-inter,"Inter"),sans-serif;--font-mono:var(--font-dm-mono,"DM Mono"),monospace;--font-fraunces:var(--font-jakarta,"Plus Jakarta Sans"),sans-serif;--font-source-serif:var(--font-inter,"Inter"),sans-serif;--font-courier:var(--font-dm-mono,"DM Mono"),monospace}*{box-sizing:border-box;margin:0;padding:0}body,html{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;max-width:100%;overflow-x:hidden;position:relative}body{background-color:var(--color-bg-base);color:var(--color-ink);font-family:var(--font-body);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;color:var(--color-ink);line-height:1.2}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none}.btn-pine,button{font-family:var(--font-body)}.btn-pine{background-color:var(--color-green);color:#fff;padding:10px 20px;border-radius:4px;font-weight:700;font-size:.9rem;letter-spacing:.01em;transition:background-color .15s ease;display:inline-flex;align-items:center;gap:8px;border:none}.btn-pine:hover{background-color:var(--color-green-mid)}.btn-pine:active{background-color:var(--color-green-dark)}.btn-stamp{background-color:var(--color-cta);color:#fff;padding:10px 20px;border-radius:4px;font-weight:700;font-family:var(--font-body);font-size:.9rem;letter-spacing:.01em;transition:background-color .15s ease;display:inline-flex;align-items:center;gap:8px;border:none}.btn-stamp:hover{background-color:var(--color-cta-hover)}.btn-stamp:active{transform:scale(.98)}.btn-outline{border:1.5px solid var(--color-border-mid);color:var(--color-ink);background:transparent;padding:8px 16px;border-radius:4px;font-weight:600;font-size:.9rem;transition:border-color .15s ease,background-color .15s ease;display:inline-flex;align-items:center;gap:8px}.btn-outline:hover{background-color:var(--color-bg-subtle);border-color:var(--color-ink-muted)}.btn-wa{display:inline-flex;align-items:center;gap:8px;background-color:#25d366;color:#fff;padding:10px 20px;border-radius:4px;font-weight:700;font-family:var(--font-body);font-size:.9rem;text-decoration:none;transition:opacity .15s ease;border:none}.btn-wa:hover{opacity:.88;color:#fff}.btn-wa-outline{display:inline-flex;align-items:center;gap:8px;background-color:#f0faf4;border:1.5px solid #25d366;color:#128c3b;padding:10px 16px;border-radius:4px;font-size:.88rem;font-weight:700;font-family:var(--font-body);cursor:pointer;text-decoration:none;transition:background-color .15s ease;width:100%;justify-content:center}.btn-wa-outline:hover{background-color:#d8f3e3;color:#128c3b;text-decoration:none}.btn-paper{border:1.5px solid var(--color-border-mid);color:var(--color-ink);background-color:var(--color-bg-card);padding:10px 20px;border-radius:4px;font-weight:600;font-family:var(--font-body);font-size:.9rem;display:inline-flex;align-items:center;gap:8px;transition:background-color .15s ease,border-color .15s ease}.btn-paper:hover{background-color:var(--color-bg-subtle);border-color:var(--color-ink-muted)}.shelf-strip{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px;scrollbar-width:none}.shelf-strip::-webkit-scrollbar{display:none}.shelf-spine{flex:0 0 auto;padding:6px 14px;background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:20px;font-family:var(--font-body);font-size:.82rem;font-weight:500;color:var(--color-ink-muted);white-space:nowrap;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.shelf-spine:hover{border-color:var(--color-ink-muted);color:var(--color-ink);background-color:var(--color-bg-subtle)}.shelf-spine.active{background-color:var(--color-ink);color:#fff;border-color:var(--color-ink);font-weight:600}.due-date-card{background-color:var(--color-bg-card);border:1px solid var(--color-border);padding:16px;border-radius:6px;font-family:var(--font-mono);position:relative;overflow:hidden}.due-date-header{border-bottom:1px solid var(--color-border);padding-bottom:6px;margin-bottom:10px;text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;color:var(--color-ink-faint);display:flex;justify-content:space-between;font-family:var(--font-mono)}.due-date-stamp{display:inline-block;border:1.5px solid var(--color-cta);color:var(--color-cta);padding:2px 8px;font-size:.68rem;font-weight:700;text-transform:uppercase;transform:rotate(-2deg);border-radius:2px;letter-spacing:.06em}.price-tag{font-family:var(--font-heading);font-weight:800;font-size:1.25rem;color:var(--color-ink)}.container{max-width:1200px;margin:0 auto;padding:0 20px}.book-card-item{transition:box-shadow .15s ease;background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.book-card-item:hover{box-shadow:0 4px 12px rgba(0,0,0,.1)!important}.sort-chip-row{display:flex;align-items:center;gap:6px;overflow-x:auto;white-space:nowrap;scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap;min-width:0;flex:1 1 auto;-webkit-overflow-scrolling:touch}.sort-chip-row::-webkit-scrollbar{display:none}.sort-chip{flex:0 0 auto;padding:5px 12px;border-radius:4px;border:1px solid var(--color-border);background-color:var(--color-bg-card);font-family:var(--font-body);font-size:.8rem;font-weight:500;color:var(--color-ink-muted);text-decoration:none;transition:background-color .12s ease,border-color .12s ease,color .12s ease;white-space:nowrap}.sort-chip:hover{background-color:var(--color-bg-subtle);border-color:var(--color-ink-muted);color:var(--color-ink)}.sort-chip.active{background-color:var(--color-green-light);border-color:var(--color-green);color:var(--color-green);font-weight:700}.price-tag-card{font-family:var(--font-heading);font-size:1rem;font-weight:800;letter-spacing:-.2px}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:12px;gap:12px}.book-card-cover{position:relative;width:100%;height:170px;background-color:var(--color-bg-subtle);display:flex;align-items:center;justify-content:center;overflow:hidden}.book-card-body{padding:10px 12px 6px}.book-card-title{font-size:.88rem;font-family:var(--font-body);font-weight:600;color:var(--color-ink);line-height:1.35;margin:0 0 4px;height:2.4rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.book-card-author{font-size:.73rem;color:var(--color-ink-faint);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.book-card-footer{padding:0 12px 10px}.book-card-btn{width:100%;padding:7px 10px;font-size:.78rem;justify-content:center;gap:6px;border-radius:4px}.book-gallery-card{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:8px;padding:16px;text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.06);position:relative}.book-gallery-frame{width:100%;aspect-ratio:2/3;border-radius:4px;overflow:hidden;box-shadow:0 8px 16px rgba(0,0,0,.15);background-color:var(--color-bg-subtle);position:relative}.gallery-counter-badge{left:8px;background:rgba(30,20,10,.75);color:#fff;font-family:var(--font-mono);font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:12px;pointer-events:none}.gallery-counter-badge,.gallery-zoom-btn{position:absolute;top:8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2}.gallery-zoom-btn{right:8px;width:30px;height:30px;border-radius:50%;background:hsla(0,0%,100%,.92);color:var(--color-ink);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,transform .15s;box-shadow:0 1px 4px rgba(0,0,0,.18)}.gallery-zoom-btn:hover{background:#fff;transform:scale(1.1)}.gallery-nav-btn{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;background:rgba(30,20,10,.75);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:opacity .2s,background .15s,transform .15s;opacity:.85}.book-gallery-frame:hover .gallery-nav-btn{opacity:1}.gallery-nav-btn:hover{background:var(--color-green);transform:translateY(-50%) scale(1.1)}.gallery-nav-prev{left:6px}.gallery-nav-next{right:6px}.gallery-dots-overlay{position:absolute;bottom:8px;left:0;right:0;display:flex;gap:6px;justify-content:center;align-items:center;z-index:2;pointer-events:auto}.gallery-dot{width:7px;height:7px;border-radius:50%;background:hsla(0,0%,100%,.5);border:1px solid rgba(0,0,0,.2);cursor:pointer;padding:0;transition:all .2s ease}.gallery-dot-active{background:#fff;width:18px;border-radius:4px}.gallery-thumbnail-strip{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;justify-content:center}.book-gallery-thumb{width:52px;height:78px;padding:0;border:1px solid var(--color-border);border-radius:4px;overflow:hidden;cursor:pointer;flex-shrink:0;opacity:.65;transition:opacity .15s,border-color .15s,transform .15s;background:none}.book-gallery-thumb:hover{opacity:.9}.book-gallery-thumb-active{border:2px solid var(--color-green);opacity:1;box-shadow:0 2px 6px rgba(0,0,0,.12)}.gallery-lightbox-overlay{position:fixed;inset:0;background-color:rgba(15,20,15,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:9999;display:flex;flex-direction:column;justify-content:space-between;padding:16px 20px;animation:fadeInGallery .2s ease-out}.gallery-lightbox-topbar{display:flex;justify-content:space-between;align-items:center;color:#fff;width:100%;max-width:900px;margin:0 auto}.gallery-lightbox-title{font-family:var(--font-heading);font-size:1.15rem;display:flex;align-items:center;gap:8px}.gallery-lightbox-count{font-family:var(--font-mono);font-size:.85rem;color:hsla(0,0%,100%,.7)}.gallery-lightbox-close{background:hsla(0,0%,100%,.15);color:#fff;border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}.gallery-lightbox-close:hover{background:hsla(0,0%,100%,.3)}.gallery-lightbox-content{position:relative;max-width:900px;max-height:72vh;margin:auto;display:flex;align-items:center;justify-content:center}.gallery-lightbox-img{max-width:100%;max-height:72vh;object-fit:cover;border-radius:6px;box-shadow:0 12px 32px rgba(0,0,0,.5);-webkit-user-select:none;-moz-user-select:none;user-select:none}.gallery-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.6);color:#fff;border:1px solid hsla(0,0%,100%,.2);width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,transform .15s}.gallery-lightbox-nav:hover{background:var(--color-green);transform:translateY(-50%) scale(1.1)}.gallery-lightbox-prev{left:-24px}.gallery-lightbox-next{right:-24px}.gallery-lightbox-thumbs{display:flex;gap:10px;justify-content:center;max-width:900px;margin:0 auto;overflow-x:auto;padding:8px 0}.gallery-lightbox-thumb{width:48px;height:72px;border-radius:4px;overflow:hidden;padding:0;border:2px solid transparent;opacity:.6;cursor:pointer;background:none;flex-shrink:0;transition:all .15s}.gallery-lightbox-thumb img{width:100%;height:100%;object-fit:cover}.gallery-lightbox-thumb-active{border-color:var(--color-green);opacity:1}@keyframes fadeInGallery{0%{opacity:0}to{opacity:1}}.guarantee-box{background-color:var(--color-green-light);border:1px solid var(--color-border);border-radius:8px;padding:16px;font-size:.85rem;line-height:1.5}.guarantee-mobile-only{display:none}.book-detail-title{font-size:2.2rem;font-family:var(--font-heading);line-height:1.2;margin-bottom:8px}.book-detail-author{font-size:1.05rem;color:var(--color-ink-muted);margin-bottom:14px}.book-detail-price{font-size:2.2rem;font-family:var(--font-heading);font-weight:800;color:var(--color-green);margin-bottom:18px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.spin{animation:spin .8s linear infinite;display:inline-block}.book-section-heading{font-family:var(--font-heading);font-size:1.15rem;font-weight:700;color:var(--color-ink);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--color-border)}.book-description-section{margin-bottom:28px;position:relative}.book-desc-toggle-input{display:none}.book-description-clamp{max-height:5.5em;overflow:hidden;transition:max-height .35s ease;mask-image:linear-gradient(180deg,#000 60%,transparent);-webkit-mask-image:linear-gradient(180deg,#000 60%,transparent)}.book-desc-expand-label{display:inline-flex;align-items:center;gap:4px;cursor:pointer;color:var(--color-green);font-size:.88rem;font-weight:600;text-decoration:underline;text-underline-offset:3px;margin-top:6px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.book-desc-toggle-input:checked~.book-description-clamp,.book-description-section:has(.book-desc-toggle-input:checked) .book-description-clamp{max-height:200em;mask-image:none;-webkit-mask-image:none}.book-description-section:has(.book-desc-toggle-input:checked) .book-desc-expand-label{display:none}.book-metadata-section{margin-bottom:24px}.book-metadata-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:0;gap:0}.book-meta-row{padding:10px 0;border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:3px}.book-meta-row:nth-child(odd){padding-right:24px}.book-meta-row:nth-child(2n){padding-left:12px}.book-meta-label{font-size:.78rem;color:var(--color-ink-muted);font-family:var(--font-body)}.book-meta-value{font-size:.92rem;color:var(--color-ink);font-weight:500;line-height:1.4}.similar-books-section{margin-top:48px;padding-top:28px;border-top:2px solid var(--color-border)}.similar-books-heading{font-family:var(--font-heading);font-size:1.35rem;color:var(--color-ink);margin-bottom:20px}.similar-books-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:16px;gap:16px}.similar-book-card-wrap{min-width:0}.book-sticky-bar{display:none}@media (max-width:768px){.book-sticky-bar{display:flex;align-items:center;gap:10px;position:fixed;bottom:0;left:0;right:0;z-index:50;padding:8px 16px;background-color:#fff;border-top:1px solid var(--color-border);box-shadow:0 -4px 16px rgba(0,0,0,.1)}.sticky-bar-btn-wrap button{padding:9px 12px!important;font-size:.82rem!important;width:100%!important}.sticky-bar-btn-wrap svg{width:15px!important;height:15px!important}.book-detail-page{padding-bottom:80px!important}.grid-cart,.grid-catalog,.grid-checkout{grid-template-columns:1fr!important}.catalog-sidebar{display:none;position:fixed;top:0;left:0;bottom:0;width:280px;z-index:40;overflow-y:auto;border-radius:0 6px 6px 0!important}.catalog-sidebar--open,.catalog-sidebar-close{display:block!important}.catalog-sidebar-close{margin-bottom:8px}.catalog-filter-toggle{display:flex!important}.hero-grid{grid-template-columns:1fr!important}.header-inner{flex-wrap:wrap;gap:10px!important}.header-inner form{flex:1 1 100%!important;max-width:100%!important;width:100%!important;order:3;margin-top:4px}.header-nav{gap:10px!important}.address-grid-2,.address-grid-3,.admin-dashboard-grid,.book-form-grid-2,.book-form-grid-3{grid-template-columns:1fr!important}h1{font-size:1.6rem!important}h2{font-size:1.2rem!important}.header-logo-text{font-size:1.35rem!important}.book-card-grid,.book-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;width:100%!important}.book-card-item{min-width:0!important}.book-card-cover{height:125px!important}.book-card-body{padding:6px 8px 4px!important}.book-card-title{font-size:.82rem!important;height:2.1rem!important;line-height:1.25!important;margin-bottom:2px!important}.book-card-author{font-size:.65rem!important;margin-bottom:1px!important}.book-card-footer{padding:0 8px 8px!important}.book-card-btn{padding:5px 6px!important;font-size:.72rem!important;gap:4px!important}.price-tag-card{font-size:.92rem!important}.admin-logout-btn{width:100%;display:flex;align-items:center;gap:6px;background:none;border:none;color:#a8a29e;padding:4px 0;font-size:.8rem;cursor:pointer;text-align:left;transition:color .1s}.admin-logout-btn:hover{color:#fb7c5a}aside nav a:hover{background-color:hsla(0,0%,100%,.05)!important;color:#f5f3ef!important}[style*="colorScheme: 'dark'"] input,[style*="colorScheme: 'dark'"] select,[style*="colorScheme: 'dark'"] textarea{color-scheme:dark}.admin-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.book-detail-grid{grid-template-columns:1fr!important;gap:16px!important}.book-gallery-card{width:100%!important;max-width:100%!important;margin:0 0 8px!important;padding:0!important;border:none!important;background:transparent!important;box-shadow:none!important}.book-gallery-frame{width:100%!important;border-radius:8px!important;border:1px solid var(--color-border)}.gallery-thumbnail-strip{display:none!important}.book-gallery-thumb{width:44px!important;height:66px!important}.guarantee-desktop-only{display:none!important}.guarantee-mobile-only{display:block!important}.book-detail-title{font-size:1.45rem!important;margin-bottom:4px!important}.book-detail-author{font-size:.92rem!important;margin-bottom:8px!important}.book-detail-price{font-size:1.6rem!important;margin-bottom:12px!important}.checkout-summary-sticky{position:relative!important;top:auto!important;display:none!important}.checkout-summary-mobile{display:block!important}.step-connector{display:none!important}.similar-books-strip{display:flex!important;flex-direction:row!important;overflow-x:auto!important;gap:12px!important;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:8px}.similar-book-card-wrap{width:150px!important;flex:0 0 150px!important;scroll-snap-align:start}.wa-float{bottom:76px!important}}.header-nav{display:flex;align-items:center;gap:4px}.header-nav-item{display:inline-flex;align-items:center;gap:5px;font-size:.85rem;font-weight:600;color:var(--color-ink-muted);text-decoration:none;padding:6px 10px;border-radius:4px;transition:background-color .12s ease,color .12s ease}.header-nav-item:hover{background-color:var(--color-bg-subtle);color:var(--color-ink)}@media (max-width:480px){.container{padding:0 12px!important}.header-tagline{display:none}.header-nav-label{display:none!important}.header-nav{gap:4px!important}.header-nav-item{padding:6px 8px!important}.hero-section{padding:24px 0!important}.price-tag{font-size:1rem}.header-inner form input{font-size:.85rem;padding:8px 36px 8px 12px}}