:root {
  --blue-900:#123f72;
  --blue-800:#0e5792;
  --blue-700:#0d67ad;
  --blue-600:#0d79c8;
  --blue-100:#eaf5fb;
  --blue-50:#f5fbfe;
  --green:#79b83f;
  --green-100:#eff7e8;
  --ink:#17324b;
  --muted:#61758a;
  --line:#dce9f1;
  --white:#fff;
  --surface:#f8fbfd;
  --shadow:0 18px 55px rgba(18,63,114,.12);
  --radius:24px;
  --container:min(1160px, calc(100% - 40px));
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--white);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
.container{width:var(--container);margin-inline:auto}
.skip-link{position:fixed;left:12px;top:-80px;background:var(--blue-900);color:#fff;padding:10px 14px;border-radius:10px;z-index:9999}.skip-link:focus{top:12px}

.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.93);backdrop-filter:blur(16px);border-bottom:1px solid rgba(220,233,241,.75)}
.nav-wrap{height:80px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{display:flex;align-items:center;gap:11px;min-width:max-content}
.brand img{width:54px;height:44px;object-fit:contain}
.brand span{display:flex;flex-direction:column;line-height:1.12}
.brand strong{font-size:1.05rem;color:var(--blue-900);letter-spacing:-.01em}
.brand small{font-size:.69rem;color:var(--blue-600);letter-spacing:.05em;text-transform:uppercase;margin-top:4px}
.nav-menu{display:flex;align-items:center;gap:28px;font-size:.91rem;font-weight:650;color:#37546e}
.nav-menu>a:not(.nav-cta){position:relative}.nav-menu>a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:2px;background:var(--green);transition:.25s}.nav-menu>a:not(.nav-cta):hover::after{right:0}
.nav-cta{background:var(--blue-700);color:#fff;padding:11px 17px;border-radius:999px;box-shadow:0 8px 20px rgba(13,103,173,.18)}
.menu-button{display:none;background:none;border:0;padding:8px}.menu-button span{display:block;width:24px;height:2px;background:var(--blue-900);margin:5px}

.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff 7%,#f8fcff 55%,#edf8fc 100%);padding:88px 0 78px}
.hero::after{content:"";position:absolute;inset:auto -10% 0;height:1px;background:linear-gradient(90deg,transparent,var(--blue-600),var(--green),transparent);opacity:.25}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:70px}
.eyebrow,.kicker{display:inline-flex;align-items:center;gap:9px;font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--blue-700)}
.eyebrow span{width:28px;height:2px;background:var(--green)}
.hero h1{font-size:clamp(2.7rem,5.2vw,4.8rem);line-height:1.02;letter-spacing:-.055em;margin:17px 0 22px;color:var(--blue-900);max-width:800px}
.hero h1 em{font-style:normal;color:var(--blue-600);position:relative}.hero h1 em::after{content:"";position:absolute;left:0;right:4%;height:8px;background:rgba(121,184,63,.18);bottom:6px;z-index:-1;border-radius:8px}
.hero-lead{font-size:1.12rem;color:var(--muted);max-width:650px;margin:0 0 30px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.button{display:inline-flex;justify-content:center;align-items:center;gap:9px;border-radius:999px;padding:14px 22px;font-weight:750;border:1px solid transparent;transition:transform .2s,box-shadow .2s,background .2s}
.button:hover{transform:translateY(-2px)}
.button--primary{background:var(--blue-700);color:#fff;box-shadow:0 12px 28px rgba(13,103,173,.22)}
.button--secondary{background:#fff;border-color:var(--line);color:var(--blue-900)}
.trust-row{display:flex;gap:22px;flex-wrap:wrap;margin-top:30px;color:#597288;font-size:.85rem}.trust-row span{display:flex;align-items:center;gap:7px}.trust-row span::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green)}
.hero-visual{display:flex;justify-content:center}
.portrait-card{position:relative;width:min(430px,90%);margin:auto}
.portrait-frame{position:relative;border-radius:38px 38px 110px 38px;overflow:hidden;background:linear-gradient(160deg,#dceefa,#f5f8fb);box-shadow:var(--shadow)}
.portrait-frame::before{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.8);border-radius:inherit;z-index:2;pointer-events:none}
.portrait-frame img{width:100%;height:auto;aspect-ratio:.76;object-fit:cover;object-position:center top}
.credential-card{position:absolute;background:rgba(255,255,255,.96);border:1px solid rgba(220,233,241,.9);box-shadow:0 15px 35px rgba(18,63,114,.16);border-radius:18px;padding:13px 16px;display:flex;align-items:center;gap:11px;backdrop-filter:blur(10px)}
.credential-card strong{display:block;font-size:.9rem;color:var(--blue-900);line-height:1.15}.credential-card small{display:block;color:var(--muted);font-size:.72rem;margin-top:3px;line-height:1.25}
.credential-card--top{top:9%;right:-9%}.credential-card--bottom{left:-13%;bottom:9%;max-width:280px}
.credential-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--blue-100);color:var(--blue-700);font-weight:900}
.dot{width:12px;height:12px;border-radius:50%;background:var(--green);box-shadow:0 0 0 7px var(--green-100);margin:0 7px}
.hero-decoration{position:absolute;border-radius:50%;filter:blur(.2px);pointer-events:none}.hero-decoration--one{width:350px;height:350px;background:radial-gradient(circle,rgba(13,121,200,.1),transparent 70%);right:-80px;top:-70px}.hero-decoration--two{width:280px;height:280px;border:1px solid rgba(13,103,173,.08);left:-140px;bottom:-80px}

.signal-strip{background:var(--blue-900);color:#fff}.signal-grid{display:grid;grid-template-columns:repeat(3,1fr);padding:24px 0}.signal-grid>div{display:flex;align-items:center;gap:13px;padding:2px 24px;border-right:1px solid rgba(255,255,255,.14)}.signal-grid>div:first-child{padding-left:0}.signal-grid>div:last-child{border-right:0}.signal-grid strong{font-size:.98rem}.signal-grid span{font-size:.78rem;color:#c7d9e9}

.section{padding:96px 0}.section-heading{display:grid;grid-template-columns:1.15fr .85fr;gap:80px;align-items:end;margin-bottom:42px}.section-heading h2,.about h2,.faq h2,.contact h2,.family-band h2{font-size:clamp(2rem,4vw,3.4rem);line-height:1.08;letter-spacing:-.04em;margin:10px 0 0;color:var(--blue-900)}.section-heading p{color:var(--muted);margin:0;max-width:520px}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service-card{position:relative;min-height:350px;padding:28px;border:1px solid var(--line);border-radius:24px;background:#fff;overflow:hidden;transition:transform .25s,box-shadow .25s,border-color .25s}.service-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:#c4ddeb}.service-card.featured{background:linear-gradient(145deg,var(--blue-900),var(--blue-700));color:#fff;border-color:transparent}.service-number{position:absolute;right:22px;top:16px;font-weight:900;font-size:2.7rem;color:rgba(13,103,173,.07);letter-spacing:-.06em}.featured .service-number{color:rgba(255,255,255,.08)}.service-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:var(--blue-100);color:var(--blue-700);font-weight:900;font-size:1.3rem}.featured .service-icon{background:rgba(255,255,255,.12);color:#fff}.service-card h3{font-size:1.25rem;line-height:1.25;margin:28px 0 12px;color:var(--blue-900)}.featured h3{color:#fff}.service-card p{font-size:.92rem;color:var(--muted);margin-bottom:25px}.featured p{color:#d8e6f2}.service-card a{position:absolute;left:28px;bottom:26px;font-weight:750;font-size:.86rem;color:var(--blue-700)}.featured a{color:#fff}.service-card a span{transition:transform .2s;display:inline-block;margin-left:5px}.service-card a:hover span{transform:translateX(4px)}

.about{background:var(--surface)}.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;align-items:center}.about-image-wrap{position:relative;max-width:390px;margin:auto}.about-image-wrap>img{border-radius:46% 46% 24px 24px;box-shadow:var(--shadow);background:#eaf0f5}.about-image-wrap::before{content:"";position:absolute;inset:18px -22px -22px 18px;border:2px solid rgba(13,103,173,.12);border-radius:46% 46% 24px 24px;z-index:-1}.pixel-cluster{position:absolute;right:-58px;top:18%;width:120px;height:120px}.pixel-cluster i{position:absolute;width:22px;height:22px;background:var(--blue-600);opacity:.9}.pixel-cluster i:nth-child(1){left:0;top:22px}.pixel-cluster i:nth-child(2){left:28px;top:0;background:#95d8ed}.pixel-cluster i:nth-child(3){left:56px;top:28px;background:var(--green)}.pixel-cluster i:nth-child(4){left:84px;top:56px;background:var(--blue-800)}.pixel-cluster i:nth-child(5){left:28px;top:56px;background:#cbeaf4}.pixel-cluster i:nth-child(6){left:58px;top:86px;background:#8ccbe4}.about-copy>p{color:var(--muted);font-size:1rem}.qualification-list{display:grid;gap:12px;margin-top:28px}.qualification-list>div{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:16px}.qualification-list>div>span{width:26px;height:26px;display:grid;place-items:center;background:var(--green-100);color:#5d982d;border-radius:50%;font-weight:900;flex:0 0 26px}.qualification-list p{margin:0}.qualification-list strong{font-size:.9rem;color:var(--blue-900)}.qualification-list small{display:block;color:var(--muted);font-size:.76rem;margin-top:2px}

.section-heading--center{display:block;text-align:center;max-width:720px;margin:0 auto 55px}.section-heading--center p{margin:14px auto 0}.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative}.timeline::before{content:"";position:absolute;left:7%;right:7%;top:29px;height:1px;background:linear-gradient(90deg,var(--blue-600),#9bd8ed,var(--green))}.timeline-step{position:relative;padding:0 22px;text-align:center}.timeline-step>span{position:relative;z-index:2;width:58px;height:58px;display:grid;place-items:center;border-radius:50%;background:#fff;border:2px solid var(--blue-600);color:var(--blue-700);font-weight:900;margin:0 auto 24px;box-shadow:0 0 0 8px #fff}.timeline-step:nth-child(4)>span{border-color:var(--green);color:#5f9a31}.timeline-step h3{font-size:1rem;color:var(--blue-900);margin:0 0 9px}.timeline-step p{font-size:.82rem;color:var(--muted);margin:0}

.family-band{background:linear-gradient(120deg,var(--blue-900),#0c649f);color:#fff;position:relative;overflow:hidden}.family-band::after{content:"";position:absolute;right:-70px;top:-90px;width:300px;height:300px;border:50px solid rgba(255,255,255,.04);border-radius:50%}.family-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;position:relative;z-index:1}.family-band h2{color:#fff;margin-top:10px}.kicker--light{color:#a8e1f3}.family-copy p{font-size:1.05rem;color:#d8e8f3;margin-top:0}.family-pill-row{display:flex;gap:9px;flex-wrap:wrap;margin-top:24px}.family-pill-row span{border:1px solid rgba(255,255,255,.22);padding:8px 12px;border-radius:999px;font-size:.77rem;color:#eff7fb}

.testimonial{padding:80px 0}.testimonial-card{position:relative;max-width:840px;margin:auto;text-align:center;padding:54px 60px;border:1px solid var(--line);border-radius:28px;background:linear-gradient(160deg,#fff,var(--blue-50));box-shadow:0 16px 50px rgba(18,63,114,.07)}.quote-mark{font:900 5rem/1 Georgia,serif;color:var(--green);opacity:.7;height:48px}.testimonial blockquote{margin:15px auto 30px;font-size:1.35rem;line-height:1.5;max-width:680px;color:var(--blue-900);font-weight:600}.testimonial-author{display:flex;justify-content:center;align-items:center;gap:10px;text-align:left}.testimonial-author>span{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--blue-100);color:var(--blue-700);font-weight:900}.testimonial-author strong{display:block;font-size:.87rem}.testimonial-author small{display:block;color:var(--muted);font-size:.72rem}

.faq{background:var(--surface)}.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.faq-intro{position:sticky;top:120px;align-self:start}.faq-intro p{color:var(--muted)}.text-link{display:inline-block;margin-top:10px;color:var(--blue-700);font-weight:800}.faq-list{display:grid;gap:10px}.faq details{background:#fff;border:1px solid var(--line);border-radius:16px;padding:0 20px}.faq summary{list-style:none;cursor:pointer;padding:20px 35px 20px 0;font-weight:750;color:var(--blue-900);position:relative}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";position:absolute;right:4px;top:15px;font-size:1.5rem;color:var(--blue-600);font-weight:400}.faq details[open] summary::after{content:"–"}.faq details p{margin:-4px 0 20px;color:var(--muted);font-size:.9rem;padding-right:28px}

.contact{background:linear-gradient(135deg,#0d4d83,var(--blue-900));color:#fff;position:relative;overflow:hidden}.contact::before{content:"";position:absolute;inset:auto auto -170px -120px;width:420px;height:420px;border-radius:50%;background:rgba(122,194,226,.06)}.contact-grid{display:grid;grid-template-columns:.88fr 1.12fr;gap:70px;align-items:start;position:relative;z-index:1}.contact h2{color:#fff}.contact-copy>p{color:#c8d9e7}.contact-details{display:grid;gap:14px;margin-top:35px}.contact-details a,.contact-details>div{display:flex;flex-direction:column;border-left:2px solid rgba(121,184,63,.75);padding-left:12px}.contact-details span{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:#8fc8e2}.contact-details strong{font-size:.92rem;color:#fff}.contact-form{background:#fff;color:var(--ink);padding:30px;border-radius:24px;box-shadow:0 25px 70px rgba(2,22,42,.22)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.contact-form label{display:grid;gap:7px;font-size:.78rem;font-weight:750;color:#35536d;margin-bottom:15px}.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:1px solid #d7e3eb;border-radius:12px;padding:12px 13px;outline:none;color:var(--ink);background:#fbfdfe;transition:border-color .2s,box-shadow .2s}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:#68b5dd;box-shadow:0 0 0 4px rgba(13,121,200,.08)}.contact-form textarea{resize:vertical}.consent{display:flex!important;grid-template-columns:auto 1fr!important;align-items:flex-start;gap:9px!important;font-weight:500!important;color:var(--muted)!important}.consent input{width:auto;margin-top:4px}.button--form{width:100%;border:0;background:var(--green);color:#fff;border-radius:12px}.form-note{text-align:center;font-size:.68rem;color:#7b8d9f;margin:10px 0 0}

.footer{background:#082f53;color:#d6e4ef;padding-top:55px}.footer-grid{display:grid;grid-template-columns:1.7fr .7fr .9fr;gap:70px;padding-bottom:45px}.brand--footer strong{color:#fff}.brand--footer small{color:#82c5e5}.footer-brand>p{font-size:.82rem;color:#9eb9cf;max-width:440px;margin-top:18px}.footer-grid>div:not(.footer-brand){display:flex;flex-direction:column;gap:8px;font-size:.8rem}.footer-grid>div:not(.footer-brand)>strong{color:#fff;margin-bottom:6px;font-size:.87rem}.footer-grid a:hover{color:#fff}.footer-grid span{color:#a8bfd2}.footer-bottom{border-top:1px solid rgba(255,255,255,.09);padding:18px 0 24px;display:flex;justify-content:space-between;font-size:.72rem;color:#87a6bf}
.whatsapp-float{position:fixed;right:24px;bottom:24px;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:#25d366;box-shadow:0 10px 25px rgba(0,0,0,.18);z-index:90;transition:transform .2s}.whatsapp-float:hover{transform:translateY(-3px) scale(1.02)}.whatsapp-float svg{width:30px;height:30px;fill:#fff}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}.reveal--delay{transition-delay:.12s}.reveal.visible{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.button,.service-card{transition:none}}

@media (max-width:980px){
  .nav-menu{position:absolute;top:80px;left:20px;right:20px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:18px;display:none;flex-direction:column;align-items:stretch;gap:7px}.nav-menu.open{display:flex}.nav-menu a{padding:10px 12px}.nav-cta{text-align:center;margin-top:4px}.menu-button{display:block}.hero{padding-top:65px}.hero-grid{grid-template-columns:1fr;gap:55px}.hero-copy{text-align:center}.hero .eyebrow{justify-content:center}.hero-lead{margin-left:auto;margin-right:auto}.hero-actions,.trust-row{justify-content:center}.hero-visual{max-width:520px;margin:auto}.service-grid{grid-template-columns:repeat(2,1fr)}.section-heading,.about-grid,.faq-grid,.contact-grid,.family-grid{grid-template-columns:1fr;gap:42px}.about-visual{order:2}.about-copy{order:1}.timeline{grid-template-columns:repeat(2,1fr);gap:44px 0}.timeline::before{display:none}.faq-intro{position:static}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.signal-grid>div{display:block}.signal-grid strong,.signal-grid span{display:block}.signal-grid span{margin-top:2px}
}

@media (max-width:640px){
  :root{--container:min(100% - 28px,1160px)}
  .nav-wrap{height:70px}.nav-menu{top:70px}.brand img{width:45px}.brand strong{font-size:.95rem}.brand small{font-size:.59rem}
  .hero{padding:52px 0 55px}.hero h1{font-size:clamp(2.35rem,12vw,3.4rem)}.hero-lead{font-size:1rem}.hero-actions{display:grid}.button{width:100%}.trust-row{gap:10px 15px}.credential-card--top{right:-2%;top:5%}.credential-card--bottom{left:-3%;bottom:5%;max-width:250px}.credential-card{padding:10px 12px}.portrait-card{width:94%}
  .signal-grid{grid-template-columns:1fr}.signal-grid>div{padding:13px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.12)}.signal-grid>div:last-child{border-bottom:0}
  .section{padding:72px 0}.section-heading{gap:18px}.service-grid{grid-template-columns:1fr}.service-card{min-height:320px}.pixel-cluster{right:-25px;transform:scale(.75)}.timeline{grid-template-columns:1fr;gap:34px}.timeline-step{max-width:420px;margin:auto}.testimonial-card{padding:42px 24px}.testimonial blockquote{font-size:1.12rem}.field-row{grid-template-columns:1fr;gap:0}.contact-form{padding:22px 18px}.footer-grid{grid-template-columns:1fr;gap:28px}.footer-brand{grid-column:auto}.footer-bottom{flex-direction:column;gap:8px}.whatsapp-float{width:52px;height:52px;right:16px;bottom:16px}
}

/* =========================================================
   Ajustes de diseño — retroalimentación septiembre 2026
   ========================================================= */

body{
  font-size:17px;
}

.nav-menu{
  font-size:1rem;
}

.hero .eyebrow{
  font-size:.9rem;
  letter-spacing:.13em;
}

.hero-lead{
  font-size:1.24rem;
  line-height:1.62;
  max-width:720px;
}

.button{
  font-size:1rem;
  padding:15px 24px;
}

.trust-row{
  font-size:.96rem;
}

/* Franja: solo verbos principales, con mayor presencia visual */
.signal-grid{
  padding:28px 0;
}
.signal-grid>div{
  justify-content:center;
  padding:4px 24px;
}
.signal-grid strong{
  font-size:1.45rem;
  line-height:1.1;
  letter-spacing:-.02em;
}
.signal-grid span{
  display:none;
}

.section-heading p,
.about-copy>p,
.faq-intro p,
.contact-copy>p,
.family-copy p{
  font-size:1.08rem;
  line-height:1.72;
}

.section-heading h2,
.about h2,
.faq h2,
.contact h2,
.family-band h2{
  font-size:clamp(2.35rem,4.35vw,3.8rem);
}

/* Servicios: prioriza el nombre. El detalle aparece al interactuar. */
.service-card{
  min-height:310px;
  padding:32px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  cursor:default;
  isolation:isolate;
}
.service-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,0) 35%,rgba(234,245,251,.76) 100%);
  opacity:0;
  transition:opacity .32s ease;
  z-index:-1;
}
.service-card.featured::after{
  background:linear-gradient(180deg,rgba(255,255,255,0) 25%,rgba(255,255,255,.08) 100%);
}
.service-card h3{
  font-size:1.58rem;
  line-height:1.16;
  margin:34px 0 0;
  max-width:95%;
  transition:transform .32s ease, margin .32s ease;
}
.service-card .service-icon{
  width:54px;
  height:54px;
  font-size:1.45rem;
}
.service-card .service-number{
  font-size:3rem;
}
.service-hint{
  display:inline-flex;
  margin-top:auto;
  padding-top:22px;
  color:var(--blue-700);
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  transition:opacity .22s ease,transform .22s ease;
}
.featured .service-hint{
  color:#dceefa;
}
.service-card p{
  font-size:1rem;
  line-height:1.58;
  margin:14px 0 62px;
  opacity:0;
  max-height:0;
  overflow:hidden;
  transform:translateY(10px);
  transition:opacity .28s ease,transform .32s ease,max-height .38s ease;
}
.service-card a{
  left:32px;
  bottom:29px;
  font-size:.95rem;
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  transition:opacity .24s ease,transform .28s ease,visibility 0s linear .28s;
}
.service-card:hover,
.service-card:focus,
.service-card:focus-within,
.service-card.is-open{
  transform:translateY(-5px);
  box-shadow:var(--shadow);
  border-color:#c4ddeb;
}
.service-card:hover::after,
.service-card:focus::after,
.service-card:focus-within::after,
.service-card.is-open::after{
  opacity:1;
}
.service-card:hover h3,
.service-card:focus h3,
.service-card:focus-within h3,
.service-card.is-open h3{
  transform:translateY(-2px);
}
.service-card:hover .service-hint,
.service-card:focus .service-hint,
.service-card:focus-within .service-hint,
.service-card.is-open .service-hint{
  opacity:0;
  transform:translateY(-4px);
  position:absolute;
  pointer-events:none;
}
.service-card:hover p,
.service-card:focus p,
.service-card:focus-within p,
.service-card.is-open p{
  opacity:1;
  max-height:180px;
  transform:translateY(0);
}
.service-card:hover a,
.service-card:focus a,
.service-card:focus-within a,
.service-card.is-open a{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  transition-delay:.06s;
}

/* Cómo trabajo: se eliminan los párrafos pequeños y se amplían los títulos */
.section-heading--center{
  max-width:900px;
  margin-bottom:64px;
}
.timeline::before{
  top:35px;
}
.timeline-step>span{
  width:70px;
  height:70px;
  font-size:1.2rem;
  margin-bottom:30px;
}
.timeline-step h3{
  font-size:1.35rem;
  line-height:1.25;
  margin:0;
  padding:0 8px;
}
.timeline-step p{
  display:none;
}

.qualification-list strong{
  font-size:1rem;
}
.qualification-list small{
  font-size:.86rem;
}
.faq summary{
  font-size:1.05rem;
  padding-top:22px;
  padding-bottom:22px;
}
.faq details p{
  font-size:1rem;
  line-height:1.65;
}
.contact-details strong{
  font-size:1.02rem;
}
.contact-form label{
  font-size:.9rem;
}
.contact-form input,
.contact-form select,
.contact-form textarea{
  font-size:1rem;
  padding:14px 14px;
}
.footer-brand>p,
.footer-grid>div:not(.footer-brand){
  font-size:.9rem;
}

@media (max-width:980px){
  .signal-grid{
    grid-template-columns:repeat(3,1fr);
  }
  .signal-grid>div{
    display:flex;
  }
  .signal-grid strong{
    display:block;
    font-size:1.3rem;
  }
  .service-card{
    min-height:285px;
  }
  .timeline-step h3{
    font-size:1.3rem;
  }
}

@media (max-width:640px){
  body{
    font-size:16.5px;
  }
  .nav-wrap{
    height:72px;
  }
  .hero{
    padding:44px 0 54px;
  }
  .hero .eyebrow{
    font-size:.78rem;
    line-height:1.35;
  }
  .hero h1{
    font-size:clamp(2.55rem,12.4vw,3.45rem);
    line-height:1.01;
    margin-top:18px;
  }
  .hero-lead{
    font-size:1.08rem;
    line-height:1.62;
  }
  .button{
    font-size:1rem;
    padding:15px 18px;
  }
  .trust-row{
    font-size:.9rem;
    justify-content:flex-start;
    text-align:left;
  }
  .hero-copy{
    text-align:left;
  }
  .hero .eyebrow,
  .hero-actions{
    justify-content:flex-start;
  }
  .hero-actions{
    width:100%;
  }
  .signal-grid{
    grid-template-columns:repeat(3,1fr);
    padding:0;
  }
  .signal-grid>div{
    min-height:76px;
    padding:0 6px;
    border-right:1px solid rgba(255,255,255,.12);
    border-bottom:0;
    align-items:center;
    justify-content:center;
    text-align:center;
  }
  .signal-grid>div:last-child{
    border-right:0;
  }
  .signal-grid strong{
    font-size:1.02rem;
    line-height:1.15;
  }
  .section{
    padding:68px 0;
  }
  .section-heading h2,
  .about h2,
  .faq h2,
  .contact h2,
  .family-band h2{
    font-size:clamp(2.15rem,10.5vw,3rem);
    line-height:1.05;
  }
  .section-heading p,
  .about-copy>p,
  .faq-intro p,
  .contact-copy>p,
  .family-copy p{
    font-size:1.04rem;
    line-height:1.7;
  }
  .service-grid{
    gap:14px;
  }
  .service-card{
    min-height:235px;
    padding:26px;
    cursor:pointer;
    transition:min-height .35s ease,transform .25s ease,box-shadow .25s ease,border-color .25s ease;
  }
  .service-card.is-open{
    min-height:405px;
  }
  .service-card h3{
    font-size:1.5rem;
    margin-top:28px;
  }
  .service-card .service-number{
    font-size:2.7rem;
  }
  .service-card .service-icon{
    width:50px;
    height:50px;
  }
  .service-hint{
    font-size:.76rem;
  }
  .service-card p{
    font-size:1rem;
    line-height:1.6;
    margin-bottom:64px;
  }
  .service-card.is-open p,
  .service-card:focus p,
  .service-card:focus-within p{
    max-height:240px;
  }
  .service-card a{
    left:26px;
    bottom:27px;
    font-size:.92rem;
  }
  .section-heading--center{
    margin-bottom:48px;
  }
  .timeline{
    gap:26px;
  }
  .timeline-step{
    display:grid;
    grid-template-columns:64px 1fr;
    gap:18px;
    align-items:center;
    max-width:none;
    width:100%;
    text-align:left;
    padding:0;
  }
  .timeline-step>span{
    width:62px;
    height:62px;
    margin:0;
    font-size:1.15rem;
    box-shadow:none;
  }
  .timeline-step h3{
    font-size:1.32rem;
    padding:0;
  }
  .testimonial blockquote{
    font-size:1.2rem;
  }
  .faq summary{
    font-size:1.03rem;
  }
  .contact-form label{
    font-size:.9rem;
  }
  .footer-grid>div:not(.footer-brand),
  .footer-brand>p{
    font-size:.9rem;
  }
}


/* Ajustes finales: bloque Sobre mí, tarjetas compactas y enlace destacado a Instagram */
.about{
  background:var(--surface);
}
.about .about-grid{
  grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);
  gap:52px;
  align-items:center;
  background:#fff;
  border:1px solid var(--line);
  border-radius:34px;
  padding:46px;
  box-shadow:0 18px 52px rgba(14,63,111,.07);
}
.about-image-wrap{
  max-width:330px;
}
.about-copy h2{
  max-width:780px;
  margin-bottom:18px;
}
.about-copy>p{
  margin:0 0 14px;
  max-width:780px;
}
.qualification-list{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:22px;
}
.qualification-list>div{
  min-height:106px;
  padding:14px;
}
.qualification-list strong{
  font-size:.95rem;
  line-height:1.35;
}
.qualification-list small{
  font-size:.8rem;
  line-height:1.45;
}

/* Servicios: más compactos en reposo; la tarjeta se expande con el detalle. */
.service-grid{
  align-items:start;
}
.service-card{
  height:292px;
  min-height:292px;
  padding:28px;
  overflow:hidden;
  transition:height .34s ease,transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.service-card h3{
  font-size:1.48rem;
  margin-top:28px;
}
.service-card .service-icon{
  width:50px;
  height:50px;
}
.service-card .service-number{
  font-size:2.75rem;
}
.service-card:hover,
.service-card:focus,
.service-card:focus-within,
.service-card.is-open{
  height:392px;
  min-height:392px;
  z-index:4;
}
.service-card p{
  margin:13px 0 58px;
}

/* Bloque visual para Instagram */
.instagram-band{
  padding-top:34px;
  padding-bottom:34px;
  background:#fff;
}
.instagram-card{
  display:grid;
  grid-template-columns:84px 1fr;
  gap:26px;
  align-items:center;
  padding:30px 34px;
  border:1px solid var(--line);
  border-radius:28px;
  background:linear-gradient(135deg,#f7fbfe 0%,#eef7fc 100%);
  box-shadow:0 14px 40px rgba(14,63,111,.07);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.instagram-card:hover{
  transform:translateY(-3px);
  box-shadow:0 20px 52px rgba(14,63,111,.11);
  border-color:#bfdceb;
}
.instagram-icon{
  position:relative;
  width:72px;
  height:72px;
  border-radius:22px;
  display:grid;
  place-items:center;
  background:linear-gradient(145deg,var(--blue-900),var(--blue-600));
}
.instagram-icon::before{
  content:"";
  width:31px;
  height:31px;
  border:3px solid #fff;
  border-radius:10px;
}
.instagram-icon::after{
  content:"";
  position:absolute;
  width:9px;
  height:9px;
  border:3px solid #fff;
  border-radius:50%;
}
.instagram-icon i{
  position:absolute;
  width:5px;
  height:5px;
  border-radius:50%;
  background:#fff;
  transform:translate(11px,-11px);
}
.instagram-copy .kicker{
  margin-bottom:8px;
}
.instagram-copy h2{
  margin:0 0 10px;
  max-width:850px;
  font-size:clamp(1.65rem,3.1vw,2.55rem);
  line-height:1.08;
}
.instagram-copy strong{
  color:var(--blue-700);
  font-size:1.05rem;
}
.instagram-copy strong span{
  display:inline-block;
  margin-left:5px;
  transition:transform .2s ease;
}
.instagram-card:hover .instagram-copy strong span{
  transform:translateX(4px);
}

@media (max-width:980px){
  .about .about-grid{
    grid-template-columns:1fr;
    gap:30px;
    padding:36px;
  }
  .about-visual{
    order:1;
  }
  .about-copy{
    order:2;
  }
  .about-image-wrap{
    max-width:300px;
  }
  .qualification-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:640px){
  .about .about-grid{
    gap:26px;
    padding:24px 20px;
    border-radius:26px;
  }
  .about-image-wrap{
    max-width:250px;
  }
  .qualification-list{
    grid-template-columns:1fr;
  }
  .qualification-list>div{
    min-height:0;
  }
  .service-card{
    height:220px;
    min-height:220px;
    padding:24px;
  }
  .service-card h3{
    font-size:1.38rem;
    margin-top:22px;
  }
  .service-card.is-open,
  .service-card:focus,
  .service-card:focus-within{
    height:390px;
    min-height:390px;
  }
  .service-card:hover:not(.is-open):not(:focus):not(:focus-within){
    height:220px;
    min-height:220px;
  }
  .instagram-band{
    padding-top:20px;
    padding-bottom:20px;
  }
  .instagram-card{
    grid-template-columns:56px 1fr;
    gap:16px;
    padding:22px 18px;
    border-radius:22px;
  }
  .instagram-icon{
    width:54px;
    height:54px;
    border-radius:17px;
  }
  .instagram-icon::before{
    width:24px;
    height:24px;
    border-width:2px;
    border-radius:8px;
  }
  .instagram-icon::after{
    width:7px;
    height:7px;
    border-width:2px;
  }
  .instagram-icon i{
    width:4px;
    height:4px;
    transform:translate(8px,-8px);
  }
  .instagram-copy h2{
    font-size:1.35rem;
  }
  .instagram-copy strong{
    font-size:.98rem;
  }
}

/* Retroalimentación final: Sobre mí, credenciales del hero y banda de enfoque */
.credential-card{
  padding:16px 19px;
  gap:13px;
}
.credential-card strong{
  font-size:1.08rem;
  line-height:1.15;
}
.credential-card small{
  font-size:.87rem;
  line-height:1.3;
  margin-top:4px;
}
.credential-card .credential-icon{
  min-width:52px;
  height:52px;
  font-size:1.15rem;
}
.credential-card--bottom{
  max-width:330px;
}
.credential-card--bottom strong{
  font-size:1.05rem;
}
.credential-card--bottom small{
  font-size:.84rem;
}

.about-copy h2{
  max-width:700px;
}
.qualification-list>div{
  min-height:82px;
  align-items:center;
}
.qualification-list strong{
  font-size:1.02rem;
  line-height:1.35;
}
.qualification-list small{
  display:none;
}

.family-grid{
  grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);
}
.family-logo-wrap{
  min-height:270px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
}
.family-logo-wrap::before{
  content:"";
  position:absolute;
  width:300px;
  height:300px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.09);
}
.family-logo{
  width:min(72%,320px);
  height:auto;
  filter:brightness(0) invert(1);
  opacity:.96;
  position:relative;
  z-index:2;
}

@media (max-width:980px){
  .family-grid{
    grid-template-columns:1fr;
    gap:20px;
  }
  .family-logo-wrap{
    min-height:190px;
  }
  .family-logo-wrap::before{
    width:210px;
    height:210px;
  }
  .family-logo{
    width:min(54%,250px);
  }
}

@media (max-width:640px){
  .credential-card{
    padding:12px 14px;
    gap:10px;
  }
  .credential-card strong{
    font-size:.98rem;
  }
  .credential-card small{
    font-size:.78rem;
  }
  .credential-card .credential-icon{
    min-width:46px;
    height:46px;
    font-size:1.02rem;
  }
  .credential-card--bottom{
    max-width:275px;
  }
  .credential-card--bottom strong{
    font-size:.94rem;
  }
  .credential-card--bottom small{
    font-size:.74rem;
  }
  .qualification-list>div{
    min-height:0;
  }
  .qualification-list strong{
    font-size:1rem;
  }
  .family-logo-wrap{
    min-height:150px;
  }
  .family-logo-wrap::before{
    width:165px;
    height:165px;
  }
  .family-logo{
    width:min(58%,190px);
  }
}


/* Ajuste Guayaquil final: datos de contacto actualizados y visual conceptual en Sobre mí */
.about .about-grid{
  align-items:stretch;
}
.about-visual{
  display:flex;
  align-items:center;
}
.about-concept-card{
  position:relative;
  width:100%;
  min-height:100%;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:26px;
  padding:30px 28px;
  border-radius:30px;
  border:1px solid #d7e7f0;
  background:linear-gradient(180deg,#f9fcfe 0%, #edf6fb 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
  overflow:hidden;
}
.about-concept-card::before{
  content:"";
  position:absolute;
  inset:auto -40px -40px auto;
  width:170px;
  height:170px;
  border-radius:50%;
  background:radial-gradient(circle at center, rgba(13,103,173,.10), rgba(13,103,173,0));
}
.about-concept-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
}
.about-concept-kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--blue-800);
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:.9rem;
}
.about-concept-kicker::before{
  content:"";
  width:42px;
  height:2px;
  border-radius:999px;
  background:var(--green);
}
.about-brand-mark{
  width:82px;
  height:auto;
  opacity:.95;
}
.about-concept-core{
  position:relative;
  min-height:250px;
  display:grid;
  place-items:center;
  border-radius:28px;
  background:linear-gradient(135deg, rgba(13,77,131,.05), rgba(13,103,173,.11));
  overflow:hidden;
}
.about-ring{
  position:absolute;
  border-radius:50%;
  border:1px solid rgba(13,103,173,.18);
}
.about-ring--one{
  width:250px;
  height:250px;
}
.about-ring--two{
  width:170px;
  height:170px;
  border-color:rgba(121,184,63,.28);
}
.about-core-copy{
  position:relative;
  z-index:2;
  display:grid;
  gap:7px;
  text-align:center;
  max-width:220px;
}
.about-core-copy strong{
  font-size:2.05rem;
  line-height:1.02;
  letter-spacing:-.03em;
  color:var(--blue-900);
}
.about-core-copy span{
  font-size:1rem;
  line-height:1.45;
  color:#54718a;
}
.about-pill-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.about-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:11px 14px;
  border-radius:999px;
  background:#fff;
  border:1px solid #d8e6ef;
  color:var(--blue-800);
  font-size:.92rem;
  font-weight:700;
  line-height:1.2;
  box-shadow:0 10px 22px rgba(13,77,131,.05);
}

@media (max-width:980px){
  .about-concept-card{
    min-height:unset;
    padding:24px;
  }
  .about-concept-core{
    min-height:220px;
  }
}

@media (max-width:640px){
  .about-concept-card{
    padding:20px 18px;
    border-radius:24px;
    gap:18px;
  }
  .about-concept-top{
    gap:14px;
  }
  .about-concept-kicker{
    font-size:.78rem;
  }
  .about-brand-mark{
    width:62px;
  }
  .about-concept-core{
    min-height:190px;
    border-radius:22px;
  }
  .about-ring--one{
    width:210px;
    height:210px;
  }
  .about-ring--two{
    width:140px;
    height:140px;
  }
  .about-core-copy strong{
    font-size:1.7rem;
  }
  .about-core-copy span{
    font-size:.95rem;
  }
  .about-pill{
    width:100%;
    justify-content:flex-start;
    font-size:.88rem;
  }
}


/* Contacto directo por WhatsApp: formulario eliminado */
.contact-direct-grid{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(360px,1.08fr);
  gap:70px;
  align-items:center;
  position:relative;
  z-index:1;
}
.contact-action-card{
  background:#fff;
  color:var(--ink);
  padding:34px;
  border-radius:26px;
  box-shadow:0 25px 70px rgba(2,22,42,.22);
  border:1px solid rgba(255,255,255,.45);
}
.contact-action-icon{
  width:64px;
  height:64px;
  display:grid;
  place-items:center;
  border-radius:20px;
  background:#e9f9ef;
  color:#128c4f;
  margin-bottom:22px;
}
.contact-action-icon svg{width:34px;height:34px;fill:currentColor}
.contact-action-kicker{
  display:block;
  color:#128c4f;
  font-size:.78rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.1em;
  margin-bottom:8px;
}
.contact-action-card h3{
  margin:0 0 12px;
  color:var(--blue-900);
  font-size:clamp(1.85rem,3vw,2.65rem);
  line-height:1.06;
  letter-spacing:-.04em;
}
.contact-action-card p{
  color:var(--muted);
  font-size:1rem;
  line-height:1.65;
  margin:0 0 24px;
}
.whatsapp-direct-button{
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  width:100%;
  padding:14px 20px;
  border-radius:15px;
  text-decoration:none;
  font-size:1rem;
  font-weight:850;
  color:#06351f;
  background:#25D366;
  box-shadow:0 14px 30px rgba(37,211,102,.22);
  transition:transform .2s ease, box-shadow .2s ease;
}
.whatsapp-direct-button:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 36px rgba(37,211,102,.28);
}
.contact-action-card small{
  display:block;
  text-align:center;
  color:#77899b;
  margin-top:13px;
  font-size:.76rem;
}
@media (max-width:980px){
  .contact-direct-grid{grid-template-columns:1fr;gap:34px}
  .contact-action-card{max-width:680px;width:100%}
}
@media (max-width:640px){
  .contact-action-card{padding:26px 20px;border-radius:22px}
  .contact-action-card h3{font-size:1.9rem}
  .whatsapp-direct-button{font-size:.98rem}
}


/* Enlaces internos para Google Ads: evita que el encabezado fijo tape la tarjeta. */
.service-card[id],
#sobre-mi,
#contacto {
  scroll-margin-top: 120px;
}
