/* Shared finishing system. Existing identity, photographs and copy are retained. */
:root {
  --color-primary: #e90814;
  --color-secondary: #17181c;
  --color-accent: #087cb5;
  --color-background: #fff;
  --color-surface: #f4f4f3;
  --color-text: #17181c;
  --color-text-muted: #5f646b;
  --font-heading: Manrope, Arial, sans-serif;
  --font-body: Manrope, Arial, sans-serif;
  --container-width: 1280px;
  --section-spacing: clamp(56px, 6vw, 92px);
  --border-radius: 4px;
  --shadow-soft: 0 4px 18px #17181c08;
  --transition-default: 180ms ease;
  --header-height: 80px;
}
html { scroll-padding-top: calc(var(--header-height) + 20px); }
body { font-family: var(--font-body); }
.wrap { width: min(var(--container-width), calc(100% - 80px)); }
.section { padding-block: var(--section-spacing); }
h1,h2,h3 { font-family: var(--font-heading); }
h2 { font-size: clamp(2rem, 1.35rem + 2.1vw, 3.25rem); line-height: 1.14; letter-spacing: -.04em; }
p { text-wrap: pretty; }
.section-heading { gap: clamp(28px, 4vw, 64px); margin-bottom: 36px; }
.section-heading h2 { max-width: 18ch; font-size: clamp(2rem, 1.35rem + 2.1vw, 3.25rem); }
.eyebrow { letter-spacing: .1em; margin-bottom: 18px; }
.header-inner { height: var(--header-height); }
.brand { flex-basis: 240px; }
.brand img { width: 240px; }
.site-header { transition: box-shadow var(--transition-default); }
.site-header.is-scrolled { box-shadow: 0 3px 16px #17181c0b; }
.site-header nav { gap: 24px; }
.site-header nav>a[aria-current]:after { transform: scaleX(1); }
.button { border-radius: var(--border-radius); min-height: 48px; transition: background-color var(--transition-default), border-color var(--transition-default), color var(--transition-default); }
.button.text { min-height: 44px; }
.button:active { filter: brightness(.95); }
.project-grid { gap: 36px 28px; }
.project-photo { border-radius: var(--border-radius); background: #eef0ef; }
.project-caption { min-height: 118px; padding: 18px 0 20px; }
.project-caption h3 { font-size: clamp(1.05rem, .98rem + .2vw, 1.18rem); }
.project-caption h3 button { min-height: 44px; }
.project-caption .small-label { letter-spacing: .075em; margin-bottom: 2px; }
.photo-count { font-size: .75rem; }
.catalog-filters { gap: 8px; }
.catalog-filters button { border: 1px solid transparent; background: #edeeec; border-radius: 3px; }
.catalog-filters button[aria-pressed=true] { background: var(--color-secondary); color: #fff; }
.services-grid { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 24px; grid-auto-rows: auto; }
.service-card { border-radius: var(--border-radius); box-shadow: none; border-color: #daddd9; }
.service-inner { height: 100%; }
.service-copy { padding: 22px; gap: 12px; }
.service-copy h3 { min-height: 0; font-size: 1.1rem; line-height: 1.4; }
.service-copy p { font-size: .9rem; line-height: 1.65; }
.service-actions { margin-top: auto; gap: 12px; flex-wrap: wrap; }
.service-actions a { min-height: 44px; display: inline-flex; align-items: center; font-size: .8rem; }
.service-card:first-child { grid-column: 1 / -1; }
.service-card:first-child .service-inner { display: grid; grid-template-columns: 1.1fr 1fr; }
.service-card:first-child .service-photo { height: auto; aspect-ratio: 16/9; }
.service-card:first-child .service-copy { padding: clamp(24px,3vw,44px); justify-content: center; }
.service-card:first-child h3 { font-size: clamp(1.5rem,2.2vw,2rem); }
.service-card:first-child p { font-size: 1rem; max-width: 44ch; flex: none; margin: 0; }
.service-card:first-child .service-actions { margin-top: 18px; }
.service-card:first-child .service-actions a { font-size: .88rem; }
.service-photo .service-image, .project-photo .portfolio-image { object-fit: contain; object-position: center; filter: none; transform: none; }
.wind-layout { gap: clamp(32px,5vw,80px); }
.wind-visual { border-radius: var(--border-radius); padding: 24px; background: #eef0ed; }
.wind-visual p { font-size: .78rem; line-height: 1.6; }
.wind-copy h2 { max-width: 19ch; }
.production { margin-block: var(--section-spacing); border-radius: var(--border-radius); }
.production-copy { padding: clamp(28px,4vw,52px); }
.production-copy h2 { font-size: clamp(2.1rem,1.5rem + 2vw,3.25rem); }
.production-video>span { backdrop-filter: none; background: #141519e6; }
.process-list { gap: 28px 24px; }
.process-icon { border-radius: 3px; }
.about-section { padding-block: var(--section-spacing); }
.about-inner { gap: clamp(32px,6vw,80px); align-items: start; }
.about-copy p { max-width: 54ch; line-height: 1.8; }
.about-statement h2 { font-size: clamp(2.2rem,1.5rem + 2vw,3.3rem); }
.reviews { gap: 24px; }
.review-card { border-radius: var(--border-radius); box-shadow: none; }
.faq-list summary { min-height: 44px; }
.contact-grid { gap: clamp(32px,5vw,68px); align-items: start; }
.contact-section form { border-radius: var(--border-radius); box-shadow: none; }
.phone-card { border-radius: var(--border-radius); }
.phone-card-actions a { min-height: 48px; }
.privacy-consent { align-items: center; }
input:hover,select:hover,textarea:hover { border-color: #979da5; }
.site-footer { padding-top: 48px; }
.footer-top { display: grid; grid-template-columns: 1.15fr .8fr 1.1fr; align-items: start; gap: 44px; }
.footer-navigation { display: grid; gap: 8px; font-size: .9rem; }
.footer-navigation a { padding-block: 8px; min-height: 44px; }
.site-footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.contact-toggle { border-radius: 6px; box-shadow: var(--shadow-soft); }
#contact-options { border-radius: var(--border-radius); box-shadow: 0 8px 30px #17181c15; }
#inicio .institutional-copy h1,#inicio .institutional-copy h2 { text-wrap: balance; }
#inicio .institutional-copy .button { min-height: 48px; }
#inicio .hero-image-note { font-size: .72rem; color: #d3deed; line-height: 1.5; }
#inicio .hero-dots button { border-bottom: 0; }
#inicio .hero-dots button[aria-pressed=true] { border-color: transparent; }
#inicio .hero-pause { min-height: 44px; }
@media(min-width:1280px) {
  #inicio .institutional-copy { width: 310px; max-width: 310px; }
  #inicio .institutional-copy h1,#inicio .institutional-copy h2 { font-size: clamp(2rem,2.35vw,2.35rem); }
  #inicio .institutional-copy .hero-description { font-size: .9rem; line-height: 1.6; }
  #inicio .institutional-controls { max-width: var(--container-width); }
}
@media(max-width:1100px) {
  .services-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .service-card:first-child .service-inner { grid-template-columns: 1fr 1fr; }
  .wrap { width: calc(100% - 56px); }
}
@media(max-width:1000px) {
  :root { --header-height: 76px; }
  .site-header nav { top: var(--header-height); padding: 16px 28px 24px; }
  .site-header nav.is-open { gap: 0; }
  .menu-toggle { min-height: 48px; }
  .site-header nav>a:not(.button) { min-height: 48px; }
  .brand { flex-basis: 218px; }
  .brand img { width: 218px; }
  .footer-top { gap: 28px; }
}
@media(max-width:700px) {
  :root { --header-height: 72px; }
  .wrap { width: calc(100% - 40px); }
  .section-heading { margin-bottom: 28px; }
  .brand { flex-basis: 195px; }
  .brand img { width: 195px; }
  .header-inner { gap: 12px; }
  .section-heading h2,.contact-grid h2 { font-size: clamp(1.95rem,5.8vw,2.5rem); }
  .about-statement h2 { font-size: clamp(2rem,6vw,2.65rem); }
  .project-caption { min-height: 0; }
  .project-caption h3 button { min-height: 44px; }
  .services-grid { gap: 20px; }
  .service-card:first-child .service-inner { display: flex; }
  .service-card:first-child .service-photo { aspect-ratio: 4/3; }
  .service-copy { padding: 20px; }
  .service-card:first-child .service-copy { padding: 22px; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-top>div:first-child { grid-column: 1/-1; }
  .footer-navigation { gap: 2px; }
  .footer-top>div:last-child { gap: 16px; line-height: 1.65; }
  .wind-visual { padding: 20px; }
  .production-video { height: 480px; }
  .contact-section form { padding: 24px 20px; }
  .contact-widget { right: 12px; bottom: max(12px,env(safe-area-inset-bottom)); }
  .contact-toggle { border-radius: 6px; }
}
@media(max-width:600px) {
  .project-grid,.services-grid { grid-template-columns: 1fr; }
  .service-card .service-inner { display: grid; grid-template-columns: 120px minmax(0,1fr); }
  .service-card .service-photo { height: 100%; min-height: 0; aspect-ratio: auto; }
  .service-card .service-copy { padding: 18px; }
  .service-card .service-copy h3 { font-size: 1.05rem; }
  .service-card .service-copy p { font-size: .875rem; }
  .service-card:first-child .service-inner { display: flex; flex-direction: column; }
  .service-card:first-child .service-photo { height: auto; aspect-ratio: 4/3; }
  #inicio .institutional-copy { min-height: var(--hero-copy-height,400px); }
  #inicio .institutional-copy h1,#inicio .institutional-copy h2 { min-height: 2.24em; }
  #inicio .institutional-controls { display: grid; grid-template-columns: 44px minmax(0,1fr) 44px; grid-template-rows: 48px 44px; padding: 0 12px 8px; gap: 0 2px; }
  #inicio .hero-prev,#inicio .hero-next { display: inline-grid; width: 44px; min-width: 44px; height: 44px; }
  #inicio .hero-prev { grid-column: 1; grid-row: 1; }
  #inicio .hero-next { grid-column: 3; grid-row: 1; }
  #inicio .hero-dots { grid-column: 2; grid-row: 1; width: 100%; }
  #inicio .hero-dots button { min-width: 0; width: 20%; min-height: 48px; }
  #inicio .hero-pause { grid-column: 2; grid-row: 2; }
}
@media(max-width:360px) {
  .wrap { width: calc(100% - 32px); }
  .brand { flex-basis: 180px; }
  .brand img { width: 180px; }
  .menu-toggle { gap: 6px; font-size: .75rem; }
  .service-card .service-inner { grid-template-columns: 100px minmax(0,1fr); }
  .service-card .service-copy { padding: 16px; }
  .service-actions { gap: 6px; }
  .service-actions a { font-size: .78rem; }
  .footer-top { grid-template-columns: 1fr; }
  .footer-top>div:first-child { grid-column: auto; }
  .footer-bottom>div { flex-wrap: wrap; }
  .production-video { height: 400px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { animation: none!important; transition: none!important; }
}

.privacy-draft-notice{padding:20px 24px;border-left:3px solid var(--red);background:#f6f6f7;margin:24px 0;line-height:1.7;overflow-wrap:anywhere}

/* Full-width production background, aligned content. */
.production-band{width:100%;background:#191b20;margin-block:var(--section-spacing)}
.production-band>.production{margin-block:0;border-radius:0;box-shadow:none}

/* Continuous service list; duplicated group is hidden from assistive technology. */
.services-marquee{overflow:hidden;width:100%;border-block:1px solid #ffffff0a}
.services-marquee-track{display:flex;width:max-content;animation:services-scroll 65s linear infinite}
.services-marquee-group{display:flex;align-items:center;flex-shrink:0;gap:48px;list-style:none;margin:0;padding:25px 48px 25px 0}
.services-marquee-group li{white-space:nowrap;font-size:.82rem;letter-spacing:.025em;line-height:1.6;border-left:2px solid var(--red);padding-left:16px}
.services-marquee-group li:nth-child(4n+2){border-color:#00b8f8}
.services-marquee-group li:nth-child(4n+3){border-color:#ffc400}
.services-marquee-group li:nth-child(4n){border-color:#78c52a}
.services-marquee:hover .services-marquee-track,.services-marquee:focus-within .services-marquee-track{animation-play-state:paused}
@keyframes services-scroll{to{transform:translateX(-50%)}}
@media(max-width:600px){.services-marquee-group{gap:32px;padding:20px 32px 20px 0}.services-marquee-group li{font-size:.76rem}}
@media(prefers-reduced-motion:reduce){.services-marquee{overflow-x:auto}.services-marquee-track{animation:none}.services-marquee-group[aria-hidden]{display:none}}
