/* ===== Molto Bene — Vending Machines · stylesheet ===== */

:root{
  --brand: #70373D;
  --brand-dark: #522328;
  --brand-light: #f4e9ea;
  --ink: #1d1e20;
  --ink-soft: #55575c;
  --paper: #ffffff;
  --paper-alt: #faf6f5;
  --line: #e9e1e0;
  --ok: #2f7d4f;
  --radius: 14px;
  --radius-lg: 22px;
  --shadow: 0 10px 30px -12px rgba(112,55,61,.25);
  --shadow-sm: 0 4px 14px -6px rgba(29,30,32,.12);
  --maxw: 1180px;
  font-size: 16px;
}

*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; overflow-x: hidden; }
body{
  margin:0;
  font-family: "DM Sans", "Segoe UI", Arial, sans-serif;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  width: 100%;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration: none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ margin:0 0 .5em; font-weight:700; letter-spacing:-.01em; text-wrap: balance; }
h1, h2.section-title, .cta-box h2, .price-card h3, .step-body h3, .hero-badge .num{ font-family: "Newsreader", "DM Sans", serif; font-optical-sizing: auto; }
h1{ font-weight: 600; letter-spacing: -.02em; }
h2.section-title{ font-weight: 600; }
p{ margin:0 0 1em; }
.container{ max-width: var(--maxw); margin:0 auto; padding: 0 24px; }
section{ padding: 88px 0; }
@media (max-width: 720px){ section{ padding: 56px 0; } }

/* ---------- scroll reveal (progressive enhancement: JS adds .reveal at runtime,
   so content stays visible if JS never runs) ---------- */
.reveal{
  opacity: 0; transform: translateY(22px);
  transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1);
  transition-delay: calc(var(--i, 0) * 70ms);
}
.reveal.in-view{ opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce){
  .reveal{ transition: none; opacity: 1; transform: none; }
}


