/* ═══════════════════════════════════════════════════════════
   SolVivo — assets/style.css
   Solar Care, Algarve Crafted
   Reconstructed to match the live 9-page site (Aug 2026)
   ═══════════════════════════════════════════════════════════ */

/* ── TOKENS ── */
:root{
  --cream:#FEFBF8;
  --cream-deep:#F7EFE1;
  --gold:#C38A21;
  --gold-bright:#F1BA17;
  --deep:#1E3A1A;
  --deep-2:#16290F;
  --olive:#40580C;
  --charcoal:#2B2A22;
  --white:#FFFFFF;
  --line:rgba(43,42,34,0.12);
  --mid:#7A7867;

  --radius-card:10px;
  --radius-btn:6px;
  --max:1180px;

  --shadow-soft:0 2px 10px rgba(30,58,26,0.05);
  --shadow-card:0 4px 24px rgba(30,58,26,0.07);
}

/* ── RESET ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Montserrat',sans-serif;
  background:var(--cream);
  color:var(--charcoal);
  line-height:1.65;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

.wrap{max-width:var(--max);margin:0 auto;padding:0 32px}

/* ── TYPE ── */
h1,h2,h3,h4,.h2{
  font-family:'Playfair Display',serif;
  font-weight:600;
  color:var(--deep-2);
  line-height:1.12;
  letter-spacing:-0.01em;
}
h1{font-size:clamp(2.4rem,4.6vw,3.6rem)}
h1 em,h2 em,.h2 em{font-style:italic;font-weight:500;color:var(--gold)}
.h2{font-size:clamp(1.9rem,3.2vw,2.6rem);margin-bottom:20px}
h4{font-size:1.05rem;font-weight:600;margin-bottom:8px}

.eyebrow{
  display:flex;align-items:center;gap:10px;
  font-size:0.72rem;letter-spacing:0.22em;text-transform:uppercase;
  font-weight:700;color:var(--gold);margin-bottom:16px;
}
.eyebrow::before{content:'';width:22px;height:1.5px;background:var(--gold-bright)}
.eyebrow.center{justify-content:center}
.eyebrow.center::before{display:none}

.lede{font-size:1.05rem;color:var(--mid);max-width:640px;line-height:1.7}
.lede.center{margin-left:auto;margin-right:auto;text-align:center}
p.center,.center{text-align:center}

/* ── BUTTONS ── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 28px;border-radius:var(--radius-btn);
  font-weight:700;font-size:0.95rem;
  transition:all .18s ease;white-space:nowrap;
}
.btn-gold{background:var(--gold);color:var(--cream)}
.btn-gold:hover{background:#A87A1C;transform:translateY(-1px)}
.btn-outline{background:transparent;color:var(--deep-2);border:1.5px solid var(--line)}
.btn-outline:hover{border-color:var(--gold);color:var(--gold)}
.section-dark .btn-outline,.b2b .btn-outline{color:var(--cream);border-color:rgba(254,251,248,0.3)}
.section-dark .btn-outline:hover,.b2b .btn-outline:hover{border-color:var(--gold-bright);color:var(--gold-bright)}

/* ── NAV ── */
.nav{
  position:sticky;top:0;z-index:100;
  background:rgba(254,251,248,0.92);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  max-width:var(--max);margin:0 auto;padding:16px 32px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.nav-logo img{height:46px;width:auto}
.nav-links{display:flex;align-items:center;gap:22px}
.nav-links a{font-size:0.87rem;font-weight:700;color:var(--charcoal);transition:color .15s;white-space:nowrap}
.nav-links a:hover{color:var(--gold)}
.nav-cta{display:flex;align-items:center;gap:14px}
.nav-toggle{display:none;flex-direction:column;gap:5px;width:24px}
.nav-toggle span{display:block;height:2px;background:var(--deep-2);border-radius:2px}

/* ── HERO (homepage) ── */
.hero{padding:64px 0 88px}
.hero-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:56px;align-items:center}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin:28px 0}
.hero-trust{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:8px}
.hero-trust li{
  font-size:0.82rem;font-weight:700;color:var(--olive);
  display:flex;align-items:center;gap:6px;
}
.hero-trust li::before{content:'✓';color:var(--gold)}

