.page-intro { padding-block: clamp(2rem, 5vw, 4rem) var(--section-space); border-block-end: var(--border-strong); }
.page-intro__grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: var(--space-4); align-items: end; }
.page-intro__title { max-width: 16ch; margin-block-start: var(--space-3); }
.page-intro__description { max-width: 48ch; padding-block-start: var(--space-4); }
.page-intro__description > * + * { margin-block-start: var(--space-2); }
.page-intro__meta { display: flex; flex-wrap: wrap; gap: .75rem 2rem; padding-block-start: var(--space-4); font: var(--text-xs)/1.6 var(--lega-d8e); color: var(--gris-600); }
.section-heading { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: var(--space-4); align-items: end; margin-block-end: var(--space-6); }
.section-heading__title { max-width: 19ch; }
.section-heading__description { max-width: 45ch; }
.section-heading .eyebrow { margin-block-end: var(--space-3); }
.section-heading__index { font-family: var(--lega-d8e); font-size: var(--text-xs); color: var(--rojo); display: block; margin-block-end: var(--space-2); }
.section-end { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: start; gap: var(--space-3); border-block-start: var(--border); padding-block-start: var(--space-3); margin-block-start: var(--space-6); }
.section-end p { max-width: 48ch; font-size: var(--text-sm); }
.editorial-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-4); }
.editorial-grid__label { grid-column: 1 / 4; }
.editorial-grid__body { grid-column: 5 / -1; }
.editorial-grid__body > * + * { margin-block-start: var(--space-3); }
.asymmetric-lockup { position: relative; display: grid; gap: .17em; font-family: var(--lega-320); font-size: clamp(2.6rem, 7vw, 7.6rem); font-weight: 900; line-height: .98; letter-spacing: -.055em; text-transform: uppercase; overflow-wrap: anywhere; }
.asymmetric-lockup__line { display: block; min-width: 0; }
.asymmetric-lockup__line--offset { margin-inline-start: 18%; padding-block-start: .12em; border-block-start: var(--rule-width) solid var(--rojo); }
.asymmetric-lockup__rule { display: block; width: 100%; height: var(--rule-width); background: var(--rojo); margin-block: .025em; transform-origin: left center; }
.asymmetric-lockup--small { font-size: clamp(2.25rem, 4.5vw, 5rem); max-width: 15ch; }
.home-panel { min-height: 100vh; min-height: 100svh; display: grid; align-content: center; padding-block: var(--section-space); border-block-end: var(--border); }
.home-panel__inner { width: 100%; max-width: var(--content-max); margin-inline: auto; padding-inline: var(--gutter); }
.home-hero { position: relative; min-height: 100vh; min-height: 100svh; padding-block: var(--space-4) var(--space-6); border-block-end: var(--border-strong); }
.home-hero__inner { width: 100%; max-width: var(--content-max); margin-inline: auto; padding-inline: var(--gutter); }
.home-hero__topline { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 2rem; padding-block-end: var(--space-3); margin-block-end: var(--space-4); border-block-end: var(--border-strong); font: var(--text-xs)/1.6 var(--lega-d8e); }
.home-hero__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: var(--space-4); align-items: start; }
.home-hero__copy { position: relative; z-index: var(--z-content); padding-block-start: var(--space-2); }
.home-hero__copy .eyebrow { margin-block-end: var(--space-3); }
.home-hero__title { font-size: clamp(3rem, 7.7vw, 8rem); }
.home-hero__lead { max-width: 33ch; margin-block-start: var(--space-4); font-size: var(--text-lg); line-height: 1.5; }
.home-hero__media { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--space-2); padding-block-start: var(--space-6); }
.home-hero__background { grid-column: 1 / 6; }
.home-hero__foreground { grid-column: 2 / -1; }
.home-hero__background .depth-frame { aspect-ratio: 2 / 1; }
.home-hero__foreground .depth-frame { aspect-ratio: 4 / 3; }
.home-hero__media figcaption { font-size: .6875rem; padding-block-start: .5rem; }
.home-hero__bottom { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-4); border-block-start: var(--border-strong); margin-block-start: var(--space-4); padding-block-start: var(--space-3); align-items: end; }
.home-hero__scope { font-family: var(--lega-d8e); font-size: var(--text-sm); max-width: 35ch; }
.home-hero__remate { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: baseline; }
.home-hero__remate strong { font-family: var(--lega-320); font-size: clamp(2.25rem, 4vw, 4rem); line-height: 1; font-weight: 900; letter-spacing: -.05em; color: var(--rojo); }
.home-hero__remate span { max-width: 25ch; font: var(--text-xs)/1.5 var(--lega-d8e); }
.depth-frame { position: relative; overflow: hidden; isolation: isolate; }
.depth-frame > picture { display: block; width: 100%; height: 100%; }
.depth-frame img { width: 100%; height: 100%; object-fit: cover; }
.depth-frame [data-depth] { transform-origin: center; }
.section-image { margin-block: var(--space-6); }
.section-image .depth-frame { aspect-ratio: 16 / 9; }
.section-image__caption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 2rem; border-block-end: var(--border); padding-block: var(--space-2); }
.facts-panel__heading { max-width: 16ch; }
.facts-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-block: 1px solid currentColor; margin-block-start: var(--space-6); }
.fact { padding: var(--space-4) var(--space-3); border-inline-end: var(--border); }
.fact:first-child { padding-inline-start: 0; }
.fact:last-child { border-inline-end: 0; }
.fact__value { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem; font: 900 clamp(2.75rem, 5vw, 5rem)/1 var(--lega-320); letter-spacing: -.05em; color: var(--rojo); }
.fact__value small { font: var(--text-sm)/1.5 var(--lega-d8e); color: inherit; letter-spacing: 0; }
.fact__label { margin-block-start: var(--space-3); font-size: var(--text-sm); max-width: 24ch; }
.fact__qualification { margin-block-start: var(--space-2); font: var(--text-xs)/1.6 var(--lega-d8e); }
.facts-diagram { margin-block-start: var(--space-6); padding-block: var(--space-4); border-block: var(--border); }
.facts-diagram svg { width: 100%; height: auto; display: block; overflow: visible; }
.facts-diagram figcaption { max-width: 70ch; }
.section--ink .facts-diagram figcaption { color: var(--gris-100); }
.process-layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.4fr); gap: var(--space-6); }
.process-layout__intro { align-self: start; }
.process-layout__intro p { margin-block-start: var(--space-3); max-width: 34ch; }
.process-list { list-style: none; padding: 0; border-block-start: var(--border-strong); counter-reset: paso; }
.process-step { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: var(--space-3); padding-block: var(--space-4); border-block-end: var(--border); margin: 0; counter-increment: paso; }
.process-step::before { content: counter(paso, decimal-leading-zero); font: 500 var(--text-lg)/1.3 var(--lega-d8e); color: var(--rojo); }
.process-step h3 { font-size: var(--text-xl); }
.process-step p { margin-block-start: var(--space-2); max-width: 52ch; font-size: var(--text-sm); }
.process-step__detail { display: block; margin-block-start: var(--space-2); font-family: var(--lega-d8e); font-size: var(--text-xs); color: var(--gris-600); }
.process-photo { margin-block-start: var(--space-6); }
.catalogue-panel__intro { max-width: 54ch; }
.catalogue-panel__services { margin-block-start: var(--space-4); border-block-end: var(--border); }
.catalogue-panel__footnote { margin-block-start: var(--space-3); max-width: 65ch; font-family: var(--lega-d8e); font-size: var(--text-xs); color: var(--gris-600); }
.project-preview { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: var(--space-4); align-items: start; }
.project-preview > :nth-child(2) { margin-block-start: var(--space-12); }
.project-preview__image { aspect-ratio: 3 / 2; overflow: hidden; }
.project-preview__image img { width: 100%; height: 100%; object-fit: cover; }
.project-preview__caption { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; padding-block: var(--space-2); border-block-end: var(--border); }
.project-preview__caption h3 { font-size: var(--text-lg); }
.project-preview__caption p { font-family: var(--lega-d8e); font-size: var(--text-xs); }
.configurator-teaser { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); border-block: var(--border-strong); }
.configurator-teaser__copy { padding: var(--space-6) var(--space-4) var(--space-6) 0; }
.configurator-teaser__copy h2 { max-width: 12ch; }
.configurator-teaser__copy p { max-width: 37ch; margin-block-start: var(--space-3); }
.configurator-teaser__media { border-inline-start: var(--border); padding: var(--space-4) 0 var(--space-4) var(--space-4); align-self: stretch; }
.configurator-teaser__media .depth-frame { aspect-ratio: 4 / 5; }
.configurator-teaser__formula { margin-block-start: var(--space-4); padding-block-start: var(--space-2); border-block-start: var(--border); font: var(--text-xs)/1.7 var(--lega-d8e); }
.positioning-panel__statement { max-width: 19ch; font: 800 clamp(2rem, 4.5vw, 5rem)/1.08 var(--lega-320); letter-spacing: -.04em; }
.positioning-panel__body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-6); margin-block-start: var(--space-6); padding-block-start: var(--space-4); border-block-start: var(--border); }
.positioning-panel__body p { max-width: 43ch; }
.positioning-panel__limit { padding-inline-start: var(--space-3); border-inline-start: 4px solid var(--rojo); }
.home-contact__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: var(--space-6); }
.home-contact__details { border-block-start: var(--border-strong); padding-block-start: var(--space-3); }
.home-contact__details > * + * { margin-block-start: var(--space-3); }
.home-contact__details address { max-width: 38ch; }

