/* Shared editorial scale. One hierarchy across every page of each template. */
:root {
  --text-hero: clamp(2.7rem, 8vw, 8rem);
  --text-h1: clamp(2.4rem, 1.8rem + 3.2vw, 5rem);
  --text-h2: clamp(2rem, 1.45rem + 2vw, 3.5rem);
  --text-h3: clamp(1.35rem, 1.1rem + 1vw, 2rem);
  --text-content-title: clamp(1.75rem, 1.3rem + 1.5vw, 2.9rem);
  --text-card-title: clamp(1.6rem, 1.1rem + 1.7vw, 2.75rem);
  --title-leading: 1.08;
  --title-tracking: -0.025em;
  --space-section: clamp(5rem, 9vw, 9rem);
  --muted-dark: #b3b0a8;
}

/* Theme switching may style the navigation; it must never wash out page text. */
body:not([data-page-type="home"]) main { background: var(--paper); color: var(--ink); }
h1, h2, h3 { font-weight: 500; }
:is(h1, h2, h3, p, dd, address) { overflow-wrap: break-word; }
.split-line-mask { padding-block: 0.14em; margin-block: -0.14em; max-width: 100%; }
.split-word { max-width: 100%; overflow-wrap: anywhere; }

.page-hero { min-height: 0; padding: 0 0 clamp(3.5rem, 7vw, 6.5rem); }
.page-hero__inner { max-width: 96rem; margin-inline: auto; padding: calc(var(--header-h) + clamp(3rem, 6vw, 5rem)) var(--gutter) 0; }
.page-hero__inner h1, .project-page__title h1, .fair-detail-hero h1, .enquiry-intro h1, .not-found h1 {
  font-family: var(--font-display);
  font-size: var(--text-h1);
  font-weight: 500;
  line-height: var(--title-leading);
  letter-spacing: var(--title-tracking);
  text-wrap: balance;
  margin-top: 0;
}
.page-hero__inner h1 { max-width: 22ch; }
.page-hero__inner > p:last-child { max-width: 61ch; line-height: 1.7; margin-top: 1.7rem; font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.25rem); }
.about-intro { display: grid; grid-template-columns: minmax(10rem, 0.32fr) minmax(0, 0.68fr); gap: clamp(2rem, 7vw, 8rem); max-width: 90rem; margin-inline: auto; padding: clamp(3rem, 6vw, 6rem) var(--gutter) clamp(4rem, 8vw, 7.5rem); border-top: 1px solid var(--line); }
.about-intro__label { padding-top: 0.45rem; color: var(--muted); font-family: var(--font-text); font-size: 0.75rem; font-weight: 500; line-height: 1.5; letter-spacing: 0.12em; text-transform: uppercase; }
.about-intro__copy { max-width: 59rem; }
.about-intro__copy p { max-width: 69ch; color: var(--muted); font-size: clamp(1.05rem, 0.98rem + 0.25vw, 1.2rem); line-height: 1.78; }
.about-intro__copy p:first-child { max-width: 55ch; color: var(--ink); font-size: clamp(1.35rem, 1.05rem + 1vw, 2rem); font-weight: 500; line-height: 1.5; letter-spacing: -0.018em; }
.about-intro__copy p + p { margin-top: clamp(1.35rem, 2.5vw, 2rem); }
@media (max-width: 700px) { .about-intro { grid-template-columns: 1fr; gap: 1.5rem; } .about-intro__copy p { font-size: 1.025rem; line-height: 1.72; } .about-intro__copy p:first-child { font-size: 1.35rem; line-height: 1.52; } }
.content-sections { max-width: 90rem; margin-inline: auto; padding-block: clamp(3rem, 6vw, 5rem); }
.content-section { max-width: 100%; grid-template-columns: minmax(2rem, 0.18fr) minmax(0, 1fr); padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.content-section__body { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 1.5rem clamp(2rem, 5vw, 5rem); align-items: start; }
.content-section__body h2 { max-width: 20ch; grid-column: 1; grid-row: 1 / span 3; }
.content-section__body > p, .content-section__body > ul, .content-section__body > .content-section__links, .content-faq { grid-column: 2; margin-top: 0; }
.content-section__body > ul { grid-template-columns: 1fr; }
.content-section__body li:nth-child(even) { padding-left: 0; border-left: 0; }
.content-section__body li { padding-right: 0; }
.content-section__body h2, .service-index__content h2, .project-story h2, .enquiry-contact h2, .enquiry-card h2, .enquiry-locations > h2 {
  font-family: var(--font-display); font-size: var(--text-content-title); font-weight: 500;
  line-height: var(--title-leading); letter-spacing: var(--title-tracking); text-wrap: balance;
}
.section-title, .showcase__head .section-title, .services__head .section-title, .projects__head .section-title,
.project-page__facts h2, .project-gallery__head h2, .project-related h2, .service-hubs h2,
.fair-detail-section__lead h2, .fair-detail-planning h2, .fair-detail-action h2, .cta-band h2,
.calendar-index__intro h2, .calendar-empty h2 {
  font-size: var(--text-h2); font-weight: 500; line-height: var(--title-leading); letter-spacing: var(--title-tracking);
}
.case-card__body h2, .project__title, .fair-list h2 { font-size: var(--text-card-title); line-height: 1.12; font-weight: 500; letter-spacing: -0.02em; }
.fair-detail-process h3 { font-size: var(--text-h3); line-height: 1.18; font-weight: 500; letter-spacing: -0.015em; }
.cta__title { max-width: 24ch; margin-inline: auto; font-size: clamp(2.4rem, 2rem + 2.8vw, 5.3rem); font-weight: 500; line-height: 1.08; letter-spacing: -0.025em; }
.cta__text { max-width: 58ch; }
.cta__mail.cta__whatsapp { display: inline-flex; align-items: center; gap: 0.85rem; max-width: 100%; min-height: 3.5rem; padding: 0.4rem 0.5rem; border-radius: 0.5rem; color: var(--ink); font-family: var(--font-text); font-size: 1rem; font-weight: 500; line-height: 1.4; letter-spacing: 0; text-align: left; }
.cta__mail.cta__whatsapp::after { content: none; }
.cta__whatsapp-icon { display: grid; place-items: center; flex: 0 0 2.75rem; width: 2.75rem; height: 2.75rem; border: 1px solid var(--line); border-radius: 50%; transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease; }
.cta__whatsapp-copy { display: grid; gap: 0.15rem; min-width: 0; }
.cta__whatsapp-label { font-size: 1rem; font-weight: 500; letter-spacing: -0.015em; }
.cta__whatsapp-number { color: var(--muted); font-size: 0.875rem; font-weight: 400; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cta__whatsapp-arrow { flex: 0 0 1.125rem; margin-left: 0.35rem; color: var(--muted); transition: color 180ms ease, transform 180ms ease; }
.cta__whatsapp:is(:hover, :focus-visible) .cta__whatsapp-icon { color: var(--paper); background: var(--ink); border-color: var(--ink); }
.cta__whatsapp:is(:hover, :focus-visible) .cta__whatsapp-arrow { color: var(--ink); transform: translate(2px, -2px); }
.cta__mail.cta__whatsapp:focus-visible { outline: 2px solid var(--ink); outline-offset: 5px; }
.cta__mail.cta__whatsapp:active { background: var(--paper-soft); }
@media (prefers-reduced-motion: reduce) { .cta__whatsapp-icon, .cta__whatsapp-arrow { transition: none; } .cta__whatsapp:is(:hover, :focus-visible) .cta__whatsapp-arrow { transform: none; } }
.digital-block h2 { max-width: 13ch; font-size: clamp(2.5rem, 2rem + 2.5vw, 4.75rem); font-weight: 500; line-height: 1.08; letter-spacing: -0.025em; }
.fair-preview h2 { font-size: var(--text-h2); line-height: 1.08; letter-spacing: -0.025em; }
.references__head .section-title { line-height: 1.05; }

.project-page__hero { max-width: 100rem; margin-inline: auto; min-height: clamp(35rem, 72svh, 46rem); }
.project-page__title h1 { max-width: 12ch; }
.project-page__facts, .project-gallery__grid, .project-related { max-width: 100rem; margin-inline: auto; }
.project-page__facts h2 { max-width: 24ch; }
.project-gallery__head h2 { max-width: none; }
.project-related { color: var(--ink); }
.project-related nav a { color: var(--ink); }
.case-index, .service-index, .calendar-index { max-width: 100rem; margin-inline: auto; }

.fair-page { padding-top: calc(var(--header-h) + clamp(2rem, 4vw, 3.5rem)); }
.fair-detail-hero__panel { min-height: 0; background: var(--anthracite); }
.fair-detail-hero__body { min-height: 0; padding-block: clamp(3rem, 5vw, 5rem); }
.fair-detail-hero h1 { max-width: 16ch; }
.fair-detail-hero h1 span, .fair-detail-date > p, .fair-detail-section__index--light span { color: #9da7ff; }
.fair-detail-hero__label { display: none; }
.fair-detail-hero__summary { color: #c4c1b9; margin-top: 1.75rem; }
.fair-detail-date { min-height: 23rem; }
.fair-detail-date__days { gap: 0.6rem; }
.fair-detail-date__days strong { font-size: clamp(3.5rem, 4.8vw, 5rem); line-height: 1; letter-spacing: -0.04em; }
.fair-detail-date__days i { flex: 0 0 1rem; }
.fair-detail-date__place small, .fair-detail-date__code { color: #b7b4ad; }
.fair-detail-section { grid-template-columns: 0.18fr 0.95fr 1fr; padding-block: clamp(4rem, 7vw, 7rem); }
.fair-detail-section__lead h2 { margin-top: 0; }
.fair-detail-section__index span { font-size: clamp(2.5rem, 3.5vw, 4rem); line-height: 1; }
.fair-detail-action { color: var(--paper); }
.fair-detail-planning__head > div:last-child > p:last-child, .fair-detail-process p { color: #c4c1b9; }
.fair-detail-planning { padding-top: clamp(4rem, 7vw, 6rem); }
.fair-detail-process { margin-top: 3.5rem; }
.fair-list h2 { text-wrap: pretty; }
.calendar-index__status strong { font-size: 4.5rem; }

/* Compact top drawer, with reachable links on short screens. */
.menu__panel { inset: var(--header-h) 0 auto; max-height: calc(100dvh - var(--header-h)); padding: 2.25rem var(--gutter); gap: 2rem; }
.menu__panel::before { display: none; }
.menu__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 2.5rem; }
.menu__item:first-child { border-top: 0; }
.menu__link { padding: 1.1rem 0; gap: 0; }
.menu__no, .menu__foot-label { display: none; }
.menu__label { font-size: clamp(1.5rem, 2.3vw, 2.25rem); font-weight: 500; line-height: 1.25; padding-block: 0.1em; }
.menu__label-inner { transition: color 200ms ease; }
.menu__link:hover .menu__label-inner { transform: none; }
.menu__subnav { grid-template-columns: 1fr; padding-left: 0; gap: 0; }
.menu__subnav a { padding-block: 0.4rem; font-size: 0.9rem; color: #b7b4ad; }
.menu__foot { padding-top: 0; gap: 1.5rem 3rem; }
.menu__social { flex-wrap: wrap; gap: 0.75rem 1.25rem; }
.menu__foot-link { overflow-wrap: anywhere; }
.btn:active { transform: translateY(1px); }

/* One page and form component for contact and quote. */
.enquiry-page { max-width: 96rem; margin-inline: auto; padding: calc(var(--header-h) + clamp(3rem, 6vw, 5rem)) var(--gutter) 5rem; }
.enquiry-intro { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: clamp(2rem, 6vw, 6rem); align-items: end; margin-bottom: clamp(3rem, 6vw, 5rem); }
.enquiry-intro h1 { max-width: 16ch; }
.enquiry-intro p { color: var(--muted); max-width: 46ch; line-height: 1.75; }
.enquiry-layout { display: grid; grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
.enquiry-contact { padding-top: 2rem; border-top: 1px solid var(--ink); }
.enquiry-contact > p { margin-top: 1.5rem; max-width: 38ch; color: var(--muted); }
.enquiry-contact__links { display: grid; gap: 1.5rem; margin-top: 2.5rem; }
.enquiry-contact__links > a:not(.text-link) { display: grid; gap: 0.4rem; width: fit-content; max-width: 100%; }
.enquiry-contact__links > a > span { font-size: 0.82rem; color: var(--muted); }
.enquiry-contact__links strong { font-size: clamp(1.05rem, 1.3vw, 1.4rem); font-weight: 500; white-space: nowrap; }
.enquiry-contact__links a:hover { color: var(--kobalt); }
.enquiry-contact .enquiry-contact__privacy { font-size: 0.85rem; border-top: 1px solid var(--line); padding-top: 1.5rem; margin-top: 3rem; }
.enquiry-card { --form-muted: #686960; min-width: 0; background: #faf9f6; color: var(--ink); padding: clamp(1.5rem, 3.8vw, 3.75rem); border-radius: 24px; scroll-margin-top: calc(var(--header-h) + 1.5rem); }
.enquiry-card__head { margin-bottom: 2.25rem; padding-bottom: 2rem; border-bottom: 1px solid #deded6; }
.enquiry-card__head::before { content: ""; display: block; width: 2.5rem; height: 3px; background: var(--kobalt); margin-bottom: 1.5rem; }
.enquiry-card__head h2 { font-size: clamp(2rem, 1.7rem + 1vw, 2.75rem); }
.enquiry-card__head p { max-width: 40ch; margin-top: 0.75rem; color: var(--form-muted); font-size: 1rem; line-height: 1.6; }
.enquiry-group { min-inline-size: 0; border: 0; margin: 0 0 2.25rem; padding: 0; }
.enquiry-group legend { padding: 0; font-family: var(--font-display); font-size: 1.25rem; font-weight: 500; line-height: 1.35; letter-spacing: -0.015em; }
.enquiry-group__hint { margin: 0.4rem 0 1.25rem; color: var(--form-muted); font-size: 0.875rem; line-height: 1.5; }
.enquiry-services__options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.enquiry-service { position: relative; display: block; min-width: 0; cursor: pointer; }
.enquiry-card .enquiry-service input { position: absolute; inset: 50% auto auto 0; width: 1px; height: 1px; min-height: 0; padding: 0; margin: 0; opacity: 0; }
.enquiry-service__surface { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; min-height: 5.2rem; height: 100%; padding: 1rem; border: 1px solid #dedbd3; border-radius: 16px; font-size: 0.94rem; font-weight: 500; line-height: 1.45; transition: border-color 180ms ease, background-color 180ms ease, color 180ms ease; }
.enquiry-service__mark { display: grid; place-items: center; flex: 0 0 1.15rem; width: 1.15rem; height: 1.15rem; border: 1px solid #b8bcb0; border-radius: 50%; }
.enquiry-service__mark::after { content: ""; width: 0.4rem; height: 0.4rem; border-radius: 50%; background: currentColor; opacity: 0; }
.enquiry-service:hover .enquiry-service__surface { border-color: #8b9185; background: #f1f2eb; }
.enquiry-service input:checked + .enquiry-service__surface { color: #2634b2; background: #eeeffb; border-color: #4654d8; }
.enquiry-service input:checked + .enquiry-service__surface .enquiry-service__mark { border-color: currentColor; }
.enquiry-service input:checked + .enquiry-service__surface .enquiry-service__mark::after { opacity: 1; }
.enquiry-service input:focus-visible + .enquiry-service__surface { outline: 2px solid var(--kobalt); outline-offset: 3px; }
.enquiry-service input[aria-invalid="true"] + .enquiry-service__surface { border-color: #9e2020; }
.enquiry-card .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.35rem 1.25rem; }
.enquiry-card .form-field { min-width: 0; gap: 0.55rem; align-content: start; }
.enquiry-card .form-field--wide { grid-column: 1 / -1; }
.enquiry-card .form-field label { color: #373b33; font-size: 0.94rem; font-weight: 500; }
.enquiry-card .form-field label > span { color: #666e60; }
.enquiry-card .form-field :is(input, textarea, select) { min-width: 0; width: 100%; min-height: 3.65rem; border: 1px solid #dedbd3; border-radius: 14px; padding: 1rem 1.15rem; background: #f5f3ee; color: var(--ink); font: inherit; font-size: 1rem; box-shadow: inset 0 1px 2px rgb(60 49 29 / 3%); transition: border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease; }
.enquiry-card select { text-overflow: ellipsis; }
.enquiry-card .form-field textarea { min-height: 10rem; border-radius: 18px; resize: vertical; line-height: 1.65; }
.enquiry-card ::placeholder { color: #707568; opacity: 1; }
.enquiry-card .form-field :is(input, textarea, select):hover { border-color: #c4beb2; background-color: #f8f6f1; }
.enquiry-card .form-field :is(input, textarea, select):focus { outline: 2px solid transparent; outline-offset: 2px; border-color: #7784c4; background-color: #fffefb; box-shadow: 0 0 0 4px rgb(70 84 216 / 9%); }
.enquiry-card .form-privacy input:focus-visible { outline: 2px solid #4654d8; outline-offset: 3px; }
.enquiry-card .form-field [aria-invalid="true"] { border-color: #9e2020; background-color: #fff7f2; }
.enquiry-card .field-errors:empty { display: none; }
.enquiry-card .field-errors { font-size: 0.875rem; line-height: 1.5; }
.enquiry-details { margin-top: 0.5rem; border-block: 1px solid #deded6; }
.enquiry-details summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 4.75rem; padding-block: 1rem; list-style: none; cursor: pointer; font-size: 1rem; font-weight: 500; }
.enquiry-details summary::-webkit-details-marker { display: none; }
.enquiry-details summary:focus-visible { outline: 2px solid var(--kobalt); outline-offset: 4px; border-radius: 4px; }
.enquiry-details__hint { display: block; margin-top: 0.2rem; color: var(--form-muted); font-size: 0.84rem; font-weight: 400; }
.enquiry-details__toggle { position: relative; flex: 0 0 2.25rem; height: 2.25rem; border: 1px solid #deded6; border-radius: 50%; }
.enquiry-details__toggle::before, .enquiry-details__toggle::after { content: ""; position: absolute; inset: 50% auto auto 50%; width: 0.7rem; height: 1px; background: currentColor; transform: translate(-50%, -50%); }
.enquiry-details__toggle::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform 180ms ease; }
.enquiry-details[open] .enquiry-details__toggle::after { transform: translate(-50%, -50%); }
.enquiry-details > .form-grid { padding-block: 0.5rem 1.75rem; }
.enquiry-card .form-field--trap { position: absolute; width: 1px; height: 1px; left: auto; opacity: 0; overflow: hidden; pointer-events: none; }
.enquiry-submit { padding-top: 1.75rem; }
.form-privacy { margin-top: 0; }
.form-privacy label { display: flex; align-items: start; gap: 0.75rem; font-size: 0.9rem; }
.form-privacy input { flex: 0 0 1.1rem; width: 1.1rem; height: 1.1rem; margin-top: 0.2rem; accent-color: var(--ink); }
.form-privacy a, .form-errors a { text-decoration: underline; text-underline-offset: 3px; }
.enquiry-card .form-note { line-height: 1.7; font-size: 0.875rem; color: var(--form-muted); margin-block: 1rem 1.5rem; }
.enquiry-card button[type="submit"] { min-height: 3.75rem; justify-content: space-between; width: 100%; padding: 0.8rem 1.25rem; border-radius: 15px; font-size: 1rem; }
.enquiry-card button[type="submit"] .btn__arrow { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: rgb(255 255 255 / 10%); transition: transform 180ms ease; }
.enquiry-card button[type="submit"]:hover .btn__arrow { transform: translate(2px, -2px); }
.enquiry-card button[disabled] { cursor: wait; opacity: 0.7; }
.enquiry-success { padding-block: 2.5rem; }
.enquiry-success__mark { display: grid; place-items: center; width: 4rem; aspect-ratio: 1; background: #eeeffb; color: #2634b2; border-radius: 50%; font-size: 1.75rem; margin-bottom: 2rem; }
.enquiry-success p { max-width: 52ch; margin-block: 1.5rem 2rem; }
.enquiry-locations { margin-top: clamp(4rem, 8vw, 7rem); border-top: 1px solid var(--line); padding-top: 2.5rem; }
.enquiry-locations__grid { margin-top: 2rem; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; }
.enquiry-locations h3 { font-family: var(--font-display); font-size: 1.4rem; line-height: 1.25; }
.enquiry-locations address { color: var(--muted); font-size: 0.9rem; font-style: normal; margin-top: 0.8rem; }

@media (max-width: 1024px) {
  .content-section__body { grid-template-columns: 1fr; }
  .content-section__body h2, .content-section__body > p, .content-section__body > ul, .content-section__body > .content-section__links, .content-faq { grid-column: 1; grid-row: auto; }
  .content-section__body h2 { max-width: 25ch; }
  .fair-detail-section { grid-template-columns: 0.18fr 1fr; }
  .enquiry-intro { grid-template-columns: 1fr; gap: 1.5rem; }
  .enquiry-layout { grid-template-columns: minmax(0, 0.65fr) minmax(0, 1.35fr); gap: 2rem; }
  .enquiry-card .form-grid { grid-template-columns: 1fr; }
  .enquiry-locations__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .content-section { grid-template-columns: 1.4rem minmax(0, 1fr); gap: 1rem; }
  .project-page__title { padding-top: calc(var(--header-h) + 3rem); }
  .fair-detail-section { grid-template-columns: 1fr; }
  .fair-detail-date { min-height: 19rem; }
  .fair-detail-hero__bar { font-family: var(--font-text); font-size: 0.8rem; text-transform: none; letter-spacing: 0; }
  .fair-detail-hero__bar p { flex-wrap: wrap; }
  .fair-detail-facts { grid-column: 1; }
  .menu__panel { padding: 1.5rem var(--gutter) 2rem; }
  .menu__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.25rem; }
  .menu__subnav { display: none; }
  .menu__label { font-size: 1.4rem; }
  .menu__foot { font-size: 0.9rem; gap: 1.5rem; }
  .enquiry-layout { display: flex; flex-direction: column; gap: 3rem; }
  .enquiry-card { order: -1; width: 100%; }
  .enquiry-card .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .enquiry-contact { width: 100%; }
  .enquiry-contact__links strong { font-size: 1.25rem; }
  .enquiry-locations__grid { gap: 2rem 1.5rem; }
}
@media (max-width: 480px) {
  .enquiry-card .form-grid, .enquiry-locations__grid { grid-template-columns: 1fr; }
  .enquiry-card { padding: 1.5rem 1.25rem; border-radius: 20px; }
  .enquiry-service__surface { min-height: 6.5rem; padding: 0.8rem; font-size: 0.875rem; flex-direction: column-reverse; align-items: flex-start; justify-content: space-between; gap: 0.75rem; }
  .enquiry-service__mark { flex-basis: auto; }
  .menu__label { font-size: 1.2rem; }
  .fair-list h2 { font-size: clamp(1.4rem, 5.6vw, 1.75rem); }
}
@media (prefers-reduced-motion: reduce) {
  .enquiry-card *, .enquiry-card *::before, .enquiry-card *::after { transition: none !important; }
}
@media (forced-colors: active) {
  .enquiry-card .form-field :is(input, textarea, select):focus { outline-color: Highlight; }
}

/* Functional corrections; keep the existing page compositions. */
.header__brand { max-height: calc(var(--header-h) - 1rem); }
.project-page__media[data-gallery-hero] { position: relative; }
.project-page__zoom { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.project-page__zoom span { position: absolute; right: 1rem; bottom: 1rem; padding: 0.6rem 0.9rem; color: #fff; background: rgba(20, 21, 18, 0.85); border-radius: 0.5rem; font-size: 0.85rem; }
.project-page__zoom:focus-visible { outline: 3px solid var(--kobalt); outline-offset: -4px; }
.project-lightbox__nav:disabled { opacity: 0.35; cursor: default; }
.project-gallery__open > span { opacity: 1; transform: none; }

/* The planning illustration fills the existing decorative column. */
.fair-preview__visual { position: relative; display: grid; place-items: center; aspect-ratio: 4 / 3; }
.fair-preview__visual .fair-preview__year { visibility: hidden; }
.fair-preview__stand { position: absolute; inset: -5% -6%; display: block; z-index: 1; mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent), linear-gradient(to bottom, transparent, #000 6%, #000 94%, transparent); mask-composite: intersect; }
.fair-preview__stand img { display: block; width: 100%; height: 100%; object-fit: contain; }
@media (max-width: 760px) {
  .fair-preview__visual { width: 100%; max-width: 34rem; justify-self: center; }
  .fair-preview__visual .fair-preview__year { inset: 50% auto auto 0; transform: translateY(-50%); }
  .fair-preview__stand { inset: 0; }
}

/* Shared footer: readable type, clear contact hierarchy, original links. */
.footer--refined {
  --footer-muted: #b5b3ac;
  --footer-line: rgba(241, 239, 233, 0.14);
  padding-top: clamp(3.25rem, 5vw, 5.5rem);
  font-family: var(--font-text);
  border-top: 1px solid var(--footer-line);
}
.footer--refined .footer__identity { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 4rem; padding-bottom: clamp(2.5rem, 4vw, 4rem); border-bottom: 1px solid var(--footer-line); }
.footer--refined .footer__brand { display: inline-flex; width: 13.5rem; height: 5rem; margin-bottom: 1.25rem; }
.footer--refined .footer__brand img { width: 100%; height: 100%; object-fit: contain; object-position: left center; }
.footer--refined .footer__intro { max-width: 41ch; margin: 0; color: var(--footer-muted); font-size: 1rem; line-height: 1.7; }
.footer--refined .footer__note { max-width: 44ch; justify-self: end; margin: 0; font-family: var(--font-text); font-size: clamp(1.1rem, 1.35vw, 1.5rem); font-weight: 400; line-height: 1.6; letter-spacing: -0.015em; text-transform: none; color: var(--paper); opacity: 1; }
.footer--refined .footer__top { grid-template-columns: minmax(0, 1.7fr) minmax(0, 0.8fr) minmax(0, 1fr) minmax(0, 0.65fr); gap: clamp(2rem, 4vw, 5rem); padding-block: clamp(2.75rem, 4vw, 4rem); border-color: var(--footer-line); }
.footer--refined .footer__col { min-width: 0; }
.footer--refined .footer__col--intro { grid-column: auto; }
.footer--refined .footer__label { margin-bottom: 1rem; font-family: var(--font-text); font-size: 0.875rem; font-weight: 500; line-height: 1.5; letter-spacing: 0; text-transform: none; color: var(--footer-muted); }
.footer--refined .footer__mail { font-family: var(--font-text); font-size: clamp(1.25rem, 1.8vw, 2rem); font-weight: 500; line-height: 1.3; letter-spacing: -0.025em; margin: 0 0 1.75rem; overflow-wrap: anywhere; text-decoration-thickness: 1px; text-underline-offset: 0.3em; }
.footer--refined .footer__phones { display: flex; flex-wrap: wrap; gap: 1rem 2rem; margin-bottom: 1.5rem; }
.footer--refined .footer__phone { display: flex; flex-direction: column; justify-content: center; gap: 0.35rem; min-height: 3rem; color: var(--paper); }
.footer--refined .footer__phone span { font-size: 0.8rem; color: var(--footer-muted); }
.footer--refined .footer__phone strong { font-size: 1rem; font-weight: 500; line-height: 1.5; white-space: nowrap; }
.footer--refined .footer__whatsapp { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 3rem; padding: 0.65rem 1rem; border: 1px solid rgba(241, 239, 233, 0.28); border-radius: 0.65rem; color: var(--paper); font-size: 0.875rem; line-height: 1.5; transition: background 180ms ease, border-color 180ms ease; }
.footer--refined .footer__whatsapp > span:last-child { font-size: 1.15rem; }
.footer--refined .footer__whatsapp:hover { background: rgba(241, 239, 233, 0.07); border-color: rgba(241, 239, 233, 0.6); }
.footer--refined .footer__list li { margin: 0; }
.footer--refined .footer__list a { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 2.6rem; padding-block: 0.45rem; font-family: var(--font-text); font-size: 0.9375rem; font-weight: 400; line-height: 1.5; color: #dfddd7; text-underline-offset: 0.3em; transition: color 180ms ease; }
.footer--refined .footer__list a:hover, .footer--refined .footer__mail:hover { color: #fff; text-decoration-line: underline; }
.footer--refined .footer__phone:hover strong { text-decoration: underline; text-underline-offset: 0.25em; }
.footer--refined .footer__social { margin-top: 1.75rem; }
.footer--refined .footer__social .footer__label { margin-bottom: 0.5rem; }
.footer--refined .footer__social a > span { color: var(--footer-muted); }
.footer--refined a:focus-visible { outline: 2px solid var(--paper); outline-offset: 5px; border-radius: 2px; }
.footer--refined .footer__bottom { align-items: center; gap: 1rem 2rem; padding-block: 1.5rem; font-size: 0.8125rem; line-height: 1.6; color: var(--footer-muted); }
.footer--refined .footer__locations { display: inline-flex; align-items: center; gap: 0.75rem; color: var(--paper); font-size: 0.9375rem; }
.footer--refined .footer__locations i { width: 3px; height: 3px; border-radius: 50%; background: currentColor; }
.footer--refined .footer__giant { padding: 0.75rem 0 1.5rem; }
.footer--refined .footer__giant-line { font-family: var(--font-text); font-size: clamp(2rem, 8.4vw, 9rem); font-weight: 500; line-height: 1.1; letter-spacing: -0.055em; word-spacing: normal; white-space: nowrap; text-align: center; color: rgba(241, 239, 233, 0.12); -webkit-text-stroke: 0; }
@media (max-width: 1100px) {
  .footer--refined .footer__identity { gap: 3rem; }
  .footer--refined .footer__top { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem; }
  .footer--refined .footer__col--intro { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 0 2.5rem; align-items: start; padding-bottom: 2.5rem; border-bottom: 1px solid var(--footer-line); }
  .footer--refined .footer__col--intro > .footer__label { grid-column: 1; }
  .footer--refined .footer__mail { grid-column: 1; font-size: 1.75rem; margin-bottom: 1.25rem; }
  .footer--refined .footer__phones { grid-column: 2; grid-row: 1 / span 2; }
  .footer--refined .footer__whatsapp { grid-column: 1; justify-self: start; }
}
@media (max-width: 600px) {
  .footer--refined .footer__identity { grid-template-columns: 1fr; gap: 1.75rem; padding-bottom: 2rem; }
  .footer--refined .footer__brand { width: 11rem; height: 4.1rem; margin-bottom: 1rem; }
  .footer--refined .footer__intro { font-size: 0.9375rem; }
  .footer--refined .footer__note { justify-self: start; max-width: 36ch; font-size: 1.125rem; line-height: 1.6; }
  .footer--refined .footer__top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.5rem; padding-block: 2rem; }
  .footer--refined .footer__col--intro { display: block; padding-bottom: 2rem; }
  .footer--refined .footer__mail { font-size: clamp(1.35rem, 6.3vw, 1.75rem); }
  .footer--refined .footer__phones { gap: 1rem 1.5rem; }
  .footer--refined .footer__phone strong { font-size: 0.9375rem; }
  .footer--refined .footer__list a { min-height: 2.75rem; font-size: 0.875rem; }
  .footer--refined .footer__col--more { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; padding-top: 1.75rem; border-top: 1px solid var(--footer-line); }
  .footer--refined .footer__social { margin-top: 0; }
  .footer--refined .footer__bottom { flex-direction: column; align-items: start; gap: 0.75rem; }
  .footer--refined .footer__giant { padding-block: 0.25rem 1.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .footer--refined a { transition: none; }
}

/* A single row of social marks keeps the footer columns balanced. */
.footer--refined .footer__social .footer__label { margin-bottom: 0.9rem; }
.footer--refined .footer__social-list { display: flex; align-items: center; justify-content: space-between; gap: 0; width: 9.25rem; max-width: 100%; }
.footer--refined .footer__social-list li { flex: 0 0 2.75rem; }
.footer--refined .footer__social-list .footer__social-link { position: relative; display: grid; place-items: center; width: 2.75rem; height: 2.75rem; min-height: 2.75rem; padding: 0; border: 1px solid rgba(241, 239, 233, 0.24); border-radius: 50%; background: transparent; color: var(--paper); text-decoration: none; transition: color 180ms ease, background 180ms ease, border-color 180ms ease, transform 180ms ease; }
.footer--refined .footer__social-link .footer__social-icon { display: grid; place-items: center; width: 1.5rem; height: 1.5rem; color: inherit; }
.footer--refined .footer__social-link .footer__social-name { position: absolute; z-index: 2; top: calc(100% + 0.55rem); left: 50%; width: max-content; padding: 0.35rem 0.6rem; border-radius: 0.35rem; background: var(--paper); color: var(--ink); font-size: 0.75rem; font-weight: 500; line-height: 1.4; white-space: nowrap; pointer-events: none; opacity: 0; visibility: hidden; transform: translate(-50%, 3px); transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease; }
.footer--refined .footer__social-list .footer__social-link:is(:hover, :focus-visible) { border-color: var(--paper); background: var(--paper); color: var(--ink); transform: translateY(-2px); text-decoration: none; }
.footer--refined .footer__social-link:is(:hover, :focus-visible) .footer__social-name { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.footer--refined .footer__social-list .footer__social-link:active { transform: translateY(0); }
.footer--refined .footer__social-list .footer__social-link:focus-visible { outline: 1px solid var(--paper); outline-offset: 4px; border-radius: 50%; }
@media (max-width: 600px) {
  .footer--refined .footer__col--more { grid-template-columns: minmax(0, 1fr) 9.25rem; }
}
@media (prefers-reduced-motion: reduce) {
  .footer--refined .footer__social-list .footer__social-link, .footer--refined .footer__social-link .footer__social-name { transition: none; }
  .footer--refined .footer__social-list .footer__social-link:is(:hover, :focus-visible) { transform: none; }
}