.sun-scene{position:relative;border-radius:var(--radius-card);overflow:hidden;background:var(--cream-deep);aspect-ratio:1/1}
.sun-scene > svg{width:100%;height:100%;display:block}
.sun-rays line{animation:ray-pulse 2.4s ease-in-out infinite}
.sun-orb{animation:orb-glow 3s ease-in-out infinite}
@keyframes ray-pulse{0%,100%{opacity:.5}50%{opacity:1}}
@keyframes orb-glow{0%,100%{opacity:1}50%{opacity:.85}}
@media (prefers-reduced-motion:reduce){.sun-rays line,.sun-orb{animation:none}}
.scene-caption{
  position:absolute;left:16px;right:16px;bottom:16px;
  background:rgba(22,41,15,0.88);color:var(--cream);
  border-radius:var(--radius-btn);padding:12px 14px;
  display:flex;gap:10px;font-size:0.78rem;line-height:1.4;
}
.scene-caption b{display:block;color:var(--gold-bright);margin-bottom:2px}

/* ── PAGE HERO (inner pages) ── */
.page-hero{padding:72px 0 60px;background:var(--cream-deep)}
.page-hero h1{margin-bottom:18px}
.page-hero .lede{margin-top:14px}

.placeholder-note{
  border:1.5px dashed var(--gold);border-radius:var(--radius-card);
  background:rgba(195,138,33,0.06);
  padding:20px;font-size:0.82rem;color:var(--mid);line-height:1.55;
  display:flex;flex-direction:column;gap:4px;
  min-height:220px;align-items:flex-start;justify-content:center;
}
.placeholder-note b{color:var(--gold);font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase}

/* ── SECTIONS ── */
.section{padding:88px 0}
.section-tight{padding:60px 0}
.section-dark{background:var(--deep-2);color:var(--cream)}
.section-dark h2,.section-dark .h2,.section-dark h4{color:var(--cream)}
.section-dark .lede{color:rgba(254,251,248,0.7)}
.section-dark .eyebrow{color:var(--gold-bright)}
.section-dark .eyebrow::before{background:var(--gold-bright)}

/* ── PROBLEM GRID ── */
.problem-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:44px}
.problem-card{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius-card);
  padding:26px 22px;
}
.problem-card .num{
  display:block;font-family:'Playfair Display',serif;font-size:1.6rem;color:var(--gold);
  margin-bottom:14px;
}
.problem-card p{font-size:0.88rem;color:var(--mid);margin-top:6px}

/* ── SERVICES GRID ── */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:44px}
.service-card{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius-card);
  padding:28px 24px;
}
.service-icon{
  width:44px;height:44px;border-radius:10px;background:var(--cream-deep);
  display:flex;align-items:center;justify-content:center;margin-bottom:16px;
}
.service-card p{font-size:0.88rem;color:var(--mid)}

/* ── COMPARE (before/after) ── */
.compare-wrap{margin-top:44px}
.compare-toggle{display:flex;justify-content:center;gap:0;margin-bottom:0;border-radius:var(--radius-btn) var(--radius-btn) 0 0;overflow:hidden}
.compare-toggle button{
  flex:1;padding:14px;font-weight:700;font-size:0.88rem;
  background:var(--white);color:var(--mid);border:1px solid var(--line);border-bottom:none;
}
.compare-toggle button.active{background:var(--deep-2);color:var(--cream)}
.compare-stage{
  position:relative;border:1px solid var(--line);border-radius:0 0 var(--radius-card) var(--radius-card);
  background:var(--white);padding:44px 40px;min-height:180px;
}
.compare-panel .tag{
  display:inline-block;font-size:0.7rem;letter-spacing:0.15em;text-transform:uppercase;
  font-weight:700;color:var(--gold);margin-bottom:12px;
}
.compare-panel.before .tag{color:#A65B2E}
.compare-panel.after .tag{color:var(--olive)}
.compare-panel h3{font-family:'Playfair Display',serif;font-size:1.4rem;margin-bottom:10px}
.compare-panel p{color:var(--mid);max-width:520px}

/* ── PROCESS ── */
.process-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:44px}
.process-step .num{
  display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:50%;
  background:var(--gold);color:var(--cream);font-family:'Playfair Display',serif;font-weight:600;
  margin-bottom:16px;
}
.process-step p{font-size:0.88rem;color:var(--mid)}

