    /* ════════════════════════════════════════════════════════════════
       PR ARTES GRÁFICAS: edição premium
       Conceito: a linguagem da própria gráfica vira o design.
       Papel, tinta, CMYK, marcas de registro, retícula, specs de prepress.
       ════════════════════════════════════════════════════════════════ */

    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      /* tintas */
      --c:  #00AEC3;
      --m:  #E5007A;
      --y:  #FFC400;
      --y-deep: #9A7B00;
      --k:  #161412;
      --wa: #25D366;

      /* papel */
      --paper:    #F6F2EA;
      --paper-2:  #EFE9DD;
      --paper-3:  #E7E0D2;
      --ink:      #161412;
      --ink-2:    #211E1A;
      --ink-3:    #2B2722;

      --text:   #1D1A16;
      --muted:  #756E62;
      --faint:  #A39B8C;
      --line:   rgba(22,20,18,.14);
      --line-soft: rgba(22,20,18,.08);

      --serif: 'Fraunces', Georgia, serif;
      --sans:  'Archivo', sans-serif;
      --mono:  'Space Mono', monospace;

      --ease: cubic-bezier(.22,.8,.24,1);
    }

    ::selection { background: var(--m); color: #fff; }

    html { scroll-behavior: smooth; }

    body {
      background: var(--paper);
      color: var(--text);
      font-family: var(--sans);
      font-weight: 400;
      line-height: 1.65;
      overflow-x: hidden;
    }

    /* textura de papel sutil em todo o site */
    body::before {
      content: '';
      position: fixed;
      inset: 0;
      z-index: 1;
      pointer-events: none;
      opacity: .35;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E");
    }

    img { max-width: 100%; display: block; }

    /* ── PRELOADER: registro de cores ── */
    #loader {
      position: fixed;
      inset: 0;
      z-index: 999;
      background: var(--paper);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 1.4rem;
      transition: opacity .5s ease, visibility .5s;
    }
    #loader.done { opacity: 0; visibility: hidden; }
    .loader-reg { position: relative; width: 74px; height: 74px; }
    .loader-reg span {
      position: absolute;
      inset: 0;
      border-radius: 50%;
      mix-blend-mode: multiply;
      animation: registro 1.1s var(--ease) forwards;
    }
    .loader-reg span:nth-child(1) { background: var(--c); transform: translate(-26px, 0); }
    .loader-reg span:nth-child(2) { background: var(--m); transform: translate(26px, 0);  animation-delay: .08s; }
    .loader-reg span:nth-child(3) { background: var(--y); transform: translate(0, 24px);  animation-delay: .16s; }
    @keyframes registro { to { transform: translate(0,0); } }
    .loader-tag {
      font-family: var(--mono);
      font-size: .68rem;
      letter-spacing: .35em;
      text-transform: uppercase;
      color: var(--muted);
    }

    /* ── BARRA DE PROGRESSO: tira de calibração CMYK ── */
    #progress {
      position: fixed;
      top: 0; left: 0;
      height: 4px;
      width: 0%;
      z-index: 400;
      background: linear-gradient(90deg, var(--c) 0 25%, var(--m) 25% 50%, var(--y) 50% 75%, var(--k) 75% 100%);
      background-size: 320px 100%;
    }

    /* ── NAV ── */
    nav {
      position: fixed;
      top: 4px; left: 0; right: 0;
      z-index: 300;
      padding: 0 4.5%;
      height: 72px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      transition: background .35s, box-shadow .35s, height .35s;
    }
    nav.scrolled {
      background: rgba(246,242,234,.92);
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
      box-shadow: 0 1px 0 var(--line-soft);
      height: 62px;
    }
    .nav-logo {
      display: flex;
      align-items: center;
      gap: 12px;
      text-decoration: none;
      color: var(--text);
    }
    .nav-logo-img {
      display: block;
      flex: none;
      height: 34px;
      width: auto;
      transition: height .35s;
    }
    nav.scrolled .nav-logo-img { height: 30px; }
    .nav-logo-name {
      font-family: var(--serif);
      font-weight: 600;
      font-size: 1.22rem;
      letter-spacing: -.01em;
    }
    .nav-logo-name em { font-style: italic; color: var(--m); }
    .nav-links { display: flex; gap: 2.1rem; list-style: none; align-items: center; }
    .nav-links a {
      color: var(--muted);
      text-decoration: none;
      font-size: .8rem;
      font-weight: 500;
      letter-spacing: .09em;
      text-transform: uppercase;
      transition: color .2s;
      position: relative;
    }
    .nav-links a:not(.nav-cta)::after {
      content: '';
      position: absolute;
      left: 0; bottom: -6px;
      width: 0; height: 2px;
      background: var(--m);
      transition: width .25s var(--ease);
    }
    .nav-links a:not(.nav-cta):hover { color: var(--text); }
    .nav-links a:not(.nav-cta):hover::after { width: 100%; }
    .nav-cta {
      background: var(--ink);
      color: var(--paper) !important;
      padding: 10px 20px;
      font-weight: 600 !important;
      transition: background .25s, transform .25s !important;
    }
    .nav-cta:hover { background: var(--m); transform: translateY(-1px); }
    .hamburger {
      display: none;
      flex-direction: column;
      gap: 5px;
      cursor: pointer;
      padding: 6px;
    }
    .hamburger span {
      display: block;
      width: 26px; height: 2px;
      background: var(--text);
    }

    /* ── HERO ── */
    #hero {
      min-height: 100svh;
      display: flex;
      align-items: center;
      position: relative;
      overflow: hidden;
      padding: 130px 4.5% 90px;
    }
    .hero-img { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
    .hero-img img {
      width: 100%; height: 100%;
      object-fit: cover;
      object-position: right center;
    }
    .hero-img::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(
        100deg,
        rgba(246,242,234,.985) 0%,
        rgba(246,242,234,.94) 30%,
        rgba(246,242,234,.62) 50%,
        rgba(246,242,234,.12) 68%,
        rgba(246,242,234,0) 80%
      );
    }

    /* marcas de corte nos cantos do hero */
    .crop {
      position: absolute;
      width: 26px; height: 26px;
      z-index: 3;
      opacity: .4;
    }
    .crop::before, .crop::after {
      content: '';
      position: absolute;
      background: var(--ink);
    }
    .crop::before { width: 100%; height: 1px; }
    .crop::after  { width: 1px; height: 100%; }
    .crop.tl { top: 92px; left: 4.5%; }
    .crop.tl::before { top: 0; left: 0; } .crop.tl::after { top: 0; left: 0; }
    .crop.tr { top: 92px; right: 4.5%; }
    .crop.tr::before { top: 0; right: 0; } .crop.tr::after { top: 0; right: 0; }
    .crop.bl { bottom: 26px; left: 4.5%; }
    .crop.bl::before { bottom: 0; left: 0; } .crop.bl::after { bottom: 0; left: 0; }
    .crop.br { bottom: 26px; right: 4.5%; }
    .crop.br::before { bottom: 0; right: 0; } .crop.br::after { bottom: 0; right: 0; }

    .hero-inner { position: relative; z-index: 2; max-width: 980px; }

    .hero-spec {
      display: inline-flex;
      align-items: center;
      gap: 14px;
      font-family: var(--mono);
      font-size: .66rem;
      letter-spacing: .3em;
      text-transform: uppercase;
      color: var(--muted);
      margin-bottom: 2.2rem;
      padding: 8px 0;
      border-top: 1px solid var(--line);
      border-bottom: 1px solid var(--line);
    }
    .hero-spec .dot-c, .hero-spec .dot-m, .hero-spec .dot-y, .hero-spec .dot-k {
      width: 7px; height: 7px; border-radius: 50%; display: inline-block;
    }
    .dot-c { background: var(--c); } .dot-m { background: var(--m); }
    .dot-y { background: var(--y); } .dot-k { background: var(--k); }

    .hero-title {
      font-family: var(--serif);
      font-weight: 560;
      font-size: clamp(3.1rem, 8.4vw, 7.2rem);
      line-height: .98;
      letter-spacing: -.025em;
      margin-bottom: 1.8rem;
      font-variation-settings: 'opsz' 144;
    }
    .hero-title .word { display: inline-block; overflow: hidden; vertical-align: bottom; }
    .hero-title .word > span {
      display: inline-block;
      transform: translateY(110%);
      animation: rise .9s var(--ease) forwards;
    }
    .hero-title .w2 > span { animation-delay: .12s; }
    .hero-title .w3 > span { animation-delay: .24s; }
    @keyframes rise { to { transform: translateY(0); } }
    .hero-title em {
      font-style: italic;
      font-weight: 400;
      color: var(--m);
    }

    .hero-sub {
      font-size: clamp(1rem, 1.8vw, 1.18rem);
      color: var(--muted);
      max-width: 540px;
      margin-bottom: 2.2rem;
      line-height: 1.75;
      font-weight: 300;
      opacity: 0;
      animation: fadeUp .8s var(--ease) .45s forwards;
    }
    @keyframes fadeUp {
      from { opacity: 0; transform: translateY(18px); }
      to   { opacity: 1; transform: none; }
    }

    .hero-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 1.1rem;
      align-items: center;
      opacity: 0;
      animation: fadeUp .8s var(--ease) .6s forwards;
    }

    .btn-whats {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      background: var(--wa);
      color: #fff;
      padding: 16px 30px;
      font-family: var(--sans);
      font-weight: 600;
      font-size: .95rem;
      text-decoration: none;
      letter-spacing: .01em;
      position: relative;
      overflow: hidden;
      transition: transform .25s var(--ease), box-shadow .25s;
      box-shadow: 0 6px 28px rgba(37,211,102,.32);
    }
    .btn-whats::after {
      content: '';
      position: absolute;
      top: 0; left: -80%;
      width: 50%; height: 100%;
      background: linear-gradient(105deg, transparent, rgba(255,255,255,.35), transparent);
      transition: left .55s var(--ease);
    }
    .btn-whats:hover { transform: translateY(-3px); box-shadow: 0 12px 36px rgba(37,211,102,.42); }
    .btn-whats:hover::after { left: 130%; }
    .btn-whats svg { width: 20px; height: 20px; flex-shrink: 0; }

    .btn-under {
      color: var(--text);
      font-weight: 500;
      font-size: .92rem;
      text-decoration: none;
      border-bottom: 1.5px solid var(--m);
      padding-bottom: 3px;
      transition: color .2s, border-color .2s;
    }
    .btn-under:hover { color: var(--m); }

    .hero-stats {
      display: flex;
      gap: 0;
      margin-top: 3.2rem;
      flex-wrap: wrap;
      border-top: 1px solid var(--line);
      opacity: 0;
      animation: fadeUp .8s var(--ease) .75s forwards;
      max-width: 640px;
    }
    .stat {
      flex: 1 1 0;
      min-width: 130px;
      padding: 1.3rem 1.6rem 0 0;
      position: relative;
    }
    .stat + .stat { padding-left: 1.6rem; border-left: 1px solid var(--line); }
    .stat-number {
      font-family: var(--serif);
      font-weight: 600;
      font-size: 2.7rem;
      line-height: 1;
      letter-spacing: -.02em;
      display: block;
    }
    .stat-label {
      font-family: var(--mono);
      font-size: .62rem;
      text-transform: uppercase;
      letter-spacing: .18em;
      color: var(--muted);
      margin-top: 6px;
      display: block;
    }

    .hero-scroll {
      position: absolute;
      bottom: 34px; left: 50%;
      transform: translateX(-50%);
      z-index: 2;
      font-family: var(--mono);
      font-size: .6rem;
      letter-spacing: .3em;
      text-transform: uppercase;
      color: var(--muted);
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
      text-decoration: none;
    }
    .hero-scroll::after {
      content: '';
      width: 1px; height: 34px;
      background: linear-gradient(var(--muted), transparent);
      animation: drip 1.8s ease-in-out infinite;
    }
    @keyframes drip {
      0%   { transform: scaleY(0); transform-origin: top; }
      45%  { transform: scaleY(1); transform-origin: top; }
      55%  { transform: scaleY(1); transform-origin: bottom; }
      100% { transform: scaleY(0); transform-origin: bottom; }
    }

    /* ── MARQUEE ── */
    .marquee {
      background: var(--ink);
      color: var(--paper);
      overflow: hidden;
      padding: 18px 0;
      position: relative;
      z-index: 2;
    }
    .marquee-track {
      display: flex;
      gap: 3rem;
      width: max-content;
      animation: marquee 36s linear infinite;
    }
    .marquee:hover .marquee-track { animation-play-state: paused; }
    @keyframes marquee { to { transform: translateX(-50%); } }
    .marquee-item {
      display: flex;
      align-items: center;
      gap: 3rem;
      font-family: var(--serif);
      font-size: 1.05rem;
      font-weight: 400;
      letter-spacing: .02em;
      white-space: nowrap;
    }
    .marquee-item i {
      width: 8px; height: 8px;
      border-radius: 50%;
      display: inline-block;
      flex-shrink: 0;
    }

    /* ── SEÇÕES BASE ── */
    section { padding: 110px 4.5%; position: relative; }
    .section-head { max-width: 1280px; margin: 0 auto; }
    .wrap { max-width: 1280px; margin: 0 auto; }

    .kicker {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      font-family: var(--mono);
      font-size: .64rem;
      font-weight: 700;
      letter-spacing: .32em;
      text-transform: uppercase;
      color: var(--muted);
      margin-bottom: 1.4rem;
    }
    .kicker::before {
      content: '';
      width: 30px; height: 1px;
      background: var(--m);
    }
    .dark .kicker { color: var(--faint); }

    .title {
      font-family: var(--serif);
      font-weight: 560;
      font-size: clamp(2.3rem, 4.6vw, 4rem);
      line-height: 1.04;
      letter-spacing: -.02em;
      margin-bottom: 1.4rem;
      font-variation-settings: 'opsz' 100;
    }
    .title em { font-style: italic; font-weight: 400; color: var(--m); }

    .lead {
      max-width: 560px;
      color: var(--muted);
      font-weight: 300;
      font-size: 1.02rem;
      line-height: 1.8;
    }

    /* ── SOBRE ── */
    #sobre { background: var(--paper); }
    .sobre-grid {
      display: grid;
      grid-template-columns: 1.05fr .95fr;
      gap: 5rem;
      align-items: start;
      max-width: 1280px;
      margin: 0 auto;
    }
    .sobre-text p {
      color: var(--muted);
      font-size: 1rem;
      line-height: 1.85;
      margin-bottom: 1.2rem;
      font-weight: 300;
    }
    .sobre-text p strong { color: var(--text); font-weight: 600; }

    .pull-quote {
      font-family: var(--serif);
      font-style: italic;
      font-weight: 400;
      font-size: clamp(1.3rem, 2.4vw, 1.7rem);
      line-height: 1.4;
      color: var(--text);
      border-left: 2px solid var(--m);
      padding: .4rem 0 .4rem 1.6rem;
      margin: 2rem 0;
      letter-spacing: -.01em;
    }

    .sobre-visual { position: relative; }
    .sobre-photo {
      position: relative;
      aspect-ratio: 3 / 4;
      overflow: hidden;
      background:
        radial-gradient(circle at 30% 25%, rgba(0,174,195,.25), transparent 45%),
        radial-gradient(circle at 75% 70%, rgba(229,0,122,.22), transparent 48%),
        radial-gradient(circle at 60% 20%, rgba(255,196,0,.2), transparent 40%),
        var(--paper-2);
    }
    .sobre-photo img { width: 100%; height: 100%; object-fit: cover; }
    /* retícula de meio-tom como fallback elegante enquanto não há foto */
    .sobre-photo::before {
      content: '';
      position: absolute;
      inset: 0;
      background-image: radial-gradient(circle, rgba(22,20,18,.16) 1.2px, transparent 1.3px);
      background-size: 11px 11px;
      pointer-events: none;
    }
    .sobre-photo-label {
      position: absolute;
      bottom: 0; left: 0; right: 0;
      padding: 14px 18px;
      font-family: var(--mono);
      font-size: .62rem;
      letter-spacing: .22em;
      text-transform: uppercase;
      color: var(--muted);
      background: linear-gradient(transparent, rgba(246,242,234,.92));
      z-index: 2;
    }
    /* moldura com marcas de corte */
    .sobre-photo-frame::before, .sobre-photo-frame::after {
      content: '';
      position: absolute;
      width: 22px; height: 22px;
      border: 1px solid var(--ink);
      opacity: .45;
      z-index: 3;
    }
    .sobre-photo-frame::before { top: -11px; left: -11px; border-right: 0; border-bottom: 0; }
    .sobre-photo-frame::after  { bottom: -11px; right: -11px; border-left: 0; border-top: 0; }

    .timeline { margin-top: 2.6rem; display: flex; flex-direction: column; }
    .tl-item {
      display: grid;
      grid-template-columns: 86px 1fr;
      gap: 1.4rem;
      padding: 1.1rem 0;
      border-top: 1px solid var(--line-soft);
    }
    .tl-year {
      font-family: var(--mono);
      font-weight: 700;
      font-size: .82rem;
      color: var(--m);
      letter-spacing: .06em;
      padding-top: 2px;
    }
    .tl-body h4 {
      font-family: var(--serif);
      font-weight: 600;
      font-size: 1.06rem;
      margin-bottom: .2rem;
      letter-spacing: -.01em;
    }
    .tl-body p { font-size: .88rem; color: var(--muted); font-weight: 300; line-height: 1.7; }

    /* ── PROCESSO (escuro) ── */
    #processo {
      background: var(--ink);
      color: var(--paper);
    }
    #processo::before {
      content: '';
      position: absolute;
      inset: 0;
      background-image: radial-gradient(circle, rgba(246,242,234,.05) 1px, transparent 1.4px);
      background-size: 26px 26px;
      pointer-events: none;
    }
    .dark .title { color: var(--paper); }
    .dark .lead { color: var(--faint); }

    .processo-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 0;
      margin-top: 4rem;
      border-top: 1px solid rgba(246,242,234,.14);
    }
    .passo {
      padding: 2.4rem 2rem 1rem 0;
      position: relative;
    }
    .passo + .passo { padding-left: 2rem; border-left: 1px solid rgba(246,242,234,.12); }
    .passo-num {
      font-family: var(--mono);
      font-size: .68rem;
      letter-spacing: .3em;
      color: var(--y);
      display: block;
      margin-bottom: 1.6rem;
    }
    .passo h3 {
      font-family: var(--serif);
      font-weight: 560;
      font-size: 1.5rem;
      letter-spacing: -.015em;
      margin-bottom: .7rem;
      line-height: 1.15;
    }
    .passo p {
      font-size: .88rem;
      color: var(--faint);
      font-weight: 300;
      line-height: 1.75;
    }
    .passo::after {
      content: '';
      position: absolute;
      top: -1px; left: 0;
      width: 0; height: 1px;
      transition: width .8s var(--ease);
    }
    .passo:nth-child(1)::after { background: var(--c); }
    .passo:nth-child(2)::after { background: var(--m); }
    .passo:nth-child(3)::after { background: var(--y); }
    .passo:nth-child(4)::after { background: var(--paper); }
    .passo.visible::after { width: calc(100% - 2rem); }

    /* ── PRODUTOS ── */
    #produtos { background: var(--paper-2); }

    .produtos-toolbar {
      display: flex;
      flex-wrap: wrap;
      gap: 1.2rem;
      align-items: center;
      justify-content: space-between;
      margin: 2.6rem auto 2.2rem;
      max-width: 1280px;
    }
    .filtros { display: flex; flex-wrap: wrap; gap: .5rem; }
    .filtro {
      font-family: var(--mono);
      font-size: .66rem;
      letter-spacing: .14em;
      text-transform: uppercase;
      padding: 9px 16px;
      border: 1px solid var(--line);
      background: transparent;
      color: var(--muted);
      cursor: pointer;
      transition: all .25s var(--ease);
    }
    .filtro:hover { border-color: var(--ink); color: var(--text); }
    .filtro.active {
      background: var(--ink);
      border-color: var(--ink);
      color: var(--paper);
    }

    .search-wrapper { position: relative; min-width: 280px; flex: 0 1 340px; }
    .search-icon-wrap {
      position: absolute;
      left: 14px; top: 50%;
      transform: translateY(-50%);
      color: var(--faint);
      pointer-events: none;
      display: flex;
    }
    .search-icon-wrap svg { width: 16px; height: 16px; }
    .search-bar {
      width: 100%;
      padding: 12px 16px 12px 42px;
      border: 1px solid var(--line);
      background: var(--paper);
      color: var(--text);
      font-family: var(--sans);
      font-size: .88rem;
      outline: none;
      transition: border-color .2s, box-shadow .2s;
    }
    .search-bar:focus { border-color: var(--m); box-shadow: 0 0 0 3px rgba(229,0,122,.1); }
    .search-bar::placeholder { color: var(--faint); }
    .search-dropdown {
      position: absolute;
      top: calc(100% + 6px);
      left: 0; right: 0;
      background: var(--paper);
      border: 1px solid var(--line);
      box-shadow: 0 16px 48px rgba(22,20,18,.16);
      overflow: hidden;
      z-index: 60;
      display: none;
      max-height: 320px;
      overflow-y: auto;
    }
    .search-dropdown.open { display: block; }
    .search-result {
      padding: 11px 16px;
      cursor: pointer;
      font-size: .87rem;
      display: flex;
      align-items: center;
      gap: 12px;
      border-bottom: 1px solid var(--line-soft);
      transition: background .15s;
    }
    .search-result:last-child { border-bottom: none; }
    .search-result:hover { background: var(--paper-2); }
    .search-result-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
    .search-result-info { display: flex; flex-direction: column; }
    .search-result-nome { font-weight: 600; font-size: .87rem; }
    .search-result-desc { font-size: .76rem; color: var(--muted); }
    .search-empty { padding: 1rem 16px; font-size: .87rem; color: var(--muted); text-align: center; }

    .produtos-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(265px, 1fr));
      gap: 1.2rem;
      max-width: 1280px;
      margin: 0 auto;
    }

    .produto-card {
      background: var(--paper);
      border: 1px solid var(--line-soft);
      display: flex;
      flex-direction: column;
      position: relative;
      cursor: pointer;
      transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .3s;
      animation: cardIn .5s var(--ease) backwards;
    }
    @keyframes cardIn {
      from { opacity: 0; transform: translateY(16px); }
      to   { opacity: 1; transform: none; }
    }
    .produto-card:hover {
      transform: translateY(-6px);
      box-shadow: 0 24px 48px rgba(22,20,18,.14);
      border-color: var(--line);
      z-index: 2;
    }
    .produto-card.hidden { display: none; }

    .produto-img {
      aspect-ratio: 4 / 2.9;
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      overflow: hidden;
    }
    .produto-img .halftone {
      content: '';
      position: absolute;
      inset: 0;
      background-image: radial-gradient(circle, rgba(255,255,255,.28) 1px, transparent 1.4px);
      background-size: 9px 9px;
      pointer-events: none;
    }
    .produto-img img {
      position: absolute;
      inset: 0;
      width: 100%; height: 100%;
      object-fit: cover;
      z-index: 1;
    }
    .produto-img svg {
      width: 52px; height: 52px;
      color: #fff;
      opacity: .92;
      position: relative;
      transition: transform .45s var(--ease);
    }
    .produto-card:hover .produto-img svg { transform: scale(1.16) rotate(-4deg); }

    .produto-spec {
      position: absolute;
      top: 10px; left: 12px;
      font-family: var(--mono);
      font-size: .56rem;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: rgba(255,255,255,.85);
      z-index: 2;
    }

    .produto-body {
      padding: 1.3rem 1.3rem 1.2rem;
      flex: 1;
      display: flex;
      flex-direction: column;
      gap: .55rem;
    }
    .produto-card-nome {
      font-family: var(--serif);
      font-weight: 600;
      font-size: 1.18rem;
      letter-spacing: -.012em;
      transition: color .25s;
    }
    .produto-card:hover .produto-card-nome { color: var(--m); }
    .produto-card-desc {
      font-size: .85rem;
      color: var(--muted);
      line-height: 1.65;
      font-weight: 300;
      flex: 1;
    }
    .produto-card-foot {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding-top: .8rem;
      margin-top: .4rem;
      border-top: 1px solid var(--line-soft);
    }
    .produto-ver {
      font-family: var(--mono);
      font-size: .64rem;
      letter-spacing: .16em;
      text-transform: uppercase;
      color: var(--muted);
      transition: color .2s;
    }
    .produto-card:hover .produto-ver { color: var(--m); }
    .produto-arrow {
      width: 26px; height: 26px;
      display: flex;
      align-items: center;
      justify-content: center;
      border: 1px solid var(--line);
      border-radius: 50%;
      transition: all .3s var(--ease);
      color: var(--muted);
    }
    .produto-card:hover .produto-arrow {
      background: var(--m);
      border-color: var(--m);
      color: #fff;
      transform: rotate(-45deg);
    }
    .produto-arrow svg { width: 12px; height: 12px; }

    /* ── ACABAMENTOS (escuro, tátil) ── */
    #acabamentos { background: var(--ink-2); color: var(--paper); }
    #acabamentos::before {
      content: '';
      position: absolute;
      inset: 0;
      opacity: .5;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.06'/%3E%3C/svg%3E");
      pointer-events: none;
    }
    .acab-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
      gap: 1.2rem;
      margin-top: 3.6rem;
      max-width: 1280px;
      margin-left: auto;
      margin-right: auto;
    }
    .acab-card {
      background: var(--ink-3);
      border: 1px solid rgba(246,242,234,.1);
      padding: 2.3rem 1.9rem;
      position: relative;
      overflow: hidden;
      transition: transform .35s var(--ease), border-color .3s;
    }
    .acab-card:hover { transform: translateY(-5px); border-color: rgba(246,242,234,.24); }
    .acab-tag {
      font-family: var(--mono);
      font-size: .6rem;
      letter-spacing: .26em;
      text-transform: uppercase;
      color: var(--faint);
      display: block;
      margin-bottom: 1.8rem;
    }
    .acab-demo {
      font-family: var(--serif);
      font-weight: 600;
      font-size: clamp(1.7rem, 2.6vw, 2.2rem);
      letter-spacing: -.01em;
      line-height: 1.1;
      margin-bottom: 1.1rem;
      display: inline-block;
    }
    .acab-card p { font-size: .85rem; color: var(--faint); font-weight: 300; line-height: 1.75; }

    /* hot stamping: dourado metálico animado */
    .demo-hot {
      background: linear-gradient(110deg, #8a6a1f 0%, #f5d76b 22%, #fff3c4 38%, #d4a937 52%, #f9e69a 68%, #8a6a1f 100%);
      background-size: 220% 100%;
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
      animation: foil 3.4s ease-in-out infinite;
    }
    @keyframes foil {
      0%, 100% { background-position: 0% 0; }
      50% { background-position: 100% 0; }
    }
    /* verniz UV: brilho que varre */
    .demo-uv { position: relative; color: var(--paper); }
    .demo-uv::after {
      content: '';
      position: absolute;
      inset: -6px -12px;
      background: linear-gradient(105deg, transparent 38%, rgba(255,255,255,.34) 50%, transparent 62%);
      transform: translateX(-110%);
      animation: sheen 3.8s var(--ease) infinite;
      pointer-events: none;
    }
    @keyframes sheen {
      0%, 55% { transform: translateX(-110%); }
      85%, 100% { transform: translateX(110%); }
    }
    /* laminação fosca: suave, sem brilho */
    .demo-fosco { color: rgba(246,242,234,.6); }
    /* relevo seco: embossing tipográfico */
    .demo-relevo {
      color: #3A352E;
      text-shadow:
        -1px -1px 1px rgba(246,242,234,.42),
        1.5px 1.5px 2px rgba(0,0,0,.75);
    }

    /* ── DEPOIMENTOS ── */
    #depoimentos { background: var(--paper); }
    .depo-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
      gap: 1.2rem;
      margin-top: 3.4rem;
      max-width: 1280px;
      margin-left: auto;
      margin-right: auto;
    }
    .depo-card {
      background: var(--paper-2);
      border: 1px solid var(--line-soft);
      padding: 2.2rem 2rem;
      display: flex;
      flex-direction: column;
      gap: 1.4rem;
      position: relative;
      transition: transform .35s var(--ease), box-shadow .35s;
    }
    .depo-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(22,20,18,.1); }
    .depo-card::before {
      content: '“';
      font-family: var(--serif);
      font-size: 4.6rem;
      line-height: 0;
      position: absolute;
      top: 2.6rem; right: 1.6rem;
      color: var(--m);
      opacity: .18;
      font-weight: 700;
    }
    .depo-stars { display: flex; gap: 3px; color: var(--y-deep); }
    .depo-stars svg { width: 15px; height: 15px; fill: var(--y); stroke: none; }
    .depo-text {
      font-family: var(--serif);
      font-style: italic;
      font-weight: 400;
      font-size: 1.05rem;
      line-height: 1.6;
      color: var(--text);
      letter-spacing: -.005em;
      flex: 1;
    }
    .depo-autor { display: flex; align-items: center; gap: 12px; }
    .depo-avatar {
      width: 42px; height: 42px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--mono);
      font-weight: 700;
      font-size: .8rem;
      color: #fff;
      flex-shrink: 0;
      overflow: hidden;
    }
    .depo-avatar img { width: 100%; height: 100%; object-fit: cover; }
    .depo-nome { font-weight: 600; font-size: .9rem; }
    .depo-cargo { font-size: .76rem; color: var(--muted); font-family: var(--mono); letter-spacing: .04em; }

    /* ── DIFERENCIAIS ── */
    #diferenciais { background: var(--paper-2); }
    .dif-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
      gap: 0;
      margin-top: 3.4rem;
      max-width: 1280px;
      margin-left: auto;
      margin-right: auto;
      border: 1px solid var(--line-soft);
      background: var(--line-soft);
      gap: 1px;
    }
    .dif-card {
      background: var(--paper);
      padding: 2.6rem 2.1rem;
      transition: background .3s;
      position: relative;
      overflow: hidden;
    }
    .dif-card::before {
      content: attr(data-num);
      position: absolute;
      top: 1.4rem; right: 1.6rem;
      font-family: var(--mono);
      font-size: .64rem;
      letter-spacing: .2em;
      color: var(--faint);
    }
    .dif-card:hover { background: var(--paper-2); }
    .dif-icon {
      width: 46px; height: 46px;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 1.5rem;
      border-radius: 50%;
    }
    .dif-icon svg { width: 22px; height: 22px; }
    .dif-card:nth-child(1) .dif-icon { background: rgba(0,174,195,.13); color: var(--c); }
    .dif-card:nth-child(2) .dif-icon { background: rgba(229,0,122,.11); color: var(--m); }
    .dif-card:nth-child(3) .dif-icon { background: rgba(255,196,0,.16); color: var(--y-deep); }
    .dif-card:nth-child(4) .dif-icon { background: rgba(22,20,18,.08); color: var(--ink); }
    .dif-card h3 {
      font-family: var(--serif);
      font-weight: 600;
      font-size: 1.32rem;
      letter-spacing: -.015em;
      margin-bottom: .6rem;
    }
    .dif-card p { font-size: .88rem; color: var(--muted); line-height: 1.75; font-weight: 300; }

    /* ── CTA GIGANTE ── */
    #cta-final {
      background: var(--ink);
      color: var(--paper);
      text-align: center;
      padding: 130px 4.5%;
      overflow: hidden;
    }
    #cta-final::before {
      content: '';
      position: absolute;
      inset: 0;
      background:
        radial-gradient(ellipse 60% 50% at 20% 110%, rgba(229,0,122,.16), transparent),
        radial-gradient(ellipse 50% 40% at 85% -10%, rgba(0,174,195,.13), transparent);
      pointer-events: none;
    }
    .cta-title {
      font-family: var(--serif);
      font-weight: 560;
      font-size: clamp(2.6rem, 6.4vw, 5.4rem);
      line-height: 1.02;
      letter-spacing: -.025em;
      max-width: 900px;
      margin: 0 auto 1.6rem;
      position: relative;
    }
    .cta-title em { font-style: italic; font-weight: 400; color: var(--y); }
    .cta-sub {
      color: var(--faint);
      font-weight: 300;
      font-size: 1.05rem;
      max-width: 520px;
      margin: 0 auto 2.6rem;
      position: relative;
    }
    .cta-actions {
      display: flex;
      gap: 1.2rem;
      justify-content: center;
      flex-wrap: wrap;
      position: relative;
    }
    .btn-tel {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      color: var(--paper);
      border: 1px solid rgba(246,242,234,.3);
      padding: 16px 28px;
      font-weight: 500;
      font-size: .93rem;
      text-decoration: none;
      transition: border-color .25s, background .25s;
    }
    .btn-tel:hover { border-color: var(--paper); background: rgba(246,242,234,.06); }
    .btn-tel svg { width: 17px; height: 17px; }

    /* ── CONTATO ── */
    #contato { background: var(--paper); }
    .contato-grid {
      display: grid;
      grid-template-columns: 1fr 1.35fr;
      gap: 4rem;
      align-items: start;
      margin-top: 3.2rem;
      max-width: 1280px;
      margin-left: auto;
      margin-right: auto;
    }
    .contato-info { display: flex; flex-direction: column; gap: 1.9rem; }
    .contato-block { display: flex; flex-direction: column; gap: .35rem; }
    .contato-block-label {
      font-family: var(--mono);
      font-size: .62rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .24em;
      color: var(--muted);
    }
    .contato-block-value { font-size: 1rem; color: var(--text); }
    .contato-block-value a { color: var(--text); text-decoration: none; transition: color .2s; }
    .contato-block-value a:hover { color: var(--m); }
    .whatsapp-link {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      color: #1da851 !important;
      font-weight: 600;
      font-size: 1.05rem;
      text-decoration: none;
    }
    .whatsapp-link svg { width: 19px; height: 19px; }

    .mapa-wrapper {
      overflow: hidden;
      height: 210px;
      border: 1px solid var(--line);
      margin-top: .4rem;
      position: relative;
    }
    .mapa-wrapper iframe {
      width: 100%; height: 100%;
      border: none;
      filter: grayscale(1) sepia(.14) contrast(.92);
    }

    .contato-form-wrapper {
      background: var(--paper-2);
      padding: 2.6rem;
      border: 1px solid var(--line-soft);
      position: relative;
    }
    .contato-form-wrapper::before {
      content: 'FORMULÁRIO · RESPOSTA EM ATÉ 1 DIA ÚTIL';
      position: absolute;
      top: -9px; left: 2.6rem;
      background: var(--paper);
      padding: 0 12px;
      font-family: var(--mono);
      font-size: .58rem;
      letter-spacing: .22em;
      color: var(--muted);
    }
    .contato-form-title {
      font-family: var(--serif);
      font-weight: 600;
      font-size: 1.65rem;
      letter-spacing: -.015em;
      margin-bottom: 1.6rem;
    }
    .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
    .form-field { display: flex; flex-direction: column; gap: .4rem; }
    .form-field.full { grid-column: 1 / -1; }
    .form-field label {
      font-family: var(--mono);
      font-size: .62rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .16em;
      color: var(--muted);
    }
    .form-field input,
    .form-field select,
    .form-field textarea {
      padding: 12px 14px;
      border: 1px solid var(--line);
      background: var(--paper);
      color: var(--text);
      font-family: var(--sans);
      font-size: .9rem;
      outline: none;
      transition: border-color .2s, box-shadow .2s;
      appearance: none;
      border-radius: 0;
    }
    .form-field input:focus,
    .form-field select:focus,
    .form-field textarea:focus {
      border-color: var(--m);
      box-shadow: 0 0 0 3px rgba(229,0,122,.08);
    }
    .form-field textarea { resize: vertical; min-height: 104px; }
    .form-field select {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23756E62' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 14px center;
      padding-right: 36px;
    }
    .form-submit-row { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 1.4rem; }
    .btn-form-whats {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      background: var(--wa);
      color: #fff;
      padding: 14px 26px;
      font-family: var(--sans);
      font-weight: 600;
      font-size: .9rem;
      border: none;
      cursor: pointer;
      transition: transform .25s var(--ease), box-shadow .25s;
      box-shadow: 0 4px 18px rgba(37,211,102,.28);
    }
    .btn-form-whats:hover { transform: translateY(-2px); box-shadow: 0 8px 26px rgba(37,211,102,.38); }
    .btn-form-whats svg { width: 18px; height: 18px; }
    .btn-form-email {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      background: none;
      border: 1px solid var(--line);
      color: var(--text);
      padding: 14px 24px;
      font-family: var(--sans);
      font-weight: 500;
      font-size: .9rem;
      cursor: pointer;
      transition: border-color .2s;
      text-decoration: none;
    }
    .btn-form-email:hover { border-color: var(--ink); }
    .btn-form-email svg { width: 16px; height: 16px; }

    /* ── FOOTER ── */
    footer {
      background: var(--ink);
      color: var(--faint);
      padding: 4.5rem 4.5% 2.4rem;
      position: relative;
      overflow: hidden;
    }
    .footer-wordmark {
      font-family: var(--serif);
      font-weight: 600;
      font-size: clamp(2.6rem, 8vw, 6.4rem);
      letter-spacing: -.03em;
      line-height: 1;
      color: rgba(246,242,234,.08);
      white-space: nowrap;
      margin-bottom: 2.6rem;
      user-select: none;
    }
    .footer-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
      flex-wrap: wrap;
      gap: 1.2rem;
      padding-top: 1.8rem;
      border-top: 1px solid rgba(246,242,234,.1);
      max-width: 1280px;
      margin: 0 auto;
    }
    .footer-left { display: flex; align-items: center; gap: 14px; }
    .footer-logo { display: block; flex: none; height: 42px; width: auto; }
    .footer-copy { font-size: .76rem; font-weight: 300; }
    .footer-quiros {
      font-family: var(--mono);
      font-size: .64rem;
      letter-spacing: .14em;
      color: rgba(246,242,234,.32);
      text-transform: uppercase;
    }

    /* ── SCROLL REVEAL ── */
    .reveal { opacity: 0; transform: translateY(30px); transition: opacity .75s var(--ease), transform .75s var(--ease); }
    .reveal.visible { opacity: 1; transform: none; }
    .reveal-delay-1 { transition-delay: .1s; }
    .reveal-delay-2 { transition-delay: .2s; }
    .reveal-delay-3 { transition-delay: .3s; }
    .reveal-delay-4 { transition-delay: .4s; }

    /* ── WHATSAPP FLOAT ── */
    .whats-float {
      position: fixed;
      bottom: 24px; right: 24px;
      width: 58px; height: 58px;
      background: var(--wa);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 6px 24px rgba(37,211,102,.42);
      z-index: 250;
      text-decoration: none;
      transition: transform .25s var(--ease), box-shadow .25s;
    }
    .whats-float::before {
      content: '';
      position: absolute;
      inset: 0;
      border-radius: 50%;
      border: 2px solid var(--wa);
      animation: ring 2.4s ease-out infinite;
    }
    @keyframes ring {
      0% { transform: scale(1); opacity: .7; }
      100% { transform: scale(1.55); opacity: 0; }
    }
    .whats-float:hover { transform: scale(1.08); box-shadow: 0 10px 32px rgba(37,211,102,.5); }
    .whats-float svg { width: 28px; height: 28px; }

    /* ── MODAL ── */
    .modal-overlay {
      position: fixed;
      inset: 0;
      background: rgba(22,20,18,.6);
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
      z-index: 500;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 1.2rem;
      opacity: 0;
      pointer-events: none;
      transition: opacity .35s;
    }
    .modal-overlay.open { opacity: 1; pointer-events: all; }
    .modal {
      background: var(--paper);
      max-width: 700px;
      width: 100%;
      max-height: 90vh;
      overflow-y: auto;
      transform: translateY(28px) scale(.97);
      transition: transform .35s var(--ease);
      position: relative;
    }
    .modal-overlay.open .modal { transform: none; }

    .modal-header {
      position: relative;
      height: 220px;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
    }
    .modal-header .halftone {
      position: absolute;
      inset: 0;
      background-image: radial-gradient(circle, rgba(255,255,255,.25) 1px, transparent 1.4px);
      background-size: 9px 9px;
    }
    .modal-header img {
      position: absolute;
      inset: 0;
      width: 100%; height: 100%;
      object-fit: cover;
      z-index: 1;
    }
    .modal-header svg {
      width: 84px; height: 84px;
      color: white;
      opacity: .9;
      position: relative;
      z-index: 1;
    }
    .modal-close {
      position: absolute;
      top: 14px; right: 14px;
      z-index: 10;
      background: rgba(22,20,18,.4);
      border: none;
      width: 38px; height: 38px;
      border-radius: 50%;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      color: white;
      backdrop-filter: blur(4px);
      transition: background .2s, transform .2s;
    }
    .modal-close:hover { background: var(--m); transform: rotate(90deg); }
    .modal-close svg { width: 17px; height: 17px; }

    .modal-body { padding: 2.4rem; }
    .modal-cat {
      font-family: var(--mono);
      font-size: .6rem;
      letter-spacing: .28em;
      text-transform: uppercase;
      color: var(--muted);
      display: block;
      margin-bottom: .6rem;
    }
    .modal-nome {
      font-family: var(--serif);
      font-weight: 600;
      font-size: 2.1rem;
      letter-spacing: -.02em;
      margin-bottom: .8rem;
      line-height: 1.05;
    }
    .modal-desc { color: var(--muted); font-weight: 300; line-height: 1.85; margin-bottom: 1.7rem; font-size: .95rem; }
    .modal-specs-label {
      font-family: var(--mono);
      font-size: .6rem;
      letter-spacing: .26em;
      text-transform: uppercase;
      color: var(--muted);
      display: block;
      margin-bottom: .8rem;
      padding-bottom: .5rem;
      border-bottom: 1px solid var(--line-soft);
    }
    .modal-specs { list-style: none; display: flex; flex-direction: column; gap: .55rem; margin-bottom: 2rem; }
    .modal-specs li {
      display: flex;
      align-items: baseline;
      gap: 10px;
      font-size: .9rem;
      color: var(--text);
      font-weight: 300;
    }
    .modal-specs li::before {
      content: '—';
      color: var(--m);
      font-weight: 600;
      flex-shrink: 0;
    }
    .modal-cta-row {
      display: flex;
      gap: 1rem;
      flex-wrap: wrap;
      padding-top: 1.4rem;
      border-top: 1px solid var(--line-soft);
    }

    /* ── MOBILE ── */
    @media (max-width: 1024px) {
      .processo-grid { grid-template-columns: 1fr 1fr; }
      .passo { padding: 2rem 1.4rem 1.6rem 0; }
      .passo:nth-child(odd) { border-left: none; padding-left: 0; }
      .passo:nth-child(even) { padding-left: 1.4rem; }
      .passo:nth-child(n+3) { border-top: 1px solid rgba(246,242,234,.12); }
    }
    @media (max-width: 880px) {
      .sobre-grid { grid-template-columns: 1fr; gap: 3.2rem; }
      .contato-grid { grid-template-columns: 1fr; gap: 2.6rem; }
    }
    @media (max-width: 768px) {
      section { padding: 84px 6%; }
      .nav-links { display: none; }
      .hamburger { display: flex; }
      .nav-links.open {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        position: fixed;
        top: 66px; left: 0; right: 0;
        background: rgba(246,242,234,.98);
        padding: 2rem 6%;
        gap: 1.5rem;
        border-bottom: 1px solid var(--line);
        box-shadow: 0 16px 32px rgba(22,20,18,.1);
      }
      .nav-links.open a { font-size: 1rem; color: var(--text); }
      #hero { padding: 116px 6% 80px; }
      .hero-img img { object-position: center top; }
      .hero-img::after {
        background: linear-gradient(
          180deg,
          rgba(246,242,234,.88) 0%,
          rgba(246,242,234,.74) 32%,
          rgba(246,242,234,.82) 62%,
          rgba(246,242,234,.95) 100%
        );
      }
      .crop { display: none; }
      .hero-spec { font-size: .58rem; letter-spacing: .18em; gap: 8px; flex-wrap: wrap; }
      .hero-stats { max-width: 100%; }
      .stat { min-width: 100px; padding-right: 1rem; }
      .stat + .stat { padding-left: 1rem; }
      .stat-number { font-size: 2rem; }
      .hero-scroll { display: none; }
      .processo-grid { grid-template-columns: 1fr; }
      .passo { padding: 1.8rem 0 1.4rem !important; border-left: none !important; }
      .passo + .passo { border-top: 1px solid rgba(246,242,234,.12); }
      .passo.visible::after { width: 100%; }
      .produtos-toolbar { flex-direction: column; align-items: stretch; }
      .search-wrapper { min-width: 0; flex: 1 1 auto; }
      .form-grid { grid-template-columns: 1fr; }
      .footer-wordmark { font-size: 13vw; }
      .footer-row { flex-direction: column; text-align: center; }
      .contato-form-wrapper { padding: 2rem 1.4rem; }
      .contato-form-wrapper::before { left: 1.4rem; }
      .modal-body { padding: 1.8rem 1.4rem; }
    }

    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
      html { scroll-behavior: auto; }
    }

    /* ════════════════════════════════════════════════════════════════
       CARROSSEL DE PRODUTOS (home) — coverflow com card central maior
       ════════════════════════════════════════════════════════════════ */
    .produtos-carousel-wrap { position: relative; max-width: 100%; margin: 2.4rem auto 0; }
    .produtos-carousel {
      display: flex;
      gap: 1.4rem;
      align-items: center;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      scroll-behavior: smooth;
      padding: 2.8rem max(1.2rem, calc(50% - 150px)) 4rem;
      -ms-overflow-style: none;
      scrollbar-width: none;
    }
    .produtos-carousel::-webkit-scrollbar { display: none; }
    .produtos-carousel .produto-card {
      flex: 0 0 clamp(238px, 74vw, 298px);
      scroll-snap-align: center;
      animation: none;
      opacity: .48;
      transform: scale(.84);
      transition: transform .55s var(--ease), opacity .55s var(--ease), box-shadow .45s var(--ease), border-color .3s;
    }
    .produtos-carousel .produto-card.is-center {
      opacity: 1;
      transform: scale(1.07);
      box-shadow:
        0 18px 44px -14px rgba(22,20,18,.22),
        0 4px 12px -4px rgba(22,20,18,.08);
      border-color: var(--line);
      z-index: 3;
    }
    .produtos-carousel .produto-card.is-center:hover { transform: scale(1.1) translateY(-4px); }
    .produtos-carousel .produto-card:not(.is-center):hover { transform: scale(.88); box-shadow: none; }
    .produtos-carousel .produto-card.hidden { display: none; }

    .carousel-nav {
      position: absolute; top: 50%; transform: translateY(-50%);
      width: 48px; height: 48px; border-radius: 50%;
      border: 1px solid var(--line); background: var(--paper);
      display: flex; align-items: center; justify-content: center;
      cursor: pointer; z-index: 5; color: var(--ink);
      transition: background .25s var(--ease), color .25s var(--ease), border-color .25s;
      box-shadow: 0 10px 28px rgba(22,20,18,.12);
    }
    .carousel-nav:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
    .carousel-nav:active { transform: translateY(-50%) scale(.92); }
    .carousel-nav.prev { left: max(.4rem, calc(50% - 226px)); }
    .carousel-nav.next { right: max(.4rem, calc(50% - 226px)); }
    .carousel-nav svg { width: 18px; height: 18px; }
    @media (max-width: 760px) { .carousel-nav { display: none; } }
    .carousel-hint {
      text-align: center; margin-top: 0;
      font-family: var(--mono); font-size: .6rem; letter-spacing: .2em;
      text-transform: uppercase; color: var(--faint);
    }

    /* ── CTA "ver detalhes" no rodapé de seções resumidas ── */
    .sec-more {
      display: inline-flex; align-items: center; gap: .6rem;
      margin-top: 2.4rem;
      font-family: var(--mono); font-size: .68rem; letter-spacing: .16em;
      text-transform: uppercase; color: var(--ink);
      border-bottom: 1px solid var(--ink); padding-bottom: 4px;
      transition: gap .25s var(--ease), color .25s, border-color .25s;
    }
    .sec-more svg { width: 15px; height: 15px; }
    .sec-more:hover { gap: 1rem; color: var(--m); border-color: var(--m); }
    .sec-more-wrap { text-align: center; margin-top: .6rem; }

    /* ── PÁGINAS INTERNAS: cabeçalho ── */
    .page-hero {
      padding: 9rem 6vw 3.4rem;
      max-width: 1180px; margin: 0 auto;
      border-bottom: 1px solid var(--line-soft);
    }
    .page-hero .breadcrumb {
      font-family: var(--mono); font-size: .64rem; letter-spacing: .18em;
      text-transform: uppercase; color: var(--muted); margin-bottom: 1.4rem;
      display: flex; gap: .6rem; align-items: center; flex-wrap: wrap;
    }
    .page-hero .breadcrumb a { color: var(--muted); }
    .page-hero .breadcrumb a:hover { color: var(--m); }
    .page-hero h1 {
      font-family: var(--serif); font-weight: 400;
      font-size: clamp(2.4rem, 6vw, 4.2rem); line-height: 1.02;
      letter-spacing: -.02em; margin-bottom: 1.4rem;
    }
    .page-hero h1 em { font-style: italic; color: var(--m); }
    .page-hero .page-lead {
      font-size: clamp(1.02rem, 2vw, 1.2rem); color: var(--muted);
      max-width: 640px; line-height: 1.65; font-weight: 300;
    }
    .page-section { padding: 4.4rem 6vw; max-width: 1180px; margin: 0 auto; }
    .page-section.dark { background: var(--ink-2); color: var(--paper); max-width: 100%; }
    .page-section.dark .inner { max-width: 1180px; margin: 0 auto; }

    /* blocos de detalhe genéricos */
    .detalhe-bloco { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem 4rem; align-items: start; }
    .detalhe-bloco + .detalhe-bloco { margin-top: 4rem; padding-top: 4rem; border-top: 1px solid var(--line-soft); }
    .detalhe-bloco h2 { font-family: var(--serif); font-weight: 400; font-size: clamp(1.6rem, 3.4vw, 2.3rem); letter-spacing: -.015em; line-height: 1.1; }
    .detalhe-bloco h2 em { font-style: italic; color: var(--m); }
    .detalhe-bloco p { color: var(--muted); line-height: 1.75; font-weight: 300; margin-top: 1rem; }
    .detalhe-bloco .num { font-family: var(--mono); font-size: .68rem; letter-spacing: .2em; color: var(--m); text-transform: uppercase; display: block; margin-bottom: .8rem; }
    .detalhe-lista { list-style: none; display: flex; flex-direction: column; gap: .9rem; margin-top: .4rem; }
    .detalhe-lista li { position: relative; padding-left: 1.7rem; line-height: 1.6; color: var(--text); font-size: .95rem; }
    .detalhe-lista li::before { content: ''; position: absolute; left: 0; top: .5rem; width: 8px; height: 8px; background: var(--c); }
    .page-section.dark .detalhe-lista li { color: var(--paper); }
    .page-section.dark .detalhe-bloco p { color: rgba(246,242,234,.72); }
    @media (max-width: 820px) { .detalhe-bloco { grid-template-columns: 1fr; gap: 1.4rem; } }
