/* Adaptación para la web oficial. entregas-base.css es una copia intacta de la maestra. */
html { scroll-padding-top: 24px; }
body.dialog-open { overflow: hidden; }
button { font: inherit; cursor: pointer; }
a:focus-visible, button:focus-visible { outline: 3px solid var(--gold-light); outline-offset: 6px; }
[hidden] { display: none !important; }
.sr-only { 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 { position: fixed; top: 10px; left: 12px; padding: 10px 20px; background: var(--bg-dark); color: var(--gold-light); z-index: 200; transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }
.brand-header .container { gap: 28px; flex-wrap: wrap; }
.brand-logo { flex-shrink: 0; }
.brand-logo-img { max-width: 185px; height: auto; }
.brand-header nav { display: flex; gap: 28px; margin-left: auto; font-size: .85rem; }
.brand-header nav a { padding: 8px 0; color: var(--text-primary); border-bottom: 1px solid transparent; }
.brand-header nav a:hover { border-color: var(--gold-primary); color: var(--gold-light); }
.brand-location { font-size: .7rem; }
.menu-toggle { display: none; padding: 10px 14px; background: var(--bg-card); border: 1px solid var(--border-light); border-radius: var(--radius-md); color: var(--gold-light); }
.menu-toggle span { margin-left: 10px; }
.hero { min-height: clamp(760px,92svh,1000px); padding-top: 9rem; padding-bottom: 2.3rem; }
.hero-bg img { object-position: center 58%; }
.hero-overlay { background: linear-gradient(180deg,rgba(12,13,16,.6) 0%,rgba(12,13,16,.5) 35%,rgba(12,13,16,.92) 100%); }
.hero-content { max-width: 900px; }
.hero-brand-logo { height: 70px; }
.hero-title { font-size: clamp(2.5rem,5.4vw,4.2rem); }
.hero-description { max-width: 660px; }
.hero-actions { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 16px; margin-bottom: 3.4rem; }
.hero-actions .social-btn { display: inline-flex; }
.gold-button { display: inline-flex; justify-content: center; align-items: center; gap: 18px; padding: 1.1rem 2rem; border-radius: 9999px; color: #0c0d10; background: var(--gold-gradient); box-shadow: 0 10px 30px rgba(212,175,55,.25); font-size: .85rem; font-weight: 700; line-height: 1.6; text-align: center; transition: transform .3s,box-shadow .3s; min-height: 52px; max-width: 100%; }
.gold-button:hover { transform: translateY(-3px); box-shadow: 0 15px 40px rgba(212,175,55,.4); }
.hero-scroll-indicator { font-size: .7rem; }
.hero-scroll-icon, .social-btn-icon { filter: brightness(0) invert(1); }
.section-header { max-width: 850px; margin-inline: auto; }
.filters { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; margin-bottom: 36px; }
.filters button { background: var(--bg-card); color: var(--text-muted); border: 1px solid var(--border-light); border-radius: 9999px; padding: 11px 23px; font-size: .85rem; min-height: 44px; transition: border-color .2s, color .2s,background .2s; }
.filters button:hover { border-color: var(--gold-primary); color: var(--gold-light); }
.filters button[aria-pressed="true"] { color: var(--gold-light); border-color: rgba(212,175,55,.5); background: rgba(212,175,55,.15); }
.gallery { columns: 3; column-gap: 24px; }
.gallery-item { break-inside: avoid; margin-bottom: 24px; }
.gallery-item > a { display: block; position: relative; }
.gallery-item img { aspect-ratio: auto; width: 100%; height: auto; }
.gallery-item .editorial-caption { text-align: left; padding: 18px 22px; font-size: 1.12rem; }
.editorial-caption > span { display: block; font-family: var(--font-sans); font-style: normal; font-size: .6rem; letter-spacing: .15em; color: var(--text-muted); text-transform: uppercase; margin-bottom: 7px; }
.photo-open { position: absolute; bottom: 14px; right: 14px; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: rgba(12,13,16,.75); color: var(--gold-light); border: 1px solid rgba(212,175,55,.4); }
.gallery[data-count="1"] { columns: 1; max-width: 540px; margin-inline: auto; }
.gallery[data-count="2"] { columns: 2; }
.portfolio-note { text-align: center; font-family: var(--font-serif); font-size: 1.35rem; font-style: italic; color: var(--gold-light); margin-top: 36px; }
.services-section, .process-section { background: #090a0d; }
.service-grid { margin-top: 0; gap: 24px; }
.service-card { border: 1px solid var(--border-light); background: var(--bg-card); border-radius: var(--radius-md); padding: 2rem; display: flex; flex-direction: column; align-items: flex-start; }
.service-number { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(212,175,55,.4); background: rgba(212,175,55,.08); color: var(--gold-light); border-radius: 50%; font-size: .8rem; margin-bottom: 22px; }
.service-card h3 { line-height: 1.25; margin-bottom: 15px; }
.service-card p { font-size: .95rem; line-height: 1.8; }
.text-link { display: inline-flex; align-items: center; gap: 12px; font-size: .8rem; color: var(--gold-light); border-bottom: 1px solid rgba(212,175,55,.4); padding-block: 12px 6px; margin-top: 14px; }
.text-link:hover { color: #fff; border-color: var(--gold-light); }
.about-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 65px; align-items: center; }
.team-photo { margin: 0; }
.team-photo > img { width: 100%; height: auto; aspect-ratio: auto; }
.team-photo .editorial-caption { font-size: 1.1rem; }
.about-copy h3 { font-family: var(--font-serif); color: var(--gold-light); font-size: 2rem; margin-bottom: 20px; }
.about-copy > p { color: var(--text-muted); font-size: 1rem; margin-bottom: 20px; line-height: 1.85; }
.team-profiles { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; max-width: 900px; margin: 56px auto 0; }
.team-profile { overflow: hidden; background: var(--bg-card); border: 1px solid var(--border-light); border-radius: var(--radius-md); }
.team-profile > img { display: block; width: 100%; height: auto; }
.team-profile figcaption { padding: 24px 26px 28px; text-align: center; }
.team-profile h3 { color: var(--gold-light); font-family: var(--font-serif); font-size: 2rem; line-height: 1.2; margin-bottom: 12px; }
.team-profile p { color: var(--text-muted); font-size: .95rem; line-height: 1.7; max-width: 300px; margin-inline: auto; }
.about-copy > .social-btn { display: inline-flex; font-size: .78rem; padding: .95rem 1.3rem; }
.process-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.process-grid article { background: var(--bg-card); border: 1px solid var(--border-light); padding: 2rem; border-radius: var(--radius-md); }
.process-grid article > span { display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--gold-gradient); color: #0c0d10; font-weight: 700; margin-bottom: 22px; }
.process-grid h3 { font-family: var(--font-serif); font-size: 1.6rem; color: #fff; margin-bottom: 14px; }
.process-grid p { color: var(--text-muted); font-size: .92rem; line-height: 1.8; }
.contact-section { background: linear-gradient(180deg,#090a0d 0%,#060708 100%); }
.contact-card { max-width: 950px; margin-inline: auto; background: var(--bg-card); border: 1px solid rgba(212,175,55,.3); border-radius: var(--radius-lg); padding: 4rem 2.5rem; box-shadow: 0 25px 60px rgba(0,0,0,.5); }
.contact-card .section-text { margin-inline: auto; }
.contact-card > .gold-button { margin-block: 2rem; }
.phone { font-family: var(--font-serif); font-size: 2rem; color: var(--gold-light); }
.contact-details address { font-style: normal; font-size: .95rem; color: var(--text-muted); margin-top: 12px; }
.location-map { margin-top: 2.5rem; text-align: left; }
.location-map h3 { margin-bottom: 1rem; color: var(--gold-light); font-family: var(--font-serif); font-size: 1.25rem; text-align: center; }
.location-map-address { margin: 0 0 1.25rem; color: var(--text-muted); font-size: .9rem; line-height: 1.7; text-align: center; }
.location-map-actions { display: flex; flex-direction: column; align-items: center; gap: 1rem; margin-top: 1.5rem; }
.location-map-actions .gold-button { max-width: 100%; white-space: normal; text-align: center; }
.location-map-link { color: var(--gold-light); font-size: .9rem; text-decoration: underline; text-underline-offset: 4px; }
.location-map-link:focus-visible { outline: 2px solid var(--gold-light); outline-offset: 5px; }
.location-map-help { margin: 1rem auto 0; max-width: 550px; color: var(--text-muted); font-size: .85rem; line-height: 1.8; text-align: center; }
.location-map-frame { overflow: hidden; border: 1px solid rgba(212,175,55,.3); border-radius: var(--radius-md); background: #090a0d; }
.location-map iframe { display: block; width: 100%; height: clamp(280px,40vw,420px); border: 0; }
.contact-socials { border-top: 1px solid var(--border-light); padding-top: 2.5rem; margin-top: 2.5rem; }
.social-links-grid { margin-top: 25px; }
.social-links-grid .social-btn { font-size: .85rem; padding: 1rem 1.6rem; }
.site-footer img { width: 175px; height: auto; }
.footer-content { gap: 30px; }
.site-footer small { font-size: .75rem; }
.cinema-section, .trust-section { background: #090a0d; }
.pending-media-note { color: var(--gold-light); font-size: .8rem; margin-top: 18px; }
.wedding-films { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.wedding-moments { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; max-width: 1000px; margin: 32px auto 0; }
.film-card { overflow: hidden; background: var(--bg-card); border: 1px solid var(--border-light); border-radius: var(--radius-md); }
.video-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; background: radial-gradient(ellipse at top,rgba(212,175,55,.08),transparent 70%),#101217; border-bottom: 1px dashed rgba(212,175,55,.25); color: var(--gold-light); padding: 20px; text-align: center; }
.video-landscape { aspect-ratio: 16/9; }
.video-portrait { aspect-ratio: 9/16; }
.film-embed { width: 100%; background: #060708; }
.film-embed iframe { display: block; width: 100%; height: 100%; border: 0; }
.film-source { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: 8px; color: var(--gold-light); font-size: .75rem; }
.film-source:hover { text-decoration: underline; text-underline-offset: 4px; }
.video-placeholder > span:not(.film-slot-number) { color: var(--text-muted); font-size: .8rem; line-height: 1.7; }
.film-slot-number { display: grid; place-items: center; width: 52px; height: 52px; border: 1px solid rgba(212,175,55,.3); border-radius: 50%; font-size: .85rem; }
.film-card figcaption { padding: 18px 20px 20px; }
.film-card h3 { color: var(--gold-light); font-family: var(--font-serif); font-size: 1.3rem; line-height: 1.3; }
.film-card figcaption > span { color: var(--text-muted); font-size: .72rem; display: block; margin-top: 8px; }
.trust-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.trust-card { padding: 30px; background: var(--bg-card); border: 1px solid rgba(212,175,55,.18); border-radius: var(--radius-md); }
.trust-label { color: var(--gold-primary); font-size: .6rem; line-height: 1.8; letter-spacing: .13em; display: block; margin-bottom: 18px; }
.trust-card h3 { color: var(--gold-light); font: 400 1.65rem/1.25 var(--font-serif); margin-bottom: 18px; }
.trust-card p { color: var(--text-muted); font-size: .94rem; line-height: 1.85; }
.equipment-note { color: var(--text-muted); font-size: .78rem; line-height: 1.8; text-align: center; max-width: 780px; margin: 28px auto 0; }
.studio-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.studio-placeholder { aspect-ratio: 4/3; border: 1px dashed rgba(212,175,55,.4); border-radius: var(--radius-lg); background: radial-gradient(ellipse at center,rgba(212,175,55,.06),transparent 70%),var(--bg-card); display: flex; flex-direction: column; gap: 16px; align-items: center; justify-content: center; padding: 30px; color: var(--gold-light); text-align: center; }
.studio-placeholder > span { font-family: var(--font-serif); font-size: 1.6rem; }
.studio-placeholder small { color: var(--text-muted); font-size: .78rem; }
.studio-copy .section-title { font-size: clamp(2rem,3vw,2.6rem); }
.studio-copy > p { color: var(--text-muted); font-size: 1rem; line-height: 1.8; margin-bottom: 20px; }
.studio-copy address { color: var(--gold-light); font-size: .9rem; font-style: normal; margin-bottom: 26px; }
.studio-copy .social-btn { font-size: .78rem; }
.corporate-link { display: flex; gap: 24px; justify-content: space-between; align-items: center; padding-bottom: 30px; margin-bottom: 30px; border-bottom: 1px solid var(--border-light); }
.corporate-link p { color: var(--text-primary); font-family: var(--font-serif); font-size: 1.4rem; }
.corporate-link > div { text-align: right; }
.corporate-link a { display: inline-block; padding-block: 10px; color: var(--gold-light); font-size: .8rem; }
.corporate-link a:hover { text-decoration: underline; text-underline-offset: 5px; }
.corporate-link span#corporate-status { display: block; color: var(--text-muted); font-size: .7rem; }
.lightbox { border: 0; padding: 0; color: var(--text-primary); background: #060708; width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; overflow: hidden; }
.lightbox::backdrop { background: #060708; }
.lightbox[open] { display: grid; grid-template-columns: 60px 1fr 60px; grid-template-rows: 64px minmax(0,1fr); align-items: center; }
.lightbox-toolbar { grid-column: 1/-1; display: flex; justify-content: space-between; align-items: center; padding: 10px 28px; font-size: 12px; color: var(--gold-light); }
.lightbox button { border: 1px solid rgba(212,175,55,.4); background: var(--bg-card); color: var(--gold-light); height: 44px; min-width: 44px; border-radius: 12px; }
.lightbox-close { padding: 5px 15px; }
.lightbox-close span { font-size: 22px; padding-left: 15px; }
.lightbox figure { height: 100%; min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 15px; padding: 0 12px 25px; }
.lightbox figure img { min-height: 0; max-height: calc(100% - 40px); width: auto; max-width: 100%; object-fit: contain; }
.lightbox figcaption { font-family: var(--font-serif); color: var(--gold-light); font-size: 17px; text-align: center; }
.lightbox-prev { margin-left: 12px; }
.lightbox-next { margin-right: 12px; }
@media(max-width:1000px) {
  .brand-location { display: none; }
  .service-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .service-card { padding: 1.5rem; }
  .about-layout { gap: 35px; }
  .trust-card { padding: 24px; }
  .studio-layout { gap: 35px; }
}
@media(max-width:900px) { .gallery { columns: 2; } .process-grid { gap: 16px; } .process-grid article { padding: 1.5rem; } }
@media(max-width:720px) {
  .brand-header { padding-top: 1.2rem; }
  .brand-header .container { gap: 16px; }
  .brand-logo-img { max-width: 155px; }
  .menu-toggle { display: block; margin-left: auto; font-size: .8rem; }
  .brand-header nav { flex: 0 0 100%; order: 3; margin: 0; justify-content: space-around; flex-wrap: wrap; gap: 15px; font-size: .8rem; padding: 15px; border-radius: 16px; background: #15171e; border: 1px solid var(--border-light); }
  .js-ready .brand-header nav { display: none; }
  .js-ready .brand-header nav.is-open { display: flex; }
  .hero { min-height: min(95svh,900px); padding: 8rem 1.5rem 2.2rem; }
  .hero-logo-wrapper { margin-bottom: 1.5rem; }
  .hero-brand-logo { height: auto; max-width: 240px; }
  .hero-title { font-size: clamp(2rem,7.5vw,3rem); }
  .hero-thanks { font-size: 1.2rem; }
  .hero-description { font-size: .95rem; margin-bottom: 1.7rem; }
  .hero-badge { font-size: .65rem; padding: .4rem .75rem; }
  .hero-actions { gap: 12px; margin-bottom: 2rem; }
  .gold-button, .hero-actions .social-btn { font-size: .73rem; padding: 1rem 1.4rem; }
  .hero-overlay { background: linear-gradient(180deg,rgba(12,13,16,.65) 0%,rgba(12,13,16,.75) 45%,#0c0d10 100%); }
  .hero-scroll-indicator { font-size: .6rem; margin-top: 12px; }
  .section { padding-block: 4rem; }
  .section-header { margin-bottom: 2.5rem; }
  .section-title { font-size: clamp(1.9rem,6.3vw,2.6rem); }
  .section-text { font-size: .95rem; }
  .section-tag { font-size: .65rem; }
  .service-grid, .process-grid { grid-template-columns: 1fr; }
  .service-card { padding: 1.75rem; }
  .about-layout { grid-template-columns: 1fr; gap: 35px; }
  .team-photo { max-width: 500px; margin-inline: auto; }
  .team-profiles { gap: 24px; margin-top: 40px; }
  .about-copy > p { font-size: .95rem; }
  .contact-card { padding: 2.5rem 1.25rem; }
  .social-links-grid { gap: 12px; }
  .social-links-grid .social-btn { padding: .9rem 1.1rem; }
  .wedding-films { grid-template-columns: 1fr; }
  .wedding-moments { gap: 16px; }
  .film-card figcaption { padding: 16px; }
  .film-card h3 { font-size: 1.2rem; }
  .video-placeholder { padding: 16px; }
  .trust-grid { grid-template-columns: 1fr; }
  .studio-layout { grid-template-columns: 1fr; gap: 32px; }
  .studio-copy > p { font-size: .95rem; }
  .corporate-link { flex-direction: column; text-align: center; gap: 12px; }
  .corporate-link > div { text-align: center; }
}
@media(max-width:600px) {
  .team-profiles { grid-template-columns: 1fr; max-width: 420px; }
  .wedding-moments { grid-template-columns: 1fr; max-width: 340px; gap: 24px; }
}
@media(max-width:540px) {
  .gallery, .gallery[data-count="2"] { columns: 1; }
  .filters { gap: 8px; }
  .filters button { padding: 10px 16px; font-size: .75rem; }
  .gallery-item .editorial-caption { text-align: center; }
  .lightbox[open] { grid-template-columns: 44px 1fr 44px; }
  .lightbox-toolbar { padding-inline: 16px; }
  .lightbox-prev { margin-left: 2px; }
  .lightbox-next { margin-right: 2px; }
  .lightbox figure { padding-inline: 5px; }
  .lightbox figcaption { font-size: 14px; }
}
.reviews-section { background: #0c0d10; }
.reviews-carousel { max-width: 1000px; margin-inline: auto; }
.review-slides { display: grid; gap: 24px; }
.review-slide { padding: 40px; background: radial-gradient(ellipse at top,rgba(212,175,55,.08),transparent 75%),var(--bg-card); border: 1px solid rgba(212,175,55,.35); border-radius: var(--radius-lg); text-align: center; display: flex; flex-direction: column; justify-content: center; }
.reviews-carousel.is-enhanced .review-slides { gap: 0; }
.reviews-carousel.is-enhanced .review-slide { grid-area: 1/1; visibility: hidden; opacity: 0; pointer-events: none; transition: opacity .25s ease; }
.reviews-carousel.is-enhanced .review-slide.is-active { visibility: visible; opacity: 1; pointer-events: auto; }
.review-topic { color: var(--gold-primary); font-size: .62rem; letter-spacing: .13em; line-height: 1.8; display: block; margin-bottom: 18px; }
.review-slide blockquote { color: var(--gold-light); font-family: var(--font-serif); font-size: 1.55rem; line-height: 1.7; }
.review-slide figcaption { color: var(--text-muted); font-size: .7rem; margin-top: 22px; }
.review-context { color: var(--text-muted); font-size: .8rem; margin-top: 16px; }
.review-controls { display: flex; align-items: center; justify-content: center; gap: 28px; padding-top: 24px; }
.review-controls > button { width: 48px; height: 48px; background: var(--bg-card); color: var(--gold-light); border: 1px solid rgba(212,175,55,.4); border-radius: 50%; font-size: 1.3rem; }
.review-controls > button:hover { background: rgba(212,175,55,.12); border-color: var(--gold-primary); }
.review-center-controls { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.review-counter { color: var(--gold-light); font-size: .82rem; letter-spacing: .12em; font-variant-numeric: tabular-nums; }
.review-toggle { background: none; border: 0; color: var(--text-muted); font-size: .72rem; padding: 8px; min-height: 40px; }
.review-toggle:hover { color: var(--gold-light); }
.studio-photo { overflow: hidden; background: var(--bg-card); border: 1px solid var(--border-light); border-radius: var(--radius-md); }
.studio-photo > a { display: block; position: relative; }
.studio-photo img { display: block; width: 100%; height: auto; }
.studio-photo figcaption { color: var(--gold-light); font: italic 1.1rem/1.5 var(--font-serif); padding: 18px 20px; text-align: center; }
.studio-copy h3, .thematic-header h3 { color: var(--gold-light); font: 400 2rem/1.25 var(--font-serif); margin-bottom: 20px; }
.studio-details-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin-top: 28px; }
.thematic-header { max-width: 800px; margin: 56px auto 28px; text-align: center; }
.thematic-header p { color: var(--text-muted); font-size: 1rem; line-height: 1.8; }
.studio-theme-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.studio-season-note { color: var(--text-muted); font-size: .8rem; text-align: center; margin-top: 24px; }
.biography-page .brand-header { position: relative; background: var(--bg-dark); border-bottom: 1px solid var(--border-light); }
.biography-intro { padding-top: 70px; }
.biography-page .about-copy h2 { font-family: var(--font-serif); color: var(--gold-light); font-size: 2.2rem; line-height: 1.2; margin-bottom: 24px; }
.biography-profiles { margin-top: 64px; }
.biography-profiles h2 { color: var(--gold-light); font-family: var(--font-serif); font-size: 2rem; line-height: 1.2; margin-bottom: 12px; }
.biography-profiles p { max-width: none; text-align: left; }
.biography-profiles p.profile-role { color: var(--gold-light); text-align: center; font-size: .8rem; padding-bottom: 22px; margin-bottom: 22px; border-bottom: 1px solid var(--border-light); }
.biography-values { background: #090a0d; }
.biography-actions { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 18px; margin-top: 32px; }
.biography-actions .gold-button, .biography-actions .social-btn { font-size: .8rem; }
@media(max-width:720px) {
  .review-slide { padding: 28px; }
  .review-slide blockquote { font-size: 1.3rem; }
  .studio-details-grid { grid-template-columns: 1fr; }
  .studio-theme-grid { grid-template-columns: 1fr; }
  .biography-intro { padding-top: 48px; }
}
@media(max-width:380px) { .review-controls { gap: 14px; } .review-slide { padding: 24px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } *,*::before,*::after { animation: none !important; transition: none !important; } }
