/* Aura typography. rem keeps browser text-size preferences intact. */
.aura-site {
  --type-body: clamp(1rem, .97rem + .12vw, 1.0625rem);
  --type-support: clamp(.875rem, .85rem + .1vw, .9375rem);
  --type-label: clamp(.75rem, .725rem + .1vw, .8125rem);
  --type-h1: clamp(2.75rem, 1rem + 8vw, 9rem);
  --type-h2: clamp(2rem, 1.5rem + 3vw, 4.5rem);
  --type-h3: clamp(1.375rem, 1.125rem + .8vw, 1.875rem);
  --copy-muted: #526878;
  font-size: var(--type-body);
  line-height: 1.65;
}

.aura-site h1 {
  font-size: var(--type-h1);
  line-height: 1.08;
  letter-spacing: -.06em;
  overflow-wrap: break-word;
}
html[data-locale="nl-BE"] .aura-site .hero h1 {
  font-size: clamp(2.625rem, 1.25rem + 7vw, 8.25rem);
}
.aura-site h2,
html[data-locale] .aura-site h2 {
  font-size: var(--type-h2);
  line-height: 1.16;
  letter-spacing: -.045em;
}
.aura-site .statement h2,
html[data-locale] .aura-site .statement h2 {
  font-size: clamp(2.25rem, 1.5rem + 3.5vw, 5rem);
}
.aura-site h3 {
  font-size: var(--type-h3);
  line-height: 1.3;
  letter-spacing: -.035em;
  font-weight: 450;
}
.aura-site .statement h2 > span,
.aura-site .section-heading h2 > span,
.aura-site .area-heading h2 > span,
.aura-site .faq-heading h2 > span,
.aura-site .contact h2 > span { color: #657e8e; }

/* Navigation and contextual labels remain readable without competing with titles. */
.aura-site .concept-bar {
  min-height: 2.25rem;
  height: auto;
  padding-top: .375rem;
  padding-bottom: .375rem;
  gap: .75rem;
  font-size: var(--type-label);
  line-height: 1.5;
  color: var(--copy-muted);
}
.aura-site .concept-bar > span { font-size: inherit; letter-spacing: .06em; }
.aura-site .concept-bar > a { min-width: 0; }
.aura-site .brand { font-size: clamp(1.375rem, 1.2rem + .5vw, 1.625rem); }
.aura-site .site-header { height: auto; min-height: 5.5rem; flex-wrap: wrap; padding-top: .875rem; padding-bottom: .875rem; }
.aura-site .desktop-nav { flex-wrap: wrap; min-width: 0; }
.aura-site .desktop-nav,
.aura-site .header-quote { font-size: var(--type-support); line-height: 1.5; }
.aura-site .mobile-nav { font-size: 1.125rem; line-height: 1.5; }
.aura-site .mobile-nav a { min-height: 2.75rem; display: flex; align-items: center; }
.aura-site .nexa-language-trigger {
  font-size: .875rem !important;
  min-height: 2.75rem;
}
.aura-site .eyebrow,
.aura-site .hero-topline .eyebrow {
  font-size: var(--type-label);
  line-height: 1.65;
  letter-spacing: .08em;
}
.aura-site .hero-topline { align-items: flex-start; gap: 1rem; }
.aura-site .hero-index,
.aura-site .image-coordinate,
.aura-site .map-coordinate,
.aura-site .map-label {
  font-size: var(--type-label);
  line-height: 1.5;
}
.aura-site .hero-index { flex-shrink: 0; color: var(--copy-muted); }
.aura-site .map-coordinate { color: var(--copy-muted); }

/* Main reading text has a 16px floor at the default browser font size. */
.aura-site .hero-description > p,
.aura-site .statement-bottom > p,
.aura-site .section-heading > p,
.aura-site .service-card > p,
.aura-site .business-line p,
.aura-site .steps p,
.aura-site .area-heading > p:not(.eyebrow),
.aura-site .faq-heading > p:not(.eyebrow),
.aura-site .faq-list details > p,
.aura-site .contact-title > p:not(.eyebrow) {
  font-size: var(--type-body);
  line-height: 1.75;
  color: var(--copy-muted);
}
.aura-site .hero-description p span,
.aura-site .statement-bottom > p:last-child span { color: var(--copy-muted); }
.aura-site .hero-description .hero-area,
.aura-site .hero-area > span {
  font-size: var(--type-support);
  line-height: 1.65;
}
.aura-site .glass-note { max-width: calc(100% - 2rem); }
.aura-site .glass-note > p { font-size: var(--type-support); line-height: 1.65; }
.aura-site .hero figcaption {
  flex-wrap: wrap;
  gap: .75rem 1.5rem;
  font-size: var(--type-label);
  line-height: 1.65;
}
.aura-site .figure-label { font-size: var(--type-label); color: var(--copy-muted); }
.aura-site .hero figcaption > span:last-child {
  font-size: var(--type-support);
  white-space: normal;
}

/* Explicit light text on the dark Airbnb panel, at every breakpoint. */
.aura-site .airbnb-copy > p:not(.eyebrow) {
  font-size: var(--type-body);
  line-height: 1.75;
  color: #d4e0e8;
}
.aura-site .airbnb-copy .eyebrow { color: #c0d0db; }
.aura-site .airbnb-copy li { font-size: var(--type-support); line-height: 1.7; }
.aura-site .airbnb-copy li > span {
  font-size: var(--type-label);
  min-width: 1.5rem;
  color: #bdcfdb;
}
.aura-site .airbnb-caption { font-size: var(--type-label); line-height: 1.6; }

.aura-site .button,
.aura-site .airbnb-copy .button,
.aura-site .form-bottom > .button {
  font-size: var(--type-support);
  line-height: 1.5;
  min-height: 3rem;
  max-width: 100%;
  gap: clamp(1rem, 2vw, 2rem);
  white-space: normal;
}
.aura-site .service-card h3,
.aura-site .steps h3 { font-size: var(--type-h3); line-height: 1.3; }
.aura-site .service-top > span { font-size: var(--type-label); color: var(--copy-muted); }
.aura-site .service-card > a,
.aura-site .text-link,
.aura-site .business-line > a,
.aura-site .area-heading .text-link {
  font-size: var(--type-support);
  line-height: 1.6;
  min-height: 2.75rem;
  min-width: 0;
  max-width: 100%;
}
.aura-site .service-card > a > span,
.aura-site .text-link > span { flex-shrink: 0; }
.aura-site .step-no > span:first-child { font-size: clamp(2.5rem, 2rem + 2vw, 3.5rem); }
.aura-site .faq-list summary {
  font-size: var(--type-body);
  font-weight: 450;
  line-height: 1.6;
  gap: 1rem;
}

/* Contact and form fields: readable labels, full-size placeholders and natural wrapping. */
.aura-site .contact-title > * { min-width: 0; }
.aura-site .contact-person-label,
.aura-site .footer-contact-label { font-size: var(--type-label); line-height: 1.6; }
.aura-site .contact-person-name {
  font-size: clamp(1.125rem, 1rem + .35vw, 1.375rem);
  line-height: 1.5;
}
.aura-site .contact-person-role,
.aura-site .footer-role { font-size: var(--type-support); line-height: 1.6; }
.aura-site .direct-contact > span:nth-child(2),
.aura-site .footer-person,
.aura-site .footer-company a { font-size: var(--type-body); line-height: 1.65; }
.aura-site .direct-contact small { font-size: var(--type-label); line-height: 1.5; }
.aura-site .direct-contact > svg,
.aura-site .direct-contact > span:last-child { flex-shrink: 0; }
.aura-site .form-title { font-size: clamp(1.125rem, 1rem + .3vw, 1.375rem); line-height: 1.5; }
.aura-site .field label { font-size: var(--type-support); line-height: 1.6; }
.aura-site .field input,
.aura-site .field select,
.aura-site .field textarea {
  font-size: 1rem;
  line-height: 1.6;
  min-height: 3rem;
}
.aura-site .field input::placeholder,
.aura-site .field textarea::placeholder { font-size: 1rem; color: #637b8c; opacity: 1; }
.aura-site .form-bottom { flex-direction: row; flex-wrap: wrap; align-items: flex-start; }
.aura-site .form-bottom > p {
  font-size: var(--type-label);
  line-height: 1.75;
  color: var(--copy-muted);
  max-width: 42ch;
  flex: 1 1 13rem;
}
.aura-site .form-bottom > .button { flex: 0 1 auto; }
.aura-site .form-result { font-size: var(--type-body); line-height: 1.75; }

.aura-site .footer-top { flex-wrap: wrap; }
.aura-site .footer-brand { font-size: clamp(3rem, 2rem + 6vw, 8rem); }
.aura-site .footer-top > div { min-width: 0; flex-shrink: 1; }
.aura-site .footer-top p,
.aura-site .footer-top > div > a { font-size: var(--type-support); line-height: 1.7; }
.aura-site .footer-bottom,
.aura-site .footer-bottom > a { font-size: var(--type-label); line-height: 1.7; color: var(--copy-muted); }
.aura-site .site-footer .developer-credit { font-size: var(--type-support); color: var(--copy-muted); }

/* The shared dialog is enlarged only inside Aura. Other design studies are unchanged. */
.aura-site .nexa-language-dialog { font-size: 1rem; }
.aura-site .nexa-language-dialog h2 {
  font-size: clamp(1.5rem, 1.2rem + 1.5vw, 2rem) !important;
  line-height: 1.25 !important;
  letter-spacing: -.03em !important;
}
.aura-site .nexa-language-eyebrow,
.aura-site .nexa-language-code { font-size: .75rem; color: #53634d; }
.aura-site .nexa-language-description { font-size: .9375rem; line-height: 1.65; color: #53634d; }
.aura-site .nexa-language-name { font-size: 1rem; line-height: 1.4; }
.aura-site .nexa-language-name small { font-size: .8125rem; line-height: 1.5; color: #53634d; }
.aura-site .nexa-language-note { font-size: .8125rem; line-height: 1.6; color: #53634d; }
.aura-site .nexa-language-close { width: 2.75rem; height: 2.75rem; flex-shrink: 0; }

@media (max-width: 960px) {
  .aura-site .contact-title { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .aura-site .direct-contacts { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .aura-site h1 { font-size: clamp(2.5rem, .5rem + 9vw, 3.875rem); font-weight: 400; letter-spacing: -.045em; }
  .aura-site .hero-index { display: none; }
  .aura-site .concept-bar { gap: .5rem; letter-spacing: 0; }
  .aura-site .concept-bar > div { gap: .625rem; }
  .aura-site .concept-bar > span { letter-spacing: .03em; white-space: nowrap; }
  .aura-site .site-header { min-height: 4.75rem; padding-top: .75rem; padding-bottom: .75rem; gap: .75rem; }
  .aura-site .header-actions { gap: .5rem; }
  .aura-site .menu-toggle { width: 2.75rem; height: 2.75rem; padding: .6875rem; }
  .aura-site .hero figcaption > span:first-child { flex-basis: 100%; }
  .aura-site .hero-description { grid-template-columns: minmax(0, 1fr) 2.75rem; gap: 1rem; }
  .aura-site .round-cta { width: 2.75rem; height: 2.75rem; }
  .aura-site .section-heading > p,
  .aura-site .service-card > p,
  .aura-site .steps p,
  .aura-site .contact-title > p:not(.eyebrow) { max-width: 100%; }
  .aura-site .business-line { grid-template-columns: minmax(0, 1fr); gap: .75rem; }
  .aura-site .business-cross { display: none; }
  .aura-site .business-line > a { grid-column: 1; }
  .aura-site .form-bottom { flex-direction: column; align-items: stretch; }
  .aura-site .form-bottom > p { flex: 0 1 auto; }
  .aura-site .form-bottom > .button { width: 100%; }
  .aura-site .footer-top > div { flex-direction: column; align-items: flex-start; gap: 1rem; }
  .aura-site .footer-top > div > a { white-space: normal; }
  .aura-site .nexa-language-dialog { padding: 1.25rem; }
}

/* Keep the two complementary headline statements distinct in every locale. */
.aura-site .hero-title > span { display: block; }

/* Functional contact form controls, scoped to Aura. */
.aura-site .quote-form { position: relative; }
.aura-site .form-honey { position: absolute; left: 0; top: 0; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.aura-site .form-consent { display: flex; align-items: flex-start; gap: .75rem; margin-top: 1.25rem; padding: .5rem 0; font-size: var(--type-support); line-height: 1.65; color: var(--copy-muted); cursor: pointer; }
.aura-site .form-consent input { flex: 0 0 1.125rem; width: 1.125rem; height: 1.125rem; min-height: 0; margin: .15rem 0 0; accent-color: var(--blue); }
.aura-site .form-bottom > .button > [data-submit-label] { font: inherit; line-height: inherit; }
.aura-site .form-bottom > .button:disabled { cursor: wait; opacity: .65; transform: none; }
.aura-site .form-result[data-state="error"] { border-color: #936a47; background: #faf1e7; color: #563a24; }
.aura-site .form-result[data-state="success"] { border-color: #648679; background: #edf4f0; color: #244a3d; }
