  :root{
    --navy: #1F2A5C;
    --navy-deep: #141A3D;
    --navy-mid: #2C3873;
    --red: #EE3A47;
    --paper: #F1F2F6;
    --paper-2: #E7E9F0;
    --ink: #171B33;
    --ink-soft: #565C7D;
    --line: #D3D6E4;
    --white: #FFFFFF;
    --radius: 4px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'IBM Plex Sans', sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{
    font-family:'Space Grotesk', sans-serif;
    margin:0;
    letter-spacing:-0.01em;
  }
  .mono{ font-family:'IBM Plex Mono', monospace; }
  a{ color:inherit; }
  img{ max-width:100%; display:block; }
  :focus-visible{ outline:2px solid var(--red); outline-offset:2px; }
  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *{ transition:none !important; }
  }

  /* ---------- Header ---------- */
  header{
    background:rgba(255,255,255,0.88);
    -webkit-backdrop-filter:saturate(180%) blur(14px);
    backdrop-filter:saturate(180%) blur(14px);
    border-top:3px solid var(--red);
    border-bottom:1px solid var(--line);
    position:sticky; top:0; z-index:50;
    transition:box-shadow .2s ease, background .2s ease;
  }
  header.rolou{
    background:rgba(255,255,255,0.94);
    box-shadow:0 6px 22px rgba(20,26,61,0.09);
  }
  .header-inner{
    max-width:1180px; margin:0 auto; padding:13px 24px;
    display:flex; align-items:center; justify-content:space-between; gap:16px;
    transition:padding .2s ease;
  }
  header.rolou .header-inner{ padding:9px 24px; }
  .logo-wrap{ display:flex; align-items:center; gap:14px; }
  .logo-wrap img{ height:34px; width:auto; transition:height .2s ease; }
  header.rolou .logo-wrap img{ height:29px; }
  .badge{
    background:var(--red); color:var(--white);
    font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:600;
    min-width:19px; height:19px; padding:0 5px; margin-left:1px;
    display:inline-flex; align-items:center; justify-content:center;
    border-radius:10px; line-height:1;
  }
  .sticky-cta .badge{ background:var(--white); color:#0F8C46; }
  .header-tag{
    font-family:'IBM Plex Mono', monospace;
    font-size:10.5px; color:var(--ink-soft); letter-spacing:0.1em; text-transform:uppercase;
    display:none; padding-left:14px; border-left:1px solid var(--line); line-height:1.4;
  }
  @media(min-width:640px){ .header-tag{ display:block; } }
  .whats-btn{
    display:flex; align-items:center; gap:9px;
    background:var(--navy); color:var(--white);
    padding:10px 16px; border-radius:2px;
    font-family:inherit; font-size:13px; font-weight:600; text-decoration:none;
    white-space:nowrap; border:none;
    transition:background .15s ease, transform .12s ease;
  }
  .whats-btn:hover{ background:var(--navy-deep); transform:translateY(-1px); }
  .whats-btn:not([href]), .sticky-cta a:not([href]), .order-btn{ cursor:pointer; }
  .whats-btn svg{ width:16px; height:16px; flex:none; }

  /* ---------- Hero ---------- */
  .hero{
    background:var(--navy-deep);
    color:var(--white);
    position:relative;
    overflow:hidden;
  }
  .hero-inner{
    max-width:1180px; margin:0 auto; padding:72px 24px 56px;
    position:relative; z-index:2;
  }
  .hero-eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px; letter-spacing:0.14em; text-transform:uppercase;
    color:#8B94C7;
    display:flex; align-items:center; gap:10px; margin-bottom:20px;
  }
  .hero-eyebrow::before{
    content:''; width:26px; height:1px; background:var(--red);
  }
  .hero h1{
    font-size:clamp(32px, 5vw, 52px);
    line-height:1.05;
    max-width:780px;
    font-weight:700;
  }
  .hero h1 em{
    font-style:normal; color:var(--red);
  }
  .hero p{
    max-width:560px; margin-top:20px;
    color:#B7BEDB; font-size:16px; line-height:1.65;
  }
  .hero-specs{
    display:flex; flex-wrap:wrap; gap:0;
    margin-top:44px;
    border-top:1px solid #2B3568;
  }
  .hero-spec{
    flex:1 1 160px;
    padding:18px 18px 0;
    border-right:1px solid #2B3568;
    display:flex; flex-direction:column;
  }
  .hero-spec:last-child{ border-right:none; }
  .hero-spec .n{ font-family:'Space Grotesk',sans-serif; font-size:clamp(20px,2.1vw,26px); font-weight:700; color:var(--white); line-height:1.15; }
  .hero-spec .l{ font-family:'IBM Plex Mono',monospace; font-size:11px; color:#8B94C7; text-transform:uppercase; letter-spacing:0.05em; margin-top:auto; padding-top:6px; }

  /* diagonal perforation strip motif */
  .perf-strip{
    position:absolute; right:-40px; top:0; bottom:0; width:220px;
    background-image: radial-gradient(circle, rgba(255,255,255,0.08) 2px, transparent 2.2px);
    background-size: 22px 22px;
    z-index:1;
    opacity:0.6;
  }

  /* ---------- Section shell ---------- */
  section.block{ max-width:1180px; margin:0 auto; padding:64px 24px; }
  .section-head{
    display:flex; align-items:baseline; justify-content:space-between; gap:16px;
    margin-bottom:36px; flex-wrap:wrap;
  }
  .section-head .tag{
    font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.1em;
    text-transform:uppercase; color:var(--red); display:flex; align-items:center; gap:8px;
  }
  .section-head .tag::before{ content:'§'; }
  .section-head h2{ font-size:28px; margin-top:8px; }
  .section-head .note{ font-size:13px; color:var(--ink-soft); max-width:320px; }

  /* ---------- Category picker ---------- */
  .cat-grid{
    display:grid; grid-template-columns:repeat(2,1fr); gap:10px;
  }
  @media(min-width:700px){ .cat-grid{ grid-template-columns:repeat(3,1fr); } }
  @media(min-width:1020px){ .cat-grid{ grid-template-columns:repeat(6,1fr); } }
  .cat-tile{
    position:relative; overflow:hidden;
    background:var(--white); border:1px solid var(--line);
    padding:19px 16px 17px; min-height:166px;
    text-align:left; cursor:pointer;
    font-family:inherit; color:var(--ink);
    display:flex; flex-direction:column; gap:8px;
    transition:transform .16s ease, border-color .16s ease,
               background .16s ease, box-shadow .16s ease, color .16s ease;
  }
  .cat-tile::before{
    content:''; position:absolute; top:0; left:0; right:0; height:2px;
    background:var(--red); transform:scaleX(0); transform-origin:left;
    transition:transform .22s ease;
  }
  .cat-tile:hover{
    transform:translateY(-2px); border-color:var(--navy-mid);
    box-shadow:0 10px 22px rgba(20,26,61,0.09);
  }
  .cat-tile:hover::before{ transform:scaleX(1); }
  .cat-tile .ghost{
    position:absolute; right:-5px; bottom:-18px; z-index:0;
    font-family:'Space Grotesk',sans-serif; font-weight:700;
    font-size:80px; line-height:1; color:var(--paper-2);
    pointer-events:none; transition:color .16s ease;
  }
  .cat-tile h4, .cat-tile .c{ position:relative; z-index:1; }
  .cat-tile h4{
    font-family:'Space Grotesk',sans-serif;
    font-size:clamp(18px, 1.75vw, 23px);
    margin:0; line-height:1.15; font-weight:700; letter-spacing:-0.02em;
  }
  .cat-tile .c{
    font-family:'IBM Plex Mono',monospace; font-size:10px;
    color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.07em;
    margin-top:auto; display:flex; align-items:center; gap:6px;
  }
  .cat-tile .c::before{
    content:''; width:5px; height:5px; border-radius:50%;
    background:var(--red); flex:none;
  }
  .cat-tile.soon{ border-style:dashed; }
  .cat-tile.soon .c::before{ background:var(--line); }
  .cat-tile.active{
    background:var(--navy); border-color:var(--navy); color:var(--white);
    box-shadow:0 12px 26px rgba(20,26,61,0.2);
  }
  .cat-tile.active::before{ transform:scaleX(1); }
  .cat-tile.active:hover{ transform:translateY(-2px); }
  .cat-tile.active .ghost{ color:rgba(255,255,255,0.09); }
  .cat-tile.active .c{ color:#A8B0DA; }
  .cat-tile.active .c::before{ background:var(--red); }
  @media(max-width:520px){
    .cat-tile{ min-height:140px; padding:16px 14px 14px; }
    .cat-tile .ghost{ font-size:62px; bottom:-15px; }
  }

  /* ---------- Vitrine de modelos ---------- */
  .model-grid{
    display:grid; grid-template-columns:repeat(2,1fr); gap:14px;
  }
  @media(min-width:700px){ .model-grid{ grid-template-columns:repeat(3,1fr); } }
  @media(min-width:1020px){ .model-grid{ grid-template-columns:repeat(4,1fr); } }
  .model-card{
    background:var(--white); border:1px solid var(--line);
    padding:0; cursor:pointer; font-family:inherit; color:var(--ink);
    display:flex; flex-direction:column; text-align:left;
    transition:border-color .12s ease;
  }
  .model-card:hover{ border-color:var(--navy-mid); }
  .model-thumb{
    background:var(--paper-2); aspect-ratio:1 / 1;
    display:flex; align-items:center; justify-content:center;
    padding:14px; border-bottom:1px solid var(--line); overflow:hidden;
  }
  .model-thumb img{ max-width:100%; max-height:100%; width:auto; height:auto; }
  .model-thumb .sem{
    font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:#A6ABC5;
    text-transform:uppercase; letter-spacing:0.06em; text-align:center;
  }
  .model-info{
    padding:13px 14px 14px; display:flex; flex-direction:column; gap:5px;
    transition:background .12s ease, color .12s ease;
  }
  .model-info h4{
    font-family:'Space Grotesk',sans-serif; font-size:14px;
    margin:0; line-height:1.25; font-weight:600;
  }
  .model-info .r{
    font-family:'IBM Plex Mono',monospace; font-size:10.5px;
    text-transform:uppercase; letter-spacing:0.05em; color:var(--ink-soft);
  }
  .model-card.active{ border-color:var(--navy); }
  .model-card.active .model-info{ background:var(--navy); color:var(--white); }
  .model-card.active .model-info .r{ color:#8B94C7; }

  .hint{
    border:1px dashed var(--line); background:var(--white);
    padding:32px 24px; text-align:center;
    font-family:'IBM Plex Mono',monospace; font-size:11.5px;
    letter-spacing:0.06em; text-transform:uppercase; color:#A6ABC5;
  }

  /* ---------- Panel ---------- */
  .panel-head{
    display:flex; align-items:center; gap:12px;
    margin:40px 0 18px;
    font-family:'IBM Plex Mono',monospace; font-size:11.5px;
    letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft);
  }
  .panel-head[hidden]{ display:none; }
  .panel-head b{ color:var(--navy); font-weight:600; }
  .panel-head .rule{ flex:1; height:1px; background:var(--line); }

  /* ---------- Product card ---------- */
  .product-card{
    background:var(--white);
    border:1px solid var(--line);
    display:grid;
    grid-template-columns: 1fr;
  }
  @media(min-width:820px){
    .product-card{ grid-template-columns: 0.85fr 1.15fr; }
  }
  .product-media{
    background:var(--paper-2);
    padding:28px;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px;
    position:relative;
    border-bottom:1px solid var(--line);
  }
  .media-galeria{ display:flex; gap:8px; justify-content:center; flex-wrap:wrap; }
  .media-thumb{
    width:54px; height:54px; padding:3px; cursor:pointer;
    background:var(--white); border:1px solid var(--line);
    display:flex; align-items:center; justify-content:center;
    transition:border-color .12s ease, box-shadow .12s ease;
  }
  .media-thumb img{ max-width:100%; max-height:100%; width:auto; }
  .media-thumb:hover{ border-color:var(--navy-mid); }
  .media-thumb.ativa{ border-color:var(--navy); box-shadow:0 0 0 1px var(--navy); }
  @media(min-width:820px){
    .product-media{ border-bottom:none; border-right:1px solid var(--line); }
  }
  .product-media img{ max-width:100%; max-height:360px; width:auto; height:auto; margin:0 auto; }
  .media-tags{
    position:absolute; top:14px; left:14px; z-index:2;
    display:flex; flex-direction:column; align-items:flex-start; gap:6px;
  }
  .media-tag{
    background:var(--navy); color:var(--white);
    font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:0.06em;
    text-transform:uppercase; padding:5px 9px;
  }
  .media-tag.espessura{
    background:var(--white); color:var(--navy); border:1px solid var(--line);
  }
  .media-ilustra{
    position:absolute; right:14px; bottom:12px; z-index:2; pointer-events:none;
    font-family:'IBM Plex Mono',monospace; font-size:9.5px;
    letter-spacing:0.07em; text-transform:uppercase; color:#98A0BC;
  }
  .media-empty{
    width:100%; min-height:260px;
    border:1px dashed var(--line);
    display:flex; align-items:center; justify-content:center;
    font-family:'IBM Plex Mono',monospace; font-size:11px;
    letter-spacing:0.06em; text-transform:uppercase; color:#A6ABC5;
    text-align:center; padding:24px;
  }
  .product-body{ padding:32px; }
  .product-eyebrow{
    font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--ink-soft);
    text-transform:uppercase; letter-spacing:0.08em; margin-bottom:8px;
  }
  .product-body h3{ font-size:24px; margin-bottom:10px; }
  .product-desc{ color:var(--ink-soft); font-size:14.5px; line-height:1.6; margin-bottom:26px; max-width:480px; }

  .field{ margin-bottom:22px; }
  .field-label{
    display:flex; align-items:center; gap:8px;
    font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase;
    letter-spacing:0.06em; color:var(--navy); margin-bottom:10px; font-weight:600;
  }
  .field-label .idx{ color:var(--red); }

  .chip-row{ display:flex; flex-wrap:wrap; gap:8px; }
  .chip{
    font-family:'IBM Plex Mono',monospace; font-size:13px; font-weight:500;
    padding:9px 14px;
    border:1px solid var(--line);
    background:var(--white);
    cursor:pointer;
    color:var(--ink);
    position:relative;
    transition:border-color .12s ease, color .12s ease;
  }
  .chip:hover{ border-color:var(--navy-mid); }
  .chip.active{
    background:var(--navy); border-color:var(--navy); color:var(--white);
  }
  .chip[disabled]{ opacity:0.35; cursor:not-allowed; }
  .chip-det{
    display:block; margin-top:3px;
    font-size:10.5px; font-weight:400; letter-spacing:0.02em;
    color:var(--ink-soft);
  }
  .chip.active .chip-det{ color:#A8B0DA; }
  .chip-empty{ font-family:'IBM Plex Mono',monospace; font-size:13px; color:#A6ABC5; }

  .qty-wrap{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
  .qty-note{
    font-family:'IBM Plex Mono',monospace; font-size:11px;
    text-transform:uppercase; letter-spacing:0.05em; color:var(--ink-soft);
  }
  .qty-row{ display:flex; align-items:center; gap:0; width:fit-content; border:1px solid var(--line); }
  .qty-btn{
    width:38px; height:38px; background:var(--paper-2); border:none; cursor:pointer;
    font-size:16px; font-family:'IBM Plex Mono',monospace; color:var(--navy);
  }
  .qty-btn:hover{ background:var(--line); }
  .qty-input{
    width:56px; height:38px; text-align:center; border:none; border-left:1px solid var(--line); border-right:1px solid var(--line);
    font-family:'IBM Plex Mono',monospace; font-size:14px; color:var(--ink);
  }
  .qty-input:focus{ outline:none; }

  /* ---------- Lista de medidas com quantidade por linha ---------- */
  .med-list{ border:1px solid var(--line); background:var(--white); }
  .med-row{
    display:flex; align-items:center; gap:10px 14px; flex-wrap:wrap;
    padding:8px 12px; border-bottom:1px solid var(--line);
    transition:background .12s ease, box-shadow .12s ease;
  }
  .med-row:last-child{ border-bottom:none; }
  .med-nome{
    font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--ink);
    min-width:92px; font-weight:500;
  }
  .med-info{
    font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--ink-soft);
    flex:1 1 110px;
  }
  .med-row.ativo{ background:var(--paper); box-shadow:inset 3px 0 0 var(--red); }
  .med-row.ativo .med-nome{ font-weight:600; }
  .med-nota{ display:block; margin-top:10px; }
  .spec-ticket.lista{ flex-direction:column; gap:5px; align-items:flex-start; }

  .spec-ticket{
    margin-top:6px; margin-bottom:26px;
    background:var(--paper);
    border:1px dashed var(--line);
    padding:14px 16px;
    font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--ink-soft);
    display:flex; flex-wrap:wrap; gap:6px 18px;
  }
  .spec-ticket b{ color:var(--ink); font-weight:600; }
  .spec-ticket .empty{ color:#A6ABC5; }
  .spec-ticket .total{ color:var(--navy); font-weight:600; }
  .spec-ticket .total b{ color:var(--red); }

  .order-btn{
    display:inline-flex; align-items:center; gap:10px;
    background:var(--red); color:var(--white);
    padding:14px 22px; border:none; cursor:pointer;
    font-family:'IBM Plex Sans',sans-serif; font-weight:600; font-size:14.5px;
    text-decoration:none;
    transition:background .15s ease, transform .1s ease;
  }
  .order-btn:hover{ background:#D8232F; }
  .order-btn:disabled{ background:#C9CCDC; cursor:not-allowed; }
  .order-btn svg{ width:18px; height:18px; }

  /* ---------- Categoria ainda sem modelos ---------- */
  .empty-panel{
    background:var(--white); border:1px dashed var(--line);
    padding:56px 28px; text-align:center;
  }
  .empty-panel h3{ font-size:21px; margin-bottom:12px; }
  .empty-panel p{
    color:var(--ink-soft); font-size:14.5px; line-height:1.6;
    max-width:440px; margin:0 auto 26px;
  }

  .obs-campo{
    width:100%; padding:11px 13px; min-height:64px; resize:vertical;
    border:1px solid var(--line); background:var(--white); color:var(--ink);
    font-family:'IBM Plex Sans',sans-serif; font-size:14px; line-height:1.5;
  }
  .obs-campo:focus{ outline:none; border-color:var(--navy); }
  .field-label .opcional{
    color:var(--ink-soft); font-weight:400; text-transform:none; letter-spacing:0;
  }
  .cart-obs{
    font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--navy);
    margin-top:6px; line-height:1.5;
  }
  .prev-obs{
    font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--navy);
    margin-top:7px; line-height:1.5;
  }

  /* ---------- Orçamento (carrinho) ---------- */
  .cart-list{ border:1px solid var(--line); background:var(--white); }
  .cart-item{
    display:flex; align-items:center; gap:16px;
    padding:14px 16px; border-bottom:1px solid var(--line);
  }
  .cart-item:last-child{ border-bottom:none; }
  .cart-thumb{
    width:62px; height:62px; flex:none;
    background:var(--paper-2); border:1px solid var(--line);
    display:flex; align-items:center; justify-content:center; padding:5px;
  }
  .cart-thumb img{ max-width:100%; max-height:100%; width:auto; }
  .cart-body{ flex:1; min-width:0; }
  .cart-nome{
    font-family:'Space Grotesk',sans-serif; font-size:14.5px; font-weight:600;
    margin-bottom:3px;
  }
  .cart-cat{
    font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--red);
    text-transform:uppercase; letter-spacing:0.06em; margin-bottom:5px;
  }
  .cart-specs{
    font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--ink-soft);
    line-height:1.5;
  }
  .cart-qtd{
    font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--ink);
    text-align:right; flex:none; white-space:nowrap;
  }
  .cart-qtd b{ color:var(--navy); }
  .cart-qtd span{ display:block; font-size:11px; color:var(--ink-soft); margin-top:3px; }
  .cart-remove{
    flex:none; width:30px; height:30px; padding:0;
    background:none; border:1px solid var(--line); cursor:pointer;
    color:var(--ink-soft); font-size:15px; line-height:1;
    font-family:'IBM Plex Mono',monospace;
  }
  .cart-remove:hover{ border-color:var(--red); color:var(--red); }
  @media(max-width:640px){
    .cart-item{ flex-wrap:wrap; gap:12px; }
    .cart-body{ flex:1 1 calc(100% - 110px); }
    .cart-qtd{ flex:1 1 100%; text-align:left; }
  }
  .cart-foot{
    display:flex; align-items:center; justify-content:space-between;
    gap:18px; flex-wrap:wrap; margin-top:22px;
  }
  .cart-total{
    font-size:13px; color:var(--ink-soft);
    text-transform:uppercase; letter-spacing:0.05em;
  }
  .cart-total b{ color:var(--navy); font-size:15px; }
  .cart-acoes{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
  .cart-limpar{
    background:none; border:none; cursor:pointer; padding:6px 2px;
    font-size:11.5px; text-transform:uppercase; letter-spacing:0.06em;
    color:var(--ink-soft); text-decoration:underline;
  }
  .cart-limpar:hover{ color:var(--red); }

  /* ---------- Pré-visualização do orçamento ---------- */
  .modal{
    position:fixed; inset:0; z-index:100;
    display:flex; align-items:center; justify-content:center;
    padding:20px;
  }
  .modal[hidden]{ display:none; }
  .modal-fundo{
    position:absolute; inset:0;
    background:rgba(20,26,61,0.55);
  }
  .modal-caixa{
    position:relative; z-index:1;
    background:var(--white); border:1px solid var(--line);
    width:100%; max-width:640px; max-height:88vh;
    display:flex; flex-direction:column;
    box-shadow:0 24px 60px rgba(20,26,61,0.28);
  }
  .modal-topo{
    display:flex; align-items:flex-start; justify-content:space-between; gap:16px;
    padding:22px 24px 18px; border-bottom:1px solid var(--line);
  }
  .modal-topo .tag{
    font-size:11px; letter-spacing:0.1em; text-transform:uppercase;
    color:var(--red); margin-bottom:6px;
  }
  .modal-topo h3{ font-size:21px; }
  .modal-x{
    background:none; border:none; cursor:pointer; padding:0 4px;
    font-size:24px; line-height:1; color:var(--ink-soft);
    font-family:'IBM Plex Mono',monospace;
  }
  .modal-x:hover{ color:var(--red); }
  .modal-corpo{ overflow-y:auto; padding:6px 24px 4px; }
  .prev-item{
    display:flex; gap:14px; padding:16px 0; border-bottom:1px dashed var(--line);
  }
  .prev-item:last-child{ border-bottom:none; }
  .prev-n{
    font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--red);
    flex:none; padding-top:2px; font-weight:600;
  }
  .prev-nome{ font-family:'Space Grotesk',sans-serif; font-size:15px; font-weight:600; }
  .prev-cat{
    font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--ink-soft);
    text-transform:uppercase; letter-spacing:0.06em; margin:3px 0 8px;
  }
  .prev-linha{
    font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--ink-soft);
    line-height:1.7;
  }
  .prev-linha b{ color:var(--ink); font-weight:500; }
  .prev-qtd{
    font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--navy);
    font-weight:600; margin-top:7px;
  }
  .modal-rodape{
    display:flex; align-items:center; justify-content:space-between;
    gap:16px; flex-wrap:wrap;
    padding:18px 24px 22px; border-top:1px solid var(--line);
    background:var(--paper);
  }
  .modal-total{ font-size:13px; text-transform:uppercase; letter-spacing:0.05em; color:var(--ink-soft); }
  .modal-total b{ color:var(--navy); font-size:15px; }
  @media(max-width:560px){
    .modal{ padding:0; align-items:flex-end; }
    .modal-caixa{ max-height:94vh; }
    .modal-rodape .cart-acoes{ width:100%; }
    .modal-rodape .order-btn{ flex:1; justify-content:center; }
  }

  .orc-dados{
    border-bottom:1px dashed var(--line); padding:18px 0 20px; margin-bottom:4px;
  }
  .orc-dados .titulo{
    font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.08em;
    text-transform:uppercase; color:var(--navy); font-weight:600; margin-bottom:12px;
  }
  .orc-campos{ display:grid; grid-template-columns:1fr; gap:12px; }
  @media(min-width:520px){ .orc-campos{ grid-template-columns:1.4fr 1fr; } }
  .orc-campo label{
    display:block; font-family:'IBM Plex Mono',monospace; font-size:10.5px;
    letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:5px;
  }
  .orc-campo input{
    width:100%; padding:10px 12px;
    border:1px solid var(--line); background:var(--white); color:var(--ink);
    font-family:'IBM Plex Sans',sans-serif; font-size:14px;
  }
  .orc-campo input:focus{ outline:none; border-color:var(--navy); }
  .orc-campo input.erro{ border-color:var(--red); }
  .orc-aviso{
    margin-top:9px; font-family:'IBM Plex Mono',monospace; font-size:11px;
    color:var(--red); letter-spacing:0.03em;
  }
  .order-btn.desativado{
    background:#C9CCDC; pointer-events:none; cursor:not-allowed;
  }

  /* ---------- Footer ---------- */
  footer{
    background:var(--navy-deep); color:#8B94C7;
    padding:40px 24px;
  }
  .footer-inner{
    max-width:1180px; margin:0 auto;
    display:grid; grid-template-columns:1fr; gap:30px; align-items:start;
  }
  @media(min-width:760px){ .footer-inner{ grid-template-columns:1.4fr 1fr 1fr; gap:44px; } }
  .footer-inner img{ height:26px; width:auto; opacity:0.9; filter: brightness(0) invert(1); }
  .footer-marca{ display:flex; flex-direction:column; align-items:flex-start; gap:9px; }
  .footer-inner .fnote{ font-family:'IBM Plex Mono',monospace; font-size:11.5px; line-height:1.5; }
  .footer-col{ display:flex; flex-direction:column; gap:9px; }
  .footer-col .ftit{
    font-family:'IBM Plex Mono',monospace; font-size:10.5px; font-weight:600;
    letter-spacing:0.08em; text-transform:uppercase; color:#5D68A8; margin-bottom:3px;
  }
  .footer-col a{
    font-family:'IBM Plex Sans',sans-serif; font-size:13px; color:#B7BEDB;
    text-decoration:none; transition:color .14s ease;
  }
  .footer-col a:hover{ color:var(--white); }

  .sticky-cta{
    position:fixed; bottom:18px; right:18px; z-index:60;
  }
  .sticky-cta a{
    display:flex; align-items:center; gap:8px;
    background:#25D366; color:var(--white);
    padding:13px 18px; border-radius:40px; box-shadow:0 8px 20px rgba(0,0,0,0.18);
    font-weight:600; font-size:13.5px; text-decoration:none;
  }
  .sticky-cta svg{ width:18px; height:18px; }
  @media(min-width:820px){ .sticky-cta{ display:none; } }

