/* Estilos del sitio institucional de FORSTINVEST PY S.R.L.
   Propuesta visual C (corporativa) con el pie neutro de la propuesta A, elegidas por el usuario el 11/10/2026.
   Regla de la casa: ningún color literal fuera de las listas de variables (excepción: #fff sobre fondos sólidos).
   Paleta: GUIA-ESTILO.md (verde y naranja de la marca, texto oscuro sobre blanco). Sujeta a verificación. */

:root {
  color-scheme: light;
  --fondo:#ffffff; --texto:#1a1a1a; --texto2:#4a4a4a; --texto3:#6b6b6b;
  --superficie:#ffffff; --superficie2:#f6f8f4; --hover-nav:#eef4ec;
  --borde:#e3e6e1; --borde-input:#b9bfb4;
  --acento:#0F7A03; --acento-hover:#0A5A02; --texto-acento:#ffffff; --acento-texto:#0F7A03; --acento2:#FF9933; --acento2-hover:#f28a1f;
  --enlace:#0F7A03; --enlace-hover:#0A5A02;
  --off-texto:#6b6b6b;
  --bosque:#143d14; --bosque-texto:#cfe3c9; --bosque-hoja:rgba(255,255,255,.14);
  --barra-fondo:#0F7A03; --barra-texto:#ffffff; --barra-hover:rgba(255,255,255,.16); --barra-activo:#FF9933; --barra-activo-texto:#1a1a1a; --barra-separador:rgba(255,255,255,.45);
  --sombra:rgba(0,0,0,.10); --sombra-fuerte:rgba(0,0,0,.25);
  --pie-fondo:#1c1c1c; --pie-texto:#f2f2f2; --pie-texto2:#bdbdbd; --pie-borde:#333333;
}
:root[data-tema="oscuro"] {
  color-scheme: dark;
  --fondo:#0f1510; --texto:#e6e9e4; --texto2:#aab3a8; --texto3:#8c968a;
  --superficie:#171f18; --superficie2:#141b15; --hover-nav:#232d24;
  --borde:#2a352c; --borde-input:#55655a;
  --acento:#0F7A03; --acento-hover:#139a04; --texto-acento:#ffffff; --acento-texto:#5fcf4a; --acento2:#FF9933; --acento2-hover:#ffad5c;
  --enlace:#5fcf4a; --enlace-hover:#8ae078;
  --off-texto:#8c968a;
  --bosque:#0b1f0b; --bosque-texto:#9fbf98; --bosque-hoja:rgba(255,255,255,.10);
  --barra-fondo:#0b4f02; --barra-texto:#e6e9e4; --barra-hover:rgba(255,255,255,.12); --barra-activo:#FF9933; --barra-activo-texto:#1a1a1a; --barra-separador:rgba(255,255,255,.35);
  --sombra:rgba(0,0,0,.45); --sombra-fuerte:rgba(0,0,0,.6);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) {
    color-scheme: dark;
    --fondo:#0f1510; --texto:#e6e9e4; --texto2:#aab3a8; --texto3:#8c968a;
    --superficie:#171f18; --superficie2:#141b15; --hover-nav:#232d24;
    --borde:#2a352c; --borde-input:#55655a;
    --acento:#0F7A03; --acento-hover:#139a04; --texto-acento:#ffffff; --acento-texto:#5fcf4a; --acento2:#FF9933; --acento2-hover:#ffad5c;
    --enlace:#5fcf4a; --enlace-hover:#8ae078;
    --off-texto:#8c968a;
    --bosque:#0b1f0b; --bosque-texto:#9fbf98; --bosque-hoja:rgba(255,255,255,.10);
    --barra-fondo:#0b4f02; --barra-texto:#e6e9e4; --barra-hover:rgba(255,255,255,.12); --barra-activo:#FF9933; --barra-activo-texto:#1a1a1a; --barra-separador:rgba(255,255,255,.35);
    --sombra:rgba(0,0,0,.45); --sombra-fuerte:rgba(0,0,0,.6);
  }
}
@media print {
  :root[data-tema], :root:not([data-tema]) {
    color-scheme: light;
    --fondo:#ffffff; --texto:#1a1a1a; --texto2:#4a4a4a; --texto3:#6b6b6b;
    --superficie:#ffffff; --superficie2:#f6f8f4; --hover-nav:#eef4ec;
    --borde:#e3e6e1; --borde-input:#b9bfb4;
    --acento:#0F7A03; --acento-hover:#0A5A02; --texto-acento:#ffffff; --acento-texto:#0F7A03; --acento2:#FF9933; --acento2-hover:#f28a1f;
    --enlace:#0F7A03; --enlace-hover:#0A5A02;
    --off-texto:#6b6b6b;
    --bosque:#143d14; --bosque-texto:#cfe3c9; --bosque-hoja:rgba(255,255,255,.14);
    --barra-fondo:#0F7A03; --barra-texto:#ffffff; --barra-hover:rgba(255,255,255,.16); --barra-activo:#FF9933; --barra-activo-texto:#1a1a1a; --barra-separador:rgba(255,255,255,.45);
    --sombra:rgba(0,0,0,.10); --sombra-fuerte:rgba(0,0,0,.25);
  }
  .utilidades, .menu-herramientas, .menu-boton, .vista-boton, .saltar, .logo-oscuro, .hero-medio, .hero-marca, .contacto-formulario, .hero-accesos { display:none !important; }
  .hero-banda { border-top:0; }
  .pie { background:transparent; color:var(--texto2); border-top:1px solid var(--borde); }
  .pie-razon, .pie a, .pie-titulo { color:var(--texto); }
  .logo-claro { display:inline !important; }
}