.catalogue-intro { padding-block-end: var(--space-6); }
.catalogue-comparison { padding-block: var(--space-6); }
.catalogue-comparison__heading { max-width: 19ch; margin-block-end: var(--space-4); }
.catalogue-comparison__notes { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-4); margin-block-start: var(--space-3); font-size: var(--text-sm); }
.catalogue-support { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-block: var(--border-strong); }
.catalogue-support__item { padding: var(--space-4) var(--space-3); border-inline-end: var(--border); display: flex; flex-direction: column; align-items: start; gap: var(--space-2); }
.catalogue-support__item:last-child { border-inline-end: 0; }
.catalogue-support__item h3 { font-size: var(--text-xl); }
.catalogue-support__item p { font-size: var(--text-sm); }
.catalogue-support__item .text-link { margin-block-start: auto; }
.product-hero { padding-block: var(--space-4) var(--section-space); }
.product-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: var(--space-4); margin-block-start: var(--space-3); align-items: start; }
.product-hero__title { font-size: clamp(2.4rem, 4.7vw, 5.5rem); max-width: 13ch; }
.product-hero__copy .eyebrow { margin-block-end: var(--space-3); }
.product-hero__copy .lead { margin-block-start: var(--space-3); }
.product-hero__media { padding-block-start: var(--space-4); }
.product-hero__media .depth-frame { aspect-ratio: 4 / 5; }
.product-hero__power { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1rem; margin-block-start: var(--space-4); padding-block: var(--space-3); border-block: var(--border); }
.product-hero__power strong { font: 900 clamp(3rem, 7vw, 7rem)/1 var(--lega-320); letter-spacing: -.05em; color: var(--rojo); }
.product-hero__power span { font: var(--text-lg)/1.4 var(--lega-d8e); }
.product-price { margin-block-start: var(--space-3); font-family: var(--lega-d8e); font-size: var(--text-lg); }
.product-price__note { margin-block-start: var(--space-1); font-size: var(--text-xs); max-width: 42ch; color: var(--gris-600); }
.product-overview { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-block: var(--border-strong); }
.product-overview__item { padding: var(--space-3); border-inline-end: var(--border); }
.product-overview__item:last-child { border-inline-end: 0; }
.product-overview dt { font: var(--text-xs)/1.6 var(--lega-d8e); color: var(--gris-600); }
.product-overview dd { font: 700 var(--text-xl)/1.3 var(--lega-320); margin-block-start: var(--space-2); overflow-wrap: anywhere; }
.product-technical { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.5fr); gap: var(--space-6); }
.product-technical__intro p { margin-block-start: var(--space-3); }
.product-technical__table { min-width: 0; }
.product-technical__table .table-note { max-width: 64ch; }
.suitability { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-block: var(--border-strong); }
.suitability__column { padding: var(--space-4); }
.suitability__column:first-child { padding-inline-start: 0; border-inline-end: var(--border); }
.suitability__column h3 { max-width: 19ch; margin-block-end: var(--space-3); }
.suitability__column ul { padding-inline-start: 1.2em; }
.suitability__column li + li { margin-block-start: var(--space-2); }
.suitability__column li::marker { color: var(--rojo); }
.technical-story { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: var(--space-6); align-items: center; }
.technical-story__copy > * + * { margin-block-start: var(--space-3); }
.technical-story--reverse .technical-story__media { order: 2; }
.technical-story__media .depth-frame { aspect-ratio: 3 / 2; }
.technical-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); margin-block-start: var(--space-6); }
.technical-details__item { padding-block: var(--space-3); border-block-start: var(--border-strong); }
.technical-details__item h3 { font-size: var(--text-xl); margin-block-end: var(--space-2); }
.product-inquiry { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-6); align-items: start; }
.product-inquiry__copy p { margin-block-start: var(--space-3); max-width: 40ch; }
.service-inclusions { list-style: none; padding: 0; border-block-start: var(--border-strong); }
.service-inclusions li { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr); gap: var(--space-2); padding-block: var(--space-3); border-block-end: var(--border); margin: 0; }
.service-inclusions .icon { color: var(--rojo); margin-block-start: .25rem; }
.service-schedule { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-4); padding-block: var(--space-4); border-block: var(--border); }
.service-schedule dt { font-family: var(--lega-d8e); font-size: var(--text-xs); }
.service-schedule dd { margin-block-start: var(--space-2); max-width: 42ch; }

