:root{
  --bg:#f7f7f4;
  --ink:#14151a;
  --muted:#5b5f6b;
  --muted-2:#8a8d97;
  --line:#e3e2dc;
  --red:#e13a2e;
  --blue:#20409f;
  --panel:#0f1224;
  --panel-ink:#f3f3f1;
  --panel-muted:#a9acc0;
  --gradient: linear-gradient(100deg, var(--red) 0%, #8a2e73 46%, var(--blue) 100%);
  --maxw:1180px;
}

/* =========================================================
   MOBILE-FIRST BASE
   ========================================================= */

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  font-size:15.5px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.disp{
  font-family:'Sora',sans-serif;
  font-weight:700;
  letter-spacing:-0.02em;
  margin:0;
  color:var(--ink);
}
p{margin:0;}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
section{position:relative;}
button{font:inherit;}

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

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

a:focus-visible, button:focus-visible{
  outline:2px solid var(--blue);
  outline-offset:3px;
  border-radius:2px;
}

@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important; scroll-behavior:auto !important;}
}

/* skip link */
.skip-link{
  position:absolute; left:-999px; top:auto;
  background:var(--ink); color:#fff; padding:10px 16px; z-index:100;
}
.skip-link:focus{ left:16px; top:16px; }

/* ---------- Header ---------- */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(247,247,244,0.92);
  backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--line);
}
.headbar{
  display:flex; align-items:center; justify-content:space-between;
  gap:12px;
  padding:12px 20px;
  max-width:var(--maxw); margin:0 auto;
}
.brand{display:flex; align-items:center; gap:11px; flex-shrink:0;}
.brand .word{height:20px; width:auto;}

.nav-toggle{
  display:inline-flex; align-items:center; justify-content:center;
  width:42px; height:42px;
  padding:0;
  background:none; border:1px solid var(--line); border-radius:4px;
  cursor:pointer; flex-shrink:0;
}
.nav-toggle .hamburger{ display:block; overflow:visible; }
.nav-toggle .bar{
  fill:var(--ink);
  transition:transform .2s ease, opacity .2s ease;
  transform-origin:12px 12px;
}
.nav-toggle.active .bar:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.nav-toggle.active .bar:nth-child(2){ opacity:0; }
.nav-toggle.active .bar:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

nav.primary{ display:none; }

.mobile-menu{
  max-height:0; overflow:hidden;
  transition:max-height .25s ease;
  background:var(--bg);
  border-top:0 solid var(--line);
}
.mobile-menu.open{
  max-height:420px;
  border-top:1px solid var(--line);
}
.mobile-menu a{
  display:block;
  padding:16px 20px;
  font-size:15.5px; font-weight:500; color:var(--ink);
  border-bottom:1px solid var(--line);
}
.mobile-menu a.nav-cta{
  margin:16px 20px 20px;
  text-align:center;
  border-bottom:none;
  background:var(--ink); color:#fff;
  border-radius:3px;
  padding:14px 20px;
}

