/* v1.3.14 */
/* Rubio & Salaverria · versión visual 1.3
   Sistema por defecto: claro/oscuro; elección discreta y opcional.
   Hoja de diseño complementaria para conservar compatibilidad con la v1.1. */
:root,html[data-theme="light"]{
  color-scheme:light;
  --forest:#173f31;--forest-dark:#0f3025;--forest-mid:#24694b;
  --sage:#84b596;--mint:#e5f1e7;--mint-2:#d6e8d8;
  --canvas:#fbfcf9;--paper:#f0f6f0;--ink:#19362b;--muted:#556f5f;
  --line:#d8e5d9;--shadow:0 18px 48px rgba(31,70,45,.13);
  --surface:#fff;--surface-alt:#f3f8f1;--surface-warm:#f1f4e9;
  --header-bg:rgba(255,255,255,.96);--text-soft:#617d6a;
  --soft-border:#cee0d0;--subtle-ink:#526c58;--gold:#aa9360;
  --hero-start:#f1f8f0;--hero-end:#e0eee0;
  --brand-shadow:0 12px 26px rgba(27,70,49,.10);
  --card-shadow:0 14px 39px rgba(22,69,42,.09),0 3px 10px rgba(22,69,42,.025);
  --card-shadow-hover:0 28px 54px rgba(18,62,38,.17),0 7px 16px rgba(18,62,38,.045);
  --logo-light-display:block;--logo-dark-display:none;
}
html[data-theme="dark"]{
  color-scheme:dark;
  --forest:#a3dfbb;--forest-dark:#171e23;--forest-mid:#87d4ab;
  --sage:#79bd97;--mint:#243b35;--mint-2:#30453d;
  --canvas:#12171b;--paper:#1b2328;--ink:#f1f5f3;--muted:#b5c4c2;
  --line:#354147;--shadow:0 18px 48px rgba(0,0,0,.34);
  --surface:#242d32;--surface-alt:#1a2227;--surface-warm:#282d2c;
  --header-bg:rgba(21,28,32,.98);--text-soft:#b9c7c7;
  --soft-border:#3e4a4e;--subtle-ink:#d3dfdb;--gold:#dbc59a;
  --hero-start:#1a2226;--hero-end:#253031;
  --brand-shadow:0 12px 26px rgba(0,0,0,.28);
  --card-shadow:0 17px 40px rgba(0,0,0,.24);
  --card-shadow-hover:0 23px 52px rgba(0,0,0,.36);
  --logo-light-display:none;--logo-dark-display:block;
}

