
  :root{
    --cream: #FBF3E2;
    --paper: #FFFDF8;
    --ink: #3C2A1E;
    --ink-soft: #5C4632;
    --orange: #E88A2E;
    --orange-deep: #D9721B;
    --gold: #F2B94E;
    --gold-deep: #E6A428;
    --wood-text: #4A3419;
    --forest: #3E6350;
    --forest-deep: #2E4B3D;
    --sky: #DCEFF3;
    --pink: #F6DCE0;
    --lilac: #E9E1F5;
  }

  *{ box-sizing: border-box; }
  html, body{ margin: 0; padding: 0; }

  body{
    font-family: 'Nunito Sans', sans-serif;
    color: var(--ink);
    background: var(--cream);
  }

  h1, .brand{ font-family: 'Fraunces', serif; }
  a{ text-decoration: none; color: inherit; }
  button{ font-family: inherit; cursor: pointer; }

  /* ---------- HEADER ---------- */

  header{
    position: relative;
    z-index: 10;
    background: var(--cream);
    border-bottom: 1px solid rgba(60,42,30,0.08);
  }

  .header-inner{
    max-width: 1440px;
    margin: 0 auto;
    padding: 8px 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
  }

  .brand{ display: flex; align-items: center; }
  .brand img.logo{ height: 84px; width: auto; display: block; }

  nav{ display: flex; align-items: center; gap: 36px; }
  nav a{ font-size: 15.5px; font-weight: 600; color: var(--ink-soft); position: relative; padding-bottom: 6px; white-space: nowrap; }
  nav a:hover{ color: var(--ink); }
  nav a.active{ color: var(--ink); }
  nav a.active::after{ content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--orange); border-radius:2px; }

  .header-icons{ display: flex; align-items: center; gap: 22px; }
  .icon-btn{ display:flex; align-items:center; justify-content:center; background:none; border:none; color:var(--ink); padding:4px; position:relative; }
  .icon-btn svg{ width:22px; height:22px; }
  .cart-badge{ position:absolute; top:-6px; right:-8px; background:var(--orange); color:white; font-size:10px; font-weight:800; width:16px; height:16px; border-radius:50%; display:flex; align-items:center; justify-content:center; }
  .nav-toggle{ display:none; background:none; border:none; color:var(--ink); }

  /* ---------- HERO (real illustration as background) ---------- */

  .hero{
    position: relative;
    width: 100%;
    height: 0;
    padding-top: 56.22%; /* 940 / 1672, keeps the artwork's exact proportions at any width */
    overflow: hidden;
  }

  .hero-inner{
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    display: flex;
    align-items: center;
  }

  /* Text painted over the blank wooden sign in the artwork */
  .sign-text{
    position: absolute;
    left: 2.4%;
    top: 31.5%;
    width: 10%;
    height: 17%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    transform: rotate(-2deg);
    font-family: 'Fraunces', serif;
    font-weight: 600;
    color: var(--wood-text);
    font-size: 6px; /* fallback */
    font-size: clamp(4px, 0.4vw, 6.5px);
    line-height: 1.18;
    padding: 4% 10%;
    overflow: hidden; /* safety net: text can never spill past the sign */
  }

  .sign-text .heart{ color: #B5482E; }

  /* Main copy block, placed over the open sky on the right */
  .hero-copy{
    position: relative;
    margin-left: 46%;
    width: 50%;
    padding-right: 4%;
  }

  .eyebrow img.leaf-icon{
    height: 1.3em;
    width: auto;
  }
  .eyebrow img.leaf-icon.right{
    transform: scaleX(-1);
  }

  .hero-leaf{
    position: absolute;
    top: -4px;
    width: clamp(90px, 11.5vw, 210px);
    height: auto;
    z-index: 4;
    pointer-events: none;
  }
  .hero-leaf.left{
    left: -6px;
    transform: scaleX(-1);
  }
  .hero-leaf.right{
    right: -6px;
  }

  @media (max-width: 780px){
    .hero-leaf{ width: clamp(60px, 16vw, 120px); }
  }
  .eyebrow{
    display: flex;
    align-items: center;
    gap: 0.5vw;
    font-size: 12px; /* fallback */
    font-size: clamp(9px, 0.78vw, 14px);
    font-weight: 800;
    letter-spacing: 1.5px;
    color: var(--orange-deep);
    margin-bottom: 1.1vw;
  }

  h1.headline{
    font-size: 34px; /* fallback */
    font-size: clamp(18px, 3vw, 54px);
    line-height: 1.08;
    font-weight: 700;
    color: var(--ink);
    margin: 0 0 1.4vw;
    letter-spacing: -0.5px;
  }

  h1.headline .accent{ color: var(--orange); font-weight: 700; }

  .hero-desc{
    font-size: 14px; /* fallback */
    font-size: clamp(9px, 1vw, 17px);
    line-height: 1.55;
    color: var(--ink-soft);
    max-width: 92%;
    margin: 0 0 1.8vw;
  }

  .hero-ctas{ display: flex; align-items: center; gap: 1vw; flex-wrap: wrap; }

  .btn{
    display: inline-flex;
    align-items: center;
    gap: 0.5vw;
    padding: 0.9vw 1.6vw;
    border-radius: 999px;
    font-weight: 700;
    font-size: 13px; /* fallback */
    font-size: clamp(9px, 0.9vw, 15.5px);
    border: none;
    white-space: nowrap;
  }

  .btn-primary{
    background: linear-gradient(180deg, var(--gold) 0%, var(--gold-deep) 100%);
    color: #4A3210;
    box-shadow: 0 8px 16px rgba(230, 164, 40, 0.35);
  }

  .btn-primary svg{ width: 1vw; height: 1vw; min-width: 12px; min-height: 12px; }

  .btn-secondary{
    background: rgba(251,243,226,0.92);
    color: var(--ink);
    border: 1.5px solid rgba(60,42,30,0.25);
  }

  .play-icon{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.4vw;
    height: 1.4vw;
    min-width: 16px;
    min-height: 16px;
    border-radius: 50%;
    background: var(--ink);
    color: var(--cream);
  }

  .play-icon svg{ width: 45%; height: 45%; margin-left: 1px; }

  /* ---------- RESPONSIVE ---------- */

  @media (max-width: 780px){
    nav{ display: none; }
    .nav-toggle{ display: flex; }
    .hero-copy{ margin-left: 42%; width: 55%; padding-right: 3%; }
    .sign-text{ display: none; }
  }

  @media (max-width: 600px){
    .header-inner{ padding: 8px 20px; }
    .brand img.logo{ height: 60px; }
    .hero-copy{ margin-left: 3%; width: 94%; padding-right: 0; padding-top: 2%; }
  }  .feature-icon{
    width: 52px;
    height: 52px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    flex-shrink: 0;
  }

  .features{
    background: var(--cream);
  }

  .features-bar{
    height: 7px;
    width: 100%;
    background: linear-gradient(90deg, #BFE3C1 0%, #F3E9CE 45%, #F4C978 100%);
  }

  .features-inner{
    max-width: 1440px;
    margin: 0 auto;
    padding: 44px 48px 52px;
    display: flex;
    justify-content: space-between;
    gap: 28px;
    flex-wrap: wrap;
  }

  .feature-item{
    display: flex;
    align-items: flex-start;
    gap: 14px;
    flex: 1 1 220px;
    min-width: 220px;
  }

  .feature-item:nth-child(1) .feature-icon{ background: #EFE0C8; }
  .feature-item:nth-child(2) .feature-icon{ background: #F6D9DE; }
  .feature-item:nth-child(3) .feature-icon{ background: #D9EAF3; }
  .feature-item:nth-child(4) .feature-icon{ background: #FBEBB8; }

  .feature-title{
    font-family: 'Fraunces', serif;
    font-weight: 700;
    font-size: 17px;
    color: var(--ink);
    margin: 2px 0 5px;
    line-height: 1.25;
  }

  .feature-desc{
    font-size: 14px;
    line-height: 1.5;
    color: var(--ink-soft);
    margin: 0;
  }

  @media (max-width: 900px){
    .features-inner{ padding: 36px 24px 44px; gap: 24px; }
    .feature-item{ flex: 1 1 45%; min-width: 45%; }
  }

  @media (max-width: 560px){
    .feature-item{ flex: 1 1 100%; min-width: 100%; }
  }

  /* ---------- SHARED SECTION LAYOUT ---------- */

  .wrap{ max-width: 1440px; margin: 0 auto; padding: 0 48px; }

  section.block{ padding: 76px 0; }

  .sec-top{ display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 40px; flex-wrap: wrap; }
  .sec-kicker{ font-size: 13px; font-weight: 800; letter-spacing: 1.5px; color: var(--orange-deep); text-transform: uppercase; margin: 0 0 10px; }
  .sec-title{ font-family: 'Fraunces', serif; font-weight: 700; font-size: clamp(26px, 3.6vw, 42px); color: var(--ink); margin: 0; line-height: 1.12; }
  .sec-top p{ color: var(--ink-soft); max-width: 460px; line-height: 1.6; font-size: 15px; margin: 0; }

  /* ---------- LIVROS ---------- */

  .books-section{ background: linear-gradient(#FBF3E2, #F5EEDA); }

  .book-grid{ display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }

  .book-card{
    background: var(--paper);
    border-radius: 22px;
    padding: 12px;
    box-shadow: 0 10px 25px rgba(60,42,30,0.08);
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease;
  }
  .book-card:hover{ transform: translateY(-6px); box-shadow: 0 16px 34px rgba(60,42,30,0.15); }

  .book-cover{
    height: 230px;
    border-radius: 16px;
    padding: 18px;
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    overflow: hidden;
  }
  .book-cover::after{ content:""; position:absolute; width:140px; height:140px; border-radius:50%; background:rgba(255,255,255,.15); right:-35px; bottom:-45px; }
  .book-cover small{ position:relative; z-index:1; letter-spacing:1px; font-weight:800; font-size:10.5px; text-transform:uppercase; opacity:.85; }
  .book-cover .cover-emoji{ font-size:52px; align-self:center; position:relative; z-index:1; filter:drop-shadow(0 6px 6px rgba(0,0,0,.18)); }
  .book-cover h3{ font-family:'Fraunces', serif; font-size:19px; margin:0; position:relative; z-index:1; line-height:1.15; }

  .book-cover.c1{ background: linear-gradient(145deg,#3E6350,#8FAE63); }
  .book-cover.c2{ background: linear-gradient(145deg,#5D7BA8,#C6A8D8); }
  .book-cover.c3{ background: linear-gradient(145deg,#22323A,#7A6142); }
  .book-cover.c4{ background: linear-gradient(145deg,#2B2660,#8560A6); }

  .book-info{ padding: 14px 6px 4px; }
  .book-info h3{ margin: 0 0 6px; font-size: 15.5px; font-family:'Fraunces', serif; }
  .book-info p{ margin: 0; font-size: 13px; color: var(--ink-soft); line-height: 1.5; min-height: 40px; }
  .book-meta{ font-size: 12px; color: var(--forest); font-weight: 700; margin-top: 8px; }
  .book-price-row{ display: flex; align-items: center; justify-content: space-between; margin-top: 12px; font-weight: 800; font-size: 14px; }
  .buy-small{ background: var(--forest); color: #fff; border: 0; border-radius: 999px; padding: 8px 12px; font-size: 12px; font-weight: 700; cursor: pointer; }

  /* ---------- PERSONAGENS (LINO) ---------- */

  .universe-section{ background: var(--sky); }

  .char-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
  .char-card{
    background: rgba(255,255,255,.75);
    border: 1px solid rgba(60,42,30,.08);
    border-radius: 22px;
    padding: 24px;
    display: flex;
    gap: 18px;
    align-items: center;
    box-shadow: 0 10px 24px rgba(46,75,61,.08);
  }
  .char-avatar{ width: 76px; height: 76px; border-radius: 50%; display:flex; align-items:center; justify-content:center; font-size: 32px; flex-shrink: 0; background: #F6E9CE; overflow: hidden; }
  .char-card:nth-child(2) .char-avatar{ background: var(--lilac); }
  .char-card:nth-child(3) .char-avatar{ background: var(--sky); border: 1px solid rgba(60,42,30,.06); }
  .char-card h3{ margin: 0 0 6px; font-family:'Fraunces', serif; font-size: 18px; }
  .char-card p{ margin: 0; color: var(--ink-soft); font-size: 13.5px; line-height: 1.55; }

  .highlight-box{ margin-top: 32px; background: rgba(255,255,255,.7); border-radius: 24px; padding: 30px; text-align: center; }
  .highlight-box .sec-kicker{ text-align:center; }
  .highlight-box h3{ font-family:'Fraunces', serif; font-size: 24px; margin: 6px 0 12px; }
  .highlight-box p{ max-width: 680px; margin: 0 auto; color: var(--ink-soft); line-height: 1.65; }

  /* ---------- UNIVERSO / SOBRE (about-style) ---------- */

  .about-grid{ display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
  .about-art{ min-height: 320px; border-radius: 32px; position: relative; overflow: hidden; display:flex; align-items:center; justify-content:center; }
  .about-art .big-emoji{ font-size: 120px; filter: drop-shadow(0 10px 12px rgba(0,0,0,.15)); }
  .about-art.grad1{ background: linear-gradient(135deg,#F0D9A8,#E3A968); }
  .about-art.grad2{ background: linear-gradient(135deg,#BEDACB,#79A88C); }
  .about-copy p{ line-height: 1.75; color: var(--ink-soft); }
  .pills{ display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
  .pill{ padding: 9px 14px; border-radius: 999px; background: #EFE0C8; color: var(--forest-deep); font-weight: 700; font-size: 12.5px; }

  /* ---------- GRATUITOS ---------- */

  .free-section{ background: var(--forest-deep); color: #fff; }
  .free-grid{ display: grid; grid-template-columns: 1.1fr .9fr; gap: 50px; align-items: center; }
  .free-grid .sec-kicker{ color: var(--gold); }
  .free-grid h2{ font-family:'Fraunces', serif; font-size: clamp(24px, 3.6vw, 38px); margin: 4px 0 14px; color: #fff; line-height:1.15; }
  .free-grid p{ color: #DCE7DD; line-height: 1.7; }
  .free-card{ background: var(--gold); color: var(--ink); padding: 32px; border-radius: 26px; transform: rotate(1.5deg); box-shadow: 10px 10px 0 rgba(0,0,0,.14); }
  .free-card .big-emoji{ font-size: 48px; }
  .free-card h3{ font-family:'Fraunces', serif; font-size: 21px; margin: 10px 0; }
  .free-card p{ color: #6b4f2c; }

  /* ---------- FOOTER ---------- */

  footer{ background: #2D4234; color: #E8EEE3; padding: 56px 0 22px; }
  .footer-grid{ display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: 32px; }
  .footer-brand{ font-family:'Fraunces', serif; font-size: 22px; color: #fff; font-weight: 700; }
  footer p, footer li{ color: #BDCBBD; font-size: 13.5px; line-height: 1.8; }
  footer ul{ list-style: none; padding: 0; margin: 10px 0; }
  footer h4{ margin: 0 0 8px; color: #fff; font-family:'Fraunces', serif; font-size: 15px; }
  footer a:hover{ color: #fff; }
  .copyright{ border-top: 1px solid rgba(255,255,255,.1); margin-top: 40px; padding-top: 18px; color: #AEB9AD; font-size: 12px; }

  /* ---------- CART PANEL & MODAL ---------- */

  .cart-panel{
    position: fixed; right: 20px; top: 20px; width: min(380px, calc(100% - 40px));
    background: var(--paper); border-radius: 24px; padding: 22px;
    box-shadow: 0 25px 70px rgba(0,0,0,.22); z-index: 200;
    transform: translateX(130%); transition: .3s;
    max-height: calc(100vh - 40px); overflow-y: auto;
  }
  .cart-panel.open{ transform: translateX(0); }
  .cart-head{ display: flex; justify-content: space-between; align-items: center; }
  .cart-head h3{ font-family:'Fraunces', serif; margin:0; font-size:18px; }
  .cart-close{ border:0; background:#F0E7D3; border-radius:50%; width:32px; height:32px; cursor:pointer; }
  .cart-items{ max-height: 320px; overflow: auto; margin: 15px 0; }
  .cart-item{ display: flex; justify-content: space-between; gap: 10px; padding: 12px 0; border-bottom: 1px solid #eee; font-size: 13.5px; }
  .cart-empty{ color: var(--ink-soft); text-align: center; padding: 26px 10px; font-size: 14px; }
  .cart-total-row{ display:flex; justify-content:space-between; font-weight:800; font-size:15px; margin: 6px 0 14px; }
  .checkout-btn{ width: 100%; justify-content: center; }

  .modal-overlay{ position: fixed; inset: 0; background: rgba(35,28,23,.6); display: none; place-items: center; padding: 20px; z-index: 300; }
  .modal-overlay.open{ display: grid; }
  .modal-box{ width: min(820px, 100%); max-height: 90vh; overflow: auto; background: var(--paper); border-radius: 28px; padding: 26px; position: relative; }
  .modal-close{ position: absolute; right: 16px; top: 16px; border: 0; background: #eee; border-radius: 50%; width: 36px; height: 36px; cursor: pointer; }
  .modal-content{ display: grid; grid-template-columns: 280px 1fr; gap: 32px; align-items: center; }
  .modal-cover{ height: 380px; }
  .modal-text h2{ font-family:'Fraunces', serif; font-size: 28px; margin: 0 0 12px; }
  .modal-text p{ color: var(--ink-soft); line-height: 1.75; font-size: 14.5px; }
  .modal-text .sec-kicker{ margin-bottom: 6px; }

  /* ---------- NEW SECTIONS RESPONSIVE ---------- */

  @media (max-width: 900px){
    .wrap{ padding: 0 24px; }
    .book-grid{ grid-template-columns: repeat(2, 1fr); }
    .char-grid{ grid-template-columns: 1fr; }
    .about-grid, .free-grid{ grid-template-columns: 1fr; }
    .about-art{ min-height: 220px; }
    .footer-grid{ grid-template-columns: 1fr 1fr; }
    .modal-content{ grid-template-columns: 1fr; }
    .modal-cover{ height: 260px; }
  }

  @media (max-width: 560px){
    section.block{ padding: 56px 0; }
    .book-grid{ grid-template-columns: 1fr; }
    .sec-top{ display:block; }
    .sec-top p{ margin-top: 10px; }
    .footer-grid{ grid-template-columns: 1fr; }
  }

  /* ---------- INTERNAL PAGE BANNER (non-home pages) ---------- */

  .page-banner{
    background: linear-gradient(180deg, var(--sky) 0%, var(--cream) 100%);
    padding: 54px 0 46px;
    text-align: center;
  }
  .page-banner .sec-kicker{ justify-content: center; display: flex; align-items: center; gap: 6px; }
  .page-banner h1.sec-title{ font-size: clamp(28px, 4vw, 46px); margin: 6px 0 12px; }
  .page-banner p{ color: var(--ink-soft); max-width: 560px; margin: 0 auto; line-height: 1.65; font-size: 15.5px; }

  .breadcrumb{ font-size: 13px; color: var(--ink-soft); margin-bottom: 14px; }
  .breadcrumb a{ color: var(--orange-deep); font-weight: 700; }

  /* ---------- CHECKOUT ---------- */

  .checkout-wrap{ max-width: 680px; }
  .checkout-box{ background: var(--paper); border-radius: 24px; padding: 30px; box-shadow: 0 10px 30px rgba(60,42,30,0.08); }
  .checkout-line{ display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 14px 0; border-bottom: 1px solid rgba(60,42,30,0.08); }
  .checkout-line:last-of-type{ border-bottom: none; }
  .checkout-line .ci-name{ font-weight: 700; font-family: 'Fraunces', serif; }
  .checkout-line .ci-qty{ color: var(--ink-soft); font-size: 13px; }
  .checkout-total{ display: flex; justify-content: space-between; align-items: center; font-weight: 800; font-size: 19px; margin-top: 18px; padding-top: 18px; border-top: 2px solid var(--ink); }
  .checkout-empty{ text-align: center; color: var(--ink-soft); padding: 30px 10px; }
  .checkout-cta{ width: 100%; justify-content: center; margin-top: 22px; font-size: 16px; padding: 16px; }
  .checkout-note{ display:flex; gap:10px; align-items:flex-start; background: var(--sky); border-radius: 16px; padding: 16px 18px; margin-top: 18px; font-size: 13.5px; color: var(--ink-soft); line-height: 1.6; }
  .checkout-secure{ display:flex; align-items:center; justify-content:center; gap:8px; margin-top:14px; font-size:12.5px; color: var(--ink-soft); }

  /* ---------- LINO ILLUSTRATION (replacing generic owl emoji) ---------- */

  .char-avatar img.lino-img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 15%;
    border-radius: 50%;
  }

  .about-art img.lino-img-lg{
    width: auto;
    height: 78%;
    max-height: 260px;
    filter: drop-shadow(0 12px 14px rgba(0,0,0,.18));
  }

  .book-cover img.lino-img-cover{
    width: auto;
    height: 100px;
    align-self: center;
    position: relative;
    z-index: 1;
    filter: drop-shadow(0 6px 6px rgba(0,0,0,.25));
  }

  .cart-item img.lino-img-mini, .checkout-line img.lino-img-mini{
    width: 22px;
    height: 22px;
    object-fit: cover;
    border-radius: 50%;
    vertical-align: middle;
    margin-right: 4px;
  }

  .modal-cover img.lino-img-cover{
    height: 160px;
  }
