:root { --forest:#17382f; --forest-deep:#0d2a22; --ink:#1c211d; --paper:#f6f2e8; --paper-2:#ede6d8; --red:#9a3d2e; --red-deep:#742a21; --gold:#c79a5a; --gold-soft:#dfbd86; --line:rgba(28,33,29,.14); --ease:cubic-bezier(.22,1,.36,1); }
    * { box-sizing:border-box; }
    html { scroll-behavior:smooth; }
    body { margin:0; background:var(--paper); color:var(--ink); font-family:'DM Sans',sans-serif; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
    body:before { content:""; position:fixed; inset:0; pointer-events:none; opacity:.22; z-index:50; mix-blend-mode:multiply; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/ filter%3E%3Crect width='100%25' height='100%25' opacity='.04' filter='url(%23n)'/%3E%3C/svg%3E"); }
    a { color:inherit; text-decoration:none; } button { font:inherit; border:0; cursor:pointer; color:inherit; } img { display:block; max-width:100%; }
    h1,h2,h3,h4,p { margin:0; } h1,h2,h3 { font-family:'Playfair Display',Georgia,serif; font-weight:600; }
    .eyebrow { display:flex; align-items:center; gap:10px; color:var(--gold); text-transform:uppercase; letter-spacing:.18em; font-size:10px; font-weight:700; }
    .eyebrow:before { content:""; width:26px; height:1px; background:currentColor; }
    .container { width:min(1180px,calc(100% - 48px)); margin:0 auto; }
    .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
    .btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:0 22px; border-radius:999px; transition:transform .2s var(--ease), background .2s ease, color .2s ease, box-shadow .2s ease; font-size:13px; font-weight:700; }
    .btn:active { transform:scale(.97); } .btn-primary { background:var(--red); color:#fffaf1; box-shadow:0 12px 24px rgba(116,42,33,.16); } .btn-primary:hover { background:var(--red-deep); transform:translateY(-2px); }
    .btn-light { background:var(--paper); color:var(--forest); } .btn-light:hover { background:#fffdf7; transform:translateY(-2px); }
    .btn-ghost { background:transparent; border:1px solid rgba(255,255,255,.25); color:#fffaf1; } .btn-ghost:hover { background:rgba(255,255,255,.1); }
    .icon-btn { width:42px; height:42px; border-radius:50%; display:grid; place-items:center; background:transparent; transition:.2s var(--ease); position:relative; } .icon-btn:hover { background:rgba(199,154,90,.14); color:var(--red); }
    .icon { width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }

    /* splash */
    #splash { position:fixed; inset:0; z-index:100; display:grid; place-items:center; background:radial-gradient(circle at 50% 30%,#244e40 0%,var(--forest) 44%,var(--forest-deep) 100%); transition:opacity .9s ease, visibility .9s ease; }
    #splash.hidden { opacity:0; visibility:hidden; pointer-events:none; }
    #splash:before { content:""; position:absolute; inset:0; opacity:.22; background:radial-gradient(circle at center, transparent 20%,rgba(0,0,0,.35) 100%); }
    .splash-inner { position:relative; width:min(390px,80vw); display:flex; flex-direction:column; align-items:center; text-align:center; animation:splash-in 1.2s var(--ease) both; }
    .splash-logo { width:min(250px,62vw); filter:drop-shadow(0 14px 28px rgba(0,0,0,.28)); }
    .splash-rule { width:0; height:1px; margin:24px 0 20px; background:linear-gradient(90deg,transparent,var(--gold-soft),transparent); animation:rule-in 1.1s 1s var(--ease) forwards; }
    .splash-caption { color:var(--gold-soft); text-transform:uppercase; letter-spacing:.32em; font-size:10px; opacity:0; animation:fade-in .8s 1.5s ease forwards; }
    .splash-progress { width:180px; height:2px; margin-top:34px; background:rgba(255,255,255,.14); overflow:hidden; border-radius:2px; opacity:0; animation:fade-in .7s 1.8s ease forwards; }
    .splash-progress span { display:block; height:100%; width:0; background:var(--gold-soft); animation:progress 7s linear forwards; }
    .splash-skip { position:absolute; right:28px; bottom:24px; background:transparent; color:rgba(255,255,255,.65); text-transform:uppercase; letter-spacing:.15em; font-size:10px; opacity:0; animation:fade-in .7s 2s ease forwards; }
    @keyframes splash-in { from{opacity:0; transform:translateY(16px) scale(.96)} to{opacity:1;transform:none} } @keyframes rule-in { to{width:170px} } @keyframes fade-in { to{opacity:1} } @keyframes progress { to{width:100%} }

    /* header */
    .site-header { position:sticky; top:0; z-index:40; background:rgba(246,242,232,.93); backdrop-filter:blur(18px); border-bottom:1px solid transparent; transition:.25s ease; }
    .site-header.scrolled { border-color:var(--line); box-shadow:0 8px 30px rgba(28,33,29,.08); }
    .topline { background:var(--forest); color:var(--gold-soft); height:30px; display:flex; align-items:center; justify-content:center; text-transform:uppercase; letter-spacing:.15em; font-size:9px; }
    .nav { min-height:84px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
    .brand { width:172px; } .brand img { width:100%; height:auto; }
    .main-nav { display:flex; align-items:center; gap:28px; color:#465149; font-size:12px; font-weight:600; } .main-nav a { position:relative; padding:8px 0; } .main-nav a:after { content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--red); transition:.25s ease; } .main-nav a:hover:after { width:100%; }
    .nav-actions { display:flex; align-items:center; gap:4px; } .cart-count { position:absolute; right:0; top:0; width:16px; height:16px; border-radius:50%; display:grid; place-items:center; font-size:9px; background:var(--red); color:white; }
    .mobile-toggle { display:none; }

    /* hero */
    .hero { position:relative; min-height:650px; display:flex; align-items:center; overflow:hidden; background:var(--forest); color:#fffaf1; }
    .hero-media { position:absolute; inset:0; background-image:linear-gradient(90deg,rgba(13,42,34,.96) 0%,rgba(13,42,34,.78) 36%,rgba(13,42,34,.16) 74%,rgba(13,42,34,.45) 100%),url('hero-books.png'); background-size:cover; background-position:center; }
    .hero-media:after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(13,42,34,.6),transparent 35%); }
    .hero-content { position:relative; z-index:1; padding:94px 0 120px; max-width:610px; }
    .hero h1 { margin-top:20px; font-size:clamp(46px,7vw,82px); line-height:.98; letter-spacing:-.045em; } .hero h1 em { color:var(--gold-soft); font-weight:500; }
    .hero-copy { max-width:470px; margin:26px 0 32px; color:rgba(255,250,241,.72); line-height:1.75; font-size:15px; }
    .hero-actions { display:flex; gap:12px; flex-wrap:wrap; }
    .hero-note { display:flex; align-items:center; gap:16px; margin-top:66px; color:rgba(255,255,255,.7); font-size:11px; text-transform:uppercase; letter-spacing:.14em; } .hero-note span { width:42px; height:1px; background:var(--gold); }
    .hero-stamp { position:absolute; right:9%; bottom:54px; width:118px; height:118px; border:1px solid rgba(223,189,134,.56); border-radius:50%; display:grid; place-items:center; transform:rotate(-14deg); color:var(--gold-soft); text-align:center; font-family:'Playfair Display'; font-style:italic; font-size:14px; line-height:1.15; } .hero-stamp:before { content:"✦"; position:absolute; top:14px; font-size:15px; font-style:normal; } .hero-stamp small { display:block; font-family:'DM Sans'; text-transform:uppercase; letter-spacing:.18em; font-style:normal; font-size:7px; margin-top:5px; }

    /* credibility strip */
    .benefits { background:var(--paper-2); border-bottom:1px solid var(--line); } .benefits-grid { display:grid; grid-template-columns:repeat(4,1fr); } .benefit { display:flex; align-items:center; gap:14px; padding:20px 20px 20px 0; color:#5a625b; font-size:11px; line-height:1.35; } .benefit + .benefit { border-left:1px solid var(--line); padding-left:24px; } .benefit strong { display:block; color:var(--ink); font-size:12px; margin-bottom:3px; } .benefit .benefit-icon { color:var(--red); width:24px; }

    /* products */
    .section { padding:104px 0; } .section-head { display:flex; justify-content:space-between; gap:24px; align-items:end; margin-bottom:38px; } .section-head h2 { margin-top:14px; font-size:clamp(34px,4vw,50px); letter-spacing:-.03em; line-height:1.05; } .section-intro { max-width:350px; color:#69716a; font-size:13px; line-height:1.7; }
    .filter-row { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:30px; } .filter { min-height:36px; padding:0 15px; border:1px solid var(--line); border-radius:999px; background:transparent; color:#667068; font-size:11px; transition:.2s ease; } .filter:hover,.filter.active { background:var(--forest); border-color:var(--forest); color:var(--paper); }
    .product-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; } .product-card { position:relative; min-width:0; } .product-visual { position:relative; overflow:hidden; aspect-ratio:4/5; background:#e6ddcc; border-radius:4px; } .product-visual img { width:100%; height:100%; object-fit:cover; transition:transform .65s var(--ease); } .product-card:hover .product-visual img { transform:scale(1.045); } .product-badge { position:absolute; left:12px; top:12px; padding:6px 9px; border-radius:2px; background:var(--paper); color:var(--red); text-transform:uppercase; letter-spacing:.14em; font-size:8px; font-weight:700; z-index:1; } .product-fav { position:absolute; right:10px; top:10px; width:34px; height:34px; border-radius:50%; display:grid; place-items:center; color:white; background:rgba(13,42,34,.68); opacity:0; transform:translateY(-4px); transition:.25s var(--ease); z-index:1; } .product-card:hover .product-fav { opacity:1; transform:none; } .product-info { padding:16px 2px 0; } .product-type { color:var(--red); text-transform:uppercase; letter-spacing:.16em; font-size:9px; font-weight:700; } .product-name { margin-top:7px; font-family:'Playfair Display'; font-size:20px; line-height:1.1; } .product-desc { margin-top:8px; color:#69716a; font-size:12px; line-height:1.45; } .product-bottom { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:15px; } .price { font-size:15px; font-weight:700; } .price small { color:#8b928b; font-size:10px; font-weight:400; } .quick-add { display:flex; align-items:center; gap:7px; color:var(--red); font-size:11px; font-weight:700; background:none; } .quick-add:hover { color:var(--red-deep); }

    /* editorial feature */
    .feature { background:var(--forest); color:var(--paper); overflow:hidden; } .feature-inner { display:grid; grid-template-columns:1fr 1fr; align-items:center; min-height:550px; } .feature-copy { padding:80px 70px 80px 0; } .feature-copy h2 { font-size:clamp(38px,5vw,62px); line-height:1.02; margin:18px 0 24px; } .feature-copy p { max-width:445px; color:rgba(246,242,232,.67); line-height:1.75; font-size:14px; } .feature-meta { display:flex; gap:32px; margin:34px 0; } .feature-meta strong { display:block; color:var(--gold-soft); font-family:'Playfair Display'; font-size:25px; } .feature-meta span { display:block; color:rgba(246,242,232,.52); font-size:10px; text-transform:uppercase; letter-spacing:.12em; margin-top:4px; } .feature-art { position:relative; height:100%; min-height:550px; background:radial-gradient(circle at 50% 50%,#2b5c4c 0%,var(--forest) 56%); overflow:hidden; } .feature-art:before { content:""; position:absolute; width:360px; height:360px; border:1px solid rgba(223,189,134,.25); border-radius:50%; left:50%; top:50%; transform:translate(-50%,-50%); box-shadow:0 0 0 26px rgba(223,189,134,.035),0 0 0 52px rgba(223,189,134,.025); } .feature-art img { position:absolute; width:min(370px,64%); left:50%; top:50%; transform:translate(-44%,-50%) rotate(7deg); filter:drop-shadow(22px 25px 24px rgba(0,0,0,.38)); border-radius:3px; }

    /* categories + journal */
    .category-grid { display:grid; grid-template-columns:1.35fr 1fr 1fr; gap:16px; } .category { min-height:230px; border-radius:4px; padding:26px; position:relative; overflow:hidden; display:flex; align-items:end; color:#fffaf1; background:var(--forest); } .category:nth-child(2) { background:var(--red); } .category:nth-child(3) { background:#8e7147; } .category:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 80% 15%,rgba(255,255,255,.2),transparent 35%); opacity:.7; } .category:nth-child(1):after { content:"✦  ✧  ✦"; position:absolute; right:28px; top:32px; color:var(--gold-soft); font-size:28px; letter-spacing:8px; transform:rotate(-14deg); } .category h3 { position:relative; font-size:29px; line-height:1.05; max-width:210px; } .category small { position:absolute; right:25px; bottom:28px; text-transform:uppercase; font-size:9px; letter-spacing:.16em; opacity:.75; }
    .journal { background:#e9e0d1; } .journal-grid { display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; } .journal h2 { font-size:clamp(34px,4vw,48px); line-height:1.03; margin:16px 0; } .journal p { color:#69716a; font-size:14px; line-height:1.75; max-width:440px; } .journal-image { min-height:310px; position:relative; background:linear-gradient(135deg,#bd9a67,#765136); overflow:hidden; } .journal-image:before,.journal-image:after { content:""; position:absolute; background:#f6f2e8; box-shadow:10px 12px 22px rgba(43,28,15,.24); } .journal-image:before { width:54%; height:77%; left:18%; top:12%; transform:rotate(-7deg); } .journal-image:after { width:39%; height:57%; right:12%; bottom:8%; transform:rotate(9deg); background:#17382f; } .journal-image span { position:absolute; z-index:2; left:27%; top:29%; color:var(--red); font-family:'Playfair Display'; font-size:27px; transform:rotate(-7deg); }

    /* newsletter/footer */
    .newsletter { padding:70px 0; background:var(--red); color:#fffaf1; } .newsletter-inner { display:flex; justify-content:space-between; align-items:center; gap:40px; } .newsletter h2 { font-size:clamp(28px,4vw,42px); } .newsletter p { margin-top:8px; color:rgba(255,250,241,.73); font-size:13px; } .newsletter-form { display:flex; gap:8px; min-width:min(100%,420px); } .newsletter-form input { min-width:0; flex:1; height:48px; padding:0 17px; border:1px solid rgba(255,255,255,.32); background:rgba(0,0,0,.1); color:#fff; border-radius:999px; outline:0; } .newsletter-form input::placeholder { color:rgba(255,255,255,.64); }
    footer { background:var(--forest-deep); color:rgba(246,242,232,.7); padding:70px 0 26px; } .footer-grid { display:grid; grid-template-columns:1.6fr 1fr 1fr 1.1fr; gap:40px; } .footer-brand { width:175px; filter:none; } .footer-copy { max-width:260px; margin-top:20px; font-size:12px; line-height:1.7; } footer h4 { color:var(--gold-soft); text-transform:uppercase; letter-spacing:.16em; font-size:9px; margin:4px 0 18px; } .footer-links { display:flex; flex-direction:column; gap:11px; font-size:12px; } .footer-links a:hover { color:#fff; } .footer-bottom { display:flex; justify-content:space-between; gap:20px; padding-top:40px; margin-top:55px; border-top:1px solid rgba(255,255,255,.12); text-transform:uppercase; letter-spacing:.13em; font-size:9px; }

    /* overlays */
    .toast { position:fixed; z-index:90; right:22px; bottom:22px; padding:15px 18px; background:var(--forest); color:#fffaf1; border-left:3px solid var(--gold); box-shadow:0 18px 40px rgba(0,0,0,.18); transform:translateY(20px); opacity:0; pointer-events:none; transition:.35s var(--ease); font-size:12px; } .toast.show { transform:none; opacity:1; }
    .overlay { position:fixed; inset:0; z-index:80; background:rgba(13,42,34,.52); opacity:0; pointer-events:none; transition:.3s ease; } .overlay.open { opacity:1; pointer-events:auto; }
    .drawer { position:fixed; z-index:81; right:0; top:0; bottom:0; width:min(420px,100%); background:var(--paper); transform:translateX(100%); transition:.45s var(--ease); padding:28px; display:flex; flex-direction:column; } .drawer.open { transform:none; } .drawer-head { display:flex; align-items:center; justify-content:space-between; padding-bottom:20px; border-bottom:1px solid var(--line); } .drawer h3 { font-size:28px; } .drawer-items { flex:1; overflow:auto; padding:20px 0; } .empty-cart { padding:70px 20px; text-align:center; color:#747b74; font-size:13px; line-height:1.65; } .empty-cart strong { display:block; color:var(--forest); font-family:'Playfair Display'; font-size:22px; margin-bottom:8px; } .cart-item { display:grid; grid-template-columns:58px 1fr auto; gap:12px; align-items:center; margin-bottom:18px; } .cart-item img { width:58px; height:70px; object-fit:cover; border-radius:2px; } .cart-item strong { display:block; font-family:'Playfair Display'; font-size:15px; } .cart-item small { color:#7d847c; font-size:10px; } .cart-item .remove { color:var(--red); background:none; font-size:11px; } .drawer-total { border-top:1px solid var(--line); padding-top:18px; } .total-row { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; } .total-row span { color:#687068; font-size:12px; } .total-row strong { font-family:'Playfair Display'; font-size:26px; } .drawer .btn { width:100%; }
    .search-panel { position:fixed; z-index:82; left:50%; top:82px; width:min(700px,calc(100% - 30px)); transform:translate(-50%,-20px); opacity:0; pointer-events:none; padding:20px; background:var(--paper); box-shadow:0 20px 50px rgba(0,0,0,.2); transition:.3s var(--ease); } .search-panel.open { transform:translate(-50%,0); opacity:1; pointer-events:auto; } .search-line { display:flex; align-items:center; gap:12px; border-bottom:1px solid var(--forest); padding:3px 0 12px; } .search-line input { width:100%; border:0; outline:0; background:transparent; color:var(--ink); font-size:18px; font-family:'Playfair Display'; } .search-results { padding-top:16px; color:#707970; font-size:12px; }
    .reveal { opacity:0; transform:translateY(22px); transition:opacity .75s var(--ease), transform .75s var(--ease); } .reveal.visible { opacity:1; transform:none; }
    @media (prefers-reduced-motion:reduce) { *,*:before,*:after { animation-duration:.01ms!important; transition-duration:.01ms!important; scroll-behavior:auto!important; } .reveal { opacity:1; transform:none; } }
    @media (max-width:900px) { .main-nav { gap:16px; } .product-grid { grid-template-columns:repeat(2,1fr); } .feature-inner { grid-template-columns:1fr; } .feature-copy { padding:78px 0 52px; } .feature-art { min-height:470px; } .footer-grid { grid-template-columns:1.2fr 1fr 1fr; } .footer-grid > :last-child { grid-column:2 / 4; } }
    @media (max-width:700px) { .container { width:min(100% - 32px,1180px); } .topline { font-size:8px; letter-spacing:.1em; } .nav { min-height:72px; position:relative; } .brand { width:148px; } .main-nav { display:none; } .main-nav.mobile-open { display:flex; position:absolute; z-index:5; top:72px; left:-16px; right:-16px; padding:14px 20px 18px; background:rgba(246,242,232,.98); border-top:1px solid var(--line); border-bottom:1px solid var(--line); box-shadow:0 18px 28px rgba(28,33,29,.09); flex-direction:column; align-items:flex-start; gap:0; } .main-nav.mobile-open a { width:100%; padding:13px 0; border-bottom:1px solid var(--line); } .main-nav.mobile-open a:last-child { border-bottom:0; } .mobile-toggle { display:grid; } .nav-actions .search-trigger { display:none; } .hero { min-height:690px; } .hero-content { padding:78px 0 116px; } .hero h1 { font-size:55px; } .hero-copy { font-size:14px; } .hero-media { background-position:62% center; background-image:linear-gradient(90deg,rgba(13,42,34,.98) 0%,rgba(13,42,34,.72) 62%,rgba(13,42,34,.25) 100%),url('hero-books.png'); } .hero-stamp { right:18px; bottom:30px; width:88px; height:88px; font-size:11px; } .benefits-grid { grid-template-columns:repeat(2,1fr); } .benefit { padding:16px 8px 16px 0; } .benefit + .benefit { padding-left:12px; } .benefit:nth-child(3) { border-left:0; border-top:1px solid var(--line); } .benefit:nth-child(4) { border-top:1px solid var(--line); } .section { padding:75px 0; } .section-head { display:block; } .section-intro { margin-top:18px; } .product-grid { gap:26px 13px; } .product-name { font-size:17px; } .product-desc { font-size:11px; } .product-fav { opacity:1; transform:none; width:30px; height:30px; } .category-grid { grid-template-columns:1fr 1fr; } .category:first-child { grid-column:1 / -1; min-height:200px; } .category { min-height:180px; padding:20px; } .category h3 { font-size:24px; } .journal-grid { grid-template-columns:1fr; gap:32px; } .newsletter-inner { display:block; } .newsletter-form { margin-top:22px; } .footer-grid { grid-template-columns:1fr 1fr; gap:34px 20px; } .footer-grid > :last-child { grid-column:1 / -1; } .footer-bottom { display:block; line-height:1.8; } .footer-bottom span { display:block; margin-top:8px; } }

    /* página de produto (pdp) — molduras de imagem com ajuste automático */
    .pdp { display:grid; grid-template-columns:minmax(0,440px) 1fr; gap:56px; padding:36px 0 64px; align-items:start; }
    .pdp-media { position:relative; overflow:hidden; aspect-ratio:3/4; background:var(--paper-2); border-radius:6px; box-shadow:0 24px 48px rgba(28,33,29,.12); }
    .pdp-media img { width:100%; height:100%; object-fit:cover; object-position:center; }
    .pdp-info { min-width:0; }
    .pdp-subtitle { margin-top:8px; color:#69716a; font-size:15px; }
    .pdp-price { margin-top:20px; display:flex; align-items:baseline; gap:10px; font-size:28px; font-weight:700; color:var(--ink); }
    .pdp-price del { font-size:15px; font-weight:400; color:#8b928b; }
    .pdp-actions { margin-top:24px; display:flex; gap:12px; flex-wrap:wrap; }
    .pdp-desc, .pdp-about { margin-top:28px; line-height:1.75; color:#3c433d; font-size:14px; }
    @media (max-width:860px) { .pdp { grid-template-columns:1fr; gap:28px; } .pdp-media { aspect-ratio:4/5; max-width:360px; margin:0 auto; } }

    /* primitivos de formulário reutilizados em checkout, contato e autenticação */
    .page-hero { padding:64px 0 36px; }
    .page-hero .eyebrow { margin-bottom:14px; }
    .page-hero h1 { font-size:42px; }
    .page-hero p { margin-top:10px; color:#69716a; font-size:15px; max-width:520px; }
    .checkout-section, .auth-card { background:#fff; border:1px solid var(--line); border-radius:8px; padding:32px; }
    .field { margin-bottom:18px; }
    .field label { display:block; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#545c54; margin-bottom:6px; }
    .field input, .field select, .field textarea { width:100%; padding:13px 14px; border:1px solid var(--line); border-radius:4px; background:var(--paper); font:inherit; font-size:14px; color:var(--ink); transition:border-color .2s ease; }
    .field input:focus, .field select:focus, .field textarea:focus { outline:0; border-color:var(--red); }
    .field-error { margin-top:6px; font-size:12px; color:var(--red-deep); }
    .field-hint { margin-top:6px; font-size:12px; color:#8b928b; }
    .auth-narrow { width:min(460px,100%); margin:0 auto; }
    .auth-links { margin-top:18px; text-align:center; font-size:13px; color:#69716a; }
    .auth-links a { color:var(--red); font-weight:700; }
    .status-message { margin-bottom:18px; padding:12px 14px; border-radius:4px; background:#eef6ef; color:#215c33; font-size:13px; }
    .prose { color:#3c433d; line-height:1.75; font-size:14px; }

    /* página de carrinho — estava sem nenhum CSS, imagens "estouravam" o layout */
    .cart-page { display:grid; grid-template-columns:1fr 360px; gap:48px; padding:8px 0 90px; align-items:start; }
    .cart-line { display:grid; grid-template-columns:72px 1fr auto auto; gap:18px; align-items:center; padding:20px 0; border-bottom:1px solid var(--line); }
    .cart-line img { width:72px; height:96px; object-fit:cover; border-radius:4px; background:var(--paper-2); }
    .cart-line h3 { font-family:'Playfair Display'; font-size:17px; }
    .cart-line h3 a { color:var(--ink); }
    .unit-price { margin-top:4px; color:#8b928b; font-size:12px; }
    .line-total { font-weight:700; font-size:15px; text-align:right; }
    .qty-stepper input { width:52px; padding:8px; border:1px solid var(--line); border-radius:4px; text-align:center; font:inherit; }
    .summary-box { background:#fff; border:1px solid var(--line); border-radius:8px; padding:28px; position:sticky; top:24px; }
    .summary-box h3 { font-family:'Playfair Display'; font-size:20px; margin-bottom:18px; }
    .summary-row { display:flex; justify-content:space-between; font-size:13px; color:#545c54; margin-bottom:10px; }
    .summary-row.total { border-top:1px solid var(--line); margin-top:14px; padding-top:14px; font-size:17px; font-weight:700; color:var(--ink); }
    .summary-box .btn { width:100%; margin-top:18px; }
    .empty-state { text-align:center; padding:80px 20px; color:#69716a; font-size:14px; }
    .empty-state strong { display:block; font-family:'Playfair Display'; font-size:26px; color:var(--ink); margin-bottom:10px; }
    .alert { padding:13px 16px; border-radius:4px; font-size:13px; }
    .alert-success { background:#eef6ef; color:#215c33; }
    .alert-error { background:#fbeceb; color:#9a3d2e; }
    @media (max-width:900px) { .cart-page { grid-template-columns:1fr; } .cart-line { grid-template-columns:60px 1fr; grid-template-rows:auto auto; } .cart-line > *:nth-child(3), .cart-line > *:nth-child(4) { grid-column:2; } }

    /* Assinatura (home): modo com foto - substitui o visual decorativo padrao */
    .journal-image.has-photo:before, .journal-image.has-photo:after { display:none; }
    .journal-image .journal-photo { position:absolute; inset:0; z-index:1; width:100%; height:100%; object-fit:cover; }

    /* Card de sala com foto: imagem de fundo + veu para o texto ficar legivel */
    .category.has-photo { background-size:cover; background-position:center; }
    .category.has-photo:before, .category.has-photo:after { display:none; }
    .category-veil { position:absolute; inset:0; background:linear-gradient(180deg,rgba(13,42,34,.06) 25%,rgba(13,42,34,.6) 100%); }

    /* Icones das redes sociais no rodape: tamanho fixo e alinhados ao texto */
    .footer-links .social-ico { display:inline-flex; width:15px; height:15px; margin-right:6px; vertical-align:-2px; }
    .footer-links .social-ico svg { width:100%; height:100%; display:block; }

    /* Rodape: alinhamento consistente entre colunas (mesmo com colunas ocultas) */
    .footer-grid { align-items:start; }
    .footer-grid.cols-3 { grid-template-columns:1.6fr 1fr 1.1fr; }
    .footer-grid.cols-2 { grid-template-columns:1.6fr 1fr; }
    .footer-grid.cols-1 { grid-template-columns:1fr; }
    .footer-grid > div:first-child { padding-right:20px; }
    .footer-brand { display:block; margin-bottom:4px; }
    .footer-links a { display:inline-flex; align-items:baseline; }
    @media (max-width:900px) { .footer-grid.cols-3, .footer-grid.cols-2 { grid-template-columns:1.2fr 1fr; } .footer-grid > div:first-child { padding-right:0; } }