/* ---------- Buttons ---------- */
.btn-primary{
  display:flex; align-items:center; justify-content:center; gap:8px;
  width:100%;
  padding:15px 22px;
  background:var(--gradient);
  color:#fff; font-weight:600; font-size:15.5px;
  border-radius:3px;
  border:none; cursor:pointer;
}
.btn-ghost{
  display:flex; align-items:center; justify-content:center;
  width:100%;
  padding:14px 22px;
  border:1px solid var(--line);
  color:var(--ink); font-weight:600; font-size:15.5px;
  border-radius:3px;
  transition:border-color .15s ease, background .15s ease;
}
.btn-ghost:hover{border-color:var(--ink); background:#fff;}

/* ---------- Hero ---------- */
.hero{
  padding:44px 0 40px;
  border-bottom:1px solid var(--line);
  overflow:hidden;
}
.hero .wrap{
  display:flex;
  flex-direction:column;
  gap:36px;
}
.kicker{
  font-size:14px; color:var(--muted); font-weight:500;
  margin-bottom:18px;
  max-width:34ch;
}
.kicker .dot{color:var(--red);}
h1.hero-head{
  font-size:clamp(1.9rem, 8vw, 3.6rem);
  line-height:1.08;
  max-width:17ch;
}
.hero-sub{
  margin-top:18px;
  font-size:16px;
  color:var(--muted);
  max-width:46ch;
}
.hero-actions{
  margin-top:26px;
  display:flex; flex-direction:column; gap:12px;
}
.hero-microcopy{
  margin-top:14px;
  font-size:13px;
  color:var(--muted-2);
}
.hero-proof{
  margin-top:30px;
  display:flex; flex-direction:column; gap:14px;
  border-top:1px solid var(--line);
  padding-top:20px;
}
.hero-proof div{ font-size:13.5px; color:var(--muted-2); }
.hero-proof strong{
  display:block; font-family:'Sora',sans-serif; font-size:1.4rem; color:var(--ink);
  font-weight:700; letter-spacing:-0.01em;
}
.hero-visual{ display:flex; align-items:flex-end; justify-content:center; }
.skyline{ width:100%; height:auto; max-width:320px; }

/* ---------- Section headings ---------- */
.section-head{ margin-bottom:34px; }
.section-head h2{
  font-size:clamp(1.5rem, 6vw, 2.3rem);
  line-height:1.15;
}
.section-head p{
  margin-top:14px;
  color:var(--muted);
  font-size:15.5px;
  max-width:50ch;
}

/* ---------- Services ---------- */
.services{ padding:52px 0; border-bottom:1px solid var(--line); }
.service-row{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:20px 0;
  border-top:1px solid var(--line);
}
.services .service-row:last-child{ border-bottom:1px solid var(--line); }
.service-row h3{
  font-size:17px;
  display:flex; align-items:center; gap:10px;
}
.service-row h3 .mark{
  width:8px; height:8px; border-radius:50%;
  background:var(--gradient); flex-shrink:0;
}
.service-row .tag{
  font-size:12.5px; color:var(--muted-2); font-weight:500;
  white-space:nowrap;
}

/* ---------- Pricing: two anchor-priced packages ---------- */
.pricing{ padding:52px 0; border-bottom:1px solid var(--line); }
.pkg-frame{
  background:#fbfaf8;
  border:1px solid var(--line);
  border-radius:14px;
  padding:16px;
}
.pkg-grid{ display:flex; flex-direction:column; }
.pkg-or{
  display:flex; align-items:center; justify-content:center;
  padding:6px 0;
}
.pkg-or span{
  width:34px; height:34px; border-radius:50%;
  background:#fff; border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  font-size:11.5px; font-weight:700; color:var(--muted-2);
  flex-shrink:0;
}
.pkg-card{
  position:relative;
  display:flex; flex-direction:column;
  border:1px solid var(--line); border-radius:10px;
  padding:26px 22px;
  background:#fff;
}
.pkg-card.featured{
  border:2px solid var(--ink);
}
.pkg-ribbon{
  display:inline-block; align-self:flex-start;
  margin:-38px 0 14px;
  background:var(--gradient); color:#fff;
  font-size:11px; font-weight:700; letter-spacing:0.04em; text-transform:uppercase;
  padding:5px 12px; border-radius:20px;
}
.pkg-badge{
  display:inline-block; align-self:flex-start;
  font-size:12px; font-weight:700; color:var(--muted-2);
  text-transform:uppercase; letter-spacing:0.05em;
  margin-bottom:12px;
}
.pkg-card.featured .pkg-badge{ color:var(--blue); }
.pkg-desc{
  font-size:14.5px; color:var(--muted);
  max-width:42ch;
}
.price-row{
  margin-top:18px;
  display:flex; align-items:baseline; gap:10px; flex-wrap:wrap;
}
.price-old{
  font-size:15px; color:var(--muted-2);
  text-decoration:line-through;
  text-decoration-color:var(--red);
  text-decoration-thickness:1.5px;
}
.price-new{
  font-family:'Sora',sans-serif; font-weight:800; font-size:1.9rem;
  color:var(--ink); letter-spacing:-0.02em;
}
.price-discount{
  display:inline-block; align-self:flex-start;
  margin-top:10px;
  font-size:12.5px; font-weight:700; color:#fff;
  background:var(--gradient);
  padding:4px 11px; border-radius:20px;
}
.pkg-list{ list-style:none; margin:20px 0 0; padding:0; display:flex; flex-direction:column; gap:10px;}
.pkg-list li{ font-size:14px; color:var(--ink); padding-left:18px; position:relative;}
.pkg-list li::before{
  content:""; position:absolute; left:0; top:7px; width:7px; height:7px;
  background:var(--gradient); border-radius:50%;
}
.pkg-card .cta{
  margin-top:24px;
  display:flex; align-items:center; justify-content:center;
  padding:14px 20px; background:var(--ink); color:#fff; font-weight:600; font-size:14.5px;
  border-radius:3px; width:100%;
}
.pkg-card.featured .cta{ background:var(--gradient); }

/* ---------- Contact ---------- */
.contact{ padding:56px 0; }
.contact .wrap{ display:flex; flex-direction:column; gap:28px; }
.contact h2{
  font-size:clamp(1.6rem,6.5vw,2.5rem);
  line-height:1.15;
}
.contact .sub{ margin-top:14px; color:var(--muted); font-size:15.5px; max-width:44ch; }
form{ display:flex; flex-direction:column; gap:16px; }
.field{ display:flex; flex-direction:column; gap:6px; }
.field label{ font-size:13px; color:var(--muted); font-weight:500; }
.field input, .field textarea, .field select{
  border:1px solid var(--line); border-radius:3px;
  padding:13px 14px;
  font-family:'Inter',sans-serif;
  font-size:16px; /* prevents iOS Safari auto-zoom on focus */
  background:#fff; color:var(--ink);
  width:100%;
}
.field input:focus, .field textarea:focus, .field select:focus{
  outline:2px solid var(--blue); outline-offset:1px; border-color:var(--blue);
}
form .btn-primary{ margin-top:6px; }
.form-note{ font-size:13px; color:var(--muted-2); }

/* ---------- WhatsApp CTA ---------- */
.btn-whatsapp{
  display:flex; align-items:center; justify-content:center; gap:8px;
  width:100%;
  padding:14px 22px;
  background:#1fae5a;
  color:#fff; font-weight:600; font-size:15.5px;
  border-radius:3px;
  border:none;
  white-space:nowrap;
}
.btn-whatsapp svg{ width:18px; height:18px; flex-shrink:0; }

/* ---------- Sticky mobile quote bar ---------- */
.sticky-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:60;
  display:flex; gap:10px;
  padding:10px 14px;
  padding-bottom:calc(10px + env(safe-area-inset-bottom));
  background:rgba(247,247,244,0.96);
  backdrop-filter:saturate(140%) blur(10px);
  border-top:1px solid var(--line);
}
.sticky-cta a{
  flex:1;
  display:flex; align-items:center; justify-content:center; gap:8px;
  padding:13px 14px;
  border-radius:3px;
  font-weight:600; font-size:14.5px;
  white-space:nowrap;
}
.sticky-cta .quote{ background:var(--gradient); color:#fff; flex:1.4; }
.sticky-cta .wa{ background:#1fae5a; color:#fff; flex:1; }
.sticky-cta svg{ width:17px; height:17px; }
.sticky-cta-spacer{ height:66px; }

/* ---------- FAQ accordion ---------- */
.faq{ padding:52px 0; border-bottom:1px solid var(--line); }
.faq-list{ display:flex; flex-direction:column; }
.faq-item{ border-top:1px solid var(--line); }
.faq-list .faq-item:last-child{ border-bottom:1px solid var(--line); }
.faq-item summary{
  position:relative;
  list-style:none;
  cursor:pointer;
  padding:20px 40px 20px 0;
  font-family:'Sora',sans-serif; font-weight:600; font-size:15.5px; color:var(--ink);
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary .plus{
  position:absolute; top:50%; right:0;
  transform:translateY(-50%);
  flex-shrink:0;
  width:22px; height:22px;
  border:1px solid var(--line); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:15px; color:var(--muted);
  transition:transform .15s ease;
}
.faq-item[open] summary .plus{ transform:translateY(-50%) rotate(45deg); }
.faq-item p{ color:var(--muted); font-size:14.5px; padding-bottom:20px; max-width:60ch; }

/* ---------- Footer ---------- */
footer{ background:var(--panel); color:var(--panel-muted); padding:44px 0 28px; }
.foot-top{
  display:flex; flex-direction:column; gap:32px;
  padding-bottom:32px;
  border-bottom:1px solid rgba(255,255,255,0.12);
}
.foot-brand img{ height:24px; margin-bottom:14px; }
.foot-brand p{ font-size:14px; }
.foot-cols{ display:flex; gap:40px; flex-wrap:wrap; }
.foot-col h4{ font-size:13px; color:var(--panel-ink); font-weight:600; margin-bottom:12px; }
.foot-col a{ display:block; font-size:14px; color:var(--panel-muted); padding:5px 0; transition:color .15s ease;}
.foot-col a:hover{ color:#fff; }
.foot-bottom{
  display:flex; flex-direction:column; gap:8px;
  padding-top:22px; font-size:13px;
}

/* =========================================================
   BREAKPOINT: sm (≥480px)
   ========================================================= */
@media (min-width:480px){
  .hero-actions{ flex-direction:row; }
  .btn-primary, .btn-ghost{ width:auto; }
  .hero-proof{ flex-direction:row; gap:28px; border-top:none; padding-top:0; }
}

/* =========================================================
   BREAKPOINT: md (≥700px)
   ========================================================= */
@media (min-width:700px){
  .wrap{ padding:0 32px; }
  .headbar{ padding:14px 32px; }
  .foot-top{ flex-direction:row; justify-content:space-between; align-items:flex-start; }
  .foot-brand p{ max-width:32ch; }
  .foot-bottom{ flex-direction:row; justify-content:space-between; }

  .pkg-frame{ padding:20px; }
  .pkg-grid{ flex-direction:row; align-items:stretch; }
  .pkg-card{ flex:1; padding:30px 26px; }
  .pkg-or{ padding:0 20px; }
}

/* =========================================================
   BREAKPOINT: lg (≥860px)
   ========================================================= */
@media (min-width:860px){
  .headbar{ padding:16px 40px; }
  .brand .word{ height:22px; }

  .nav-toggle, .mobile-menu{ display:none !important; }
  nav.primary{ display:flex; align-items:center; gap:34px; }
  nav.primary .navlinks{ display:flex; align-items:center; gap:34px; }
  nav.primary a{
    font-size:14.5px; color:var(--muted); font-weight:500;
    transition:color .15s ease;
  }
  nav.primary a:hover{color:var(--ink);}
  .nav-cta{
    display:inline-flex; align-items:center;
    padding:10px 20px;
    background:var(--ink); color:#fff !important;
    border-radius:3px;
    font-size:14px; font-weight:600;
    transition:background .15s ease;
  }
  .nav-cta:hover{background:var(--blue);}

  .hero{ padding:96px 0 88px; }
  .hero .wrap{ flex-direction:row; align-items:center; gap:56px; }
  .hero .wrap > div:first-child{ flex:1.15; }
  .hero-visual{ flex:0.85; }
  .kicker{ margin-bottom:22px; }
  .hero-sub{ margin-top:22px; font-size:17.5px; }
  .hero-actions{ margin-top:34px; }
  .hero-proof{ margin-top:40px; }
  .hero-proof strong{ font-size:1.5rem; }
  .skyline{ max-width:420px; }

  .section-head{ max-width:60ch; margin-bottom:52px; }

  .services{ padding:88px 0; }
  .service-row{ padding:26px 0; }
  .service-row h3{ font-size:19px; }

  .pricing{ padding:88px 0; }
  .pkg-card{ padding:36px 32px; }
  .pkg-desc{ font-size:15px; }
  .price-new{ font-size:2.15rem; }
  .pkg-card .cta{ width:auto; align-self:flex-start; margin-top:auto; padding:14px 28px; }

  .contact{ padding:96px 0; }
  .contact .wrap{ flex-direction:row; gap:56px; }
  .contact .wrap > div:first-child{ flex:1.1; }
  .contact .wrap > form{ flex:0.9; }
  .contact h2{ max-width:16ch; }
  form .btn-primary{ width:auto; align-self:flex-start; }

  .sticky-cta, .sticky-cta-spacer{ display:none; }

  .faq{ padding:88px 0; }
  .faq-item summary{ font-size:16.5px; padding:24px 0; }
  .faq-item p{ font-size:15px; padding-bottom:24px; }
}

/* =========================================================
   BREAKPOINT: xl (≥1024px)
   ========================================================= */
@media (min-width:1024px){
  body{ font-size:16px; }
}