/* ---- Base ---- */
*, *::before, *::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body {
  margin:0; background:var(--fondo); color:var(--texto);
  font-family:Arial, Helvetica, sans-serif; font-size:16px; line-height:1.6;
  min-height:100vh; display:flex; flex-direction:column;
}
main { flex:1; }
a { color:var(--enlace); }
a:hover { color:var(--enlace-hover); }
h1, h2, h3 { line-height:1.2; color:var(--texto); margin:0 0 .6em; }
h1 { font-size:2.625rem; line-height:1.12; }
h2 { font-size:2.125rem; line-height:1.15; }
h3 { font-size:1.2rem; }
p { margin:0 0 1em; }
button { font:inherit; cursor:pointer; }
.contenedor { width:100%; max-width:1280px; margin:0 auto; padding:0 32px; }
.apagado { color:var(--off-texto); }
.saltar { position:absolute; left:-999px; top:8px; background:var(--acento); color:var(--texto-acento); padding:6px 12px; border-radius:4px; z-index:100; }
.saltar:focus { left:8px; }
.etiqueta { margin:0 0 8px; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--acento-texto); font-weight:bold; }
.etiqueta-naranja { color:var(--texto); }
.etiqueta-naranja::before { content:""; display:inline-block; width:10px; height:10px; border-radius:50%; background:var(--acento2); margin-right:8px; vertical-align:middle; }

/* ---- Botones ---- */
.boton { display:inline-block; padding:12px 24px; border:2px solid var(--acento); border-radius:4px; color:var(--acento-texto); text-decoration:none; font-weight:bold; font-size:.95rem; line-height:1.3; }
.boton:hover { background:var(--hover-nav); color:var(--acento-texto); }
.boton-principal { background:var(--acento); border-color:var(--acento); color:var(--texto-acento); }
.boton-principal:hover { background:var(--acento-hover); border-color:var(--acento-hover); color:var(--texto-acento); }
.boton-secundario { border-color:var(--acento); color:var(--texto); background:transparent; }
.boton-secundario:hover { background:var(--hover-nav); color:var(--texto); }
.boton-naranja { background:var(--acento2); border-color:var(--acento2); color:var(--barra-activo-texto); }
.boton-naranja:hover { background:var(--acento2-hover); border-color:var(--acento2-hover); color:var(--barra-activo-texto); }
.boton-chico { padding:9px 18px; font-size:.9rem; }

