/* =========================================================
   PhoneFixx — blue edition
   ========================================================= */

:root{
  --blue:#2563EB;
  --blue-d:#1D4ED8;
  --indigo:#4338CA;
  --sky:#0284C7;
  --sky-l:#38BDF8;
  --cyan:#0891B2;
  --teal:#0D9488;
  --navy:#0B2447;
  --wa:#25D366;

  --ink:#0B1A33;
  --muted:#4C6285;
  --paper:#FFFFFF;
  --bg:#F5F9FF;
  --tint:#E8F1FF;
  --line:#D6E5F8;

  --grad:linear-gradient(115deg,#1D4ED8 0%,#2563EB 45%,#06B6D4 100%);
  --grad-2:linear-gradient(120deg,#0891B2,#4338CA);
  --r:18px;
  --r-sm:12px;
  --shadow:0 18px 45px -22px rgba(11,45,110,.42);
  --shadow-lg:0 30px 70px -30px rgba(11,45,110,.55);
  --ease:cubic-bezier(.2,.7,.3,1);
  --wrap:1180px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:"Segoe UI",Roboto,"Helvetica Neue",Arial,system-ui,sans-serif;
  font-size:16px; line-height:1.62;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

h1,h2,h3{ margin:0; letter-spacing:-.028em; line-height:1.08; font-weight:800; }
h1{ font-size:clamp(2.4rem,5.4vw,4.1rem); }
h2{ font-size:clamp(1.9rem,3.6vw,2.9rem); line-height:1.12; }
h3{ font-size:1.16rem; line-height:1.3; }
p{ margin:0; }
a{ color:inherit; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:22px; }

.grad-text{
  background:var(--grad);
  -webkit-background-clip:text; background-clip:text;
  color:transparent;
}

/* floating background orbs */
.orbs{ position:fixed; inset:0; z-index:-1; overflow:hidden; pointer-events:none; }
.orb{ position:absolute; border-radius:50%; filter:blur(70px); opacity:.32; }
.orb--1{ width:460px; height:460px; background:var(--blue); top:-140px; left:-120px; }
.orb--2{ width:400px; height:400px; background:#22D3EE; top:12%; right:-150px; opacity:.26; }
.orb--3{ width:520px; height:520px; background:var(--indigo); bottom:-10%; left:35%; opacity:.18; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  padding:13px 24px; border:0; border-radius:999px;
  font:inherit; font-weight:700; font-size:.94rem;
  text-decoration:none; cursor:pointer; white-space:nowrap;
  transition:transform .18s var(--ease), box-shadow .18s var(--ease), filter .18s var(--ease);
}
.btn--lg{ padding:16px 30px; font-size:1rem; }
.btn--mini{ padding:9px 16px; font-size:.82rem; }
.btn--grad{ background:var(--grad); color:#fff; box-shadow:0 12px 26px -12px rgba(37,99,235,.85); }
.btn--grad:hover{ transform:translateY(-2px); filter:saturate(1.15); box-shadow:0 18px 34px -14px rgba(8,145,178,.75); }
.btn--grad[disabled]{ opacity:.55; cursor:not-allowed; transform:none; }
.btn--outline{ background:var(--paper); color:var(--ink); box-shadow:inset 0 0 0 2px var(--line); }
.btn--outline:hover{ transform:translateY(-2px); box-shadow:inset 0 0 0 2px var(--blue); color:var(--blue); }
.btn--soft{ background:var(--tint); color:var(--blue-d); }
.btn--soft:hover{ background:#D8E8FF; transform:translateY(-1px); }
.btn--white{ background:#fff; color:var(--blue-d); }
.btn--white:hover{ transform:translateY(-2px); box-shadow:0 14px 28px -14px rgba(0,0,0,.5); }
.btn--white[disabled]{ opacity:.6; cursor:not-allowed; transform:none; }
.btn--wa{ background:var(--wa); color:#04310f; box-shadow:0 12px 26px -12px rgba(37,211,102,.9); }
.btn--wa:hover{ transform:translateY(-2px); }
.btn--block{ width:100%; margin-top:22px; }

/* ---------- nav ---------- */
.nav{
  position:sticky; top:0; z-index:900;
  background:rgba(255,255,255,.84);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.nav__inner{ display:flex; align-items:center; justify-content:space-between; gap:20px; height:72px; }
.logo{ display:flex; align-items:center; gap:10px; text-decoration:none; font-weight:800; font-size:1.2rem; letter-spacing:-.03em; }
.logo__mark{
  width:40px; height:40px; display:grid; place-items:center;
  background:var(--grad); border-radius:13px; font-size:1.15rem;
  box-shadow:0 10px 20px -10px rgba(37,99,235,.9);
}
.nav__links{ display:flex; gap:24px; }
.nav__links a{ text-decoration:none; font-size:.93rem; font-weight:600; color:var(--muted); transition:color .15s var(--ease); }
.nav__links a:hover{ color:var(--blue); }
.nav__actions{ display:flex; align-items:center; gap:12px; }

.burger{ display:none; width:42px; height:42px; border:0; border-radius:12px; background:var(--tint); cursor:pointer; padding:11px 10px; }
.burger span{ display:block; height:2.5px; border-radius:2px; background:var(--blue); margin:3px 0; transition:.2s var(--ease); }

/* ---------- hero ---------- */
.hero{ padding-top:clamp(38px,6vw,72px); overflow:hidden; }
.hero__grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:50px; align-items:center; padding-bottom:clamp(40px,6vw,70px); }

.pill{
  display:inline-flex; align-items:center; gap:9px;
  background:var(--paper); border:1px solid var(--line);
  padding:8px 16px; border-radius:999px;
  font-size:.82rem; font-weight:700; color:var(--muted);
  box-shadow:var(--shadow);
  margin-bottom:22px;
}
.dot{ width:9px; height:9px; border-radius:50%; background:#0D9488; box-shadow:0 0 0 4px rgba(13,148,136,.22); animation:pulse 1.9s infinite; }
@keyframes pulse{ 50%{ box-shadow:0 0 0 8px rgba(13,148,136,0); } }

.lede{ font-size:1.09rem; color:var(--muted); max-width:54ch; margin-top:22px; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:30px; }

.chips{ list-style:none; padding:0; margin:30px 0 0; display:flex; flex-wrap:wrap; gap:10px; }
.chip{ padding:8px 15px; border-radius:999px; font-size:.82rem; font-weight:700; }
.chip--blue  { background:#DBEAFE; color:#1E40AF; }
.chip--indigo{ background:#E0E7FF; color:#3730A3; }
.chip--sky   { background:#E0F2FE; color:#075985; }
.chip--teal  { background:#CCFBF1; color:#115E59; }

/* phone art */
.hero__art{ position:relative; display:grid; place-items:center; min-height:430px; }
.phone{
  width:250px; height:492px;
  background:linear-gradient(160deg,#12294d,#08152b);
  border-radius:38px; padding:11px;
  box-shadow:var(--shadow-lg), 0 0 0 2px rgba(255,255,255,.08) inset;
  position:relative; transform:rotate(-5deg);
  animation:floaty 6s ease-in-out infinite;
}
@keyframes floaty{ 50%{ transform:rotate(-5deg) translateY(-14px); } }
.phone__notch{ position:absolute; top:16px; left:50%; transform:translateX(-50%); width:78px; height:19px; background:#050d1b; border-radius:999px; z-index:2; }
.phone__screen{
  height:100%; border-radius:29px; padding:52px 20px 22px;
  background:linear-gradient(165deg,#1D4ED8,#2563EB 45%,#06B6D4);
  color:#fff; position:relative; overflow:hidden;
}
.phone__crack{
  position:absolute; inset:0;
  background:
    linear-gradient(72deg,transparent 49.4%,rgba(255,255,255,.85) 49.7%,transparent 50.2%),
    linear-gradient(-38deg,transparent 39.5%,rgba(255,255,255,.6) 39.8%,transparent 40.2%),
    linear-gradient(18deg,transparent 64.5%,rgba(255,255,255,.5) 64.8%,transparent 65.2%);
  opacity:.75; pointer-events:none;
}
.phone__label{ font-size:.72rem; text-transform:uppercase; letter-spacing:.16em; opacity:.85; font-weight:700; }
.phone__bar{ height:9px; border-radius:999px; background:rgba(255,255,255,.28); margin:12px 0 26px; overflow:hidden; }
.phone__bar i{ display:block; height:100%; width:var(--w); background:#fff; border-radius:999px; }
.phone__rows{ display:grid; grid-template-columns:1fr auto; gap:14px 10px; font-size:.86rem; }
.phone__rows b{ font-weight:700; opacity:.95; }
.phone__rows .live{ background:#fff; color:#1D4ED8; border-radius:999px; padding:1px 10px; font-size:.76rem; }

.float{
  position:absolute; background:var(--paper); border-radius:16px;
  padding:12px 18px; font-weight:800; font-size:.92rem;
  box-shadow:var(--shadow); display:grid; gap:2px;
}
.float small{ font-weight:600; color:var(--muted); font-size:.75rem; }
.float--a{ top:8%; left:-6px; animation:floaty 5s ease-in-out infinite; }
.float--b{ bottom:9%; right:-6px; animation:floaty 7s ease-in-out .6s infinite; }

/* brand marquee */
.marquee{
  background:var(--grad); color:#fff;
  padding:14px 0; overflow:hidden;
  border-radius:999px; margin-bottom:6px;
  box-shadow:var(--shadow);
  width:min(calc(100% - 44px),var(--wrap)); margin-inline:auto;
}
.marquee__track{
  display:flex; gap:44px; width:max-content;
  animation:slide 30s linear infinite;
  font-weight:800; font-size:.86rem; letter-spacing:.06em; text-transform:uppercase;
}
.marquee__track span{ opacity:.95; }
@keyframes slide{ from{transform:translateX(0)} to{transform:translateX(-50%)} }
@media (prefers-reduced-motion:reduce){
  .marquee__track,.phone,.float,.dot{ animation:none; }
}

/* ---------- sections ---------- */
.section{ padding-block:clamp(58px,7.5vw,100px); }
.section--tint{ background:var(--tint); border-block:1px solid var(--line); }
.section__head{ max-width:720px; margin-bottom:46px; }
.section__sub{ color:var(--muted); font-size:1.04rem; margin-top:16px; }

.kicker{
  display:inline-block; padding:6px 14px; border-radius:999px;
  font-size:.76rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
  margin-bottom:16px;
}
.kicker--blue  { background:#DBEAFE; color:#1D4ED8; }
.kicker--indigo{ background:#E0E7FF; color:#4338CA; }
.kicker--sky   { background:#E0F2FE; color:#0369A1; }
.kicker--cyan  { background:#CFFAFE; color:#0E7490; }
.kicker--teal  { background:#CCFBF1; color:#0F766E; }

/* ---------- service cards ---------- */
.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.card{
  background:var(--paper); border-radius:var(--r);
  padding:30px 26px 26px; position:relative; overflow:hidden;
  box-shadow:var(--shadow);
  border:1px solid var(--line);
  transition:transform .22s var(--ease), box-shadow .22s var(--ease);
}
.card::before{ content:""; position:absolute; inset:0 0 auto 0; height:5px; background:var(--c,var(--grad)); }
.card:hover{ transform:translateY(-7px); box-shadow:var(--shadow-lg); }
.card__icon{
  display:grid; place-items:center; width:56px; height:56px;
  border-radius:16px; font-size:1.6rem; margin-bottom:18px;
  background:var(--soft,#DBEAFE);
}
.card h3{ margin-bottom:10px; }
.card p{ color:var(--muted); font-size:.95rem; }
.card__price{
  margin-top:18px; padding-top:15px; border-top:1px dashed var(--line);
  font-weight:800; color:var(--k,var(--blue-d)); font-size:1.02rem;
}
.card__price small{ font-weight:600; color:var(--muted); font-size:.82rem; }

.card--blue  { --c:linear-gradient(90deg,#1D4ED8,#3B82F6); --soft:#DBEAFE; --k:#1D4ED8; }
.card--teal  { --c:linear-gradient(90deg,#0D9488,#2DD4BF); --soft:#CCFBF1; --k:#0F766E; }
.card--sky   { --c:linear-gradient(90deg,#0284C7,#38BDF8); --soft:#E0F2FE; --k:#0369A1; }
.card--cyan  { --c:linear-gradient(90deg,#0891B2,#22D3EE); --soft:#CFFAFE; --k:#0E7490; }
.card--indigo{ --c:linear-gradient(90deg,#4338CA,#6366F1); --soft:#E0E7FF; --k:#4338CA; }
.card--navy  { --c:linear-gradient(90deg,#0B2447,#3B82F6); --soft:#E2E8F0; --k:#0B2447; }

/* ---------- steps ---------- */
.steps{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.steps li{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r); padding:28px 24px; box-shadow:var(--shadow); }
.steps__no{
  display:grid; place-items:center; width:48px; height:48px;
  border-radius:16px; color:#fff; font-weight:800; font-size:1.15rem; margin-bottom:16px;
  box-shadow:0 12px 22px -12px rgba(0,0,0,.5);
}
.s1{ background:linear-gradient(135deg,#1D4ED8,#3B82F6); }
.s2{ background:linear-gradient(135deg,#4338CA,#6366F1); }
.s3{ background:linear-gradient(135deg,#0284C7,#38BDF8); }
.s4{ background:linear-gradient(135deg,#0891B2,#2DD4BF); }
.steps h3{ margin-bottom:9px; }
.steps p{ color:var(--muted); font-size:.93rem; }

/* ---------- booking ---------- */
.booking{ display:grid; grid-template-columns:1.05fr .95fr; gap:24px; align-items:start; }
.form,.mapbox{
  background:var(--paper); border:1px solid var(--line);
  border-radius:var(--r); box-shadow:var(--shadow); overflow:hidden;
}
.form{ padding:30px 28px; }
.row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.row--3{ grid-template-columns:1fr 1fr 1fr; }
.field{ margin-bottom:18px; display:flex; flex-direction:column; }
.field label{ font-size:.82rem; font-weight:700; margin-bottom:8px; }
.field label b{ color:#DC2626; }
.opt{ font-weight:600; color:var(--muted); font-size:.78rem; }

input[type=text],input[type=tel],input[type=email],input[type=date],input[type=number],input[type=search],input[type=password],select,textarea{
  width:100%; padding:13px 15px;
  border:1.5px solid var(--line); border-radius:var(--r-sm);
  background:#FBFDFF; color:var(--ink); font:inherit; font-size:.95rem;
  transition:border-color .15s var(--ease), box-shadow .15s var(--ease), background .15s var(--ease);
}
textarea{ resize:vertical; }
select{
  appearance:none; padding-right:40px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%232563EB' stroke-width='2' fill='none' stroke-linecap='round'/></svg>");
  background-repeat:no-repeat; background-position:right 15px center;
}
input:focus,select:focus,textarea:focus{
  outline:none; background:#fff;
  border-color:var(--blue); box-shadow:0 0 0 4px rgba(37,99,235,.16);
}
input.invalid,select.invalid,textarea.invalid{ border-color:#DC2626; box-shadow:0 0 0 4px rgba(220,38,38,.12); }

.err{ font-size:.79rem; font-weight:700; color:#DC2626; margin-top:6px; display:none; }
.err.show{ display:block; }
.hint{ font-size:.78rem; color:var(--muted); margin-top:6px; }

/* problem picker */
.picks{ display:flex; flex-wrap:wrap; gap:9px; }
.pick input{ position:absolute; opacity:0; pointer-events:none; }
.pick span{
  display:inline-block; padding:9px 15px; border-radius:999px;
  background:#FBFDFF; border:1.5px solid var(--line);
  font-size:.87rem; font-weight:600; cursor:pointer;
  transition:.16s var(--ease);
}
.pick span:hover{ border-color:var(--blue); color:var(--blue); }
.pick input:checked + span{ background:var(--grad); border-color:transparent; color:#fff; box-shadow:0 10px 20px -12px rgba(37,99,235,.9); }
.pick input:focus-visible + span{ box-shadow:0 0 0 4px rgba(37,99,235,.25); }
.picks.invalid span{ border-color:#DC2626; }

.check{ display:flex; gap:11px; align-items:flex-start; font-size:.88rem; cursor:pointer; color:var(--muted); }
.check input{ width:19px; height:19px; margin-top:2px; accent-color:var(--blue); flex:0 0 auto; }
.check b{ color:#DC2626; }
.form__actions{ display:flex; gap:12px; margin-top:22px; }

/* ---------- map ---------- */
.mapbox{ display:flex; flex-direction:column; }
.mapbox__bar{ display:flex; gap:10px; padding:16px; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.mapbox__search{ display:flex; gap:8px; flex:1 1 230px; }
.mapbox__search input{ flex:1; }
#map{ flex:1; min-height:470px; background:#E3EDF8; }
.leaflet-container{ font:inherit; }
.leaflet-control-zoom a{ color:var(--blue) !important; font-weight:800; }
.leaflet-popup-content-wrapper{ border-radius:12px; }

.pin{ width:34px; height:34px; }
.pin__dot{
  width:26px; height:26px; margin:4px;
  background:var(--grad); border:3px solid #fff;
  border-radius:50% 50% 50% 0; transform:rotate(-45deg);
  box-shadow:0 8px 18px -6px rgba(37,99,235,.9);
}
.mapbox__foot{ display:flex; align-items:center; justify-content:space-between; gap:14px; padding:16px; border-top:1px solid var(--line); }
.mapbox__label{ font-size:.76rem; font-weight:800; color:var(--blue-d); }
#coordText{ font-size:.9rem; color:var(--muted); margin-top:3px; }

/* ---------- modal ---------- */
.modal{ position:fixed; inset:0; z-index:1000; background:rgba(11,26,51,.62); backdrop-filter:blur(5px); display:grid; place-items:center; padding:20px; }
.modal[hidden]{ display:none; }
.modal__card{
  background:var(--paper); border-radius:24px; padding:34px 30px;
  max-width:520px; width:100%; max-height:88vh; overflow:auto;
  box-shadow:var(--shadow-lg); text-align:left;
  animation:pop .25s var(--ease);
}
@keyframes pop{ from{ transform:translateY(14px) scale(.97); opacity:0 } }
.modal__tick{
  display:grid; place-items:center; width:60px; height:60px; margin-bottom:18px;
  background:linear-gradient(135deg,#0D9488,#2DD4BF); color:#fff;
  border-radius:50%; font-size:1.7rem; font-weight:800;
  box-shadow:0 16px 30px -14px rgba(13,148,136,.9);
}
.modal__card h3{ font-size:1.55rem; margin-bottom:10px; }
.modal__card > p{ color:var(--muted); font-size:.95rem; }
.modal__card b{ color:var(--blue-d); }
.summary{ margin:22px 0 0; }
.summary div{ display:flex; justify-content:space-between; gap:18px; padding:11px 0; border-bottom:1px dashed var(--line); font-size:.9rem; }
.summary dt{ color:var(--muted); font-weight:600; flex:0 0 38%; }
.summary dd{ margin:0; text-align:right; font-weight:700; }
.modal__actions{ display:flex; gap:12px; margin-top:24px; }

/* ---------- coverage ---------- */
.zones{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.zone{ padding:22px 22px; border-radius:var(--r); color:#fff; box-shadow:var(--shadow); }
.zone b{ display:block; font-size:1.08rem; margin-bottom:6px; }
.zone span{ font-size:.87rem; opacity:.92; }
.z1{ background:linear-gradient(135deg,#1D4ED8,#3B82F6); }
.z2{ background:linear-gradient(135deg,#4338CA,#6366F1); }
.z3{ background:linear-gradient(135deg,#0284C7,#38BDF8); }
.z4{ background:linear-gradient(135deg,#0891B2,#22D3EE); }
.z5{ background:linear-gradient(135deg,#0D9488,#2DD4BF); }
.z6{ background:linear-gradient(135deg,#0B2447,#2563EB); }

.quotes{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:44px; }
.quotes figure{ margin:0; background:var(--paper); border:1px solid var(--line); border-radius:var(--r); padding:24px; box-shadow:var(--shadow); }
.quote__top{ display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.quote__top div{ display:grid; line-height:1.25; }
.quote__top b{ font-size:.95rem; }
.quote__top small{ color:var(--muted); font-size:.78rem; }
.avatar{ width:44px; height:44px; border-radius:50%; display:grid; place-items:center; color:#fff; font-weight:800; }
.a1{ background:linear-gradient(135deg,#1D4ED8,#22D3EE); }
.a2{ background:linear-gradient(135deg,#0284C7,#0D9488); }
.a3{ background:linear-gradient(135deg,#4338CA,#3B82F6); }
.stars{ margin-left:auto; color:#F59E0B; font-size:.9rem; letter-spacing:.06em; }
.quotes blockquote{ margin:0; color:var(--muted); font-size:.95rem; }

/* ---------- faq ---------- */
.faq__grid{ display:grid; grid-template-columns:1.5fr .85fr; gap:44px; align-items:start; }
.acc{ display:grid; gap:12px; }
.acc details{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-sm); box-shadow:var(--shadow); overflow:hidden; }
.acc summary{ cursor:pointer; list-style:none; padding:18px 50px 18px 20px; font-weight:700; position:relative; }
.acc summary::-webkit-details-marker{ display:none; }
.acc summary::after{
  content:"+"; position:absolute; right:16px; top:50%; transform:translateY(-50%);
  width:26px; height:26px; display:grid; place-items:center;
  background:var(--tint); color:var(--blue-d); border-radius:50%; font-size:1.05rem; font-weight:800;
}
.acc details[open] summary::after{ content:"–"; background:var(--grad); color:#fff; }
.acc details p{ padding:0 20px 20px; color:var(--muted); font-size:.94rem; }

.contact{
  background:var(--grad); color:#fff;
  border-radius:var(--r); padding:30px 26px;
  box-shadow:var(--shadow-lg); position:sticky; top:96px;
}
.contact h3{ font-size:1.35rem; margin-bottom:8px; }
.contact > p{ font-size:.9rem; opacity:.9; }
.contact__list{ list-style:none; padding:0; margin:20px 0 0; }
.contact__list li{ display:flex; justify-content:space-between; gap:14px; padding:11px 0; border-bottom:1px solid rgba(255,255,255,.28); font-size:.9rem; }
.contact__list span:first-child{ opacity:.85; }
.contact__list a{ font-weight:700; }

/* ---------- footer ---------- */
.footer{ background:#08152B; color:#BFD3EC; padding-block:44px; }
.footer__inner{ display:flex; align-items:center; justify-content:space-between; gap:26px; flex-wrap:wrap; }
.footer .logo{ color:#fff; }
.footer__note{ font-size:.86rem; margin-top:10px; opacity:.72; }
.footer__links{ display:flex; gap:20px; flex-wrap:wrap; }
.footer__links a{ font-size:.88rem; font-weight:600; text-decoration:none; opacity:.85; }
.footer__links a:hover{ opacity:1; color:#fff; }
.footer__copy{ font-size:.8rem; opacity:.6; }

/* floating whatsapp */
.fab{
  position:fixed; right:18px; bottom:18px; z-index:800;
  display:inline-flex; align-items:center; gap:8px;
  background:var(--wa); color:#04310f; font-weight:800; font-size:.92rem;
  padding:13px 20px; border-radius:999px; text-decoration:none;
  box-shadow:0 16px 30px -14px rgba(37,211,102,.95);
  transition:transform .18s var(--ease);
}
.fab:hover{ transform:translateY(-3px) scale(1.03); }

/* ---------- responsive ---------- */
@media (max-width:1020px){
  .hero__grid{ grid-template-columns:1fr; }
  .hero__art{ order:-1; min-height:0; margin-bottom:10px; }
  .phone{ transform:rotate(-3deg) scale(.86); }
  .cards,.steps,.zones,.quotes{ grid-template-columns:repeat(2,1fr); }
  .booking{ grid-template-columns:1fr; }
  .faq__grid{ grid-template-columns:1fr; }
  .contact{ position:static; }
}

@media (max-width:720px){
  .nav__links{
    display:none; position:absolute; top:72px; left:0; right:0;
    flex-direction:column; gap:0; background:var(--paper);
    border-bottom:1px solid var(--line); padding:6px 22px 18px;
    box-shadow:var(--shadow);
  }
  .nav__links.open{ display:flex; }
  .nav__links a{ padding:13px 0; border-bottom:1px solid var(--line); }
  .burger{ display:block; }
  .nav__cta{ display:none; }

  .cards,.steps,.zones,.quotes,.row,.row--3{ grid-template-columns:1fr; }
  .row,.row--3{ gap:0; }
  .form{ padding:24px 20px; }
  #map{ min-height:340px; }
  .form__actions,.modal__actions,.hero__cta{ flex-direction:column; }
  .form__actions .btn,.modal__actions .btn,.hero__cta .btn{ width:100%; }
  .float--a{ left:-2px; top:2%; }
  .float--b{ right:-2px; bottom:2%; }
  .fab span{ display:none; }
  .fab{ padding:15px; font-size:1.2rem; }
}

/* uploaded logo */
.logo__mark--img{ background:none; box-shadow:none; padding:0; overflow:hidden; }
.logo__img{ width:100%; height:100%; object-fit:contain; display:block; }