.configurator-layout { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: var(--space-4); align-items: start; }
.configurator-form { min-width: 0; }
.configurator-step { padding-block: var(--space-4); border-block-start: var(--border-strong); }
.configurator-step legend { float: left; width: 100%; font-family: var(--lega-320); font-size: var(--text-xl); font-weight: 700; letter-spacing: -.025em; line-height: 1.3; margin-block-end: var(--space-3); }
.configurator-step legend + * { clear: both; }
.configurator-step__number { display: inline-block; color: var(--rojo); font: 500 var(--text-sm)/1.5 var(--lega-d8e); margin-inline-end: .75rem; }
.configurator-step .form-hint { margin-block-start: var(--space-2); }
.configurator-consumption { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .7fr); gap: var(--space-2); }
.configurator-result { position: sticky; top: var(--space-3); padding: clamp(1.25rem, 2.5vw, 2rem); background: var(--ink); color: var(--paper); border-block-start: 4px solid var(--rojo); --linea: #5B564C; }
.configurator-result__heading { font-size: var(--text-xl); max-width: 20ch; margin-block: var(--space-2) var(--space-4); }
.configurator-result__power { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1rem; margin-block-end: var(--space-3); }
.configurator-result__power output { font: 900 clamp(3rem, 6vw, 6rem)/1 var(--lega-320); letter-spacing: -.05em; color: var(--rojo); overflow-wrap: anywhere; }
.configurator-result__power span { font: var(--text-lg)/1.4 var(--lega-d8e); }
.configurator-result__metrics { border-block-start: var(--border); }
.configurator-result__metrics > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-2); padding-block: var(--space-2); border-block-end: var(--border); }
.configurator-result__metrics dt { font-size: var(--text-xs); font-weight: 400; color: var(--gris-100); }
.configurator-result__metrics dd { font: 500 var(--text-sm)/1.5 var(--lega-d8e); overflow-wrap: anywhere; }
.configurator-result__implications { margin-block: var(--space-3); font-size: var(--text-sm); }
.configurator-result__implications > * + * { margin-block-start: var(--space-2); }
.configurator-result__disclaimer { margin-block: var(--space-3); padding-block: var(--space-2); border-block: 1px solid var(--paper); font: var(--text-xs)/1.7 var(--lega-d8e); }
.configurator-result__status { font-size: var(--text-sm); margin-block: var(--space-2); }
.configurator-result__status:empty { display: none; }
.configurator-assumptions { margin-block-start: var(--space-6); }
.configurator-assumptions__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-4); margin-block-start: var(--space-4); }
.configurator-assumptions__grid > div { border-block-start: var(--border); padding-block-start: var(--space-3); }
.configurator-assumptions h3 { font-size: var(--text-xl); margin-block-end: var(--space-2); }
.configurator-fallback { padding: var(--space-4); background: var(--gris-100); border-inline-start: 4px solid var(--rojo); }