/* ---- Barra superior (blanca): menús desplegables de idioma y de tema ---- */
.utilidades { background:var(--superficie); color:var(--texto2); font-size:.8rem; border-bottom:1px solid var(--borde); position:relative; z-index:60; }
.utilidades-fila { display:flex; justify-content:flex-end; align-items:center; gap:6px; padding-top:4px; padding-bottom:4px; }
.idiomas ul, .menu ul, .pie-enlaces { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:2px; }
.tema { display:inline-flex; gap:2px; }
.bandera { width:21px; height:14px; object-fit:cover; border-radius:2px; box-shadow:0 0 0 1px var(--borde); flex:none; display:inline-block; vertical-align:middle; }
.desplegable { position:relative; }
.desplegable > summary { list-style:none; display:inline-flex; align-items:center; gap:7px; cursor:pointer; padding:5px 10px; border:1px solid transparent; border-radius:4px; color:var(--texto2); user-select:none; }
.desplegable > summary::-webkit-details-marker { display:none; }
.desplegable > summary:hover, .desplegable[open] > summary { background:var(--hover-nav); border-color:var(--borde); color:var(--texto); }
.desplegable > summary:focus-visible { outline:2px solid var(--acento); outline-offset:2px; }
.desplegable-flecha { transition:transform .15s ease; }
.desplegable[open] .desplegable-flecha { transform:rotate(180deg); }
.desplegable-lista { position:absolute; right:0; top:calc(100% + 6px); min-width:210px; margin:0; padding:6px; list-style:none; background:var(--superficie); border:1px solid var(--borde); border-radius:6px; box-shadow:0 8px 24px var(--sombra); display:flex; flex-direction:column; gap:2px; }
.desplegable-lista a, .desplegable-lista button { display:flex; align-items:center; gap:10px; width:100%; padding:8px 10px; border:0; border-radius:4px; background:transparent; color:var(--texto); text-decoration:none; font:inherit; font-size:.9rem; text-align:left; cursor:pointer; }
.desplegable-lista a:hover, .desplegable-lista button:hover { background:var(--hover-nav); color:var(--texto); }
.desplegable-lista a[aria-current="true"], .desplegable-lista button[aria-pressed="true"] { font-weight:bold; color:var(--acento-texto); box-shadow:inset 3px 0 0 var(--acento); }
.tema-actual { display:none; align-items:center; gap:7px; }
.tema-actual[data-muestra="sistema"], :root[data-tema="claro"] .tema-actual[data-muestra="claro"], :root[data-tema="oscuro"] .tema-actual[data-muestra="oscuro"] { display:inline-flex; }
:root[data-tema="claro"] .tema-actual[data-muestra="sistema"], :root[data-tema="oscuro"] .tema-actual[data-muestra="sistema"] { display:none; }

/* ---- Cabecera ---- */
.cabecera { background:var(--superficie); box-shadow:0 1px 0 var(--borde); position:sticky; top:0; z-index:50; }
.cabecera-fila { display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap; }
.marca { display:inline-flex; align-items:center; padding:14px 0; }
.marca img { height:48px; width:auto; }
.logo-oscuro { display:none; }
:root[data-tema="oscuro"] .logo-claro { display:none; }
:root[data-tema="oscuro"] .logo-oscuro { display:inline; }
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) .logo-claro { display:none; }
  :root:not([data-tema="claro"]) .logo-oscuro { display:inline; }
}
.menu-panel { display:contents; }
.menu ul { gap:0 32px; align-items:center; }
.menu a { text-decoration:none; color:var(--texto); font-weight:bold; font-size:.95rem; padding:26px 0; border-bottom:3px solid transparent; display:inline-block; }
.menu a:hover { border-bottom-color:var(--acento); color:var(--texto); }
.menu-clientes a.boton { padding:11px 20px; border-bottom:2px solid var(--acento2); }
.menu-clientes a.boton:hover { border-bottom-color:var(--acento2-hover); }
.menu-herramientas { display:none; }
.idiomas-panel a { text-decoration:none; color:var(--texto2); font-size:.78rem; letter-spacing:.04em; padding:5px 8px; border-radius:3px; display:inline-flex; align-items:center; gap:6px; }
.idiomas-panel ul { border:1px solid var(--borde); border-radius:4px; padding:2px; }
.idiomas-panel a[aria-current="true"] { color:var(--texto-acento); background:var(--acento); }
.idiomas-panel a:hover { background:var(--hover-nav); color:var(--texto); }
.tema-panel { border:1px solid var(--borde); border-radius:4px; overflow:hidden; gap:0; }
.tema-panel button { background:transparent; color:var(--texto2); border:0; border-radius:0; padding:5px 10px; font-size:12px; line-height:1.6; }
.tema-panel button + button { border-left:1px solid var(--borde); }
.tema-panel button[aria-pressed="true"] { background:var(--acento); color:var(--texto-acento); }
.acceso-portal { font-size:.9rem; color:var(--texto2); text-decoration:none; }
.acceso-portal:hover { color:var(--texto); text-decoration:underline; }
.vista-boton { background:transparent; border:1px solid var(--borde); color:var(--texto2); border-radius:4px; padding:3px 10px; font-size:12px; }
.vista-boton.enlace { border:0; padding:0; color:var(--pie-texto); text-decoration:underline; font-size:inherit; }
.menu-boton { display:none; }
.solo-movil { display:none; }