/* ── WHY GRID ── */
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:44px}
.why-card{
  background:rgba(254,251,248,0.06);border:1px solid rgba(254,251,248,0.14);
  border-radius:var(--radius-card);padding:24px 20px;
}
.section:not(.section-dark) .why-card{background:var(--cream-deep);border-color:var(--line)}
.why-card p{font-size:0.86rem;color:inherit;opacity:0.85}

/* ── PRICING ── */
.band-select{
  display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:44px;
}
.band-btn{
  padding:10px 18px;border:1.5px solid var(--line);border-radius:999px;
  font-size:0.85rem;font-weight:700;color:var(--mid);background:var(--white);
  transition:all .15s;
}
.band-btn:hover{border-color:var(--gold)}
.band-btn.active{background:var(--deep-2);border-color:var(--deep-2);color:var(--cream)}

.plans-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.plan-card{
  position:relative;background:var(--white);border:1px solid var(--line);
  border-radius:var(--radius-card);padding:30px 26px;display:flex;flex-direction:column;
}
.plan-card.featured{
  border-color:var(--gold);box-shadow:var(--shadow-card);
  background:linear-gradient(180deg,rgba(241,186,23,0.06),transparent 40%);
}
.plan-badge{
  position:absolute;top:-13px;left:26px;
  background:var(--gold-bright);color:var(--deep-2);
  font-size:0.68rem;font-weight:800;letter-spacing:0.08em;text-transform:uppercase;
  padding:6px 14px;border-radius:999px;
}
.plan-freq{font-size:0.72rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:10px}
.plan-name{font-size:1.2rem;margin-bottom:14px}
.plan-price{display:flex;align-items:baseline;gap:4px;margin-bottom:14px}
.price-val{font-family:'Playfair Display',serif;font-size:2.1rem;font-weight:600;color:var(--deep-2)}
.plan-price span:last-child{font-size:0.85rem;color:var(--mid)}
.plan-desc{font-size:0.86rem;color:var(--mid);margin-bottom:18px}
.plan-list{margin-bottom:24px;flex:1}
.plan-list li{
  font-size:0.85rem;padding:8px 0 8px 22px;position:relative;
  border-top:1px solid var(--line);color:var(--charcoal);
}
.plan-list li:first-child{border-top:none}
.plan-list li::before{content:'✓';position:absolute;left:0;color:var(--olive);font-weight:700}
.plan-card .btn{width:100%}

.addons-row{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:36px}
.addon-chip{
  background:var(--cream-deep);border:1px solid var(--line);border-radius:999px;
  padding:10px 18px;font-size:0.82rem;font-weight:700;color:var(--charcoal);
  display:flex;gap:8px;align-items:center;
}
.addon-chip span{color:var(--gold);font-weight:800}

/* ── B2B / DARK CTA BAND ── */
.b2b{background:var(--deep-2);color:var(--cream)}
.b2b h2,.b2b .h2{color:var(--cream)}
.b2b .lede{color:rgba(254,251,248,0.72)}
.b2b-list{display:grid;grid-template-columns:1fr 1fr;gap:30px 50px}
.b2b-list li{display:flex;gap:16px}
.b2b-num{
  font-family:'Playfair Display',serif;font-size:1.3rem;color:var(--gold-bright);
  flex-shrink:0;width:36px;
}
.b2b-list h4{color:var(--cream);margin-bottom:6px}
.b2b-list p{font-size:0.86rem;color:rgba(254,251,248,0.68)}

/* ── COVERAGE ── */
.coverage-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.coverage-tags span{
  padding:9px 16px;border-radius:999px;font-size:0.82rem;font-weight:700;
  background:var(--cream-deep);color:var(--mid);border:1px solid var(--line);
}
.coverage-tags span.hq{background:var(--olive);color:var(--cream);border-color:var(--olive)}

.coverage-wrap{display:grid;grid-template-columns:1fr 0.9fr;gap:50px;align-items:center}
.map-art{border-radius:var(--radius-card);overflow:hidden;aspect-ratio:1/1;background:var(--cream)}

