/* Extensão visual da página inicial. cursos.css continua sendo a base. */
.livros-page{background:var(--fundo);color:var(--texto-escuro)}
.livros-wrap{width:min(1160px,calc(100% - 48px));margin:0 auto}.livros-top{display:flex;align-items:center;justify-content:space-between;padding:22px 0}.livros-brand{font-family:var(--font-display);font-size:25px;color:var(--verde-escuro)}.livros-brand span{color:var(--verde-principal)}.livros-nav{display:flex;align-items:center;gap:18px}.livros-cart{display:inline-flex;align-items:center;gap:7px}.livro-cart-count{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:50%;background:var(--verde-principal);color:#fff;font-size:11px;padding:0 3px}.livros-page .admin-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.livros-page .admin-form{display:grid;gap:14px}
.livros-hero{background:var(--fundo-section);border-bottom:1px solid var(--borda);padding:58px 0 48px;position:relative;overflow:hidden}.livros-hero h1{font-family:var(--font-display);font-size:clamp(42px,6vw,72px);color:var(--verde-escuro);margin:12px 0}.livros-hero p{max-width:600px;color:var(--texto-medio);font-size:18px}.livros-kicker{color:var(--verde-principal);font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:800}.livros-hero-art{position:absolute;right:10%;top:35px;width:300px;height:300px;border:1px solid var(--verde-claro);border-radius:50%;display:grid;place-items:center}.livros-hero-art:before{content:"";position:absolute;width:210px;height:210px;border:1px solid var(--verde-claro);border-radius:50%}.livros-hero-art i{position:relative;font-size:100px;color:var(--verde-principal);transform:rotate(-8deg)}.livros-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:38px 0 22px}.livros-toolbar h2{font-family:var(--font-display);font-size:34px;color:var(--verde-escuro)}.livros-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;padding-bottom:70px}.livro-card{background:var(--branco);border:1px solid var(--borda);border-radius:var(--radius-card);overflow:hidden;box-shadow:var(--shadow-card);transition:transform var(--transition),box-shadow var(--transition)}.livro-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(46,74,41,.16)}.livro-cover{height:220px;background:linear-gradient(145deg,#dcebd7,#f8faf4);display:grid;place-items:center;overflow:hidden}.livro-cover img{width:100%;height:100%;object-fit:cover}.livro-cover i{font-size:70px;color:var(--verde-principal)}.livro-info{padding:20px}.livro-info h3{font-size:20px;color:var(--texto-escuro);margin-bottom:5px}.livro-author{color:var(--texto-fraco);font-size:14px}.livro-info p{color:var(--texto-medio);min-height:48px;margin-top:10px}.livro-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px}.livro-price{font-size:20px;font-weight:800;color:var(--verde-escuro)}.livro-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:var(--radius-btn);background:var(--verde-principal);color:#fff;padding:11px 16px;font-weight:700;cursor:pointer;text-decoration:none}.livro-btn.alt{background:#fff;color:var(--verde-principal);border:1px solid var(--verde-claro)}.livro-detail{padding:45px 0 90px;display:grid;grid-template-columns:360px 1fr;gap:50px}.livro-detail .livro-cover{height:480px;border-radius:var(--radius-card)}.livro-detail h1{font-family:var(--font-display);font-size:clamp(38px,5vw,62px);line-height:1.05;color:var(--verde-escuro);margin:12px 0}.livro-detail .descricao{color:var(--texto-medio);font-size:17px;line-height:1.8;white-space:pre-line}.livro-empty{padding:70px 20px;text-align:center;background:#fff;border:1px dashed var(--verde-claro);border-radius:var(--radius-card);color:var(--texto-medio);margin-bottom:70px}.livro-notice{padding:13px 16px;border-radius:10px;background:#fff5dc;color:#795d1e;margin:18px 0}.livro-notice.error{background:#fde9e9;color:#8a2c2c}.livro-form{display:grid;gap:14px}.livro-form input,.livro-form textarea,.livro-form select{width:100%;box-sizing:border-box;border:1px solid var(--borda);border-radius:var(--radius-btn);padding:12px;font:inherit}.livro-form textarea{min-height:140px;resize:vertical}@media(max-width:800px){.livros-hero-art{opacity:.25;right:-90px}.livros-grid{grid-template-columns:1fr 1fr}.livro-detail{grid-template-columns:1fr}.livro-detail .livro-cover{height:350px}}@media(max-width:540px){.livros-grid{grid-template-columns:1fr}.livros-toolbar{align-items:flex-start;flex-direction:column}}
@media(max-width:700px){.livros-wrap{width:calc(100% - 28px)}.livros-top{gap:10px}.livros-top .livro-btn{padding:9px 10px;font-size:12px}.livro-footer{align-items:flex-start;flex-direction:column}.livro-footer .livro-btn{width:100%}.livro-detail{padding-top:26px;gap:24px}.livro-detail .livro-cover{height:300px}.livros-hero{padding:40px 0 35px}.livros-hero h1{font-size:clamp(36px,12vw,54px)}.livros-page div[style*="grid-template-columns:1fr 320px"]{display:grid!important;grid-template-columns:1fr!important}.livros-page article[style*="display:flex"]{align-items:flex-start!important;flex-wrap:wrap}.livros-page aside{min-width:0}}

/* Carrinho e checkout alinhados à experiência visual do index */
.shop-main { width:min(1160px,calc(100% - 48px)); margin:0 auto; padding-bottom:80px; }
.shop-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; padding:58px 0 32px; }
.shop-heading h1 { margin:10px 0 5px; color:var(--verde-escuro); font-family:var(--font-display); font-size:clamp(38px,5vw,62px); line-height:1.05; }
.shop-heading p { color:var(--texto-medio); font-size:17px; }
.shop-back-link { display:inline-flex; align-items:center; gap:8px; color:var(--verde-principal); font-weight:700; white-space:nowrap; }
.cart-layout,.checkout-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:24px; align-items:start; }
.cart-items,.cart-summary,.checkout-card,.checkout-summary { background:var(--branco); border:1px solid var(--borda); border-radius:var(--radius-card); box-shadow:var(--shadow-card); }
.cart-items,.checkout-card { padding:24px; }
.cart-section-title { display:flex; justify-content:space-between; gap:15px; align-items:center; padding-bottom:17px; border-bottom:1px solid var(--borda); }
.cart-section-title h2,.cart-summary h2,.checkout-card h2,.checkout-summary h2 { margin:0; color:var(--texto-escuro); font-size:22px; }
.cart-section-title span { color:var(--texto-fraco); font-size:13px; }
.cart-item { display:grid; grid-template-columns:92px minmax(0,1fr) auto; gap:17px; align-items:center; padding:19px 0; border-bottom:1px solid #ebe8df; }
.cart-item:last-child { border-bottom:0; padding-bottom:0; }
.cart-cover { width:92px; height:116px; display:grid; place-items:center; overflow:hidden; border-radius:12px; background:linear-gradient(145deg,#dcebd7,#f8faf4); color:var(--verde-principal); font-size:40px; }
.cart-cover img { width:100%; height:100%; object-fit:cover; }
.cart-item-info h3 { margin:0 0 3px; color:var(--texto-escuro); font-size:17px; }
.cart-item-info small { display:block; margin-bottom:9px; color:var(--texto-fraco); }
.cart-item-info>strong { color:var(--verde-escuro); font-size:15px; }
.cart-quantity { display:flex; align-items:end; gap:8px; flex-wrap:wrap; margin-top:13px; }
.cart-quantity label { display:grid; gap:4px; color:var(--texto-fraco); font-size:11px; font-weight:700; }
.cart-quantity input { width:70px; padding:8px; border:1px solid var(--borda); border-radius:8px; font:inherit; }
.cart-quantity .livro-btn { padding:8px 10px; font-size:12px; }
.cart-remove { padding:8px 4px; color:#9b4d46; font-size:12px; }
.cart-item-total { align-self:start; color:var(--verde-escuro); font-weight:800; white-space:nowrap; }
.cart-summary,.checkout-summary { position:sticky; top:92px; padding:25px; }
.cart-summary h2 { margin:10px 0 22px; font-family:var(--font-display); font-size:27px; }
.summary-line { display:flex; justify-content:space-between; gap:15px; padding:13px 0; color:var(--texto-medio); }
.summary-total { margin-top:6px; border-top:1px solid var(--borda); color:var(--texto-escuro); font-size:19px; }
.summary-total strong { color:var(--verde-escuro); }
.cart-checkout { width:100%; margin-top:15px; box-sizing:border-box; }
.secure-note { display:flex; gap:7px; margin:17px 0 0; color:var(--texto-fraco); font-size:12px; line-height:1.5; }
.secure-note i { color:var(--verde-principal); font-size:16px; }
.shop-empty { margin:5px 0 0; }
.shop-empty>i { display:block; margin-bottom:12px; color:var(--verde-principal); font-size:48px; }
.checkout-card-heading { display:flex; justify-content:space-between; gap:15px; align-items:center; padding-bottom:20px; border-bottom:1px solid var(--borda); }
.checkout-card-heading>div { display:flex; align-items:center; gap:12px; }
.checkout-card-heading>i { color:var(--verde-principal); font-size:20px; }
.checkout-card-heading p { margin:3px 0 0; color:var(--texto-fraco); font-size:13px; }
.step-number { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:var(--verde-principal); color:#fff; font-weight:800; }
.checkout-form { margin-top:22px; }
.payment-methods { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.payment-option { position:relative; display:block; cursor:pointer; }
.payment-option input { position:absolute; opacity:0; pointer-events:none; }
.payment-option span { display:grid; grid-template-columns:auto 1fr; column-gap:9px; align-items:center; min-height:74px; padding:12px; border:1px solid var(--borda); border-radius:12px; color:var(--texto-medio); transition:border .2s,background .2s,box-shadow .2s; }
.payment-option i { grid-row:span 2; color:var(--verde-principal); font-size:22px; }
.payment-option strong { color:var(--texto-escuro); font-size:13px; }
.payment-option small { color:var(--texto-fraco); font-size:10px; }
.payment-option input:checked+span { border-color:var(--verde-principal); background:#edf4eb; box-shadow:0 0 0 2px rgba(78,110,69,.12); }
.card-fields { display:grid; gap:13px; padding:18px; border:1px solid var(--verde-claro); border-radius:13px; background:#f7faf5; }
.card-fields-title { color:var(--verde-escuro); font-weight:800; }
.card-fields-title i { margin-right:6px; color:var(--verde-principal); }
.two-card-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.checkout-form label { display:grid; gap:6px; color:var(--texto-medio); font-size:12px; font-weight:700; }
.checkout-form input,.checkout-form select { width:100%; box-sizing:border-box; padding:12px; border:1px solid var(--borda); border-radius:9px; background:#fff; font:inherit; }
.checkout-form input:focus,.checkout-form select:focus { outline:3px solid rgba(78,110,69,.14); border-color:var(--verde-principal); }
.card-security { color:var(--texto-fraco); font-size:11px; }
.card-security i { color:var(--verde-principal); }
.checkout-submit { width:100%; margin-top:4px; }
.checkout-product { display:grid; grid-template-columns:48px minmax(0,1fr) auto; gap:10px; align-items:center; padding:14px 0; border-bottom:1px solid #ebe8df; }
.checkout-product-cover { display:grid; place-items:center; width:48px; height:62px; overflow:hidden; border-radius:7px; background:#e6f0e2; color:var(--verde-principal); }
.checkout-product-cover img { width:100%; height:100%; object-fit:cover; }
.checkout-product strong { display:block; color:var(--texto-escuro); font-size:13px; }
.checkout-product small { display:block; color:var(--texto-fraco); font-size:11px; }
.checkout-product>b { color:var(--verde-escuro); font-size:12px; white-space:nowrap; }
.payment-success { max-width:720px; margin:10px auto; padding:42px 28px; text-align:center; background:#fff; border:1px solid var(--borda); border-radius:var(--radius-card); box-shadow:var(--shadow-card); }
.success-icon { display:grid; place-items:center; width:64px; height:64px; margin:0 auto 16px; border-radius:50%; background:#e2f0df; color:var(--verde-principal); font-size:34px; }
.payment-success h2 { margin:10px 0; color:var(--texto-escuro); font-family:var(--font-display); font-size:30px; }
.payment-success p { color:var(--texto-medio); }
.pix-box,.boleto-box { display:grid; gap:10px; margin:25px auto; padding:18px; border:1px solid var(--verde-claro); border-radius:13px; background:#f7faf5; text-align:left; }
.pix-box textarea { width:100%; min-height:100px; box-sizing:border-box; padding:10px; border:1px solid var(--borda); border-radius:8px; resize:none; font:12px monospace; }
.pix-box .livro-btn { justify-self:start; }
.pix-qr { width:180px; height:180px; margin:5px auto; object-fit:contain; }
.boleto-box code { padding:11px; overflow-wrap:anywhere; background:#fff; color:var(--texto-escuro); border-radius:8px; }
.boleto-box small { color:var(--texto-fraco); }
.success-back { display:block; margin-top:18px; color:var(--verde-principal); font-weight:700; }
@media(max-width:800px){.shop-main{width:calc(100% - 28px)}.shop-heading{align-items:flex-start;flex-direction:column;padding-top:38px}.cart-layout,.checkout-layout{grid-template-columns:1fr}.cart-summary,.checkout-summary{position:static}.cart-summary{order:2}}
@media(max-width:540px){.shop-main{width:calc(100% - 20px)}.cart-items,.checkout-card,.cart-summary,.checkout-summary{padding:17px}.cart-item{grid-template-columns:70px minmax(0,1fr)}.cart-cover{width:70px;height:92px}.cart-item-total{grid-column:2}.payment-methods{grid-template-columns:1fr}.cart-quantity{align-items:stretch;flex-direction:column}.cart-quantity .livro-btn,.cart-remove{width:max-content}.payment-success{padding:32px 17px}.payment-success h2{font-size:25px}}

/* Cards mais compactos para a vitrine de livros */
.livros-grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; padding-bottom: 60px; }
.livro-card { max-width: 320px; width: 100%; justify-self: center; }
.livro-card .livro-cover { height: 180px; }
.livro-card .livro-cover i { font-size: 58px; }
.livro-card .livro-info { padding: 16px; }
.livro-card .livro-info h3 { font-size: 18px; }
.livro-card .livro-info p { min-height: 42px; margin-top: 8px; font-size: 13px; }
.livro-card .livro-footer { margin-top: 14px; gap: 10px; }
.livro-card .livro-price { font-size: 18px; }
.livro-card .livro-btn { padding: 9px 13px; }
