/* GAU — estilos base del sitio. Colores y tipografías también en tailwind.config.js */
@font-face { font-family: 'Fraunces'; font-style: normal; font-weight: 100 900; font-display: swap; src: url('/assets/fonts/fraunces-latin-opsz-normal.woff2') format('woff2'); }
@font-face { font-family: 'Fraunces'; font-style: italic; font-weight: 100 900; font-display: swap; src: url('/assets/fonts/fraunces-latin-opsz-italic.woff2') format('woff2'); }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 200 800; font-display: swap; src: url('/assets/fonts/manrope-latin-wght-normal.woff2') format('woff2'); }
:root {
  --deep: #0F2E2B; --deeper: #0B2321; --teal: #0A9E9E; --teal-ink: #06706F;
  --mint: #B9E8C6; --paper: #F4F7F5; --mist: #EEF5F1; --ink: #14211F;
  --muted: #4A5A57; --soft: #A9C2BD; --line: #D3DDD9;
}
html { scroll-behavior: smooth; scroll-padding-top: 72px; }
body { margin: 0; font-family: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif; color: var(--ink); background: #fff; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
.serif { font-family: 'Fraunces', Georgia, serif; }
.display { font-family: 'Fraunces', Georgia, serif; font-weight: 300; letter-spacing: -0.022em; font-variation-settings: 'opsz' 144; text-wrap: balance; }
.eyebrow { font-size: 12px; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; }
@media (max-width: 767px) { .eyebrow { font-size: 11px; letter-spacing: 0.22em; } }

/* Botones */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 56px; padding: 0 30px; border-radius: 2px; font-size: 15px; font-weight: 600; border: 1px solid transparent; transition: background-color .25s, color .25s, border-color .25s; cursor: pointer; font-family: inherit; }
.btn svg { width: 18px; height: 18px; }
.btn-mint { background: var(--mint); color: var(--deep); }
.btn-mint:hover { background: #D6F3DE; }
.btn-deep { background: var(--deep); color: #fff; }
.btn-deep:hover { background: var(--teal-ink); }
.btn-line { border-color: rgba(255,255,255,.55); color: #fff; }
.btn-line:hover { border-color: var(--mint); color: var(--mint); }
.btn-line-dark { border-color: var(--deep); color: var(--deep); }
.btn-line-dark:hover { border-color: var(--teal-ink); color: var(--teal-ink); }

/* Navegación */
.site-nav { position: fixed; inset: 0 0 auto 0; z-index: 50; height: 88px; border-bottom: 1px solid rgba(255,255,255,.12); transition: background-color .35s, height .35s, border-color .35s; }
.site-nav.is-solid { background: var(--deep); height: 72px; border-color: transparent; }
@media (max-width: 1023px) { .site-nav { height: 64px; } .site-nav.is-solid { height: 64px; } }
.navlink { font-size: 14px; font-weight: 500; color: #fff; transition: color .2s; }
.navlink:hover, .navlink[aria-current="page"] { color: var(--mint); }
.mobile-menu { position: fixed; inset: 0; z-index: 60; background: var(--deep); display: none; flex-direction: column; padding: 16px 24px 32px; }
.mobile-menu.is-open { display: flex; }

/* Formularios */
.field { display: flex; flex-direction: column; gap: 8px; }
.field label { font-size: 13px; font-weight: 600; color: var(--deep); }
.field input, .field select, .field textarea { min-height: 52px; box-sizing: border-box; padding: 0 16px; border: 1px solid #B9C7C3; border-radius: 2px; font: inherit; font-size: 16px; color: var(--ink); background: #fff; }
.field textarea { padding: 14px 16px; line-height: 1.5; resize: vertical; }
.field.on-dark label { color: #D2E1DE; }
.field.on-dark input { border-color: rgba(255,255,255,.35); background: rgba(255,255,255,.04); color: #fff; }
input:focus, select:focus, textarea:focus, a:focus-visible, button:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }

/* Índice de servicios */
.svc { transition: background-color .35s; }
.svc:hover { background: rgba(185,232,198,.06); }
.svc .svc-t { transition: transform .45s cubic-bezier(.22,.61,.36,1); }
.svc:hover .svc-t { transform: translateX(12px); }
.svc .svc-img { opacity: 0; transform: translateY(8px); transition: opacity .4s, transform .45s; pointer-events: none; }
.svc:hover .svc-img { opacity: 1; transform: none; }
.svc .svc-arrow { transition: transform .35s; }
.svc:hover .svc-arrow { transform: translateX(6px); }
.rel { transition: background-color .35s; }
.rel:hover { background: #E9F1ED; }
.rel .rel-t { transition: transform .45s cubic-bezier(.22,.61,.36,1); }
.rel:hover .rel-t { transform: translateX(10px); }

/* Movimiento */
.tree-mask { transform-box: view-box; transform-origin: 1160px 980px; transform: scale(0); animation: gau-grow 5.5s cubic-bezier(.22,.61,.36,1) .3s forwards; }
@keyframes gau-grow { to { transform: scale(1); } }
.rise { opacity: 0; transform: translateY(18px); animation: gau-rise 1.1s cubic-bezier(.22,.61,.36,1) forwards; }
.rise-2 { animation-delay: .25s; } .rise-3 { animation-delay: .45s; } .rise-4 { animation-delay: .7s; }
@keyframes gau-rise { to { opacity: 1; transform: none; } }
.js .reveal { opacity: 0; transform: translateY(18px); transition: opacity 1.1s cubic-bezier(.22,.61,.36,1), transform 1.1s cubic-bezier(.22,.61,.36,1); }
.js .reveal.is-in { opacity: 1; transform: none; }
.parallax { will-change: transform; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .tree-mask { animation: none; transform: none; }
  .rise, .js .reveal { animation: none; opacity: 1; transform: none; transition: none; }
}

/* Evita desbordes horizontales en móvil (selects y textos largos dentro de grillas) */
.grid > * { min-width: 0; }
.field input, .field select, .field textarea { width: 100%; min-width: 0; }

/* Perspectivas */
.art .art-img, .card .card-img { transition: transform .8s cubic-bezier(.22,.61,.36,1); }
.art:hover .art-img, .card:hover .card-img { transform: scale(1.04); }
.art .art-t { transition: color .25s; } .art:hover .art-t { color: var(--mint); }
.card .card-t { transition: color .25s; } .card:hover .card-t { color: var(--teal-ink); }
.chip { min-height: 40px; padding: 0 16px; border-radius: 2px; font: inherit; font-size: 14px; font-weight: 600; border: 1px solid #C9D6D2; background: #fff; color: var(--deep); cursor: pointer; transition: background-color .2s, color .2s, border-color .2s; }
.chip:hover { border-color: var(--deep); }
.chip[aria-pressed="true"] { background: var(--deep); border-color: var(--deep); color: #fff; }
.prose-gau h2 { scroll-margin-top: 96px; }

[hidden]{display:none!important}

/* Mensajes del formulario */
.form-msg { padding: 14px 16px; font-size: 15px; font-weight: 600; }
.form-msg.ok { background: #E3F4E8; color: #0F2E2B; }
.form-msg.err { background: #FBEAEA; color: #7A1F1F; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
/* Texto legal */
.legal h2 { font-family: 'Fraunces', Georgia, serif; font-weight: 400; font-size: 28px; color: var(--deep); margin: 40px 0 12px; }
.legal p, .legal li { font-size: 17px; line-height: 1.75; color: #24322F; }
.legal ul { padding-left: 20px; list-style: disc; display: flex; flex-direction: column; gap: 6px; }
