:root { --forest:#002b28; --deep:#001f1d; --wine:#330606; --orange:#ffa215; --cream:#f6f3ec; --dim:#d9d4c7; --card:#073532; --line:rgba(246,243,236,.14); color-scheme:dark; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; overflow-x:hidden; color:var(--cream); background:var(--forest); font-family:"Archivo",system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
.home-wrap { width:min(1120px,calc(100% - 40px)); margin-inline:auto; }
.home-nav { position:fixed; inset:0 0 auto; z-index:20; border-bottom:1px solid var(--line); background:rgba(0,31,29,.8); backdrop-filter:blur(14px); }
.nav-inner { display:flex; align-items:center; justify-content:space-between; min-height:66px; gap:24px; }
.nav-brand { display:flex; align-items:center; }
.nav-brand img { width:104px; height:46px; object-fit:contain; }
.home-nav nav { display:flex; gap:30px; color:var(--dim); font-size:14px; }
.home-nav nav a:hover,.home-nav nav a:focus-visible { color:var(--orange); }
.nav-actions,.footer-actions { display:flex; align-items:center; justify-content:center; gap:14px; }
.home-instagram { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-width:40px; min-height:40px; color:var(--cream); border:1px solid var(--line); border-radius:999px; transition:color .2s,border-color .2s,transform .2s; }
.home-instagram:hover,.home-instagram:focus-visible { color:var(--orange); border-color:var(--orange); transform:translateY(-2px); }
.home-instagram svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; }
.home-instagram .instagram-dot { fill:currentColor; stroke:none; }
.home-button { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:48px; padding:0 25px; border:1px solid var(--orange); border-radius:999px; color:var(--deep); background:var(--orange); font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; transition:transform .2s,background .2s,color .2s; }
.home-button:hover { transform:translateY(-2px); }
.home-button-small { min-height:38px; padding-inline:17px; font-size:11px; }
.home-button-outline { color:var(--cream); border-color:rgba(246,243,236,.35); background:transparent; }
.home-hero { position:relative; min-height:92svh; display:flex; align-items:flex-end; overflow:hidden; }
.hero-photo,.hero-shade { position:absolute; inset:0; width:100%; height:100%; }
.hero-photo { object-fit:cover; }
.hero-shade { background:linear-gradient(90deg,rgba(0,31,29,.78),rgba(0,31,29,.18) 80%),linear-gradient(0deg,var(--forest) 0%,rgba(0,43,40,.38) 55%,rgba(0,31,29,.18) 100%); }
.hero-content { position:relative; z-index:1; padding:150px 0 76px; }
.hero-content h1,.home-section h2 { margin:0; font-family:"Archivo Black",sans-serif; text-transform:uppercase; letter-spacing:-.035em; }
.hero-content h1 { max-width:850px; font-size:clamp(43px,7vw,82px); line-height:.98; }
.hero-content h1 span { color:var(--orange); }
.hero-content h1 em { color:transparent; font-style:normal; -webkit-text-stroke:1.5px var(--orange); }
.hero-content>p { max-width:610px; margin:25px 0 0; color:var(--dim); font-size:18px; line-height:1.65; }
.hero-actions { display:flex; flex-wrap:wrap; gap:13px; margin-top:34px; }
.home-marquee { overflow:hidden; border-block:1px solid var(--line); background:var(--wine); }
.home-marquee div { width:max-content; padding:16px 0; animation:marquee 25s linear infinite; font:400 13px/1 "Archivo Black",sans-serif; letter-spacing:.2em; text-transform:uppercase; }
@keyframes marquee { to { transform:translateX(-50%); } }
.home-section { padding:110px 0; }
.home-section-deep { background:var(--deep); }
.home-kicker { margin:0 0 13px; color:var(--orange); font:400 12px/1 "Archivo Black",sans-serif; letter-spacing:.3em; text-transform:uppercase; }
.home-section h2 { max-width:800px; font-size:clamp(34px,5vw,55px); line-height:1.05; }
.values-grid,.events-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin-top:52px; }
.values-grid article { padding:29px; border:1px solid var(--line); border-radius:20px; background:var(--card); }
.value-icon { display:grid; width:48px; height:48px; place-items:center; margin-bottom:22px; border-radius:50%; color:var(--orange); background:rgba(255,162,21,.1); font-size:24px; }
.value-icon svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.values-grid h3,.event-card h3 { margin:0; color:var(--cream); font-size:20px; }
.values-grid p { margin:13px 0 0; color:var(--dim); line-height:1.65; }
.section-heading { display:flex; align-items:flex-start; flex-direction:column; gap:0; }
.section-heading>.home-kicker { margin:0 0 13px; color:var(--orange); }
.section-heading>p:last-child { max-width:650px; margin:20px 0 0; color:var(--dim); line-height:1.6; }
.event-card { overflow:hidden; border:1px solid var(--line); border-radius:20px; background:var(--card); transition:transform .25s,border-color .25s; }
.event-card:hover { transform:translateY(-7px); border-color:rgba(255,162,21,.45); }
.event-media { position:relative; height:220px; overflow:hidden; }
.event-media img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.event-card:hover .event-media img { transform:scale(1.04); }
.event-date { position:absolute; top:16px; left:16px; padding:8px 13px; border-radius:999px; color:var(--deep); background:var(--orange); font:400 12px/1 "Archivo Black",sans-serif; text-transform:uppercase; }
.event-body { display:flex; min-height:275px; flex-direction:column; padding:24px; }
.event-description { display:-webkit-box; overflow:hidden; margin:13px 0 18px; color:var(--dim); font-size:15px; line-height:1.6; -webkit-box-orient:vertical; -webkit-line-clamp:4; }
.event-details { display:grid; gap:8px; margin-top:auto; color:var(--dim); font-size:13px; }
.event-details span::first-letter { color:var(--orange); }
.event-action { align-self:flex-start; margin-top:21px; color:var(--orange); font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.event-action-scheduled,.event-action-closed,.event-action-full { color:var(--dim); }
.event-card-past { opacity:.82; }
.event-card-past .event-media img { filter:saturate(.55); }
.event-card-past:hover { opacity:1; }
.event-date-past { color:var(--cream); background:rgba(0,31,29,.88); }
.event-action-past { display:inline-flex; padding:8px 12px; border:1px solid rgba(246,243,236,.22); border-radius:999px; color:var(--dim); }
.past-events { margin-top:90px; padding-top:62px; border-top:1px solid var(--line); }
.past-events-heading { display:grid; max-width:670px; gap:12px; }
.past-events-heading .home-kicker,.past-events-heading p { margin:0; }
.past-events-heading h3 { margin:0; font:400 clamp(27px,4vw,40px)/1.1 "Archivo Black",sans-serif; text-transform:uppercase; }
.past-events-heading>p:last-child { color:var(--dim); line-height:1.6; }
.gallery-grid { columns:3; column-gap:16px; margin-top:52px; }
.gallery-grid figure { position:relative; break-inside:avoid; overflow:hidden; aspect-ratio:1; margin:0 0 16px; border:1px solid var(--line); border-radius:18px; background:var(--card); }
.gallery-grid figure.gallery-tall { aspect-ratio:3/4; }
.gallery-grid img { width:100%; height:100%; object-fit:cover; transition:transform .45s; }
.gallery-grid figure:hover img { transform:scale(1.04); }
.home-loading,.home-empty { grid-column:1/-1; margin:0; padding:30px; border:1px dashed var(--line); border-radius:18px; color:var(--dim); text-align:center; }
.home-footer { padding:75px 0; border-top:1px solid var(--line); background:var(--wine); text-align:center; }
.home-footer .home-wrap { display:flex; flex-direction:column; align-items:center; gap:25px; }
.footer-contact { display:grid; width:100%; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; gap:clamp(32px,7vw,100px); padding-bottom:70px; text-align:left; }
.footer-contact-copy { padding-top:14px; }
.footer-contact h2 { margin:0 0 22px; font:400 clamp(32px,4vw,48px)/1.08 "Archivo Black",sans-serif; text-transform:uppercase; }
.home-footer .footer-contact-copy>p:not(.home-kicker) { max-width:470px; }
.footer-email { display:inline-block; margin-top:22px; color:var(--orange); font-weight:700; overflow-wrap:anywhere; text-decoration:underline; text-underline-offset:4px; }
.home-contact-form { display:grid; gap:10px; padding:26px; border:1px solid var(--line); border-radius:20px; background:rgba(0,31,29,.33); }
.home-contact-form label { font-size:13px; font-weight:700; }
.home-contact-form input,.home-contact-form textarea { width:100%; min-width:0; padding:12px 14px; border:1px solid rgba(246,243,236,.3); border-radius:10px; color:var(--cream); background:rgba(0,31,29,.5); font:inherit; }
.home-contact-form textarea { resize:vertical; }
.home-contact-form :is(input,textarea):focus-visible { outline:2px solid var(--orange); outline-offset:2px; }
.home-contact-form .home-button { justify-self:start; margin-top:8px; cursor:pointer; }
.home-contact-form .contact-status { min-height:1.4em; max-width:none; margin:0; font-size:13px; }
.footer-bottom { display:flex; width:100%; flex-direction:column; align-items:center; gap:25px; padding-top:56px; border-top:1px solid var(--line); }
.footer-brands { display:flex; align-items:center; justify-content:center; gap:23px; }
.footer-brands .footer-peregrinos { width:150px; max-height:76px; object-fit:contain; }
.footer-brands .footer-ipo { width:145px; max-height:76px; object-fit:contain; }
.footer-brand-divider { width:1px; height:55px; background:var(--line); }
.footer-instagram { padding:0 15px; font-size:13px; font-weight:700; }
.home-footer p { max-width:500px; margin:0; color:var(--dim); line-height:1.65; }
.home-footer small { color:rgba(217,212,199,.7); }
@media (max-width:820px) { .home-nav nav { display:none; } .values-grid,.events-grid,.footer-contact { grid-template-columns:1fr; } .gallery-grid { columns:2; } }
@media (max-width:520px) { .home-wrap { width:min(100% - 28px,1120px); } .nav-brand img { width:88px; } .nav-actions { gap:7px; } .home-button-small { padding-inline:13px; } .hero-content { padding-bottom:55px; } .hero-content>p { font-size:16px; } .home-section { padding:78px 0; } .gallery-grid { columns:1; } .gallery-grid figure,.gallery-grid figure.gallery-tall { aspect-ratio:4/3; } .footer-actions { flex-wrap:wrap; } .footer-brands { gap:15px; } .footer-brands .footer-peregrinos,.footer-brands .footer-ipo { width:min(38vw,145px); } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .home-marquee div { animation:none; } * { transition:none!important; } }