/* ── ABOUT ── */
.about-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:56px;align-items:center}
.about-photo{aspect-ratio:4/5}
.about-photo .placeholder-note{height:100%;min-height:100%}
.about-quote{
  font-family:'Playfair Display',serif;font-style:italic;font-size:1.3rem;
  color:var(--deep-2);margin-top:28px;padding-left:20px;border-left:3px solid var(--gold);
}
.about-signoff{margin-top:10px;font-size:0.85rem;font-weight:700;color:var(--gold);padding-left:23px}

/* ── FAQ ── */
.faq-list{max-width:780px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.faq-item{border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden;background:var(--white)}
.faq-q{
  width:100%;display:flex;justify-content:space-between;align-items:center;
  padding:20px 24px;font-weight:700;font-size:0.98rem;text-align:left;
}
.faq-item .plus{font-size:1.3rem;color:var(--gold);transition:transform .2s;flex-shrink:0;margin-left:16px}
.faq-item.open .plus{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease}
.faq-a p{padding:0 24px 20px;font-size:0.9rem;color:var(--mid)}

/* ── CONTACT ── */
.page-hero.contact{padding-bottom:80px}
section.contact{background:var(--cream)}
.contact-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:56px;align-items:flex-start}
.contact-info{padding-top:6px}
.contact-list{margin-top:26px;display:flex;flex-direction:column;gap:12px}
.contact-list li{font-size:0.9rem;color:var(--mid)}
.contact-form,.p-form-wrap,.franchise-form-wrap{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius-card);
  padding:34px;display:flex;flex-direction:column;gap:20px;
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:flex;flex-direction:column;gap:7px}
.field label{font-size:0.8rem;font-weight:700;color:var(--charcoal)}
.field input,.field select,.field textarea{
  border:1.5px solid var(--line);border-radius:var(--radius-btn);
  padding:12px 14px;font-size:0.92rem;background:var(--cream);
  transition:border-color .15s;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);outline:none}
.field textarea{resize:vertical}

/* ── PARTNERS ── */
.p-hero{padding:80px 0 64px;background:var(--cream-deep)}
.p-hero-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:56px;align-items:center}
.p-hero-art{aspect-ratio:4/5}
.p-hero-art .placeholder-note{height:100%}
.p-hero-stats{display:flex;gap:32px;margin-top:38px;flex-wrap:wrap}
.p-hero-stats div{display:flex;flex-direction:column;gap:4px}
.p-hero-stats b{font-family:'Playfair Display',serif;font-size:1.8rem;color:var(--gold)}
.p-hero-stats span{font-size:0.78rem;color:var(--mid);max-width:150px}

.types-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:44px}
.type-card{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius-card);
  padding:22px 20px;
}
.type-icon{
  width:38px;height:38px;border-radius:9px;background:var(--cream-deep);
  display:flex;align-items:center;justify-content:center;margin-bottom:14px;
}
.type-card p{font-size:0.84rem;color:var(--mid)}

/* ── FRANCHISE ── */
.franchise-hero{padding:80px 0 56px;background:var(--cream-deep);text-align:center}
.franchise-hero .eyebrow{justify-content:center}
.franchise-hero h1{text-align:center}
.franchise-hero .lede{margin:18px auto 0;text-align:center}
.franchise-stage{margin-top:26px;display:flex;justify-content:center}
.stage-badge{
  background:rgba(195,138,33,0.1);border:1px solid rgba(195,138,33,0.3);
  color:var(--gold);font-size:0.78rem;font-weight:700;padding:10px 18px;border-radius:999px;
}

