@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/poppins-400.woff2) format("woff2")}
@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/poppins-600.woff2) format("woff2")}
@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/poppins-700.woff2) format("woff2")}

:root{
  --navy:#16296b; --blue:#1d3a8a; --blue-2:#2f5fc4; --sky:#e9f0fc; --sky-2:#d6e3fa;
  --cream:#fbf8f3; --ink:#1c2333; --muted:#55607a; --line:#e3e8f2;
  --wa:#25D366; --wa-dark:#1da851;
  --radius:18px; --shadow:0 10px 30px -12px rgba(22,41,107,.25);
  --font:Poppins,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:76px;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);font-size:1rem;line-height:1.65;color:var(--ink);background:#fff;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--blue-2)}
h1,h2,h3{line-height:1.2;color:var(--navy);margin:0 0 .6em;font-weight:700;letter-spacing:-.01em}
h1{font-size:clamp(2rem,1.3rem + 3.4vw,3.4rem)}
h2{font-size:clamp(1.6rem,1.2rem + 1.8vw,2.4rem)}
h3{font-size:1.2rem;font-weight:600}
p{margin:0 0 1em}
.ico{width:1.15em;height:1.15em;flex:none;vertical-align:-.2em}
.wrap{width:min(1160px,100% - 2.5rem);margin-inline:auto}
.wrap--narrow{width:min(820px,100% - 2.5rem)}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:.6rem 1rem;z-index:100}
.skip:focus{left:1rem}
:focus-visible{outline:3px solid var(--blue-2);outline-offset:3px;border-radius:6px}

/* Botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:52px;padding:.8rem 1.4rem;border-radius:999px;font:600 1rem/1.2 var(--font);text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s}
.btn:hover{transform:translateY(-2px)}
.btn--sm{min-height:44px;padding:.5rem 1rem;font-size:.95rem}
.btn--primary{background:var(--blue);color:#fff;box-shadow:0 8px 20px -8px rgba(29,58,138,.6)}
.btn--primary:hover{background:var(--navy)}
.btn--wa{background:var(--wa);color:#0b3d1f;box-shadow:0 8px 20px -8px rgba(37,211,102,.7)}
.btn--wa:hover{background:#2be070}
.btn--wa .ico{color:#0b3d1f}
.btn--ghost{background:#fff;color:var(--blue);border-color:var(--sky-2)}
.btn--ghost:hover{border-color:var(--blue-2)}

/* Topbar */
.topbar{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.topbar__in{display:flex;align-items:center;gap:1rem;min-height:66px}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--navy);margin-right:auto}
.brand img{width:64px;height:auto}
.brand__txt{display:flex;flex-direction:column;line-height:1.1}
.brand__txt strong{font-size:1.05rem}
.brand__txt small{font-size:.78rem;letter-spacing:.12em;font-weight:600;color:var(--blue-2);text-transform:uppercase}
.nav{display:none}
.topbar__call span{display:none}
.topbar__call{width:44px;padding:0}
@media (min-width:420px){.topbar__call{width:auto;padding:.5rem 1rem}.topbar__call span{display:inline}}
.brand__txt,.topbar__call{white-space:nowrap}
@media (min-width:1200px){
  .nav{display:flex;gap:1.15rem}
  .nav a{color:var(--ink);text-decoration:none;font-size:.93rem;font-weight:500;white-space:nowrap}
  .nav a:hover{color:var(--blue-2)}
}