/* ---- Vista móvil: se activa por atributo, no por ancho (lo decide preferencias.js) ---- */
:root[data-vista="movil"] .contenedor { padding:0 16px; }
:root[data-vista="movil"] .utilidades { display:none; }
:root[data-vista="movil"] .cabecera-fila { gap:10px; min-height:64px; }
:root[data-vista="movil"] .marca { padding:8px 0; }
:root[data-vista="movil"] .marca img { height:36px; }
:root[data-vista="movil"] .menu-boton {
  display:inline-flex; align-items:center; gap:8px; background:transparent; color:var(--texto);
  border:1px solid var(--borde); border-radius:4px; padding:6px 10px;
}
:root[data-vista="movil"] .menu-boton-icono { width:18px; height:2px; background:currentColor; position:relative; display:inline-block; }
:root[data-vista="movil"] .menu-boton-icono::before, :root[data-vista="movil"] .menu-boton-icono::after { content:""; position:absolute; left:0; width:18px; height:2px; background:currentColor; }
:root[data-vista="movil"] .menu-boton-icono::before { top:-6px; }
:root[data-vista="movil"] .menu-boton-icono::after { top:6px; }
:root[data-vista="movil"] .menu-panel { display:none; flex-basis:100%; flex-direction:column; align-items:stretch; gap:14px; padding:8px 0 14px; border-top:1px solid var(--borde); }
:root[data-vista="movil"] .menu-panel.abierto { display:flex; }
:root[data-vista="movil"] .menu ul { flex-direction:column; align-items:stretch; gap:2px; }
:root[data-vista="movil"] .menu a { display:block; padding:10px 8px; border-bottom:0; }
:root[data-vista="movil"] .menu-clientes { padding:8px; }
:root[data-vista="movil"] .menu-clientes a.boton { display:inline-block; padding:10px 18px; }
:root[data-vista="movil"] .menu-herramientas { display:flex; flex-direction:column; align-items:flex-start; gap:12px; padding:0 8px; }
:root[data-vista="movil"] .solo-movil { display:inline-flex; }
:root[data-vista="movil"] .solo-pc { display:none; }
:root[data-vista="movil"] h1 { font-size:1.85rem; }
:root[data-vista="movil"] h2 { font-size:1.55rem; }

/* ---- Hero: video a todo el ancho y banda de título debajo ---- */
.hero { scroll-margin-top:90px; }
/* Video de portada al ancho del contenido (decisión del usuario, 17/10/2026): mismo ancho que .contenedor
   (1280 px menos 32 px de margen a cada lado, es decir 1216 px como máximo), centrado, con esquinas de 6 px
   como las fotos y alto según la proporción --hero-proporcion (2:1 = 608 px de alto con el ancho máximo).
   El video se recorta (cover). Vista móvil: a todo el ancho, 16:9 (regla más abajo). */