/* Base y jerarquía */
body{background:var(--canvas);color:var(--ink);transition:background .22s ease,color .22s ease}
h1,h2,h3{color:var(--ink)}
h1 span,h2 span{color:var(--forest-mid)}
.eyebrow{color:var(--forest-mid)}.eyebrow-mark{background:var(--sage)}
::selection{background:var(--sage);color:#12291c}
.skip-link{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}

/* Cabecera: monograma vectorial local, más grande y nítido */
.topbar{background:var(--forest-dark);color:#eef9ef;border-bottom:1px solid rgba(255,255,255,.08)}
html[data-theme="dark"] .topbar{background:#10171a}
.topbar-contact a:hover{color:#c4e7d0}
.site-header{height:102px;background:var(--header-bg);border-bottom:1px solid var(--soft-border);box-shadow:0 4px 24px rgba(24,67,39,.055)}
.header-inner{gap:22px}
.brand{gap:16px;flex:none;min-width:0}
.brand-logo-wrap{height:92px;width:146px;overflow:visible;flex:none;filter:drop-shadow(0 2px 1px rgba(16,50,31,.045))}
.brand-logo-wrap img{width:146px;max-width:100%;height:92px;object-fit:contain}
.brand-logo-wrap .logo-light{display:var(--logo-light-display)}
.brand-logo-wrap .logo-dark{display:var(--logo-dark-display)}
.brand-text{display:flex;flex-direction:column;justify-content:center;align-self:center;gap:0;max-width:250px}
.brand-text strong{font-size:19px;color:var(--ink);letter-spacing:.05em;line-height:1.08;white-space:nowrap;font-weight:780}
.brand-text em{color:var(--forest-mid)}
.brand-text small{display:none}
.site-nav{gap:23px;margin-left:auto}
.nav-link{color:var(--subtle-ink)}.nav-link.active,.nav-link:hover{color:var(--forest-mid)}.nav-link::after{background:var(--forest-mid)}
.menu-toggle{color:var(--ink);border:1px solid var(--line);border-radius:9px}

/* Selector de tema: botón de icono y menú flotante, al lado de WhatsApp. */
.theme-picker{position:relative;display:flex;align-items:center;order:2;flex:none;z-index:40}
.theme-trigger{height:42px;width:42px;display:inline-flex;align-items:center;justify-content:center;gap:0;padding:0;color:#176b4c;background:#eff7f1;border:1px solid #badbc8;border-radius:999px;box-shadow:0 7px 18px rgba(22,75,49,.09);transition:transform .18s ease,background .18s ease,box-shadow .18s ease,border-color .18s ease}
.theme-trigger:hover,.theme-trigger[aria-expanded="true"]{transform:translateY(-1px);background:#e0f0e7;border-color:#8ac3a2;box-shadow:0 9px 22px rgba(22,75,49,.14)}
.theme-trigger:focus-visible{outline:3px solid #75b58b;outline-offset:3px}
.theme-trigger-system,.theme-trigger-light,.theme-trigger-dark{width:19px;height:19px;flex:none;display:none}
html[data-theme-preference="system"] .theme-trigger-system,html[data-theme-preference="light"] .theme-trigger-light,html[data-theme-preference="dark"] .theme-trigger-dark{display:block}


.theme-menu{position:absolute;top:calc(100% + 10px);right:0;width:168px;padding:7px;background:var(--surface);border:1px solid var(--soft-border);border-radius:14px;box-shadow:var(--card-shadow-hover);z-index:100}
.theme-menu[hidden]{display:none}
.theme-option{display:flex;align-items:center;gap:11px;width:100%;min-height:40px;padding:9px 11px;border:0;border-radius:9px;background:transparent;color:var(--ink);font-size:13px;font-weight:650;text-align:left;cursor:pointer}
.theme-option>svg:first-child{color:var(--forest-mid);flex:none}
.theme-option>span{flex:1}
.theme-option-check{flex:none;visibility:hidden;color:var(--forest-mid)}
.theme-option[aria-checked="true"]{background:var(--mint)}
.theme-option[aria-checked="true"] .theme-option-check{visibility:visible}
.theme-option:hover{background:var(--surface-alt)}
.theme-option:focus-visible{outline:2px solid var(--forest-mid);outline-offset:-2px}
html[data-theme="dark"] .theme-trigger{background:#27343a;color:#b8e8cb;border-color:#4b6259;box-shadow:0 7px 20px rgba(0,0,0,.25)}
html[data-theme="dark"] .theme-trigger:hover,html[data-theme="dark"] .theme-trigger[aria-expanded="true"]{background:#31413f;border-color:#6da886}

/* Botones de acción */
.btn{border-radius:12px;box-shadow:none}
.btn-nav,.btn-primary{background:#215f46;color:#fff;box-shadow:0 10px 24px rgba(29,91,56,.20)}
.btn-nav:hover,.btn-primary:hover:not(:disabled){background:#287953;box-shadow:0 15px 30px rgba(22,73,42,.28)}
.btn-soft{background:var(--surface);border-color:var(--soft-border);color:var(--forest);box-shadow:0 8px 20px rgba(26,82,46,.07)}
.btn-soft:hover{background:var(--mint)}
.btn-outline-dark{border:1px solid var(--soft-border);color:var(--forest-mid);background:var(--surface)}
.btn-outline-dark:hover{background:var(--mint)}

/* Inicio: gran cabecera cálida, verdes más ricos y profundidad */
.hero{background:radial-gradient(ellipse at 85% 12%,rgba(105,163,115,.17) 0%,transparent 45%),linear-gradient(128deg,var(--hero-start) 0%,var(--surface) 48%,var(--hero-end) 100%);border-bottom:1px solid var(--line);padding:81px 0 78px}
.hero::before{background:rgba(106,159,113,.12);right:-210px;top:-230px;width:620px;height:620px;filter:blur(0);box-shadow:0 0 0 90px rgba(113,155,120,.045)}
.hero h1{font-size:clamp(43px,5.05vw,71px);letter-spacing:-.065em}
.hero .lead{color:var(--text-soft);font-size:17px;line-height:1.85}
.hero-visual-back{background:linear-gradient(145deg,#d9e9d6,#91b79e 78%,#c8dfc8);box-shadow:inset 0 0 0 1px rgba(52,99,64,.10),0 24px 60px rgba(39,93,51,.14)}
html[data-theme="dark"] .hero-visual-back{background:linear-gradient(145deg,#4e7767,#273b3b 78%,#486e59);box-shadow:inset 0 0 0 1px rgba(181,216,188,.16),0 24px 55px rgba(0,0,0,.35)}
html[data-theme="dark"] .hero-art{filter:brightness(.94) saturate(.8) drop-shadow(0 20px 17px rgba(0,0,0,.28))}
.hero-label{color:var(--forest-mid)}
.floating-note{border:1px solid var(--soft-border);background:var(--surface);color:var(--ink);box-shadow:var(--card-shadow-hover);border-radius:17px}
.floating-note strong,.hero-proof strong{color:var(--ink)}
.floating-note small,.hero-proof small{color:var(--text-soft)}
.note-icon,.proof-icon{background:var(--mint);color:var(--forest-mid)}

.benefits{background:var(--forest-dark);border-color:transparent}
.benefit{color:#cde9d4;gap:17px;padding:32px 27px}
.benefit:not(:last-child){border-color:rgba(255,255,255,.16)}
.benefit strong{color:#f7fff9;font-size:14px}
.benefit span{color:#d0e4d5;font-size:12px}
html[data-theme="dark"] .benefits{background:#252f31}

/* Alternancia de secciones para evitar una apariencia excesivamente plana */
.services-home{background:linear-gradient(180deg,var(--canvas) 0%,var(--surface-alt) 100%)}
.split-intro>p,.approach-content p,.story-grid p,.center p{color:var(--muted)}
.service-card,.detail-card,.value{background:var(--surface);border:1px solid var(--soft-border);box-shadow:var(--card-shadow);border-radius:21px}
.service-card:hover,.detail-card:hover,.value:hover{border-color:var(--sage);box-shadow:var(--card-shadow-hover)}
.service-card:nth-child(2){background:linear-gradient(165deg,var(--surface) 74%,var(--mint) 100%)}
.service-card:nth-child(3){background:linear-gradient(165deg,var(--surface) 70%,var(--surface-warm) 100%)}
.service-card h3,.detail-card h2,.value h3{color:var(--ink)}
.service-card p,.detail-card>p,.detail-card ul,.value p{color:var(--muted)}
.icon-bubble,.contact-method-icon{background:var(--mint);color:var(--forest-mid);box-shadow:inset 0 0 0 1px var(--soft-border)}
.service-number{color:var(--sage)}
.card-link,.text-link{color:var(--forest-mid)}
.detail-card li::marker{color:var(--forest-mid)}
.approach-section{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.approach-graphic{background:linear-gradient(133deg,#c1dfc7 0%,#edf4e8 52%,#a0c8ad 100%);box-shadow:var(--card-shadow-hover)}
html[data-theme="dark"] .approach-graphic{background:linear-gradient(133deg,#30464b,#446263 48%,#253b3e)}
html[data-theme="dark"] .graphic-tag{color:#daf3df}
.approach-card{background:var(--surface);box-shadow:var(--card-shadow-hover);border:1px solid var(--soft-border);color:var(--ink)}
.approach-card-icon{background:var(--mint);color:var(--forest-mid)}
.approach-card strong{color:var(--ink)}
.check-list{color:var(--ink)}.check-list svg{color:var(--forest-mid)}
.steps-section{background:var(--canvas)}
.step>span{color:var(--forest-mid)}.step h3{color:var(--ink)}
.cta-panel{background:linear-gradient(120deg,#123e2e 0%,#2b7150 75%,#337d56 100%);box-shadow:0 28px 65px rgba(20,72,39,.22);border:1px solid rgba(207,236,203,.16)}
html[data-theme="dark"] .cta-panel{background:linear-gradient(120deg,#194c3c,#28624f 75%,#344a45);box-shadow:0 20px 65px rgba(0,0,0,.32)}
.cta-panel h2,.cta-panel h2 em{color:#fff}.cta-panel h2 em{color:#c5eac3}
.cta-panel p{color:#e0f0df}.btn-light{background:#f6fff5;color:#153a29}.btn-light:hover{background:#e6f4e5}

/* Páginas internas */
.page-hero{background:linear-gradient(125deg,var(--surface-warm),var(--surface-alt) 68%,var(--mint));border-bottom:1px solid var(--line)}
.page-hero::after{border-color:var(--soft-border);box-shadow:0 0 0 80px rgba(133,185,145,.06),0 0 0 165px rgba(133,185,145,.04)}
.page-hero p,.breadcrumbs{color:var(--text-soft)}
.service-detail-section{background:var(--canvas)}
.story-visual{background:linear-gradient(130deg,#c5e3ca,#9ac6a7);box-shadow:var(--card-shadow)}
html[data-theme="dark"] .story-visual{background:linear-gradient(130deg,#34464b,#55726b)}
.story-monogram{color:var(--forest-dark)}.story-monogram span{color:var(--forest-mid)}
.story-visual-label{color:var(--forest-dark)}
.values-section{background:var(--surface-alt)}
.contact-section{background:var(--canvas)}
.contact-aside>p{color:var(--muted)}
.contact-method{border-bottom:1px solid var(--line);border-radius:11px;padding-left:7px;padding-right:9px;transition:background .18s}
.contact-method:hover{background:var(--surface-alt)}
.contact-method strong{color:var(--ink)}
.contact-method small{color:var(--text-soft)}
.contact-arrow{color:var(--forest-mid)}
.privacy-aside{background:var(--surface-alt);border:1px solid var(--soft-border)}
.privacy-aside svg{color:var(--forest-mid)}.privacy-aside p{color:var(--muted)}
.form-card{background:var(--surface);border:1px solid var(--soft-border);box-shadow:var(--card-shadow-hover)}
.form-tag{color:var(--forest-mid)}.form-top p{color:var(--muted)}
.field label,.consent-check{color:var(--ink)}
.field input,.field select,.field textarea{background:var(--surface-alt);color:var(--ink);border:1px solid var(--soft-border)}
.field input::placeholder,.field textarea::placeholder{color:var(--text-soft)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--forest-mid);box-shadow:0 0 0 3px rgba(111,170,122,.18)}
.consent-check a{color:var(--forest-mid)}
.btn-whatsapp{background:var(--mint);color:var(--forest-mid);border-color:var(--soft-border)}
.btn-whatsapp:hover{background:var(--mint-2)}
.form-footnote{color:var(--muted)}
.form-notice{background:var(--surface-warm);border-color:var(--soft-border);color:var(--subtle-ink)}
.legal-section{background:var(--canvas)}
.legal-content p{color:var(--muted)}.legal-content a{color:var(--forest-mid)}.legal-content code{background:var(--mint);color:var(--ink)}
.legal-warning{background:var(--surface-warm);border-color:var(--soft-border);color:var(--ink)}

/* Pie de página e identidad */
.footer{background:#0e3025;box-shadow:inset 0 3px rgba(133,197,141,.17)}
html[data-theme="dark"] .footer{background:#0e151a}
.footer-identity{gap:16px;align-items:center;color:#fff}
.footer-mark{width:116px;height:75px;background:transparent;border:0;border-radius:0;overflow:visible;flex:none}
.footer-mark img{display:block;max-width:100%;width:116px;height:75px;object-fit:contain}
.footer-identity>span:last-child{display:flex;flex-direction:column;justify-content:center;align-self:center;gap:0;max-width:250px}
.footer-identity strong{font-size:19px;line-height:1.08;letter-spacing:.05em;font-weight:780;color:#fff}.footer-identity small{display:none}
.footer-col a{color:#c4d9c7}.footer-about p{color:#d0dfd1}.footer-bottom{color:#b1cdb8}
.wa-panel{background:var(--surface);border-color:var(--soft-border);box-shadow:var(--card-shadow-hover)}
.wa-panel-body{background:var(--surface-alt)}.wa-panel-body p{background:var(--surface);color:var(--ink)}.wa-panel-body small{color:var(--muted)}
.wa-panel-top{background:#215f42}.wa-toggle{box-shadow:0 12px 28px rgba(9,95,34,.34)}

/* Adaptación: logo protagonista sin romper navegación y selector pequeño */
@media(max-width:1250px){
  .site-nav{gap:16px}
  .brand-logo-wrap,.brand-logo-wrap img{width:127px;height:86px}
  .brand-text{max-width:225px}.brand-text strong{font-size:16px}.brand-text small{display:none}
  .header-inner{gap:13px}
}
@media(max-width:950px){
  .site-header{height:91px}.site-nav{top:91px;background:var(--surface);border-color:var(--line);box-shadow:var(--card-shadow-hover)}
  .nav-link.active{background:var(--mint)}
  .menu-toggle{order:3;display:inline-flex}
  .brand-logo-wrap,.brand-logo-wrap img{width:128px;height:84px}
  .theme-picker{margin-left:auto}
}
@media(max-width:690px){
  .site-header{height:79px}.brand{gap:7px}
  .brand-logo-wrap,.brand-logo-wrap img{height:73px;width:116px}
  .brand-text{max-width:165px;gap:0}.brand-text strong{font-size:12px;white-space:normal;line-height:1.15}.brand-text small{display:none}
  .theme-trigger{width:40px;height:40px;gap:0;padding:0}.theme-menu{right:0}
  .site-nav{top:79px}.menu-toggle{padding:7px}
  .hero{padding:55px 0 56px}.hero .lead{font-size:15px}
  .benefit{padding:18px 2px}
  .service-card{box-shadow:var(--card-shadow)}
  .footer-mark,.footer-mark img{width:113px;height:75px}
  .footer-identity>span:last-child{max-width:225px}.footer-identity strong{font-size:16px}
}
@media(max-width:450px){
  .brand-text{display:none}
  .brand-logo-wrap,.brand-logo-wrap img{width:133px;height:77px}
  .header-inner{gap:10px}
  .theme-picker{margin-left:auto}
}
@media(prefers-reduced-motion:reduce){body{transition:none}}

/* v1.3 — Contraste nocturno: fondos grafito, acentos verdes y tarjetas diferenciadas.
   Estas reglas actúan SOLO en oscuro; el diseño claro permanece igual. */
html[data-theme="dark"] .site-header{box-shadow:0 8px 25px rgba(0,0,0,.2)}
html[data-theme="dark"] .hero{background:radial-gradient(ellipse at 83% 15%,rgba(99,156,129,.11) 0%,transparent 43%),linear-gradient(118deg,#1b2329 0%,#1d262c 53%,#273133 100%)}
html[data-theme="dark"] .hero::before{background:rgba(107,153,142,.08);box-shadow:0 0 0 90px rgba(107,153,142,.025)}
html[data-theme="dark"] .hero .lead{color:#c0d0cb}
html[data-theme="dark"] .hero-proof{color:#f3f6f4}
html[data-theme="dark"] .benefit{color:#b4cbc0}
html[data-theme="dark"] .services-home{background:linear-gradient(180deg,#151b20 0%,#1b2328 100%)}
html[data-theme="dark"] .approach-section{background:#1b252a}
html[data-theme="dark"] .service-card,html[data-theme="dark"] .detail-card,html[data-theme="dark"] .value{background:#262f34;border-color:#414e54;box-shadow:0 16px 42px rgba(0,0,0,.27)}
html[data-theme="dark"] .service-card:nth-child(2){background:linear-gradient(160deg,#273237 72%,#2d403b)}
html[data-theme="dark"] .service-card:nth-child(3){background:linear-gradient(160deg,#272f36 72%,#353c37)}
html[data-theme="dark"] .service-card:hover,html[data-theme="dark"] .detail-card:hover,html[data-theme="dark"] .value:hover{border-color:#779e91;box-shadow:0 20px 44px rgba(0,0,0,.36)}
html[data-theme="dark"] .page-hero{background:linear-gradient(130deg,#20292e,#273135 67%,#2f3a38)}
html[data-theme="dark"] .values-section{background:#1b2429}
html[data-theme="dark"] .form-card{background:#252f34}
html[data-theme="dark"] .privacy-aside{background:#293238}
html[data-theme="dark"] .field input,html[data-theme="dark"] .field textarea,html[data-theme="dark"] .field select{background:#1a2428;border-color:#48555a}
html[data-theme="dark"] .wa-panel-body{background:#20292d}
html[data-theme="dark"] .btn-nav,html[data-theme="dark"] .btn-primary{background:#176c50;color:#fff;box-shadow:0 9px 22px rgba(0,0,0,.24)}
html[data-theme="dark"] .btn-nav:hover,html[data-theme="dark"] .btn-primary:hover:not(:disabled){background:#23805e}
html[data-theme="dark"] .theme-menu{background:#283136;border-color:#4b5b5c}
html[data-theme="dark"] .theme-option[aria-checked="true"]{background:#344a40}
html[data-theme="dark"] .theme-option:hover{background:#364346}
html[data-theme="dark"] .floating-note{background:#29353a;border-color:#59706b}
html[data-theme="dark"] .note-icon,html[data-theme="dark"] .proof-icon{background:#31443d}
html[data-theme="dark"] .story-monogram,html[data-theme="dark"] .story-visual-label{color:#e6f4e8}
html[data-theme="dark"] .story-monogram span{color:#b8e0c2}
html[data-theme="dark"] .graphic-tag{color:#f1f6ef}
@media (max-width:950px){html[data-theme="dark"] .site-nav{background:#232c31}}

@media (max-width:690px){.footer-identity strong{font-size:14px}.footer-identity>span:last-child{max-width:190px}}

/* v1.3.4 — Consistencia de marca y contraste en paneles verdes.
   No se modifican los temas globales, cabecera, navegación ni botones. */
.rs-mark{position:relative;display:block;isolation:isolate;flex:none}
.rs-mark img{width:100%;height:100%;object-fit:contain;max-width:100%;pointer-events:none}
.rs-mark .rs-mark-light{display:var(--logo-light-display)}
.rs-mark .rs-mark-dark{display:var(--logo-dark-display)}
.story-brand{position:relative;z-index:2;width:min(300px,78%);height:190px;filter:drop-shadow(0 8px 8px rgba(9,63,32,.10))}
.graphic-tag.rs-mark{top:35px;left:32px;width:155px;height:105px;z-index:3;font-size:initial;line-height:normal;text-shadow:none}
.wa-avatar{width:82px;height:56px;padding:4px 5px;border-radius:10px;background:#e9f5ec;flex:none;display:flex;align-items:center;justify-content:center;overflow:hidden}
.wa-avatar img{display:block;width:100%;height:100%;object-fit:contain}
.cta-panel .eyebrow,.cta-panel .eyebrow-light{color:#f0fff5;text-shadow:0 1px 2px rgba(11,41,24,.26)}
@media(max-width:690px){.story-brand{width:min(255px,74%);height:165px}.graphic-tag.rs-mark{top:25px;left:23px;width:128px;height:87px}.wa-avatar{width:72px;height:50px}}


/* v1.3.5 — UX y accesibilidad. Mantiene colores, logo y jerarquía visual v1.3.4. */
/* Los enlaces a secciones nunca deben quedar ocultos bajo la cabecera fija. */
html { scroll-padding-top: 122px; }
[id="contenido"], .service-detail-grid [id], .section[id], section[id], article[id], .form-card[id] { scroll-margin-top: 122px; }
@media (max-width:950px) {
  html { scroll-padding-top: 108px; }
  [id="contenido"], .service-detail-grid [id], .section[id], section[id], article[id], .form-card[id] { scroll-margin-top: 108px; }
}
@media (max-width:690px) {
  html { scroll-padding-top: 94px; }
  [id="contenido"], .service-detail-grid [id], .section[id], section[id], article[id], .form-card[id] { scroll-margin-top: 94px; }
}

/* Zonas clicables cómodas con aspecto visual idéntico. */
.theme-trigger { position:relative; }
.theme-trigger::after { content:""; position:absolute; inset:-2px; border-radius:50%; }
.menu-toggle { min-width:44px; min-height:44px; align-items:center; justify-content:center; cursor:pointer; }
.theme-option { min-height:44px; }
.wa-close { min-width:44px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; }
.wa-toggle { cursor:pointer; }
@media (max-width:950px) {
  .site-nav .nav-link { display:flex; align-items:center; min-height:44px; }
}
/* Foco visible para teclado sin alterar el aspecto con ratón o táctil. */
.wa-toggle:focus-visible, .wa-close:focus-visible, .wa-start:focus-visible,
.menu-toggle:focus-visible, .site-nav a:focus-visible, .footer a:focus-visible,
.contact-method:focus-visible, .service-card:focus-visible {
  outline:3px solid #99d8a8;
  outline-offset:3px;
}

/* Evitar el recorte del panel en pantallas bajas y respetar áreas seguras. */
.whatsapp-widget {
  bottom:calc(26px + env(safe-area-inset-bottom, 0px));
  right:calc(30px + env(safe-area-inset-right, 0px));
}
.wa-panel {
  max-height:calc(100dvh - 135px - env(safe-area-inset-bottom, 0px));
  overflow-y:auto;
  overscroll-behavior:contain;
}
@media (max-width:690px) {
  .whatsapp-widget {
    bottom:calc(18px + env(safe-area-inset-bottom, 0px));
    right:calc(17px + env(safe-area-inset-right, 0px));
  }
  .wa-panel {
    max-height:calc(100dvh - 110px - env(safe-area-inset-bottom, 0px));
  }
  /* Espacio al final para poder leer y tocar los enlaces legales sin que
     el botón flotante se superponga al pie al terminar de hacer scroll. */
  .footer-bottom { padding-bottom:calc(81px + env(safe-area-inset-bottom, 0px)); }
}

/* Reflow: nombre y logotipo sin desbordar al ampliar texto o usar móvil pequeño. */
.footer-identity { max-width:100%; min-width:0; }
.footer-identity > span:last-child { min-width:0; }
.footer-identity strong { overflow-wrap:normal; white-space:normal; }
@media (min-width:691px) and (max-width:950px) {
  .footer-grid { grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); }
  .footer-identity strong { font-size:clamp(14px,1.9vw,18px); line-height:1.16; }
}
@media (max-width:359px) {
  .footer-identity { gap:10px; }
  .footer-mark,.footer-mark img { width:97px; height:67px; }
  .footer-identity strong { font-size:13px; letter-spacing:.025em; line-height:1.2; }
}
@media (max-height:490px) {
  .wa-panel { max-height:calc(100dvh - 100px - env(safe-area-inset-bottom, 0px)); }
}

.hero .floating-note,.approach-card{transition:background .2s ease,border-color .2s ease,box-shadow .2s ease}
html[data-theme="dark"] .floating-note{background:rgba(23,31,34,.88);border-color:rgba(183,216,194,.18);box-shadow:0 18px 44px rgba(0,0,0,.28)}
html[data-theme="dark"] .note-icon{background:rgba(64,98,82,.34);color:#bde3cb}
html[data-theme="dark"] .floating-note small{color:#b5c7bf}
html[data-theme="dark"] .approach-card{background:rgba(24,34,38,.88);border-color:rgba(183,216,194,.18);box-shadow:0 18px 44px rgba(0,0,0,.3)}
html[data-theme="dark"] .approach-card-icon{background:rgba(64,98,82,.34);color:#bde3cb}
html[data-theme="dark"] .story-visual-label{color:#d8ece2}

/* v1.3.11 — En tema claro desaparece la degradación a oscuro dentro de las fotos.
   Se conserva íntegro el tratamiento del tema oscuro, que ya estaba aprobado. */
.hero-visual-back{display:none!important}
.hero-visual,
.approach-graphic.approach-scene,
.story-visual.story-scene-frame{
  position:relative;
  display:block;
  isolation:isolate;
  overflow:hidden;
  background:#eef4f0;
  border-radius:24px;
  border:1px solid rgba(146,182,160,.18);
  box-shadow:0 20px 47px rgba(19,52,42,.10);
}
html[data-theme="dark"] .hero-visual,
html[data-theme="dark"] .approach-graphic.approach-scene,
html[data-theme="dark"] .story-visual.story-scene-frame{
  position:relative;
  display:block;
  isolation:isolate;
  overflow:hidden;
  background:#253538;
  border-radius:24px;
  border:1px solid rgba(165,200,177,.22);
  box-shadow:0 20px 47px rgba(19,52,42,.16);
}
.hero-visual{height:470px}
.approach-graphic.approach-scene{height:450px}
.story-visual.story-scene-frame{height:400px}
.editorial-photo{position:absolute;z-index:1;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block;filter:brightness(.98) saturate(.95) contrast(1.03)}
.hero-visual .editorial-photo{object-position:53% center}
.approach-scene .editorial-photo{object-position:56% center}
.story-scene-frame .editorial-photo{object-position:59% center}
/* En claro usamos una veladura suave y luminosa, sin apagar la fotografía. */
.hero-visual::before,
.approach-graphic.approach-scene::before,
.story-visual.story-scene-frame::before,
html[data-theme="dark"] .hero-visual::before,
html[data-theme="dark"] .approach-graphic.approach-scene::before,
html[data-theme="dark"] .story-visual.story-scene-frame::before{
  content:"";
  position:absolute;
  z-index:2;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  background:none;
}
.hero-visual::after,
.approach-graphic.approach-scene::after,
.story-visual.story-scene-frame::after{
  content:"";
  position:absolute;
  z-index:2;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(33,85,61,.10), 0 10px 24px rgba(31,74,54,.08);
  background:none;
}
html[data-theme="dark"] .hero-visual::after,
html[data-theme="dark"] .approach-graphic.approach-scene::after,
html[data-theme="dark"] .story-visual.story-scene-frame::after{
  content:"";
  position:absolute;
  z-index:2;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(213,238,221,.10), 0 12px 28px rgba(0,0,0,.20);
  background:none;
}
/* En claro reforzamos las letras sin velar la fotografía; en oscuro mantenemos el estilo ya aprobado. */
.hero-image-words,
.scene-words,
.story-scene-words{
  position:absolute;
  z-index:3;
  left:7%;
  top:8%;
  width:max-content;
  max-width:62%;
  display:flex;
  flex-direction:column;
  gap:9px;
  pointer-events:none;
  color:#144d39;
  text-shadow:0 2px 12px rgba(248,252,248,.76), 0 1px 2px rgba(255,255,255,.55);
}
html[data-theme="dark"] .hero-image-words,
html[data-theme="dark"] .scene-words,
html[data-theme="dark"] .story-scene-words{
  position:absolute;
  z-index:3;
  left:7%;
  top:8%;
  width:max-content;
  max-width:62%;
  display:flex;
  flex-direction:column;
  gap:9px;
  pointer-events:none;
  color:#f7fff8;
  text-shadow:0 2px 10px rgba(4,12,15,.40);
}
.hero-image-words{gap:5px}
.hero-image-words strong{color:inherit;font-size:clamp(20px,2.1vw,29px);font-weight:850;letter-spacing:-.04em;line-height:1.07}
.hero-image-words span{font-size:clamp(13px,1.2vw,16px);font-weight:700;line-height:1.28;color:#2e7559}
html[data-theme="dark"] .hero-image-words span{font-size:clamp(13px,1.2vw,16px);font-weight:650;line-height:1.28;color:#c7edd6}
.scene-words strong{color:inherit;font-size:clamp(25px,2.55vw,36px);font-weight:860;letter-spacing:-.045em;line-height:1.06}
.scene-words strong span{color:#0f8b60}
html[data-theme="dark"] .scene-words strong span{color:#a8ecc5}
.scene-words small{color:#215842;font-size:clamp(12px,1.06vw,15px);font-weight:700;line-height:1.43}
html[data-theme="dark"] .scene-words small{color:#e0f3e7;font-size:clamp(12px,1.06vw,15px);font-weight:620;line-height:1.43}
.story-scene-words{font-size:clamp(23px,2.35vw,32px);font-weight:700;line-height:1.18;letter-spacing:-.04em}
.story-scene-words strong{color:#0f7b56;font-weight:850}
html[data-theme="dark"] .story-scene-words strong{color:#afeac6;font-weight:850}
/* Anulación completa de los dos grandes arcos pseudo-elementos anteriores de Nosotros. */
.story-visual.story-scene-frame::before{border:none;width:auto;height:auto;border-radius:inherit;left:0;right:0;top:0;bottom:0}
.story-visual.story-scene-frame::after{border:none;width:auto;height:auto;border-radius:inherit;left:0;right:0;top:0;bottom:0}
@media(max-width:950px){
  .hero-visual{height:420px}
  .scene-words strong{font-size:clamp(23px,3.2vw,29px)}
  .story-scene-words{font-size:clamp(22px,3vw,28px)}
}
@media(max-width:690px){
  .hero-visual{height:340px;max-width:480px;margin:auto;width:100%}
  .hero-image-words,.scene-words,.story-scene-words{left:7%;top:8%;max-width:79%;gap:5px}
  .hero-image-words strong{font-size:clamp(19px,5vw,25px)}
  .hero-image-words span{font-size:clamp(12px,3.4vw,15px)}
  .approach-graphic.approach-scene{height:360px}
  .scene-words strong{font-size:clamp(24px,6.2vw,32px)}
  .scene-words small{font-size:13px}
  .story-visual.story-scene-frame{height:320px}
  .story-scene-words{font-size:clamp(22px,5.4vw,28px)}
}
@media(max-width:390px){
  .approach-graphic.approach-scene{height:300px}
  .hero-visual{height:310px}
  .scene-words strong{font-size:23px}
  .scene-words small{font-size:12px}
  .story-scene-words{font-size:21px}
}

/* v1.3.14 — Restauración desde v1.3.11 y corrección EXCLUSIVA de imágenes en claro.
   No modifica ninguna regla del tema oscuro ni la cabecera/navegación. */
html[data-theme="light"] .hero-visual::before,
html[data-theme="light"] .approach-graphic.approach-scene::before,
html[data-theme="light"] .story-visual.story-scene-frame::before {
  background: none;
}
html[data-theme="light"] .hero-visual::after,
html[data-theme="light"] .approach-graphic.approach-scene::after,
html[data-theme="light"] .story-visual.story-scene-frame::after {
  background: none;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.15);
}
html[data-theme="light"] .editorial-photo {
  filter: none;
}
/* Mensajes con tono verde corporativo y contorno de luz aplicado SOLO AL TEXTO,
   no a la fotografía. Sin cajas, halos sobre la imagen ni degradados. */
html[data-theme="light"] .hero-image-words,
html[data-theme="light"] .scene-words,
html[data-theme="light"] .story-scene-words {
  color: #103e30;
  text-shadow: 0 1px 1px rgba(255,255,255,.96),
               0 0 5px rgba(250,255,250,.91),
               0 0 13px rgba(250,255,250,.64);
}
html[data-theme="light"] .hero-image-words span,
html[data-theme="light"] .scene-words strong span,
html[data-theme="light"] .scene-words small,
html[data-theme="light"] .story-scene-words strong {
  color: #0c4935;
  text-shadow: 0 1px 1px rgba(255,255,255,.96),
               0 0 5px rgba(250,255,250,.9),
               0 0 13px rgba(250,255,250,.64);
}

/* v1.3.15 — Auditorio de legibilidad de las tres frases integradas.
   Solo tratamiento tipografico. No se modifican fotos, veladuras,
   filtros, recortes, fondos, posicion, tamaños, ni el resto del sitio. */

/* Claro: verde corporativo existente, perfil de luz blanco MUY fino.
   Asegura separacion en fachadas, cielo y vegetacion sin poner cajas. */
html[data-theme="light"] :is(.hero-image-words, .scene-words, .story-scene-words),
html[data-theme="light"] :is(.hero-image-words, .scene-words, .story-scene-words) :is(strong, span, small){
  -webkit-text-stroke: .32px rgba(249,255,251,.96);
  paint-order: stroke fill;
  text-shadow:
    -1px -1px 0 rgba(253,255,253,.93),
     1px -1px 0 rgba(253,255,253,.93),
    -1px  1px 0 rgba(253,255,253,.93),
     1px  1px 0 rgba(253,255,253,.93),
     0 2px 5px rgba(253,255,253,.83),
     0 0 11px rgba(253,255,253,.38);
}

/* Oscuro: MISMO blanco y verde menta aprobados, con perfil grafito
   localizado exclusivamente en las letras. La fotografia queda intacta. */
html[data-theme="dark"] :is(.hero-image-words, .scene-words, .story-scene-words),
html[data-theme="dark"] :is(.hero-image-words, .scene-words, .story-scene-words) :is(strong, span, small){
  -webkit-text-stroke: .42px rgba(7,24,23,.94);
  paint-order: stroke fill;
  text-shadow:
    -1px -1px 1px rgba(6,21,20,.97),
     1px -1px 1px rgba(6,21,20,.97),
    -1px  1px 1px rgba(6,21,20,.97),
     1px  1px 1px rgba(6,21,20,.97),
     0 3px 6px rgba(6,21,20,.78),
     0 0 13px rgba(6,21,20,.38);
}

/* RS DARK CHECKS v1.3.19 — solo iconos de la lista «Nuestra forma de trabajar» */
html[data-theme="dark"] .approach-section .check-list svg {
    color: #0c5b3c;
}

/* v1.3.20 — Auditoría final de textos sobre imágenes y cierre legal */
.hero-image-words,
.scene-words,
.story-scene-words{
  left:7%;
  top:8%;
  z-index:3;
  display:flex;
  flex-direction:column;
  gap:8px;
  pointer-events:none;
}
.hero-image-words,
.scene-words,
.story-scene-words,
.hero-image-words strong,
.scene-words strong,
.story-scene-words,
.story-scene-words strong{
  letter-spacing:-.04em;
}
html[data-theme="light"] .hero-image-words,
html[data-theme="light"] .scene-words,
html[data-theme="light"] .story-scene-words{
  color:#163f32;
  text-shadow:
    0 1px 0 rgba(255,255,255,.96),
    0 2px 7px rgba(255,255,255,.76),
    0 0 14px rgba(255,255,255,.55);
}
html[data-theme="light"] .hero-image-words span,
html[data-theme="light"] .scene-words strong span,
html[data-theme="light"] .scene-words small,
html[data-theme="light"] .story-scene-words strong{
  color:#0e5a41;
  text-shadow:
    0 1px 0 rgba(255,255,255,.96),
    0 2px 7px rgba(255,255,255,.76),
    0 0 14px rgba(255,255,255,.55);
}
html[data-theme="dark"] .hero-image-words,
html[data-theme="dark"] .scene-words,
html[data-theme="dark"] .story-scene-words{
  color:#f7fbf8;
  text-shadow:
    0 2px 3px rgba(0,0,0,.72),
    0 5px 14px rgba(0,0,0,.58);
}
html[data-theme="dark"] .hero-image-words span,
html[data-theme="dark"] .scene-words strong span,
html[data-theme="dark"] .scene-words small,
html[data-theme="dark"] .story-scene-words strong{
  color:#afeac6;
}
.story-scene-words{
  max-width:58%;
  line-height:1.16;
}
@media(max-width:690px){
  .hero-image-words,.scene-words,.story-scene-words{left:7%;top:8%;gap:5px}
  .story-scene-words{max-width:57%;line-height:1.14}
}
@media(max-width:390px){
  .story-scene-words{max-width:55%;font-size:21px;line-height:1.12}
}

/* RS DARK NOSOTROS TEXT v1.3.21 */
html[data-theme="dark"] .story-grid .body-large{
  color:var(--ink);
}