h2.section-title{ font-size: clamp(1.7rem, 3vw, 2.4rem); max-width: 720px; }
.section-sub{ color: var(--ink-soft); max-width: 620px; font-size: 1.05rem; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding: 14px 26px; border-radius: 999px; font-weight:700; font-size:.98rem;
  border: 2px solid transparent; cursor:pointer; transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  white-space: nowrap;
}
.btn:hover{ transform: translateY(-2px); }
.btn:active{ transform: translateY(0) scale(.97); transition-duration: .08s; }
.btn-primary{ background: var(--brand); color:#fff; box-shadow: var(--shadow); }
.btn-primary:hover{ background: var(--brand-dark); }
.btn-outline{ background: transparent; border-color: var(--brand); color: var(--brand); }
.btn-outline:hover{ background: var(--brand-light); }
.btn-ghost{ background: rgba(255,255,255,.15); border-color: rgba(255,255,255,.6); color:#fff; backdrop-filter: blur(4px); }
.btn-ghost:hover{ background: rgba(255,255,255,.28); }
.btn-block{ width:100%; }
.btn-sm{ padding: 10px 18px; font-size:.88rem; }

/* ---------- header ---------- */
.site-header{
  position: sticky; top:0; z-index: 50;
  background: rgba(255,255,255,.98);
  border-bottom: 1px solid var(--line);
}
.site-header .container{ display:flex; align-items:center; justify-content:space-between; gap: 24px; height: 78px; }
.brand{ display:flex; align-items:center; gap:10px; }
.brand img{ height: 30px; width:auto; }
.main-nav{ display:flex; align-items:center; gap: 30px; }
.main-nav a{ font-weight:600; font-size:.95rem; color: var(--ink-soft); padding: 6px 0; border-bottom: 2px solid transparent; }
.main-nav a:hover, .main-nav a.active{ color: var(--brand); border-color: var(--brand); }
.header-actions{ display:flex; align-items:center; gap:14px; }
.header-actions .btn{ padding: 11px 20px; font-size:.9rem; }
.nav-toggle{ display:none; background:none; border:none; cursor:pointer; padding:6px; }
.nav-toggle svg{ width:26px; height:26px; }

@media (max-width: 900px){
  .main-nav{
    position: fixed; inset: 78px 0 0 0; background: #fff; flex-direction:column; align-items:flex-start;
    padding: 28px 24px; gap: 6px; transform: translateX(100%); transition: transform .25s ease;
    overflow-y:auto;
  }
  .main-nav.open{ transform: translateX(0); }
  .main-nav a{ width:100%; padding: 14px 0; border-bottom: 1px solid var(--line); font-size:1.05rem; }
  .nav-toggle{ display:block; }
  .header-actions .btn-outline{ display:none; }
}

/* ---------- language switcher ---------- */
.lang-switch{ display:flex; align-items:center; gap:2px; font-size:.78rem; font-weight:700; letter-spacing:.02em; }
.lang-switch a, .lang-switch span{ padding:4px 6px; border-radius:6px; color: var(--ink-soft); }
.lang-switch a:hover{ color: var(--brand); background: var(--brand-light); }
.lang-switch span.current{ color: var(--brand); }
.lang-switch .sep{ color: var(--line); padding:0; }
@media (max-width: 900px){
  .header-actions .lang-switch{ display:none; }
  .main-nav .lang-switch{
    display:flex; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line);
    font-size:.85rem; gap:4px;
  }
}
@media (min-width: 901px){
  .main-nav .lang-switch{ display:none; }
}

/* ---------- trust bar ---------- */
.trust-bar{ background: var(--brand); color:#fff; padding: 12px 0; }
.trust-bar .container{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap: 10px 28px; text-align:center; }
.trust-bar strong{ font-weight:700; }
.trust-bar .tags{ display:flex; flex-wrap:wrap; gap: 8px 18px; font-size:.92rem; opacity:.95; }
.trust-bar .tags b{ font-weight:700; }

/* ---------- hero ---------- */
.hero{
  position:relative; overflow:hidden;
  background: linear-gradient(180deg, var(--paper-alt), #fff);
  padding: 76px 0 90px;
}
.hero .container{ display:grid; grid-template-columns: 1.1fr .9fr; gap: 56px; align-items:center; }
.hero-copy, .hero-media{ min-width: 0; }
.hero h1{ font-size: clamp(2.1rem, 4.2vw, 3.4rem); line-height:1.08; }
.hero h1 span{ color: var(--brand); }
.hero-lead{ font-size: 1.15rem; color: var(--ink-soft); max-width: 520px; }
.hero-ctas{ display:flex; flex-wrap:wrap; gap: 14px; margin-top: 28px; }
.hero-media{ position:relative; border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow); aspect-ratio: 4/5; background:#111; }
.hero-media video{ width:100%; height:100%; object-fit: cover; }
.hero-badges{ display:flex; gap: 22px; margin-top: 34px; flex-wrap:wrap; }
.hero-badge{ display:flex; align-items:center; gap:10px; }
.hero-badge .num{ font-size:1.5rem; font-weight:800; color: var(--brand); }
.hero-badge .lbl{ font-size:.82rem; color: var(--ink-soft); line-height:1.2; }
@media (max-width: 900px){ .hero .container{ grid-template-columns: 1fr; } .hero-media{ order:-1; aspect-ratio: 16/10; } }

/* ---------- comparativo ---------- */
.compare{ background: var(--paper-alt); }
.compare-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 40px; }
.compare-card{ background:#fff; border-radius: var(--radius-lg); padding: 32px; border: 1px solid var(--line); }
.compare-card.win{ background: var(--brand-light); border-color: transparent; box-shadow: var(--shadow); position:relative; }
.compare-card.win::before{ content:"Molto Bene"; position:absolute; top:-13px; left:28px; background: var(--brand); color:#fff; font-size:.72rem; font-weight:700; padding:4px 12px; border-radius:999px; letter-spacing:.04em; }
.compare-card h3{ font-size:1.15rem; color: var(--ink-soft); }
.compare-card.win h3{ color: var(--brand); }
.compare-list li{ display:flex; align-items:flex-start; gap:10px; padding: 9px 0; border-top: 1px solid var(--line); font-size:.96rem; }
.compare-list li:first-child{ border-top:none; }
.compare-list .ico{ flex:none; width:20px; height:20px; margin-top:2px; }
.compare-card:not(.win) .ico{ color:#bbb; }
.compare-card.win .ico{ color: var(--ok); }
@media (max-width: 760px){ .compare-grid{ grid-template-columns:1fr; } }

/* ---------- segments — editorial list, not another icon-card grid ---------- */
.segments-list{ margin-top: 36px; border-top: 1px solid var(--line); }
.segment-row{
  display:grid; grid-template-columns: 260px 1fr; align-items:baseline; gap: 28px;
  padding: 24px 0; border-bottom: 1px solid var(--line);
}
.segment-row h4{ font-size:1.15rem; margin:0; }
.segment-row p{ font-size:.95rem; color: var(--ink-soft); margin:0; }
@media (max-width: 760px){
  .segment-row{ grid-template-columns: 1fr; gap: 6px; }
}

/* ---------- revenue split ---------- */
.revenue{ background: var(--brand); color:#fff; position:relative; overflow:hidden; }
.revenue::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background: radial-gradient(120% 90% at 100% 0%, rgba(255,255,255,.10), transparent 60%),
              radial-gradient(90% 70% at 0% 100%, rgba(0,0,0,.18), transparent 65%);
}
.revenue .container{ display:grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items:center; }
.revenue h2{ color:#fff; }
.revenue p{ color: rgba(255,255,255,.85); }
.revenue-figs{ display:grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.revenue-fig{ background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); border-radius: var(--radius); padding: 24px; }
.revenue-fig .n{ font-size:1.8rem; font-weight:800; display:block; margin-bottom:6px; }
.revenue-fig .t{ font-size:.9rem; color: rgba(255,255,255,.8); }
@media (max-width: 820px){ .revenue .container{ grid-template-columns:1fr; } }

/* ---------- return calculator ---------- */
.calc{ background: var(--paper-alt); }
.calc-panel{
  margin-top: 40px; background:#fff; border-radius: var(--radius-lg); border: 1px solid var(--line);
  display:grid; grid-template-columns: 1.1fr .9fr; box-shadow: var(--shadow-sm);
}
.calc-inputs{ padding: 40px; display:flex; flex-direction:column; gap: 26px; }
.calc-field label{ display:block; font-weight:700; font-size:.92rem; margin-bottom: 10px; }
.calc-field output{ display:block; margin-top: 8px; font-weight:700; color: var(--brand); font-size:.95rem; }
.calc-field input[type="range"]{
  width:100%; -webkit-appearance:none; appearance:none; height:4px; border-radius:999px;
  background: var(--line); outline:none;
}
.calc-field input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none; width:20px; height:20px; border-radius:50%; background: var(--brand);
  border: 3px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,.3); cursor:pointer;
}
.calc-field input[type="range"]::-moz-range-thumb{
  width:20px; height:20px; border-radius:50%; background: var(--brand); border: 3px solid #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,.3); cursor:pointer;
}
.calc-field select{ width:100%; padding: 12px 14px; border-radius: 10px; border: 1px solid var(--line); font-family: inherit; font-size:.95rem; background: var(--paper-alt); }
.calc-assumption{ font-size:.82rem; color: var(--ink-soft); margin:0; padding-top: 4px; border-top: 1px solid var(--line); }
.calc-results{ background: var(--brand); color:#fff; border-radius: 0 var(--radius-lg) var(--radius-lg) 0; padding: 40px; display:flex; flex-direction:column; justify-content:center; gap: 26px; }
.calc-stat{ display:flex; flex-direction:column; gap:4px; }
.calc-stat .calc-label{ font-size:.82rem; color: rgba(255,255,255,.72); }
.calc-stat .calc-value{ font-family: "DM Sans", sans-serif; font-size: 2rem; font-weight:700; letter-spacing:-.01em; font-variant-numeric: proportional-nums; }
.calc-stat + .calc-stat{ padding-top: 22px; border-top: 1px solid rgba(255,255,255,.18); }
.calc-disclaimer{ font-size:.82rem; color: var(--ink-soft); margin-top: 18px; max-width: 70ch; }
@media (max-width: 820px){
  .calc-panel{ grid-template-columns: 1fr; }
  .calc-results{ border-radius: 0 0 var(--radius-lg) var(--radius-lg); }
  .calc-inputs{ padding: 28px; }
}

/* ---------- fx dashboard (it/en pages only — js/currency.js) ---------- */
.fx-card{
  margin-top: 8px; background:#fff; border:1px solid var(--line); border-radius: var(--radius-lg);
  padding: 28px 32px; display:grid; grid-template-columns: auto 1fr auto; gap: 32px; align-items:center;
  box-shadow: var(--shadow-sm);
}
.fx-info{ display:flex; flex-direction:column; gap:2px; min-width:150px; }
.fx-info .fx-label{ font-size:.78rem; font-weight:700; color: var(--ink-soft); text-transform:uppercase; letter-spacing:.04em; }
.fx-value{ font-family:"DM Sans",sans-serif; font-size:2rem; font-weight:800; color: var(--brand); line-height:1.1; }
.fx-sub{ font-size:.82rem; color: var(--ink-soft); }
.fx-chart{ display:flex; flex-direction:column; gap:6px; min-width:0; }
.fx-chart-label{ font-size:.72rem; color: var(--ink-soft); }
.fx-sparkline{ width:100%; max-width:240px; height:48px; display:block; }
.fx-meta{ display:flex; flex-direction:column; gap:4px; text-align:right; font-size:.72rem; color: var(--ink-soft); max-width:190px; }
.fx-source{ opacity:.75; }
@media (max-width: 760px){
  .fx-card{ grid-template-columns: 1fr; text-align:left; gap:18px; padding: 26px; }
  .fx-meta{ text-align:left; max-width:none; }
  .fx-sparkline{ max-width:none; }
}

/* ---------- social proof / gallery ---------- */
.proof-grid{ display:grid; grid-template-columns: repeat(5, 1fr); gap: 16px; margin-top: 40px; }
.proof-card{ position:relative; border-radius: var(--radius); overflow:hidden; aspect-ratio: 3/4; box-shadow: var(--shadow-sm); }
.proof-card img{ width:100%; height:100%; object-fit:cover; transition: transform .35s ease; }
.proof-card:hover img{ transform: scale(1.06); }
.proof-card .tag{ position:absolute; left:10px; bottom:10px; right:10px; background: rgba(29,30,32,.72); color:#fff; font-size:.78rem; font-weight:600; padding: 8px 10px; border-radius: 9px; backdrop-filter: blur(3px); }
@media (max-width: 980px){ .proof-grid{ grid-template-columns: repeat(3,1fr); } }
@media (max-width: 600px){ .proof-grid{ grid-template-columns: repeat(2,1fr); } }

.proof-note{ background:#fff; border:1px dashed var(--brand); border-radius: var(--radius); padding: 20px 24px; margin-top: 30px; font-size:.95rem; color: var(--ink-soft); }
.proof-note b{ color: var(--brand); }

/* ---------- payment partner video (produtos.html) ---------- */
.payment-layout{ display:grid; grid-template-columns: 1.1fr .9fr; gap: 54px; align-items:center; }
.payment-video{ width:100%; max-width:300px; aspect-ratio: 9/16; margin:0 auto; border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow); background: var(--ink); }
.payment-video iframe{ width:100%; height:100%; border:0; display:block; }
@media (max-width: 900px){ .payment-layout{ grid-template-columns:1fr; } .payment-video{ order:-1; } }

/* ---------- remote monitoring panel (produtos.html) ---------- */
.monitor-layout{ display:grid; grid-template-columns: .9fr 1.1fr; gap: 54px; align-items:center; }
.monitor-panel{
  background: var(--ink); color:#fff; border-radius: var(--radius-lg); padding: 28px;
  box-shadow: var(--shadow); display:flex; flex-direction:column; gap: 22px;
}
.monitor-head{ display:flex; align-items:center; gap:10px; font-weight:700; font-size:.95rem; }
.monitor-dot{ width:9px; height:9px; border-radius:50%; background:#3ddc84; box-shadow: 0 0 0 0 rgba(61,220,132,.6); animation: monitor-pulse 2.2s ease-out infinite; }
@keyframes monitor-pulse{
  0%{ box-shadow: 0 0 0 0 rgba(61,220,132,.55); }
  70%{ box-shadow: 0 0 0 8px rgba(61,220,132,0); }
  100%{ box-shadow: 0 0 0 0 rgba(61,220,132,0); }
}
@media (prefers-reduced-motion: reduce){ .monitor-dot{ animation: none; } }
.monitor-clock{ margin-left:auto; font-variant-numeric: tabular-nums; color: rgba(255,255,255,.6); font-weight:600; font-size:.85rem; }
.monitor-stats{ display:grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.monitor-stat{ background: rgba(255,255,255,.06); border-radius: var(--radius); padding: 14px; display:flex; flex-direction:column; gap:4px; }
.monitor-stat .v{ font-family:"DM Sans",sans-serif; font-size:1.4rem; font-weight:700; }
.monitor-stat .l{ font-size:.72rem; color: rgba(255,255,255,.6); }
.monitor-stat--alert .v{ color:#ffb15c; }
.monitor-chart{ display:flex; flex-direction:column; gap:8px; }
.monitor-chart-label{ font-size:.78rem; color: rgba(255,255,255,.6); }
.monitor-sparkline{ width:100%; height:56px; display:block; }
.monitor-products{ display:flex; flex-direction:column; gap:10px; }
.monitor-product{ display:grid; grid-template-columns: 96px 1fr; align-items:center; gap:10px; font-size:.78rem; color: rgba(255,255,255,.75); }
.monitor-product .bar{ height:6px; border-radius:999px; background: rgba(255,255,255,.12); overflow:hidden; }
.monitor-product .bar span{ display:block; height:100%; background: #fff; border-radius:inherit; }
.monitor-note{ font-size:.72rem; color: rgba(255,255,255,.45); text-align:center; }
@media (max-width: 900px){ .monitor-layout{ grid-template-columns:1fr; } }

/* ---------- CTA banner ---------- */
.cta-banner{ background: var(--paper-alt); }
.cta-box{ background: var(--ink); color:#fff; border-radius: var(--radius-lg); padding: 56px; display:flex; align-items:center; justify-content:space-between; gap: 30px; flex-wrap:wrap; position:relative; overflow:hidden; }
.cta-box::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background: radial-gradient(80% 140% at 0% 100%, rgba(112,55,61,.55), transparent 65%);
}
.cta-box > *{ position:relative; z-index:1; }
.cta-box h2{ color:#fff; margin-bottom: 8px; font-size: clamp(1.5rem, 2.6vw, 2rem); }
.cta-box p{ color: rgba(255,255,255,.72); margin:0; }
.cta-box .ctas{ display:flex; gap:14px; flex-wrap:wrap; }

/* ---------- footer ---------- */
.site-footer{ background: #17181a; color: rgba(255,255,255,.75); padding: 60px 0 26px; }
.footer-grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; }
.footer-grid h4{ color:#fff; font-size:.92rem; text-transform:uppercase; letter-spacing:.06em; margin-bottom:16px; }
.footer-grid li{ padding: 6px 0; font-size:.92rem; }
.footer-grid a:hover{ color:#fff; }
.footer-brand img{ height:28px; margin-bottom:14px; filter: brightness(0) invert(1); }
.footer-brand p{ font-size:.88rem; max-width: 300px; color: rgba(255,255,255,.55); }
.footer-social{ display:flex; gap:12px; margin-top:14px; }
.footer-social a{ width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.25); display:flex; align-items:center; justify-content:center; }
.footer-social a:hover{ background: var(--brand); border-color: var(--brand); }
.footer-bottom{ margin-top: 46px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.12); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:.82rem; color: rgba(255,255,255,.45); }
@media (max-width: 820px){ .footer-grid{ grid-template-columns: 1fr 1fr; } }

/* ---------- whatsapp float ---------- */
.wa-float{
  position: fixed; right: 22px; bottom: 22px; z-index: 60;
  width:58px; height:58px; border-radius:50%; background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center; box-shadow: 0 10px 24px -8px rgba(0,0,0,.4);
  transition: transform .15s ease;
}
.wa-float:hover{ transform: scale(1.08); }
.wa-float svg{ width:28px; height:28px; }

/* ---------- generic page hero (inner pages) ---------- */
.page-hero{ background: var(--paper-alt); padding: 60px 0 50px; border-bottom: 1px solid var(--line); }
.page-hero h1{ font-size: clamp(1.9rem, 3.4vw, 2.7rem); max-width: 760px; }
.breadcrumbs{ font-size:.85rem; color: var(--ink-soft); margin-bottom: 16px; }
.breadcrumbs a{ color: var(--brand); }

/* ---------- product tabs ---------- */
.tabs{ display:flex; gap: 10px; margin: 40px 0 0; border-bottom: 2px solid var(--line); }
.tab-btn{ background:none; border:none; padding: 14px 22px; font-weight:700; font-size:1rem; color: var(--ink-soft); cursor:pointer; border-bottom: 3px solid transparent; margin-bottom:-2px; }
.tab-btn.active{ color: var(--brand); border-color: var(--brand); }
.tab-panel{ display:none; padding-top: 44px; }
.tab-panel.active{ display:block; }
.product-layout{ display:grid; grid-template-columns: .95fr 1.05fr; gap: 54px; align-items:flex-start; }
.product-media{ border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-sm); position:sticky; top:100px; }
.product-price{ display:flex; align-items:baseline; gap:10px; margin: 6px 0 4px; }
.product-price .val{ font-size: 2.6rem; font-weight:800; color: var(--brand); }
.product-price .cond{ color: var(--ink-soft); font-size:.9rem; }
.product-features{ margin: 26px 0; display:grid; gap: 12px; }
.product-features li{ display:flex; gap:12px; align-items:flex-start; font-size:.98rem; }
.product-features .ico{ flex:none; width:22px; height:22px; color: var(--brand); margin-top:2px; }
.product-mech{ background: var(--paper-alt); border-radius: var(--radius); padding: 20px 22px; margin: 22px 0; }
.product-mech b{ color: var(--brand); }
@media (max-width: 900px){ .product-layout{ grid-template-columns:1fr; } .product-media{ position:static; } }

/* no card boxes — grouped by a shared top rule, separated by inner dividers */
.conditions-grid{ display:grid; grid-template-columns: repeat(4,1fr); margin-top: 28px; border-top: 1px solid var(--line); }
.condition-card{ padding: 28px 22px; display:flex; flex-direction:column; gap:10px; border-left: 1px solid var(--line); }
.condition-card:first-child{ border-left:none; padding-left:0; }
.condition-card .ico{ width:26px; height:26px; color: var(--brand); }
.condition-card .t{ font-weight:700; font-size:1rem; }
.condition-card .d{ font-size:.85rem; color: var(--ink-soft); }
@media (max-width: 820px){
  .conditions-grid{ grid-template-columns: 1fr; border-top:none; }
  .condition-card{ border-left:none; border-top: 1px solid var(--line); padding: 22px 0; }
  .condition-card:first-child{ border-top:none; }
}

/* ---------- steps (como funciona) ---------- */
.steps{ counter-reset: step; margin-top: 50px; display:grid; gap: 0; }
.step{ display:grid; grid-template-columns: 70px 1fr; gap: 24px; position:relative; padding-bottom: 44px; }
.step:last-child{ padding-bottom:0; }
.step-num{ width:56px; height:56px; border-radius:50%; background: var(--brand); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:1.2rem; position:relative; z-index:1; }
.step:not(:last-child)::before{ content:""; position:absolute; left:27px; top:56px; bottom:-44px; width:2px; background: var(--line); }
.step-body h3{ font-size:1.15rem; margin-bottom:6px; }
.step-body p{ color: var(--ink-soft); margin:0; }
@media (max-width: 620px){ .step{ grid-template-columns: 46px 1fr; gap:16px; } .step-num{ width:44px; height:44px; font-size:1rem; } .step:not(:last-child)::before{ left:21px; top:44px; bottom:-44px; } }

.start-box{ background: var(--brand-light); border-radius: var(--radius-lg); padding: 40px; margin-top: 60px; display:grid; grid-template-columns: auto 1fr auto; align-items:center; gap: 24px; }
.start-box .badge{ background: var(--brand); color:#fff; font-weight:800; font-size:1.05rem; padding: 14px 20px; border-radius: var(--radius); white-space:nowrap; }
.start-box p{ margin:0; color: var(--ink-soft); }
@media (max-width: 760px){ .start-box{ grid-template-columns: 1fr; text-align:center; } }

/* ---------- FAQ ---------- */
.faq{ margin-top: 40px; border-top: 1px solid var(--line); }
.faq-item{ border-bottom: 1px solid var(--line); }
.faq-q{ width:100%; text-align:left; background:none; border:none; padding: 20px 4px; font-size:1.02rem; font-weight:700; display:flex; justify-content:space-between; align-items:center; cursor:pointer; gap: 16px; }
.faq-q .plus{ flex:none; width:22px; height:22px; color: var(--brand); transition: transform .2s ease; }
.faq-item.open .plus{ transform: rotate(45deg); }
.faq-a{ display:grid; grid-template-rows: 0fr; transition: grid-template-rows .3s ease; }
.faq-item.open .faq-a{ grid-template-rows: 1fr; }
.faq-a p{ overflow:hidden; min-height:0; padding: 0 4px 20px; color: var(--ink-soft); margin:0; }

/* ---------- onde encontrar ---------- */
.locations-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap: 22px; margin-top: 40px; }
.location-card{ background:#fff; border:1px solid var(--line); border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-sm); }
.location-card img{ width:100%; aspect-ratio: 4/3; object-fit:cover; }
.location-body{ padding: 20px 22px; }
.location-body .type{ font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color: var(--brand); margin-bottom:6px; display:block; }
.location-body h3{ font-size:1.1rem; margin-bottom:6px; }
.location-body p{ font-size:.9rem; color: var(--ink-soft); margin:0; }
@media (max-width: 900px){ .locations-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 600px){ .locations-grid{ grid-template-columns: 1fr; } }

.map-wrap{ margin-top: 46px; }
.map-wrap iframe{ display:block; width:100%; border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
#locations-map{
  width:100%; height:420px; border-radius: var(--radius-lg); box-shadow: var(--shadow-sm);
  background: var(--paper-alt); font-family: "DM Sans", sans-serif;
}
/* Leaflet's own popup chrome, restyled to match the site instead of the plugin's defaults */
.leaflet-popup-content-wrapper{ border-radius: var(--radius); box-shadow: var(--shadow); }
.leaflet-popup-content{ font-family: "DM Sans", sans-serif; margin: 14px 16px; }
.map-pin-type{ display:block; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color: var(--brand); margin-bottom:2px; }
.map-pin-name{ font-weight:700; font-size:.95rem; }
.map-note{ margin: 16px 0; color: var(--ink-soft); font-size:.92rem; max-width: 68ch; }

/* ---------- pricing / contrate ---------- */
.pricing-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 26px; margin-top: 44px; align-items:start; }
.price-card{ background:#fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 36px; position:relative; }
.price-card.featured{ border-color: var(--brand); box-shadow: var(--shadow); }
@media (min-width: 821px){ .price-card.featured{ margin-top: -18px; padding-top: 46px; padding-bottom: 46px; } }
.price-card .flag{ position:absolute; top:-13px; right:28px; background: var(--brand-dark); color:#fff; font-size:.68rem; font-weight:800; padding: 5px 14px; letter-spacing:.05em; text-transform:uppercase; border-radius: 6px; box-shadow: 0 3px 8px rgba(0,0,0,.15); }
.price-card h3{ font-size:1.3rem; }
.price-card .val{ font-size: 2.4rem; font-weight:800; color: var(--brand); margin: 10px 0 2px; }
/* live BRL→EUR/USD reference shown next to a real price (it/en pages only —
   see js/currency.js). Never the price itself, always a same-day estimate
   beside it: the real charge is always in BRL. */
.fx-approx{ display:block; font-size:.8rem; font-weight:700; color: var(--ink-soft); letter-spacing:0; margin-top:2px; }
.calc-results .fx-approx{ color: rgba(255,255,255,.75); }
.price-card .parcelas{ color: var(--ink-soft); font-size:.9rem; margin-bottom: 22px; }
.price-card .divider{ height:1px; background: var(--line); margin: 22px 0; }
@media (max-width: 820px){ .pricing-grid{ grid-template-columns:1fr; } }

.contact-layout{ display:grid; grid-template-columns: 1fr 1fr; gap: 54px; margin-top: 50px; align-items:flex-start; }
.contact-form{ background:#fff; border:1px solid var(--line); border-radius: var(--radius-lg); padding: 32px; box-shadow: var(--shadow-sm); }
.field{ margin-bottom: 18px; }
.field label{ display:block; font-size:.85rem; font-weight:700; margin-bottom:6px; }
.field input, .field select, .field textarea{
  width:100%; padding: 12px 14px; border-radius: 10px; border: 1px solid var(--line); font-family: inherit; font-size: .96rem; background: var(--paper-alt);
}
.field textarea{ resize: vertical; min-height: 90px; }
.field input:focus, .field select:focus, .field textarea:focus{ outline: 2px solid var(--brand); outline-offset: 1px; background:#fff; }
.trust-mini{ display:flex; gap: 14px; margin-top: 26px; flex-wrap:wrap; }
.trust-mini .item{ display:flex; align-items:center; gap:8px; font-size:.85rem; color: var(--ink-soft); }
.trust-mini .ico{ width:18px; height:18px; color: var(--ok); flex:none; }
.contact-info .info-row{ display:flex; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.contact-info .info-row .ico{ width:22px; height:22px; color: var(--brand); flex:none; margin-top:2px; }
.contact-info .info-row h4{ margin: 0 0 4px; font-size:.98rem; }
.contact-info .info-row p{ margin:0; color: var(--ink-soft); font-size:.9rem; }
@media (max-width: 900px){ .contact-layout{ grid-template-columns: 1fr; } }

/* safety net: grid/flex children default to min-width:auto, which can force
   overflow when content (video/img/long text) has a large intrinsic size */
.compare-grid > *, .revenue .container > *, .product-layout > *, .contact-layout > *,
.segments-grid > *, .locations-grid > *, .proof-grid > *, .pricing-grid > *,
.conditions-grid > *, .footer-grid > *, .steps, .step,
.calc-panel > *, .monitor-layout > *, .payment-layout > *{ min-width: 0; }

/* utility */
.text-center{ text-align:center; }
.mt-lg{ margin-top: 40px; }
.badge-soft{ display:inline-block; background: var(--brand-light); color: var(--brand); font-size:.78rem; font-weight:700; padding: 5px 12px; border-radius:999px; }
