/* Lázaro DCuba: gold metal, black, and the blue/red ribbon signature. */
.back-to-top { position:fixed;left:50%;right:auto;bottom:calc(26px + env(safe-area-inset-bottom,0px));translate:-50% 0;z-index:61;display:grid;place-items:center;width:52px;height:52px;border:1px solid #f6df9d;border-radius:50%;background:linear-gradient(145deg,#fff0c4,#d9ae60 65%,#bd883c);color:#17120a;box-shadow:0 4px 0 #805421,0 10px 28px #0008;cursor:pointer;transition:transform .2s,box-shadow .2s; }
.back-to-top[hidden] { display:none; }
.back-to-top:hover { transform:translateY(-3px); }
.back-to-top:active { transform:translateY(3px);box-shadow:0 1px 0 #805421,0 4px 14px #0006; }
@media(max-width:700px) { .back-to-top { bottom:calc(20px + env(safe-area-inset-bottom,0px));width:48px;height:48px; } }
:root {
  --brand-gold: #d9ae60;
  --brand-gold-light: #f6df9d;
  --brand-gold-edge: #8e6028;
  --brand-blue: #174a87;
  --brand-red: #af1830;
  --brand-ink: #070706;
  --gold: var(--brand-gold);
  --gold-bright: var(--brand-gold-light);
  --gold-pale: #f5e6c5;
  --brand-metal: linear-gradient(145deg,#fff0c4 0%,#e7c073 38%,#c79643 78%,#ebc879);
  --brand-line: linear-gradient(90deg,transparent,var(--brand-blue) 20%,var(--brand-gold-light) 50%,var(--brand-red) 80%,transparent);
  --brand-ease: cubic-bezier(.16,1,.3,1);
}
body { background: radial-gradient(ellipse at 0% 30%,#174a8709,transparent 50%),radial-gradient(ellipse at 100% 65%,#af183008,transparent 45%),var(--brand-ink); }
::selection { color: #090805; background: var(--brand-gold-light); }
.site-header { border-bottom-color: #d9ae6033; }
.site-header::after { position: absolute; inset: auto 0 0; height: 1px; background: var(--brand-line); content: ''; pointer-events: none; opacity: .65; }
.brand-copy { color: #f5e6c5; }
.brand-copy small { color: #d9ae60; }
.button-gold { background: var(--brand-metal); --button-edge: var(--brand-gold-edge); }
.button-ghost { border-color: #d9ae6055; background: linear-gradient(145deg,#202128,#14130f); }
.type-button[aria-pressed="true"],.mode-button[aria-pressed="true"],.language-button[aria-pressed="true"] { background: var(--brand-metal); }
.festival-art-copy h2 em,.section-heading em,.studio-copy h3 em,.footer-brand em { color: var(--brand-gold-light); }
.section-kicker { color: var(--brand-gold); }
.section-kicker::after { background: var(--brand-line); }
.signal-bar { position: relative; border: 0; background: linear-gradient(90deg,#174a8709,#d9ae6007,#af183009); }
.signal-bar::before,.signal-bar::after { content: ''; position: absolute; left: 0; right: 0; height: 1px; background: var(--brand-line); opacity: .65; }
.signal-bar::before { top: 0; }
.signal-bar::after { bottom: 0; }
.signal-track { color: #d9ae60; }
.offer-options>a { background: radial-gradient(ellipse at 0 0,#174a8718,transparent 65%),linear-gradient(145deg,#211d14,#0d0d0b); }
.offer-options>a:nth-child(2) { background: radial-gradient(ellipse at 0 0,#af183015,transparent 65%),linear-gradient(145deg,#211d14,#0d0d0b); }
.offer-options>a:nth-child(3) { background: radial-gradient(ellipse at 0 0,#d9ae6015,transparent 65%),linear-gradient(145deg,#211d14,#0d0d0b); }
.offer-options>a.is-selected { border-color: var(--brand-gold); }
.offer-options b,.offer-inline-link,.direct-link { color: var(--brand-gold-light); }
.manifesto-card.depth-surface { background: linear-gradient(155deg,#181814,#0c0c0a); border-top-color: #d9ae6055; }
.depth-light { background: radial-gradient(ellipse at var(--light-x,50%) var(--light-y,30%),#f6df9d26,transparent 60%); }
.brief-form { border-color: #d9ae6040; background: radial-gradient(ellipse at top right,#174a870b,transparent 60%),linear-gradient(145deg,#18160f,#0b0b09); }
.form-field input:focus,.form-field textarea:focus { border-color: var(--brand-gold); box-shadow: 0 0 0 3px #d9ae6014; }
.site-footer { position: relative; border-top: 0; }
.site-footer::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--brand-line); }
.site-intro::before { background: radial-gradient(ellipse at 40% 45%,#d9ae6018,transparent 45%),radial-gradient(ellipse at 30% 65%,#174a8712,transparent 35%),radial-gradient(ellipse at 70% 65%,#af18300c,transparent 35%); }
.site-intro-rule { background: var(--brand-line); width: 110px; }
.site-intro::after { opacity: .12; }
.depth-surface { transition-timing-function: var(--brand-ease),ease,ease; }
/* Do not recolor the recognizable WhatsApp action or partner branding. */
/* Keep the complete studio frame visible, including during hover and motion. */
figure.studio-vitrine { min-height: 0; height: auto; aspect-ratio: auto; padding: 0; align-self: start; }
html body .studio-vitrine video#studio-image {
  position: relative; inset: auto; display: block; width: 100%; height: auto;
  max-width: 100%; min-height: 0; max-height: 76svh; aspect-ratio: auto;
  object-fit: contain; object-position: center; transform: none !important;
  animation: none !important; border: 0; border-radius: 0; box-shadow: none;
}
.studio-vitrine .studio-caption { position: relative; inset: auto; padding: 22px 26px; width: auto; }
.studio-vitrine .studio-caption strong { font-size: clamp(22px, 3vw, 32px); line-height: 1.25; }
.studio-vitrine .studio-caption strong br { display: none; }
.studio-vitrine .depth-light { display: none; }
/* Editorial hierarchy: generous rhythm, legible controls, consistent surfaces. */
:root { --ui-radius: 14px; --ui-line: rgba(217,174,96,.24); }
/* Final visual audit: readable editorial typography and full-frame media. */
@media(max-width:380px) {
 .site-header .brand-copy { display: none; }
 .site-header .header-actions { gap: 8px; }
}
body { letter-spacing: normal; }
.form-data-note { font-family:var(--ui);font-size:13px;line-height:1.7;color:#b9b2a6;margin:22px 0 0;padding-top:20px;border-top:1px solid #d9ae6026; }
.modal-shell { border-radius:16px;overflow:auto; }
.modal-screen video { display:block;width:100%;height:min(76svh,650px);object-fit:contain;background:#050505; }
.modal-close { width:44px;height:44px; }
.reel-modal:not(.is-open) { visibility:hidden; }
@media(max-width:700px) {
 .reel-modal { padding:16px; }
 .modal-shell { grid-template-columns:1fr;max-height:90svh;gap:20px; }
 .modal-screen { min-height:0; }
 .modal-screen video { height:54svh; }
 .modal-copy { padding:0 10px 16px; }
 .modal-copy h2 { font-size:30px; }
}
.footer-copy,.footer-bottom,.archive-card-foot { color:#b9b2a6; }
a:focus-visible,button:focus-visible { outline:2px solid #f6df9d;outline-offset:5px; }
p { text-wrap: pretty; }
.section-intro,.hero-lede,.studio-copy p,.event-service p { line-height: 1.7; }
.section-kicker,.eyebrow,.archive-label,.form-label,.form-note,.direct-link { font-family: var(--ui); }
.direct-link { font-size: 15px; letter-spacing: .02em; min-height: 48px; }
.form-note { letter-spacing: 0; }
.studio-copy h3 em { margin-inline-start: .16em; }
.studio-grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(32px,6vw,80px); align-items: start; }
.studio-copy { padding-left: 0; }
.studio-caption strong { letter-spacing: -.025em; }
.hero-video-caption { position: relative; inset: auto; background: #10100e; padding: 24px; }
.hero-media video { position: relative; height: auto; max-height: 72svh; width: 100%; object-fit: contain; transform: none; }
.hero-media { clip-path: none !important; }
.travel-video { object-fit: contain; background: #050505; transform: none !important; }
.archive-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 32px; }
.archive-feature { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); min-height: 0; padding: 0; border-radius: 16px; overflow: hidden; }
.archive-feature::before,.archive-feature::after { display: none; }
.archive-screen { position: relative; inset: auto; min-height: 0; height: 480px; aspect-ratio: auto; background: #050505; }
.archive-screen video { position: static; display: block; width: 100%; height: 100%; object-fit: contain; transform: none !important; }
.archive-feature-meta { position: relative; inset: auto; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 32px; padding: clamp(24px,4vw,60px); background: linear-gradient(145deg,#1d1a12,#0d0d0b); }
.archive-feature-meta strong { font-size: clamp(36px,5vw,64px); line-height: 1.08; letter-spacing: -.04em; }
.archive-feature-meta small { display: block; margin-bottom: 22px; font-size: 12px; letter-spacing: .12em; }
.archive-feature-meta a { font-size: 14px; color: #ebce96; padding-block: 12px; }
.archive-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.archive-card { display: flex; flex-direction: column; min-height: 0; padding: 0; text-align: left; }
.archive-card-image { display: block; width: 100%; height: auto; aspect-ratio: 3/4; background: #050505; }
.archive-card-image video { width: 100%; height: 100%; object-fit: contain; object-position: center !important; transform: none !important; scale: 1 !important; filter: none; }
.archive-card-image::before,.archive-card-image::after,.archive-card .play-mark { display: none; }
.archive-card-copy { display: flex; flex-direction: column; width: 100%; flex: 1; min-height: 178px; padding: 22px; }
.archive-card-copy>strong { font-size: clamp(23px,2.5vw,32px); line-height: 1.16; letter-spacing: -.03em; margin-block: 12px 24px; }
.archive-label { font-size: 12px; color: #d4b883; letter-spacing: .06em; }
.archive-card-foot { margin-top: auto; font-size: 13px; letter-spacing: .025em; }
.brief-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 30px; max-width: 980px; margin-inline: auto; }
.brief-aside { position: static; display: flex; justify-content: space-between; align-items: center; gap: 32px; }
.brief-aside>p { max-width: 58ch; margin: 0; }
.brief-aside .direct-link { flex-shrink: 0; }
.brief-form { width: 100%; }
.form-types { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.form-label { font-weight: 500; }
.motion-ready [data-choreography] { opacity: 1; transition: translate .7s cubic-bezier(.16,1,.3,1); }
[data-reveal] { transition: opacity .3s ease, transform .75s cubic-bezier(.16,1,.3,1); }
.signal-track,.events-marquee span { font-size: 12px; letter-spacing: .09em; }
@media(max-width:900px) {
 .studio-grid { grid-template-columns: 1fr; }
 .archive-list { gap: 16px; }
 .archive-card-copy { padding: 18px; }
 .brief-aside { display: block; }
 .brief-aside .direct-link { margin-top: 14px; }
}
@media(max-width:620px) {
 .archive-feature { grid-template-columns: 1fr; }
 .archive-screen { height: auto; aspect-ratio: 9/12; }
 .archive-feature-meta { padding: 24px; gap: 14px; }
 .archive-feature-meta strong { font-size: 36px; }
 .archive-feature-meta small { margin-bottom: 14px; }
 .archive-list { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
 .archive-card-copy { padding: 15px 12px; min-height: 172px; }
 .archive-card-copy>strong { font-size: 21px; letter-spacing: -.02em; }
 .archive-label { font-size: 11px; letter-spacing: .02em; }
 .hero-video-caption { flex-wrap: wrap; gap: 14px; }
 .hero-video-caption a { font-size: 13px; }
 .form-types { grid-template-columns: 1fr 1fr; }
}
.section-shell { width: min(calc(100% - 64px), 1320px); }
.section { padding-block: clamp(80px, 9vw, 136px); }
.section-heading { max-width: 17ch; font-size: clamp(38px, 5.1vw, 76px); line-height: 1.08; letter-spacing: -.045em; }
.section-intro,.hero-lede { max-width: 54ch; color: #c7c1b7; }
.section-kicker,.eyebrow { font-size: 12px; line-height: 1.6; letter-spacing: .13em; }
.section-kicker { margin-bottom: 24px; }
.offer-options>a { border-radius: var(--ui-radius); padding: clamp(24px, 2.8vw, 40px); min-height: 244px; }
.offer-options>a strong { line-height: 1.2; letter-spacing: -.035em; }
.offer-options>a strong+span { line-height: 1.65; }
.manifesto-grid { gap: 24px; align-items: stretch; }
.manifesto-card.depth-surface { display: flex; flex-direction: column; padding: clamp(24px, 3vw, 40px); border-radius: var(--ui-radius); }
.manifesto-card h3 { font-size: clamp(26px, 2.6vw, 38px); line-height: 1.15; letter-spacing: -.03em; margin-block: 28px 16px; }
.manifesto-card p { color: #c7c1b7; margin-bottom: 24px; }
.manifesto-card .offer-inline-link { align-self: flex-start; margin-top: auto; }
.event-service { border-color: var(--ui-line); padding-block: 28px; }
.event-service strong { font-size: clamp(21px, 2vw, 28px); line-height: 1.3; }
.event-service p { font-size: 16px; line-height: 1.75; max-width: 56ch; color: #c7c1b7; }
.archive-card { border-radius: var(--ui-radius); }
.brief-form { border-radius: 18px; padding: clamp(24px, 4vw, 52px); }
.booking-intro h3 { font-size: clamp(28px, 3vw, 40px); line-height: 1.18; }
.booking-intro p,.form-note { font-size: 14px; line-height: 1.75; }
.booking-summary { padding: 12px 16px; border-left: 2px solid var(--brand-gold); background: #d9ae600b; color: #f3dcac !important; }
.form-label { font-size: 14px; letter-spacing: .015em; text-transform: none; }
.form-field input,.form-field textarea { border-radius: 9px; border-color: #f4e6c426; line-height: 1.5; }
.form-field input::placeholder,.form-field textarea::placeholder { color: #969187; opacity: 1; }
.type-button { font-size: 14px; min-height: 46px; padding: 12px 15px; }
.button { font-size: 14px; letter-spacing: .025em; min-height: 54px; }
.form-feedback.is-visible { padding: 16px; border: 1px solid var(--ui-line); border-radius: 9px; font-size: 15px; line-height: 1.6; }
.form-feedback.is-error { border-color: #d88b7966; color: #ffc4b6; }
.language-button { min-height: 40px; box-shadow: inset 0 1px #fff2,0 2px 0 #3a3020; transform: none; }
.language-button[aria-pressed="true"] { transform: translateY(1px); box-shadow: inset 0 2px 4px #0004; }
.footer-links a { font-size: 15px; min-height: 44px; display: inline-flex; align-items: center; }
@media(max-width:700px) {
  .section-shell { width: calc(100% - 36px); }
  .section { padding-block: 72px; }
  .section-heading { font-size: clamp(36px, 9.5vw, 52px); letter-spacing: -.04em; }
  .offer-options>a { min-height: 206px; }
  .manifesto-grid { gap: 18px; }
  .manifesto-card h3 { font-size: 30px; }
  .brief-form { padding: 26px 20px; }
  .form-types { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
  .type-button { width: 100%; padding-inline: 9px; }
}