.project-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-6) var(--space-4); margin-block-start: var(--space-4); align-items: start; }
.project-item { grid-column: span 6; }
.project-item:nth-child(4n + 1) { grid-column: span 7; }
.project-item:nth-child(4n + 2) { grid-column: span 5; margin-block-start: var(--space-12); }
.project-item__image { aspect-ratio: 3 / 2; overflow: hidden; }
.project-item__image img { width: 100%; height: 100%; object-fit: cover; }
.project-item__caption { padding-block: var(--space-3); border-block-end: var(--border-strong); }
.project-item__title { font-size: var(--heading-sm); margin-block-end: var(--space-2); }
.project-item__meta { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; font: var(--text-xs)/1.6 var(--lega-d8e); color: var(--gris-600); }
.project-item__description { margin-block-start: var(--space-2); max-width: 50ch; font-size: var(--text-sm); }
.project-empty { padding-block: var(--space-6); border-block-end: var(--border); font-size: var(--text-lg); }
.project-detail { display: grid; grid-template-columns: minmax(0, .65fr) minmax(0, 1fr); gap: var(--space-4); margin-block-start: var(--space-4); }
.project-detail dl > div { padding-block: var(--space-2); border-block-end: var(--border); }
.project-detail dt { font: var(--text-xs)/1.5 var(--lega-d8e); color: var(--gris-600); }
.project-detail dd { margin-block-start: .5rem; }
.about-opening { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: var(--space-6); align-items: start; }
.about-opening__text > * + * { margin-block-start: var(--space-3); }
.about-opening__image { margin-block-start: var(--space-6); }
.about-opening__image .depth-frame { aspect-ratio: 4 / 5; }
.about-team { margin-block-start: var(--space-6); }
.about-team__portraits { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-6); align-items: start; }
.about-team__portraits > :nth-child(2) { margin-block-start: var(--space-12); }
.about-team__portraits img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.about-team__caption { padding-block: var(--space-3); border-block-end: var(--border); }
.about-team__caption h3 { font-size: var(--text-xl); }
.about-team__caption p { margin-block-start: .5rem; font-size: var(--text-sm); }
.about-statement { padding-block: var(--space-6); border-block: var(--border-strong); }
.about-statement blockquote { max-width: 23ch; font: 800 clamp(1.75rem, 3.6vw, 3.5rem)/1.2 var(--lega-320); letter-spacing: -.035em; }
.about-statement cite { display: block; margin-block-start: var(--space-3); font: var(--text-xs)/1.6 var(--lega-d8e); }
.about-principles { margin: 0; padding: 0; list-style: none; }
.about-principles li { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1fr); gap: var(--space-4); border-block-start: var(--border); padding-block: var(--space-4); margin: 0; }
.about-principles h3 { font-size: var(--heading-sm); max-width: 18ch; }
.workshop-story { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: var(--space-4); align-items: end; }
.workshop-story__copy > * + * { margin-block-start: var(--space-3); }

.contact-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .85fr); gap: var(--space-6); align-items: start; }
.contact-layout__aside { border-block-start: var(--border-strong); padding-block-start: var(--space-4); }
.contact-layout__aside > * + * { margin-block-start: var(--space-4); }
.contact-details { display: grid; gap: var(--space-3); }
.contact-details > div { padding-block-end: var(--space-3); border-block-end: var(--border); }
.contact-details dt { font: var(--text-xs)/1.5 var(--lega-d8e); color: var(--gris-600); }
.contact-details dd { margin-block-start: var(--space-2); overflow-wrap: anywhere; }
.contact-details__phone { font-size: var(--text-xl); font-family: var(--lega-d8e); }
.contact-form-intro { max-width: 55ch; margin-block-end: var(--space-4); }
.contact-form-intro h2 { font-size: var(--heading-md); margin-block-end: var(--space-2); }
.contact-photo { margin-block-start: var(--space-6); }
.contact-photo .depth-frame { aspect-ratio: 16 / 9; }
.service-area { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.3fr); gap: var(--space-4); align-items: start; }
.service-area__copy > * + * { margin-block-start: var(--space-3); }
.service-area__description { padding: var(--space-4); border: var(--border-strong); border-block-start: 4px solid var(--rojo); }
.service-area__description .eyebrow { margin-block-end: var(--space-2); }
.service-area__description address { font-size: var(--text-lg); }
.service-area__description p { margin-block-start: var(--space-3); }
.service-area__map { min-width: 0; border: var(--border); }
.service-area__map iframe { display: block; width: 100%; aspect-ratio: 4 / 3; min-height: 260px; }
.contact-preparation { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-4); border-block-start: var(--border-strong); padding-block-start: var(--space-4); }
.contact-preparation h2 { font-size: var(--heading-md); max-width: 16ch; }
.faq-section__grid { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: var(--space-6); align-items: start; }
.faq-section__intro h2 { max-width: 13ch; }
.faq-section__intro p { margin-block-start: var(--space-3); max-width: 33ch; }
.faq-section__list { min-width: 0; }
.faq-answer ul { padding-inline-start: 1.25em; }
.faq-answer li::marker { color: var(--rojo); }