/* ── FOOTER ── */
footer{background:var(--deep-2);color:rgba(254,251,248,0.75);padding:64px 0 0}
.footer-top{
  display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:48px;padding-bottom:48px;
}
.footer-top img{height:56px;width:auto;margin-bottom:14px}
.footer-top p{font-size:0.86rem;line-height:1.6;max-width:280px;color:rgba(254,251,248,0.55)}
.footer-col h5{
  color:var(--cream);font-size:0.75rem;letter-spacing:0.14em;text-transform:uppercase;
  margin-bottom:16px;font-family:'Montserrat',sans-serif;font-weight:800;
}
.footer-col ul{display:flex;flex-direction:column;gap:10px}
.footer-col a{font-size:0.88rem;transition:color .15s}
.footer-col a:hover{color:var(--gold-bright)}
.footer-bottom{
  border-top:1px solid rgba(254,251,248,0.12);padding:22px 0;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
  font-size:0.78rem;color:rgba(254,251,248,0.45);
}
.footer-bottom a{color:inherit}
.footer-bottom a:hover{color:var(--gold-bright)}
.footer-social{display:flex;gap:14px;margin-top:18px}
.footer-social a{
  width:38px;height:38px;border-radius:50%;
  background:rgba(254,251,248,0.08);border:1px solid rgba(254,251,248,0.18);
  display:flex;align-items:center;justify-content:center;
  transition:background .15s,border-color .15s;
}
.footer-social a:hover{background:var(--gold);border-color:var(--gold)}
.footer-social svg{width:17px;height:17px}

/* ── REVEAL ANIMATION ── */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:translateY(0)}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ── PRICING CHOOSER ── */
.chooser-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:16px}
.chooser-panel{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius-card);
  padding:44px 38px;display:flex;flex-direction:column;gap:16px;
  transition:border-color .18s,transform .18s,box-shadow .18s;
}
.chooser-panel:hover{border-color:var(--gold);transform:translateY(-3px);box-shadow:var(--shadow-card)}
.chooser-panel h3{font-family:'Playfair Display',serif;font-size:1.7rem;color:var(--deep-2);font-weight:600}
.chooser-panel p{color:var(--mid);font-size:0.95rem;line-height:1.65}
.chooser-panel .btn{align-self:flex-start;margin-top:8px}

/* ── PRICING DATA TABLE ── */
.pricing-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-card);margin-top:8px;-webkit-overflow-scrolling:touch}
table.pricing-table{width:100%;border-collapse:collapse;min-width:760px}
table.pricing-table th,table.pricing-table td{padding:16px 18px;text-align:left;border-bottom:1px solid var(--line)}
table.pricing-table thead th{
  background:var(--cream-deep);font-family:'Montserrat',sans-serif;font-weight:800;
  font-size:0.7rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--deep-2);
  white-space:nowrap;
}
table.pricing-table thead th .star{color:var(--gold-bright)}
table.pricing-table tbody tr:last-child td{border-bottom:none}
table.pricing-table tbody tr:hover td{background:rgba(195,138,33,0.035)}
table.pricing-table td.panels-col{font-weight:800;color:var(--deep-2);white-space:nowrap;font-size:0.92rem}
table.pricing-table td.category-col{
  font-weight:800;color:var(--cream);background:var(--olive);
  white-space:nowrap;font-size:0.78rem;letter-spacing:0.04em;
  vertical-align:middle;text-align:center;
}
table.pricing-table tbody tr:hover td.category-col{background:var(--olive)}
table.pricing-table td.visit-col{color:var(--mid);font-size:0.82rem;white-space:nowrap}
table.pricing-table .price-main{font-weight:800;color:var(--deep-2);display:block;font-size:0.95rem}
table.pricing-table .price-sub{font-size:0.74rem;color:var(--mid);display:block;margin-top:2px;font-weight:600}
table.pricing-table th.col-premium,table.pricing-table td.col-premium{background:rgba(241,186,23,0.1)}
table.pricing-table tbody tr:hover td.col-premium{background:rgba(241,186,23,0.14)}
table.pricing-table th.col-premium{color:var(--gold)}
table.pricing-table td.col-premium .price-main{color:var(--gold)}
table.pricing-table td.refresh-col .price-main{font-size:0.92rem}

.quote-banner{
  margin-top:24px;background:var(--deep-2);color:var(--cream);
  border-radius:var(--radius-card);padding:26px 30px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
}
.quote-banner p{margin:0;font-size:0.98rem;max-width:520px}
.quote-banner strong{color:var(--gold-bright)}
.quote-banner .btn{flex-shrink:0}

.pricing-footnotes{text-align:center;margin-top:26px;font-size:0.82rem;font-style:italic;color:var(--mid);line-height:1.7}
.pricing-crosslink{text-align:center;margin-top:18px;font-size:0.88rem}
.pricing-crosslink a{color:var(--olive);font-weight:700;text-decoration:underline}

