/* ponytail: CSS compartido por index.html y las páginas de rubro (agro.html…). Lo específico de cada página va inline en ella. */
:root { --navy:#1F2034; --navy2:#15162A; --mid:#2A2B40; --leaf:#2A7F72; --sage:#9FD3CA; --sage2:#CFE8E3; --cream:#FAF8F5; --sand:#F1E6D6; --coral:#E56248; --coral-ink:#A8402A; --coral-light:#F4977F; --grey:#B9BAC9; --ink:#1F2034 }
* { box-sizing:border-box; margin:0 }
html { scroll-behavior:smooth }
section[id] { scroll-margin-top:64px }
body { background:var(--navy); color:#fff; font:15px/1.6 Inter,system-ui,sans-serif; -webkit-font-smoothing:antialiased; overflow-x:hidden }
a { color:inherit; text-decoration:none }
img { display:block; max-width:100%; width:auto; height:auto } /* width/height del HTML solo reservan la proporción */
p { text-wrap:pretty } h1,h2,h3 { text-wrap:balance }
:focus-visible { outline:2px solid var(--coral); outline-offset:3px }
::selection { background:var(--coral); color:var(--navy) }
.serif { font-family:Inter,system-ui,sans-serif; font-weight:600; letter-spacing:-.03em; line-height:1.02 }
.script { display:inline-block; font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-weight:700; color:var(--coral-ink); margin-bottom:8px }
.caps { font-size:12px; letter-spacing:.14em; text-transform:uppercase; font-weight:600 }
.wrap { max-width:1280px; margin:0 auto; padding:0 24px }
.circle { display:inline-grid; place-items:center; width:170px; height:170px; border-radius:50%; background:var(--coral); color:var(--navy); text-align:center; font-weight:700; font-size:13px; letter-spacing:.06em; line-height:1.3; transform:rotate(-6deg); box-shadow:0 30px 60px rgba(0,0,0,.25); transition:transform .3s }
.circle:hover { transform:rotate(0) scale(1.04) }
.circle span { max-width:120px }
.arrow { display:inline-grid; place-items:center; width:84px; height:38px; border-radius:999px; background:rgba(13,53,46,.08); font-size:20px; transition:background .2s }
.card:hover .arrow { background:var(--coral); color:var(--navy) }
/* nav transparente */
nav { position:fixed; top:0; left:0; right:0; z-index:20; display:flex; align-items:center; justify-content:space-between; height:64px; padding:0 32px; color:#fff; mix-blend-mode:difference } /* ponytail: transparente; difference invierte texto y logo blancos sobre fondos claros, sin JS de scroll */
nav .brand { display:flex; align-items:center; height:44px; margin-block:-10px } /* área de toque de 44px sin crecer la barra */
nav .brand img { height:24px; width:auto; display:block }
nav ul { display:flex; gap:32px; list-style:none; padding:0; margin:0; font-size:15px; font-weight:500 }
@media (max-width:1100px){ nav ul { gap:20px } } /* siete enlaces: sin esto el menú toca el logo entre 900 y 1060px */
nav ul a { color:#fff; opacity:.78 } nav ul a:hover { opacity:1 }
nav ul a.cta { opacity:1; font-weight:700; text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:2px }
@media (max-width:900px){ nav{ height:auto; flex-wrap:wrap; padding:12px 16px 0 } nav ul{ width:100%; overflow-x:auto; gap:20px; font-size:13px; white-space:nowrap; padding:10px 0 12px; scrollbar-width:none } } /* sin JS: fila desplazable */
@media (max-width:900px){ nav:not(:has(.menu-btn)) ul { padding:0 0 2px } nav:not(:has(.menu-btn)) ul a { display:inline-block; padding:10px 0 } } /* misma altura de fila, área de toque de 36px */
/* menú de celular: agenda.js agrega .menu-btn; el <ul> pasa a pantalla completa */
.menu-btn { display:none }
@media (max-width:900px){
  nav:has(.menu-btn){ flex-wrap:nowrap; height:64px; padding:0 16px }
  nav.open { mix-blend-mode:normal } /* el fondo navy no debe invertirse */
  nav .brand, .menu-btn { position:relative; z-index:1 }
  .menu-btn { all:unset; cursor:pointer; display:grid; place-content:center; gap:6px; width:44px; height:44px; margin-right:-10px }
  .menu-btn span { display:block; width:24px; height:2px; background:#fff; border-radius:2px; transition:transform .3s }
  nav.open .menu-btn span:first-child { transform:translateY(4px) rotate(45deg) }
  nav.open .menu-btn span:last-child { transform:translateY(-4px) rotate(-45deg) }
  nav:has(.menu-btn) ul { position:fixed; inset:0; width:auto; flex-direction:column; justify-content:center; gap:6px; padding:96px 28px calc(96px + env(safe-area-inset-bottom,0px)); background:var(--navy); font-size:clamp(30px,9vw,42px); font-weight:600; letter-spacing:-.02em; white-space:normal; overflow:auto; visibility:hidden; opacity:0; transition:opacity .3s, visibility 0s .3s }
  nav:has(.menu-btn) ul a { opacity:1 }
  nav:has(.menu-btn) li { opacity:0; transform:translateY(18px); transition:opacity .4s, transform .4s cubic-bezier(.2,.7,.2,1); transition-delay:calc(var(--i,0) * 45ms) }
  nav.open ul { visibility:visible; opacity:1; transition:opacity .3s }
  nav.open li { opacity:1; transform:none }
  body:has(nav.open) { overflow:hidden }
}
@media (prefers-reduced-motion: reduce){ nav ul, nav li, .menu-btn span { transition:none !important } }
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; max-width:1100px; margin:0 auto }
.card { border-radius:24px; padding:30px 30px 28px; min-height:300px; display:flex; flex-direction:column; box-shadow:0 30px 60px rgba(0,0,0,.25); transition:transform .3s }
.card:hover { transform:translateY(-6px) }
.card .no { font-size:12px; letter-spacing:.14em; font-weight:600; opacity:.7 }
.card h3 { font-size:clamp(24px,2.3vw,32px); margin:auto 0 18px }
.card .foot { display:flex; justify-content:space-between; align-items:center; font-size:12px; letter-spacing:.14em; text-transform:uppercase; font-weight:600 }
.card.g { background:var(--navy); color:#fff } .card.g .arrow{ background:rgba(255,255,255,.1) }
.card.s { background:var(--sage2); color:var(--ink) }
.card.c { background:var(--cream); color:var(--ink) }
.card.m { background:var(--leaf); color:#fff } .card.m .arrow{ background:rgba(255,255,255,.12) } .card.m .no{ opacity:1 }
.cards .card:nth-child(2){ margin-top:40px } .cards .card:nth-child(5){ margin-top:40px } .cards .card:nth-child(3){ margin-top:-20px } .cards .card:nth-child(6){ margin-top:-20px }
@media (max-width:900px){ .cards{ grid-template-columns:1fr 1fr } .cards .card{ margin-top:0 !important } }
@media (max-width:560px){ .cards{ grid-template-columns:1fr } }
/* cierre crema */
.end { background:var(--cream); color:var(--ink); padding:11vh 0 8vh; position:relative; overflow:hidden; text-align:center }
.end h2 { font-size:clamp(44px,7.4vw,120px); line-height:.9 }
.end h2 em { font-style:normal; color:var(--coral) }
.end .lead { max-width:52ch; margin:28px auto 0; color:#3f5c55 }
.end .hiker { width:100vw; margin:30px 0 -14vh calc(50% - 50vw); max-width:none; -webkit-mask-image:linear-gradient(#000 55%, #0000 96%); mask-image:linear-gradient(#000 55%, #0000 96%) }
.end .circle { position:relative; z-index:2; margin-top:-4vh }
.end .shout { margin-top:10vh !important; font-family:Inter,system-ui,sans-serif; font-weight:600; font-size:clamp(28px,4vw,56px); letter-spacing:-.03em; line-height:1.05; max-width:22ch; margin:14vh auto 0 }
.end .contact { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; max-width:900px; margin:60px auto 0; text-align:left }
.end .contact div { border-top:2px solid var(--ink); padding-top:14px }
.end .contact .caps { color:#3f5c55; margin-bottom:6px; display:block }
.end .contact a { font-family:Inter,system-ui,sans-serif; font-weight:600; letter-spacing:-.025em; font-size:28px }
@media (max-width:700px){ .end .contact{ grid-template-columns:1fr } }
footer { background:var(--navy2); padding:60px 0 30px; color:rgba(255,255,255,.75); font-size:13px }
footer .top { display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap; align-items:flex-start; margin-bottom:40px }
footer .tag { font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--coral); font-weight:700 }
footer ul { list-style:none; padding:0; display:flex; gap:22px; flex-wrap:wrap; font-size:12px; letter-spacing:.1em; text-transform:uppercase; font-weight:600 }
footer .bottom { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; border-top:1px solid rgba(255,255,255,.1); padding-top:20px }
@media (max-width:900px){ footer a { display:inline-block; padding:12px 0 } footer ul { gap:0 22px } footer .bottom { align-items:center } } /* área de toque */
/* entrada suave de secciones */
@supports (animation-timeline: view()) {
  .reveal { animation: reveal linear both; animation-timeline: view(); animation-range: entry 0% entry 40% }
}
@keyframes reveal { from { opacity:0; transform:translateY(40px) } to { opacity:1; transform:none } }
@media (prefers-reduced-motion: reduce){ .reveal{ animation:none } }
/* heros navy: grano (el degradado va en la regla .hero de index.html y .rhero de rubro.css, que pisan el fondo), para que el color plano no quede vacío (index .hero y rubros .rhero) */
.hero::before,.rhero::before { content:''; position:absolute; inset:0; z-index:1; pointer-events:none; opacity:.07; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E") }
/* agenda del diagnóstico (agenda.js) */
.agenda { margin:auto; width:min(520px,calc(100% - 32px)); max-height:calc(100% - 32px); border:0; border-radius:24px; padding:0; background:var(--cream); color:var(--ink); box-shadow:0 30px 60px rgba(0,0,0,.35) }
.agenda::backdrop { background:rgba(21,22,42,.7) }
.agenda-in { display:flex; flex-direction:column; gap:20px; padding:26px 26px 24px }
.agenda-hd { display:flex; justify-content:space-between; align-items:center; gap:12px }
.agenda-hd h2 { font-size:clamp(26px,6vw,32px) }
.agenda-x { all:unset; cursor:pointer; width:44px; height:44px; display:grid; place-items:center; border-radius:50%; font-size:26px; line-height:1 }
.agenda-x:hover { background:rgba(31,32,52,.08) }
.agenda fieldset { border:0; padding:0; display:flex; flex-direction:column; gap:10px; min-width:0 }
.agenda fieldset[hidden] { display:none }
.agenda legend, .agenda .caps { padding:0; color:#3f5c55 }
.agenda-tabs { display:grid; grid-template-columns:1fr 1fr; background:rgba(31,32,52,.07); border-radius:999px; padding:4px }
.agenda-tabs label, .agenda-chips label { cursor:pointer; text-align:center; font-weight:600; font-size:14px }
.agenda-tabs label { padding:10px 8px; border-radius:999px }
.agenda-tabs label:has(:checked) { background:var(--ink); color:#fff }
.agenda-chips { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:6px }
.agenda-chips label { padding:10px 14px; min-height:44px; display:grid; place-items:center; border:1.5px solid rgba(31,32,52,.2); border-radius:12px; text-transform:capitalize }
.agenda-chips label:has(:checked) { background:var(--ink); border-color:var(--ink); color:#fff }
.agenda input[type=radio] { position:absolute; opacity:0; pointer-events:none }
.agenda label:has(:focus-visible), .agenda-x:focus-visible, .agenda-go:focus-visible, .agenda textarea:focus-visible { outline:2px solid var(--coral); outline-offset:2px }
.agenda textarea { font:inherit; color:inherit; background:#fff; border:1.5px solid rgba(31,32,52,.2); border-radius:12px; padding:12px 14px; resize:vertical }
.agenda-note { font-size:14px; color:#3f5c55 }
.agenda-go { all:unset; cursor:pointer; text-align:center; background:var(--coral); color:var(--navy); font-weight:700; padding:15px; border-radius:999px }
.agenda-go:hover { filter:brightness(1.06) }
.agenda-done { display:flex; flex-direction:column; gap:20px }
.agenda:not(.done) .agenda-done, .agenda.done :is(.agenda-tabs, fieldset, .agenda-in > .agenda-go) { display:none }
/* CTA principal: botón coral con texto navy (4.7:1). .cta-fixed lo crea agenda.js sacando el enlace del <nav>, que invierte colores con mix-blend */
.btn { display:inline-flex; align-items:center; gap:10px; background:var(--coral); color:var(--navy); font-weight:700; font-size:17px; padding:16px 28px; border-radius:999px; box-shadow:0 14px 30px rgba(229,98,72,.35); transition:transform .2s, box-shadow .2s }
.btn:hover { transform:translateY(-2px); box-shadow:0 18px 36px rgba(229,98,72,.45) }
.cta-fixed { position:fixed; z-index:21; top:12px; right:24px; display:inline-flex; align-items:center; height:40px; padding:0 18px; border-radius:999px; background:var(--coral); color:var(--navy); font-weight:700; font-size:14px; box-shadow:0 10px 24px rgba(0,0,0,.25); transition:transform .2s }
.cta-fixed:hover { transform:translateY(-1px) }
body:has(.cta-fixed) nav { padding-right:290px }
@media (max-width:1100px){ body:has(.cta-fixed) nav { padding-right:200px } } /* más sitio para el menú; el botón mide ~175px */
@media (max-width:900px){
  .cta-fixed { top:auto; bottom:calc(12px + env(safe-area-inset-bottom,0px)); left:16px; right:16px; justify-content:center; height:52px; font-size:16px }
  body:has(.cta-fixed) nav { padding-right:16px }
  body:has(.cta-fixed) { padding-bottom:76px }
  .cta-fixed { transition:transform .3s }
  .cta-fixed.away { transform:translateY(calc(100% + 24px)) } /* oculto mientras el CTA del héroe está a la vista */
}
@media (prefers-reduced-motion: reduce){ .btn, .cta-fixed { transition:none } }
/* aviso de cookies (agenda.js) */
.cookies { position:fixed; z-index:30; left:16px; right:16px; bottom:16px; max-width:640px; margin:0 auto; display:flex; align-items:center; gap:16px; padding:16px 20px; border-radius:16px; background:var(--cream); color:var(--ink); font-size:13px; line-height:1.5; box-shadow:0 20px 50px rgba(0,0,0,.35) }
.cookies a { text-decoration:underline }
.cookies div { display:flex; gap:8px; flex-shrink:0 }
.cookies button { all:unset; cursor:pointer; padding:10px 16px; border-radius:999px; font-weight:700; border:1.5px solid rgba(31,32,52,.25) }
.cookies button[value=granted] { background:var(--ink); border-color:var(--ink); color:#fff }
.cookies button:focus-visible { outline:2px solid var(--coral); outline-offset:2px }
@media (max-width:900px){ .cookies { flex-direction:column; align-items:stretch; bottom:calc(76px + env(safe-area-inset-bottom,0px)) } .cookies div { justify-content:flex-end } } /* sobre el CTA fijo */