.legal-intro { padding-block: var(--space-4) var(--space-6); border-block-end: var(--border-strong); }
.legal-intro h1 { max-width: 17ch; margin-block: var(--space-3) var(--space-4); }
.legal-intro .lead { max-width: 58ch; }
.legal-meta { display: flex; flex-wrap: wrap; gap: .75rem 2rem; margin-block-start: var(--space-4); font: var(--text-xs)/1.7 var(--lega-d8e); color: var(--gris-600); }
.legal-identity { padding: var(--space-3); border-inline-start: 4px solid var(--rojo); background: var(--gris-100); margin-block: var(--space-4); }
.legal-identity dl { display: grid; gap: var(--space-2); }
.legal-identity dt { font: 500 var(--text-xs)/1.6 var(--lega-d8e); }
.legal-identity dd { font-size: var(--text-sm); overflow-wrap: anywhere; }
.legal-table { width: 100%; table-layout: fixed; font-size: var(--text-sm); line-height: 1.6; }
.legal-table caption { padding-block: var(--space-3); font: 500 var(--text-xs)/1.6 var(--lega-d8e); }
.legal-table th, .legal-table td { text-align: start; vertical-align: top; padding: var(--space-2); border-block-end: var(--border); overflow-wrap: anywhere; }
.legal-table thead { background: var(--ink); color: var(--paper); }
.legal-table thead th { font: 500 var(--text-xs)/1.6 var(--lega-d8e); }
.legal-table tbody th { font-weight: 600; }
.legal-table tbody tr:nth-child(even) { background: var(--gris-100); }
.legal-bases-table { min-width: 560px; }
.cookie-table { min-width: 620px; }
.cookie-table code { font-size: .8125rem; }
.legal-table-note { max-width: 70ch; margin-block-start: var(--space-2); font-size: var(--text-xs); color: var(--gris-600); }
.legal-cross-reference { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); padding-block: var(--space-3); margin-block-start: var(--space-4); border-block: var(--border); }
.privacy-tools { display: flex; flex-wrap: wrap; gap: var(--space-2); padding-block: var(--space-3); border-block-end: var(--border); margin-block-end: var(--space-4); }
.privacy-disclosures { width: 100%; border-block-start: 4px solid var(--rojo); }
.privacy-disclosures .accordion-item > summary { padding: var(--space-3) var(--space-2); font-size: clamp(1.125rem, 1.65vw, 1.65rem); line-height: 1.45; align-items: start; }
.privacy-disclosures .accordion-item > summary span { min-width: 0; }
.privacy-disclosures .accordion-item[open] { border-block-end: 1px solid var(--ink); }
.privacy-disclosures .accordion-body { max-width: none; padding: var(--space-2) var(--space-2) var(--space-6); }
.privacy-disclosures .accordion-body > p, .privacy-disclosures .accordion-body > ul, .privacy-disclosures .accordion-body > ol { max-width: 70ch; }
.privacy-disclosures .accordion-body > h2 { font-size: var(--heading-sm); max-width: 30ch; margin-block-start: var(--space-4); }
.privacy-disclosures .accordion-body > h3 { font-size: var(--text-xl); margin-block-start: var(--space-3); }
.privacy-disclosures .accordion-body .mesaba7 { margin-block: var(--space-4); }
.privacy-disclosures .accordion-item:target { border-inline-start: 4px solid var(--rojo); }
.privacy-contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-4); padding-block: var(--space-4); }
.privacy-contact__copy > * + * { margin-block-start: var(--space-2); }
.cookies-reading { padding-block: var(--space-4) var(--section-space); }
.cookies-reading__row { display: grid; grid-template-columns: minmax(0, 2.5fr) minmax(0, 1fr); gap: clamp(1.5rem, 3vw, 3rem); padding-block: var(--space-4); border-block-end: var(--border); align-items: start; }
.cookies-reading__text { min-width: 0; max-width: 68ch; }
.cookies-reading__text h2 { font-size: var(--heading-md); max-width: 22ch; margin-block-end: var(--space-3); }
.cookies-reading__text h3 { font-size: var(--text-xl); margin-block: var(--space-3) 0; }
.cookies-reading__text > * + * { margin-block-start: var(--space-3); }
.cookies-reading__note { min-width: 0; padding-inline-start: var(--space-3); padding-block-start: .25rem; border-inline-start: 3px solid var(--rojo); font-size: var(--text-xs); line-height: 1.8; }
.cookies-reading__note .eyebrow { display: block; color: var(--rojo); margin-block-end: var(--space-2); letter-spacing: .04em; }
.cookies-reading__note > * + * { margin-block-start: var(--space-2); }
.cookies-reading__note code { font-size: 1em; }
.cookies-reading__row--table { grid-template-columns: minmax(0, 1fr); }
.cookies-reading__row--table .cookies-reading__note { max-width: 68ch; }
.consent-signals { margin-block: var(--space-3); border-block-start: var(--border-strong); }
.consent-signals > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-2); padding-block: var(--space-2); border-block-end: var(--border); }
.consent-signals dt { font: 500 var(--text-xs)/1.7 var(--lega-d8e); overflow-wrap: anywhere; }
.consent-signals dd { font-size: var(--text-sm); }
.cookie-choice-status { padding: var(--space-3); border: var(--border-strong); margin-block: var(--space-3); font-family: var(--lega-d8e); font-size: var(--text-sm); }
.terms-questions { padding-block: var(--space-3) var(--section-space); }
.terms-question { padding-block: var(--space-6); border-block-end: var(--border); }
.terms-question h2 { max-width: 23ch; font-size: clamp(1.75rem, 3.6vw, 3.5rem); line-height: 1.12; letter-spacing: -.04em; margin-block-end: var(--space-4); }
.terms-question__answer { max-width: 69ch; }
.terms-question__answer > * + * { margin-block-start: var(--space-3); }
.terms-question__answer h3 { font-size: var(--text-xl); margin-block-start: var(--space-4); }
.terms-question__answer li + li { margin-block-start: .75rem; }
.terms-question__answer li::marker { color: var(--rojo); }
.terms-question__answer address { padding-inline-start: var(--space-3); border-inline-start: 4px solid var(--rojo); }
.terms-question__answer .mesaba7 { max-width: 100%; }
.terms-question__qualification { font-family: var(--lega-d8e); font-size: var(--text-xs); color: var(--gris-600); border-block-start: var(--border); padding-block-start: var(--space-2); }
.legal-photo { padding-block: var(--space-4) var(--space-6); max-width: 960px; }
.legal-photo .depth-frame { aspect-ratio: 2 / 1; }
.accessibility-questions .terms-question__answer { max-width: 67ch; }
.accessibility-methods { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-3); margin-block: var(--space-3); }
.accessibility-methods > div { border-block-start: var(--border-strong); padding-block-start: var(--space-2); }
.accessibility-methods h3 { font-size: var(--text-lg); }
.accessibility-methods p { margin-block-start: var(--space-2); font-size: var(--text-sm); }
.data-request-disclosures .data-request-form { margin-block-start: var(--space-4); max-width: 760px; }
.data-request-disclosures .form-grid { margin-block-start: var(--space-3); }
.data-request-disclosures .notice { margin-block: var(--space-3); max-width: 70ch; }
.warranty-questions .terms-question__answer { max-width: 70ch; }
.warranty-photo { max-width: 960px; margin-block: var(--space-4); }
.warranty-photo .depth-frame { aspect-ratio: 3 / 2; }