:root { --hero-proporcion:2 / 1; --hero-margen-sup:24px; }
.hero-medio { position:relative; background:var(--bosque); width:min(1216px, calc(100% - 64px)); margin:var(--hero-margen-sup) auto 0; aspect-ratio:var(--hero-proporcion); border-radius:6px; overflow:hidden; }
.hero-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.hero-video-pendiente { display:flex; align-items:center; justify-content:center; text-align:center; color:var(--bosque-texto); padding:40px; font-size:.95rem; letter-spacing:.06em; text-transform:uppercase; }
.hero-video-pendiente span { max-width:640px; }
@media (prefers-reduced-motion: reduce) { .hero-video { display:none; } }
.hero-marca { background:var(--bosque); min-height:570px; display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; }
.hero-marca::before { content:""; position:absolute; inset:0; background:radial-gradient(ellipse at 50% 120%, var(--bosque-hoja), transparent 60%); }
.hero-marca img { width:150px; height:150px; opacity:.92; position:relative; }
.hero-banda { border-bottom:1px solid var(--borde); background:var(--fondo); }
.hero-banda-grilla { display:grid; grid-template-columns:8fr 4fr; gap:40px; align-items:center; padding-top:40px; padding-bottom:40px; }
.hero-texto h1 { margin-bottom:14px; }
.hero-frase { font-size:1.125rem; color:var(--texto2); margin:0 0 20px; max-width:760px; }
.hero-botones { margin:0; display:flex; gap:12px; flex-wrap:wrap; }
.hero-accesos { background:var(--superficie2); border:1px solid var(--borde); border-radius:6px; padding:22px 24px; display:flex; flex-direction:column; gap:12px; }
.hero-accesos-titulo { margin:0; font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:var(--texto2); font-weight:bold; }
.hero-acceso { display:flex; justify-content:space-between; align-items:center; gap:12px; background:var(--superficie); border:1px solid var(--borde); border-radius:4px; padding:12px 14px; text-decoration:none; color:var(--texto); font-weight:bold; font-size:.95rem; }
.hero-acceso:hover { border-color:var(--acento); color:var(--texto); }
.hero-acceso .flecha { color:var(--acento-texto); flex:none; }
.hero-acceso.tono-naranja .flecha { color:var(--acento2); }
.hero-acceso.tono-naranja:hover { border-color:var(--acento2); }
:root[data-vista="movil"] .hero-medio { width:100%; margin:0; border-radius:0; aspect-ratio:16 / 9; min-height:220px; }
:root[data-vista="movil"] .hero-marca { min-height:220px; }
:root[data-vista="movil"] .hero-marca img { width:96px; height:96px; }
:root[data-vista="movil"] .hero-banda-grilla { grid-template-columns:1fr; gap:24px; padding-top:28px; padding-bottom:28px; }
:root[data-vista="movil"] .hero-frase { font-size:1.05rem; }

/* ---- Secciones ---- */
.seccion { padding:80px 0 64px; scroll-margin-top:90px; }
.seccion-alterna { background:var(--superficie2); border-top:1px solid var(--borde); border-bottom:1px solid var(--borde); }
.seccion-titulo { margin-bottom:36px; }
.empresa-grilla { display:grid; grid-template-columns:5fr 7fr; gap:40px; }
.empresa-texto p { color:var(--texto2); }
.empresa-texto > p:nth-of-type(2) { font-size:1.0625rem; color:var(--texto); }
.empresa-lateral { display:grid; grid-template-columns:1fr 1fr; gap:20px; align-content:start; }
.foto-pendiente, .mapa-pendiente { background:var(--bosque); border-radius:6px; min-height:220px; display:flex; align-items:center; justify-content:center; color:var(--bosque-texto); font-size:.8rem; letter-spacing:.06em; text-align:center; padding:16px; }
.mapa-pendiente { background:var(--superficie2); border:1px solid var(--borde); color:var(--texto2); min-height:320px; }
.cifras { grid-column:1 / -1; display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; }
.cifra { border:1px solid var(--borde); border-radius:6px; padding:18px; text-align:center; display:flex; flex-direction:column; gap:4px; background:var(--superficie); }
.cifra-valor { font-size:1.875rem; font-weight:bold; color:var(--acento-texto); line-height:1; }
.cifra-texto { font-size:.8rem; color:var(--texto2); }
.servicios { display:grid; grid-template-columns:repeat(4, 1fr); gap:20px; }
.servicio { background:var(--superficie); border:1px solid var(--borde); border-radius:6px; padding:26px; display:flex; flex-direction:column; gap:12px; }
.servicio h3 { margin:0; font-size:1.2rem; }
.servicio p { margin:0; color:var(--texto2); font-size:.95rem; }
.servicio-icono { width:48px; height:48px; border-radius:6px; background:var(--acento); color:var(--texto-acento); display:flex; align-items:center; justify-content:center; }
.servicio-icono-naranja { background:var(--acento2); color:var(--barra-activo-texto); }
.pasos { display:grid; grid-template-columns:repeat(4, 1fr); gap:28px; }
.paso { display:flex; flex-direction:column; gap:8px; border-top:4px solid var(--acento2); padding-top:16px; }
.paso-etiqueta { font-size:.8rem; font-weight:bold; color:var(--texto2); letter-spacing:.08em; text-transform:uppercase; }
.paso h3 { margin:0; font-size:1.2rem; }
.paso p { margin:0; color:var(--texto2); font-size:.95rem; }
:root[data-vista="movil"] .seccion { padding:48px 0 36px; }
:root[data-vista="movil"] .empresa-grilla, :root[data-vista="movil"] .empresa-lateral { grid-template-columns:1fr; gap:20px; }
:root[data-vista="movil"] .cifras { grid-template-columns:1fr 1fr; }
:root[data-vista="movil"] .servicios, :root[data-vista="movil"] .pasos { grid-template-columns:1fr; gap:16px; }
:root[data-vista="movil"] .seccion-titulo { margin-bottom:24px; }