.whatsapp-float{
  position:fixed;bottom:26px;right:26px;z-index:200;
  width:58px;height:58px;border-radius:50%;
  background:#25D366;box-shadow:0 4px 16px rgba(0,0,0,0.25);
  display:flex;align-items:center;justify-content:center;
  transition:transform .18s;
}
.whatsapp-float:hover{transform:scale(1.08)}
.whatsapp-float svg{width:30px;height:30px}
@media (max-width:720px){.whatsapp-float{bottom:18px;right:18px;width:52px;height:52px}.whatsapp-float svg{width:26px;height:26px}}

/* ═══════════════════════════════════════════════════════════
   STYLE GUIDE PAGE (style-guide.html base classes only —
   page-specific sg-* rules live inline on that page)
   ═══════════════════════════════════════════════════════════ */
.type-card{background:var(--white)}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════ */
@media (max-width:980px){
  .hero-grid,.p-hero-grid,.about-grid,.contact-grid,.coverage-wrap{grid-template-columns:1fr}
  .plans-grid{grid-template-columns:1fr 1fr}
  .problem-grid,.services-grid,.why-grid,.process-strip,.types-grid{grid-template-columns:1fr 1fr}
  .b2b-list{grid-template-columns:1fr}
  .footer-top{grid-template-columns:1fr}
  .chooser-grid{grid-template-columns:1fr}
}

