@font-face { font-family:'Gotham Ultra'; src:url('/css/fonts/Gotham-Ultra/Gotham-Ultra.woff') format('woff'); font-display:swap; }
@font-face { font-family:'Lato'; src:url('/css/fonts/Lato-Regular/Lato-Regular.woff') format('woff'); font-display:swap; }
@font-face { font-family:'Lato'; src:url('/css/fonts/Lato-Bold/Lato-Bold.woff') format('woff'); font-weight:700; font-display:swap; }

:root {
	--black:#050505;
	--black-soft:#10100f;
	--panel:#171714;
	--yellow:#f6aa00;
	--yellow-light:#ffd15a;
	--white:#f7f4ec;
	--muted:#aaa79f;
	--line:rgba(255,255,255,.14);
	--wrap:min(1200px, calc(100vw - 48px));
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:82px; }
body { margin:0; background:var(--black); color:var(--white); font-family:'Lato',Arial,sans-serif; font-size:1rem; line-height:1.65; overflow-x:hidden; }
body.menu-open { overflow:hidden; }
img { display:block; max-width:100%; }
a { color:inherit; }
button { font:inherit; }

.sr-only,.skip-link:not(:focus) { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link:focus { position:fixed; top:12px; left:50%; transform:translateX(-50%); z-index:200; background:var(--yellow); color:#000; padding:10px 18px; font-weight:700; }
.section-wrap { width:var(--wrap); margin-inline:auto; }
.section { padding:clamp(84px,10vw,150px) 0; }

.site-header { position:fixed; inset:0 0 auto; height:80px; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:10px 28px; background:linear-gradient(to bottom,rgba(0,0,0,.86),transparent); transition:background .25s ease,border-color .25s ease; }
.site-header.is-scrolled { background:rgba(5,5,5,.94); border-bottom:1px solid var(--line); backdrop-filter:blur(14px); }
.header-brand { position:absolute; left:50%; top:8px; transform:translateX(-50%); }
.header-brand img { width:96px; height:64px; object-fit:contain; }
.menu-button { width:52px; height:52px; border:0; border-radius:50%; background:var(--white); display:grid; place-content:center; gap:5px; cursor:pointer; position:relative; z-index:102; }
.menu-button span:not(.sr-only) { display:block; width:22px; height:2px; background:#111; transition:transform .25s ease,opacity .25s ease; }
.menu-open .menu-button span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.menu-open .menu-button span:nth-child(2) { opacity:0; }
.menu-open .menu-button span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.header-call,.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 24px; border-radius:999px; font-weight:700; text-decoration:none; transition:transform .2s ease,background .2s ease,color .2s ease; }
.header-call { background:var(--yellow); color:#080808; }
.header-call:hover,.button:hover { transform:translateY(-2px); }
.menu-panel { position:fixed; inset:0; z-index:101; display:flex; align-items:center; justify-content:flex-start; padding:110px max(32px,calc((100vw - 1200px)/2)) 60px; background:#050505; opacity:0; visibility:hidden; transition:opacity .25s ease,visibility .25s ease; }
.menu-open .menu-panel { opacity:1; visibility:visible; }
.menu-open .site-header { background:#050505; border-bottom:1px solid var(--line); backdrop-filter:none; }
.menu-open .header-brand,.menu-open .header-call { opacity:0; visibility:hidden; pointer-events:none; }
.header-brand,.header-call { transition:opacity .2s ease,visibility .2s ease,transform .2s ease,background .2s ease,color .2s ease; }
.menu-panel ul { width:min(560px,100%); list-style:none; padding:0; margin:0; text-align:left; }
.menu-panel ul::before { content:'MENÚ'; display:block; margin-bottom:24px; color:var(--yellow); font-size:.75rem; font-weight:700; letter-spacing:.22em; }
.menu-panel li { overflow:hidden; }
.menu-panel a { display:block; padding:.1em 0; font-family:'Gotham Ultra',Impact,sans-serif; font-size:clamp(2rem,4vw,3.7rem); line-height:1.02; text-transform:uppercase; text-decoration:none; transition:color .2s ease,transform .2s ease; }
.menu-panel a:hover { color:var(--yellow); transform:translateX(8px); }

.hero { position:relative; min-height:100svh; display:grid; place-items:center; isolation:isolate; overflow:hidden; }
.hero-image,.hero-shade { position:absolute; inset:0; width:100%; height:100%; }
.hero-image { object-fit:cover; object-position:center 48%; z-index:-2; }
.hero-shade { z-index:-1; background:linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.28) 58%,rgba(0,0,0,.68)),linear-gradient(0deg,#050505 0,transparent 34%); }
.hero-content { width:var(--wrap); padding-top:68px; }
.hero-logo { width:clamp(170px,22vw,290px); height:auto; margin-bottom:18px; }
.eyebrow,.section-kicker { margin:0 0 12px; color:var(--yellow); font-weight:700; font-size:.85rem; letter-spacing:.2em; text-transform:uppercase; }
h1,h2,h3 { margin-top:0; }
h1,h2 { font-family:'Gotham Ultra',Impact,sans-serif; text-transform:uppercase; letter-spacing:-.035em; }
h1 { max-width:1050px; margin-bottom:18px; font-size:clamp(3rem,6vw,6.8rem); line-height:.9; }
.hero-copy { max-width:600px; margin:0 0 30px; font-size:clamp(1.12rem,2vw,1.45rem); }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
.button-primary { background:var(--yellow); color:#050505; }
.button-ghost { border:1px solid rgba(255,255,255,.55); background:rgba(0,0,0,.25); }
.button-ghost:hover { background:var(--white); color:#050505; }
.scroll-cue { position:absolute; left:50%; bottom:26px; width:30px; height:46px; border:1px solid rgba(255,255,255,.55); border-radius:20px; }
.scroll-cue span { position:absolute; left:50%; top:9px; width:4px; height:8px; border-radius:4px; background:var(--yellow); transform:translateX(-50%); animation:scrollcue 1.8s infinite; }
@keyframes scrollcue { 0% { opacity:0; transform:translate(-50%,0); } 40% { opacity:1; } 100% { opacity:0; transform:translate(-50%,18px); } }

.about { background:var(--black); }
.about-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr); gap:clamp(45px,9vw,120px); align-items:center; }
.about h2,.section-heading h2,.contact h2 { margin-bottom:22px; font-size:clamp(3rem,7vw,6.8rem); line-height:.92; }
.section-lead { margin:0 0 24px; color:var(--yellow); font-size:clamp(1.35rem,2.8vw,2.2rem); font-weight:700; }
.about-intro { font-size:1.15rem; font-weight:700; }
.rich-text { color:#d8d4cc; font-size:1.08rem; }
.rich-text p { margin:0 0 18px; }
.about-visual { margin:0; position:relative; }
.about-visual::before { content:''; position:absolute; inset:-16px -16px 16px -16px; border:2px solid var(--yellow); z-index:0; }
.about-visual img { position:relative; width:100%; aspect-ratio:1; object-fit:cover; filter:contrast(1.08); z-index:1; }
.about-visual figcaption { position:relative; z-index:2; margin:-24px 18px 0 auto; width:max-content; max-width:calc(100% - 36px); padding:11px 15px; background:var(--yellow); color:#050505; font-weight:700; }

.services-section { background:var(--black-soft); }
.services-section .section-heading>p:last-child { color:var(--muted); }
.service-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.service-card { padding:clamp(26px,4vw,48px); border:1px solid var(--line); border-top:4px solid var(--yellow); background:var(--panel); }
.service-card h3 { margin-bottom:12px; color:var(--yellow-light); font-size:clamp(1.35rem,2.4vw,2rem); }
.service-card p { margin:0; color:#d2cfc7; font-size:1.06rem; }
.service-area { display:flex; align-items:center; justify-content:space-between; gap:34px; margin-top:34px; padding:30px; border:1px solid var(--line); }
.service-area p { max-width:760px; margin:0; color:#d2cfc7; }
.service-area strong { color:var(--white); }
.service-area .button { flex:0 0 auto; }

.gallery-section { background:var(--white); color:#111; }
.section-heading { margin-bottom:42px; }
.section-heading h2 { margin-bottom:14px; }
.section-heading>p:last-child { max-width:620px; margin:0; font-size:1.12rem; color:#67645e; }
.photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.public-gallery + .public-gallery { margin-top:56px; }
.public-gallery-title { margin:0 0 18px; padding-bottom:12px; border-bottom:3px solid var(--yellow); font-size:clamp(1.55rem,3vw,2.5rem); }
.photo-card { display:block; width:100%; margin:0; overflow:hidden; background:#171717; }
.photo-open { position:relative; display:block; width:100%; height:auto; border:0; padding:0; overflow:hidden; background:#111; color:#fff; cursor:zoom-in; }
.photo-open img { display:block; width:100%; aspect-ratio:3/2; height:auto; object-fit:cover; transition:transform .45s ease,filter .45s ease; }
.photo-open span { position:absolute; right:16px; bottom:16px; padding:8px 12px; background:rgba(0,0,0,.72); color:#fff; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; opacity:0; transform:translateY(8px); transition:.25s ease; }
.photo-open:hover img { transform:scale(1.035); filter:brightness(.72); }
.photo-open:hover span { opacity:1; transform:none; }

.videos-section { background:var(--black-soft); }
.videos-section .section-heading>p:last-child { color:var(--muted); }
.video-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.video-card { background:var(--panel); border:1px solid var(--line); }
.video-open { position:relative; width:100%; aspect-ratio:16/10; border:0; padding:0; overflow:hidden; background:#000; cursor:pointer; }
.video-open img { width:100%; height:100%; object-fit:cover; filter:saturate(.75) contrast(1.05); transition:transform .35s ease,filter .35s ease; }
.video-open:hover img { transform:scale(1.04); filter:saturate(1) contrast(1.05); }
.play-icon { position:absolute; inset:50% auto auto 50%; width:64px; height:64px; border-radius:50%; background:var(--yellow); transform:translate(-50%,-50%); box-shadow:0 8px 40px rgba(0,0,0,.35); }
.play-icon::after { content:''; position:absolute; left:26px; top:20px; border-left:18px solid #111; border-top:12px solid transparent; border-bottom:12px solid transparent; }
.video-copy { padding:20px; }
.video-copy h3 { margin-bottom:5px; font-size:1.2rem; line-height:1.25; }
.video-copy p { margin:0; color:var(--muted); }

.band-section { background:var(--yellow); color:#080808; }
.band-section .section-kicker { color:#080808; opacity:.65; }
.member-grid { display:grid; gap:18px; }
.member-card { display:grid; grid-template-columns:minmax(220px,34%) 1fr; min-height:390px; background:#080808; color:var(--white); }
.member-card:nth-child(even) { grid-template-columns:1fr minmax(220px,34%); }
.member-card:nth-child(even) .member-photo { order:2; }
.member-photo { min-height:390px; overflow:hidden; }
.member-photo img { width:100%; height:100%; object-fit:cover; filter:grayscale(1); transition:filter .35s ease,transform .35s ease; }
.member-card:hover .member-photo img { filter:grayscale(0); transform:scale(1.025); }
.member-copy { padding:clamp(28px,5vw,66px); align-self:center; }
.member-copy h3 { margin-bottom:4px; font-family:'Gotham Ultra',Impact,sans-serif; font-size:clamp(2rem,4vw,3.8rem); line-height:1; text-transform:uppercase; }
.member-role { margin:0 0 22px; color:var(--yellow-light); font-weight:700; }
.member-copy p:last-child { margin-bottom:0; color:#c9c6bf; }

.dossier { text-align:center; background:var(--white); color:#111; }
.dossier h2 { font-size:clamp(2.5rem,6vw,5rem); }
.opinions-section { background:var(--white); color:#111; overflow:hidden; }
.opinions-section .section-heading { margin-bottom:34px; }
.opinions-section .section-kicker { color:#9a6900; }
.opinions-carousel { display:grid; grid-template-columns:64px minmax(0,1fr) 64px; align-items:center; gap:18px; }
.opinions-track { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 36px)/3); align-items:stretch; gap:18px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; -ms-overflow-style:none; }
.opinions-track:focus-visible { outline:3px solid var(--yellow); outline-offset:8px; }
.opinions-track::-webkit-scrollbar { display:none; }
.opinions-arrow { width:64px; height:92px; display:grid; place-items:center; border:0; border-radius:8px; background:#090909; color:var(--white); box-shadow:0 12px 30px rgba(0,0,0,.2); font-size:2.1rem; font-weight:700; cursor:pointer; transition:background .22s ease,color .22s ease,transform .22s ease,box-shadow .22s ease; }
.opinions-arrow:hover { background:#1b1b1b; color:var(--yellow); transform:scale(1.04); }
.opinions-arrow:active,.opinions-arrow.is-active { background:var(--yellow); color:#080808; transform:scale(.94); box-shadow:0 6px 16px rgba(246,170,0,.42); }
.opinions-arrow:focus-visible { outline:3px solid var(--yellow); outline-offset:4px; }
.opinions-prev span { transform:translateX(-2px); }
.opinions-next span { transform:translateX(2px); }
.opinion-card { position:relative; min-height:390px; height:auto; display:flex; flex-direction:column; padding:clamp(28px,3.5vw,46px); border:1px solid #d8d2c5; background:#111; color:var(--white); scroll-snap-align:start; overflow:hidden; }
.opinion-card::after { content:''; position:absolute; right:-34px; bottom:-45px; width:150px; height:150px; border:26px solid rgba(246,170,0,.12); border-radius:50%; }
.opinion-quote { height:54px; color:var(--yellow); font-family:Georgia,serif; font-size:5.5rem; line-height:.9; }
.opinion-card h3 { margin:10px 0 16px; color:var(--yellow-light); font-size:clamp(1.3rem,2vw,1.8rem); line-height:1.15; }
.opinion-card p { position:relative; z-index:1; margin:0 0 24px; color:#d5d1c8; overflow:visible; }
.opinion-card strong { position:relative; z-index:1; margin-top:auto; padding-top:16px; border-top:1px solid var(--line); text-transform:uppercase; letter-spacing:.08em; }
.contact { position:relative; overflow:hidden; background:#0b0b0a; }
.contact-backdrop { position:absolute; right:-1vw; bottom:-20vw; color:rgba(246,170,0,.08); font-family:'Gotham Ultra',Impact,sans-serif; font-size:55vw; line-height:1; pointer-events:none; }
.contact-grid { position:relative; display:grid; grid-template-columns:1.1fr .9fr; gap:60px; align-items:end; }
.contact h2 { margin:0; }
.contact-details { display:grid; gap:12px; padding-bottom:10px; }
.contact-details>a { width:max-content; max-width:100%; color:var(--yellow); font-size:clamp(1.35rem,2.8vw,2.25rem); font-weight:700; text-decoration:none; overflow-wrap:anywhere; }
.social-links { display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:18px; }
.social-links a { text-underline-offset:5px; }

.site-footer { padding:34px 0; border-top:1px solid var(--line); background:#050505; }
.site-footer .section-wrap { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.site-footer img { width:78px; height:54px; object-fit:contain; }
.site-footer p { margin:0; color:var(--muted); }
.site-footer a { color:var(--yellow); text-decoration:none; font-weight:700; }
.media-dialog { width:min(1100px,calc(100vw - 32px)); max-width:none; max-height:calc(100vh - 32px); padding:0; border:1px solid var(--line); background:#050505; color:#fff; overflow:visible; }
.media-dialog::backdrop { background:rgba(0,0,0,.9); backdrop-filter:blur(6px); }
.dialog-close { position:absolute; right:-1px; top:-48px; width:44px; height:44px; border:0; border-radius:50%; background:var(--yellow); color:#050505; font-size:2rem; line-height:1; cursor:pointer; }
.dialog-content { display:grid; place-items:center; max-height:calc(100vh - 110px); }
.dialog-content img { max-width:100%; max-height:calc(100vh - 110px); object-fit:contain; }
.dialog-content iframe { width:100%; aspect-ratio:16/9; border:0; }
.dialog-caption { margin:0; padding:12px 18px; color:var(--muted); }
.reveal { opacity:0; transform:translateY(24px); transition:opacity .65s ease,transform .65s ease; }
.reveal.is-visible { opacity:1; transform:none; }

@media (max-width:900px) {
	:root { --wrap:min(100% - 32px,760px); }
	.about-grid,.contact-grid { grid-template-columns:1fr; }
	.service-area { align-items:flex-start; flex-direction:column; }
	.about-visual { width:min(560px,100%); margin-inline:auto; }
	.photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.video-grid { grid-template-columns:repeat(2,1fr); }
	.opinions-track { grid-auto-columns:calc((100% - 18px)/2); }
	.opinions-carousel { grid-template-columns:52px minmax(0,1fr) 52px; gap:10px; }
	.opinions-arrow { width:52px; height:78px; }
	.member-card,.member-card:nth-child(even) { grid-template-columns:minmax(180px,38%) 1fr; }
	.member-card:nth-child(even) .member-photo { order:0; }
}

@media (max-width:600px) {
	.site-header { height:70px; padding:9px 14px; }
	.menu-button { width:48px; height:48px; }
	.header-brand { top:7px; }
	.header-brand img { width:80px; height:56px; }
	.header-call { min-height:42px; padding:0 15px; font-size:.9rem; }
	.menu-panel { align-items:flex-start; padding:120px 24px 40px; }
	.menu-panel ul::before { margin-bottom:18px; }
	.menu-panel a { padding:.12em 0; font-size:clamp(2rem,10vw,2.7rem); }
	.hero-content { padding-top:92px; padding-bottom:88px; }
	.hero-logo { width:150px; }
	h1 { font-size:clamp(2.7rem,12vw,4.5rem); }
	.hero-shade { background:linear-gradient(0deg,#050505 0,rgba(0,0,0,.25) 60%,rgba(0,0,0,.7)); }
	.section { padding:76px 0; }
	.about h2,.section-heading h2,.contact h2 { font-size:clamp(2.7rem,15vw,4.5rem); }
	.photo-grid { grid-template-columns:1fr; }
	.service-grid { grid-template-columns:1fr; }
	.service-area { padding:24px; }
	.video-grid { grid-template-columns:1fr; }
	.opinions-track { grid-auto-columns:88%; }
	.opinion-card { min-height:390px; }
	.opinions-carousel { width:calc(100% - 16px); grid-template-columns:42px minmax(0,1fr) 42px; gap:6px; }
	.opinions-arrow { width:42px; height:68px; border-radius:6px; font-size:1.45rem; }
	.member-card,.member-card:nth-child(even) { grid-template-columns:1fr; }
	.member-photo { min-height:430px; }
	.member-copy { padding:28px 24px 34px; }
	.site-footer .section-wrap { flex-direction:column; text-align:center; }
}

@media (prefers-reduced-motion:reduce) {
	*,*::before,*::after { scroll-behavior:auto !important; animation:none !important; transition-duration:.01ms !important; }
	.reveal { opacity:1; transform:none; }
}
