/* === style.css === */

:root{--ink:#153d36;--green:#2b6a58;--mint:#e7f1e9;--paper:#fbfaf6;--coral:#e27856;--line:#d9e1d8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 'DM Sans',sans-serif}header,section,footer{padding-left:max(5vw,24px);padding-right:max(5vw,24px)}header{height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e8e9e2}.brand{font-size:21px;font-weight:700;color:var(--ink);text-decoration:none;display:flex;gap:7px;align-items:center}.brand span span{color:var(--coral)}.brand-dot{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--green);color:#fff;font-size:19px}nav{display:flex;gap:28px}nav a{color:#527068;text-decoration:none;font-size:14px}.mini-cta{color:var(--ink);font-size:14px;font-weight:700;text-decoration:none;border-bottom:2px solid var(--coral);padding-bottom:3px}.hero{min-height:550px;display:grid;grid-template-columns:1.1fr .9fr;overflow:hidden}.hero-copy{padding:100px 5vw 80px 0;max-width:650px}.eyebrow,.step-count{font-size:11px;font-weight:700;letter-spacing:.13em;color:var(--coral);margin:0 0 17px}.hero h1,h2,h3{font-family:Fraunces,serif;font-weight:500;line-height:1.02;margin:0}.hero h1{font-size:clamp(48px,6vw,83px);letter-spacing:-.055em}.hero h1 em{color:var(--coral);font-style:normal}.lead{font-size:20px;line-height:1.45;max-width:540px;color:#4b665e;margin:28px 0}.button{border:0;background:var(--coral);color:#fff;text-decoration:none;display:inline-flex;justify-content:center;gap:24px;align-items:center;min-height:52px;padding:0 22px;font:700 15px 'DM Sans';cursor:pointer;border-radius:2px}.button b{font-size:20px;font-weight:400}.button:disabled{opacity:.45;cursor:not-allowed}.hero-actions{display:flex;align-items:center;gap:25px}.text-link{font-weight:700;color:var(--ink);text-decoration:none}.text-link span{color:var(--coral);font-size:20px}.micro{font-size:12px;color:#71877e;margin-top:25px}.hero-art{background:#e2eee6;position:relative;min-height:540px;overflow:hidden}.sun{width:330px;height:330px;background:#f5ca70;border-radius:50%;position:absolute;left:16%;top:12%}.mat{background:#f9f5ea;width:85%;height:110px;position:absolute;bottom:45px;left:10%;border-radius:70% 20% 20% 10%;transform:rotate(-4deg)}.person{position:absolute;z-index:2}.person i{display:block;width:60px;height:65px;background:#6b4034;border-radius:55% 55% 45% 45%;position:relative}.person i:after{content:'';position:absolute;width:78px;height:85px;background:#f0bc9a;border-radius:50% 48% 43% 50%;top:18px;left:-9px}.person b{display:block;width:145px;height:200px;border-radius:70px 70px 15px 15px;background:var(--green);margin-top:-2px}.person-a{left:20%;bottom:50px;transform:scale(.95)}.person-b{right:15%;bottom:40px;transform:scale(.72)}.person-b b{background:#cf7255}.art-label{position:absolute;z-index:3;background:#fff;bottom:90px;left:8%;padding:13px 17px;box-shadow:0 10px 24px #365e4b24}.art-label span,.art-label strong{display:block}.art-label span{font-size:9px;letter-spacing:.1em;color:var(--coral);font-weight:bold}.art-label strong{font:17px Fraunces,serif}.trust{background:var(--green);color:#fff;display:grid;grid-template-columns:repeat(3,1fr);padding-top:27px;padding-bottom:27px}.trust div{display:flex;gap:15px;align-items:center;padding:0 28px;border-right:1px solid #ffffff44}.trust div:first-child{padding-left:0}.trust div:last-child{border:0}.trust b{font:34px Fraunces,serif;color:#dcefe1}.trust span{font-size:14px;line-height:1.25}.intro{padding-top:110px;padding-bottom:58px;max-width:850px}.intro h2,.assessment h2,.zones h2,.how h2,.faq h2{font-size:clamp(35px,4vw,55px);letter-spacing:-.045em}.intro>p:last-child{font-size:18px;color:#527068;max-width:720px;margin:24px 0 0}.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding-bottom:110px}.cases article{border:1px solid var(--line);padding:32px;min-height:220px}.cases span{font-size:37px;color:var(--coral)}.cases h3{font-size:26px;margin-top:25px}.cases p{color:#617870;font-size:14px}.assessment{background:#f0f5ef;padding-top:92px;padding-bottom:92px;display:grid;grid-template-columns:.85fr 1.15fr;gap:70px}.assessment-head p:last-child{max-width:350px;color:#567067}.wizard{background:#fff;padding:39px;box-shadow:0 13px 40px #1d4d3e12;min-height:390px}.progress{height:4px;background:#e4ece3;margin:-39px -39px 30px}.progress i{display:block;height:100%;background:var(--coral)}.wizard h3{font-size:33px;margin-bottom:24px}.wizard label{display:block;font-size:13px;font-weight:700;margin:15px 0}.wizard input,.wizard select{display:block;width:100%;padding:13px;border:1px solid #ccd8cf;background:#fff;margin-top:6px;font:15px 'DM Sans';color:var(--ink);border-radius:1px}.wizard .button{margin-top:20px}.choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}.choice{background:#f6f8f5;border:1px solid #dce6dd;padding:11px;text-align:left;color:var(--ink);font:13px 'DM Sans';cursor:pointer}.choice.selected{border-color:var(--coral);background:#fff7f3}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.check{font-weight:400!important;display:flex!important;gap:9px;align-items:flex-start}.check input{width:auto!important;margin:4px 0!important}.checks label{display:block;padding:10px 0;border-bottom:1px solid #edf0ec;font-size:14px}.checks input{margin-right:8px}.small,.disclaimer{font-size:13px;color:#60746c}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#e4eae3;margin:20px 0}.result-grid div{background:#f8faf7;padding:15px}.result-grid small,.result-grid strong{display:block}.result-grid small{font-size:9px;letter-spacing:.08em;color:#768d83}.result-grid strong{font:17px Fraunces,serif;margin-top:5px}.alert{border-left:5px solid var(--coral);padding-left:18px}.alert>span,.success>span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#fff0e9;color:var(--coral);font-weight:bold;font-size:24px}.success>span{background:#e5f2e9;color:var(--green)}.zones{background:var(--ink);color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:85px;padding-top:95px;padding-bottom:95px}.zones .eyebrow{color:#f3aa91}.zones p:not(.eyebrow){color:#c2d8cc;max-width:470px;font-size:17px}.button.light{background:#f5f0e6;color:var(--ink);margin-top:15px}.area-card{background:#265349;padding:34px}.area-card>p{font-size:10px!important;letter-spacing:.13em;color:#f0aa8d!important;font-weight:bold}.area-card ul{list-style:none;padding:0;margin:20px 0}.area-card li{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #ffffff25}.area-card b{font-size:11px;color:#c9e1d3}.area-card small{color:#b9cfc3}.how{padding-top:110px;padding-bottom:100px}.how>h2,.faq>h2{margin-bottom:45px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:45px}.steps article{border-top:1px solid var(--green);padding-top:20px}.steps b{font:38px Fraunces,serif;color:var(--coral)}.steps h3{font-size:25px;margin:25px 0 10px}.steps p{color:#60756d}.notice{background:#f5e7d3;margin:0 max(5vw,24px);padding:27px 32px;display:flex;gap:27px;align-items:flex-start}.notice strong{font-family:Fraunces,serif;font-size:22px;white-space:nowrap}.notice p{margin:0;color:#705f4d}.faq{padding-top:100px;padding-bottom:100px;max-width:900px}.faq details{border-top:1px solid var(--line);padding:20px 0}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;font-weight:700;list-style:none}.faq summary:after{content:'+';float:right;color:var(--coral);font-size:22px}.faq details p{color:#60756d;margin-bottom:0}footer{padding-top:50px;padding-bottom:45px;background:#0e2d28;color:#d5e7dc;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center}footer .brand{color:#fff}.footer-note{font-size:12px;color:#9eb9ac;margin:0}
@media(max-width:720px){header{height:67px}nav,.mini-cta{display:none}.hero{grid-template-columns:1fr}.hero-copy{padding:70px 0 55px}.hero-art{min-height:370px}.sun{width:250px;height:250px;left:18%}.trust{grid-template-columns:1fr;padding-top:14px;padding-bottom:14px}.trust div{padding:13px 0;border:0;border-bottom:1px solid #ffffff27}.intro{padding-top:75px}.cases,.assessment,.zones,.steps{grid-template-columns:1fr}.cases{padding-bottom:70px}.assessment{gap:35px;padding-top:70px;padding-bottom:70px}.wizard{padding:28px}.progress{margin:-28px -28px 25px}.choices{grid-template-columns:1fr}.zones{gap:35px;padding-top:70px;padding-bottom:70px}.how,.faq{padding-top:70px;padding-bottom:70px}.notice{margin:0;padding:25px;display:block}.notice p{margin-top:8px}footer{grid-template-columns:1fr;gap:18px}.hero h1{font-size:52px}.hero-art{order:2}.result-grid{grid-template-columns:1fr}.two{grid-template-columns:1fr}}

/* === pricing.css === */
.choices.single{grid-template-columns:1fr}.result-intro{line-height:1.55;color:#466258}.price-note{font-size:13px;font-weight:700;color:#60746c;margin:-9px 0 15px}.pricing{padding-top:92px;padding-bottom:92px;background:#fff}.pricing h2{font-size:clamp(34px,4vw,55px);max-width:720px;letter-spacing:-.045em}.pricing h2 em{color:#e27856;font-style:normal}.pricing-lead{max-width:650px;color:#527068;font-size:18px}.price-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:38px 0 18px}.price-cards article{border:1px solid #d9e1d8;padding:26px;min-height:190px}.price-cards article.featured{background:#153d36;color:#fff;border-color:#153d36}.price-cards span{display:block;color:#e27856;letter-spacing:.12em;font-size:10px;font-weight:700}.price-cards strong{display:block;font:48px Fraunces,serif;margin:12px 0}.price-cards p{font-size:14px;color:#60746c}.price-cards .featured p{color:#d5e7dc}.price-footnote{font-size:13px;color:#60746c;max-width:700px}@media(max-width:720px){.price-cards{grid-template-columns:1fr}.pricing{padding-top:70px;padding-bottom:70px}}

/* === phase-456.css === */
.calculator{margin-top:34px;border:1px solid #d9e1d8;padding:26px;background:#f6f8f5}.calculator h3{font:28px Fraunces,serif;margin:0 0 20px}.calculator-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.calculator label{font-size:13px;font-weight:700}.calculator select,.assistant-form input{display:block;width:100%;margin-top:6px;padding:12px;border:1px solid #ccd8cf;background:#fff;font:15px 'DM Sans'}.calc-result{font-size:18px;color:#153d36}.safe-assistant{padding-top:95px;padding-bottom:95px;background:#f0f5ef}.safe-assistant h2{font-size:clamp(35px,4vw,55px);letter-spacing:-.045em}.assistant-chat{max-width:680px;height:180px;margin:27px 0 12px;padding:16px;overflow:auto;background:#fff;border:1px solid #d9e1d8}.assistant-chat p{max-width:85%;padding:10px 13px;margin:0 0 9px;font-size:14px}.assistant-chat .bot{background:#e3eee7}.assistant-chat .user{background:#fff1eb;margin-left:auto}.assistant-actions{display:flex;flex-wrap:wrap;gap:8px;max-width:680px}.assistant-actions button{border:1px solid #b9cbc0;background:#fff;padding:8px 10px;color:#153d36;cursor:pointer}.assistant-form{display:flex;gap:9px;max-width:680px;margin-top:14px}.assistant-form input{margin:0}.assistant-limit{font-size:12px;color:#60746c}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:720px){.calculator-grid{grid-template-columns:1fr}.assistant-form{display:block}.assistant-form .button{width:100%;margin-top:9px}}

/* === phase-789.css === */
.hero-art{background:url('../public/seo/home-hero.webp') center/cover no-repeat!important}.hero-art>*{display:none}.faq-live,.contact-panel{padding-top:90px;padding-bottom:90px}.faq-live{background:#fff}.faq-live h2,.contact-panel h2{font-size:clamp(35px,4vw,55px);letter-spacing:-.045em}.faq-live details{max-width:800px;border-top:1px solid #d9e1d8;padding:20px 0}.faq-live details:last-child{border-bottom:1px solid #d9e1d8}.faq-live summary{cursor:pointer;font-weight:700}.faq-live p{color:#60746c}.contact-panel{background:#153d36;color:#fff}.contact-panel .eyebrow{color:#f3aa91}.contact-panel p{max-width:650px;color:#c2d8cc}.contact-panel a{color:#fff}.site-legal{font-size:12px;color:#9eb9ac;line-height:1.6}.site-legal a{color:#d5e7dc}

/* === visual-upgrade.css === */
.visual-story{display:grid;grid-template-columns:1fr 1fr;gap:clamp(35px,8vw,110px);padding-top:110px;padding-bottom:110px;align-items:center;background:#fff}.visual-photo{position:relative;min-height:620px;overflow:hidden;background:#dce8df}.visual-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,#153d3638)}.visual-photo img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.photo-tag{position:absolute;z-index:1;background:#fff;padding:12px 15px;font-size:10px;letter-spacing:.12em;font-weight:700;color:#153d36}.photo-tag.top{top:21px;left:21px}.photo-tag.bottom{bottom:21px;left:21px;font-size:11px;line-height:1.45;letter-spacing:.04em}.photo-tag strong{font:21px Fraunces,serif;letter-spacing:0}.visual-copy h2{font-size:clamp(42px,5vw,64px);letter-spacing:-.06em}.visual-copy h2 em{color:#e27856;font-style:normal}.visual-copy>p:not(.eyebrow){font-size:18px;color:#527068;max-width:460px;line-height:1.6}.visual-points{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:32px 0}.visual-points span{font-size:12px;line-height:1.35;color:#526d63;border-top:1px solid #b8cbc0;padding-top:12px}.visual-points b{display:block;font:26px Fraunces,serif;color:#153d36}@media(max-width:720px){.visual-story{grid-template-columns:1fr;padding-top:70px;padding-bottom:70px}.visual-photo{min-height:480px}.visual-points{grid-template-columns:1fr 1fr}.visual-points span:last-child{grid-column:span 2}}

/* === motion-gallery.css === */
.image-gallery{display:grid;grid-template-columns:1.15fr .85fr .85fr;grid-template-rows:auto 280px;padding-top:110px;padding-bottom:110px;gap:15px;background:#f0f5ef}.gallery-heading{grid-row:span 2;padding:35px 6vw 35px 0}.gallery-heading h2{font-size:clamp(40px,5vw,66px);letter-spacing:-.06em}.gallery-heading h2 em{color:#e27856;font-style:normal}.gallery-card{margin:0;position:relative;overflow:hidden;min-height:0;background:#153d36}.gallery-card.large{grid-row:span 2}.gallery-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1);animation:slow-pan 18s ease-in-out infinite alternate}.gallery-card:nth-of-type(3) img{animation-delay:-6s}.gallery-card:nth-of-type(4) img{animation-delay:-12s}.gallery-card:hover img{transform:scale(1.09)}.gallery-card:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,#0b2923a0)}.gallery-card figcaption{position:absolute;z-index:1;bottom:17px;left:17px;color:#fff;font:25px Fraunces,serif;line-height:1.05}.gallery-card figcaption span{font:12px 'DM Sans';color:#deeee5}.seo-visual{margin:35px 0;position:relative;overflow:hidden;max-height:440px}.seo-visual img{width:100%;height:440px;object-fit:cover;display:block;animation:slow-pan 20s ease-in-out infinite alternate}.seo-visual figcaption{position:absolute;bottom:0;right:0;margin:0;background:#153d36;color:#fff;padding:9px 12px;font-size:10px}@keyframes slow-pan{from{transform:scale(1)}to{transform:scale(1.075)}}@media(prefers-reduced-motion:reduce){.gallery-card img,.seo-visual img{animation:none;transition:none}}@media(max-width:720px){.image-gallery{grid-template-columns:1fr 1fr;grid-template-rows:auto 280px 190px;padding-top:70px;padding-bottom:70px}.gallery-heading{grid-column:span 2;grid-row:auto;padding:5px 0 18px}.gallery-card.large{grid-column:span 2;grid-row:auto}.gallery-card:nth-of-type(n+3){height:190px}.seo-visual,.seo-visual img{height:280px}}

/* === seo.css === */
/* Estilos de las páginas de zona/servicio. Reutiliza el sistema de la portada
   (trust, how, zones, faq, notice, header, footer de style.css) y añade lo propio. */

.seo-main{ display:block; }
.seo-main h1,.seo-main h2,.seo-main h3{ font-family:Fraunces,serif; font-weight:500; letter-spacing:-.03em; }

/* ---- Héroe ---- */
.seo-hero{
  display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(28px,5vw,64px);
  align-items:center; padding-top:64px; padding-bottom:64px;
}
.seo-hero-copy h1{ font-size:clamp(34px,4.6vw,60px); line-height:1.03; letter-spacing:-.045em; margin:0 0 20px; }
.seo-hero-copy .lead{ font-size:19px; line-height:1.55; color:#4b665e; max-width:520px; margin:0 0 26px; }
.seo-hero-copy .hero-actions{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.seo-hero-copy .micro{ font-size:12px; color:#71877e; margin-top:22px; }
.seo-hero-img{ margin:0; }
.seo-hero-img img{ width:100%; height:100%; max-height:460px; object-fit:cover; border-radius:18px; box-shadow:0 24px 60px rgba(18,59,51,.16); display:block; }

/* ---- Cuerpo: texto + tarjeta de precios ---- */
.seo-body{
  display:grid; grid-template-columns:1.55fr .95fr; gap:clamp(28px,5vw,56px);
  padding-top:72px; padding-bottom:72px; align-items:start;
}
.seo-text p{ font-size:17px; line-height:1.7; color:#42594f; margin:0 0 18px; }
.seo-list{ list-style:none; padding:0; margin:22px 0 0; display:grid; gap:12px; }
.seo-list li{ position:relative; padding-left:32px; font-size:16px; color:#2d443b; }
.seo-list li:before{ content:'✓'; position:absolute; left:0; top:-1px; width:22px; height:22px; display:grid; place-items:center; border-radius:50%; background:#e3efe7; color:#2b6a58; font-size:12px; font-weight:bold; }
.seo-aside{
  background:#f0f5ef; border:1px solid #dde7dd; border-radius:16px; padding:26px;
  position:sticky; top:100px;
}
.seo-price{ display:flex; justify-content:space-between; align-items:baseline; padding:13px 0; border-bottom:1px solid #dde7dd; }
.seo-price span{ font-size:14px; color:#526d63; }
.seo-price strong{ font:600 24px Fraunces,serif; color:#123b33; }
.seo-aside .small{ margin:16px 0 20px; }
.seo-aside .button{ width:100%; }

/* ---- Imagen en la sección de cobertura (fondo oscuro) ---- */
.zones-img{ margin:0; }
.zones-img img{ width:100%; height:100%; max-height:360px; object-fit:cover; border-radius:16px; display:block; box-shadow:0 20px 44px rgba(0,0,0,.28); }

/* ---- Más zonas y servicios ---- */
.seo-related-sec{ padding-top:64px; padding-bottom:96px; }
.seo-related{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:22px; }
.seo-rel{
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  padding:18px 20px; border:1px solid #d9e1d8; border-radius:12px;
  text-decoration:none; color:#123b33; font-weight:600; font-size:15px;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.seo-rel:hover{ transform:translateY(-3px); box-shadow:0 14px 30px rgba(18,59,51,.10); border-color:#c6d4c8; }
.seo-rel b{ color:#e0714f; font-size:18px; }

@media (max-width:860px){
  .seo-hero{ grid-template-columns:1fr; padding-top:44px; padding-bottom:44px; }
  .seo-hero-img{ order:-1; }
  .seo-hero-img img{ max-height:300px; }
  .seo-body{ grid-template-columns:1fr; padding-top:52px; padding-bottom:52px; }
  .seo-aside{ position:static; }
  .seo-related{ grid-template-columns:1fr; }
}

/* === refresh.css === */
/* ============================================================
   refresh.css · Capa de pulido visual (se carga la ÚLTIMA)
   Refina tipografía, color, botones, formularios, tarjetas y foco.
   No reescribe el diseño base: solo lo eleva.
   ============================================================ */

:root{
  --coral:#e0714f;
  --coral-dark:#c85c3c;
  --green:#2b6a58;
  --ink:#123b33;
  --paper:#fbfaf6;
  --line:#dbe3da;
  --radius:12px;
  --radius-sm:9px;
  --shadow-sm:0 2px 8px rgba(18,59,51,.06);
  --shadow-md:0 12px 30px rgba(18,59,51,.10);
  --shadow-lg:0 24px 60px rgba(18,59,51,.14);
  --ring:0 0 0 3px rgba(224,113,79,.35);
}

/* ---- Base tipográfica ---- */
body{
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  letter-spacing:.005em;
}
h1,h2,h3{ text-wrap:balance; }
p{ text-wrap:pretty; }
.lead{ color:#40584f; }               /* mejor contraste */
.eyebrow,.step-count{ letter-spacing:.16em; }

/* Foco visible y accesible en toda la web */
a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,summary:focus-visible,.choice:focus-visible{
  outline:none;
  box-shadow:var(--ring);
  border-radius:6px;
}

/* ---- Botones ---- */
.button{
  border-radius:var(--radius);
  gap:12px;
  padding:0 26px;
  min-height:54px;
  letter-spacing:.01em;
  box-shadow:0 8px 20px rgba(224,113,79,.28);
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.button:hover{
  background:var(--coral-dark);
  transform:translateY(-2px);
  box-shadow:0 14px 28px rgba(224,113,79,.36);
}
.button:active{ transform:translateY(0); box-shadow:0 6px 16px rgba(224,113,79,.3); }
.button:disabled{ box-shadow:none; transform:none; }
.button b{ transition:transform .18s ease; }
.button:hover b{ transform:translateX(4px); }

.button.light{
  background:#f5f0e6;
  box-shadow:0 8px 20px rgba(0,0,0,.14);
}
.button.light:hover{ background:#fff; }

/* Enlace de texto con subrayado animado */
.text-link{ position:relative; transition:color .18s ease; }
.text-link span{ transition:transform .18s ease; display:inline-block; }
.text-link:hover span{ transform:translate(3px,3px); }

nav a{ transition:color .18s ease; }
nav a:hover{ color:var(--coral); }
.mini-cta{ transition:border-color .18s ease, color .18s ease; }
.mini-cta:hover{ color:var(--coral); }

/* ---- Cabecera fija translúcida ---- */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(251,250,246,.82);
  -webkit-backdrop-filter:saturate(180%) blur(12px);
  backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid rgba(18,59,51,.08);
}
.brand-dot{
  box-shadow:0 4px 10px rgba(43,106,88,.35);
  background:linear-gradient(135deg,#2f7160,#123b33);
}

/* ---- Campos de formulario ---- */
.wizard input,.wizard select,
.calculator select,.assistant-form input{
  border:1.5px solid #cdd8cf;
  border-radius:var(--radius-sm);
  padding:14px 14px;
  transition:border-color .18s ease, box-shadow .18s ease;
}
.wizard input:hover,.wizard select:hover{ border-color:#b4c4b8; }
.wizard input:focus,.wizard select:focus,
.calculator select:focus,.assistant-form input:focus{
  outline:none;
  border-color:var(--coral);
  box-shadow:var(--ring);
}
.wizard label{ letter-spacing:.01em; }

/* Botones de opción del evaluador */
.choice{
  border-radius:var(--radius-sm);
  padding:13px 14px;
  transition:transform .14s ease, border-color .14s ease, background-color .14s ease, box-shadow .14s ease;
}
.choice:hover{ border-color:#c0d0c4; transform:translateY(-1px); box-shadow:var(--shadow-sm); }
.choice.selected{
  border-color:var(--coral);
  background:#fff5f1;
  box-shadow:0 4px 12px rgba(224,113,79,.16);
}

/* Barra de progreso redondeada */
.progress{ border-radius:0 4px 4px 0; overflow:hidden; }
.progress i{ transition:width .4s cubic-bezier(.4,0,.2,1); }

/* ---- Tarjeta del evaluador ---- */
.wizard{ border-radius:var(--radius); box-shadow:var(--shadow-md); }

/* ---- Tarjetas (precios / casos / pasos / zonas) ---- */
.price-cards article,.cases article{
  border-radius:var(--radius);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.price-cards article:hover,.cases article:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-md);
  border-color:#c8d5c9;
}
.price-cards .featured{
  box-shadow:var(--shadow-md);
}
.price-cards .featured:hover{ box-shadow:var(--shadow-lg); }
.area-card{ border-radius:var(--radius); }
.result-grid{ border-radius:var(--radius-sm); overflow:hidden; }
.notice{ border-radius:var(--radius); }
.wizard .success>span,.wizard .alert>span{ box-shadow:var(--shadow-sm); }

/* ---- Asistente / chat ---- */
.assistant-chat{
  height:auto; min-height:200px; max-height:340px;
  border:1.5px solid #d9e1d8; border-radius:var(--radius);
  box-shadow:var(--shadow-sm) inset;
}
.assistant-chat p{ border-radius:14px; line-height:1.45; }
.assistant-chat .bot{ border-bottom-left-radius:4px; }
.assistant-chat .user{ border-bottom-right-radius:4px; }
.assistant-chat .typing{ opacity:.6; font-style:italic; }
.assistant-actions button{
  border-radius:999px; transition:border-color .15s ease, background-color .15s ease, transform .15s ease;
}
.assistant-actions button:hover{ border-color:var(--coral); background:#fff5f1; transform:translateY(-1px); }
.assistant-form input{ border-radius:var(--radius-sm); }
.assistant-form .button:disabled,.assistant-form input:disabled{ opacity:.6; }

/* Enlaces email en paneles de contacto */
.contact-panel a,.site-legal a{ transition:opacity .18s ease; }
.contact-panel a:hover,.site-legal a:hover{ opacity:.75; }

/* Imágenes suaves */
img{ border-radius:2px; }
.gallery-card img,.visual-photo img{ border-radius:0; }

/* ---- Respeto a "reduzco movimiento": solo quitamos lo intrusivo ---- */
@media (prefers-reduced-motion:reduce){
  .progress i{ transition:none; }
  html{ scroll-behavior:auto; }
}

@media (max-width:720px){
  .button{ width:100%; }
  .hero-actions .button{ width:auto; }
  header{ background:rgba(251,250,246,.94); }
}

/* ================= Mejoras nuevas ================= */

/* Precio con protagonismo en el resultado del evaluador */
.price-hero{
  background:linear-gradient(135deg,#12463b,#0e332b); color:#fff;
  border-radius:var(--radius); padding:22px 24px; margin:20px 0 10px; text-align:center;
}
.price-hero small{ display:block; font-size:11px; letter-spacing:.14em; color:#f3aa91; font-weight:700; text-transform:uppercase; }
.price-hero .price-big{ font:700 clamp(44px,9vw,64px)/1 Fraunces,serif; margin:8px 0 6px; letter-spacing:-.02em; }
.price-hero .price-sub{ font-size:13px; color:#c2d8cc; }

/* Resultado de la calculadora, más protagonismo */
.calc-result{
  margin-top:8px !important; padding:16px 18px; border-radius:var(--radius);
  background:#12463b; color:#fff !important; font-size:15px; text-align:center;
}
.calc-result strong{ font:700 30px Fraunces,serif; color:#fff; }

/* Aviso de comprobación de código postal */
.zone-note{ font-size:13px; margin:8px 0 2px; }
.zone-note.ok{ color:#2b6a58; }
.zone-note.warn{ color:#c85c3c; }

/* Deslizador de nivel de dolor */
.pain-box{ text-align:center; margin:22px 0 6px; }
.pain-box output{ display:block; font:700 46px Fraunces,serif; color:var(--coral); }
.pain-box .pain-scale{ display:block; font-size:12px; color:#71877e; margin-bottom:14px; }
.pain-box input[type=range]{ width:100%; accent-color:var(--coral); height:26px; border:0 !important; padding:0 !important; background:transparent !important; }

/* Menú de zonas/servicios en el pie (SEO) */
/* ---- Menú desplegable "Zonas y servicios" en la cabecera ---- */
.nav-drop{ position:relative; display:inline-flex; }
.nav-drop-btn{ border:0; background:transparent; color:#527068; font:400 14px 'DM Sans',sans-serif; cursor:pointer; display:inline-flex; align-items:center; gap:5px; padding:0; }
.nav-drop-btn b{ font-size:9px; transition:transform .18s ease; }
.nav-drop:hover .nav-drop-btn, .nav-drop-btn:focus-visible{ color:var(--coral); }
.nav-drop:hover .nav-drop-btn b{ transform:rotate(180deg); }
.nav-drop-menu{ position:absolute; top:100%; right:0; margin-top:16px; min-width:250px; background:#fff; border:1px solid #e6ece6; border-radius:14px; box-shadow:var(--shadow-md); padding:8px; opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .16s ease, transform .16s ease; z-index:60; }
.nav-drop:hover .nav-drop-menu, .nav-drop:focus-within .nav-drop-menu{ opacity:1; visibility:visible; transform:translateY(0); }
.nav-drop-menu:before{ content:''; position:absolute; top:-16px; left:0; right:0; height:16px; }
.nav-drop-menu a{ display:block; padding:9px 12px; border-radius:9px; color:var(--ink); font-size:14px; text-decoration:none; }
.nav-drop-menu a:hover{ background:#fff5f1; color:var(--coral); }
.nav-drop-menu .drop-sep{ margin:6px 4px; border-top:1px solid #eef2ee; }

/* ---- Botón flotante del asistente ---- */
.fab-assistant{
  position:fixed; right:20px; bottom:20px; z-index:900;
  display:inline-flex; align-items:center; gap:9px; border:0; cursor:pointer;
  color:#fff; font:700 15px 'DM Sans',sans-serif; background:var(--coral);
  padding:0 20px 0 16px; height:56px; border-radius:999px;
  box-shadow:0 12px 28px rgba(224,113,79,.42);
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.fab-assistant:hover{ transform:translateY(-2px); background:var(--coral-dark); box-shadow:0 16px 34px rgba(224,113,79,.5); }
.fab-assistant .fab-icon{ font-size:22px; line-height:1; }
.fab-assistant.open{ background:var(--ink); }

.fab-panel{
  position:fixed; right:20px; bottom:88px; z-index:900; padding:0;
  width:min(390px,calc(100vw - 28px)); height:min(74vh,600px);
  display:flex; flex-direction:column; background:#fff; border-radius:18px; overflow:hidden;
  box-shadow:0 24px 60px rgba(18,59,51,.28); border:1px solid #e6ece6; animation:fab-in .18s ease;
}
.fab-panel[hidden]{ display:none !important; }
@keyframes fab-in{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
.fab-panel > *{ width:100%; box-sizing:border-box; }
.fab-head{ flex:none; background:var(--ink); color:#fff; padding:16px 18px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.fab-head strong{ display:block; font-size:16px; line-height:1.2; }
.fab-head span{ font-size:12px; color:#c2d8cc; }
.fab-close{ flex:none; background:transparent; border:0; color:#fff; font-size:28px; line-height:1; cursor:pointer; padding:0 2px; opacity:.85; }
.fab-close:hover{ opacity:1; }
.fab-panel .fab-chat{ flex:1 1 auto; width:auto; min-height:0; max-height:none; border:0; border-radius:0; box-shadow:none; margin:0; padding:16px; background:#f6f8f5; overflow-y:auto; }
.fab-panel .fab-chat p{ max-width:92%; }
.fab-panel .assistant-actions{ flex:none; padding:10px 14px 2px; gap:7px; }
.fab-panel .assistant-actions button{ font-size:12px; padding:7px 11px; }
.fab-panel .assistant-form{ flex:none; display:flex; align-items:center; gap:8px; padding:8px 14px 6px; margin:0; }
.fab-panel .assistant-form input{ flex:1 1 auto; width:auto; min-width:0; margin:0; padding:11px 12px; }
.fab-panel .assistant-form .button{ flex:none; min-height:44px; padding:0 16px; gap:8px; white-space:nowrap; box-shadow:none; }
.fab-panel .assistant-form .button b{ font-size:16px; }
.fab-panel .assistant-limit{ flex:none; margin:0; padding:2px 14px 12px; font-size:11px; color:#71877e; }

.nav-toggle{ display:none; }
@media (max-width:720px){
  .fab-panel{ right:10px; left:10px; width:auto; height:min(72vh,560px); bottom:76px; }
  .fab-assistant{ right:14px; bottom:14px; width:54px; height:54px; padding:0; justify-content:center; border-radius:50%; }
  .fab-assistant .fab-text{ display:none; }
  .fab-assistant .fab-icon{ font-size:24px; }
  /* --- Menú móvil (hamburguesa) --- */
  .nav-toggle{ display:inline-flex; flex-direction:column; justify-content:center; align-items:center; gap:5px; width:44px; height:44px; border:0; background:transparent; cursor:pointer; padding:0; }
  .nav-toggle span{ display:block; width:24px; height:2px; background:#123b33; border-radius:2px; transition:transform .2s ease, opacity .2s ease; }
  .nav-toggle.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .nav-toggle.open span:nth-child(2){ opacity:0; }
  .nav-toggle.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  header nav{ display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; gap:0; background:#fff; border-top:1px solid #eef2ee; box-shadow:0 14px 28px rgba(18,59,51,.12); padding:4px max(5vw,24px) 14px; max-height:78vh; overflow-y:auto; }
  header nav.open{ display:flex; }
  header nav > a{ padding:13px 2px; font-size:16px; border-bottom:1px solid #eef2ee; color:#2d443b; }
  .nav-drop{ display:block; }
  .nav-drop-btn{ display:none; }
  .nav-drop-menu{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:0; padding:0; margin:0; min-width:0; }
  .nav-drop-menu:before{ display:none; }
  .nav-drop-menu a{ display:block; padding:12px 2px; font-size:15px; color:#527068; border-bottom:1px solid #f0f3ef; }
}