.error-page { min-height: 90svh; display: grid; align-content: center; padding-block: var(--section-space); }
.error-page__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: var(--space-6); align-items: end; }
.error-page__code { display: block; font: 900 clamp(5.5rem, 15vw, 14rem)/.95 var(--lega-320); letter-spacing: -.075em; color: var(--rojo); padding-block-end: var(--space-4); border-block-end: 4px solid var(--ink); }
.error-page__title { font-size: clamp(2rem, 4vw, 4rem); max-width: 13ch; margin-block-start: var(--space-4); }
.error-page__copy { max-width: 43ch; }
.error-page__copy > * + * { margin-block-start: var(--space-3); }
.error-page__links { display: grid; gap: var(--space-2); padding-block-start: var(--space-3); border-block-start: var(--border); }
.confirmation-page { min-height: 85svh; display: grid; align-content: center; padding-block: var(--section-space); }
.confirmation-page__heading { max-width: 15ch; }
.confirmation-page__body { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: var(--space-6); border-block-start: 4px solid var(--rojo); margin-block-start: var(--space-6); padding-block-start: var(--space-4); }
.confirmation-page__body p { max-width: 43ch; }
.confirmation-page__next { border-inline-start: var(--border); padding-inline-start: var(--space-4); }
.confirmation-page__next h2 { font-size: var(--text-xl); margin-block-end: var(--space-2); }
.confirmation-page__reference { font-family: var(--lega-d8e); font-size: var(--text-sm); padding-block: var(--space-3); overflow-wrap: anywhere; }

