/* =======================================================================
   Anse d'Asure Stays — short-term rental management
   ======================================================================= */

:root{
  --ink:#0f2230;        /* deep lagoon ink */
  --ink-soft:#3b4e5c;
  --muted:#61737f;
  --cream:#eef3f6;      /* sea-mist surface */
  --cream-2:#f5f8fa;
  --warm:#f6f0e6;       /* white-sand accent surface */
  --sand:#f1f5f8;       /* soft neutral surface */
  --azure:#4288b7;      /* logo blue — primary accent */
  --azure-deep:#2c6a96; /* main buttons */
  --azure-deeper:#23587e;
  --sand-gold:#dcc9a3;  /* estimate CTA — sand against the sea */
  --dark:#0e2433;       /* night lagoon */
  --line:rgba(15,34,48,.10);
  --radius:16px;
  --radius-lg:28px;
  --shadow-sm:0 1px 2px rgba(15,34,48,.05), 0 6px 18px rgba(15,34,48,.05);
  --shadow-md:0 18px 50px rgba(15,34,48,.10);
  --logo-font:"Tenor Sans", "Gill Sans", "Trebuchet MS", sans-serif; /* wordmark only */
  --serif:"Lora", Georgia, "Times New Roman", serif;
  --sans:"Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --header-h:78px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 24px)}
body{
  margin:0;background:#fff;color:var(--ink);
  font-family:var(--sans);font-size:17px;line-height:1.7;font-weight:400;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,svg{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
h1,h2,h3,h4{margin:0;font-weight:500;letter-spacing:-.01em;text-wrap:balance}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}


/* ── Typography helpers ───────────────────────────────────────────── */
.h2{
  font-family:var(--serif);font-weight:500;line-height:1.12;letter-spacing:-.005em;
  font-size:clamp(1.7rem,2.6vw,2.4rem);
}
.h2--center{text-align:center;max-width:24ch;margin-inline:auto}
.dot,.qm{color:var(--muted)}

/* ── Buttons ──────────────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:.92rem 1.65rem;border:0;border-radius:10px;cursor:pointer;
  font-size:.98rem;font-weight:500;letter-spacing:.005em;
  transition:transform .25s var(--ease), background .25s var(--ease), box-shadow .25s var(--ease);
}
.btn:hover{transform:translateY(-2px)}
.btn--dark{background:var(--ink);color:#fff;border-radius:12px;padding:.95rem 1.8rem}
.btn--dark:hover{background:#07131c}
/* Estimate buttons: deep navy with white text */
.btn--olive{background:#0f2230;color:#fff}
.btn--olive:hover{background:#18324a;box-shadow:0 12px 26px rgba(15,34,48,.3)}
.btn--gold{background:var(--sand-gold);color:#0f2230}
.btn--gold:hover{background:#e6d6b4;box-shadow:0 14px 34px rgba(220,201,163,.45)}
.btn--lg{padding:1.15rem 2.4rem;font-size:1.05rem}
.btn--block{width:100%}
.btn--icon svg{flex:none}
.link-cta{
  display:inline-flex;align-items:center;gap:.7rem;font-size:1.02rem;
  padding:.5rem 0;position:relative;transition:gap .25s var(--ease)
}
.link-cta:hover{gap:1rem}
.link-cta span{position:relative}
.link-cta span::after{
  content:"";position:absolute;left:0;bottom:-3px;height:1px;width:0;background:currentColor;
  transition:width .35s var(--ease)
}
.link-cta:hover span::after{width:100%}

.pill{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.5rem 1.1rem;border:1px solid var(--line);border-radius:999px;
  background:rgba(255,255,255,.7);font-size:.9rem;color:var(--ink-soft);
}
/* Gold key in the hero label — a natural little jiggle, then a rest */
.pill__key{flex:none;transform-origin:30% 30%;animation:keyJiggle 3.2s ease-in-out infinite}
@keyframes keyJiggle{
  0%,58%,100%{transform:rotate(0)}
  64%{transform:rotate(-14deg)}
  70%{transform:rotate(11deg)}
  76%{transform:rotate(-7deg)}
  82%{transform:rotate(4deg)}
  88%{transform:rotate(-1.5deg)}
}
@media (prefers-reduced-motion:reduce){.pill__key{animation:none}}
.pill--light{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.28);color:#fff}

/* ── Reveal on scroll ─────────────────────────────────────────────── */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease), transform .8s var(--ease)}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1!important;transform:none!important;transition:none}
  html{scroll-behavior:auto}
}


/* Looping animations sleep while off screen (toggled in main.js) */
.is-offscreen,.is-offscreen *{animation-play-state:paused!important}

/* ═══════════════════ HEADER ═══════════════════ */
.header{position:sticky;top:0;z-index:60;background:#fff;transition:box-shadow .3s var(--ease)}
.header.is-stuck{box-shadow:0 1px 0 var(--line), 0 10px 30px rgba(15,34,48,.06)}
.header__inner{
  max-width:1560px;margin:0 auto;padding:0 clamp(18px,3vw,52px);
  height:var(--header-h);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(12px,2vw,28px)
}
.header__side{display:flex;align-items:center}
.header__side--left{justify-self:start}
.header__side--right{justify-self:end}
.logo{display:flex;align-items:center;gap:.65rem;justify-self:center}
.logo__mark{width:auto;height:44px;flex:none;object-fit:contain}
.logo__word{font-family:var(--logo-font);font-size:1.12rem;letter-spacing:.2em;white-space:nowrap}
.footer .logo{justify-self:start;width:fit-content}
.footer .logo__mark{height:40px}



.icon-btn{
  position:relative;display:inline-flex;align-items:center;gap:.3rem;justify-content:center;
  min-width:46px;height:46px;padding:0 .7rem;border:0;border-radius:12px;
  background:var(--cream-2);color:var(--ink);cursor:pointer;
  transition:background .25s var(--ease), transform .25s var(--ease)
}
.icon-btn:hover{background:#e4edf3;transform:translateY(-1px)}
.lang__code{
  position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 5px;
  display:grid;place-items:center;border-radius:999px;background:var(--sand-gold);color:#0f2230;
  font-size:.66rem;font-weight:600;letter-spacing:.03em
}

/* Language switcher */
.lang__icon{width:30px;height:30px;object-fit:contain}
.lang{position:relative}
.lang__menu{
  position:absolute;left:0;top:calc(100% + 10px);margin:0;padding:.4rem;list-style:none;
  min-width:190px;background:#fff;border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow-md);opacity:0;visibility:hidden;transform:translateY(-8px) scale(.98);
  transition:opacity .22s var(--ease),transform .22s var(--ease),visibility .22s;z-index:70
}
.lang.is-open .lang__menu{opacity:1;visibility:visible;transform:none}
.lang__menu button{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.65rem .85rem;background:none;border:0;border-radius:10px;cursor:pointer;font-size:.95rem
}
.lang__menu button:hover{background:var(--cream-2)}
.lang__menu button em{font-style:normal;font-size:.75rem;color:var(--muted);letter-spacing:.06em}
.lang__menu button[aria-selected="true"]{background:var(--cream);font-weight:500}
.lang__menu button[aria-selected="true"] em{color:var(--azure)}

/* Menu (☰ on the right) */
.burger__close{display:none}
.header.is-open .burger__open{display:none}
.header.is-open .burger__close{display:block}
.menu{
  position:absolute;top:calc(100% + 8px);right:clamp(18px,3vw,52px);
  width:min(340px,calc(100vw - 32px));padding:.6rem;
  display:flex;flex-direction:column;gap:.15rem;
  background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-md);
  opacity:0;visibility:hidden;transform:translateY(-8px) scale(.98);transform-origin:top right;
  transition:opacity .22s var(--ease),transform .22s var(--ease),visibility .22s;z-index:70
}
.header.is-open .menu{opacity:1;visibility:visible;transform:none}
.menu__link{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.95rem 1rem;border-radius:10px;font-size:1.05rem;font-weight:500;color:var(--ink);
  transition:background .2s var(--ease)
}
.menu__link svg{color:var(--azure);transition:transform .25s var(--ease)}
.menu__link:hover{background:var(--cream-2)}
.menu__link:hover svg{transform:translateX(3px)}
.menu__cta{margin-top:.5rem}
.menu__extras{display:none}
.menu__tiles{display:flex;justify-content:center;gap:.9rem;padding-top:1rem;margin-top:.8rem;border-top:1px solid var(--line)}
.menu__tile{
  position:relative;display:grid;place-items:center;width:56px;height:56px;border:0;border-radius:14px;
  background:var(--cream-2);color:var(--ink);cursor:pointer
}
.menu__tile--wa{background:#5fbb7f;color:#fff;border-radius:50%}
.menu__tile img{width:28px;height:28px;object-fit:contain}
.menu__langs{display:flex;justify-content:center;gap:.4rem;margin-top:.7rem}
.menu__langs[hidden]{display:none}
.menu__langs button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.45rem .9rem;font-size:.9rem;cursor:pointer;color:var(--ink)}
.menu__langs button[aria-selected="true"]{border-color:var(--azure);color:var(--azure-deep);font-weight:600}
body.menu-open .fab{opacity:0;visibility:hidden}

/* ═══════════════════ 1. HERO ═══════════════════ */
.hero-screen{display:flex;flex-direction:column}
@media (min-width:1025px){
  .hero-screen{
    min-height:calc(100vh - var(--header-h));
    min-height:calc(100dvh - var(--header-h));
  }
  .hero-screen .hero{flex:1 1 auto;min-height:0}
  .hero-screen .badges{flex:0 0 auto}
}
/* Text column is only as wide as its content; the photo takes all the rest */
.hero{display:grid;grid-template-columns:auto 1fr;min-height:clamp(480px,62vh,660px)}
.hero__left{
  position:relative;display:flex;align-items:center;
  background:#fcfaf6;padding:clamp(28px,3.6vw,56px) clamp(20px,2.4vw,40px) clamp(28px,3.6vw,56px) clamp(20px,3.2vw,56px);overflow:hidden
}
.hero__left::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:url("../img/noise.png")
}
.hero__content{position:relative;z-index:1;max-width:720px}
.hero__title{
  font-family:var(--serif);font-weight:500;letter-spacing:-.015em;line-height:1.08;
  font-size:clamp(2rem,3vw,2.9rem);margin:clamp(1rem,2vw,1.5rem) 0 clamp(1.6rem,3.4vw,2.8rem)
}
.hero__actions{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(12px,1.6vw,20px)}


.hero__media{position:relative;overflow:hidden;background:#d9e8f1}
.hero__media img,.hero__video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% center
}

/* Partner marquee — logos in brand colour, drifting left non-stop */
.badges{
  position:relative;background:#fff;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)
}
.badges__viewport{overflow:hidden}
.badges__track{display:flex;width:max-content;animation:marquee 38s linear infinite;will-change:transform}
.badges__group{display:flex;flex:none}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.plat{
  flex:none;width:clamp(210px,20vw,330px);
  display:flex;align-items:center;justify-content:center;gap:.7rem;
  padding:clamp(16px,2.2vw,26px) 1.2rem;min-height:clamp(78px,8vw,104px);
  border-right:1px solid var(--line);
  color:var(--ink)
}
.plat__mark{flex:none}
.plat:has(.plat__word--airbnb)  .plat__mark{color:#ff5a5f}
.plat:has(.plat__word--abritel) .plat__mark{color:#1c4b8b}
.plat:has(.plat__word--expedia) .plat__mark{color:#1c355e}
.plat__word{font-weight:600;letter-spacing:-.015em;white-space:nowrap;line-height:1}

.plat__word--airbnb{font-size:clamp(1.25rem,1.9vw,1.6rem);color:#ff5a5f}
.plat__tile{
  flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:7px;
  background:#003580;color:#fff;font-weight:600;font-size:1.05rem;letter-spacing:-.02em
}
.plat__word--booking{font-size:clamp(1.1rem,1.7vw,1.45rem);color:#003580}
.plat__word--booking em{font-style:normal;font-weight:400;opacity:.85}
.plat__word--abritel{font-size:clamp(1.2rem,1.8vw,1.55rem);color:#1c4b8b;letter-spacing:.005em}
.plat__word--vrbo{font-size:clamp(1.4rem,2.1vw,1.8rem);color:#1c4b8b;letter-spacing:-.03em}
.plat__word--expedia{font-size:clamp(1.15rem,1.75vw,1.5rem);color:#1c355e}

@media (prefers-reduced-motion:reduce){
  .badges__track{animation:none}
  .badges__viewport{overflow-x:auto}
}

/* ═══════════════════ 2. WHY CHOOSE US ═══════════════════ */
.why{
  background:#fff;
  padding:clamp(56px,8vw,120px) clamp(22px,5vw,88px) clamp(28px,3.6vw,56px)
}
.why__head{max-width:900px;margin:0 auto clamp(36px,5vw,64px);text-align:center}
.why__head .h2{max-width:none}
.why__grid{
  display:grid;grid-template-columns:1fr 1.25fr;
  gap:clamp(28px,4.5vw,80px);align-items:stretch;max-width:1400px;margin:0 auto
}
.why__media{position:relative;min-height:320px}
.why__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:14px}

.why__lead{margin:clamp(12px,1.4vw,18px) auto 0;color:var(--ink-soft);line-height:1.75;max-width:60ch}

/* Four reasons, each in a plain static card */
.why__points{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(14px,1.6vw,20px)}
.why__point{
  padding:clamp(20px,2vw,28px);
  border:1px solid #c9973a;border-radius:14px;background:#fff
}
.why__point h3{
  color:#a06d14;
  font-family:var(--serif);font-weight:500;line-height:1.2;
  font-size:clamp(1.12rem,1.4vw,1.3rem);margin-bottom:.5rem
}
.why__point p{color:var(--ink-soft);font-size:.95rem;line-height:1.7}

/* ═══════════════════ 3. BENEFITS ═══════════════════ */
/* Full-width image banner between sections 2 and 3 */
.banner{background:#fff;padding:clamp(40px,5vw,72px) 0 0}
.banner__frame{
  position:relative;width:100%;overflow:hidden;
  aspect-ratio:3/1;max-height:640px;
  background:linear-gradient(135deg,#eef4f7,#d3e3ec)
}
.banner__frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
@media (max-width:700px){
  .banner__frame{aspect-ratio:16/9}
  /* Phones: skip the lagoon banner; section 3 follows section 2 directly */
  .banner{display:none}
  .svc{margin-top:clamp(24px,6vw,36px)}
  /* Phones: one fixed image (the first); it no longer swaps with the blocks */
  .svc__media .svc__img,.svc__media .svc__img.is-on{opacity:0;transition:none}
  .svc__media .svc__img[data-svc-img="1"]{opacity:1}
  /* Phones: logo left, menu right; language + WhatsApp move into the menu */
  .header__side--left{display:none}
  .header__inner{grid-template-columns:1fr auto}
  .logo{justify-self:start}
  .menu__extras{display:block}
  /* Phones: hero text and buttons centred */
  .hero__left{justify-content:center}
  .hero__content{text-align:center;margin-inline:auto}
  .hero__actions{align-items:center}
  .hero__actions .btn{width:100%;max-width:420px}

  /* Phones: the photo sits behind the hero text, under a soft dark veil */
  .hero{position:relative;min-height:calc(100svh - var(--header-h));min-height:calc(100vh - var(--header-h))}
  .hero__media{position:absolute;inset:0;min-height:0;z-index:0}
  .hero__media img{object-position:center}
  .hero__media::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg,rgba(8,22,33,.62) 0%,rgba(8,22,33,.38) 45%,rgba(8,22,33,.62) 100%)
  }
  .hero__left{background:transparent;position:relative;z-index:1}
  .hero__left::before{display:none}
  .hero__title{color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.25)}
  .hero .pill{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.4);color:#fff;backdrop-filter:none}
  .hero .link-cta{color:#fff}
}

/* What we handle: four selectable blocks, a description, and an image that swaps with them */
.svc{
  background:#fff;margin-top:clamp(40px,5vw,72px);
  display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,30vw);align-items:stretch
}
.svc__main{padding:clamp(40px,5vw,80px) clamp(22px,4vw,64px) clamp(40px,5vw,80px) clamp(22px,5vw,88px)}
.svc__title{max-width:22ch}
.svc__grid{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,72px);
  align-items:start;margin-top:clamp(28px,3.5vw,48px)
}
.svc__tabs{display:grid;gap:14px}
.svc__tab{
  display:flex;align-items:center;gap:16px;width:calc(100% - 26px);
  padding:16px 20px;border:1px solid var(--line);border-radius:12px;background:#fff;
  font:inherit;font-size:1rem;color:var(--ink);text-align:left;cursor:pointer;
  transition:width .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease)
}
.svc__tab:hover{border-color:#e0c690}
.svc__tab[aria-selected="true"]{width:100%;border-color:#c9973a;box-shadow:0 12px 30px rgba(15,34,48,.08)}
.svc__tab:focus-visible{outline:2px solid var(--azure);outline-offset:2px}
.svc__ico{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:#f6efe2;color:#a06d14;transition:background .3s,color .3s}
.svc__tab[aria-selected="true"] .svc__ico{background:#c9973a;color:#fff}
.svc__arrow{margin-left:auto;flex:none;opacity:0;transform:translateX(-8px);transition:opacity .3s,transform .3s}
.svc__tab[aria-selected="true"] .svc__arrow{opacity:1;transform:none}
.svc__text{display:grid;gap:clamp(24px,3vw,36px);justify-items:start}
.svc__panel p{color:var(--ink-soft);font-size:1.02rem;line-height:1.85;max-width:46ch}
.svc__panel:not([hidden]){animation:paneIn .4s var(--ease)}
.svc__media{position:relative;min-height:440px;overflow:hidden}
.svc__img{position:absolute;inset:0;opacity:0;transition:opacity .5s var(--ease);background:linear-gradient(160deg,#eef4f7,#d3e3ec)}
.svc__img:nth-child(2){background:linear-gradient(160deg,#f5efe5,#e6dccb)}
.svc__img:nth-child(3){background:linear-gradient(160deg,#eaf2f6,#d2e3ec)}
.svc__img:nth-child(4){background:linear-gradient(160deg,#f4efe6,#e8dfcf)}
.svc__img.is-on{opacity:1}
.svc__img picture{display:contents}
.svc__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 62%}
@media (prefers-reduced-motion:reduce){.svc__img,.svc__tab,.svc__arrow{transition:none}.svc__panel:not([hidden]){animation:none}}

/* ═══════════════════ 4. GUEST CARE ═══════════════════ */
.care{background:#fcfaf6;padding:clamp(8px,1.6vw,26px)}
.care__panel{
  background:#fff;border-radius:clamp(22px,3vw,44px);
  padding:clamp(40px,6vw,88px) clamp(22px,4vw,72px) clamp(48px,7vw,96px)
}
.care__head{max-width:900px;margin:0 auto clamp(32px,4.5vw,64px);text-align:center}
.care__head .h2{color:#16303f;max-width:none}
.care__intro{
  margin:1rem auto 0;color:var(--ink-soft);line-height:1.75;
  font-size:clamp(.98rem,1.2vw,1.08rem);max-width:64ch
}

.care__grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.8vw,28px);
  max-width:1400px;margin:0 auto
}
.care__card{
  display:grid;place-content:center;justify-items:center;gap:clamp(18px,2.2vw,32px);
  text-align:center;padding:clamp(28px,3.2vw,44px) clamp(20px,2.4vw,34px);
  background:#fff;border:1px solid #c9973a;border-radius:14px
}
.care__icon{color:#a06d14}
.care__icon svg{width:42px;height:42px;stroke-width:1.4}
.care__title{font-family:var(--serif);font-weight:500;font-size:clamp(1.1rem,1.3vw,1.25rem);line-height:1.25;color:var(--ink);margin-bottom:calc(-1 * clamp(10px,1.5vw,22px))}
.care__card p{color:var(--ink-soft);font-size:.97rem;line-height:1.6;max-width:36ch}

/* ═══════════════════ 8. FAQ ═══════════════════ */
.faq{position:relative;background:#fff;padding:clamp(56px,8vw,112px) clamp(22px,5vw,88px)}
.faq .h2{margin-bottom:clamp(34px,5vw,64px)}
.faq__list{display:grid;gap:1rem;max-width:960px;margin:0 auto}
.faq__item{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-sm);overflow:hidden}
.faq__item summary{
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  padding:1.35rem 1.7rem;cursor:pointer;list-style:none;font-size:1.02rem
}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary svg{flex:none;transition:transform .35s var(--ease);color:var(--muted)}
.faq__item[open] summary svg{transform:rotate(180deg)}
.faq__answer{padding:0 1.7rem 1.5rem;color:var(--ink-soft);line-height:1.85;max-width:74ch}
.faq__item[open] .faq__answer{animation:paneIn .4s var(--ease)}

/* ═══════════════════ 9. FINAL CTA ═══════════════════ */
.cta{position:relative;background:#fcfaf6;color:var(--ink);overflow:hidden;padding:clamp(64px,10vw,140px) clamp(22px,5vw,88px)}
.cta__inner{position:relative;z-index:1;max-width:920px;margin:0 auto;text-align:center}
.cta__title{
  font-family:var(--serif);font-weight:500;line-height:1.1;letter-spacing:-.005em;
  font-size:clamp(1.9rem,3.4vw,2.9rem)
}
.cta__sub{margin:clamp(20px,3vw,36px) auto clamp(28px,4vw,48px);max-width:60ch;color:var(--ink-soft);line-height:1.85}
.cta__checks{display:flex;flex-wrap:wrap;justify-content:center;gap:1.4rem 2.4rem;list-style:none;margin:1.5rem 0 0;padding:0;color:var(--ink-soft);font-size:.92rem}
.cta__checks li{display:flex;align-items:center;gap:.5rem}
.cta__checks svg{color:var(--azure)}

/* ═══════════════════ FOOTER ═══════════════════ */
.footer{background:#fcfaf6;color:var(--ink);border-top:1px solid var(--line);padding:clamp(48px,6vw,84px) clamp(22px,5vw,88px) 2rem}
.footer__inner{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:clamp(28px,4vw,64px);max-width:1400px;margin:0 auto}
.footer__brand p{margin-top:1.1rem;color:var(--ink-soft);max-width:44ch;line-height:1.7;font-size:.95rem}
.footer__col{display:grid;gap:.7rem;align-content:start}
.footer__col h4{font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem;font-weight:500}
.footer__col a{color:var(--ink);font-size:.96rem;width:fit-content}
.footer__col a:hover{color:var(--azure-deep)}
.footer__legal{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;
  max-width:1400px;margin:clamp(36px,5vw,64px) auto 0;padding-top:1.6rem;
  border-top:1px solid var(--line);color:var(--muted);font-size:.85rem
}

/* ═══════════════════ FLOATING WHATSAPP ═══════════════════ */
.fab{
  position:fixed;right:clamp(14px,2vw,28px);bottom:clamp(14px,2vw,28px);z-index:55;
  width:62px;height:62px;border-radius:50%;background:#5fbb7f;color:#fff;
  display:grid;place-items:center;box-shadow:0 14px 34px rgba(0,0,0,.20);
  transition:transform .3s var(--ease),background .3s var(--ease)
}
.fab:hover{transform:translateY(-3px) scale(1.04);background:#4fae71}

/* ═══════════════════ MODAL ═══════════════════ */
.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:clamp(12px,3vw,32px)}
.modal[hidden]{display:none}
.modal__backdrop{position:absolute;inset:0;background:rgba(8,22,33,.58);backdrop-filter:blur(4px);animation:fade .3s var(--ease)}
@keyframes fade{from{opacity:0}to{opacity:1}}
.modal__dialog{
  position:relative;z-index:1;width:min(920px,100%);max-height:92vh;overflow:auto;
  display:grid;grid-template-columns:.95fr 1.05fr;border-radius:var(--radius-lg);
  background:#fff;box-shadow:0 40px 90px rgba(0,0,0,.35);
  animation:pop .45s var(--ease)
}
@keyframes pop{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
.modal__close{
  position:absolute;right:14px;top:14px;z-index:3;width:38px;height:38px;border:0;border-radius:11px;
  background:rgba(255,255,255,.9);display:grid;place-items:center;cursor:pointer;color:var(--ink)
}
.modal__close:hover{background:#fff}
.modal__aside{background:var(--dark);color:#fff;padding:clamp(28px,3.5vw,44px);display:flex;flex-direction:column;justify-content:center;gap:1.1rem}
.modal__aside h3{font-family:var(--serif);font-size:clamp(1.4rem,2.4vw,1.9rem);line-height:1.15;font-weight:500}
.modal__aside p{color:#c3d2dd;font-size:.96rem;line-height:1.75}
.modal__checks{list-style:none;margin:.4rem 0 0;padding:0;display:grid;gap:.55rem;font-size:.9rem;color:#c3d2dd}
.modal__checks li{display:flex;align-items:center;gap:.55rem}
.modal__checks li::before{
  content:"";width:15px;height:15px;flex:none;background:var(--sand-gold);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 12 5 5L20 6'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 12 5 5L20 6'/%3E%3C/svg%3E") center/contain no-repeat
}
.modal__form{padding:clamp(28px,3.5vw,44px);display:grid;gap:1rem;align-content:center}
.field{display:grid;gap:.4rem;font-size:.88rem;color:var(--ink-soft)}
.field select,.field input[type=text],.field input[type=email],.field input[type=tel]{
  font:inherit;font-size:.98rem;color:var(--ink);padding:.85rem 1rem;border:1px solid var(--line);
  border-radius:11px;background:var(--cream-2);appearance:none;width:100%
}
.field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a7a72' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .9rem center;background-size:18px;padding-right:2.6rem
}
.field select:focus,.field input:focus{outline:2px solid var(--azure);outline-offset:1px;background-color:#fff}
.field--check{display:flex;flex-direction:row;align-items:center;gap:.6rem;font-size:.94rem;color:var(--ink)}
.field--check input{width:18px;height:18px;accent-color:var(--azure)}
.modal__contact{display:grid;grid-template-columns:1fr;gap:.8rem;animation:paneIn .4s var(--ease)}
.modal__contact[hidden]{display:none}
.modal__thanks{margin:0;padding:1rem 1.2rem;border-radius:12px;background:var(--cream-2);color:var(--ink);font-size:.92rem;line-height:1.6}
/* Multi-step estimate */
.est{align-content:start;min-height:min(560px,80vh)}
.est__top{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:38px;padding-right:44px}
.est__back{display:inline-flex;align-items:center;gap:.4rem;border:0;background:none;padding:.4rem .2rem;cursor:pointer;color:var(--ink-soft);font-size:.92rem;font-weight:500}
.est__back:hover{color:var(--ink)}
.est__back[hidden]{display:inline-flex;visibility:hidden}
.est__progress{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-left:auto}
.est__progress b{font-weight:600;color:var(--azure-deep)}
.est__bar{height:3px;border-radius:3px;background:var(--cream);overflow:hidden;margin-bottom:.4rem}
.est__bar span{display:block;height:100%;width:25%;background:var(--azure);border-radius:3px;transition:width .4s var(--ease)}
.est__step{border:0;margin:0;padding:0;min-width:0;display:grid;gap:1rem}
.est__step[hidden]{display:none}
.est__step.is-fwd{animation:estIn .38s var(--ease)}
.est__step.is-back{animation:estBack .38s var(--ease)}
@keyframes estIn{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
@keyframes estBack{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:none}}
.est__q{float:left;width:100%;padding:0;font-family:var(--serif);font-weight:500;font-size:clamp(1.25rem,1.9vw,1.5rem);line-height:1.25;color:var(--ink);margin-bottom:.2rem}
.est__q + *{clear:both}
.est__hint{margin:-.35rem 0 .1rem;color:var(--muted);font-size:.9rem;line-height:1.5}
.est__choices,.est__checks{display:grid;gap:.6rem}
@media (min-width:560px){.est__checks{grid-template-columns:1fr 1fr}}
.est__choice,.est__check{
  position:relative;display:flex;align-items:center;gap:.8rem;cursor:pointer;
  padding:.85rem 1rem;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font-size:.98rem;
  transition:border-color .2s var(--ease),background .2s var(--ease)
}
.est__check{padding:.7rem 1rem}
.est__choice:hover,.est__check:hover{border-color:var(--azure)}
.est__choice input,.est__check input{position:absolute;opacity:0;pointer-events:none}
.est__key{display:grid;place-items:center;flex:none;width:26px;height:26px;border-radius:7px;background:var(--cream);color:var(--azure-deep);font-size:.78rem;font-weight:600}
.est__box{flex:none;width:20px;height:20px;border-radius:6px;border:1.5px solid #b9c7d1;background:#fff;display:grid;place-items:center}
.est__choice:has(input:checked),.est__check:has(input:checked){border-color:var(--azure);background:#f3f8fc}
.est__choice:has(input:checked) .est__key{background:var(--azure);color:#fff}
.est__check:has(input:checked) .est__box{background:var(--azure);border-color:var(--azure)}
.est__check:has(input:checked) .est__box::after{content:"";width:11px;height:6px;border:2px solid #fff;border-top:0;border-right:0;transform:translateY(-1px) rotate(-45deg)}
.est__choice:has(input:focus-visible),.est__check:has(input:focus-visible){outline:2px solid var(--azure);outline-offset:2px}
.est__other{display:grid;gap:1rem;animation:paneIn .3s var(--ease)}
.est__other[hidden]{display:none}
.est__next{justify-self:start;margin-top:.4rem}
.est__next:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.est__error{color:#b3261e;font-size:.82rem}
.field input[aria-invalid="true"]{border-color:#b3261e}
@media (prefers-reduced-motion:reduce){.est__step.is-fwd,.est__step.is-back{animation:none}.est__bar span{transition:none}}
.modal__fine{font-size:.78rem;color:var(--muted);text-align:center;margin:0}
body.no-scroll{overflow:hidden}

/* ═══════════════════ RESPONSIVE ═══════════════════ */
@media (max-width:1180px){
  .care__grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:1024px){
  .hero{grid-template-columns:1fr}
  .hero__media{min-height:56vw}
  .why__grid{grid-template-columns:1fr}
  .why__media{min-height:clamp(260px,52vw,440px)}
  .modal__dialog{grid-template-columns:1fr;max-width:560px}
  .modal__aside{padding-block:clamp(40px,6vw,52px) clamp(24px,3vw,32px)}
}
@media (max-width:860px){
  :root{--header-h:66px}
  .care__grid{grid-template-columns:1fr}
  .footer__inner{grid-template-columns:1fr}

  /* Steps stack: image on top, then heading and steps */
  .svc{grid-template-columns:1fr}
  .svc__grid{grid-template-columns:1fr}
  .svc__media{order:-1;min-height:clamp(260px,52vw,440px)}
  .svc__tab{width:100%}
}
@media (max-width:560px){
  .why__points{grid-template-columns:1fr}
  .logo{gap:.45rem;min-width:0}
  .logo__word{font-size:.84rem;letter-spacing:.12em}
  .logo__mark{height:30px}
  .header__inner{gap:8px}
  .icon-btn{min-width:40px;height:40px;padding:0 .45rem}
  .lang__icon{width:27px;height:27px}
  .modal__contact{grid-template-columns:1fr}
}
@media (max-width:400px){
  .logo{gap:.35rem}
  .logo__word{font-size:.76rem;letter-spacing:.1em}
  .logo__mark{height:28px}
}