@media (max-width:720px){
  .wrap{padding:0 20px}
  .nav-links{display:none}
  .nav-toggle{display:flex}
  .plans-grid,.problem-grid,.services-grid,.why-grid,.process-strip,.types-grid{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .p-hero-stats{gap:22px}
  .section{padding:60px 0}
  .section-tight{padding:44px 0}
  h1{font-size:2.1rem}
  .h2{font-size:1.7rem}
  .quote-banner{flex-direction:column;align-items:flex-start;text-align:left}
  .quote-banner .btn{width:100%;justify-content:center}
}

/* ═══ PROMO POPUP ═══ */
.promo-overlay{position:fixed;inset:0;background:rgba(22,41,15,0.55);display:none;z-index:999;padding:20px;opacity:0;transition:opacity .3s ease;overflow-y:auto}
.promo-overlay.show{display:block}
.promo-overlay.in{opacity:1}
.promo-modal{background:var(--cream);border-radius:14px;max-width:440px;width:100%;position:relative;box-shadow:0 20px 60px rgba(0,0,0,0.25);padding:40px 36px 34px;text-align:center;transform:translateY(16px);transition:transform .3s ease;margin:5vh auto}
.promo-overlay.in .promo-modal{transform:translateY(0)}
.promo-close{position:absolute;top:14px;right:16px;background:none;border:none;font-size:1.4rem;color:var(--mid);cursor:pointer;line-height:1;padding:6px}
.promo-close:hover{color:var(--charcoal)}
.promo-eyebrow{font-family:'Montserrat',sans-serif;font-weight:800;font-size:0.72rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
.promo-modal h3{font-family:'Playfair Display',serif;font-size:1.7rem;color:var(--deep-2);margin-bottom:12px;line-height:1.2}
.promo-modal p.promo-body{color:var(--mid);font-size:0.92rem;margin-bottom:22px;line-height:1.5}
.promo-form{display:flex;flex-direction:column;gap:10px}
.promo-form input[type=email]{padding:13px 16px;border:1px solid var(--line);border-radius:var(--radius-btn);font-family:'Montserrat',sans-serif;font-size:0.95rem;width:100%}
.promo-fine{font-size:0.72rem;color:var(--mid);margin-top:14px}
.promo-success{display:none}
.promo-success.show{display:block}
.promo-form.hide{display:none}
@media(max-width:520px){.promo-modal{padding:32px 24px 28px}.promo-modal h3{font-size:1.4rem}}

/* ═══ BEFORE/AFTER SIDE-BY-SIDE SLIDESHOW ═══ */
.compare-side-by-side{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:760px;margin:0 auto}
.compare-half{position:relative;aspect-ratio:4/3;border-radius:var(--radius-card);overflow:hidden;box-shadow:var(--shadow-card);background:var(--cream)}
.compare-half-tag{position:absolute;top:12px;left:12px;z-index:2;font-family:'Montserrat',sans-serif;font-weight:800;font-size:0.68rem;letter-spacing:0.08em;text-transform:uppercase;padding:5px 12px;border-radius:20px;color:var(--cream)}
.compare-half-tag.before{background:rgba(43,42,34,0.75)}
.compare-half-tag.after{background:var(--olive)}
.compare-slide-img{width:100%;height:100%;object-fit:cover;display:block;opacity:1;transition:opacity .35s ease}
.compare-slide-img.fading{opacity:0}
.compare-dots{margin-top:18px;display:flex;justify-content:center;gap:7px}
.compare-dots .dot{width:7px;height:7px;border-radius:50%;background:var(--line);cursor:pointer;transition:background .2s,transform .2s;border:none;padding:0}
.compare-dots .dot.active{background:var(--gold-bright);transform:scale(1.3)}
@media(max-width:640px){.compare-side-by-side{grid-template-columns:1fr;max-width:340px;gap:12px}}

/* ═══ OUR METHOD: cards left, photo right ═══ */
.method-layout{display:grid;grid-template-columns:1.15fr 0.85fr;gap:28px;margin-top:36px;align-items:stretch}
.method-cards{grid-template-columns:1fr 1fr;margin-top:0;gap:14px}
.method-cards .service-card{padding:18px 16px}
.method-cards .service-icon{width:34px;height:34px;margin-bottom:10px}
.method-cards .service-card h4{font-size:0.92rem;margin-bottom:6px}
.method-cards .service-card p{font-size:0.8rem;line-height:1.5}
.method-photo{border-radius:var(--radius-card);overflow:hidden;min-height:100%}
@media(max-width:860px){
  .method-layout{grid-template-columns:1fr}
  .method-photo{aspect-ratio:4/3}
}
@media(max-width:520px){
  .method-cards{grid-template-columns:1fr}
}

/* ═══ COOKIE CONSENT BANNER ═══ */
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:998;background:var(--deep-2);color:var(--cream);padding:18px 24px;display:none;box-shadow:0 -4px 20px rgba(0,0,0,0.15)}
.cookie-banner.show{display:block}
.cookie-banner-inner{max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.cookie-banner p{font-size:0.85rem;color:rgba(254,251,248,0.85);margin:0;max-width:640px}
.cookie-banner a{color:var(--gold-bright);text-decoration:underline}
.cookie-banner-actions{display:flex;gap:10px;flex-shrink:0}
.cookie-banner-actions button{font-family:'Montserrat',sans-serif;font-weight:700;font-size:0.82rem;padding:10px 20px;border-radius:var(--radius-btn);cursor:pointer;border:none}
.cookie-accept{background:var(--gold-bright);color:var(--deep-2)}
.cookie-decline{background:transparent;color:var(--cream);border:1px solid rgba(254,251,248,0.35) !important}

/* ═══ LANGUAGE TOGGLE ═══ */
.lang-toggle{display:flex;align-items:center;border:1px solid var(--line);border-radius:20px;overflow:hidden;font-family:'Montserrat',sans-serif;font-weight:700;font-size:0.75rem;margin-right:4px}
.lang-toggle a{padding:7px 12px;color:var(--mid);text-decoration:none;letter-spacing:0.03em}
.lang-toggle a.active{background:var(--deep-2);color:var(--cream)}
.lang-toggle a:not(.active):hover{color:var(--charcoal)}

/* ═══ PERSISTENT PROMO REMINDER TAB ═══ */
.promo-tab{position:fixed;left:0;bottom:100px;z-index:900;background:var(--gold-bright);color:var(--deep-2);font-family:'Montserrat',sans-serif;font-weight:800;font-size:0.8rem;padding:12px 18px 12px 14px;border-radius:0 24px 24px 0;box-shadow:0 4px 16px rgba(0,0,0,0.18);cursor:pointer;display:flex;align-items:center;gap:6px;transition:transform .2s ease,padding .2s ease}
.promo-tab:hover{transform:translateX(4px);background:var(--gold)}
@media(max-width:520px){.promo-tab{bottom:84px;font-size:0.72rem;padding:10px 14px 10px 10px}}
