/* Colección Ciprés — sistema visual sacado del brochure (ver EventoCipres.md §3) */
:root{
  --oliva:#485A26;
  --oliva-oscuro:#34421B;
  --oliva-suave:#5C7033;
  --verde-claro:#E1E8A4;
  --beige:#F2ECE2;
  --beige-2:#E9E4D8;
  --tinta:#2B331A;
  --tinta-suave:#6B7358;
  --blanco:#FFFFFF;
  --radio:22px;
  --font:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;background:var(--oliva)}
body{margin:0;font-family:var(--font);color:var(--tinta);background:var(--beige);font-weight:400;line-height:1.5;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-weight:300;line-height:1.12;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(2rem,7vw,3.6rem)}
h2{font-size:clamp(1.7rem,5.5vw,2.6rem)}
h3{font-size:1.15rem;font-weight:500}
p{margin:0 0 1em}
strong,b{font-weight:600}
.wrap{width:min(100% - 2.5rem,1080px);margin-inline:auto}
.section{padding-block:clamp(3.5rem,9vw,6rem)}
.section--oliva{background:var(--oliva);color:var(--beige)}
.section--oliva h2{color:var(--verde-claro)}
.section--beige{background:var(--beige)}
.section--beige2{background:var(--beige-2)}
.kicker{font-size:.75rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--oliva);margin-bottom:1rem}
.section--oliva .kicker,.hero .kicker{color:var(--verde-claro)}
.lead{font-size:1.1rem;max-width:36rem}
.muted{color:var(--tinta-suave)}
.section--oliva .muted{color:rgba(241,235,225,.72)}

/* Botones */
.btn{appearance:none;border:0;cursor:pointer;font:inherit;font-weight:600;font-size:1rem;padding:1rem 1.6rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;text-decoration:none;transition:transform .15s ease,background .15s ease,opacity .15s;min-height:3.25rem;line-height:1.1;text-align:center}
.btn:active{transform:scale(.98)}
.btn--primary{background:var(--verde-claro);color:var(--oliva-oscuro)}
.btn--primary:hover{background:#e9eeb6}
.btn--oliva{background:var(--oliva);color:var(--beige)}
.btn--oliva:hover{background:var(--oliva-suave)}
.btn--ghost{background:transparent;color:var(--oliva);box-shadow:inset 0 0 0 2px var(--oliva)}
.section--oliva .btn--ghost{color:var(--beige);box-shadow:inset 0 0 0 2px rgba(241,235,225,.6)}
.btn--block{width:100%}
.btn[disabled]{opacity:.6;cursor:wait}
.btn svg{width:1.1em;height:1.1em;flex:none}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem}
.btn-row .btn{flex:1 1 auto}

/* HERO */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;color:var(--beige);overflow:hidden;background:var(--oliva)}
.hero__bg{position:absolute;inset:0}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
.hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(72,90,38,.35) 0%,rgba(72,90,38,.55) 45%,rgba(52,66,27,.94) 100%)}
.hero__top{position:relative;padding:1.4rem 0;display:flex;justify-content:center}
.hero__logo{width:min(46vw,170px);height:auto}
.hero__body{position:relative;padding-block:2rem 2.5rem}
.hero__date{font-size:1.05rem;font-weight:500;color:var(--verde-claro);margin-bottom:.5rem;letter-spacing:.01em}
.hero h1{max-width:12ch;color:var(--beige)}
.hero .lead{color:rgba(241,235,225,.85)}
.hero__bar{position:absolute;bottom:0;left:0;right:0;padding-bottom:max(1rem,env(safe-area-inset-bottom));pointer-events:none}

/* Countdown */
.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;max-width:26rem;margin:1.5rem 0 1.75rem}
.countdown__cell{background:rgba(241,235,225,.1);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(224,231,163,.28);border-radius:16px;padding:.75rem .25rem;text-align:center}
.countdown__n{font-size:clamp(1.5rem,6vw,2.2rem);font-weight:300;line-height:1;color:var(--beige);font-variant-numeric:tabular-nums}
.countdown__l{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--verde-claro);margin-top:.35rem;font-weight:600}
.countdown--over .countdown__cell{opacity:.5}