@media (min-width: 1440px) {
  .home-hero__grid { gap: var(--space-6); }
  .home-hero__media { padding-block-start: var(--space-3); }
  .home-hero__background { grid-column: 1 / 5; }
  .home-hero__foreground { grid-column: 2 / -1; }
  .product-hero__grid { gap: var(--space-6); }
  .product-hero__media { padding-block-start: 0; }
  .privacy-disclosures .accordion-body { padding-inline-start: var(--space-4); }
}
@media (min-width: 1920px) {
  .home-hero { display: grid; align-content: center; }
  .home-hero__title { font-size: 8rem; }
  .home-panel { padding-block: var(--space-12); }
  .project-grid { gap: var(--space-8) var(--space-6); }
}
@media (min-width: 1024px) and (max-width: 1199px) {
  .home-hero__title { font-size: clamp(3rem, 6.4vw, 4.75rem); }
  .home-hero__grid { gap: var(--space-3); }
  .home-hero__media { padding-block-start: var(--space-12); }
  .home-hero__foreground { grid-column: 1 / -1; }
  .home-hero__copy .button-row { flex-direction: column; align-items: start; }
  .page-intro__grid { grid-template-columns: minmax(0, 1fr); }
  .page-intro__description { max-width: 65ch; padding-block-start: 0; }
  .process-layout, .product-technical, .faq-section__grid { gap: var(--space-4); }
  .contact-layout, .product-inquiry { grid-template-columns: minmax(0, 1fr); }
  .contact-layout__aside { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-4); }
  .contact-layout__aside > * + * { margin-block-start: 0; }
  .configurator-layout { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: var(--space-3); }
  .configurator-step .option-grid { grid-template-columns: minmax(0, 1fr); }
  .configurator-consumption { grid-template-columns: minmax(0, 1fr); }
  .product-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-overview__item:nth-child(2n) { border-inline-end: 0; }
  .product-overview__item:nth-child(n + 3) { border-block-start: var(--border); }
  .catalogue-support { grid-template-columns: minmax(0, 1fr); }
  .catalogue-support__item { border-inline-end: 0; border-block-end: var(--border); padding-inline: 0; }
}
@media (max-width: 1023px) {
  .home-hero { min-height: calc(100svh - 5rem); padding-block-start: var(--space-2); }
  .home-panel { min-height: 90svh; }
  .home-hero__title { font-size: clamp(3rem, 9vw, 6rem); }
  .configurator-result { top: 5.5rem; }
  .page-intro, .legal-intro { padding-block-start: var(--space-2); }
  .project-item:nth-child(4n + 2) { margin-block-start: var(--space-6); }
}
@media (max-width: 767px) {
  .page-intro__grid, .section-heading, .home-hero__grid, .process-layout, .project-preview, .home-contact__grid, .product-hero__grid, .product-technical, .product-inquiry, .technical-story, .configurator-layout, .about-opening, .workshop-story, .contact-layout, .service-area, .faq-section__grid, .error-page__grid { grid-template-columns: minmax(0, 1fr); }
  .page-intro__description { padding-block-start: 0; }
  .section-heading { gap: var(--space-3); }
  .section-heading__description { max-width: 58ch; }
  .editorial-grid { grid-template-columns: minmax(0, 1fr); }
  .editorial-grid__label, .editorial-grid__body { grid-column: auto; }
  .home-panel { min-height: auto; }
  .home-hero { min-height: auto; }
  .home-hero__title { font-size: clamp(3rem, 13.5vw, 6rem); max-width: 10ch; }
  .home-hero__lead { max-width: 44ch; }
  .home-hero__media { padding-block-start: var(--space-3); gap: var(--space-3); }
  .home-hero__background { grid-column: 1 / 5; }
  .home-hero__foreground { grid-column: 2 / -1; }
  .home-hero__foreground .depth-frame { aspect-ratio: 3 / 2; }
  .home-hero__bottom { gap: var(--space-3); }
  .facts-grid { grid-template-columns: minmax(0, 1fr); }
  .fact, .fact:first-child { padding: var(--space-3) 0; border-inline-end: 0; border-block-end: var(--border); }
  .fact:last-child { border-block-end: 0; }
  .fact__label { max-width: 45ch; margin-block-start: var(--space-2); }
  .process-step { grid-template-columns: 2.25rem minmax(0, 1fr); gap: var(--space-2); }
  .project-preview > :nth-child(2) { margin-block-start: var(--space-3); }
  .configurator-teaser { grid-template-columns: minmax(0, 1fr); }
  .configurator-teaser__copy { padding: var(--space-4) 0; }
  .configurator-teaser__media { border-inline-start: 0; border-block-start: var(--border); padding: var(--space-3) 0; }
  .configurator-teaser__media .depth-frame { aspect-ratio: 3 / 2; }
  .positioning-panel__body { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
  .catalogue-comparison__notes { grid-template-columns: minmax(0, 1fr); }
  .catalogue-support { grid-template-columns: minmax(0, 1fr); }
  .catalogue-support__item { border-inline-end: 0; border-block-end: var(--border); padding-inline: 0; }
  .product-hero__title { max-width: 17ch; }
  .product-hero__media { padding-block-start: var(--space-2); }
  .product-hero__media .depth-frame { aspect-ratio: 3 / 2; }
  .product-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-overview__item:nth-child(2n) { border-inline-end: 0; }
  .product-overview__item:nth-child(n + 3) { border-block-start: var(--border); }
  .product-overview__item { padding: var(--space-3) var(--space-2); }
  .suitability { grid-template-columns: minmax(0, 1fr); }
  .suitability__column, .suitability__column:first-child { padding: var(--space-4) 0; border-inline-end: 0; }
  .suitability__column + .suitability__column { border-block-start: var(--border); }
  .technical-story--reverse .technical-story__media { order: 0; }
  .technical-details { grid-template-columns: minmax(0, 1fr); }
  .configurator-result { position: static; }
  .configurator-assumptions__grid { grid-template-columns: minmax(0, 1fr); }
  .project-grid { grid-template-columns: minmax(0, 1fr); }
  .project-item, .project-item:nth-child(4n + 1), .project-item:nth-child(4n + 2) { grid-column: auto; margin-block-start: 0; }
  .about-opening__image { margin-block-start: 0; }
  .about-opening__image .depth-frame { aspect-ratio: 3 / 2; }
  .about-team__portraits { gap: var(--space-3); }
  .about-team__portraits > :nth-child(2) { margin-block-start: var(--space-6); }
  .about-principles li { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
  .contact-preparation { grid-template-columns: minmax(0, 1fr); }
  .contact-layout__aside { padding-block-start: var(--space-3); }
  .cookies-reading__row { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
  .cookies-reading__note { padding: var(--space-2) var(--space-3); background: var(--gris-100); max-width: 68ch; }
  .privacy-contact { grid-template-columns: minmax(0, 1fr); }
  .terms-question { padding-block: var(--space-4); }
  .terms-question h2 { max-width: 22ch; }
  .legal-table th, .legal-table td { padding: .875rem .625rem; }
  .error-page { min-height: 75svh; }
  .error-page__grid { gap: var(--space-4); }
  .error-page__code { font-size: clamp(5.5rem, 24vw, 10rem); }
  .confirmation-page__body { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
  .confirmation-page__next { border-inline-start: 0; border-block-start: var(--border); padding-inline-start: 0; padding-block-start: var(--space-3); }
}
@media (max-width: 413px) {
  .home-hero__bottom, .project-detail, .service-schedule, .configurator-consumption, .accessibility-methods { grid-template-columns: minmax(0, 1fr); }
  .home-hero__topline { font-size: .6875rem; }
  .home-hero__media { gap: var(--space-2); }
  .home-hero__background { grid-column: 1 / -1; }
  .home-hero__foreground { grid-column: 1 / -1; margin-inline-start: var(--space-3); }
  .asymmetric-lockup__line--offset { margin-inline-start: 12%; }
  .product-hero__title { font-size: 2.4rem; }
  .product-overview dd { font-size: var(--text-lg); }
  .product-overview dt { font-size: .6875rem; }
  .about-team__portraits { grid-template-columns: minmax(0, 1fr); }
  .about-team__portraits > :nth-child(2) { margin-block-start: var(--space-3); }
  .privacy-tools { align-items: stretch; }
  .privacy-tools .button { width: 100%; }
  .privacy-disclosures .accordion-item > summary { padding-inline: .5rem; gap: .75rem; }
  .privacy-disclosures .accordion-body { padding-inline: .5rem; }
  .consent-signals > div { grid-template-columns: minmax(0, 1fr); gap: .375rem; }
  .legal-identity { padding: var(--space-2); }
  .legal-cross-reference { flex-direction: column; align-items: start; }
  .configurator-result__metrics > div { grid-template-columns: minmax(0, 1fr); gap: .375rem; }
  .project-preview__caption { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
}
@media (max-width: 359px) {
  .home-hero__title { font-size: 2.85rem; }
  .home-hero__foreground { margin-inline-start: var(--space-2); }
  .process-step { grid-template-columns: 1.75rem minmax(0, 1fr); }
  .configurator-result { padding: var(--space-3) var(--space-2); }
  .section-image .depth-frame, .contact-photo .depth-frame { aspect-ratio: 3 / 2; }
  .service-area__description { padding: var(--space-3); }
}
@media (prefers-reduced-motion: reduce) {
  .home-hero__background, .home-hero__foreground, .asymmetric-lockup__line, .asymmetric-lockup__rule { transform: none !important; }
  .configurator-result { position: static; }
}
@media (forced-colors: active) {
  .configurator-result, .legal-identity, .cookies-reading__note { background: Canvas; color: CanvasText; border: 1px solid CanvasText; }
  .configurator-result__metrics dt, .configurator-result__power output { color: CanvasText; }
  .asymmetric-lockup__rule { background: CanvasText; }
  .legal-table thead { background: Canvas; color: CanvasText; }
  .legal-table tbody tr:nth-child(even) { background: Canvas; }
}
@media print {
  .home-panel, .home-hero, .error-page, .confirmation-page { min-height: auto; display: block; padding-block: 1.5rem; }
  .home-hero__grid, .product-hero__grid, .contact-layout, .configurator-layout { display: block; }
  .home-hero__title { font-size: 48pt; }
  .home-hero__media, .configurator-teaser__media { max-width: 60%; }
  .configurator-result { position: static; background: #fff; color: #000; border: 1px solid #000; margin-block: 1.5rem; }
  .configurator-result__metrics dt { color: #333; }
  .privacy-tools, .cookie-choice-status, .service-area__map { display: none; }
  .privacy-disclosures .accordion-item { break-inside: auto; }
  .privacy-disclosures .accordion-item > summary { break-after: avoid; }
  .privacy-disclosures details::details-content { display: block !important; content-visibility: visible !important; }
  .privacy-disclosures details:not([open]) > .accordion-body { display: block !important; }
  .cookies-reading__row { grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); gap: 1.5rem; }
  .cookies-reading__row--table { grid-template-columns: minmax(0, 1fr); }
  .cookies-reading__note { font-size: 9pt; background: none; }
  .terms-question { padding-block: 1.5rem; }
  .terms-question h2 { font-size: 24pt; }
  .legal-table, .cookie-table, .legal-bases-table { min-width: 0; font-size: 9pt; }
  .legal-table thead { background: #fff; color: #000; }
  .legal-table th, .legal-table td { padding: .5rem; }
  .legal-identity { background: none; }
  .project-grid { display: block; }
  .project-item { break-inside: avoid; margin-block: 1.5rem; }
  .project-item:nth-child(4n + 2) { margin-block-start: 1.5rem; }
  .about-team__portraits > :nth-child(2) { margin-block-start: 0; }
  .asymmetric-lockup__line, .asymmetric-lockup__rule { transform: none !important; }
}