/* Hero */
.hero{background:radial-gradient(1200px 500px at 85% -10%,var(--sky) 0,transparent 60%),linear-gradient(180deg,#fff 0,var(--cream) 100%);padding:2.2rem 0 3rem;overflow:hidden}
.hero__in{display:grid;gap:2.2rem;align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:.4rem;background:#fff;border:1px solid var(--sky-2);color:var(--blue);font-weight:600;font-size:.85rem;padding:.35rem .85rem;border-radius:999px;margin-bottom:1.1rem}
.hl{color:var(--blue-2);background:linear-gradient(transparent 62%,rgba(47,95,196,.18) 62%)}
.lead{font-size:1.08rem;color:var(--muted);max-width:36em}
.lead strong{color:var(--ink)}
.cta{display:flex;flex-direction:column;gap:.75rem;margin:1.6rem 0 1.4rem}
.cta .btn{width:100%}
.chips{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem}
.chips li{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:500;color:var(--navy);background:#fff;border:1px solid var(--line);padding:.35rem .75rem;border-radius:999px}
.chips .ico{color:var(--blue-2)}
.hero__img{position:relative;margin:0;max-width:460px;justify-self:center;width:100%}
.hero__img>img{width:100%;aspect-ratio:5/4;object-position:50% 25%;object-fit:cover;border-radius:28px 28px 28px 120px;box-shadow:var(--shadow)}
.hero__badge{position:absolute;left:-.5rem;bottom:1.2rem;display:flex;align-items:center;gap:.6rem;background:#fff;padding:.6rem 1rem .6rem .7rem;border-radius:16px;box-shadow:var(--shadow)}
.hero__badge img{width:64px}
.hero__badge span{font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--navy);line-height:1.25}
@media (min-width:600px){
  .hero__img>img{aspect-ratio:4/5}
  .cta{flex-direction:row;flex-wrap:wrap}.cta .btn{width:auto}
}
@media (min-width:760px){
  .hero__in{grid-template-columns:1.15fr .85fr;gap:2.5rem}
}
@media (min-width:900px){
  .hero{padding:4.5rem 0 5rem}
  .hero__in{gap:3.5rem}
  .hero__badge{left:-2rem;bottom:2rem}
  .hero__badge img{width:84px}
}

/* Secciones */
.section{padding:4rem 0}
.section--tint{background:var(--cream)}
.section--blue{background:linear-gradient(135deg,var(--navy),var(--blue) 60%,var(--blue-2));color:#e8eefc}
.section__head{max-width:720px;margin:0 auto 2.4rem;text-align:center}
.section__head p:last-child{color:var(--muted)}
.section__head--light h2{color:#fff}
.section__head--light p:last-child{color:#cfdaf6}
.kicker{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-2);margin-bottom:.6rem}
.section--blue .kicker{color:#a9c1f5}
@media (min-width:900px){.section{padding:5.5rem 0}}

/* Servicios */
.cards{display:grid;gap:1.5rem}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 2px 10px -6px rgba(22,41,107,.18);display:flex;flex-direction:column}
.card__img img{width:100%;aspect-ratio:4/3;object-fit:cover}
.card__body{padding:1.4rem 1.3rem 1.6rem;position:relative}
.card__ico{position:absolute;top:-28px;right:1.2rem;width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:var(--blue);color:#fff;box-shadow:var(--shadow);font-size:1.4rem}
.card h3{padding-right:3.5rem}
.card p{color:var(--muted)}
.tag{display:flex;gap:.45rem;align-items:flex-start;background:#e8f8ee;color:#16683a!important;font-weight:600;font-size:.9rem;padding:.5rem .75rem;border-radius:10px;line-height:1.4}
.tag .ico{margin-top:.1em}
.list{list-style:none;padding:0;margin:0;display:grid;gap:.45rem}
.list li{position:relative;padding-left:1.6rem;font-size:.95rem}
.list li::before{content:"";position:absolute;left:0;top:.5em;width:.95rem;height:.95rem;border-radius:50%;background:var(--sky) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%232f5fc4' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round' d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/70% no-repeat}
@media (min-width:700px){.cards{grid-template-columns:1fr 1fr}}
@media (min-width:1100px){
  .card--feature{grid-column:1/-1;flex-direction:row}
  .card--feature .card__img{flex:0 0 50%}
  .card--feature .card__img img{height:100%;aspect-ratio:auto;min-height:100%}
  .card--feature .card__body{padding:2.2rem 2.4rem;align-self:center}
  .card--feature .card__ico{position:static;margin-bottom:1rem}
  .card--feature h3{padding-right:0;font-size:1.5rem}
  .cards{grid-template-columns:repeat(3,1fr)}
}

/* Eco */
.eco{display:grid;gap:2rem;align-items:center}
.eco__img img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:120px 28px 28px 28px;box-shadow:var(--shadow);max-width:440px;margin-inline:auto}
.eco .kicker{color:#16683a}
.benefits{list-style:none;padding:0;margin:1.4rem 0 0;display:grid;gap:1rem}
.benefits li{display:flex;gap:.8rem;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:14px;padding:1rem}
.benefits .ico{width:28px;height:28px;padding:5px;border-radius:50%;background:#e8f8ee;color:#16683a}
.benefits strong{display:block;color:var(--navy)}
.benefits span{color:var(--muted);font-size:.95rem}
@media (min-width:900px){.eco{grid-template-columns:.9fr 1.1fr;gap:4rem}.benefits{grid-template-columns:1fr 1fr}}

/* Por qué */
.why{display:grid;gap:1.2rem}
.why__item{padding:1.5rem;border-radius:var(--radius);background:linear-gradient(180deg,var(--sky),#fff);border:1px solid var(--line)}
.why__item p{color:var(--muted);margin:0}
.why__n{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#fff;color:var(--blue);box-shadow:0 6px 16px -8px rgba(22,41,107,.4);margin-bottom:1rem;font-size:1.25rem}
@media (min-width:600px){.why{grid-template-columns:1fr 1fr}}
@media (min-width:1000px){.why{grid-template-columns:repeat(4,1fr)}}

/* Pasos */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:1.2rem;counter-reset:s}
.steps li{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:var(--radius);padding:1.5rem}
.steps h3{color:#fff}
.steps p{margin:0;color:#d6e0f8}
.steps__n{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#fff;color:var(--blue);font-weight:700;font-size:1.2rem;margin-bottom:.9rem}
@media (min-width:600px){.steps{grid-template-columns:1fr 1fr}}
@media (min-width:1000px){.steps{grid-template-columns:repeat(4,1fr)}}

/* Zona */
.zone{display:grid;gap:2rem;align-items:center}
.zone__txt p{color:var(--muted)}
.zone__txt p strong{color:var(--ink)}
.zone__map{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:300px;padding:2rem 1rem;border-radius:var(--radius);text-decoration:none;color:var(--navy);overflow:hidden;isolation:isolate;
  background-color:#eef3fc;
  background-image:linear-gradient(rgba(47,95,196,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(47,95,196,.07) 1px,transparent 1px);
  background-size:28px 28px;border:1px solid var(--line);box-shadow:var(--shadow)}
.zone__map::before{content:"";position:absolute;z-index:-1;left:50%;top:50%;width:260px;height:260px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(47,95,196,.16) 0 35%,rgba(47,95,196,.08) 35% 65%,transparent 65%)}
.zone__map::after{content:"Mar Mediterráneo";position:absolute;z-index:-1;left:0;right:0;bottom:0;height:64px;display:flex;align-items:center;justify-content:center;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:#5b7fc9;background:linear-gradient(180deg,#d4e3f8,#c3d8f5)}
.zone__map:hover .zone__pin{transform:translateY(-3px)}
.zone__pin{transition:transform .2s;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--blue);color:#fff;font-size:1.5rem;margin-bottom:.6rem;box-shadow:0 10px 20px -8px rgba(29,58,138,.7)}
.zone__map strong{font-size:1.4rem}
.zone__map span{color:var(--muted)}
.zone__map em{font-style:normal;font-weight:600;color:var(--blue-2);margin:.7rem 0 2.6rem}
@media (min-width:900px){.zone{grid-template-columns:1fr 1fr;gap:4rem}}

/* FAQ */
.faq{display:grid;gap:.75rem}
.faq details{background:#fff;border:1px solid var(--line);border-radius:14px;padding:0 1.2rem;transition:box-shadow .2s}
.faq details[open]{box-shadow:var(--shadow)}
.faq summary{cursor:pointer;list-style:none;font-weight:600;color:var(--navy);padding:1.05rem 2rem 1.05rem 0;position:relative;min-height:48px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;background:var(--sky);color:var(--blue);display:grid;place-items:center;font-size:1.2rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{color:var(--muted);margin:0 0 1.1rem}

/* Contacto */
.contact{display:grid;gap:2.2rem}
.contact__info>p{color:var(--muted)}
.contact__list{list-style:none;padding:0;margin:1.4rem 0 0;display:grid;gap:.75rem}
.contact__list a,.contact__static{display:flex;align-items:center;gap:.9rem;padding:.8rem 1rem;border:1px solid var(--line);border-radius:14px;text-decoration:none;color:var(--ink);font-weight:600;background:#fff;min-height:64px;word-break:break-word}
.contact__list a:hover{border-color:var(--blue-2)}
.contact__list small{display:block;font-weight:500;color:var(--muted);font-size:.8rem}
.contact__ico{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:12px;background:var(--sky);color:var(--blue);font-size:1.2rem}
.contact__ico--wa{background:var(--wa);color:#fff}
.form{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;display:grid;gap:.9rem;align-self:start}
.form h3{margin:0;font-size:1.35rem}
.form__note{font-size:.9rem;color:var(--muted);margin:0}
.form label{display:grid;gap:.35rem;font-weight:600;font-size:.92rem;color:var(--navy)}
.form input,.form select,.form textarea{font:400 1rem var(--font);color:var(--ink);padding:.8rem .9rem;border:1px solid #cfd8ea;border-radius:12px;background:#fff;width:100%;min-height:48px}
.form textarea{resize:vertical}
.form [aria-invalid=true]{border-color:#c62828;box-shadow:0 0 0 3px rgba(198,40,40,.15)}
.form__btns{display:grid;gap:.7rem;margin-top:.3rem}
@media (min-width:520px){.form{padding:2rem}}
@media (min-width:520px) and (max-width:899px),(min-width:1100px){.form__btns{grid-template-columns:1fr 1fr}}
.form__btns .btn{padding-inline:1rem;white-space:nowrap}
@media (min-width:900px){.contact{grid-template-columns:1fr 1fr;gap:4rem}}

/* Footer */
.footer{background:var(--navy);color:#c9d5f3;padding:2.5rem 0 6.5rem;font-size:.92rem}
.footer__in{display:grid;gap:1.3rem;justify-items:center;text-align:center}
.footer__brand{display:flex;align-items:center;gap:.8rem;text-align:left}
.footer__logo{background:#fff;border-radius:12px;padding:.35rem .5rem}
.footer__logo img{width:60px}
.footer__brand strong{display:block;color:#fff;font-size:1.05rem}
.footer__links{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;justify-content:center}
.footer a{color:#fff;text-decoration:none;padding:.35rem 0}
.footer__copy{margin:0;color:#93a5d6;font-size:.82rem}
@media (min-width:900px){.footer{padding-bottom:2.5rem}.footer__in{grid-template-columns:auto 1fr auto;text-align:left}.footer__links{justify-content:center}}

/* WhatsApp flotante */
.wa-float{position:fixed;right:16px;bottom:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:60;display:flex;align-items:center;gap:.5rem;height:60px;min-width:60px;padding:0 15px;border-radius:999px;background:var(--wa);color:#fff;text-decoration:none;box-shadow:0 10px 25px -6px rgba(0,0,0,.35);transition:transform .2s}
.wa-float svg{width:30px;height:30px;flex:none}
.wa-float__label{display:none;font-weight:600;padding-right:.3rem}
.wa-float:hover{transform:scale(1.06)}
.wa-float::before{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 0 rgba(37,211,102,.55);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.5)}70%{box-shadow:0 0 0 16px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}
@media (min-width:900px){.wa-float{right:24px;bottom:24px;padding:0 20px 0 15px}.wa-float__label{display:inline}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Botón instalar app */
.install-btn{font:600 .85rem var(--font);color:#fff;background:transparent;border:1px solid rgba(255,255,255,.4);border-radius:999px;padding:.55rem 1.1rem;min-height:44px;cursor:pointer}
.install-btn:hover{background:rgba(255,255,255,.1)}
.install-btn[hidden]{display:none}

.footer a[href*="pexels"]{text-decoration:underline;text-underline-offset:2px}