/* Form */
.form-card{background:var(--blanco);border-radius:var(--radio);padding:clamp(1.4rem,5vw,2.4rem);box-shadow:0 18px 50px -30px rgba(43,51,26,.35);max-width:34rem}
.field{display:block;margin-bottom:1.1rem}
.field span{display:block;font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--oliva);margin-bottom:.4rem}
.field input{width:100%;font:inherit;font-size:1.05rem;padding:.95rem 1.1rem;border:1.5px solid #d8d3c6;border-radius:14px;background:#fff;color:var(--tinta);outline:none;transition:border-color .15s,box-shadow .15s}
.field input:focus{border-color:var(--oliva);box-shadow:0 0 0 4px rgba(72,90,38,.12)}
.field input:invalid:not(:placeholder-shown){border-color:#b3562e}
.field small{display:block;color:var(--tinta-suave);font-size:.8rem;margin-top:.35rem}
.form-error{display:none;background:#fbe9e2;color:#8a3a1c;padding:.85rem 1rem;border-radius:12px;font-size:.92rem;margin-bottom:1rem}
.form-error.is-on{display:block}
.form-note{font-size:.82rem;color:var(--tinta-suave);margin:1rem 0 0}

/* Confirmación */
.confirm{display:none}
.confirm.is-on{display:block}
.confirm__head{max-width:34rem;margin-bottom:1.5rem}

/* PASE */
.pass-wrap{perspective:1200px;max-width:22rem;margin:0 auto 1.5rem;touch-action:manipulation}
.pass{position:relative;background:linear-gradient(160deg,#52672c 0%,var(--oliva) 55%,#3b4b1f 100%);color:var(--beige);border-radius:26px;padding:1.6rem 1.4rem 1.4rem;box-shadow:0 30px 60px -28px rgba(43,51,26,.6),0 2px 0 rgba(255,255,255,.06) inset;transform-style:preserve-3d;transition:transform .12s ease-out;will-change:transform;overflow:hidden;user-select:none;-webkit-user-select:none}
.pass__shine{position:absolute;inset:-40%;pointer-events:none;background:
  radial-gradient(circle at var(--sx,50%) var(--sy,50%),rgba(255,255,255,.35),rgba(255,255,255,0) 38%),
  linear-gradient(115deg,rgba(224,231,163,0) 30%,rgba(224,231,163,.28) 45%,rgba(255,255,255,.35) 50%,rgba(224,231,163,.28) 55%,rgba(224,231,163,0) 70%);
  background-position:var(--gx,50%) 0;background-size:200% 100%;mix-blend-mode:screen;opacity:.85;transform:translateZ(1px)}
.pass__inner{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.35rem}
.pass__logo{width:112px;height:auto;margin-bottom:.4rem}
.pass__kicker{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--verde-claro);font-weight:600}
.pass__name{font-size:1.45rem;font-weight:500;line-height:1.15;margin:.2rem 0 .1rem;color:#fff;word-break:break-word}
.pass__meta{font-size:.82rem;color:rgba(241,235,225,.85);line-height:1.45}
.pass__qr{background:#fff;padding:.7rem;border-radius:16px;margin:.9rem 0 .5rem;width:172px;height:172px;display:flex;align-items:center;justify-content:center}
.pass__qr svg{width:100%;height:100%;display:block}
.pass__id{font-size:.72rem;letter-spacing:.2em;color:var(--verde-claro);font-weight:600}
.pass__hint{font-size:.72rem;color:rgba(241,235,225,.6);margin-top:.35rem}
.pass-actions{max-width:22rem;margin:0 auto}
.pass-actions .btn{margin-bottom:.6rem}

/* Evento */
.event-grid{display:grid;gap:1.5rem}
.event-list{list-style:none;padding:0;margin:0 0 1.5rem;display:grid;gap:1rem}
.event-list li{display:grid;grid-template-columns:auto 1fr;gap:.9rem;align-items:start}
.event-list .ico{width:2.4rem;height:2.4rem;border-radius:12px;background:rgba(224,231,163,.14);display:flex;align-items:center;justify-content:center;color:var(--verde-claro)}
.event-list .ico svg{width:1.2rem;height:1.2rem}
.event-list b{display:block;font-weight:600;color:var(--verde-claro);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.15rem}
.event-img{border-radius:var(--radio);overflow:hidden;aspect-ratio:4/3}
.event-img img{width:100%;height:100%;object-fit:cover}

/* Proyecto */
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;margin:1.75rem 0}
.gallery figure{margin:0;border-radius:18px;overflow:hidden;aspect-ratio:4/3;background:var(--beige-2)}
.gallery figure:first-child{grid-column:1/-1;aspect-ratio:16/10}
.gallery img{width:100%;height:100%;object-fit:cover}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;margin:1.5rem 0}
.stat{background:var(--blanco);border-radius:18px;padding:1.1rem 1rem}
.stat__n{font-size:1.9rem;font-weight:300;color:var(--oliva);line-height:1}
.stat__l{font-size:.78rem;color:var(--tinta-suave);margin-top:.35rem;line-height:1.3}
.amenities{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0 0;padding:0;list-style:none}
.amenities li{background:var(--beige-2);border-radius:999px;padding:.45rem .9rem;font-size:.85rem;color:var(--oliva-oscuro)}

/* Footer */
.footer{background:var(--oliva-oscuro);color:rgba(241,235,225,.75);padding:2.5rem 0 max(2rem,env(safe-area-inset-bottom));text-align:center;font-size:.78rem}
.footer__logo{width:96px;margin:0 auto 1.2rem;opacity:.95}
.footer__line{letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--verde-claro);font-size:.72rem;margin-bottom:.8rem}
.footer p{max-width:36rem;margin:.3rem auto 0}

/* Estados */
.spinner{width:1.1em;height:1.1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;display:none}
.is-loading .spinner{display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

@media (min-width:760px){
  .hero{min-height:92svh}
  .hero__top{justify-content:flex-start}
  .hero__body{padding-block:3rem 4rem}
  .event-grid{grid-template-columns:1.1fr 1fr;align-items:center;gap:3rem}
  .gallery{grid-template-columns:repeat(3,1fr);gap:.8rem}
  .gallery figure:first-child{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
  .stats{grid-template-columns:repeat(4,1fr)}
  .form-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:3rem;align-items:start}
  .pass-actions{margin:0}
  .pass-wrap{margin:0 0 1.5rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .pass{transition:none}
}
