/* Impulsándote · CSS para WordPress
 * Origen: sitio_fuente/public/styles.css (versión publicada de referencia).
 * Único cambio: todos los selectores van precedidos por .imp-site para que ni el tema ni Elementor
 * pisen los estilos, y viceversa. :root y body se han convertido en .imp-site.
 * No carga fuentes externas: usa Inter si el visitante la tiene y, si no, la fuente del sistema.
 */
.imp-site{
  color-scheme: light;
  --charcoal: #141A18;
  --charcoal-soft: #1B2420;
  --charcoal-mid: #26302B;
  --sage: #8DA782;
  --sage-dark: #6D8564;
  --sage-pale: #E6EBE1;
  --ivory: #F2F3ED;
  --paper: #FAFAF7;
  --ink: #18211C;
  --muted: #616B63;
  --line: rgba(20, 26, 24, .14);
  --line-light: rgba(242, 243, 237, .16);
  --radius-lg: 26px;
  --radius-md: 18px;
  --shadow: 0 24px 60px rgba(14, 20, 17, .18);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.imp-site, .imp-site *, .imp-site *::before, .imp-site *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; scroll-padding-top: 90px; }
.imp-site{ margin: 0; background: var(--ivory); color: var(--ink); line-height: 1.6; -webkit-font-smoothing: antialiased; }
.imp-site img{ display: block; max-width: 100%; }
.imp-site a{ color: inherit; }
.imp-site button, .imp-site input, .imp-site textarea{ font: inherit; }
.imp-site button, .imp-site a{ -webkit-tap-highlight-color: transparent; }
.imp-site :focus-visible{ outline: 3px solid #AFC5A1; outline-offset: 4px; }
.imp-site .page-wrap{ width: min(1160px, calc(100% - 48px)); margin-inline: auto; }
.imp-site .skip-link{ position: absolute; z-index: 20; left: 12px; top: 12px; transform: translateY(-180%); background: var(--ivory); color: var(--charcoal); padding: 10px 14px; border-radius: 8px; font-weight: 700; }
.imp-site .skip-link:focus{ transform: translateY(0); }
.imp-site .site-header{ position: sticky; top: 0; z-index: 15; background: rgba(20, 26, 24, .96); color: var(--ivory); border-bottom: 1px solid rgba(242, 243, 237, .09); backdrop-filter: blur(16px); }
.imp-site .nav-shell{ width: min(1240px, calc(100% - 48px)); min-height: 78px; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 22px; }
.imp-site .brand{ display: inline-flex; align-items: center; gap: 10px; color: var(--ivory); text-decoration: none; font-weight: 750; letter-spacing: -.045em; font-size: 1.16rem; white-space: nowrap; }
.imp-site .brand img, .imp-site .brand svg{ width: 38px; height: 38px; }
.imp-site .main-nav{ display: flex; gap: clamp(16px, 2.2vw, 30px); margin-left: auto; margin-right: 12px; }
.imp-site .main-nav a, .imp-site .nav-cta{ color: rgba(242, 243, 237, .82); text-decoration: none; font-size: .86rem; font-weight: 580; transition: color .2s ease; }
.imp-site .main-nav a:hover, .imp-site .main-nav a:focus-visible{ color: var(--sage); }
.imp-site .nav-cta{ color: var(--charcoal); background: var(--sage); padding: 10px 15px; border-radius: 999px; font-weight: 730; white-space: nowrap; }
.imp-site .nav-cta:hover{ background: #A2B795; }
.imp-site .nav-cta span{ padding-left: 5px; }
.imp-site .hero{ background: var(--charcoal); color: var(--ivory); position: relative; overflow: hidden; padding: 72px 0 0; }
.imp-site .hero::before{ content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .2; background-image: linear-gradient(rgba(242,243,237,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(242,243,237,.035) 1px, transparent 1px); background-size: 76px 76px; mask-image: linear-gradient(90deg, #000, transparent 72%); }
.imp-site .hero-glow{ width: 580px; height: 580px; border-radius: 50%; position: absolute; top: -270px; right: 9%; background: radial-gradient(circle, rgba(141,167,130,.22), transparent 67%); pointer-events: none; }
.imp-site .hero-inner{ position: relative; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr); align-items: start; gap: clamp(40px, 7vw, 86px); padding-bottom: 68px; }
.imp-site .hero-copy{ max-width: 630px; padding: 18px 0 22px; }
.imp-site .eyebrow{ margin: 0 0 18px; color: var(--sage); text-transform: uppercase; letter-spacing: .14em; font-weight: 760; font-size: .7rem; line-height: 1.4; }
.imp-site .eyebrow-dot{ display: inline-block; width: 7px; height: 7px; margin: 0 8px 1px 0; border-radius: 50%; background: var(--sage); box-shadow: 0 0 0 5px rgba(141,167,130,.14); }
.imp-site h1, .imp-site h2, .imp-site h3, .imp-site p{ margin-top: 0; }
.imp-site h1, .imp-site h2, .imp-site h3{ line-height: 1.08; letter-spacing: -.045em; }
.imp-site h1{ max-width: 680px; margin-bottom: 23px; font-size: clamp(2.75rem, 5.4vw, 5.1rem); font-weight: 710; }
.imp-site h1 em{ color: var(--sage); font-style: normal; }
.imp-site .hero-lead{ max-width: 590px; margin-bottom: 13px; color: rgba(242,243,237,.94); font-size: clamp(1.03rem, 1.55vw, 1.23rem); line-height: 1.65; }
.imp-site .hero-support{ max-width: 545px; margin-bottom: 28px; color: rgba(242,243,237,.65); font-size: .96rem; }
.imp-site .hero-actions{ display: flex; flex-wrap: wrap; align-items: center; gap: 13px; }
.imp-site .button{ min-height: 52px; display: inline-flex; justify-content: center; align-items: center; gap: 12px; padding: 13px 18px; border-radius: 999px; border: 1px solid transparent; text-decoration: none; font-size: .9rem; line-height: 1.3; font-weight: 740; transition: transform .2s ease, background .2s ease, border-color .2s ease; }
.imp-site .button:hover{ transform: translateY(-2px); }
.imp-site .button-primary{ background: var(--sage); color: var(--charcoal); }
.imp-site .button-primary:hover{ background: #A2B795; }
.imp-site .button-primary span{ font-size: 1.1rem; }
.imp-site .button-quiet{ color: var(--ivory); background: rgba(242,243,237,.04); border-color: rgba(242,243,237,.17); }
.imp-site .button-quiet:hover{ background: rgba(242,243,237,.1); border-color: rgba(242,243,237,.34); }
.imp-site .button-quiet svg, .imp-site .contact-direct-icon svg, .imp-site .whatsapp-float svg{ width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.imp-site .hero-services{ margin: 25px 0 0; color: rgba(242,243,237,.52); font-size: .78rem; letter-spacing: .025em; }
.imp-site .hero-services span{ color: var(--sage); padding-inline: 5px; }
.imp-site .hero-visual{ position: relative; margin: 46px 0 0; padding: 5px 4px 0 0; }
.imp-site .hero-photo-frame{ position: relative; overflow: hidden; aspect-ratio: 4 / 4.65; border-radius: 190px 190px 24px 24px; border: 1px solid rgba(242,243,237,.2); box-shadow: var(--shadow); background: var(--charcoal-mid); }
.imp-site .hero-photo-frame::after{ content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 44%, rgba(14, 20, 17, .54) 100%); }
.imp-site .hero-photo-frame img{ width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.imp-site .photo-label{ position: absolute; z-index: 1; bottom: 20px; left: 20px; right: 20px; display: flex; align-items: center; gap: 12px; color: white; font-size: .88rem; font-weight: 650; }
.imp-site .photo-label-mark{ display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 auto; color: var(--charcoal); background: var(--sage); border-radius: 50%; font-size: 1.1rem; }
.imp-site .hero-visual figcaption, .imp-site .approach-visual figcaption{ margin: 10px 4px 0; color: rgba(242,243,237,.48); font-size: .7rem; line-height: 1.4; }
.imp-site .hero-orbit{ position: absolute; top: 18%; right: -25px; width: 62px; height: 62px; border: 1px solid rgba(141,167,130,.6); border-radius: 50%; box-shadow: 0 0 0 11px rgba(141,167,130,.06), 0 0 0 22px rgba(141,167,130,.035); pointer-events: none; }
.imp-site .hero-bottom{ position: relative; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line-light); padding-block: 21px 24px; color: rgba(242,243,237,.75); font-size: .84rem; }
.imp-site .hero-bottom span{ display: flex; align-items: center; gap: 10px; }
.imp-site .hero-bottom i{ color: var(--sage); font-style: normal; font-size: .69rem; letter-spacing: .09em; font-weight: 800; }
.imp-site .section-pad{ padding-block: 105px; }
.imp-site .services{ background: var(--ivory); }
.imp-site .section-intro{ margin-bottom: 40px; }
.imp-site .section-intro-row{ display: flex; justify-content: space-between; align-items: end; gap: 40px; }
.imp-site .eyebrow-light{ color: var(--sage-dark); }
.imp-site h2{ max-width: 720px; margin-bottom: 0; color: var(--ink); font-size: clamp(2.15rem, 4vw, 3.4rem); font-weight: 700; }
.imp-site .section-deck{ max-width: 375px; margin: 0 0 4px; color: var(--muted); font-size: .98rem; }
.imp-site .service-grid{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.imp-site .service-card{ min-height: 330px; display: flex; flex-direction: column; padding: 27px; background: #E9EEE5; border: 1px solid rgba(109,133,100,.16); border-radius: var(--radius-md); box-shadow: 0 10px 32px rgba(20,26,24,.035); transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease, background-color .24s ease; }
.imp-site .service-card:hover, .imp-site .service-card:focus-within{ transform: translateY(-3px); background: #E5EBE0; box-shadow: 0 16px 38px rgba(20,26,24,.07); border-color: rgba(109,133,100,.3); }
.imp-site .service-card-top{ display: flex; align-items: center; justify-content: space-between; margin-bottom: 38px; }
.imp-site .service-number{ color: #52634F; font-size: .72rem; letter-spacing: .1em; font-weight: 750; }
.imp-site .service-icon{ display: grid; place-items: center; width: 48px; height: 48px; border-radius: 15px; color: var(--charcoal); background: var(--sage-pale); }
.imp-site .service-icon svg{ width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.imp-site .service-card h3{ margin-bottom: 12px; font-size: 1.33rem; }
.imp-site .service-card p{ margin-bottom: 22px; color: var(--muted); font-size: .91rem; }
.imp-site .text-link{ width: fit-content; display: inline-flex; align-items: center; gap: 9px; margin-top: auto; color: #476444; text-decoration: none; font-size: .84rem; font-weight: 740; }
.imp-site .text-link:hover{ text-decoration: underline; text-underline-offset: 4px; }
.imp-site .services-note{ display: flex; align-items: center; gap: 10px; margin: 22px 0 0; color: #475147; font-size: .87rem; }
.imp-site .services-note-icon{ flex: 0 0 auto; color: var(--sage-dark); font-size: 1.2rem; }
.imp-site .services-whatsapp-mobile{ display: none; }
.imp-site .approach{ color: var(--ivory); background: var(--charcoal-soft); }
.imp-site .approach-grid{ display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); align-items: center; gap: clamp(50px, 8vw, 105px); }
.imp-site .approach-visual{ margin: 0; }
.imp-site .approach-visual-mobile{ display: none; }
.imp-site .approach-image-wrap{ overflow: hidden; aspect-ratio: 4 / 5; border-radius: 220px 220px 22px 22px; background: var(--charcoal-mid); }
.imp-site .approach-image-wrap img{ width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.imp-site .approach-visual figcaption{ max-width: 450px; color: rgba(242,243,237,.55); }
.imp-site .approach-copy h2{ color: var(--ivory); font-size: clamp(2.25rem, 4vw, 3.55rem); }
.imp-site .approach-lead{ max-width: 560px; margin: 22px 0 26px; color: rgba(242,243,237,.72); font-size: 1.03rem; }
.imp-site .value-list{ display: grid; gap: 16px; margin: 0 0 30px; padding: 0; list-style: none; }
.imp-site .value-list li{ display: flex; align-items: flex-start; gap: 13px; color: rgba(242,243,237,.72); font-size: .88rem; }
.imp-site .value-list strong{ color: var(--ivory); font-size: .95rem; }
.imp-site .value-icon{ display: grid; place-items: center; flex: 0 0 24px; width: 24px; height: 24px; margin-top: 1px; border-radius: 50%; color: var(--charcoal); background: var(--sage); font-size: .72rem; font-weight: 900; }
.imp-site .button-outline-light{ color: var(--ivory); border-color: rgba(242,243,237,.32); background: transparent; }
.imp-site .button-outline-light:hover{ border-color: var(--sage); background: rgba(141,167,130,.1); }
.imp-site .process{ background: var(--sage-pale); }
.imp-site .process-intro{ max-width: 660px; }
.imp-site .process-intro h2{ margin-bottom: 16px; }
.imp-site .process-intro .section-deck{ max-width: 530px; }
.imp-site .process-list{ display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin: 55px 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(20,26,24,.18); }
.imp-site .process-list li{ position: relative; padding: 25px 22px 8px 0; }
.imp-site .process-list li:not(:last-child)::after{ content: ""; position: absolute; top: -4px; right: 16px; width: 7px; height: 7px; border-radius: 50%; background: var(--sage-dark); }
.imp-site .process-list > li.is-entering{ animation: process-step-arrive .62s cubic-bezier(.2,.68,.3,1) both; }
.imp-site .process-list > li:nth-child(2).is-entering{ animation-delay: 90ms; }
.imp-site .process-list > li:nth-child(3).is-entering{ animation-delay: 180ms; }
.imp-site .process-list > li:nth-child(4).is-entering{ animation-delay: 270ms; }
@keyframes process-step-arrive{
  from { opacity: .38; transform: translate3d(0, 15px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
.imp-site .process-count{ display: block; margin-bottom: 23px; color: var(--sage-dark); font-size: .75rem; letter-spacing: .1em; font-weight: 850; }
.imp-site .process-list h3{ max-width: 210px; margin-bottom: 11px; font-size: 1.08rem; }
.imp-site .process-list p{ max-width: 230px; margin-bottom: 0; color: #59645B; font-size: .86rem; }
.imp-site .process-contact-link{ color: inherit; font-weight: inherit; text-decoration: none; }
.imp-site .process-contact-link:hover, .imp-site .process-contact-link:focus-visible{ color: #405F3A; text-decoration: underline; text-underline-offset: 3px; }
.imp-site .services-whatsapp-link{ color: #405F3A; font-weight: 720; text-underline-offset: 3px; }
.imp-site .services-whatsapp-link:hover{ color: #314A2E; }
.imp-site .process-footnote{ margin-top: 35px; padding: 15px 18px; border-left: 2px solid var(--sage-dark); background: rgba(250,250,247,.62); color: #37433A; font-size: .87rem; }
.imp-site .process-footnote span{ margin-right: 8px; color: var(--sage-dark); }
.imp-site .faq{ background: var(--ivory); }
.imp-site .faq-grid{ display: grid; grid-template-columns: minmax(270px, .75fr) minmax(0, 1.25fr); gap: clamp(50px, 8vw, 110px); align-items: start; }
.imp-site .faq-heading h2{ font-size: clamp(2.2rem, 3.7vw, 3.15rem); }
.imp-site .faq-heading > p:not(.eyebrow){ margin: 20px 0; color: var(--muted); }
.imp-site .text-link-light{ color: #476444; margin-top: 4px; }
.imp-site .faq-list{ border-top: 1px solid var(--line); }
.imp-site .faq-list details{ border-bottom: 1px solid var(--line); }
.imp-site .faq-list summary{ position: relative; padding: 21px 35px 21px 0; color: var(--ink); font-size: 1rem; font-weight: 680; list-style: none; cursor: pointer; }
.imp-site .faq-list summary::-webkit-details-marker{ display: none; }
.imp-site .faq-list summary::after{ content: "+"; position: absolute; top: 17px; right: 0; display: grid; place-items: center; width: 27px; height: 27px; border: 1px solid rgba(20,26,24,.19); border-radius: 50%; color: var(--sage-dark); font-size: 1.1rem; font-weight: 450; transition: transform .2s ease, background .2s ease; }
.imp-site .faq-list details[open] summary::after{ content: "−"; background: var(--sage-pale); transform: rotate(180deg); }
.imp-site .faq-list details p{ max-width: 640px; margin: -2px 40px 20px 0; color: var(--muted); font-size: .91rem; }
.imp-site .contact{ color: var(--ivory); background: var(--charcoal); }
.imp-site .contact-grid{ display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: start; gap: clamp(44px, 7vw, 92px); }
.imp-site .contact-copy{ padding-top: 14px; }
.imp-site .contact-copy h2{ color: var(--ivory); font-size: clamp(2.35rem, 4.4vw, 3.8rem); }
.imp-site .contact-copy > p:not(.eyebrow){ max-width: 440px; margin: 22px 0 34px; color: rgba(242,243,237,.68); }
.imp-site .contact-direct{ display: flex; align-items: center; gap: 13px; }
.imp-site .contact-direct-icon{ display: grid; place-items: center; width: 47px; height: 47px; flex: 0 0 auto; color: var(--charcoal); background: var(--sage); border-radius: 15px; }
.imp-site .contact-direct small{ display: block; color: rgba(242,243,237,.56); font-size: .75rem; }
.imp-site .contact-direct a{ display: inline-block; color: var(--ivory); text-decoration: none; font-weight: 690; }
.imp-site .contact-direct a:hover{ color: var(--sage); }
.imp-site .contact-form{ padding: clamp(22px, 4vw, 34px); color: var(--ink); background: var(--paper); border-radius: var(--radius-lg); box-shadow: 0 22px 55px rgba(0,0,0,.18); }
.imp-site .contact-form > label, .imp-site .form-row > label{ display: block; margin-bottom: 17px; color: #253129; font-size: .82rem; font-weight: 720; }
.imp-site .contact-form label > span, .imp-site .service-options legend span{ color: #60785A; }
.imp-site .form-row{ display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.imp-site .contact-form input[type="text"], .imp-site .contact-form input[type="email"], .imp-site .contact-form textarea{ display: block; width: 100%; margin-top: 8px; padding: 12px 13px; color: var(--ink); background: #fff; border: 1px solid rgba(20,26,24,.17); border-radius: 10px; outline: none; transition: border-color .2s ease, box-shadow .2s ease; }
.imp-site .contact-form input[type="text"], .imp-site .contact-form input[type="email"]{ min-height: 47px; }
.imp-site .contact-form textarea{ resize: vertical; min-height: 110px; }
.imp-site .contact-form input:focus, .imp-site .contact-form textarea:focus{ border-color: var(--sage-dark); box-shadow: 0 0 0 3px rgba(141,167,130,.2); }
.imp-site .service-options{ margin: 0 0 18px; padding: 0; border: 0; }
.imp-site .service-options legend{ color: #253129; font-size: .82rem; font-weight: 720; }
.imp-site .field-hint{ margin: 5px 0 10px; color: var(--muted); font-size: .75rem; }
.imp-site .checkbox-grid{ display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.imp-site .check-option{ display: flex; min-height: 42px; align-items: center; gap: 9px; padding: 9px 10px; background: #F2F3ED; border: 1px solid rgba(20,26,24,.09); border-radius: 9px; color: #344037; font-size: .78rem; cursor: pointer; }
.imp-site .check-option:has(input:checked){ border-color: var(--sage-dark); background: #E8EDE4; }
.imp-site .check-option input{ width: 16px; height: 16px; margin: 0; accent-color: var(--sage-dark); }
.imp-site .form-error{ display: block; min-height: 1px; margin-top: 6px; color: #A5332C; font-size: .76rem; }
.imp-site .form-disclosure{ margin: 0 0 14px; padding: 12px 13px; color: #47534A; background: var(--sage-pale); border-radius: 10px; font-size: .77rem; line-height: 1.5; }
.imp-site .form-honeypot{ position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.imp-site .form-fields[hidden], .imp-site .form-success[hidden], .imp-site .thank-you-steps[hidden], .imp-site .thank-you-mark[hidden]{ display: none !important; }
.imp-site .form-submit{ width: 100%; border: 0; cursor: pointer; }
.imp-site .form-submit:disabled{ opacity: .68; cursor: wait; }
.imp-site .form-status{ min-height: 0; margin: 0; color: #47534A; font-size: .82rem; }
.imp-site .form-status:not(:empty){ margin-top: 12px; }
.imp-site .form-status.is-error{ color: #A5332C; }
.imp-site .form-success{ padding: 12px 0 4px; }
.imp-site .form-success-kicker{ margin: 0 0 8px; color: #60785A; font-size: .7rem; font-weight: 820; letter-spacing: .12em; text-transform: uppercase; }
.imp-site .form-success h3{ margin: 0 0 12px; color: #253129; font-size: 1.3rem; }
.imp-site .form-success p:last-child{ margin-bottom: 0; color: #47534A; font-size: .9rem; line-height: 1.65; }
.imp-site .form-fallback{ margin: 11px 0 0; color: #667169; font-size: .75rem; }
.imp-site .form-fallback a{ color: #405F3A; font-weight: 720; }
.imp-site .site-footer{ color: rgba(242,243,237,.7); background: #101512; }
.imp-site .footer-main{ display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-block: 27px; border-bottom: 1px solid rgba(242,243,237,.13); }
.imp-site .footer-brand{ font-size: 1.02rem; }
.imp-site .footer-brand img, .imp-site .footer-brand svg{ width: 34px; height: 34px; }
.imp-site .footer-main > p{ margin: 0; color: rgba(242,243,237,.56); font-size: .78rem; }
.imp-site .footer-contact{ display: flex; gap: 10px; font-size: .78rem; }
.imp-site .footer-contact a{ text-decoration: none; }
.imp-site .footer-contact a:hover{ color: var(--sage); }
.imp-site .footer-legal{ display: flex; justify-content: space-between; gap: 20px; padding-block: 15px 20px; color: rgba(242,243,237,.47); font-size: .7rem; }
.imp-site .footer-legal p{ margin: 0; }
.imp-site .whatsapp-float{ position: fixed; z-index: 14; right: 22px; bottom: 22px; display: inline-flex; align-items: center; gap: 9px; min-height: 54px; padding: 0 18px; color: var(--charcoal); background: var(--sage); border: 1px solid rgba(20,26,24,.16); border-radius: 999px; box-shadow: 0 11px 35px rgba(10,16,12,.28); text-decoration: none; font-size: .82rem; font-weight: 780; transition: transform .2s ease, background .2s ease; }
.imp-site .whatsapp-float:hover{ transform: translateY(-3px); background: #A2B795; }
.imp-site .whatsapp-float svg{ width: 21px; height: 21px; }
@media (max-width: 940px){.imp-site .page-wrap{ width: min(100% - 40px, 760px); }
.imp-site .nav-shell{ width: calc(100% - 40px); }
.imp-site .hero-inner{ grid-template-columns: 1fr .78fr; gap: 34px; }
.imp-site h1{ font-size: clamp(2.65rem, 6.4vw, 4.2rem); }
.imp-site .hero-photo-frame{ aspect-ratio: 3.4 / 4.5; }
.imp-site .hero-actions{ align-items: flex-start; flex-direction: column; }
.imp-site .hero-bottom{ gap: 18px; font-size: .77rem; }
.imp-site .section-pad{ padding-block: 82px; }
.imp-site .service-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
.imp-site .service-card{ padding: 23px; }
.imp-site .approach-grid{ gap: 46px; }
.imp-site .process-list li{ padding-right: 13px; }
.imp-site .contact-grid{ gap: 38px; }

}
@media (min-width: 721px) and (max-height: 780px){.imp-site .hero{ padding-top: 32px; }
.imp-site .hero-visual{ width: min(100%, 460px); justify-self: end; }

}
@media (max-width: 720px){.imp-site .process-contact-link{ color: #405F3A; font-weight: 720; text-decoration: underline; text-underline-offset: 3px; }
.imp-site .services-whatsapp-mobile{ display: inline; }
html{ scroll-padding-top: 118px; }
.imp-site .page-wrap{ width: calc(100% - 36px); }
.imp-site .nav-shell{ width: calc(100% - 32px); min-height: 70px; flex-wrap: wrap; gap: 0; padding: 10px 0 9px; }
.imp-site .brand{ font-size: 1.05rem; }
.imp-site .brand img, .imp-site .brand svg{ width: 34px; height: 34px; }
.imp-site .nav-cta{ padding: 9px 12px; font-size: .75rem; }
.imp-site .main-nav{ order: 3; width: 100%; gap: 22px; margin: 7px 0 0; overflow-x: auto; scrollbar-width: none; }
.imp-site .main-nav::-webkit-scrollbar{ display: none; }
.imp-site .main-nav a{ white-space: nowrap; font-size: .73rem; }
.imp-site .hero{ padding-top: 47px; }
.imp-site .hero-inner{ display: flex; flex-direction: column; align-items: stretch; gap: 34px; padding-bottom: 39px; }
.imp-site .hero-copy{ padding: 0; }
.imp-site .eyebrow{ font-size: .64rem; margin-bottom: 15px; }
.imp-site h1{ max-width: 560px; margin-bottom: 18px; font-size: clamp(2.65rem, 11vw, 4.1rem); }
.imp-site .hero-lead{ font-size: 1.03rem; }
.imp-site .hero-support{ font-size: .9rem; }
.imp-site .hero-actions{ gap: 11px; }
.imp-site .hero-actions .button{ width: 100%; min-height: 50px; }
.imp-site .button{ font-size: .83rem; }
.imp-site .hero-services{ font-size: .72rem; line-height: 1.8; }
.imp-site .hero-visual{ width: min(100%, 480px); align-self: center; margin-top: 0; }
.imp-site .hero-photo-frame{ aspect-ratio: 1.06 / 1; border-radius: 120px 120px 22px 22px; }
.imp-site .hero-photo-frame img{ object-position: 50% 42%; }
.imp-site .hero-visual figcaption{ font-size: .65rem; }
.imp-site .hero-orbit{ right: -10px; width: 42px; height: 42px; }
.imp-site .hero-bottom{ grid-template-columns: 1fr; gap: 12px; padding-block: 18px 21px; font-size: .78rem; }
.imp-site .section-pad{ padding-block: 70px; }
.imp-site .section-intro-row{ display: block; }
.imp-site .section-deck{ margin-top: 18px; }
.imp-site h2{ font-size: clamp(2.1rem, 9vw, 3rem); }
.imp-site .service-grid{ grid-template-columns: 1fr; gap: 12px; }
.imp-site .service-card{ min-height: 0; padding: 23px; }
.imp-site .service-card-top{ margin-bottom: 25px; }
.imp-site .service-card p{ max-width: 440px; }
.imp-site .services-note{ align-items: flex-start; font-size: .82rem; }
.imp-site .approach-grid{ grid-template-columns: 1fr; gap: 34px; }
.imp-site .approach-visual-desktop{ display: none; }
.imp-site .approach-visual-mobile{ display: block; width: min(100%, 460px); margin: 20px auto 0; }
.imp-site .approach-visual{ width: min(100%, 460px); }
.imp-site .approach-image-wrap{ aspect-ratio: 4 / 5; border-radius: 150px 150px 20px 20px; }
.imp-site .approach-copy h2{ font-size: clamp(2.2rem, 9vw, 3rem); }
.imp-site .process-list{ grid-template-columns: 1fr; gap: 0; margin-top: 35px; border-top: 0; border-left: 1px solid rgba(20,26,24,.2); }
.imp-site .process-list li{ display: grid; grid-template-columns: 40px 1fr; gap: 10px; padding: 0 0 26px 17px; }
.imp-site .process-list li:not(:last-child)::after{ top: 9px; right: auto; left: -4px; }
.imp-site .process-count{ margin-bottom: 0; padding-top: 2px; }
.imp-site .process-list h3{ max-width: none; margin-bottom: 7px; }
.imp-site .process-list p{ max-width: 480px; }
.imp-site .process-footnote{ margin-top: 23px; font-size: .81rem; }
.imp-site .faq-grid{ grid-template-columns: 1fr; gap: 30px; }
.imp-site .faq-heading h2{ font-size: clamp(2.2rem, 9vw, 3rem); }
.imp-site .faq-list summary{ font-size: .93rem; }
.imp-site .faq-list details p{ font-size: .86rem; }
.imp-site .contact-grid{ grid-template-columns: 1fr; gap: 32px; }
.imp-site .contact-copy h2{ font-size: clamp(2.3rem, 9vw, 3.2rem); }
.imp-site .contact-form{ padding: 22px 18px; border-radius: 20px; }
.imp-site .form-row{ grid-template-columns: 1fr; gap: 0; }
.imp-site .checkbox-grid{ grid-template-columns: 1fr 1fr; }
.imp-site .check-option{ font-size: .72rem; padding: 8px; }
.imp-site .footer-main{ flex-wrap: wrap; align-items: flex-start; padding-block: 23px; }
.imp-site .footer-main > p{ flex-basis: 100%; order: 3; }
.imp-site .footer-contact{ margin-left: auto; flex-wrap: wrap; justify-content: flex-end; }
.imp-site .footer-legal{ display: block; padding-bottom: 22px; }
.imp-site .footer-legal p + p{ margin-top: 7px; }
.imp-site .whatsapp-float{ right: 15px; bottom: 15px; width: 54px; height: 54px; min-height: 54px; justify-content: center; padding: 0; }
.imp-site .whatsapp-float span{ position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.imp-site .whatsapp-float.is-obscured{ visibility: hidden; pointer-events: none; }

}
@media (max-width: 390px){.imp-site .nav-cta{ padding: 8px 10px; font-size: .7rem; }
.imp-site .brand{ gap: 7px; font-size: .96rem; }
.imp-site .main-nav{ gap: 16px; }
.imp-site .main-nav a{ font-size: .68rem; }
.imp-site .checkbox-grid{ grid-template-columns: 1fr; }

}
@media (prefers-reduced-motion: reduce){html{ scroll-behavior: auto; }
.imp-site, .imp-site *, .imp-site *::before, .imp-site *::after, .imp-site *::before, .imp-site *::after{ animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }

}
.imp-site [hidden]{ display: none !important; }
.imp-site .privacy-settings-link{ padding: 0; color: rgba(242,243,237,.72); background: transparent; border: 0; font: inherit; font-size: inherit; text-align: left; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.imp-site .privacy-settings-link:hover, .imp-site .privacy-settings-link:focus-visible{ color: var(--ivory); }
.imp-site .consent-banner{ position: fixed; z-index: 30; left: 22px; bottom: 22px; width: min(620px, calc(100vw - 132px)); max-height: min(82vh, 680px); overflow-y: auto; padding: 22px; color: var(--ink); background: var(--paper); border: 1px solid rgba(20,26,24,.15); border-radius: 20px; box-shadow: 0 18px 60px rgba(0,0,0,.28); }
.imp-site .consent-copy{ max-width: 550px; }
.imp-site .consent-kicker{ margin: 0 0 6px; color: var(--sage-dark); font-size: .66rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.imp-site .consent-copy h2{ margin: 0 0 9px; color: var(--ink); font-size: 1.23rem; letter-spacing: -.035em; }
.imp-site .consent-copy > p:last-child{ margin: 0; color: #536057; font-size: .78rem; line-height: 1.52; }
.imp-site .consent-actions, .imp-site .consent-settings-actions{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 16px; }
.imp-site .consent-actions button, .imp-site .consent-settings-actions button{ display: inline-flex; min-height: 42px; justify-content: center; align-items: center; padding: 9px 8px; color: #26302B; background: #F2F3ED; border: 1px solid rgba(20,26,24,.17); border-radius: 10px; font: inherit; font-size: .75rem; font-weight: 740; line-height: 1.2; cursor: pointer; transition: background .18s ease, border-color .18s ease; }
.imp-site .consent-actions button:hover, .imp-site .consent-settings-actions button:hover{ background: var(--sage-pale); border-color: var(--sage-dark); }
.imp-site .consent-actions button:focus-visible, .imp-site .consent-settings-actions button:focus-visible, .imp-site .privacy-settings-link:focus-visible{ outline: 3px solid var(--sage-dark); outline-offset: 3px; }
.imp-site .consent-settings{ margin-top: 17px; padding-top: 16px; border-top: 1px solid rgba(20,26,24,.13); }
.imp-site .consent-settings > p:first-child{ margin: 0; color: #536057; font-size: .76rem; line-height: 1.5; }
.imp-site .consent-options{ display: grid; gap: 8px; margin: 15px 0 0; padding: 0; border: 0; }
.imp-site .consent-options legend{ margin-bottom: 7px; color: #26302B; font-size: .78rem; font-weight: 780; }
.imp-site .consent-option{ display: flex; min-height: 50px; justify-content: space-between; align-items: center; gap: 14px; padding: 9px 11px; background: #F2F3ED; border: 1px solid rgba(20,26,24,.1); border-radius: 10px; cursor: pointer; }
.imp-site .consent-option strong, .imp-site .consent-option small{ display: block; }
.imp-site .consent-option strong{ color: #26302B; font-size: .76rem; }
.imp-site .consent-option small{ margin-top: 2px; color: #627066; font-size: .68rem; }
.imp-site .consent-option input{ width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--sage-dark); }
.imp-site .consent-essential{ margin: 11px 0 0; color: #667169; font-size: .68rem; }
.imp-site .consent-settings-actions{ grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 13px; }
.imp-site.thank-you-page{ min-height: 100vh; color: var(--ivory); background-color: var(--charcoal); background-image: radial-gradient(ellipse at 78% 7%, rgba(141,167,130,.17), transparent 42%), linear-gradient(140deg, rgba(38,48,43,.35), transparent 60%); }
.imp-site .thank-you-header{ position: relative; border-bottom: 1px solid var(--line-light); background: rgba(20,26,24,.72); }
.imp-site .thank-you-header-inner{ display: flex; min-height: 78px; align-items: center; justify-content: space-between; gap: 22px; }
.imp-site .thank-you-header-link{ color: rgba(242,243,237,.76); font-size: .82rem; font-weight: 650; text-decoration: none; }
.imp-site .thank-you-header-link span{ padding-left: 5px; color: var(--sage); }
.imp-site .thank-you-header-link:hover{ color: var(--ivory); }
.imp-site .thank-you-shell{ display: grid; min-height: calc(100svh - 142px); place-items: center; padding: 66px 24px; }
.imp-site .thank-you-card{ position: relative; width: min(100%, 760px); padding: clamp(26px, 5vw, 58px); color: var(--ivory); background: linear-gradient(145deg, rgba(38,48,43,.96), rgba(27,36,32,.98)); border: 1px solid rgba(242,243,237,.13); border-radius: 28px; box-shadow: 0 28px 80px rgba(0,0,0,.28); }
.imp-site .thank-you-card .eyebrow{ margin-bottom: 13px; }
.imp-site .thank-you-card h1{ max-width: 640px; margin: 0 0 18px; color: var(--ivory); font-size: clamp(2.45rem, 6vw, 4.35rem); }
.imp-site .thank-you-card > p:not(.eyebrow){ max-width: 620px; margin-bottom: 26px; color: rgba(242,243,237,.72); font-size: 1rem; line-height: 1.72; }
.imp-site .thank-you-mark{ display: grid; width: 58px; height: 58px; place-items: center; margin-bottom: 24px; color: var(--charcoal); background: var(--sage); border-radius: 50%; }
.imp-site .thank-you-mark svg{ width: 31px; height: 31px; fill: none; stroke: currentColor; stroke-width: 2.3; stroke-linecap: round; stroke-linejoin: round; }
.imp-site .thank-you-card .thank-you-lead{ font-size: 1.06rem; }
.imp-site .thank-you-steps{ display: grid; gap: 0; margin: 26px 0 30px; padding: 0; list-style: none; border-top: 1px solid var(--line-light); }
.imp-site .thank-you-steps li{ display: grid; grid-template-columns: 42px minmax(0,1fr); gap: 13px; padding: 18px 0; border-bottom: 1px solid var(--line-light); }
.imp-site .thank-you-steps li > span{ padding-top: 2px; color: var(--sage); font-size: .72rem; font-weight: 800; letter-spacing: .1em; }
.imp-site .thank-you-steps h2{ margin: 0 0 6px; color: var(--ivory); font-size: 1rem; letter-spacing: -.025em; }
.imp-site .thank-you-steps p{ margin: 0; color: rgba(242,243,237,.65); font-size: .84rem; line-height: 1.55; }
.imp-site .thank-you-actions{ display: flex; flex-wrap: wrap; gap: 11px; }
.imp-site .thank-you-footer{ color: rgba(242,243,237,.58); border-top: 1px solid var(--line-light); }
.imp-site .thank-you-footer-inner{ display: flex; min-height: 64px; align-items: center; justify-content: space-between; gap: 18px; font-size: .73rem; }
.imp-site .thank-you-footer-inner a{ color: var(--ivory); text-decoration: none; }
.imp-site .thank-you-footer-inner a:hover{ color: var(--sage); }
@media (prefers-reduced-motion: reduce){.imp-site .service-card{ transition: none; }
.imp-site .service-card:hover, .imp-site .service-card:focus-within{ transform: none; }
.imp-site .process-list > li.is-entering{ animation: none; }

}
@media (max-width: 720px){.imp-site .footer-legal{ display: block; padding-bottom: 22px; }
.imp-site .footer-legal .privacy-settings-link{ display: block; margin: 11px 0; }
.imp-site .consent-banner{ left: 12px; right: 12px; bottom: 82px; width: auto; max-height: calc(100vh - 100px); padding: 17px; border-radius: 16px; }
.imp-site .consent-copy h2{ font-size: 1.12rem; }
.imp-site .consent-actions{ gap: 6px; margin-top: 13px; }
.imp-site .consent-actions button{ min-height: 42px; padding: 8px 5px; font-size: .7rem; }
.imp-site .thank-you-header-inner{ min-height: 70px; gap: 10px; }
.imp-site .thank-you-header .brand{ font-size: 1.02rem; }
.imp-site .thank-you-header-link{ max-width: 152px; font-size: .69rem; line-height: 1.4; text-align: right; }
.imp-site .thank-you-shell{ min-height: calc(100svh - 133px); padding: 38px 18px; }
.imp-site .thank-you-card{ padding: 26px 21px; border-radius: 22px; }
.imp-site .thank-you-card h1{ font-size: clamp(2.25rem, 10vw, 3.3rem); }
.imp-site .thank-you-card > p:not(.eyebrow){ font-size: .91rem; }
.imp-site .thank-you-steps li{ grid-template-columns: 34px minmax(0,1fr); gap: 9px; padding: 15px 0; }
.imp-site .thank-you-actions{ flex-direction: column; }
.imp-site .thank-you-actions .button{ width: 100%; }
.imp-site .thank-you-footer-inner{ min-height: 0; flex-wrap: wrap; justify-content: flex-start; padding-block: 16px; gap: 8px 18px; }
.imp-site .thank-you-footer-inner .privacy-settings-link{ flex-basis: 100%; order: 3; }

}
@media (max-width: 390px){.imp-site .consent-banner{ padding: 14px; }
.imp-site .consent-actions button{ font-size: .66rem; }
.imp-site .thank-you-header .brand{ gap: 7px; font-size: .94rem; }
.imp-site .thank-you-header .brand img, .imp-site .thank-you-header .brand svg{ width: 32px; height: 32px; }

}
.imp-site .send-instruction-note{ margin: 0 0 24px; padding: 10px 0 10px 14px; color: var(--ink); background: transparent; border: 0; border-left: 2px solid var(--sage-dark); border-radius: 0; }
.imp-site .notice-label{ display: block; margin: 0 0 5px; color: #53694D; font-size: .66rem; font-weight: 760; letter-spacing: .1em; text-transform: uppercase; }
.imp-site .send-instruction-note p{ max-width: 68ch; margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.58; }
.imp-site .send-instruction-note strong{ color: var(--ink); font-weight: 650; }
@media (max-width: 720px){.imp-site .send-instruction-note{ margin-bottom: 20px; padding: 9px 0 9px 12px; }
.imp-site .send-instruction-note p{ font-size: .78rem; }

}
.imp-site .footer-legal-actions{ display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; }
.imp-site a.legal-info-link{ color: var(--sage); font-size: .76rem; font-weight: 720; text-decoration: underline; text-underline-offset: 3px; }
.imp-site a.legal-info-link:hover{ color: var(--ivory); }
.imp-site .legal-hero{ padding: 42px 0 34px; color: var(--ink); background: var(--ivory); border-bottom: 1px solid var(--line); }
.imp-site .legal-hero .eyebrow{ margin-bottom: 12px; color: #53694D; }
.imp-site .legal-hero h1{ max-width: 780px; margin-bottom: 12px; color: var(--ink); font-size: clamp(2.05rem, 4.2vw, 3.05rem); letter-spacing: -.035em; }
.imp-site .legal-hero-copy{ max-width: 720px; margin: 0; color: var(--muted); font-size: .92rem; line-height: 1.6; }
.imp-site .legal-content{ padding-block: 32px 64px; }
.imp-site .legal-card{ max-width: 800px; margin-inline: auto; padding: 0; color: var(--ink); background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.imp-site .legal-card h2{ margin: 0 0 9px; color: var(--ink); font-size: clamp(1.16rem, 2vw, 1.4rem); letter-spacing: -.025em; }
.imp-site .legal-card p, .imp-site .legal-card li{ color: #4F5B52; font-size: .9rem; line-height: 1.72; }
.imp-site .legal-card p:last-child{ margin-bottom: 0; }
.imp-site .legal-section + .legal-section, .imp-site .legal-references{ margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.imp-site .legal-details{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; row-gap: 0; margin: 13px 0 0; padding-top: 4px; border-top: 1px solid var(--line); }
.imp-site .legal-detail{ min-width: 0; display: grid; grid-template-columns: 88px minmax(0, 1fr); align-items: baseline; column-gap: 8px; padding: 9px 0; background: transparent; border-bottom: 1px solid var(--line); border-radius: 0; }
.imp-site .legal-details .legal-detail-wide{ grid-column: 1 / -1; }
.imp-site .legal-detail dt{ color: var(--muted); font-size: .72rem; font-weight: 700; letter-spacing: 0; }
.imp-site .legal-detail dd{ margin: 0; color: var(--ink); font-size: .88rem; font-weight: 500; overflow-wrap: anywhere; }
.imp-site .legal-detail dd a, .imp-site .legal-card a:not(.button){ color: #405F3A; font-weight: 650; text-underline-offset: 3px; }
.imp-site .legal-card ul{ display: grid; gap: 9px; margin: 14px 0 0; padding-left: 1.2rem; }
.imp-site .legal-card li::marker{ color: var(--sage-dark); }
.imp-site .legal-references ul{ gap: 7px; }
.imp-site .policy-card{ max-width: 920px; }
.imp-site .policy-card > p{ margin-bottom: 18px; }
.imp-site .policy-card .legal-section h2{ max-width: 48ch; }
@media (max-width: 720px){.imp-site .footer-legal-actions{ align-items: flex-start; flex-direction: column; gap: 10px; margin: 12px 0; }
.imp-site .legal-hero{ padding: 32px 0 27px; }
.imp-site .legal-content{ padding-block: 25px 50px; }
.imp-site .legal-details{ grid-template-columns: 1fr; column-gap: 0; }
.imp-site .legal-details .legal-detail-wide{ grid-column: auto; }
.imp-site .thank-you-footer-inner .legal-info-link{ flex-basis: 100%; order: 3; }
.imp-site .thank-you-footer-inner .privacy-settings-link{ order: 4; }

}


/* ===== Añadidos para WordPress (no estaban en el original) ===== */
/* Sin márgenes del navegador/tema alrededor de la web (la clase imp-page la añade el plugin al <body>) */
body.imp-page { margin: 0 !important; padding: 0 !important; background: #141A18; }
body.imp-page .elementor-element-populated, body.imp-page .elementor-widget-wrap { padding: 0 !important; }
body.imp-page .elementor-widget:not(:last-child) { margin-block-end: 0 !important; }
.imp-site { font-variant-emoji: text; }
.imp-site .services-note-icon svg { display: block; width: 1.2rem; height: 1.2rem; }
/* Cabecera: mismo negro que el fondo oscuro, sin transparencia */
body .imp-site header.site-header { background: #141A18; -webkit-backdrop-filter: none; backdrop-filter: none; }
/* Con la barra de administración de WordPress (solo la ve quien ha iniciado sesión) */
body.admin-bar .imp-site header.site-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .imp-site header.site-header { top: 46px; } }
@media (max-width: 600px) { body.admin-bar .imp-site header.site-header { top: 0; } }
/* Neutraliza estilos de temas como Hello Elementor sobre .site-header y .site-footer (ancho máximo, margen, relleno, flex) */
body .imp-site header.site-header, body .imp-site footer.site-footer, body .imp-site .thank-you-header, body .imp-site .thank-you-footer { display: block !important; width: 100% !important; max-width: none !important; margin: 0 !important; padding-block: 0 !important; padding-inline: 0 !important; }
.imp-site .form-fields[hidden], .imp-site .form-success[hidden] { display: none; }
.imp-site .form-success { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; min-height: 320px; padding: 40px 24px; text-align: center; }
.imp-site .form-success:focus { outline: none; }
.imp-site .form-success-icon { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--sage); color: var(--charcoal); font-size: 1.8rem; font-weight: 800; line-height: 1; }
.imp-site .form-success p { max-width: 380px; margin: 0; color: var(--ink); font-size: 1.2rem; line-height: 1.45; font-weight: 650; letter-spacing: -.02em; }
@media (max-width: 720px) {
  .imp-site .whatsapp-float { left: 12px; right: 12px; bottom: 12px; width: auto; height: 56px; min-height: 56px; justify-content: center; padding: 0 18px; box-shadow: 0 8px 28px rgba(10,16,12,.34); }
  .imp-site .whatsapp-float span { position: static; width: auto; height: auto; margin: 0; padding: 0; overflow: visible; clip: auto; white-space: normal; font-size: .95rem; }
  .imp-site .whatsapp-float.is-obscured { visibility: visible; pointer-events: auto; }
  body .imp-site footer[class] { padding-bottom: 88px !important; }
  .imp-site .consent-banner { bottom: 80px; }
}