/* =====================================================================
   PÁGINAS DO SITE — home, catálogo, categoria e orçamento
   ===================================================================== */

/* ---------- Menu do cabeçalho ---------- */
.menu{
  display:none; align-items:center; gap:26px; margin-left:auto; margin-right:26px;
}
@media(min-width:900px){ .menu{ display:flex; } }
.menu a{
  font-family:'IBM Plex Mono',monospace; font-size:11.5px;
  letter-spacing:0.07em; text-transform:uppercase;
  color:var(--ink-soft); text-decoration:none; padding:4px 0;
  border-bottom:1px solid transparent; transition:color .14s ease, border-color .14s ease;
}
.menu a:hover{ color:var(--navy); }
.menu a.ativo{ color:var(--navy); border-bottom-color:var(--red); }
.logo-wrap{ text-decoration:none; }

/* ---------- Botões ---------- */
.btn-primario, .btn-vazado{
  display:inline-flex; align-items:center; gap:10px;
  padding:15px 24px; border:1px solid transparent;
  font-family:'IBM Plex Sans',sans-serif; font-size:14.5px; font-weight:600;
  text-decoration:none; cursor:pointer;
  transition:background .15s ease, transform .12s ease, border-color .15s ease;
}
.btn-primario{ background:var(--red); color:var(--white); }
.btn-primario:hover{ background:#D8232F; transform:translateY(-2px); }
.btn-vazado{ background:none; color:var(--white); border-color:#3A4585; }
.btn-vazado:hover{ border-color:#6A76C0; background:rgba(255,255,255,0.06); transform:translateY(-2px); }
.btn-vazado svg{ width:17px; height:17px; }
.seta{ width:17px; height:17px; flex:none; transition:transform .16s ease; }
.btn-primario:hover .seta{ transform:translateX(3px); }

/* ---------- Hero da home ---------- */
.hero-home .hero-inner{ padding:92px 24px 64px; }
.hero-home h1{ font-size:clamp(36px, 6vw, 64px); }
.hero-acoes{ display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }

/* ---------- Linhas de produto ---------- */
.linhas-grid{ display:grid; grid-template-columns:1fr; gap:14px; }
@media(min-width:680px){ .linhas-grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1040px){ .linhas-grid{ grid-template-columns:repeat(3,1fr); } }
.linha-card{
  display:flex; flex-direction:column; text-decoration:none; color:var(--ink);
  background:var(--white); border:1px solid var(--line); overflow:hidden;
  transition:border-color .16s ease, transform .16s ease, box-shadow .16s ease;
}
.linha-card:hover{
  border-color:var(--navy-mid); transform:translateY(-3px);
  box-shadow:0 14px 30px rgba(20,26,61,0.1);
}
.linha-foto{
  background:var(--paper-2); height:260px;
  display:flex; align-items:center; justify-content:center; padding:20px;
  border-bottom:1px solid var(--line); overflow:hidden;
}
.linha-foto img{ max-width:100%; max-height:100%; width:auto; height:auto; }
.linha-txt{ padding:20px 20px 22px; display:flex; flex-direction:column; flex:1; }
.linha-txt h3{
  font-family:'Space Grotesk',sans-serif; font-size:19px; font-weight:700;
  letter-spacing:-0.02em; line-height:1.2; margin-bottom:9px;
}
.linha-txt p{
  margin:0 0 18px; font-size:13.5px; line-height:1.6; color:var(--ink-soft); flex:1;
}
.linha-ver{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'IBM Plex Mono',monospace; font-size:11px;
  letter-spacing:0.06em; text-transform:uppercase; color:var(--red);
}
.linha-card:hover .seta{ transform:translateX(3px); }

/* ---------- Faixa do picote (assinatura) ---------- */
.faixa-picote{
  background:var(--navy-deep); color:var(--white);
  position:relative; overflow:hidden;
  border-top:1px solid #2B3568; border-bottom:1px solid #2B3568;
}
.faixa-picote::before, .faixa-picote::after{
  content:''; position:absolute; left:0; right:0; height:16px;
  background-image:radial-gradient(circle, var(--paper) 3.2px, transparent 3.4px);
  background-size:20px 20px; background-position:center;
}
.faixa-picote::before{ top:-8px; }
.faixa-picote::after{ bottom:-8px; }
.faixa-inner{
  max-width:1180px; margin:0 auto; padding:72px 24px;
  display:grid; grid-template-columns:1fr; gap:44px; align-items:start;
}
@media(min-width:900px){ .faixa-inner{ grid-template-columns:1.05fr 0.95fr; gap:64px; } }
.faixa-eyebrow{
  font-family:'IBM Plex Mono',monospace; font-size:12px;
  letter-spacing:0.14em; text-transform:uppercase; color:#8B94C7;
  display:flex; align-items:center; gap:10px; margin-bottom:18px;
}
.faixa-eyebrow::before{ content:''; width:26px; height:1px; background:var(--red); }
.faixa-txt h2{
  font-size:clamp(25px, 3.2vw, 34px); line-height:1.18; font-weight:700; color:var(--white);
}
.faixa-txt p{
  margin:18px 0 28px; max-width:480px;
  color:#B7BEDB; font-size:15px; line-height:1.68;
}
.faixa-passos{ list-style:none; margin:0; padding:0; border-top:1px solid #2B3568; }
.faixa-passos li{
  display:flex; gap:18px; padding:18px 0; border-bottom:1px solid #2B3568;
}
.faixa-passos .p{
  font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:15px;
  color:var(--red); flex:none; padding-top:1px;
}
.faixa-passos b{
  display:block; font-family:'Space Grotesk',sans-serif; font-size:15.5px;
  font-weight:600; color:var(--white); margin-bottom:5px;
}
.faixa-passos div{ font-size:13.5px; line-height:1.6; color:#8B94C7; }

/* ---------- Bloco da empresa ---------- */
.empresa{ background:var(--white); }
.empresa-corpo{ display:grid; grid-template-columns:1fr; gap:34px; align-items:start; }
@media(min-width:900px){ .empresa-corpo{ grid-template-columns:1.3fr 0.7fr; gap:54px; } }
.empresa-texto p{
  margin:0 0 16px; color:var(--ink-soft); font-size:15px; line-height:1.72; max-width:620px;
}
.empresa-texto p:last-child{ margin-bottom:0; }
.empresa-lado{ display:flex; flex-direction:column; gap:12px; }
.empresa-destaque{ border:1px solid var(--line); padding:18px; background:var(--paper); }
.empresa-destaque .t{
  display:block; font-family:'Space Grotesk',sans-serif; font-size:15px;
  font-weight:600; color:var(--navy); margin-bottom:7px;
}
.empresa-destaque p{ margin:0; font-size:13px; line-height:1.6; color:var(--ink-soft); }

/* ---------- Página de categoria ---------- */
.cat-hero{ background:var(--navy-deep); color:var(--white); position:relative; overflow:hidden; }
.cat-hero .perf-strip{ opacity:0.45; }
.cat-hero-inner{ max-width:1180px; margin:0 auto; padding:52px 24px 46px; position:relative; z-index:2; }
.migalha{
  font-family:'IBM Plex Mono',monospace; font-size:11px;
  letter-spacing:0.07em; text-transform:uppercase; color:#8B94C7; margin-bottom:18px;
}
.migalha a{ color:#8B94C7; text-decoration:none; }
.migalha a:hover{ color:var(--white); }
.migalha span{ color:var(--red); margin:0 8px; }
.cat-hero h1{ font-size:clamp(28px, 4.2vw, 42px); line-height:1.1; font-weight:700; max-width:760px; }
.cat-hero .chamada{ margin-top:16px; max-width:560px; color:#B7BEDB; font-size:15.5px; line-height:1.65; }

.cat-sobre{ background:var(--white); border-bottom:1px solid var(--line); }
.cat-sobre-inner{
  max-width:1180px; margin:0 auto; padding:52px 24px;
  display:grid; grid-template-columns:1fr; gap:38px; align-items:start;
}
@media(min-width:900px){ .cat-sobre-inner{ grid-template-columns:1.25fr 0.75fr; gap:56px; } }
.cat-sobre p{ margin:0 0 15px; color:var(--ink-soft); font-size:15px; line-height:1.72; max-width:620px; }
.cat-sobre p:last-child{ margin-bottom:0; }
.usos-tit{
  font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:600;
  letter-spacing:0.08em; text-transform:uppercase; color:var(--navy); margin-bottom:14px;
}
.usos{ list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.usos li{ padding:12px 0; border-bottom:1px solid var(--line); }
.usos b{
  display:block; font-family:'Space Grotesk',sans-serif; font-size:14.5px;
  font-weight:600; color:var(--ink); margin-bottom:3px;
}
.usos span{
  font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--ink-soft); line-height:1.5;
}

/* ---------- Outras linhas (rodapé das páginas de categoria) ---------- */
.outras{ background:var(--paper-2); border-top:1px solid var(--line); }
.outras-inner{ max-width:1180px; margin:0 auto; padding:46px 24px; }
.outras-tit{
  font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:600;
  letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:16px;
}
.outras-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
@media(min-width:760px){ .outras-grid{ grid-template-columns:repeat(5,1fr); } }
.outra-link{
  display:flex; flex-direction:column; justify-content:space-between; gap:12px;
  min-height:94px; padding:15px 16px; text-decoration:none;
  background:var(--white); border:1px solid var(--line); color:var(--ink);
  transition:border-color .14s ease, transform .14s ease;
}
.outra-link:hover{ border-color:var(--navy-mid); transform:translateY(-2px); }
.outra-link b{
  font-family:'Space Grotesk',sans-serif; font-size:14px; font-weight:600; line-height:1.24;
}
.outra-link .seta{ width:15px; height:15px; color:var(--red); }

/* ---------- Página de orçamento ---------- */
.orc-hero{ background:var(--navy-deep); color:var(--white); position:relative; overflow:hidden; }
.orc-hero-inner{ max-width:1180px; margin:0 auto; padding:48px 24px 44px; position:relative; z-index:2; }
.orc-hero h1{ font-size:clamp(28px, 4vw, 40px); line-height:1.1; font-weight:700; }
.orc-hero p{ margin-top:14px; max-width:520px; color:#B7BEDB; font-size:15px; line-height:1.65; }

.cart-vazio{ background:var(--white); border:1px dashed var(--line); padding:56px 28px; text-align:center; }
.cart-vazio h3{ font-size:21px; margin-bottom:12px; }
.cart-vazio p{ color:var(--ink-soft); font-size:14.5px; line-height:1.6; max-width:420px; margin:0 auto 26px; }

.orc-envio{
  display:grid; grid-template-columns:1fr; gap:28px; align-items:start;
  margin-top:30px; padding-top:30px; border-top:1px solid var(--line);
}
.orc-envio[hidden]{ display:none; }
@media(min-width:820px){ .orc-envio{ grid-template-columns:1fr 340px; gap:48px; } }
.orc-caixa{ background:var(--paper-2); border:1px solid var(--line); padding:22px; }
.orc-caixa .titulo{
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--navy); font-weight:600; margin-bottom:14px;
}
.orc-resumo{ font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--ink-soft); }
.orc-resumo b{ display:block; font-size:19px; color:var(--navy); margin-bottom:4px; }
.orc-acoes{ display:flex; flex-direction:column; gap:14px; margin-top:20px; }
.orc-acoes .order-btn{ justify-content:center; }
.order-btn.desativado{ background:#C9CCDC; pointer-events:none; cursor:not-allowed; }

/* ---------- Card do Instagram ---------- */
.social-card{
  display:flex; align-items:center; gap:13px;
  padding:15px 17px; border:1px solid var(--line); background:var(--paper);
  color:var(--ink); text-decoration:none;
  transition:border-color .16s ease, transform .16s ease;
}
.social-card:hover{ border-color:var(--navy-mid); transform:translateY(-2px); }
.social-icone{
  width:40px; height:40px; flex:none;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--line); color:var(--navy); background:var(--white);
}
.social-icone svg{ width:20px; height:20px; }
.social-txt .t{
  display:block; font-family:'Space Grotesk',sans-serif; font-size:14.5px;
  font-weight:600; line-height:1.2;
}
.social-txt .s{
  display:block; margin-top:3px;
  font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--ink-soft);
  letter-spacing:0.04em;
}

/* na página de orçamento o botão de envio já está na tela: o flutuante sai */
.pg-orcamento .sticky-cta{ display:none; }