/* ---- Accesos sobre verde bosque ---- */
.seccion-accesos { background:var(--bosque); padding:56px 0; scroll-margin-top:90px; }
.accesos-grilla { display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:24px; }
.acceso { background:var(--superficie); color:var(--texto); border-radius:6px; padding:28px 30px; display:flex; flex-direction:column; gap:10px; }
.acceso h3 { margin:0; font-size:1.25rem; }
.acceso p { margin:0; color:var(--texto2); font-size:.95rem; }
.acceso .boton { align-self:flex-start; margin-top:6px; }

/* ---- Páginas de texto y tarjetas ---- */
.pagina { padding:48px 32px; max-width:860px; }
.pagina h2 { font-size:1.2rem; margin-top:1.6em; }
.pagina-nota { margin-top:2em; border-top:1px solid var(--borde); padding-top:1em; font-size:.9em; }
.tarjetas { list-style:none; margin:24px 0; padding:0; display:grid; gap:16px; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); }
.tarjeta { background:var(--superficie2); border:1px solid var(--borde); border-radius:6px; padding:18px; }
.tarjeta h2 { font-size:1.1rem; margin-top:0; }
.tarjeta p { margin:0; color:var(--texto2); }

/* ---- Contacto ---- */
.seccion-contacto { padding-bottom:80px; }
.contacto-columnas { display:grid; grid-template-columns:7fr 5fr; gap:48px; align-items:start; }
.contacto-tres { grid-template-columns:4fr 4fr 4fr; gap:40px; }
.contacto-datos p { font-size:.95rem; }
.contacto-datos h2 + p { color:var(--texto2); }
.contacto-directo, .contacto-tarjeta { background:var(--superficie2); border:1px solid var(--borde); border-radius:6px; padding:28px 30px; display:flex; flex-direction:column; gap:6px; }
.contacto-directo-titulo { margin:0; font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:var(--texto2); font-weight:bold; }
.contacto-directo-correo { margin:4px 0 18px; font-size:1.05rem; font-weight:bold; word-break:break-all; user-select:all; }
.contacto-directo-telefonos { margin:4px 0 0; font-size:1.05rem; font-weight:bold; }
.contacto-directo-telefonos a { text-decoration:none; }
.contacto-formulario { display:flex; flex-direction:column; gap:12px; scroll-margin-top:110px; }
.contacto-formulario p { margin:0; }
.contacto-formulario label { display:block; font-weight:bold; margin-bottom:4px; font-size:.9rem; }
.contacto-formulario input[type="text"], .contacto-formulario input[type="email"], .contacto-formulario textarea {
  width:100%; padding:11px 12px; border:1px solid var(--borde-input); border-radius:4px; background:var(--fondo); color:var(--texto); font:inherit;
}
.contacto-formulario textarea { resize:vertical; }
.contacto-formulario .boton { cursor:pointer; }
.contacto-formulario .boton[disabled] { opacity:.6; cursor:default; }
.contacto-estado:empty { display:none; }
.contacto-estado { padding:10px 12px; border-radius:4px; border:1px solid var(--borde); background:var(--superficie2); }
.contacto-estado.error { border-color:var(--acento2); }
.contacto-privacidad { font-size:.85em; }
.campo-oculto { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
:root[data-vista="movil"] .contacto-columnas, :root[data-vista="movil"] .contacto-tres { grid-template-columns:1fr; gap:24px; }
:root[data-vista="movil"] .contacto-directo, :root[data-vista="movil"] .contacto-tarjeta { padding:20px; }

/* ---- Pie (propuesta A): gris casi negro con texto claro en ambos temas ---- */
.pie { background:var(--pie-fondo); border-top:1px solid var(--pie-borde); color:var(--pie-texto2); font-size:.9rem; padding:44px 0 32px; }
.pie-fila { display:grid; grid-template-columns:4fr 3fr 3fr 2fr; gap:32px; align-items:start; }
.pie-marca img { height:40px; width:auto; margin-bottom:14px; }
.pie p { margin:0 0 .4em; }
.pie-razon { color:var(--pie-texto); font-weight:bold; }
.pie-titulo { color:var(--pie-texto); font-weight:bold; margin-bottom:10px; }
.pie a { color:var(--pie-texto); text-decoration:none; }
.pie a:hover, .pie .vista-boton.enlace:hover { color:var(--acento2); }
.pie-enlaces { flex-direction:column; gap:8px; }
.pie-derechos { grid-column:1 / -1; margin:12px 0 0; padding-top:16px; border-top:1px solid var(--pie-borde); font-size:.85rem; color:var(--pie-texto2); }
:root[data-vista="movil"] .pie-fila { grid-template-columns:1fr; gap:22px; }

/* Banco de fotos (16/10/2026): video con imagen fija de respaldo, fotos de La empresa y de servicios,
   "El ciclo forestal" y franja de encabezado de las páginas en construcción. */
.hero-poster { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.foto-empresa { width:100%; height:auto; aspect-ratio:4 / 3; object-fit:cover; border-radius:6px; display:block; }
.servicio-con-foto { padding-top:0; overflow:hidden; }
.servicio-foto { width:calc(100% + 52px); max-width:none; height:auto; margin:0 -26px 4px; aspect-ratio:3 / 2; object-fit:cover; display:block; }
.ciclo { display:grid; grid-template-columns:repeat(6, 1fr); gap:14px; }
.ciclo-etapa { margin:0; display:flex; flex-direction:column; gap:10px; }
.ciclo-foto { width:100%; height:auto; aspect-ratio:3 / 4; object-fit:cover; border-radius:6px; display:block; }
.ciclo-etapa figcaption { font-weight:bold; font-size:.95rem; border-left:3px solid var(--acento); padding-left:10px; }
.pagina-portada { width:100%; aspect-ratio:21 / 9; max-height:380px; overflow:hidden; background:var(--bosque); }
.pagina-portada-foto { width:100%; height:100%; object-fit:cover; display:block; }
.pie .pie-credito { grid-column:1 / -1; margin:-26px 0 0; font-size:.78rem; color:var(--pie-texto2); }
:root[data-vista="movil"] .ciclo { grid-template-columns:repeat(2, 1fr); gap:12px; }
:root[data-vista="movil"] .pagina-portada { aspect-ratio:16 / 9; }
@media (max-width: 900px) { .ciclo { grid-template-columns:repeat(3, 1fr); } }
@media print { .ciclo, .pagina-portada { display:none; } }
:root[data-vista="movil"] .pie .pie-credito { margin-top:-16px; }

/* Verificación "No soy un robot" (Cloudflare Turnstile) sobre el botón Enviar. */
.contacto-verificacion { margin:4px 0 14px; min-height:65px; }
