/* Estilos compartilhados por index, oculos-de-grau e lentes-multifocais.
   Extraido em 20/09/2026: o bloco era duplicado byte a byte nas 3 paginas
   e a camada de acessibilidade so existia nas duas subpaginas. */
:root { --red:#e20b20; --black:#080808; --ink:#111; --muted:#666; --line:#e7e7e7; --paper:#fff; }
    * { box-sizing:border-box; margin:0; }
    html { scroll-behavior:smooth; }
    body { font-family:Arial,Helvetica,sans-serif; color:var(--ink); background:#fff; line-height:1.35; }
    img { display:block; width:100%; height:100%; object-fit:cover; }
    a { color:inherit; }
    .wrap { width:min(1180px,calc(100% - 48px)); margin:auto; }
    .rule { display:block; width:30px; height:3px; background:var(--red); margin-bottom:12px; }
    h2 { font-size:clamp(29px,3.2vw,44px); line-height:1.05; letter-spacing:-1.4px; }
    .button { display:inline-flex; align-items:center; justify-content:center; gap:10px; border:1px solid transparent; border-radius:6px; padding:15px 21px; background:var(--red); color:#fff; text-decoration:none; font-size:15px; font-weight:800; text-transform:uppercase; transition:.2s; }
    .button:hover { background:#b90719; transform:translateY(-1px); }
    .button--dark { background:#090909; }
    .button--outline { background:transparent; border-color:#c9c9c9; color:var(--ink); }

    .hero h1 em { color:var(--red); font-style:normal; }
    .topbar { background:#050505; }
    .topbar__in { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 0; }
    .topbar__logo { display:block; line-height:0; }
    .topbar__logo img { width:78px; height:auto; }
    .topbar__tel { display:inline-flex; align-items:center; gap:8px; color:#fff; font-size:14px; font-weight:700; text-decoration:none; }
    .topbar__tel .ic { width:15px; height:15px; color:var(--red); }
    .topbar__tel:hover { color:#ffd7db; }
    .topbar-divider { height:.8px; background:#1a1a1a; }
    .hero { position:relative; aspect-ratio:3 / 1; overflow:hidden; background:#050505; }
    .hero__art { position:absolute; inset:0; z-index:0; }
    .hero__art img { width:100%; height:100%; object-fit:cover; }
    .hero::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,#050505 14%,rgba(5,5,5,.82) 34%,rgba(5,5,5,.18) 52%,transparent 62%); }
    .hero__copy { position:relative; z-index:2; height:100%; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; max-width:calc(max(24px,(100% - 1180px)/2) + clamp(280px,50vw,620px)); padding:2vw 3vw 2vw max(24px,calc((100% - 1180px)/2)); color:#fff; }
    .hero h1 { font-size:clamp(31px,4.5vw,70px); line-height:.98; letter-spacing:-2.2px; text-transform:uppercase; }
    .hero h1 em { color:var(--red); font-style:normal; }
    .hero__lead { margin:clamp(8px,1.1vw,17px) 0 clamp(10px,1.3vw,19px); color:#eaeaea; font-size:clamp(14px,1.25vw,19px); }
    .hero__trust { display:flex; flex-wrap:nowrap; white-space:nowrap; margin-top:clamp(12px,1.7vw,24px); color:#e9e9e9; font-size:clamp(11px,.9vw,15px); }
    .hero__trust span { display:flex; align-items:center; gap:clamp(5px,.5vw,7px); border-left:1px solid var(--red); padding:0 clamp(7px,.85vw,16px); }
    .hero__trust .ic { width:clamp(11px,1vw,14px); height:clamp(11px,1vw,14px); }
    .offer { display:flex; align-items:center; gap:clamp(9px,1.1vw,16px); padding:clamp(6px,.7vw,10px) clamp(11px,1.2vw,18px); border:2px solid var(--red); border-radius:6px; margin-bottom:clamp(10px,1.1vw,16px); }
    .offer strong { color:var(--red); font-size:clamp(28px,3.4vw,52px); line-height:1; letter-spacing:-3px; }
    .offer strong small { font-size:.42em; letter-spacing:-1px; vertical-align:middle; }
    .offer span { max-width:9.5em; font-weight:800; font-size:clamp(10px,1vw,15px); line-height:1.1; text-transform:uppercase; }
    .hero__trust span:first-child { border:0; padding-left:0; }

    .perks { background:#fff; }
    .perks__grid { display:grid; grid-template-columns:1fr 1fr 1fr 1.3fr; padding:28px 0; }
    .perk { display:grid; grid-template-columns:34px 1fr; gap:10px; padding:0 18px; border-right:1px solid var(--line); }
    .perk:first-child { padding-left:0; }.perk:last-child { border:0; }
    .icon { color:var(--red); font-size:27px; line-height:1; }
    .perk b { display:block; font-size:16px; line-height:1.05; margin-bottom:5px; }
    .perk p { font-size:16px; line-height:1.35; color:var(--muted); }

    .campaign { overflow:hidden; background:#fff; }
    .campaign__grid { position:relative; width:min(1180px,calc(100% - 48px)); margin:auto; min-height:370px; display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
    .campaign__copy { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:54px clamp(40px,10vw,110px) 54px 0; }
    .campaign__copy h2 span { color:var(--red); }.campaign__copy p { max-width:430px; margin:18px 0 22px; font-size:17px; }
    .campaign__art { position:relative; min-height:320px; overflow:hidden; background:#0a0a0a; }
    .campaign__art::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(122deg,transparent 0 10%,var(--red) 10% 19%,transparent 19% 100%),linear-gradient(155deg,transparent 0 73%,#bf0619 73% 81%,transparent 81%); }
    .campaign__art img { position:absolute; z-index:2; width:58%; height:70%; right:-1%; bottom:-3%; transform:rotate(-7deg); object-fit:cover; }
    .campaign__stamp { position:absolute; z-index:4; top:50%; left:50%; transform:translate(-30%,-50%) skewX(-11deg); padding:clamp(16px,2vw,24px) clamp(30px,3.8vw,54px); background:#0a0a0a; border:2px solid var(--red); box-shadow:0 14px 40px rgba(0,0,0,.55); }
    .stamp__in { display:block; transform:skewX(11deg); color:#fff; }
    .stamp__row { display:flex; align-items:flex-start; gap:7px; }
    .stamp__upto { padding-top:7px; font-size:clamp(13px,1.4vw,20px); font-weight:900; }
    .stamp__n { font-size:clamp(52px,6.1vw,88px); line-height:.78; font-weight:900; letter-spacing:-4px; }
    .stamp__suf { display:flex; flex-direction:column; line-height:1; font-weight:900; font-size:clamp(18px,2.1vw,30px); padding-top:4px; }
    .stamp__suf span:last-child { color:var(--red); }
    .stamp__label { display:block; margin-top:10px; font-size:clamp(14px,1.5vw,22px); font-weight:900; letter-spacing:1.6px; }

    section.standard { padding:65px 0; }.section-head { margin-bottom:28px; }
    .products { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
    .product { border:1px solid var(--line); border-radius:7px; overflow:hidden; background:#fff; box-shadow:0 4px 14px rgba(0,0,0,.04); }
    .product__photo { height:165px; }.product__body { padding:16px; }.product b { font-size:17px; }.product p { min-height:44px; color:var(--muted); font-size:16px; margin:7px 0 12px; }.product a { color:var(--red); font-size:14px; font-weight:800; text-decoration:none; text-transform:uppercase; }

    .reasons { padding:65px 0; color:#fff; overflow:hidden; position:relative; background:linear-gradient(110deg,#050505,#171717); }
    .reasons::before,.reviews::before { content:""; position:absolute; top:0; left:-58px; width:210px; height:100%; opacity:.9; background:linear-gradient(120deg,transparent 18%,var(--red) 18% 27%,transparent 27%); }
    .reasons::after,.reviews::after { content:""; position:absolute; top:0; right:-60px; width:230px; height:100%; opacity:.9; background:linear-gradient(120deg,transparent 18%,var(--red) 18% 27%,transparent 27%); }
    .reasons .wrap,.reviews .wrap { position:relative; z-index:1; }
    .reason-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
    .reason { min-height:168px; border:1px solid #4a4a4a; border-radius:7px; padding:22px; background:rgba(0,0,0,.28); }.reason .icon { margin-bottom:18px; }.reason b { display:block; font-size:17px; margin-bottom:7px; }.reason p { color:#d2d2d2; font-size:16px; }

    .steps { padding:65px 0; }.step-grid { display:grid; grid-template-columns:repeat(4,1fr); }.step { min-height:125px; padding:0 28px; border-right:1px solid var(--line); }.step:first-child { padding-left:0; }.step:last-child { border:0; }
    .step__top { display:flex; align-items:center; gap:14px; margin-bottom:13px; }.step__n { display:grid; place-items:center; width:27px; height:27px; border-radius:50%; background:var(--red); color:#fff; font-size:14px; font-weight:800; }.step__mark { color:var(--red); font-size:30px; line-height:1; }.step b { display:block; font-size:16px; margin-bottom:6px; }.step p { color:var(--muted); font-size:16px; }

    .reviews { color:#fff; background:linear-gradient(110deg,#050505,#171717); padding:65px 0; position:relative; overflow:hidden; }.review-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }.review { min-height:195px; display:flex; flex-direction:column; padding:20px; border:1px solid #555; border-radius:7px; background:#0b0b0b; }.stars { color:var(--red); letter-spacing:2px; font-size:14px; }.review blockquote { margin:13px 0; color:#eee; font-size:15px; }.review cite { display:flex; align-items:center; gap:9px; margin-top:auto; font-style:normal; color:#aaa; font-size:13px; }.review cite b { display:block; color:#fff; font-size:15px; }

    .avatar { display:grid; place-items:center; width:34px; height:34px; flex:0 0 34px; border-radius:50%; background:var(--red); color:#fff; font-size:14px; font-weight:800; }
    .reviews__source { margin-top:20px; color:#c9c9c9; font-size:16px; }
    .reviews__source a { color:#fff; font-weight:700; text-decoration:none; border-bottom:1px solid var(--red); }
    .visit { display:grid; grid-template-columns:1.05fr .95fr; min-height:390px; background:#fff; color:var(--ink); }.visit__photo { position:relative; min-height:420px; overflow:hidden; clip-path:polygon(0 0,100% 0,calc(100% - 82px) 100%,0 100%); filter:drop-shadow(14px 0 22px rgba(0,0,0,.28)); }
    .visit__photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }.visit__photo::before { content:""; position:absolute; z-index:1; inset:0; background:linear-gradient(90deg,transparent 62%,rgba(8,8,8,.28) 88%,rgba(8,8,8,.45) 100%); }.visit__info { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:55px 8vw 55px 50px; }.visit__info p { color:#555; font-size:16px; margin:16px 0 0; }
    .visit__actions { margin-top:26px; }.visit__actions { display:flex; flex-wrap:wrap; gap:12px; }

    .final-cta { position:relative; overflow:hidden; color:#fff; background:linear-gradient(105deg,#9d0515,var(--red) 50%,#b7081c); }.final-cta__photo { position:absolute; z-index:1; right:clamp(20px,7vw,165px); bottom:-114px; width:clamp(200px,22vw,320px); pointer-events:none; }
    .final-cta__photo img { width:100%; height:auto; object-fit:contain; filter:drop-shadow(-16px 14px 26px rgba(80,0,8,.45)); transform:rotate(-14deg); }.final-cta__content { position:relative; z-index:2; width:min(1180px,calc(100% - 48px)); margin:auto; min-height:155px; display:flex; align-items:center; justify-content:flex-start; gap:clamp(22px,4vw,64px); padding:25px 0; }.final-cta h2 { font-size:clamp(25px,2.7vw,37px); }.final-cta p { color:#ffe3e6; margin-top:4px; font-size:17px; }.final-cta .button { white-space:nowrap; }

    .faq { padding:65px 0; }.faq-grid { display:grid; grid-template-columns:repeat(2,1fr); column-gap:34px; }.faq details { border-bottom:1px solid var(--line); }.faq summary { display:flex; align-items:center; justify-content:space-between; padding:16px 4px; cursor:pointer; list-style:none; font-size:15px; font-weight:700; }.faq summary::-webkit-details-marker { display:none; }.faq summary::after { content:"+"; color:var(--red); font-size:22px; font-weight:400; }.faq details[open] summary::after { content:"−"; }.faq p { padding:0 4px 14px; color:var(--muted); font-size:16px; }
    footer { color:#ccc; background:#070707; padding:34px 0 18px; font-size:16px; } .foot { display:grid; grid-template-columns:1.25fr repeat(3,1fr); gap:20px; padding-bottom:24px; border-bottom:1px solid #333; }.brand { color:#fff; font-size:19px; font-weight:900; }.foot b { display:block; color:#fff; margin-bottom:7px; }.foot a { text-decoration:none; }.legal { display:flex; justify-content:space-between; padding-top:16px; color:#aaa; font-size:12px; }.legal a { color:#fff; text-decoration:none; }
    @media(max-width:820px) { .wrap { width:min(100% - 36px,1180px); }.perks__grid,.products,.reason-grid,.step-grid { grid-template-columns:repeat(2,1fr); }.perks__grid { padding:20px 0 0; column-gap:26px; }.perk { padding:15px 0; border-right:0; border-bottom:1px solid var(--line); }.perk:first-child { padding-left:0; }.perk:last-child { border-bottom:1px solid var(--line); }.campaign__grid,.visit { grid-template-columns:1fr; }.campaign__grid { width:min(1180px,calc(100% - 36px)); }.campaign__copy { padding:34px 0 30px; }.campaign__art { min-height:300px; }.visit__photo { min-height:300px; height:300px; clip-path:polygon(0 0,100% 0,100% 93%,0 100%); filter:none; }.visit__photo::before { background:none; }.visit__info { padding:44px 18px; }.visit__actions { width:100%; }.final-cta { grid-template-columns:1fr; }.final-cta__photo { display:none; }.final-cta__content { width:min(1180px,calc(100% - 36px)); min-height:0; flex-direction:column; align-items:flex-start; gap:18px; padding:32px 0; }.review-grid,.faq-grid,.foot { grid-template-columns:1fr; }.step { padding:20px 0; border-right:0; border-bottom:1px solid var(--line); }.foot { gap:13px; }.legal { gap:14px; flex-wrap:wrap; } }
    @media(max-width:460px) { .products,.reason-grid,.step-grid,.perks__grid { grid-template-columns:1fr; }.final-cta__content { align-items:flex-start; flex-direction:column; } }
        .campaign__art { clip-path:polygon(13.5% 0,100% 0,100% 100%,0.5% 100%); filter:drop-shadow(-13px 0 20px rgba(0,0,0,.38)); }
    .campaign__art::before { display:none; }
    .campaign__art img { inset:0; width:100%; height:100%; right:auto; bottom:auto; transform:none; object-fit:cover; }

    .section-cta { margin-top:32px; }
    .lenses { padding:65px 0; background:#f5f5f5; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
    .lens-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
    .lens { padding:24px; border:1px solid var(--line); border-radius:7px; background:#fff; box-shadow:0 4px 14px rgba(0,0,0,.04); }
    .lens svg { display:block; width:31px; height:31px; margin-bottom:16px; color:var(--red); }
    .lens b { display:block; font-size:17px; margin-bottom:7px; }
    .lens p { color:var(--muted); font-size:16px; }
    .wa-float { position:fixed; z-index:60; right:18px; bottom:18px; display:inline-flex; align-items:center; gap:9px; padding:14px 19px; border-radius:40px; background:#25d366; color:#fff; text-decoration:none; font-size:14px; font-weight:800; box-shadow:0 8px 24px rgba(0,0,0,.3); }
    .wa-float:hover { background:#1fb757; }
    .wa-float svg { display:block; width:21px; height:21px; flex:0 0 21px; }
    @media(max-width:820px) { .lens-grid { grid-template-columns:repeat(2,1fr); } .wa-float { right:14px; bottom:14px; padding:15px; } .wa-float span { display:none; } }
    @media(max-width:460px) { .lens-grid { grid-template-columns:1fr; } }

    .ic { display:inline-block; width:20px; height:20px; flex:0 0 auto; color:var(--red); vertical-align:middle; }
    .perk .icon .ic, .reason .icon .ic, .step__mark .ic, .lens .ic { width:30px; height:30px; }
    .lens .ic { display:block; margin-bottom:16px; }
    .stars { display:flex; gap:3px; }
    .stars .ic { width:14px; height:14px; }
    .button .ic, .wa-float .ic, .product a .ic, .legal .ic, .foot b .ic { width:16px; height:16px; color:currentColor; }
    .visit__eyebrow { display:block; margin-bottom:10px; color:var(--red); font-size:14px; font-weight:900; letter-spacing:2.2px; text-transform:uppercase; }
    .visit__info .hours { display:flex; align-items:flex-start; gap:9px; margin:10px 0 0; }
    .visit__info .hours .ic { margin-top:2px; }
    .visit__info .addr { display:flex; align-items:flex-start; gap:9px; }
    .visit__info .addr .ic { margin-top:2px; }
    .foot b { display:flex; align-items:center; gap:7px; }
    .brand { display:flex; flex-direction:column; align-items:flex-start; gap:11px; }
    .brand-logo { width:128px; height:auto; }
    .legal a { display:inline-flex; align-items:center; gap:6px; }
    .product a { display:inline-flex; align-items:center; gap:6px; }
    @media(max-width:820px) {
      .campaign__stamp { left:16px; top:auto; bottom:150px; transform:translateY(50%) skewX(-11deg); }
      .campaign__art { clip-path:polygon(0 8%,100% 0,100% 100%,0 100%); filter:none; }
      .campaign__art::before { display:none; }
    }
    @media(max-width:820px) {
      .foot { justify-items:center; text-align:center; gap:24px; padding-bottom:26px; }
      .brand { align-items:center; gap:9px; }
      .foot b { justify-content:center; }
      .legal { flex-direction:column; align-items:center; text-align:center; gap:13px; }
    }
    @media(max-width:820px) {
      .topbar__in { padding:9px 0; }
      .topbar__logo img { width:66px; }
      .topbar__tel { font-size:14px; }
      .button { width:100%; font-size:14px; padding:16px 10px; gap:7px; }
      .button .ic { width:15px; height:15px; }
      .wa-float { width:auto; }
    }
    @media(max-width:820px) {
      section.standard, .lenses, .reasons, .steps, .reviews, .faq { padding:52px 0; }
    }
    @media(max-width:820px) {
      .hero { aspect-ratio:auto; height:auto; }
      .hero__art { position:relative; display:block; height:clamp(230px,60vw,320px); }
      .hero__art img { object-position:72% 18%; }
      .hero::before { inset:0 0 auto 0; height:clamp(230px,60vw,320px); background:linear-gradient(180deg,transparent 40%,rgba(5,5,5,.55) 74%,#050505 100%); }
      .hero__copy { position:relative; inset:auto; height:auto; max-width:none; padding:0 18px 32px; }
      .hero h1 { font-size:clamp(34px,9.4vw,48px); letter-spacing:-1.6px; }
      .hero__lead { font-size:16px; margin:11px 0 15px; }
      .offer { padding:7px 13px; margin-bottom:14px; }
      .offer strong { font-size:40px; }
      .offer span { font-size:13px; }
      .hero__trust { flex-direction:column; white-space:normal; align-items:flex-start; margin-top:18px; font-size:16px; gap:8px; }
      .hero__trust span { border:0; padding:0; gap:8px; }
      .hero__trust .ic { width:14px; height:14px; }
    }

/* --- ajustes de interface (aditivos, nao alteram o desenho) --- */
    /* 'transition:.2s' no .button equivale a 'transition: all'; lista explicita */
    .button { transition-property: background-color, transform; }
    /* foco visivel consistente em todo elemento interativo */
    a:focus-visible, button:focus-visible, summary:focus-visible {
      outline: 3px solid #fff; outline-offset: 2px; border-radius: 4px;
    }
    .standard a:focus-visible, .faq summary:focus-visible, .product a:focus-visible,
    .reviews__source a:focus-visible { outline-color: var(--red); }
    /* evita atraso de 300ms no toque */
    a, button, summary { touch-action: manipulation; }
    /* ancoras (#loja, #faq, #top) nao ficam sob o topo ao rolar */
    [id] { scroll-margin-top: 24px; }
    /* titulos sem linha orfa */
    h1, h2 { text-wrap: balance; }
    /* areas full-bleed respeitam notch */
    .wa-float { right: max(18px, env(safe-area-inset-right)); bottom: max(18px, env(safe-area-inset-bottom)); }
    footer { padding-bottom: max(18px, env(safe-area-inset-bottom)); }
    /* respeita quem pediu menos movimento */
    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      * { animation-duration: .01ms !important; animation-iteration-count: 1 !important;
          transition-duration: .01ms !important; }
      .button:hover { transform: none; }
    }
