/* ==================================================================
   ELAN — lifestyle palette: ivory, limestone and Mediterranean blue.
   ================================================================== */

:root {
  --warm-ivory: #F7F3EA;
  --soft-white: #FFF9EE;
  --sand: #DED1BF;
  --limestone: #C9C7C0;
  --mediterranean-blue: #4F7484;
  --sea-blue: #315C70;
  --sky-blue: #AFC9D7;
  --polished-chrome: #D7DBDB;
  --brushed-silver: #A7AFAF;

  --cream: var(--warm-ivory);
  --sage: var(--limestone);
  --peach: var(--limestone);
  --sky: var(--sky-blue);
  --sea: var(--sea-blue);
  --ink: #1C2D33;
  --muted: #697579;
  --line: rgba(28, 45, 51, .16);
  --section-space: clamp(48px, 6vw, 80px);
  --section-space-large: clamp(64px, 8vw, 104px);
  --page-top-space: var(--section-space);

  --radius:    4px;
  --radius-sm: 2px;
  --shell:     1180px;

  --display: 'Inter', system-ui, sans-serif;
  --heading: 'Cormorant Garamond', Georgia, serif;
  --script:  'Cormorant Garamond', Georgia, serif;
  --body:    'Inter', system-ui, sans-serif;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: var(--body);
  font-size: 16px;
  font-weight: 400;
  letter-spacing: .002em;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, .display-word {
  font-family: var(--heading);
  font-weight: 500;
  letter-spacing: -.03em;
  line-height: 1.02;
  text-wrap: balance;
}

p { text-wrap: pretty; }
a { color: inherit; }
img { max-width: 100%; display: block; }

.container-x {
  max-width: var(--shell);
  margin: 0 auto;
  padding: 0 20px;
}

.section-gap { margin-top: var(--section-space); }

.fineprint { font-size: 12px; color: var(--muted); }
.hp-field  { position: absolute !important; left: -9999px; opacity: 0; height: 0; width: 0; }

:focus-visible {
  outline: 2px solid var(--sea-blue);
  outline-offset: 4px;
}

/* ---------- Botoes ---------- */
.btn-ink,
.btn-outline-ink {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  border-radius: 999px;
  font-family: var(--display);
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
  border: 1.5px solid var(--ink);
  cursor: pointer;
  transition: transform .18s ease, background .18s ease, color .18s ease;
}
.btn-ink { background: var(--ink); color: #fff; }
.btn-ink:hover { transform: translateY(-1px); background: #2c2c24; color: #fff; }
.btn-outline-ink { background: transparent; color: var(--ink); }
.btn-outline-ink:hover { background: var(--ink); color: #fff; }
.btn-block { width: 100%; }

.link-arrow {
  font-family: var(--display);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1.5px solid var(--ink);
  padding-bottom: 2px;
}

/* ---------- Nav flutuante ---------- */
.site-nav {
  position: sticky;
  top: 14px;
  z-index: 60;
  padding: 14px 20px 0;
}
.nav-pill {
  max-width: 1028px;
  min-height: 59px;
  margin: 0 auto;
  background: var(--soft-white);
  border-radius: 18px;
  padding: 8px 16px 8px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  box-shadow: 0 6px 24px rgba(20, 20, 15, .08);
}
.nav-logo {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  line-height: 1;
}
.nav-logo-mark {
  width: 32px;
  height: 32px;
  background: var(--ink);
  border-radius: 8px;
  -webkit-mask: radial-gradient(circle 5px at 5px 5px, transparent 98%, #000) 0 0 / 16px 16px;
          mask: radial-gradient(circle 5px at 5px 5px, transparent 98%, #000) 0 0 / 16px 16px;
}
.nav-logo-mark--light { background: #fff; }
.nav-logo-word {
  font-family: var(--display);
  font-size: 8px;
  letter-spacing: .32em;
  margin-top: 2px;
  text-transform: lowercase;
}
.nav-links {
  display: flex;
  flex: 1;
  align-items: center;
  min-width: 0;
}
.nav-primary,
.nav-actions {
  display: flex;
  align-items: center;
}
.nav-primary { gap: 18px; }
.nav-actions {
  gap: 10px;
  margin-left: auto;
}
.nav-link {
  font-family: var(--display);
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
  color: var(--ink);
  white-space: nowrap;
}
.nav-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.nav-link.is-active { font-weight: 700; }
.nav-cta {
  border-radius: 11px;
  padding: 10px 16px;
  font-size: 13px;
  white-space: nowrap;
}
.nav-language {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--display);
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}

.nav-toggle {
  display: none;
  background: none;
  border: 0;
  width: 40px; height: 36px;
  padding: 8px;
  flex-direction: column;
  justify-content: space-between;
}
.nav-toggle span {
  display: block;
  height: 2px;
  background: var(--ink);
  border-radius: 2px;
}

/* ---------- Blocos de cor ---------- */
.block {
  border-radius: var(--radius);
  padding: 44px;
}
.block-sand  { background: var(--sand); }
.block-sage  { background: var(--sage); }
.block-peach { background: var(--peach); }
.block-sky   { background: var(--sky); }
.block-white { background: var(--soft-white); }

/* ---------- Hero ---------- */
.home-page .site-nav {
  position: absolute;
  inset: 0 0 auto;
}
.hero {
  position: relative;
  margin: 0;
  max-width: none;
  padding: 0;
}
.hero-frame {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  border-radius: 0 0 12px 12px;
  background: var(--sage) center / cover no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff;
  isolation: isolate;
}
.hero-video {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-frame::after {
  content: '';
  position: absolute;
  z-index: 1;
  inset: 0;
  background: rgba(20, 20, 15, .31);
}
.hero-inner {
  position: relative;
  z-index: 2;
  width: min(100%, 820px);
  padding: 0 20px;
  transform: translateY(clamp(100px, 17vh, 150px));
}
.hero-word {
  font-family: var(--heading);
  font-size: clamp(58px, 5.1vw, 78px);
  letter-spacing: .48em;
  line-height: .9;
  margin: 0;
  padding-left: .48em;
  text-transform: lowercase;
}
.hero-sub {
  margin: 8px 0 14px;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.3;
}
.hero-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}
.hero-actions .btn-ink,
.hero-actions .btn-outline-ink {
  min-height: 41px;
  border-radius: 10px;
  padding: 10px 14px;
  font-size: 14px;
}
.hero-actions .btn-outline-ink {
  border-color: var(--soft-white);
  background: var(--soft-white);
  color: var(--ink);
}
.hero-actions .btn-outline-ink:hover { background: rgba(255, 255, 255, .86); color: var(--ink); }
.hero-benefits { margin-top: 44px; }
.hero-badges {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-columns: 1fr;
  grid-template-rows: auto;
  column-gap: 1.5rem;
  row-gap: 1.5rem;
  place-items: end center;
  width: 100%;
  max-width: 80rem;
  margin: 0 auto;
  padding: 1rem 2rem;
  border-radius: 1.5rem;
  background-color: #f7f6eb33;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  text-align: left;
}
.hero-badge {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 9px;
  color: #fff;
  font-family: var(--display);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  text-align: left;
  white-space: nowrap;
}
.hero-badge-icon {
  font-size: 28px;
  font-family: Georgia, serif;
  line-height: .8;
}
.hero-note {
  margin: 7px 0 0;
  color: rgba(255, 255, 255, .78);
  font-size: 12px;
  font-style: italic;
}

/* ---------- Page hero (Stock / Contact) ---------- */
.page-hero {
  margin: 18px auto 0;
  max-width: calc(var(--shell) + 80px);
  padding: 0 20px;
}
.page-hero-frame {
  border-radius: var(--radius);
  background: var(--sky) center/cover no-repeat;
  min-height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.page-hero-frame::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(20, 20, 15, .25);
}
.page-hero-title {
  position: relative;
  z-index: 2;
  color: #fff;
  font-size: clamp(34px, 5vw, 56px);
  margin: 0;
  text-align: center;
  padding: 0 20px;
}

/* ---------- Discover / model cards ---------- */
.discover {
  background: var(--soft-white);
  border-radius: 32px;
  padding: 30px 32px 28px;
  text-align: center;
}
.discover-head {
  margin: 0;
  font-size: clamp(28px, 3vw, 34px);
}
.discover-sub {
  margin: 2px 0 0;
  color: var(--ink);
  font-size: 20px;
  line-height: 1.3;
}
.discover-car {
  width: min(100%, 430px);
  height: 250px;
  margin: 18px auto 14px;
  object-fit: contain;
}
.discover-models {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
.model-card {
  min-height: 258px;
  background: rgba(255, 255, 255, .9);
  border-radius: 20px;
  padding: 18px 22px 20px;
  text-align: center;
  display: flex;
  flex-direction: column;
}
.model-card h3 {
  margin: 0 0 6px;
  font-family: var(--body);
  font-size: 19px;
  font-weight: 400;
  letter-spacing: -.03em;
}
.model-card h3 strong { font-weight: 700; }
.model-card .model-year { color: var(--ink); font-weight: 400; }
.model-blurb {
  max-width: 320px;
  min-height: 34px;
  margin: 0 auto;
  color: var(--ink);
  font-size: 11px;
  line-height: 1.45;
}
.model-specs {
  display: grid;
  gap: 13px;
  width: min(100%, 240px);
  margin: 15px auto 18px;
  padding: 0;
  list-style: none;
  color: var(--muted);
  font-size: 15px;
  text-align: left;
}
.model-specs li {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
}
.model-specs strong { color: var(--ink); font-weight: 700; }
.model-spec-icon { width: 20px; height: 20px; color: var(--ink); }
.model-price {
  margin: auto 0 10px;
  font-family: var(--body);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.2;
}
.discover .btn-ink {
  min-height: 32px;
  border-radius: 8px;
  padding: 7px 14px;
  font-size: 11px;
}
.discover-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  margin-top: 20px;
}
.discover-more {
  font-size: 11px;
  text-underline-offset: 3px;
}
.discover-download {
  border: 1px solid rgba(20, 20, 15, .14);
  border-radius: 9px;
  background: rgba(255, 255, 255, .72);
  padding: 8px 14px;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
}
.discover-fineprint {
  margin: 12px 0 0;
  color: rgba(20, 20, 15, .68);
  font-size: 10px;
  font-style: italic;
  line-height: 1.45;
}

/* ---------- Precious moments ---------- */
.moments-section { margin-top: 24px; }
.moments-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}
.moments-copy {
  display: flex;
  flex-direction: column;
  min-height: 738px;
  padding: 32px;
  border-radius: 38px;
  background: #ead8d2;
}
.moments-card-media {
  width: 100%;
  aspect-ratio: 1.62 / 1;
  border-radius: 22px;
  object-fit: cover;
}
.moments-copy h2 {
  margin: 38px 32px 0;
  font-family: var(--body);
  font-size: clamp(23px, 2.15vw, 27px);
  font-weight: 700;
  letter-spacing: -.025em;
  line-height: 1.2;
}
.moments-copy p {
  max-width: 440px;
  margin: 78px 0 0;
  font-size: 18px;
  line-height: 1.42;
}
.moments-cta {
  width: 100%;
  min-height: 40px;
  margin-top: auto;
  border-radius: 9px;
  padding: 10px 16px;
  font-size: 12px;
}
.moments-feature-media {
  width: 100%;
  height: 100%;
  min-height: 738px;
  border-radius: 38px;
  object-fit: cover;
}

/* ---------- Our legacy ---------- */
.legacy-section { margin-top: 24px; }
.legacy-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}
.legacy-media {
  width: 100%;
  min-height: 615px;
  height: 100%;
  border-radius: 34px;
  object-fit: cover;
}
.legacy-copy {
  position: relative;
  z-index: 0;
  display: flex;
  flex-direction: column;
  min-height: 615px;
  overflow: hidden;
  padding: 32px;
  border-radius: 34px;
  background: #b9dce5;
}
.legacy-decoration {
  position: absolute;
  z-index: -1;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.legacy-decoration span {
  position: absolute;
  display: block;
  border: 28px solid rgba(255, 255, 255, .17);
  border-radius: 50%;
}
.legacy-decoration span:nth-child(1) {
  width: 270px;
  height: 205px;
  top: -105px;
  left: 114px;
  transform: rotate(20deg);
}
.legacy-decoration span:nth-child(2) {
  width: 72px;
  height: 72px;
  top: 42px;
  right: 54px;
}
.legacy-decoration span:nth-child(3) {
  width: 235px;
  height: 270px;
  top: 130px;
  right: -122px;
  transform: rotate(-25deg);
}
.legacy-copy h2,
.legacy-body,
.legacy-cta { position: relative; z-index: 1; }
.legacy-copy h2 {
  margin: 0;
  font-family: var(--heading);
  font-size: clamp(34px, 3.2vw, 42px);
  font-weight: 700;
  line-height: 1;
  text-align: center;
}
.legacy-body {
  margin-top: 86px;
  font-size: 18px;
  line-height: 1.42;
}
.legacy-body p { margin: 0; }
.legacy-body p + p { margin-top: 26px; }
.legacy-cta {
  align-self: center;
  min-height: 40px;
  margin-top: auto;
  border-radius: 9px;
  padding: 10px 16px;
  font-size: 12px;
}

/* ---------- Customization ---------- */
.customization-section { margin-top: 24px; }
.customization-card {
  position: relative;
  min-height: 520px;
  aspect-ratio: 1.6 / 1;
  overflow: hidden;
  border-radius: 40px;
  background: #d9d4cc;
  isolation: isolate;
}
.customization-media {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.customization-overlay {
  position: absolute;
  z-index: 1;
  inset: 0;
  overflow: hidden;
  background: rgba(11, 11, 10, .66);
  opacity: 0;
  transition: opacity .35s ease;
  pointer-events: none;
}
.customization-card:hover .customization-overlay,
.customization-card:focus-within .customization-overlay,
.customization-card.is-revealed .customization-overlay { opacity: 1; }
.customization-tags { position: absolute; inset: 0; }
.configuration-tag {
  position: absolute;
  display: flex;
  flex-direction: column;
  gap: 9px;
  min-width: 170px;
  padding: 17px;
  border-radius: 16px;
  color: #11110f;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .25s ease, transform .3s ease;
}
.customization-card:hover .configuration-tag,
.customization-card:focus-within .configuration-tag,
.customization-card.is-revealed .configuration-tag {
  opacity: 1;
  transform: translateY(0);
}
.configuration-tag::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -48px;
  width: 24px;
  height: 24px;
  border: 5px solid rgba(255, 255, 255, .45);
  border-radius: 50%;
  background: var(--tag-color);
  box-shadow: 0 0 0 1px rgba(20, 20, 15, .26);
  transform: translateX(-50%);
}
.configuration-tag strong {
  font-family: var(--body);
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
}
.configuration-tag span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
}
.config-swatch {
  width: 20px;
  height: 20px;
  border: 2px solid rgba(20, 20, 15, .12);
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, .5);
}
.swatch-orange { background: var(--sea-blue); }
.swatch-black { background: var(--ink); }
.swatch-white { background: #fff; }
.tag-body {
  --tag-color: var(--sand);
  top: 37%;
  left: 12%;
  background: var(--sand);
}
.tag-seatbelt {
  --tag-color: var(--limestone);
  top: 29%;
  left: 38%;
  background: var(--limestone);
}
.tag-bimini {
  --tag-color: var(--sky-blue);
  top: 18%;
  left: 62%;
  background: var(--sky-blue);
}
.tag-seat {
  --tag-color: var(--brushed-silver);
  top: 47%;
  left: 72%;
  background: var(--brushed-silver);
}
.customization-copy {
  position: absolute;
  right: 30px;
  bottom: 88px;
  left: 30px;
  color: #fff;
  text-align: center;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .25s ease .08s, transform .3s ease .08s;
}
.customization-card:hover .customization-copy,
.customization-card:focus-within .customization-copy,
.customization-card.is-revealed .customization-copy {
  opacity: 1;
  transform: translateY(0);
}
.customization-copy h2 {
  margin: 0;
  font-family: var(--heading);
  font-size: clamp(38px, 4vw, 54px);
  font-weight: 700;
  line-height: 1;
}
.customization-copy p {
  margin: 18px 0 0;
  font-family: 'Roboto Condensed', var(--display);
  font-size: clamp(18px, 2.2vw, 28px);
  font-weight: 600;
  line-height: 1.15;
}
.customization-cta {
  position: absolute;
  z-index: 2;
  bottom: 25px;
  left: 50%;
  width: min(40%, 410px);
  min-height: 40px;
  border-radius: 9px;
  padding: 10px 16px;
  font-size: 12px;
  transform: translateX(-50%);
}

/* ---------- Hospitality partners ---------- */
.partners-section {
  margin-top: 74px;
  padding: 0 0 84px;
  text-align: center;
}
.partners-title {
  margin: 0;
  font-family: var(--body);
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -.025em;
}
.partners-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-inline: auto;
}
.partners-row--top {
  max-width: 1010px;
  margin-top: 57px;
}
.partners-row--bottom {
  max-width: 660px;
  margin-top: 37px;
}
.partner-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 150px;
  color: #161616;
}
.partner-wordmark {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  line-height: 1;
}
.partner-wordmark > span { display: block; }
.partner-wordmark small {
  display: block;
  margin-top: 4px;
  font-size: 7px;
  font-weight: 600;
  letter-spacing: .12em;
}
.partner-iconic-house { gap: 12px; }
.partner-icon {
  position: relative;
  width: 40px;
  height: 42px;
  border: 1.5px solid currentColor;
  border-bottom: 0;
  border-radius: 22px 22px 0 0;
}
.partner-icon::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 13px;
  width: 12px;
  height: 23px;
  border: 1.5px solid currentColor;
}
.partner-icon::after {
  content: 'H';
  position: absolute;
  top: 14px;
  left: 16px;
  font-family: Georgia, serif;
  font-size: 13px;
}
.partner-iconic-house .partner-wordmark {
  align-items: flex-start;
  font-size: 21px;
  font-weight: 700;
  letter-spacing: .13em;
  line-height: .84;
}
.partner-maisons-pariente .partner-wordmark {
  position: relative;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .095em;
}
.partner-maisons-pariente .partner-wordmark::before {
  content: '✺';
  position: absolute;
  top: -22px;
  left: 50%;
  color: #272727;
  font-size: 29px;
  transform: translateX(-50%);
}
.partner-beauvallon { color: #202938; }
.partner-beauvallon .partner-wordmark {
  font-family: Georgia, serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .12em;
}
.partner-beauvallon .partner-wordmark::before {
  content: '✥';
  margin-bottom: 5px;
  font-size: 22px;
}
.partner-canopy { color: var(--sea-blue); }
.partner-canopy .partner-wordmark {
  font-family: Georgia, serif;
  font-size: 37px;
  font-weight: 400;
  line-height: .7;
}
.partner-canopy .partner-wordmark small {
  margin-top: 10px;
  color: var(--sea-blue);
  font-family: var(--body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0;
}
.partner-eden-roc { color: #626364; }
.partner-eden-roc .partner-wordmark {
  font-family: Georgia, serif;
  font-size: 14px;
  letter-spacing: .14em;
}
.partner-eden-roc .partner-wordmark::before {
  content: '♢';
  margin-bottom: 5px;
  color: #394a78;
  font-size: 31px;
  line-height: .45;
}
.partner-zannier { color: #356eb8; }
.partner-zannier .partner-wordmark {
  font-family: Georgia, serif;
  font-size: 15px;
  letter-spacing: .11em;
}
.partner-zannier .partner-wordmark::before {
  content: '〰';
  height: 28px;
  margin-bottom: 3px;
  font-size: 48px;
  line-height: .5;
}
.partner-yaca { color: #29366e; }
.partner-yaca .partner-wordmark {
  font-family: Georgia, serif;
  font-size: 22px;
  letter-spacing: .04em;
  line-height: .68;
}
.partner-yaca .partner-wordmark small {
  margin-top: 9px;
  font-family: Georgia, serif;
  font-size: 12px;
  font-style: italic;
  letter-spacing: 0;
}

/* ---------- Hospitality appointment ---------- */
.hospitality-appointment-section { margin-top: 0; }
.hospitality-appointment {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));

  min-height: 383px;
  margin: 0 auto;
  overflow: hidden;
  border-radius: 32px;
}
.hospitality-appointment-copy {
  display: flex;
  flex-direction: column;
  padding: 26px 54px 38px;
  background: var(--sand);
}
.hospitality-appointment-copy h2 {
  margin: 0;
  font-family: var(--heading);
  font-size: clamp(33px, 3.3vw, 42px);
  font-weight: 700;
  line-height: 1.05;
}
.hospitality-appointment-body {
  margin-top: 58px;
  font-size: 18px;
  line-height: 1.4;
}
.hospitality-appointment-body p { margin: 0; }
.hospitality-appointment-body p + p { margin-top: 26px; }
.hospitality-appointment-cta {
  align-self: center;
  min-height: 40px;
  margin-top: auto;
  border-radius: 9px;
  padding: 10px 16px;
  font-size: 12px;
}
.hospitality-appointment-media {
  width: 100%;
  height: 100%;
  min-height: 383px;
  object-fit: cover;
}

/* ---------- Serenity ---------- */
.serenity-section { margin-top: 24px; }
.serenity-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin: 0 auto;
}
.serenity-media {
  width: 100%;
  min-height: 615px;
  height: 100%;
  border-radius: 34px;
  object-fit: cover;
}
.serenity-copy {
  position: relative;
  z-index: 0;
  display: flex;
  flex-direction: column;
  min-height: 615px;
  overflow: hidden;
  padding: 32px;
  border-radius: 34px;
  background: #b9dce5;
}
.serenity-decoration {
  position: absolute;
  z-index: -1;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.serenity-decoration span {
  position: absolute;
  display: block;
  border: 28px solid rgba(255, 255, 255, .17);
  border-radius: 50%;
}
.serenity-decoration span:nth-child(1) {
  width: 270px;
  height: 205px;
  top: -105px;
  left: 114px;
  transform: rotate(20deg);
}
.serenity-decoration span:nth-child(2) {
  width: 72px;
  height: 72px;
  top: 42px;
  right: 54px;
}
.serenity-decoration span:nth-child(3) {
  width: 235px;
  height: 270px;
  top: 130px;
  right: -122px;
  transform: rotate(-25deg);
}
.serenity-copy h2,
.serenity-body,
.serenity-cta { position: relative; z-index: 1; }
.serenity-copy h2 {
  margin: 0;
  font-family: var(--heading);
  font-size: clamp(34px, 3.2vw, 42px);
  font-weight: 700;
  line-height: 1;
  text-align: center;
}
.serenity-body {
  margin-top: 86px;
  font-size: 18px;
  line-height: 1.42;
}
.serenity-body p { margin: 0; }
.serenity-body p + p { margin-top: 26px; }
.serenity-cta {
  align-self: center;
  min-height: 40px;
  margin-top: auto;
  border-radius: 9px;
  padding: 10px 16px;
  font-size: 12px;
}

/* ---------- Split sections (imagem + texto) ---------- */
.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  align-items: stretch;
}
.split-media {
  border-radius: var(--radius);
  min-height: 380px;
  background: var(--sand) center/cover no-repeat;
}
.split-copy {
  border-radius: var(--radius);
  padding: 44px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.split-copy h2 { font-size: 30px; margin-bottom: 14px; }
.split.is-flipped .split-media { order: 2; }

/* ---------- Specs grid ---------- */
.spec-card {
  background: var(--sky);
  border-radius: var(--radius-sm);
  padding: 26px;
  height: 100%;
}
.spec-card .spec-icon { font-size: 22px; }
.spec-card h3 { font-size: 17px; margin: 10px 0 6px; }
.spec-card p  { font-size: 14px; color: rgba(20,20,15,.72); margin: 0; }

/* ---------- Press ---------- */
.press-section { margin-top: 74px; }
.press-title {
  margin: 0;
  font-family: var(--heading);
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
}
.press-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  margin: 38px auto 0;
}
.press-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 218px;
  padding: 36px 24px 24px;
  border-radius: 36px;
  background: #b9dce5;
  text-align: center;
}
.press-card .press-name {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  color: #111;
}
.press-card p {
  margin: 27px 0 0;
  font-size: 13px;
  font-style: italic;
  line-height: 1.52;
}
.press-card--automobile-propre .press-name {
  min-height: 27px;
  padding: 7px 9px;
  background: #151515;
  color: #fff;
  font-family: var(--body);
  font-size: 9px;
  font-weight: 700;
}
.press-card--forbes .press-name {
  font-family: Georgia, serif;
  font-size: 38px;
  font-weight: 700;
}
.press-card--tech-eu .press-name {
  font-family: var(--display);
  font-size: 30px;
  font-weight: 700;
  letter-spacing: -.11em;
}
.press-card--tech-eu .press-name::first-letter { letter-spacing: -.08em; }
.press-card--trends .press-name {
  font-family: Georgia, serif;
  font-size: 31px;
  font-weight: 700;
  letter-spacing: -.1em;
  line-height: .8;
}
.press-card--trends .press-name::first-line { font-size: 11px; }
.press-card--trends .press-name { max-width: 105px; }

/* ---------- Performance ---------- */
.performance-section { margin-top: 74px; }
.performance-shell {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-height: 648px;
  margin: 0 auto;
  overflow: hidden;
  border-radius: 34px;
}
.performance-media {
  position: relative;
  min-height: 648px;
  overflow: hidden;
  background: var(--mediterranean-blue);
}
.performance-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.04);
  transition: opacity .35s ease, transform .45s ease, filter .35s ease;
}
.performance-image.is-active {
  z-index: 1;
  opacity: 1;
  transform: scale(1);
}
.performance-image--pleasure { filter: saturate(1.18) contrast(1.05); }
.performance-image--fast { filter: saturate(.92) brightness(1.06); }
.performance-panel {
  display: flex;
  flex-direction: column;
  min-height: 648px;
  padding: 32px;
  background: var(--limestone);
}
.performance-features {
  display: grid;
  gap: 9px;
}
.performance-feature {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  align-items: start;
  gap: 18px;
  min-height: 120px;
  padding: 18px 24px;
  border: 0;
  border-radius: 20px;
  background: transparent;
  color: rgba(20, 20, 15, .76);
  font-family: var(--body);
  text-align: left;
  cursor: pointer;
  transition: background .25s ease, color .25s ease;
}
.performance-feature.is-active,
.performance-feature:hover,
.performance-feature:focus-visible {
  min-height: 160px;
  background: rgba(255, 255, 255, .8);
  color: var(--ink);
  outline: 0;
}
.performance-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
}
.performance-icon svg {
  width: 32px;
  height: 32px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}
.performance-feature[data-performance-trigger="bolt"] .performance-icon svg { fill: currentColor; stroke-width: 1; }
.performance-feature-content {
  display: flex;
  flex-direction: column;
  gap: 21px;
}
.performance-feature-title {
  font-size: 27px;
  font-weight: 700;
  line-height: 1.1;
}
.performance-feature-description {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.32;
  white-space: pre-line;
}
.performance-cta {
  width: 100%;
  min-height: 40px;
  margin-top: auto;
  border-radius: 9px;
  padding: 10px 16px;
  font-size: 12px;
}

/* ---------- Comfort features ---------- */
.comfort-section { margin-top: 24px; }
.comfort-shell {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-height: 678px;
  margin: 0 auto;
  overflow: hidden;
  border-radius: 34px;
}
.comfort-panel {
  display: flex;
  flex-direction: column;
  min-height: 678px;
  padding: 32px;
  background: var(--sky-blue);
}
.comfort-features {
  display: grid;
  gap: 9px;
}
.comfort-feature {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  align-items: start;
  gap: 18px;
  min-height: 132px;
  padding: 19px 24px;
  border: 0;
  border-radius: 20px;
  background: transparent;
  color: rgba(20, 20, 15, .76);
  font-family: var(--body);
  text-align: left;
  cursor: pointer;
  transition: background .25s ease, color .25s ease;
}
.comfort-feature.is-active,
.comfort-feature:hover,
.comfort-feature:focus-visible {
  min-height: 184px;
  background: rgba(255, 255, 255, .79);
  color: var(--ink);
  outline: 0;
}
.comfort-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
}
.comfort-icon svg {
  width: 32px;
  height: 32px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}
.comfort-feature-content {
  display: flex;
  flex-direction: column;
  gap: 21px;
}
.comfort-feature-title {
  font-size: 27px;
  font-weight: 700;
  line-height: 1.1;
}
.comfort-feature-description {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.3;
}
.comfort-cta {
  width: 100%;
  min-height: 40px;
  margin-top: auto;
  border-radius: 9px;
  padding: 10px 16px;
  font-size: 12px;
}
.comfort-media {
  position: relative;
  min-height: 678px;
  overflow: hidden;
  background: var(--mediterranean-blue);
}
.comfort-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.04);
  transition: opacity .35s ease, transform .45s ease, filter .35s ease;
}
.comfort-image.is-active {
  z-index: 1;
  opacity: 1;
  transform: scale(1);
}
.comfort-image--bimini { filter: saturate(.85) brightness(1.12); }
.comfort-image--storage { filter: saturate(1.15) contrast(1.04); }

/* ---------- FAQ ---------- */
.faq-section { margin-top: 24px; }
.faq {

  min-height: 594px;
  margin: 0 auto;
  padding: 52px 32px 42px;
  border-radius: 40px;
  background: var(--mediterranean-blue);
  color: #fff;
  text-align: center;
}
.faq h2 {
  margin: 0 0 24px;
  color: #fff;
  font-family: var(--body);
  font-size: clamp(42px, 4.2vw, 50px);
  font-weight: 700;
  letter-spacing: -.04em;
  line-height: 1;
}
.faq-item {
  width: min(100%, 500px);
  margin: 0 auto;
}
.faq-q {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  width: 100%;
  padding: 10px 0;
  border: 0;
  background: none;
  color: #fff;
  font-family: 'Roboto Condensed', var(--display);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  cursor: pointer;
}
.faq-q::before {
  content: '⌄';
  display: inline-block;
  font-family: var(--body);
  font-size: 18px;
  font-weight: 600;
  line-height: 1;
  transition: transform .18s ease;
}
.faq-item.is-open .faq-q::before { transform: rotate(180deg); }
.faq-a {
  display: none;
  padding: 2px 22px 12px;
  color: rgba(255, 255, 255, .9);
  font-size: 14px;
  line-height: 1.45;
}
.faq-item.is-open .faq-a { display: block; }
.faq-contact {
  margin: 24px 0 0;
  color: #fff;
  font-size: 18px;
  line-height: 1.6;
}
.faq-contact a {
  display: block;
  color: #fff;
  text-underline-offset: 3px;
}

/* ---------- Stock cards ---------- */
.car-card {
  background: var(--soft-white);
  border-radius: var(--radius);
  padding: 22px;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.car-card-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}
.car-card-head h2 { font-size: 20px; margin: 0; }
.car-price { font-family: var(--display); font-weight: 700; white-space: nowrap; }
.car-meta { font-size: 13px; color: var(--muted); margin-top: 6px; }
.car-meta span { color: var(--ink); font-weight: 600; }
.car-photo {
  border-radius: var(--radius-sm);
  background: var(--sand);
  margin: 16px 0;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  width: 100%;
}
.car-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-align: center;
  font-size: 12px;
}
.car-stats div { padding: 12px 6px; }
.car-stats div + div { border-left: 1px solid var(--line); }
.car-stats .stat-label { color: var(--muted); display: block; }
.car-stats .stat-value { font-weight: 600; }
.car-specs { font-size: 13px; padding: 16px 0; }
.car-specs h3 {
  font-size: 13px;
  text-transform: none;
  margin-bottom: 8px;
}
.car-specs ul { list-style: none; padding: 0; margin: 0; }
.car-specs li { padding: 2px 0; color: rgba(20,20,15,.78); }
.car-actions { margin-top: auto; }
.car-more {
  display: block;
  text-align: center;
  font-size: 13px;
  margin-top: 10px;
}
.badge-sold {
  background: var(--ink);
  color: #fff;
  border-radius: 999px;
  padding: 4px 12px;
  font-size: 11px;
  font-family: var(--display);
  font-weight: 600;
}

/* ---------- Car detail ---------- */
.detail-gallery {
  background: var(--soft-white);
  border-radius: var(--radius);
  padding: 18px;
}
.detail-main {
  border-radius: var(--radius-sm);
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  background: var(--sand);
}
.detail-thumbs {
  display: flex;
  gap: 10px;
  margin-top: 12px;
  overflow-x: auto;
  padding-bottom: 4px;
}
.detail-thumb {
  width: 92px;
  height: 66px;
  object-fit: cover;
  border-radius: 10px;
  cursor: pointer;
  border: 2px solid transparent;
  flex: 0 0 auto;
}
.detail-thumb.is-active { border-color: var(--ink); }
.detail-panel { background: var(--sage); border-radius: var(--radius); padding: 34px; }
.detail-price { font-family: var(--display); font-weight: 700; font-size: 30px; }
.detail-table { width: 100%; font-size: 14px; }
.detail-table th {
  text-align: left;
  font-weight: 500;
  color: rgba(20,20,15,.7);
  padding: 8px 0;
  width: 46%;
}
.detail-table td { padding: 8px 0; font-weight: 600; }
.detail-table tr + tr { border-top: 1px solid rgba(20,20,15,.15); }

/* ---------- Formularios ---------- */
.form-shell { background: var(--sage); border-radius: var(--radius); padding: 44px; }
.field {
  width: 100%;
  border: 0;
  border-radius: 999px;
  padding: 13px 18px;
  font-family: var(--body);
  font-size: 14px;
  background: var(--soft-white);
  color: var(--ink);
}
textarea.field { border-radius: 18px; min-height: 150px; resize: vertical; }
.field::placeholder { color: #9a988d; }
select.field { appearance: none; }

.contact-media {
  width: 100%;
  align-self: flex-start;
  aspect-ratio: 2 / 3;
  min-height: 0;
  border-radius: var(--radius);
  background: var(--sand) center / 100% auto no-repeat;
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 34px;
  overflow: hidden;
}
.contact-media::after,
.contact-media-inner { display: none; }

.contact-page-content {
  position: relative;
  z-index: 3;
  margin-top: var(--page-top-space);
}
.info-row { margin-bottom: 14px; }
.info-row strong { display: block; font-size: 13px; }
.info-row span { font-size: 14px; }
.contact-attachments { margin-top: 8px; padding: 18px; border: 1px solid var(--line); background: var(--soft-white); }
.contact-attachments > label { display: block; margin-bottom: 7px; font-size: 13px; font-weight: 600; }
.contact-attachments > p { margin: 8px 0 0; }
.contact-attachments input[type="file"] { min-width: 0; margin-top: 12px; padding: 10px; border-radius: var(--radius); }
.contact-attachments input::file-selector-button { margin-right: 10px; padding: 8px 12px; border: 1px solid var(--line); background: var(--cream); color: var(--ink); font: inherit; cursor: pointer; }
.contact-attachments-error { color: #9c2d24; font-size: 12px; }
.contact-car-picker {
  position: relative;
  min-width: 0;
  margin: 2px 0 0;
  padding: 0;
  border: 0;
}
.contact-car-picker.is-open { z-index: 20; }
.contact-car-picker > legend {
  margin: 0 0 11px;
  padding: 0;
  color: #4b575a;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .06em;
  line-height: 1.35;
}
.contact-car-native-select { width: 100%; }
.contact-car-picker.is-enhanced .contact-car-native-select {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
}
.contact-car-combobox { position: relative; }
.contact-car-trigger {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr) auto;
  width: 100%;
  min-height: 68px;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(28, 45, 51, .2);
  border-radius: 14px;
  background: rgba(255, 254, 250, .9);
  color: var(--ink);
  text-align: left;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.contact-car-trigger:hover,
.contact-car-trigger[aria-expanded="true"] { border-color: var(--sea); }
.contact-car-trigger:focus-visible,
.contact-car-result:focus-visible,
.contact-car-search:focus-visible { outline: 2px solid var(--sea); outline-offset: 3px; }
.contact-car-trigger-media,
.contact-car-result-media {
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #d9e2e3;
  color: var(--sea);
  font-family: var(--heading);
  font-size: 19px;
  font-weight: 500;
  letter-spacing: -.06em;
  line-height: 1;
}
.contact-car-trigger-media { width: 62px; height: 66px; }
.contact-car-trigger-media img,
.contact-car-result-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.contact-car-trigger-copy,
.contact-car-result-copy { display: grid; min-width: 0; align-content: center; gap: 3px; }
.contact-car-trigger-copy { padding: 10px 14px; }
.contact-car-trigger-copy strong,
.contact-car-result-copy strong { overflow: hidden; font-family: var(--body); font-size: 13px; font-weight: 600; letter-spacing: -.01em; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.contact-car-trigger-copy small,
.contact-car-result-copy small { overflow: hidden; color: var(--muted); font-size: 9px; font-weight: 600; letter-spacing: .08em; line-height: 1.2; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.contact-car-trigger-icon { align-self: center; padding: 14px 19px 18px 7px; color: var(--sea); font-size: 20px; line-height: 1; transition: transform .18s ease; }
.contact-car-trigger[aria-expanded="true"] .contact-car-trigger-icon { transform: rotate(180deg); }
.contact-car-menu {
  position: absolute;
  z-index: 30;
  top: calc(100% + 7px);
  right: 0;
  left: 0;
  padding: 12px;
  border: 1px solid rgba(28, 45, 51, .2);
  border-radius: 14px;
  background: #fffefa;
  box-shadow: 0 16px 34px rgba(28, 45, 51, .16);
}
.contact-car-menu:not(.is-open) { display: none; }
.contact-car-search {
  display: block;
  width: 100%;
  min-height: 43px;
  padding: 10px 13px;
  border: 1px solid rgba(28, 45, 51, .18);
  border-radius: 9px;
  background: #fbfaf7;
  color: var(--ink);
  font-family: var(--body);
  font-size: 13px;
}
.contact-car-results { max-height: min(370px, 48vh); margin: 10px 0 0; padding: 0; overflow-y: auto; list-style: none; }
.contact-car-results li + li { border-top: 1px solid rgba(28, 45, 51, .1); }
.contact-car-result {
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr);
  width: 100%;
  min-height: 58px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  text-align: left;
  transition: background .16s ease;
}
.contact-car-result:hover,
.contact-car-result[aria-selected="true"] { background: #edf4f6; }
.contact-car-result-media { width: 50px; height: 58px; font-size: 16px; }
.contact-car-result-copy { padding: 8px 12px; }
.contact-car-empty { margin: 15px 2px 3px; color: var(--muted); font-size: 13px; }
@media (max-width: 640px) {
  .contact-car-trigger { grid-template-columns: 56px minmax(0, 1fr) auto; min-height: 62px; }
  .contact-car-trigger-media { width: 56px; height: 60px; }
  .contact-car-menu { padding: 9px; }
  .contact-car-results { max-height: 42vh; }
}

/* ---------- Newsletter ---------- */
.newsletter-anchor { margin: var(--section-space) 0; }
.newsletter-section { margin: 0 auto; }
.newsletter {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(32px, 5vw, 72px);
  min-height: 0;
  margin: 0 auto;
  padding: clamp(38px, 5vw, 72px);
  border-radius: 38px;
  background: var(--sand);
}
.newsletter-copy { display: grid; align-content: start; gap: 20px; min-width: 0; }
.newsletter-copy h2 {
  margin: 0;
  font-family: var(--heading);
  font-size: 26px;
  font-weight: 700;
  line-height: 1;
  text-align: left;
}
.newsletter-copy > p {
  max-width: 380px;
  margin: 0;
  font-size: 16px;
  line-height: 1.45;
}
.newsletter .divider {
  width: 76px;
  height: 1px;
  margin: 4px 0 0;
  background: rgba(20, 20, 15, .75);
}
.follow-row { display: flex; align-items: center; gap: 18px; font-size: 14px; }
.newsletter-subscribe { min-width: 0; align-self: center; }
.subscribe-shell {
  display: flex;
  align-items: center;
  padding: 3px 3px 3px 14px;
  border: 1px solid var(--brushed-silver);
  border-radius: 14px;
  background: var(--soft-white);
}
.subscribe-input {
  flex: 1;
  min-width: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-size: 14px;
  padding: 8px 0;
}
.subscribe-input::placeholder { color: var(--muted); opacity: 1; }
.subscribe-input:focus { outline: none; }
.subscribe-btn {
  min-height: 31px;
  border-radius: 10px;
  padding: 7px 17px;
  font-size: 12px;
}
.newsletter-terms {
  margin: 12px 0 0;
  font-size: 9px;
  line-height: 1.35;
}
.newsletter .social-icons { gap: 12px; }
.newsletter .social-icons a { width: 22px; height: 22px; }

/* Titulos editoriais inspirados na assinatura manuscrita da marca. */
.hero-word,
.discover-head,
.moments-copy h2,
.legacy-copy h2,
.customization-copy h2,
.hospitality-appointment-copy h2,
.serenity-copy h2,
.press-title,
.newsletter-copy h2,
.partners-title {
  font-family: var(--script);
  font-weight: 400;
  letter-spacing: 0;
}
.hero-word {
  font-size: clamp(76px, 7vw, 108px);
  letter-spacing: .08em;
  padding-left: .08em;
  line-height: .8;
}

.social-icons { display: flex; gap: 10px; }
.social-icons a {
  width: 34px; height: 34px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ink);
  text-decoration: none;
  transition: transform .16s ease;
}
.social-icons a:hover { transform: translateY(-2px); }

/* ---------- Footer ---------- */
.site-footer {
  min-height: 360px;
  margin-top: 56px;
  padding: 16px 0 72px;
  border-radius: 42px 42px 0 0;
  background: #1c1c1c;
  color: #fff;
}
.footer-logo {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: max-content;
  margin: 0 auto;
  color: #fff;
  text-decoration: none;
}
.footer-mark {
  display: grid;
  grid-template-columns: repeat(2, 24px);
  grid-template-rows: repeat(2, 24px);
  gap: 2px;
  width: 50px;
  height: 50px;
}
.footer-mark i {
  display: block;
  background: #fff;
}
.footer-mark i:nth-child(1) { border-radius: 8px 10px 8px 10px; }
.footer-mark i:nth-child(2) { border-radius: 10px 8px 10px 8px; }
.footer-mark i:nth-child(3) { border-radius: 10px 8px 10px 8px; }
.footer-mark i:nth-child(4) { border-radius: 8px 10px 8px 10px; }
.footer-word {
  margin-top: 4px;
  font-family: var(--display);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .45em;
  line-height: 1;
}
.footer-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(120px, 1fr));
  gap: 70px;
  max-width: 660px;
  margin: 18px auto 19px;
}
.footer-column h3 {
  margin: 0 0 14px;
  font-family: var(--heading);
  font-size: 18px;
  font-weight: 700;
}
.footer-column a {
  display: block;
  padding: 3px 0;
  color: rgba(255, 255, 255, .74);
  font-family: 'Roboto Condensed', var(--body);
  font-size: 15px;
  line-height: 1.45;
  text-decoration: none;
}
.footer-column a:hover { color: #fff; }
.footer-rule {
  margin: 0;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, .85);
}
.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 24px;
  color: rgba(255, 255, 255, .9);
  font-size: 12px;
}
.footer-legal,
.footer-social {
  display: flex;
  align-items: center;
  gap: 12px;
}
.footer-legal a {
  color: inherit;
  text-decoration: none;
}
.footer-legal a:hover { text-decoration: underline; text-underline-offset: 3px; }
.footer-separator {
  width: 1px;
  height: 18px;
  background: rgba(255, 255, 255, .85);
}
.footer-social { gap: 20px; }
.footer-social .social-icons { gap: 14px; }
.footer-social .social-icons a {
  width: 18px;
  height: 18px;
  color: #fff;
}
.footer-social .social-icons svg { width: 18px; height: 18px; }

/* ---------- Responsivo ---------- */
@media (max-width: 1100px) {
  .nav-primary { gap: 13px; }
  .nav-link { font-size: 13px; }
  .nav-cta { padding-inline: 13px; }
}

@media (max-width: 991px) {
  .split { grid-template-columns: 1fr; }
  .split.is-flipped .split-media { order: 0; }
  .split-media { min-height: 260px; }
  .moments-grid,
  .legacy-grid { grid-template-columns: 1fr; }
  .moments-copy,
  .legacy-copy,
  .serenity-copy { min-height: 0; }
  .moments-feature-media,
  .legacy-media,
  .serenity-media { min-height: 0; aspect-ratio: 4 / 3; }
  .customization-card { min-height: 0; }
  .serenity-grid { grid-template-columns: 1fr; }
  .press-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 620px;
  }
  .performance-shell { grid-template-columns: 1fr; }
  .performance-media { min-height: 0; aspect-ratio: 4 / 3; }
  .performance-panel { min-height: 0; }
  .comfort-shell { grid-template-columns: 1fr; }
  .comfort-panel { min-height: 0; }
  .comfort-media { min-height: 0; aspect-ratio: 4 / 3; }
  .block, .split-copy, .discover, .faq, .form-shell { padding: 30px; }
  .hero-frame { min-height: 100svh; }
}

@media (max-width: 767px) {
  .site-nav { top: 8px; padding: 8px 12px 0; }
  .nav-toggle { display: flex; }
  .nav-pill { flex-wrap: wrap; border-radius: 16px; padding: 8px 12px 8px 18px; }
  .nav-links {
    display: none;
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    padding-top: 10px;
  }
  .nav-links.is-open { display: flex; }
  .nav-primary,
  .nav-actions {
    align-items: stretch;
    flex-direction: column;
    gap: 4px;
  }
  .nav-actions { margin-left: 0; }
  .nav-link { padding: 9px 4px; font-size: 14px; }
  .nav-cta { margin-top: 6px; }
  .nav-language { padding: 8px 4px; }
  .hero-inner { transform: translateY(74px); }
  .hero-word {
    font-size: clamp(66px, 19vw, 84px);
    letter-spacing: .06em;
    padding-left: .06em;
  }
  .hero-sub { font-size: 14px; }
  .hero-benefits { margin-top: 32px; }
  .hero-badges {
    grid-template-columns: 1fr;
    width: min(100%, 360px);
    min-height: 0;
    row-gap: 8px;
    column-gap: 0;
    place-items: center;
    padding: 14px 18px;
  }
  .hero-badge { font-size: 13px; }
  .hero-badge-icon { font-size: 22px; }
  .discover { padding: 24px 18px; }
  .discover-sub { font-size: 18px; }
  .discover-car { height: 210px; margin-block: 14px 12px; }
  .discover-models { grid-template-columns: 1fr; gap: 14px; }
  .model-card { min-height: 0; }
  .moments-section { margin-top: 16px; }
  .moments-grid { gap: 16px; }
  .moments-copy {
    min-height: 0;
    padding: 20px;
    border-radius: 26px;
  }
  .moments-card-media { border-radius: 16px; }
  .moments-copy h2 { margin: 28px 16px 0; font-size: 23px; }
  .moments-copy p { margin-top: 42px; font-size: 16px; }
  .moments-cta { margin-top: 42px; }
  .moments-feature-media {
    min-height: 440px;
    border-radius: 26px;
  }
  .legacy-section { margin-top: 16px; }
  .legacy-grid { gap: 16px; }
  .legacy-media {
    min-height: 420px;
    border-radius: 26px;
  }
  .legacy-copy {
    min-height: 0;
    padding: 24px 20px;
    border-radius: 26px;
  }
  .legacy-copy h2 { font-size: 35px; }
  .legacy-body { margin-top: 56px; font-size: 16px; }
  .legacy-body p + p { margin-top: 22px; }
  .legacy-cta { margin-top: 42px; }
  .customization-section { margin-top: 16px; }
  .customization-card {
    min-height: 560px;
    aspect-ratio: auto;
    border-radius: 26px;
  }
  .configuration-tag {
    min-width: 130px;
    gap: 6px;
    padding: 10px;
    border-radius: 12px;
  }
  .configuration-tag strong { font-size: 16px; }
  .configuration-tag span { gap: 6px; font-size: 10px; }
  .config-swatch { width: 14px; height: 14px; }
  .configuration-tag::after {
    bottom: -34px;
    width: 18px;
    height: 18px;
    border-width: 4px;
  }
  .tag-body { top: 31%; left: 4%; }
  .tag-seatbelt { top: 21%; left: 36%; }
  .tag-bimini { top: 6%; left: 54%; }
  .tag-seat { top: 43%; left: 58%; }
  .customization-copy { right: 18px; bottom: 84px; left: 18px; }
  .customization-copy h2 { font-size: 36px; }
  .customization-copy p { margin-top: 12px; font-size: 18px; }
  .customization-cta { width: calc(100% - 40px); }
  .partners-section { margin-top: 56px; padding-bottom: 62px; }
  .partners-title { font-size: 23px; }
  .partners-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px 18px;
    width: min(100%, 420px);
  }
  .partners-row--top { margin-top: 42px; }
  .partners-row--bottom { margin-top: 34px; }
  .partners-row--bottom .partner-mark:last-child { grid-column: 1 / -1; }
  .partner-mark { min-width: 0; }
  .partner-iconic-house .partner-wordmark { font-size: 17px; }
  .partner-icon { transform: scale(.82); transform-origin: right center; }
  .partner-maisons-pariente .partner-wordmark { font-size: 12px; }
  .partner-beauvallon .partner-wordmark { font-size: 13px; }
  .partner-canopy .partner-wordmark { font-size: 30px; }
  .hospitality-appointment {
    grid-template-columns: 1fr;
    border-radius: 26px;
  }
  .hospitality-appointment-copy { min-height: 430px; padding: 24px 26px; }
  .hospitality-appointment-copy h2 { font-size: 34px; }
  .hospitality-appointment-body { margin-top: 42px; font-size: 16px; }
  .hospitality-appointment-body p + p { margin-top: 20px; }
  .hospitality-appointment-cta { margin-top: 38px; }
  .hospitality-appointment-media { min-height: 290px; }
  .serenity-section { margin-top: 16px; }
  .serenity-grid { gap: 16px; }
  .serenity-media {
    min-height: 420px;
    border-radius: 26px;
  }
  .serenity-copy {
    min-height: 0;
    padding: 24px 20px;
    border-radius: 26px;
  }
  .serenity-copy h2 { font-size: 35px; }
  .serenity-body { margin-top: 56px; font-size: 16px; }
  .serenity-body p + p { margin-top: 22px; }
  .serenity-cta { margin-top: 42px; }
  .press-section { margin-top: 56px; }
  .press-title { font-size: 25px; }
  .press-grid {
    grid-template-columns: 1fr;
    gap: 16px;
    max-width: 360px;
    margin-top: 30px;
  }
  .press-card { min-height: 0; padding: 30px 24px; }
  .performance-section { margin-top: 56px; }
  .performance-shell { min-height: 0; border-radius: 26px; }
  .performance-media { min-height: 330px; }
  .performance-panel { min-height: 0; padding: 20px; }
  .performance-features { gap: 6px; }
  .performance-feature,
  .performance-feature.is-active,
  .performance-feature:hover,
  .performance-feature:focus-visible {
    min-height: 0;
    gap: 12px;
    padding: 16px;
    border-radius: 16px;
  }
  .performance-feature-content { gap: 12px; }
  .performance-feature-title { font-size: 21px; }
  .performance-feature-description { font-size: 15px; }
  .performance-cta { margin-top: 22px; }
  .comfort-section { margin-top: 16px; }
  .comfort-shell { min-height: 0; border-radius: 26px; }
  .comfort-panel { min-height: 0; padding: 20px; }
  .comfort-media { min-height: 330px; }
  .comfort-features { gap: 6px; }
  .comfort-feature,
  .comfort-feature.is-active,
  .comfort-feature:hover,
  .comfort-feature:focus-visible {
    min-height: 0;
    gap: 12px;
    padding: 16px;
    border-radius: 16px;
  }
  .comfort-feature-content { gap: 12px; }
  .comfort-feature-title { font-size: 21px; }
  .comfort-feature-description { font-size: 15px; }
  .comfort-cta { margin-top: 22px; }
  .faq-section { margin-top: 16px; }
  .faq {
    min-height: 0;
    padding: 40px 18px 32px;
    border-radius: 26px;
  }
  .faq h2 { margin-bottom: 20px; font-size: 42px; }
  .faq-q { gap: 10px; padding: 9px 0; font-size: 17px; }
  .faq-q::before { font-size: 16px; }
  .faq-a { padding-inline: 14px; }
  .faq-contact { margin-top: 20px; font-size: 16px; }
  .newsletter-anchor { margin: 48px 0; }
  .newsletter {
    grid-template-columns: 1fr;
    gap: 32px;
    min-height: 0;
    padding: 32px 24px;
    border-radius: 26px;
  }
  .newsletter-copy { gap: 18px; }
  .newsletter-copy h2 { font-size: 25px; text-align: left; }
  .newsletter-copy > p { margin: 0; font-size: 15px; }
  .newsletter .divider { margin: 2px 0 0; }
  .newsletter-subscribe { margin: 0; }
  .newsletter-terms { font-size: 9px; }
  .car-stats { font-size: 11px; }
  .site-footer {
    min-height: 0;
    margin-top: 56px;
    padding: 24px 0 32px;
    border-radius: 26px 26px 0 0;
  }
  .footer-mark {
    grid-template-columns: repeat(2, 20px);
    grid-template-rows: repeat(2, 20px);
    width: 42px;
    height: 42px;
  }
  .footer-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 36px;
    margin: 24px 0;
  }
  .footer-column h3 { font-size: 17px; }
  .footer-column a { font-size: 14px; }
  .footer-bottom {
    align-items: flex-start;
    flex-direction: column;
    gap: 20px;
    font-size: 11px;
  }
  .footer-legal { flex-wrap: wrap; gap: 9px; }
  .footer-separator { height: 14px; }
  .footer-social { gap: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}

/* ==================================================================
   ELAN lifestyle direction
   Photography is intentionally supplied as video / collection imagery.
   These surfaces are refined fallbacks until the commissioned Algarve
   photography is installed.
   ================================================================== */

body { background: var(--cream); }

.btn-ink,
.btn-outline-ink {
  min-height: 43px;
  border-radius: 0;
  padding: 12px 20px;
  font-family: var(--body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.btn-ink { background: var(--ink); color: #fff; }
.btn-ink:hover { background: var(--sea); }
.btn-outline-ink { border-color: currentColor; }

.site-nav { top: 12px; padding-top: 12px; }
.nav-pill {
  max-width: 1120px;
  min-height: 62px;
  padding: 9px 14px 9px 20px;
  border: 1px solid var(--polished-chrome);
  border-radius: 2px;
  background: rgba(255, 254, 250, .93);
  box-shadow: 0 8px 28px rgba(28, 45, 51, .10);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}
.nav-logo-mark {
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background: var(--sea);
}
.nav-logo-word {
  margin-top: 4px;
  font-family: var(--body);
  font-size: 8px;
  font-weight: 600;
  letter-spacing: .29em;
}
.nav-primary { gap: clamp(12px, 1.8vw, 24px); }
.nav-link {
  font-family: var(--body);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.nav-cta { min-height: 36px; padding: 9px 13px; border-radius: 0; font-size: 10px; }
.nav-language { font-size: 11px; font-weight: 500; letter-spacing: .08em; }

.home-page .site-nav { position: absolute; }
.hero-frame--elan {
  min-height: min(920px, 100svh);
  background:
    radial-gradient(circle at 73% 27%, rgba(255, 254, 250, .95) 0 7%, transparent 7.1%),
    linear-gradient(122deg, var(--sea-blue) 0%, var(--mediterranean-blue) 48%, var(--sky-blue) 100%);
}
.hero-frame--elan::after { background: rgba(14, 34, 43, .22); }
.hero-atmosphere { position: absolute; z-index: 1; inset: 0; overflow: hidden; pointer-events: none; }
.hero-atmosphere span { position: absolute; display: block; border: 1px solid rgba(248, 246, 241, .42); border-radius: 50%; }
.hero-atmosphere span:nth-child(1) { width: 62vw; height: 62vw; min-width: 680px; min-height: 680px; right: -24vw; bottom: -44vw; }
.hero-atmosphere span:nth-child(2) { width: 31vw; height: 31vw; min-width: 380px; min-height: 380px; right: 4vw; bottom: -18vw; }
.hero-atmosphere span:nth-child(3) { width: 9px; height: 9px; top: 30%; right: 19%; background: var(--cream); border: 0; }
.hero-inner {
  width: min(100% - 40px, 780px);
  margin-inline: auto;
  padding: 150px 0 72px;
  transform: none;
}
.hero-kicker,
.section-eyebrow,
.collection-card-eyebrow,
.lifestyle-card-eyebrow,
.contact-eyebrow {
  margin: 0;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .16em;
  line-height: 1.4;
  text-transform: uppercase;
}
.hero-title-lockup { max-width: 860px; margin: 17px auto 0; }
.hero-word {
  max-width: 680px;
  margin: 0 auto;
  padding: 0;
  font-family: var(--heading);
  font-size: clamp(74px, 10vw, 142px);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: .78;
  text-transform: none;
}
.hero-word--drawn { width: min(100%, 860px); max-width: none; line-height: 0; }
.hero-word--drawn svg { display: block; width: 100%; height: auto; overflow: visible; }
.hero-word--drawn text {
  fill: rgba(255, 254, 250, .96);
  stroke: rgba(255, 254, 250, .96);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.3px;
  font-family: var(--heading);
  font-size: 162px;
  font-weight: 500;
  letter-spacing: -5px;
  paint-order: stroke fill;
}
.hero-letter { fill: rgba(255, 254, 250, .96); }
.js .hero-word--drawn .hero-letter {
  fill: transparent;
  stroke-dasharray: 430;
  stroke-dashoffset: 430;
  animation: hero-letter-draw .58s var(--letter-delay) cubic-bezier(.65, 0, .35, 1) forwards, hero-letter-fill .3s calc(var(--letter-delay) + .42s) ease forwards;
}
.hero-sub { max-width: 460px; margin: 27px auto 0; font-size: 16px; font-weight: 400; line-height: 1.5; }
.hero-actions { margin-top: 31px; }
.hero-actions .btn-ink,
.hero-actions .btn-outline-ink { min-height: 43px; border-radius: 0; padding: 12px 18px; font-size: 10px; }
.hero-actions .btn-outline-ink { border-color: rgba(248, 246, 241, .82); background: transparent; color: #fff; }
.hero-actions .btn-outline-ink:hover { background: var(--cream); color: var(--ink); }

.elan-intro { margin-top: 148px; }
.elan-intro > .section-eyebrow { color: var(--sea); }
.elan-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(290px, .9fr);
  gap: clamp(48px, 10vw, 148px);
  align-items: end;
  margin-top: 26px;
  padding-bottom: 82px;
  border-bottom: 1px solid var(--line);
}
.elan-intro h2,
.section-heading h2,
.journal-heading h2,
.private-viewing h2,
.contact-title {
  margin: 0;
  font-family: var(--heading);
  font-weight: 500;
  letter-spacing: -.04em;
  line-height: .9;
}
.elan-intro h2 { font-size: clamp(54px, 6.5vw, 96px); }
.elan-intro-grid > div { max-width: 390px; padding-bottom: 4px; }
.elan-intro-grid p { margin: 0; font-size: 17px; line-height: 1.6; }
.elan-intro-grid p + p { margin-top: 20px; color: var(--muted); }

.elan-meaning-section {
  display: grid;
  grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr);
  gap: clamp(42px, 8vw, 126px);
  margin-top: 64px;
  padding: 74px 0 82px;
  border-bottom: 1px solid var(--line);
}
.elan-meaning-intro .section-eyebrow { color: var(--sea); }
.elan-meaning-intro h2 { margin: 17px 0 0; font-size: clamp(46px, 5.2vw, 76px); font-weight: 500; line-height: .9; }
.elan-meaning-content { align-self: end; }
.elan-meaning-statement { max-width: 510px; margin: 0; font-size: clamp(20px, 2.15vw, 29px); line-height: 1.24; }
.elan-meaning-words {
  display: flex;
  flex-wrap: wrap;
  gap: 9px 20px;
  max-width: 590px;
  margin: 33px 0 0;
  padding: 0;
  list-style: none;
}
.elan-meaning-words li {
  color: var(--sea);
  font-family: var(--heading);
  font-size: clamp(21px, 2.1vw, 29px);
  font-weight: 500;
  letter-spacing: -.025em;
  line-height: 1.1;
}
.elan-meaning-words li::after { content: '·'; margin-left: 20px; color: var(--brushed-silver); }
.elan-meaning-words li:last-child::after { content: ''; margin: 0; }

.elan-heritage-section {
  display: grid;
  grid-template-columns: minmax(230px, .62fr) minmax(0, 1.38fr);
  gap: clamp(46px, 10vw, 158px);
  margin-top: 122px;
  padding: clamp(45px, 7vw, 90px);
  background: var(--sky-blue);
}
.elan-heritage-mark { display: flex; flex-direction: column; justify-content: space-between; min-height: 250px; }
.elan-heritage-mark .section-eyebrow { color: var(--sea); }
.elan-heritage-mark span { color: var(--soft-white); font-family: var(--heading); font-size: clamp(88px, 12vw, 170px); font-weight: 500; letter-spacing: -.08em; line-height: .7; }
.elan-heritage-copy { align-self: center; max-width: 570px; }
.elan-heritage-copy h2 { margin: 0 0 31px; font-size: clamp(47px, 5vw, 72px); font-weight: 500; line-height: .9; }
.elan-heritage-copy p { margin: 0; font-size: 17px; line-height: 1.58; }
.elan-heritage-copy p + p { margin-top: 20px; color: rgba(28, 45, 51, .72); }

@media (max-width: 767px) {
  .elan-heritage-section { grid-template-columns: 1fr; gap: 47px; margin-top: 86px; padding: 42px 29px; }
  .elan-heritage-mark { min-height: 160px; }
  .elan-heritage-mark span { font-size: 122px; }
  .elan-heritage-copy h2 { font-size: 57px; }
  .elan-heritage-copy p { font-size: 16px; }
}

.collection-section { margin-top: 130px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 36px; }
.section-heading .section-eyebrow,
.journal-heading .section-eyebrow,
.private-viewing .section-eyebrow { color: var(--sea); }
.section-heading h2,
.journal-heading h2 { margin-top: 15px; font-size: clamp(46px, 5.4vw, 76px); }
.section-heading > p { max-width: 330px; margin: 0; color: var(--muted); font-size: 15px; line-height: 1.55; }
.collection-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 45px; }
.collection-card {
  position: relative;
  display: flex;
  min-height: 475px;
  overflow: hidden;
  padding: clamp(28px, 4vw, 52px);
  border: 1px solid var(--polished-chrome);
  background: var(--sand);
  color: var(--soft-white);
}
.collection-card::after {
  content: '';
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(90deg, rgba(28, 45, 51, .84) 0%, rgba(28, 45, 51, .43) 52%, rgba(28, 45, 51, .06) 100%);
}
.collection-card-copy { position: relative; z-index: 2; max-width: 267px; }
.collection-card-eyebrow { color: rgba(255, 254, 250, .78); }
.collection-card h3 { margin: 19px 0 16px; font-size: clamp(36px, 3.6vw, 52px); font-weight: 500; line-height: .94; }
.collection-card-copy > p:not(.collection-card-eyebrow) { margin: 0; font-size: 15px; line-height: 1.55; }
.collection-card .text-link:hover { color: var(--soft-white); }
.text-link {
  display: inline-flex;
  gap: 10px;
  margin-top: 30px;
  padding-bottom: 5px;
  border-bottom: 1px solid currentColor;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .1em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
}
.text-link:hover { color: var(--sea); }
.collection-card-vehicle {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.78) contrast(.94);
}
.collection-card--islander .collection-card-vehicle { object-position: center; }

.journal-section { margin-top: 150px; }
.journal-heading { max-width: 760px; }
.lifestyle-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 18px; margin-top: 49px; }
.lifestyle-card {
  position: relative;
  display: flex;
  min-height: 475px;
  overflow: hidden;
  padding: clamp(27px, 4vw, 49px);
  border: 1px solid var(--polished-chrome);
}
.lifestyle-card--morning { grid-column: span 7; background: var(--sand); }
.lifestyle-card--together { grid-column: span 5; background: var(--sky); color: var(--ink); }
.lifestyle-card--personal { grid-column: 1 / -1; min-height: 360px; background: var(--peach); }
.lifestyle-card-atmosphere { position: absolute; z-index: 1; inset: 0; overflow: hidden; pointer-events: none; }
.lifestyle-card-atmosphere span { position: absolute; display: block; border: 1px solid rgba(23, 38, 45, .14); border-radius: 50%; }
.lifestyle-card-media { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lifestyle-card.has-media { color: var(--soft-white); }
.lifestyle-card.has-media::after { content: ''; position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgba(28, 45, 51, .78) 0%, rgba(28, 45, 51, .31) 62%, rgba(28, 45, 51, .10) 100%); }
.lifestyle-card.has-media .lifestyle-card-atmosphere span { border-color: rgba(255, 254, 250, .38); }
.lifestyle-card.has-media .lifestyle-card-eyebrow { color: rgba(255, 254, 250, .76); }
.lifestyle-card--morning .lifestyle-card-atmosphere span:first-child { width: 430px; height: 430px; top: -196px; right: -80px; }
.lifestyle-card--morning .lifestyle-card-atmosphere span:last-child { width: 190px; height: 190px; bottom: -88px; right: 42%; }
.lifestyle-card--together .lifestyle-card-atmosphere span:first-child { width: 390px; height: 390px; right: -190px; top: -95px; border-color: rgba(248, 246, 241, .65); }
.lifestyle-card--personal .lifestyle-card-atmosphere span:first-child { width: 550px; height: 550px; top: -310px; left: 34%; }
.lifestyle-card--personal .lifestyle-card-atmosphere span:last-child { width: 310px; height: 310px; right: -60px; bottom: -155px; }
.lifestyle-card-copy { position: relative; z-index: 2; max-width: 400px; }
.lifestyle-card-eyebrow { color: var(--sea); }
.lifestyle-card h3 { margin: 18px 0 21px; font-size: clamp(38px, 4vw, 60px); font-weight: 500; line-height: .92; }
.lifestyle-card-copy > p:last-child { margin: 0; font-size: 16px; line-height: 1.57; }
.lifestyle-card--personal .lifestyle-card-copy { max-width: 520px; margin-left: auto; }
.lifestyle-card-vehicle { position: absolute; z-index: 1; bottom: 6%; right: -26%; width: 88%; mix-blend-mode: multiply; filter: saturate(.68) contrast(.94); }

.private-viewing-section { margin-top: 126px; }
.private-viewing { display: grid; grid-template-columns: 1.15fr .85fr; gap: 60px; padding: clamp(42px, 7vw, 86px); background: var(--sea); color: var(--cream); }
.private-viewing .section-eyebrow { color: rgba(248, 246, 241, .75); }
.private-viewing h2 { max-width: 560px; margin-top: 16px; font-size: clamp(48px, 5.7vw, 80px); }
.private-viewing-copy { align-self: end; }
.private-viewing-copy p { max-width: 340px; margin: 0; font-size: 17px; line-height: 1.58; }
.private-viewing .btn-ink { margin-top: 31px; background: var(--cream); color: var(--ink); border-color: var(--cream); }
.private-viewing .btn-ink:hover { background: transparent; color: var(--cream); }

.page-hero-frame { border-radius: 0; background-color: var(--sea) !important; }
.page-hero-title { font-family: var(--heading); font-weight: 500; letter-spacing: -.035em; }
.car-card, .detail-gallery { border: 1px solid var(--polished-chrome); border-radius: 0; }
.car-card-head h2 { font-size: 32px; font-weight: 500; }
.car-collection-intro { max-width: 470px; margin: 3px 0 22px; color: var(--muted); font-size: 15px; line-height: 1.55; }
.detail-panel, .form-shell { border-radius: 0; }
.contact-media { border-radius: 0; background-color: var(--sea); }
.contact-eyebrow { margin-bottom: 13px; color: var(--sea); }
.contact-title { font-size: clamp(45px, 5vw, 62px); }
.contact-intro { max-width: 530px; margin: 20px 0 35px; font-size: 16px; line-height: 1.55; }

.newsletter { border-radius: 0; background: var(--sand); }
.newsletter-copy h2, .partners-title { font-family: var(--heading); font-weight: 500; letter-spacing: -.035em; }
.subscribe-shell { border-color: var(--ink); border-radius: 0; }
.subscribe-input::placeholder { color: var(--muted); }
.site-footer { border-radius: 0; background: var(--ink); }
.footer-word { letter-spacing: .33em; }

@media (max-width: 767px) {
  .site-nav { top: 6px; padding: 6px 10px 0; }
  .nav-pill { border-radius: 0; }
  .hero-inner { width: min(100% - 32px, 780px); padding: 130px 0 54px; }
  .hero-word { font-size: clamp(65px, 18vw, 90px); }
  .hero-sub { font-size: 15px; }
  .hero-actions { gap: 9px; }
  .hero-actions .btn-ink, .hero-actions .btn-outline-ink { width: 100%; }
  .elan-intro, .collection-section, .journal-section, .private-viewing-section { margin-top: 86px; }
  .elan-intro-grid, .elan-meaning-section, .section-heading, .private-viewing { grid-template-columns: 1fr; }
  .elan-intro-grid { gap: 32px; padding-bottom: 52px; }
  .elan-intro h2 { font-size: 60px; }
  .elan-meaning-section { gap: 31px; margin-top: 42px; padding: 48px 0 54px; }
  .elan-meaning-intro h2 { font-size: 57px; }
  .elan-meaning-statement { font-size: 23px; }
  .elan-meaning-words { gap: 8px 15px; margin-top: 27px; }
  .elan-meaning-words li { font-size: 24px; }
  .elan-meaning-words li::after { margin-left: 15px; }
  .section-heading { align-items: start; }
  .collection-grid { grid-template-columns: 1fr; margin-top: 30px; }
  .collection-card { min-height: 440px; padding: 29px; }
  .collection-card-vehicle { width: 100%; height: 100%; }
  .lifestyle-grid { grid-template-columns: 1fr; margin-top: 31px; }
  .lifestyle-card, .lifestyle-card--morning, .lifestyle-card--together, .lifestyle-card--personal { grid-column: auto; min-height: 420px; padding: 29px; }
  .lifestyle-card--personal .lifestyle-card-copy { margin-left: 0; }
  .lifestyle-card-vehicle { right: -30%; width: 105%; }
  .private-viewing { gap: 36px; padding: 42px 29px; }
  .private-viewing h2 { font-size: 57px; }
  .newsletter { border-radius: 0; }
}

#about,
#experience,
#journal,
#elan-places,
#experience-elan,
#in-the-press { scroll-margin-top: 96px; }

.behind-wheel-section { margin-top: 128px; }
.behind-wheel {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr);
  min-height: 500px;
  overflow: hidden;
  background: var(--peach);
}
.behind-wheel-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(37px, 6vw, 82px);
}
.behind-wheel-copy .section-eyebrow { color: var(--sea); }
.behind-wheel-copy h2 {
  max-width: 490px;
  margin: 18px 0 25px;
  font-size: clamp(45px, 4.5vw, 67px);
  font-weight: 500;
  line-height: .92;
}
.behind-wheel-copy > p:last-of-type { max-width: 385px; margin: 0; font-size: 16px; line-height: 1.58; }
.behind-wheel-visual { position: relative; overflow: hidden; background: var(--sky); }
.behind-wheel-media { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.behind-wheel-visual span { position: absolute; z-index: 1; display: block; border: 1px solid rgba(248, 246, 241, .6); border-radius: 50%; }
.behind-wheel-visual span:nth-child(1) { width: 610px; height: 610px; top: -340px; right: -110px; }
.behind-wheel-visual span:nth-child(2) { width: 410px; height: 410px; right: -30px; bottom: -215px; }
.behind-wheel-visual span:nth-child(3) { width: 10px; height: 10px; top: 29%; left: 24%; border: 0; background: var(--cream); }
.behind-wheel-vehicle {
  position: absolute;
  z-index: 1;
  right: -10%;
  bottom: 14%;
  width: min(91%, 600px);
  mix-blend-mode: multiply;
  filter: saturate(.66) contrast(.94);
}

.elan-places-section { margin-top: 128px; }
.elan-places {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr);
  gap: clamp(42px, 9vw, 130px);
  padding: clamp(44px, 7vw, 90px);
  border-block: 1px solid var(--line);
}
.elan-places .section-eyebrow { color: var(--sea); }
.elan-places h2 {
  max-width: 600px;
  margin: 18px 0 0;
  font-size: clamp(49px, 5.6vw, 80px);
  font-weight: 500;
  line-height: .9;
}
.elan-places-copy { align-self: end; }
.elan-places-copy p { max-width: 355px; margin: 0; font-size: 16px; line-height: 1.58; }

.in-press-section { margin-top: 128px; }
.in-press-heading { max-width: 730px; }
.in-press-heading .section-eyebrow { color: var(--sea); }
.in-press-heading h2 {
  margin: 17px 0 0;
  font-size: clamp(46px, 5.2vw, 74px);
  font-weight: 500;
  line-height: .91;
}
.in-press-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 44px; }
.in-press-card { min-height: 230px; padding: 30px; background: var(--sage); }
.in-press-name { margin: 0; font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.in-press-card > p:last-child { margin: 40px 0 0; font-family: var(--heading); font-size: 22px; line-height: 1.2; }
.in-press-empty {
  max-width: 510px;
  margin: 38px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.55;
}
.in-press-empty a { color: var(--ink); text-underline-offset: 4px; }

@media (max-width: 767px) {
  .behind-wheel-section, .elan-places-section, .in-press-section { margin-top: 86px; }
  .behind-wheel, .elan-places { grid-template-columns: 1fr; }
  .behind-wheel { min-height: 0; }
  .behind-wheel-copy { padding: 42px 29px; }
  .behind-wheel-copy h2 { font-size: 56px; }
  .behind-wheel-visual { min-height: 330px; }
  .behind-wheel-vehicle { width: 105%; right: -20%; }
  .elan-places { gap: 34px; padding: 42px 0; }
  .elan-places h2 { font-size: 59px; }
  .in-press-grid { grid-template-columns: 1fr; margin-top: 31px; }
}

.configurator-path-section { margin-top: 128px; }
.configurator-path {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(300px, .88fr);
  gap: clamp(44px, 8vw, 120px);
  padding: clamp(46px, 7vw, 90px);
  background: var(--sand);
}
.configurator-path .section-eyebrow { color: var(--sea); }
.configurator-path h2 {
  max-width: 670px;
  margin: 17px 0 0;
  font-size: clamp(48px, 5.4vw, 78px);
  font-weight: 500;
  line-height: .9;
}
.configurator-path-copy { align-self: end; }
.configurator-path-copy p { max-width: 360px; margin: 0; font-size: 16px; line-height: 1.58; }
.configurator-path-copy .btn-ink { margin-top: 30px; }

.configurator-hero {
  margin-top: 72px;
  background:
    linear-gradient(90deg, rgba(49, 92, 112, .97) 0%, rgba(49, 92, 112, .88) 48%, rgba(49, 92, 112, .26) 100%),
    var(--configurator-image) center / cover no-repeat,
    var(--sea);
  color: var(--cream);
}
.configurator-hero-inner { max-width: 920px; padding-top: clamp(105px, 14vw, 164px); padding-bottom: clamp(70px, 10vw, 120px); }
.configurator-hero .section-eyebrow { color: rgba(248, 246, 241, .76); }
.configurator-hero h1 {
  max-width: 680px;
  margin: 18px 0 0;
  font-size: clamp(66px, 9vw, 126px);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: .8;
}
.configurator-hero p:last-child { max-width: 490px; margin: 30px 0 0; font-size: 17px; line-height: 1.55; }
.configurator-section { margin-top: 110px; }
.configurator-form { max-width: 1000px; margin: 0 auto; }
.configurator-form-intro { display: grid; grid-template-columns: minmax(0, .95fr) minmax(260px, .65fr); gap: 48px; padding-bottom: 58px; border-bottom: 1px solid var(--line); }
.configurator-form-intro .section-eyebrow { color: var(--sea); }
.configurator-form-intro h2 { margin: 17px 0 0; font-size: clamp(50px, 5vw, 72px); font-weight: 500; line-height: .9; }
.configurator-form-intro > p { align-self: end; max-width: 360px; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.58; }
.configurator-steps { margin-top: 72px; }
.configurator-step { min-width: 0; margin: 0; padding: 0 0 55px; border: 0; }
.configurator-step + .configurator-step { padding-top: 52px; border-top: 1px solid var(--line); }
.configurator-step legend { width: 100%; margin: 0 0 27px; font-family: var(--heading); font-size: clamp(32px, 3.2vw, 46px); font-weight: 500; line-height: 1; }
.configurator-step legend span { display: inline-block; width: 42px; margin-right: 13px; color: var(--sea); font-family: var(--body); font-size: 11px; font-weight: 600; letter-spacing: .12em; vertical-align: middle; }
.configurator-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.configurator-option-input { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.configurator-option { display: flex; flex-direction: column; justify-content: space-between; min-height: 154px; padding: 23px; border: 1px solid var(--line); background: transparent; cursor: pointer; transition: background .18s ease, border-color .18s ease, color .18s ease; }
.configurator-option strong { font-family: var(--heading); font-size: 28px; font-weight: 500; line-height: 1; }
.configurator-option span { margin-top: 21px; color: var(--muted); font-size: 13px; line-height: 1.45; }
.configurator-option:hover { border-color: var(--sea); }
.configurator-option-input:checked + .configurator-option { border-color: var(--sea); background: var(--sky); }
.configurator-option-input:checked + .configurator-option span { color: var(--ink); }
.configurator-option-input:focus-visible + .configurator-option { outline: 3px solid var(--ink); outline-offset: 3px; }
.configurator-submit { display: flex; align-items: end; justify-content: space-between; gap: 36px; margin-top: 5px; padding: 49px 0 0; border-top: 1px solid var(--line); }
.configurator-submit p { max-width: 450px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.contact-configurator-note { margin: -19px 0 30px; padding-left: 14px; border-left: 2px solid var(--sea); font-size: 14px; line-height: 1.5; }

@media (max-width: 767px) {
  .configurator-path-section { margin-top: 86px; }
  .configurator-path, .configurator-form-intro { grid-template-columns: 1fr; }
  .configurator-path { gap: 35px; padding: 42px 29px; }
  .configurator-path h2 { font-size: 58px; }
  .configurator-hero { margin-top: 58px; }
  .configurator-hero-inner { padding-top: 118px; padding-bottom: 72px; }
  .configurator-hero h1 { font-size: 78px; }
  .configurator-section { margin-top: 78px; }
  .configurator-form-intro { gap: 28px; padding-bottom: 43px; }
  .configurator-form-intro h2 { font-size: 57px; }
  .configurator-steps { margin-top: 52px; }
  .configurator-step { padding-bottom: 42px; }
  .configurator-step + .configurator-step { padding-top: 42px; }
  .configurator-options { grid-template-columns: 1fr; }
  .configurator-option { min-height: 126px; }
  .configurator-submit { align-items: stretch; flex-direction: column; margin-top: 0; padding-top: 40px; }
  .configurator-submit .btn-ink { width: 100%; }
}

/* ---------- Movimento editorial ---------- */
.site-loader { display: none; }
.js .site-loader {
  position: fixed;
  z-index: 200;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: var(--warm-ivory);
  opacity: 1;
  visibility: visible;
  transition: opacity .62s cubic-bezier(.22, 1, .36, 1), visibility .62s step-end;
}
.js body.is-loading { overflow: hidden; }
.js .site-loader.is-complete { opacity: 0; visibility: hidden; pointer-events: none; }
.site-loader-inner { position: relative; display: grid; place-items: center; width: 184px; height: 184px; }
.site-loader-orbit { position: absolute; width: 100%; height: 100%; border: 1px solid var(--polished-chrome); border-radius: 50%; animation: loader-orbit 2.2s linear infinite; }
.site-loader-orbit::after { content: ''; position: absolute; top: 8px; left: 50%; width: 7px; height: 7px; border-radius: 50%; background: var(--sea); transform: translateX(-50%); }
.site-loader-mark { width: 34px; height: 34px; border-radius: 50%; background: var(--sea); box-shadow: 0 0 0 10px rgba(49, 92, 112, .08); }
.site-loader-word { position: absolute; bottom: 22px; font-family: var(--body); font-size: 10px; font-weight: 600; letter-spacing: .34em; line-height: 1; }
.site-loader-line { position: absolute; bottom: 0; width: 76px; height: 1px; overflow: hidden; background: var(--polished-chrome); }
.site-loader-line i { display: block; width: 50%; height: 100%; background: var(--sea); animation: loader-line 1.3s ease-in-out infinite; }

.js .hero-inner { animation: hero-arrival 1s .12s cubic-bezier(.22, 1, .36, 1) both; }
.js .reveal { opacity: 0; transform: translate3d(0, 30px, 0); transition: opacity .8s cubic-bezier(.22, 1, .36, 1), transform .8s cubic-bezier(.22, 1, .36, 1); }
.js .reveal-item { opacity: 0; transform: translate3d(0, 22px, 0); transition: opacity .7s var(--reveal-delay, 0ms) cubic-bezier(.22, 1, .36, 1), transform .7s var(--reveal-delay, 0ms) cubic-bezier(.22, 1, .36, 1); }
.js .reveal.is-visible,
.js .reveal-item.is-visible { opacity: 1; transform: translate3d(0, 0, 0); }

.collection-card-vehicle,
.lifestyle-card-media,
.behind-wheel-media { transition: transform 1.1s cubic-bezier(.22, 1, .36, 1), filter .8s ease; }
@media (hover: hover) and (pointer: fine) {
  .collection-card:hover .collection-card-vehicle { transform: scale(1.045); filter: saturate(.88) contrast(.98); }
  .lifestyle-card.has-media:hover .lifestyle-card-media { transform: scale(1.04); }
  .behind-wheel:hover .behind-wheel-media { transform: scale(1.035); }
}

@keyframes loader-orbit { to { transform: rotate(360deg); } }
@keyframes loader-line { 0%, 100% { transform: translateX(-105%); } 50% { transform: translateX(210%); } }
@keyframes hero-arrival { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } }
@keyframes hero-letter-draw { to { stroke-dashoffset: 0; } }
@keyframes hero-letter-fill { to { fill: rgba(255, 254, 250, .96); stroke: rgba(255, 254, 250, .74); } }

@media (prefers-reduced-motion: reduce) {
  .js .site-loader,
  .js .hero-inner,
  .js .reveal,
  .js .reveal-item,
  .collection-card-vehicle,
  .lifestyle-card-media,
  .behind-wheel-media,
  .js .hero-word--drawn .hero-letter { animation: none !important; transition: none !important; }
  .js .hero-word--drawn .hero-letter { fill: rgba(255, 254, 250, .96); stroke-dashoffset: 0; }
  .js .reveal,
  .js .reveal-item { opacity: 1; transform: none; }
}

/* ---------- Marca central na navegação ---------- */
.nav-pill { position: relative; }
.nav-logo {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  display: block;
  width: 138px;
  height: 54px;
  margin: 0;
  transform: translate(-50%, -50%);
}
.nav-logo-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}
.nav-primary {
  width: 100%;
  justify-content: space-between;
  gap: 0;
  padding-right: 18px;
}
.nav-primary .nav-link:nth-child(4) { margin-right: 154px; }

@media (max-width: 767px) {
  .nav-logo { width: 118px; height: 48px; }
  .nav-toggle { margin-left: auto; }
  .nav-primary { padding-right: 0; }
  .nav-primary .nav-link:nth-child(4) { margin-right: 0; }
}

/* ---------- Logo central com navegação espaçada ---------- */
.nav-pill {
  max-width: 1440px;
  min-height: 116px;
  padding-inline: 30px;
  background: #fbfbfb;
}
.nav-logo { width: 168px; height: 38px; }
.nav-primary {
  display: grid;
  grid-template-columns: repeat(5, max-content) minmax(200px, 1fr) repeat(4, max-content);
  align-items: center;
  justify-content: space-between;
  gap: clamp(12px, 1.55vw, 24px);
  padding-right: 0;
}
.nav-primary .nav-link:nth-child(4) { margin-right: 0; }
.nav-primary .nav-link:nth-child(5) { grid-column: auto; }
.nav-primary .nav-link:nth-child(6) { grid-column: 7; }

.site-loader,
.js .site-loader { background: #fbfbfb; }
.site-loader-inner { width: min(72vw, 240px); height: 120px; }
.site-loader-logo {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center;
}
.site-loader-line { bottom: 0; width: 92px; }

@media (max-width: 767px) {
  .nav-pill { min-height: 78px; padding-inline: 16px; background: #fbfbfb; }
  .nav-logo { width: 70px; height: 70px; }
  .nav-primary { display: flex; gap: 4px; }
  .nav-primary .nav-link:nth-child(5) { grid-column: auto; }
}

.footer-logo { width: 104px; }
.footer-logo-image {
  display: block;
  width: 104px;
  height: 104px;
  object-fit: contain;
  object-position: center;
}

/* ---------- Footer: assinatura integrada ---------- */
.site-footer { min-height: 0; padding: 28px 0 42px; }
.footer-main {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  align-items: start;
  gap: clamp(38px, 7vw, 100px);
  padding: 10px 0 36px;
}
.footer-logo { width: 160px; margin: 0; }
.footer-logo-image {
  width: 160px;
  height: 36px;
  object-fit: contain;
  object-position: left center;
}
.footer-columns {
  width: 100%;
  max-width: none;
  margin: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(34px, 7vw, 96px);
}

@media (max-width: 767px) {
  .footer-main { grid-template-columns: 1fr; gap: 28px; padding-bottom: 30px; }
  .footer-logo { width: 150px; margin-inline: auto; }
  .footer-logo-image { width: 150px; height: 34px; }
  .footer-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 36px; }
  .footer-column--follow { grid-column: 1 / -1; text-align: center; }
  .footer-column--follow .footer-follow-social .social-icons { justify-content: center; }
}

/* ---------- Configurador 3D ELAN ---------- */
.elan-configurator-page main { min-height: 0; }
.elan-configurator {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 430px);
  min-height: calc(100vh - 72px);
  margin-top: 72px;
  background: var(--warm-ivory);
}
.elan-configurator-viewer {
  position: relative;
  min-height: calc(100vh - 72px);
  overflow: hidden;
  background: radial-gradient(circle at 48% 54%, #fffefa 0%, #f7f3ea 53%, #e7e2d6 100%);
}
.elan-configurator-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  cursor: grab;
  touch-action: none;
}
.elan-configurator-canvas:active { cursor: grabbing; }
.elan-configurator-viewer-top {
  position: absolute;
  z-index: 2;
  top: 32px;
  left: clamp(24px, 4vw, 58px);
  pointer-events: none;
}
.elan-configurator-viewer-top .section-eyebrow { margin: 0; color: var(--sea); }
.elan-configurator-spec { margin: 6px 0 0; font-size: 12px; font-weight: 600; letter-spacing: .05em; }
.elan-configurator-loading,
.elan-configurator-error {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 50%;
  margin: 0;
  transform: translate(-50%, -50%);
  text-align: center;
}
.elan-configurator-loading span {
  display: block;
  width: 32px;
  height: 32px;
  margin: 0 auto 13px;
  border: 2px solid rgba(49, 92, 112, .2);
  border-top-color: var(--sea);
  border-radius: 50%;
  animation: elan-config-spin .8s linear infinite;
}
.elan-configurator-loading p,
.elan-configurator-error { font-size: 13px; color: var(--muted); }
.elan-configurator-error { width: min(320px, calc(100% - 44px)); line-height: 1.5; }
.elan-configurator-views {
  position: absolute;
  z-index: 2;
  bottom: 38px;
  left: 50%;
  display: flex;
  gap: 7px;
  padding: 6px;
  border: 1px solid rgba(28, 45, 51, .12);
  border-radius: 999px;
  background: rgba(255, 254, 250, .84);
  box-shadow: 0 8px 30px rgba(28, 45, 51, .08);
  transform: translateX(-50%);
  backdrop-filter: blur(10px);
}
.elan-configurator-views button {
  min-width: 58px;
  padding: 7px 10px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--muted);
  font: 600 11px/1 var(--body);
  cursor: pointer;
}
.elan-configurator-views button.is-active { background: var(--ink); color: #fff; }
.elan-configurator-hint {
  position: absolute;
  right: 26px;
  bottom: 30px;
  z-index: 2;
  margin: 0;
  color: var(--muted);
  font-size: 11px;
}
.elan-configurator-panel {
  display: flex;
  flex-direction: column;
  padding: clamp(32px, 4vw, 54px) clamp(24px, 3.6vw, 48px);
  background: #f0ece1;
}
.elan-configurator-panel-head { padding-bottom: 28px; }
.elan-configurator-panel-head .section-eyebrow { margin: 0; color: var(--sea); }
.elan-configurator-panel-head h1 { margin: 12px 0 14px; font-size: clamp(42px, 4vw, 62px); line-height: .87; }
.elan-configurator-panel-head > p:last-child { max-width: 340px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.elan-configurator-form { display: flex; flex: 1; flex-direction: column; gap: 10px; }
.elan-config-group {
  overflow: hidden;
  border: 1px solid rgba(28, 45, 51, .08);
  border-radius: 20px;
  background: rgba(255, 254, 250, .86);
}
.elan-config-group summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 76px;
  padding: 15px 18px 15px 21px;
  list-style: none;
  cursor: pointer;
}
.elan-config-group summary::-webkit-details-marker { display: none; }
.elan-config-group summary > span { display: grid; gap: 2px; }
.elan-config-group summary strong { font-size: 17px; line-height: 1.2; }
.elan-config-group summary small { color: var(--muted); font-size: 12px; line-height: 1.3; }
.elan-config-summary-swatch {
  position: relative;
  display: block;
  flex: 0 0 39px;
  width: 39px;
  height: 39px;
  border: 1px solid rgba(28, 45, 51, .17);
  border-radius: 50%;
  background: var(--swatch);
}
.elan-config-summary-swatch::after {
  position: absolute;
  top: 50%;
  right: -19px;
  width: 7px;
  height: 7px;
  border-right: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
  content: '';
  transform: translateY(-67%) rotate(45deg);
  transition: transform .18s ease;
}
.elan-config-group[open] .elan-config-summary-swatch::after { transform: translateY(-31%) rotate(225deg); }
.elan-colour-options {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  padding: 2px 21px 21px;
}
.elan-colour-option {
  position: relative;
  width: 39px;
  height: 39px;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(28, 45, 51, .14);
  border-radius: 50%;
  background: var(--swatch);
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease;
}
.elan-colour-option:hover { transform: translateY(-2px); }
.elan-colour-option.is-selected { box-shadow: 0 0 0 2px #fffefa, 0 0 0 4px var(--ink); }
.elan-colour-option--custom {
  background: conic-gradient(#ff5e3d, #f8cf48, #54bd6c, #49b3e5, #8465d1, #d152b7, #ff5e3d);
}
.elan-colour-option--custom input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  opacity: 0;
  cursor: pointer;
}
.elan-configurator-price {
  display: grid;
  gap: 4px;
  margin-top: auto;
  padding: 29px 2px 20px;
}
.elan-configurator-price span { color: var(--muted); font-size: 13px; }
.elan-configurator-price strong { font-size: 30px; line-height: 1; letter-spacing: -.04em; }
.elan-configurator-price small { max-width: 290px; color: var(--muted); font-size: 11px; line-height: 1.4; }
.elan-configurator-submit { width: 100%; margin-top: 0; }
@keyframes elan-config-spin { to { transform: rotate(1turn); } }

@media (max-width: 1000px) {
  .elan-configurator { grid-template-columns: 1fr; margin-top: 58px; }
  .elan-configurator-viewer { min-height: min(68vh, 650px); }
  .elan-configurator-panel { min-height: auto; }
  .elan-configurator-price { margin-top: 22px; }
}
@media (max-width: 600px) {
  .elan-configurator-viewer { min-height: 510px; }
  .elan-configurator-viewer-top { top: 22px; left: 22px; }
  .elan-configurator-hint { display: none; }
  .elan-configurator-views { bottom: 21px; }
  .elan-configurator-panel { padding: 34px 20px 39px; }
  .elan-configurator-panel-head h1 { font-size: 48px; }
  .elan-config-group { border-radius: 17px; }
  .elan-config-group summary { min-height: 71px; padding-inline: 17px; }
  .elan-colour-options { gap: 11px; padding-inline: 18px; }
}

/* Compact desktop composition: one open finish group, price and CTA in view. */
.elan-configurator-viewer-top p {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  color: var(--ink);
  font-size: 11px;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.elan-configurator-viewer-top strong { color: var(--sea); font-weight: 700; }
.elan-configurator-viewer-top span { color: var(--muted); font-weight: 600; }
.elan-configurator-spec { display: none; }
.elan-config-group summary { justify-content: flex-start; min-height: 56px; padding: 10px 15px; }
.elan-config-group summary > span { margin-right: auto; }
.elan-config-group summary strong { font-size: 15px; }
.elan-config-group summary small { font-size: 11px; }
.elan-config-summary-swatch { flex-basis: 32px; width: 32px; height: 32px; }
.elan-config-summary-swatch::after { content: none; }
.elan-config-group summary::after {
  width: 7px;
  height: 7px;
  margin: 0 3px 0 13px;
  border-right: 1.5px solid var(--ink);
  border-bottom: 1.5px solid var(--ink);
  content: '';
  transform: translateY(-2px) rotate(45deg);
  transition: transform .18s ease;
}
.elan-config-group[open] summary::after { transform: translateY(2px) rotate(225deg); }
.elan-colour-options { gap: 8px; padding: 0 15px 14px; }
.elan-colour-option { width: 32px; height: 32px; }
.elan-configurator-panel { padding: 24px 30px 18px; }
.elan-configurator-panel-head { padding-bottom: 10px; }
.elan-configurator-panel-head h1 { margin: 6px 0 0; font-size: clamp(40px, 3.6vw, 50px); line-height: .9; }
.elan-configurator-panel-head > p:last-child { display: none; }
.elan-configurator-form { flex: 0 1 auto; gap: 6px; }
.elan-config-group { border-radius: 14px; }
.elan-configurator-price { margin-top: 8px; padding: 10px 2px 9px; }
.elan-configurator-price span { font-size: 11px; }
.elan-configurator-price strong { font-size: 26px; }
.elan-configurator-price small { display: none; }
.elan-configurator-submit { min-height: 46px; }

@media (min-width: 1001px) {
  .elan-configurator {
    height: calc(100svh - 140px);
    min-height: 580px;
    margin-top: 0;
    overflow: hidden;
  }
  .elan-configurator-viewer { min-height: 0; height: 100%; }
  .elan-configurator-panel { max-height: 100%; overflow-y: auto; scrollbar-width: thin; }
}
@media (max-width: 1000px) {
  .elan-configurator { height: auto; min-height: 0; margin-top: 24px; }
}
@media (max-width: 600px) {
  .elan-configurator-viewer-top p { display: grid; gap: 4px; font-size: 10px; }
  .elan-configurator-panel { padding: 30px 20px 34px; }
}

/* Hero CTAs share one desktop width; text length, not border width, caused the mismatch. */
@media (min-width: 768px) {
  .hero-actions .btn-ink,
  .hero-actions .btn-outline-ink {
    width: 210px;
    justify-content: center;
    white-space: nowrap;
  }
  .hero-actions .btn-ink { border-color: var(--ink); }
    .hero-actions .btn-ink:hover { border-color: var(--sea); }
}

/* ---------- Personalise: homepage configurator ---------- */
.elan-configurator--home {
  grid-template-columns: minmax(0, .94fr) minmax(470px, 1.06fr);
  min-height: 820px;
  margin-top: 150px;
  background: var(--warm-ivory);
  color: var(--ink);
}
.elan-configurator--home .elan-configurator-viewer {
  display: grid;
  place-items: center;
  min-height: 820px;
  background: #C9C7C0;
}
.elan-home-car-image {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  opacity: 1;
  transition: opacity .42s cubic-bezier(.4, 0, .2, 1);
}
.elan-home-car-image--next,
.elan-home-car-image[data-config-layer-image-next] {
  opacity: 0;
  pointer-events: none;
}
.elan-home-car-image--next { z-index: 1; }
.elan-home-car-image--rims { z-index: 2; }
.elan-home-car-image--rims-next { z-index: 3; }
.elan-home-car-image--seats { z-index: 4; }
.elan-home-car-image--seats-next { z-index: 5; }
.elan-home-car-image--seatbelts { z-index: 6; }
.elan-home-car-image--seatbelts-next { z-index: 7; }
.elan-home-car-image--roof { z-index: 8; }
.elan-home-car-image--roof-next { z-index: 9; }
.elan-home-car-image--bumpers { z-index: 10; pointer-events: none; }
.elan-home-car-image--bumpers-next { z-index: 11; }
.elan-home-car-image.is-resetting { transition: none; }
.elan-home-car-image--next.is-visible,
.elan-home-car-image[data-config-layer-image-next].is-visible { opacity: 1; }
.elan-configurator--home .elan-configurator-viewer-top { z-index: 8; top: 36px; left: clamp(26px, 4vw, 58px); }
.elan-configurator--home .elan-configurator-viewer-top p { color: var(--ink); }
.elan-configurator--home .elan-configurator-viewer-top strong { color: var(--sea); }
.elan-configurator--home .elan-configurator-viewer-top span { color: rgba(28, 45, 51, .66); }
.elan-configurator--home .elan-configurator-loading p,
.elan-configurator--home .elan-configurator-error,
.elan-configurator--home .elan-configurator-hint { color: rgba(28, 45, 51, .66); }
.elan-configurator--home .elan-configurator-loading span { border-color: rgba(28, 45, 51, .18); border-top-color: var(--sea); }
.elan-configurator--home .elan-configurator-hint { right: 34px; bottom: 31px; }
.elan-home-configurator-panel { padding: clamp(58px, 7vw, 108px) clamp(32px, 6vw, 92px); background: var(--warm-ivory); }
.elan-home-configurator-head { max-width: 590px; padding-bottom: 42px; }
.elan-home-configurator-head .section-eyebrow { margin: 0; color: var(--sea); }
.elan-home-configurator-head h2 { margin: 13px 0 19px; color: var(--ink); font-family: var(--heading); font-size: clamp(46px, 5vw, 78px); font-weight: 500; letter-spacing: -.055em; line-height: .9; }
.elan-home-configurator-head > p:last-child { max-width: 480px; margin: 0; color: var(--muted); font-size: 15px; line-height: 1.6; }
.elan-home-configurator-form { max-width: 680px; }
.elan-config-step { display: grid; grid-template-columns: minmax(122px, .38fr) minmax(0, 1fr); gap: 28px; padding: 25px 0; border-top: 1px solid var(--line); }
.elan-config-step-title { display: grid; align-content: start; gap: 4px; }
.elan-config-step-title span { color: var(--sea); font-size: 11px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.elan-config-step-title strong { color: var(--ink); font-family: var(--display); font-size: 19px; font-weight: 600; letter-spacing: -.03em; line-height: 1.08; }
.elan-config-step-options { min-width: 0; }
.elan-home-colour-options { display: flex; flex-wrap: wrap; gap: 3px; }
.elan-home-colour-option { position: relative; width: 47px; height: 47px; padding: 0; overflow: hidden; border: 1px solid transparent; background: var(--swatch); cursor: pointer; transition: transform .18s ease, box-shadow .18s ease; }
.elan-home-colour-option:hover { transform: translateY(-2px); }
.elan-home-colour-option.is-selected { z-index: 1; border-color: var(--ink); box-shadow: 0 0 0 2px var(--warm-ivory), 0 0 0 3px var(--ink); }
.elan-home-colour-option--custom { background: conic-gradient(#ff5e3d, #f8cf48, #54bd6c, #49b3e5, #8465d1, #d152b7, #ff5e3d); }
.elan-home-colour-option--custom input { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; opacity: 0; cursor: pointer; }
.elan-config-step-options > p:where(:not(.elan-config-colour-custom-note, .elan-config-note, .elan-config-adventure-note)) { display: flex; align-items: center; gap: 8px; margin: 11px 0 0; color: var(--muted); font-size: 13px; }
.elan-config-step-options > p > i { display: block; width: 9px; height: 9px; border: 1px solid rgba(28, 45, 51, .24); border-radius: 50%; background: var(--swatch); }
.elan-config-step--quote { padding-bottom: 0; }
.elan-config-step-options--quote > p { max-width: 480px; margin: 0; color: var(--muted); font-size: 15px; line-height: 1.55; }
.elan-home-configurator-bottom { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-top: 28px; }
.elan-home-configurator-price { display: grid; gap: 4px; }
.elan-home-configurator-price span { color: var(--sea); font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.elan-home-configurator-price strong { color: var(--ink); font-size: 31px; letter-spacing: -.045em; line-height: 1; }
.elan-home-configurator-submit { min-height: 52px; padding: 0 23px; border: 1px solid var(--ink); background: var(--ink); color: var(--warm-ivory); font: 600 11px/1 var(--body); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; transition: background .18s ease, color .18s ease, border-color .18s ease; }
.elan-home-configurator-submit:hover { border-color: var(--sea); background: var(--sea); color: #fff; }

@media (min-width: 1001px) {
  .elan-configurator--home { height: auto; min-height: 820px; margin-top: 150px; overflow: visible; }
  .elan-configurator--home .elan-configurator-viewer { position: sticky; top: 16px; align-self: start; height: min(760px, calc(100svh - 32px)); min-height: 620px; }
  .elan-configurator--home .elan-home-car-image { inset: 7%; width: 86%; height: 86%; }
}
@media (max-width: 1000px) {
  .elan-configurator--home { grid-template-columns: 1fr; min-height: 0; margin-top: 86px; }
  .elan-configurator--home .elan-configurator-viewer { min-height: 580px; }
  .elan-home-configurator-panel { padding: 62px 8vw; }
}
@media (max-width: 640px) {
  .elan-configurator--home { margin-top: 72px; }
  .elan-configurator--home .elan-configurator-viewer { min-height: 490px; }
  .elan-home-configurator-panel { padding: 46px 22px; }
  .elan-home-configurator-head { padding-bottom: 31px; }
  .elan-home-configurator-head h2 { font-size: 52px; }
  .elan-config-step { grid-template-columns: 1fr; gap: 17px; padding: 24px 0; }
  .elan-home-colour-option { width: 39px; height: 39px; }
  .elan-home-configurator-bottom { align-items: stretch; flex-direction: column; }
  .elan-home-configurator-submit { width: 100%; }
}

/* Contact artwork stays fully visible while the longer form scrolls beside it. */
@media (min-width: 992px) {
  .contact-media {
    position: sticky;
    top: 108px;
    flex: 0 0 auto;
  }
}

/* Homepage navigation becomes a compact fixed control once the hero is scrolled. */
.home-page .site-nav.is-scrolled {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  padding: 7px 20px 0;
  animation: nav-arrive .24s ease-out both;
}
.home-page .site-nav.is-scrolled .nav-pill {
  min-height: 68px;
  background: rgba(255, 254, 250, .97);
  box-shadow: 0 7px 22px rgba(28, 45, 51, .13);
  transition: min-height .22s ease, box-shadow .22s ease;
}
.home-page .site-nav.is-scrolled .nav-logo { width: 132px; height: 30px; }
.home-page .site-nav.is-scrolled .nav-primary {
  grid-template-columns: repeat(4, max-content) minmax(142px, 1fr) repeat(4, max-content);
  gap: clamp(9px, 1.2vw, 18px);
}
.home-page .site-nav.is-scrolled .nav-link { font-size: 10px; }
@keyframes nav-arrive { from { transform: translateY(-110%); } to { transform: translateY(0); } }

@media (max-width: 767px) {
  .home-page .site-nav.is-scrolled { padding: 5px 10px 0; }
  .home-page .site-nav.is-scrolled .nav-pill { min-height: 68px; }
  .home-page .site-nav.is-scrolled .nav-logo { width: 112px; height: 25px; }
}

/* ---------- Homepage hero and navigation: editorial direction ---------- */
.site-nav {
  position: relative;
  inset: auto;
  top: auto;
  padding: 0;
  background: var(--warm-ivory);
}
.language-bar { display: none; }
.nav-pill {
  width: 100%;
  max-width: none;
  min-height: 156px;
  padding: 12px clamp(36px, 5vw, 76px);
  border: 0;
  border-radius: 0;
  background: var(--warm-ivory);
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.nav-logo {
  right: 0;
  left: 0;
  width: 216px;
  height: 69px;
  margin-inline: auto;
  transform: translateY(-50%);
}
.nav-primary {
  grid-template-columns: repeat(5, max-content) minmax(250px, 1fr) repeat(4, max-content);
  gap: clamp(13px, 1.35vw, 22px);
}
.nav-link {
  color: rgba(28, 45, 51, .82);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .09em;
}
.nav-primary > .nav-link:not(:first-child):not(:last-child) { padding: 0 5px; }
.nav-link:hover,
.nav-link.is-active {
  color: var(--ink);
  text-decoration: none;
}


.home-page .hero-frame--elan {
  height: min(704px, calc(100svh - 156px));
  min-height: 560px;
  border-radius: 0;
  background: #111 var(--home-hero-image) center 12% / cover no-repeat;
}
.home-page .hero-frame--elan::after {
  background: linear-gradient(90deg, rgba(10, 15, 15, .64) 0%, rgba(10, 15, 15, .46) 39%, rgba(10, 15, 15, .14) 72%, rgba(10, 15, 15, .18));
}
.home-page .hero-atmosphere { display: none; }
.home-hero-credit {
  padding: clamp(54px, 6vw, 84px) 24px;
  background: var(--warm-ivory);
  text-align: center;
}
.home-hero-credit-inner { max-width: 840px; margin: 0 auto; }
.home-hero-credit h2 {
  margin: 0;
  color: var(--ink);
  font-family: var(--heading);
  font-size: clamp(40px, 3.8vw, 60px);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: .93;
}
.home-hero-credit p {
  margin: 17px 0 0;
  color: var(--ink);
  font-family: var(--body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .24em;
  line-height: 1.35;
  text-transform: uppercase;
}
.home-page .hero-inner {
  width: 100%;
  margin: 0;
  padding: 62px clamp(46px, 5vw, 76px) 0;
  text-align: left;
}
.home-page .hero-kicker {
  color: rgba(255, 254, 250, .94);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .25em;
}
.home-page .hero-title {
  max-width: 520px;
  margin: 34px 0 0;
  color: #fffefa;
  font-family: var(--heading);
  font-size: clamp(68px, 7vw, 108px);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: .84;
}
.home-page .hero-sub {
  max-width: 610px;
  margin: 25px 0 0;
  color: rgba(255, 254, 250, .94);
  font-size: 16px;
  line-height: 1.45;
}
.home-page .hero-actions {
  justify-content: flex-start;
  gap: 4px;
  margin-top: 45px;
}
.home-page .hero-actions .btn-ink,
.home-page .hero-actions .btn-outline-ink {
  min-width: 192px;
  min-height: 48px;
  padding: 12px 22px;
  border: 0;
  border-radius: 0;
  background: rgba(24, 31, 28, .94);
  color: #fffefa;
  font-size: 10px;
  letter-spacing: .13em;
}
.home-page .hero-actions .btn-ink:hover,
.home-page .hero-actions .btn-outline-ink:hover {
  background: var(--sea);
  color: #fff;
}

.home-page .site-nav.is-scrolled {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  padding: 0;
  background: var(--warm-ivory);
  box-shadow: 0 5px 20px rgba(28, 45, 51, .08);
}
.home-page .site-nav.is-scrolled .nav-pill {
  min-height: 76px;
  background: transparent;
  box-shadow: none;
}
.home-page .site-nav.is-scrolled .nav-logo { width: 132px; height: 30px; }
.home-page .site-nav.is-scrolled .nav-primary {
  grid-template-columns: repeat(5, max-content) minmax(200px, 1fr) repeat(4, max-content);
  gap: clamp(8px, 1vw, 16px);
}
.home-page .site-nav.is-scrolled .nav-link { font-size: 10px; }

@media (max-width: 767px) {
  .site-nav { position: relative; }
  .nav-pill { min-height: 82px; padding: 6px 18px; }
  .nav-logo { width: 128px; height: 41px; }
  .home-page .nav-pill { min-height: 82px; }
  .nav-toggle {
    position: absolute;
    z-index: 3;
    top: 50%;
    right: 18px;
    display: flex;
    margin: 0;
    transform: translateY(-50%);
  }
  .nav-links { padding-top: 16px; }
  .nav-primary { display: flex; gap: 4px; }
  .nav-link { padding: 10px 2px; font-size: 11px; }

  .home-page .hero-frame--elan {
    height: calc(100svh - 82px);
    min-height: 570px;
    background-image: var(--home-hero-mobile-image, var(--home-hero-image));
    background-size: cover;
    background-position: center 12%;
  }
  .home-page .hero-inner { width: 100%; padding: 58px 18px 0; }
  .home-page .hero-kicker { font-size: 9px; letter-spacing: .19em; }
  .home-page .hero-title { max-width: 330px; margin-top: 26px; font-size: clamp(38px, 11.5vw, 50px); line-height: .92; white-space: normal; }
  .home-page .hero-sub { max-width: 350px; margin-top: 21px; font-size: 14px; }
  .home-page .hero-actions { width: 100%; justify-content: flex-start; gap: 5px; margin: 34px 0 0; }
  .home-page .hero-actions .btn-ink,
  .home-page .hero-actions .btn-outline-ink { width: 100%; min-height: 46px; }

  .home-page .site-nav.is-scrolled { padding: 0; }
  .home-page .site-nav.is-scrolled .nav-pill { min-height: 64px; }
  .home-page .site-nav.is-scrolled .nav-logo { width: 112px; height: 25px; }
}

/* ---------- About ÉLAN ---------- */
.about-page main { overflow: clip; background: var(--warm-ivory); }
.about-shell { width: min(100% - 80px, 1320px); margin-inline: auto; }
.about-intro { position: relative; padding: var(--page-top-space) 0 clamp(72px, 9vw, 132px); }
.about-close {
  position: absolute;
  z-index: 70;
  top: clamp(26px, 3vw, 48px);
  right: clamp(24px, 5vw, 76px);
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid rgba(28, 45, 51, .3);
  border-radius: 50%;
  background: var(--warm-ivory);
  color: var(--ink);
  font-family: var(--body);
  font-size: 27px;
  font-weight: 300;
  line-height: 1;
  text-decoration: none;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}
.about-page .about-close,
.why-page .about-close { position: fixed; }
.about-close:hover { background: var(--ink); color: var(--warm-ivory); transform: rotate(90deg); }
.about-close:focus-visible { outline: 2px solid var(--sea); outline-offset: 3px; }
.about-intro-grid,
.about-today-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(290px, .74fr);
  gap: clamp(64px, 13vw, 210px);
}
.about-intro-title h1,
.about-today h2,
.about-founders h2,
.about-closing h2 {
  margin: 0;
  color: var(--ink);
  font-family: var(--heading);
  font-weight: 500;
}
.about-intro-title h1 {
  max-width: 670px;
  font-size: clamp(49px, 5.15vw, 78px);
  letter-spacing: -.055em;
  line-height: .94;
}
.about-rule {
  display: block;
  width: 86px;
  height: 1px;
  margin-top: 30px;
  background: #b89a62;
}
.about-intro-copy {
  align-self: center;
  max-width: 360px;
  padding-top: 30px;
  color: #46545a;
  font-size: 15px;
  line-height: 1.62;
}
.about-intro-copy p { margin: 0; }
.about-intro-copy p + p { margin-top: 24px; }

.about-era {
  position: relative;
  overflow: hidden;
  min-height: 374px;
  background: #e6f1f6;
}
.about-era-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(320px, 1.02fr) minmax(270px, .82fr) minmax(280px, .8fr);
  min-height: 374px;
  padding-block: 57px;
}
.about-era-mark {
  display: flex;
  flex-direction: column;
  align-items: start;
  justify-content: center;
}
.about-era-mark span {
  color: #6c9abc;
  font-family: var(--heading);
  font-size: clamp(103px, 10.2vw, 156px);
  font-weight: 500;
  letter-spacing: -.08em;
  line-height: .68;
}
.about-era-mark i {
  display: block;
  width: 69px;
  height: 1px;
  margin: 34px 0 22px;
  background: #b89a62;
}
.about-era-mark p,
.about-eyebrow {
  margin: 0;
  color: #47708c;
  font-family: var(--body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .15em;
  line-height: 1.5;
  text-transform: uppercase;
}
.about-era-mark p { max-width: 250px; }
.about-era-copy {
  align-self: center;
  max-width: 348px;
  color: #3f4d54;
  font-size: 14px;
  line-height: 1.52;
}
.about-era-copy p { margin: 0; }
.about-era-copy p + p { margin-top: 18px; }
.about-era-illustration {
  position: absolute;
  z-index: 1;
  right: -24vw;
  bottom: -8vw;
  width: min(57vw, 820px);
  max-width: none;
  opacity: .21;
  pointer-events: none;
}

.about-today { padding: clamp(80px, 10vw, 148px) 0 clamp(90px, 11vw, 162px); }
.about-today h2 {
  max-width: 620px;
  margin-top: 24px;
  font-size: clamp(45px, 4.65vw, 70px);
  letter-spacing: -.055em;
  line-height: .98;
}
.about-today-copy {
  align-self: end;
  max-width: 390px;
  color: #3e4c52;
  font-size: 14px;
  line-height: 1.6;
}
.about-today-copy p { margin: 0; }
.about-today-copy p + p { margin-top: 16px; }
.about-today-copy .about-today-emphasis { margin-top: 24px; color: #a87b33; font-size: 16px; font-weight: 600; }

.about-founders {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  background: #e3e6e5;
}
.about-founders-copy {
  align-self: center;
  max-width: 555px;
  margin-left: auto;
  padding: clamp(70px, 9vw, 140px) clamp(40px, 7vw, 120px);
  color: #3d4b50;
  font-size: 14px;
  line-height: 1.6;
}
.about-founders h2 {
  margin: 22px 0 31px;
  font-size: clamp(46px, 4.2vw, 65px);
  letter-spacing: -.055em;
}
.about-founders-copy > p:not(.about-eyebrow) { margin: 0; }
.about-founders-copy > p:not(.about-eyebrow) + p { margin-top: 19px; }
.about-founders-image { min-height: 620px; }
.about-founders-image img { width: 100%; height: 100%; object-fit: cover; object-position: center; }

.about-closing { padding: clamp(86px, 11vw, 160px) 24px 80px; text-align: center; }
.about-closing h2 { font-size: clamp(49px, 5.1vw, 77px); letter-spacing: -.06em; line-height: .95; }
.about-closing .about-rule { margin: 25px auto 30px; }
.about-closing p {
  margin: 0 auto;
  color: #5d696d;
  font-size: 8px;
  font-weight: 600;
  letter-spacing: .11em;
  line-height: 1.5;
  text-transform: uppercase;
}

@media (max-width: 900px) {
  .about-shell { width: min(100% - 56px, 720px); }
  .about-intro-grid,
  .about-today-grid { grid-template-columns: 1fr; gap: 42px; }
  .about-intro-copy, .about-today-copy { max-width: 490px; padding-top: 0; }
  .about-era-grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1fr); }
  .about-era-copy { grid-column: 2; }
  .about-era-illustration { right: -23vw; width: min(95vw, 760px); opacity: .15; }
  .about-founders { grid-template-columns: 1fr; }
  .about-founders-copy { max-width: 650px; margin: 0 auto; padding-inline: 9vw; }
  .about-founders-image { min-height: 540px; }
}

@media (max-width: 600px) {
  .about-shell { width: min(100% - 42px, 520px); }
  .about-intro { padding-block: 48px 78px; }
  .about-close { top: 19px; right: 21px; width: 35px; height: 35px; font-size: 24px; }
  .about-intro-title h1 { font-size: clamp(43px, 12vw, 59px); line-height: .96; }
  .about-rule { margin-top: 24px; }
  .about-intro-copy { font-size: 14px; }
  .about-era { min-height: 0; }
  .about-era-grid { display: block; min-height: 0; padding-block: 68px; }
  .about-era-mark span { font-size: clamp(86px, 25vw, 120px); }
  .about-era-copy { max-width: 320px; margin-top: 39px; font-size: 14px; }
  .about-era-illustration { right: -72vw; bottom: -8vw; width: 168vw; opacity: .12; }
  .about-today { padding-block: 75px 91px; }
  .about-today h2 { margin-top: 18px; font-size: clamp(41px, 11.5vw, 55px); }
  .about-today-copy { font-size: 14px; }
  .about-founders-copy { padding: 73px 10.5vw; }
  .about-founders h2 { margin: 18px 0 26px; font-size: 49px; }
  .about-founders-image { min-height: 350px; }
  .about-closing { padding: 78px 24px 36px; }
  .about-closing h2 { font-size: clamp(43px, 11.8vw, 55px); }
  .about-closing p { max-width: 300px; font-size: 7px; }
}

/* ---------- Why ÉLAN ---------- */
.why-page main { background: var(--warm-ivory); }
.why-elan { padding: var(--page-top-space) 0 clamp(78px, 9vw, 130px); }
.why-shell { width: min(100% - 80px, 1335px); margin-inline: auto; }
.why-heading h1 {
  margin: 0;
  color: var(--ink);
  font-family: var(--heading);
  font-size: clamp(58px, 6vw, 91px);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: .84;
  text-transform: none;
}
.why-heading > p {
  margin: 20px 0 0 12px;
  color: #43545c;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .34em;
  line-height: 1.5;
  text-transform: uppercase;
}
.why-certificate {
  display: grid;
  justify-items: center;
  gap: 3px;
  width: min(100% - 220px, 740px);
  min-height: 79px;
  margin: 15px auto 5px;
  padding: 15px 24px;
  background: #dcecf5;
  color: var(--ink);
  text-align: center;
  text-transform: uppercase;
}
.why-certificate-plate {
  display: block;
  width: min(100%, 360px);
  height: auto;
  margin-bottom: 12px;
}
.why-certificate strong { font-size: 18px; font-weight: 500; letter-spacing: .16em; line-height: 1.2; }
.why-certificate span { font-size: 10px; font-weight: 600; letter-spacing: .2em; line-height: 1.45; }
.why-showcase {
  display: grid;
  grid-template-columns: minmax(180px, .8fr) minmax(430px, 2.08fr) minmax(180px, .8fr);
  align-items: center;
  gap: clamp(16px, 2.2vw, 38px);
  margin-top: 4px;
}
.why-feature-stack { display: grid; gap: 18px; }
.why-feature-stack p {
  display: grid;
  min-height: 82px;
  place-items: center;
  margin: 0;
  padding: 13px 20px;
  background: #dcecf5;
  color: #263a45;
  font-size: clamp(14px, 1.4vw, 19px);
  font-weight: 500;
  letter-spacing: .13em;
  line-height: 1.45;
  text-align: center;
  text-transform: uppercase;
}
.why-car-illustration { margin: -7px 0 -6px; }
.why-car-illustration img { width: 100%; max-height: 360px; object-fit: contain; }
.why-assurances {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 17px 31px;
  margin-top: 40px;
}
.why-assurances--additional { margin-top: 17px; }
.why-assurance {
  display: grid;
  align-content: center;
  justify-items: center;
  min-height: 143px;
  padding: 18px 25px;
  background: #dcecf5;
  color: #263a45;
  text-align: center;
}
.why-assurance h2 {
  max-width: 330px;
  margin: 0;
  color: inherit;
  font-family: var(--body);
  font-size: clamp(15px, 1.4vw, 19px);
  font-weight: 500;
  letter-spacing: .14em;
  line-height: 1.45;
  text-transform: uppercase;
}
.why-assurance p {
  margin: 8px 0 0;
  color: #43545c;
  font-size: 7px;
  font-weight: 600;
  letter-spacing: .12em;
  line-height: 1.45;
  text-transform: uppercase;
}
.why-assurance--approval { grid-template-columns: 128px minmax(0, 1fr); justify-items: start; gap: 12px; text-align: left; }
.why-assurance--approval .why-approval-marks { display: flex; align-items: center; gap: 9px; grid-row: span 2; height: 100%; }
.why-approval-marks img { display: block; max-width: 59px; mix-blend-mode: multiply; }
.why-approval-marks img:first-child { max-height: 75px; }
.why-approval-marks img:last-child { max-height: 51px; }
.why-assurance--approval h2 { font-size: 15px; text-align: left; }
.why-assurance--approval p { margin-top: 3px; text-align: left; }
.why-assurance--aftersales { padding-block: 14px; }
.why-assurance--aftersales img { width: min(100%, 178px); max-height: 46px; margin-top: 8px; object-fit: contain; mix-blend-mode: multiply; }
.why-assurance--aftersales p { margin-top: 4px; }

@media (max-width: 1020px) {
  .why-shell { width: min(100% - 56px, 860px); }
  .why-showcase { grid-template-columns: minmax(135px, .75fr) minmax(330px, 1.7fr) minmax(135px, .75fr); gap: 15px; }
  .why-feature-stack p { min-height: 72px; padding-inline: 12px; font-size: 13px; }
  .why-assurances { gap: 16px; }
  .why-assurances--additional { margin-top: 16px; }
  .why-assurance { min-height: 136px; padding-inline: 16px; }
  .why-assurance--approval { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .why-assurance--approval .why-approval-marks { grid-row: auto; height: auto; }
  .why-assurance--approval h2, .why-assurance--approval p { text-align: center; }
}

@media (max-width: 700px) {
  .why-elan { padding-top: var(--page-top-space); }
  .why-shell { width: min(100% - 40px, 540px); }
  .why-heading h1 { font-size: clamp(51px, 15vw, 70px); }
  .why-heading > p { max-width: 290px; margin: 16px 0 0; font-size: 9px; letter-spacing: .25em; }
  .why-certificate { width: 100%; min-height: 0; margin-top: 34px; padding: 15px 14px; }
  .why-certificate strong { font-size: 14px; }
  .why-certificate span { font-size: 8px; letter-spacing: .15em; }
  .why-showcase { grid-template-columns: 1fr; gap: 20px; margin-top: 20px; }
  .why-car-illustration { order: -1; margin: 0; }
  .why-car-illustration img { max-height: none; }
  .why-feature-stack { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .why-feature-stack p { min-height: 80px; font-size: 12px; }
  .why-feature-stack p:last-child { grid-column: span 2; }
  .why-feature-stack--right { margin-top: -11px; }
  .why-assurances { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 28px; }
  .why-assurances--additional { margin-top: 10px; }
  .why-assurance { min-height: 145px; padding: 16px 12px; }
  .why-assurance h2 { font-size: 12px; letter-spacing: .1em; }
  .why-assurance--approval { grid-column: span 2; grid-template-columns: 116px minmax(0, 1fr); justify-items: start; text-align: left; }
  .why-assurance--approval .why-approval-marks { grid-row: span 2; height: 100%; }
  .why-assurance--approval h2, .why-assurance--approval p { text-align: left; }
  .why-assurance--approval h2 { font-size: 12px; }
  .why-assurance--aftersales { grid-column: span 2; }
}

/* ---------- Design your ÉLAN ---------- */
.design-page main { background: var(--warm-ivory); }


.elan-configurator--design-page {
  width: min(100% - 80px, 1452px);
  height: 420px;
  min-height: 420px;
  margin: var(--section-space) auto 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid #dedbd5;
  background: var(--warm-ivory);
}
.elan-configurator--design-page .elan-configurator-viewer {
  position: relative;
  top: auto;
  align-self: auto;
  height: auto;
  min-height: 0;
  background: var(--warm-ivory);
}
.elan-configurator--design-page .elan-configurator-viewer-top { display: none; }
.elan-design-page-title {
  position: absolute;
  z-index: 8;
  top: 31px;
  left: clamp(34px, 3.4vw, 52px);
  margin: 0;
  color: var(--ink);
  font-family: var(--heading);
  font-size: clamp(35px, 3vw, 51px);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: .9;
}
.elan-configurator--design-page .elan-home-car-image {
  top: 0;
  right: auto;
  bottom: auto;
  left: 8%;
  width: 84%;
  height: 100%;
  object-fit: contain;
  object-position: center 25%;
}
.elan-design-page-pager {
  position: absolute;
  z-index: 8;
  bottom: 30px;
  left: 50%;
  display: flex;
  gap: 13px;
  transform: translateX(-50%);
}
.elan-design-page-pager i {
  display: block;
  width: 10px;
  height: 10px;
  border: 1px solid #4794c5;
  border-radius: 50%;
}
.elan-design-page-pager .is-active { background: var(--sea); border-color: var(--sea); }
.elan-configurator--design-page .elan-home-configurator-panel {
  display: block;
  min-height: 0;
  padding: 9px 40px 14px;
  background: var(--warm-ivory);
}
.elan-configurator--design-page .elan-home-configurator-form { width: 100%; max-width: none; }
.elan-configurator--design-page .elan-config-step {
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 14px;
  min-height: 71px;
  padding: 9px 0 8px;
  border-top: 1px solid #e2dfd9;
}
.elan-configurator--design-page .elan-config-step:first-of-type { border-top: 0; }
.elan-configurator--design-page .elan-config-step-title { gap: 3px; }
.elan-configurator--design-page .elan-config-step-title span {
  color: var(--sea);
  font-size: 8px;
  font-weight: 600;
  letter-spacing: .12em;
}
.elan-configurator--design-page .elan-config-step-title strong {
  font-family: var(--heading);
  font-size: 19px;
  font-weight: 500;
  letter-spacing: -.035em;
  line-height: 1.05;
}
.elan-configurator--design-page .elan-home-colour-options { gap: 21px; }
.elan-configurator--design-page .elan-home-colour-option {
  width: 42px;
  height: 26px;
  border: 1px solid rgba(28, 45, 51, .14);
  border-radius: 0;
}
.elan-configurator--design-page .elan-home-colour-option.is-selected {
  border-color: var(--sea);
  box-shadow: 0 0 0 1px #f7f3ea, 0 0 0 2px var(--sea);
}
.elan-configurator--design-page .elan-config-step-options > p:where(:not(.elan-config-colour-custom-note, .elan-config-note, .elan-config-adventure-note)) {
  gap: 7px;
  margin: 6px 0 0;
  color: var(--ink);
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
}
.elan-configurator--design-page .elan-config-step-options > p > i { width: 7px; height: 7px; background: var(--sea); }
.elan-configurator--design-page .elan-config-step--quote {
  min-height: 103px;
  padding-top: 16px;
  padding-bottom: 0;
}
.elan-configurator--design-page .elan-config-step-options--quote > p {
  max-width: 390px;
  margin: 0;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.42;
}
.elan-configurator--design-page .elan-home-configurator-bottom {
  align-items: center;
  gap: 18px;
  margin-top: 14px;
}
.elan-configurator--design-page .elan-home-configurator-price { gap: 3px; }
.elan-configurator--design-page .elan-home-configurator-price span { font-size: 8px; }
.elan-configurator--design-page .elan-home-configurator-price strong { font-size: 26px; }
.elan-configurator--design-page .elan-home-configurator-submit {
  min-width: 230px;
  min-height: 40px;
  padding-inline: 16px;
  background: #032a50;
  font-size: 10px;
}
.elan-configurator-floating-price {
  position: fixed;
  z-index: 75;
  right: clamp(16px, 2.2vw, 34px);
  bottom: clamp(16px, 2.2vw, 34px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3px 22px;
  width: min(360px, calc(100vw - 32px));
  padding: 13px 16px 12px;
  border: 1px solid rgba(28, 45, 51, .2);
  background: rgba(247, 243, 234, .94);
  box-shadow: 0 12px 32px rgba(20, 35, 39, .16);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.elan-configurator-floating-price > span {
  align-self: end;
  color: var(--sea);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .13em;
  line-height: 1.2;
  text-transform: uppercase;
}
.elan-configurator-floating-price strong {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  color: var(--ink);
  font-family: var(--heading);
  font-size: clamp(29px, 3vw, 39px);
  font-variant-numeric: tabular-nums;
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: .9;
  white-space: nowrap;
}
.elan-configurator-floating-price strong.is-animating { animation: elan-configurator-price-pulse .48s ease-out; }
.elan-configurator-floating-price small { color: var(--muted); font-size: 10px; line-height: 1.3; }
.elan-configurator-floating-price.is-hidden { visibility: hidden; opacity: 0; transform: translateY(13px); pointer-events: none; }
@keyframes elan-configurator-price-pulse {
  0% { color: var(--sea); transform: translateY(2px) scale(.96); }
  55% { color: var(--ink); transform: translateY(-1px) scale(1.04); }
  100% { color: var(--ink); transform: translateY(0) scale(1); }
}

@media (max-width: 640px) {
  .elan-configurator-floating-price { bottom: max(12px, env(safe-area-inset-bottom)); padding: 12px 14px; }
  .elan-configurator-floating-price strong { font-size: 30px; }
}

.design-specifications { padding: 26px 24px 24px; text-align: center; }
.design-specifications h2,
.design-editions > h2 {
  margin: 0;
  color: var(--ink);
  font-family: var(--body);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .12em;
  line-height: 1.4;
  text-transform: uppercase;
}
.design-specifications > div { display: flex; justify-content: center; gap: 18px; margin-top: 12px; }
.design-specifications a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: min(100%, 297px);
  min-height: 37px;
  padding: 8px 23px;
  border: 1px solid var(--sea);
  color: var(--ink);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .1em;
  text-decoration: none;
  text-transform: uppercase;
  transition: background .18s ease, color .18s ease;
}
.design-specifications a:hover { background: var(--sea); color: #fff; }
.design-bespoke,
.design-editions,
.design-part-exchange { width: min(100% - 80px, 1452px); margin-inline: auto; }
.design-bespoke {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 34px;
  margin-top: 10px;
  padding: clamp(26px, 3.4vw, 47px) clamp(28px, 4vw, 56px);
  background: var(--mediterranean-blue);
  color: #fff;
}
.design-bespoke.design-business { background: var(--ink); }
.design-bespoke h2 {
  margin: 0;
  color: inherit;
  font-family: var(--heading);
  font-size: clamp(37px, 3.4vw, 57px);
  font-weight: 500;
  letter-spacing: -.05em;
  line-height: .9;
}
.design-bespoke h2 strong {
  font-family: var(--body);
  font-size: .84em;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.design-bespoke p { max-width: 610px; margin: 13px 0 0; font-size: clamp(14px, 1.25vw, 19px); line-height: 1.38; }
.design-bespoke > a,
.design-part-exchange > a {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 17px;
  min-width: 226px;
  min-height: 50px;
  padding: 11px 24px;
  border: 1px solid rgba(255, 255, 255, .9);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .11em;
  text-decoration: none;
  text-transform: uppercase;
  transition: background .18s ease, color .18s ease;
}
.design-bespoke > a { min-width: 382px; }
.design-bespoke > a:hover { background: var(--soft-white); color: var(--ink); }
.design-bespoke > a span,
.design-part-exchange > a span { font-size: 19px; font-weight: 400; }
.design-editions { margin-top: 30px; }
.design-editions > h2 { margin-bottom: 18px; }
.design-editions-grid {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 60px) / 4);
  gap: 20px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 2px;
  padding: 2px 2px 12px;
  scrollbar-width: thin;
  scrollbar-color: var(--sea) var(--sand);
}
.design-editions-grid:focus-visible { outline: 2px solid var(--sea); outline-offset: 4px; }
.design-editions-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin-top: 12px; }
.design-editions-view-all { color: var(--sea); font-size: 12px; font-weight: 600; text-underline-offset: 3px; }
.design-editions-controls { display: flex; gap: 8px; }
.design-editions-controls[hidden] { display: none; }
.design-editions-controls button { display: inline-grid; width: 40px; height: 40px; padding: 0; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: transparent; color: var(--ink); cursor: pointer; font: 400 20px/1 var(--body); }
.design-editions-controls button:hover:not(:disabled) { background: var(--ink); color: var(--soft-white); }
.design-editions-controls button:disabled { cursor: default; opacity: .35; }
.design-editions-controls button:focus-visible { outline: 2px solid var(--sea); outline-offset: 3px; }
.design-edition-card {
  position: relative;
  display: grid;
  min-width: 0;
  scroll-snap-align: start;
  grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr);
  align-items: stretch;
  min-height: 134px;
  overflow: hidden;
  padding: 0;
  background: #f1eeea;
  color: var(--ink);
  text-decoration: none;
}
.design-edition-card > div { display: flex; flex-direction: column; justify-content: center; padding: 20px 17px 20px 23px; }
.design-edition-card h3 { margin: 0; overflow-wrap: anywhere; font-family: var(--heading); font-size: clamp(19px, 1.55vw, 27px); font-weight: 500; letter-spacing: -.04em; line-height: .95; }
.design-edition-card p { margin: 10px 0 0; overflow-wrap: anywhere; font-size: 12px; line-height: 1.45; }
.design-edition-card img { width: 100%; height: 100%; min-height: 134px; object-fit: cover; transition: transform .35s ease; }
.design-edition-card > span { position: absolute; right: 13px; bottom: 10px; font-size: 21px; line-height: 1; }
.design-edition-card:hover img { transform: scale(1.045); }
.design-part-exchange {
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr) auto;
  align-items: center;
  gap: 27px;
  margin-top: 30px;
  margin-bottom: 110px;
  padding: 16px 40px;
  background: linear-gradient(105deg, #d6e8f4, #a9cbe5);
  color: var(--ink);
}
.design-part-exchange-mark { width: 102px; color: var(--sea); }
.design-part-exchange-mark svg { display: block; width: 100%; height: auto; }
.design-part-exchange-copy > p { margin: 0 0 6px; color: var(--sea); font-size: 10px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.design-part-exchange h2 { margin: 0; font-family: var(--heading); font-size: clamp(34px, 3vw, 51px); font-weight: 500; letter-spacing: -.05em; line-height: .95; }
.design-part-exchange-copy > span { display: block; margin-top: 10px; font-size: 14px; }
.design-part-exchange > a { min-width: 350px; border-color: var(--sea); background: transparent; color: var(--sea); }
.design-part-exchange > a:hover { background: var(--sea); color: #fff; }

@media (min-width: 1181px) and (max-width: 1427px) {
  .elan-configurator--design-page .elan-home-configurator-panel { padding-inline: 28px; }
  .elan-configurator--design-page .elan-config-step { grid-template-columns: 145px minmax(0, 1fr); }
  .elan-configurator--design-page .elan-home-colour-options { gap: 13px; }
  .elan-configurator--design-page .elan-home-colour-option { width: 34px; height: 24px; }
  .elan-configurator--design-page .elan-home-configurator-bottom { gap: 14px; }
  .elan-configurator--design-page .elan-home-configurator-submit { min-width: 220px; }
}

@media (min-width: 1001px) and (max-width: 1180px) {
  .elan-configurator--design-page {
    width: min(100% - 48px, 860px);
    height: auto;
    min-height: 0;
    grid-template-columns: 1fr;
  }
  .elan-configurator--design-page .elan-configurator-viewer { height: 570px; min-height: 570px; }
  .elan-configurator--design-page .elan-home-car-image { inset: 0; width: 100%; height: 100%; object-position: center; }
  .elan-configurator--design-page .elan-home-configurator-panel { padding: 52px 8vw; }
}

@media (max-width: 1000px) {
  .elan-configurator--design-page {
    width: min(100% - 48px, 860px);
    height: auto;
    min-height: 0;
    grid-template-columns: 1fr;
    margin-top: 0;
  }
  .elan-configurator--design-page .elan-configurator-viewer { position: relative; height: 570px; min-height: 570px; }
  .elan-configurator--design-page .elan-home-car-image { inset: 0; width: 100%; height: 100%; object-position: center; }
  .elan-configurator--design-page .elan-home-configurator-panel { min-height: 0; padding: 52px 8vw; }
  .design-bespoke, .design-editions, .design-part-exchange { width: min(100% - 48px, 860px); }
  .design-editions-grid { grid-auto-columns: calc((100% - 20px) / 2); }
  .design-edition-card { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .design-part-exchange { grid-template-columns: 100px minmax(0, 1fr); }
  .design-part-exchange > a { grid-column: 2; justify-self: start; }
}

@media (max-width: 640px) {
  .elan-configurator--design-page { width: min(100% - 40px, 540px); }
  .elan-configurator--design-page .elan-configurator-viewer { height: 475px; min-height: 475px; }
  .elan-configurator--design-page .elan-configurator-viewer-top { top: 16px; left: 20px; }
  .elan-design-page-title { top: 61px; left: 22px; font-size: 48px; }
  .elan-configurator--design-page .elan-home-car-image { object-position: center 61%; }
  .elan-design-page-pager { bottom: 20px; }
  .elan-configurator--design-page .elan-home-configurator-panel { padding: 38px 22px 44px; }
  .elan-configurator--design-page .elan-config-step { grid-template-columns: 1fr; gap: 14px; padding: 21px 0; }
  .elan-configurator--design-page .elan-config-step-title strong { font-size: 22px; }
  .elan-configurator--design-page .elan-home-colour-option { width: 38px; height: 38px; }
  .elan-configurator--design-page .elan-home-configurator-bottom { align-items: stretch; flex-direction: column; }
  .elan-configurator--design-page .elan-home-configurator-submit { width: 100%; }
  .design-specifications { padding: 25px 22px 17px; }
  .design-specifications > div { flex-direction: column; gap: 8px; }
  .design-specifications a { width: 100%; }
  .design-bespoke, .design-editions, .design-part-exchange { width: min(100% - 40px, 540px); }
  .design-bespoke { align-items: start; flex-direction: column; padding: 31px 27px; }
  .design-bespoke h2 { font-size: 43px; }
  .design-bespoke p { font-size: 13px; }
  .design-bespoke > a { width: 100%; min-width: 0; max-width: 100%; }
  .design-editions { margin-top: 31px; }
  .design-editions-grid { grid-auto-columns: min(86%, 360px); gap: 10px; }
  .design-edition-card { min-height: 154px; grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr); }
  .design-edition-card img { min-height: 154px; }
  .design-part-exchange { grid-template-columns: 70px minmax(0, 1fr); gap: 17px; margin-bottom: 58px; padding: 24px 21px; }
  .design-part-exchange-mark { width: 66px; }
  .design-part-exchange h2 { font-size: 38px; }
  .design-part-exchange-copy > span { font-size: 13px; }
  .design-part-exchange > a { grid-column: 1 / -1; width: 100%; min-width: 0; }
}

/* ---------- Available to View ---------- */
.available-page main,
.car-detail-page main { background: var(--warm-ivory); }
.available-collection { width: min(100% - 80px, 1250px); margin: 0 auto; padding: var(--page-top-space) 0 100px; }
.available-collection-heading { max-width: 760px; margin: 0 auto 28px; text-align: center; }
.available-collection-heading h1 {
  margin: 0;
  color: var(--ink);
  font-family: var(--heading);
  font-size: clamp(56px, 5.5vw, 81px);
  font-weight: 500;
  letter-spacing: -.06em;
  line-height: .9;
}
.available-collection-heading p { margin: 20px 0 0; color: var(--muted); font-size: 16px; line-height: 1.7; }
.available-cars-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.available-car-card {
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 31px 25px 29px;
  border: 1px solid rgba(28, 45, 51, .09);
  background: rgba(255, 254, 250, .72);
  box-shadow: 0 8px 22px rgba(28, 45, 51, .035);
}
.available-car-meta { margin: 0; color: var(--muted); font-size: 13px; }
.available-car-card h2 {
  margin: 10px 0 20px;
  color: var(--ink);
  font-family: var(--heading);
  font-size: clamp(32px, 3.1vw, 48px);
  font-weight: 500;
  letter-spacing: -.05em;
  line-height: .98;
}
.available-car-card > img { width: 100%; aspect-ratio: 1.5 / 1; object-fit: cover; background: #ded9d1; }
.available-car-description { min-height: 49px; margin: 18px 5px 21px; color: var(--muted); font-size: 15px; line-height: 1.52; }
.available-car-actions { display: grid; gap: 16px; margin-top: auto; }
.available-car-viewing,
.vehicle-viewing-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 52px;
  padding: 12px 20px;
  background: linear-gradient(110deg, #142e44, #193d5a);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .13em;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition: background .18s ease, transform .18s ease;
}
.available-car-viewing:hover,
.vehicle-viewing-cta:hover { background: var(--sea); color: #fff; transform: translateY(-1px); }
.available-car-detail { color: var(--ink); font-size: 15px; text-align: center; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.available-car-detail:hover { color: var(--sea); }
.available-empty { width: min(100% - 40px, 690px); margin: 80px auto; padding: 60px 34px; border: 1px solid var(--line); text-align: center; }
.available-empty h1,
.available-empty h2 { margin: 0; font-size: 42px; }
.available-empty p { max-width: 460px; margin: 17px auto 27px; color: var(--muted); }
.available-empty a { display: inline-flex; padding: 12px 22px; background: var(--ink); color: #fff; font-size: 11px; font-weight: 600; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.available-empty--not-found { margin-top: 86px; margin-bottom: 110px; }

.vehicle-detail { width: min(100% - 80px, 1370px); margin: 0 auto; padding: 33px 0 100px; }
.vehicle-back { display: inline-flex; align-items: center; gap: 9px; padding-bottom: 5px; border-bottom: 2px solid var(--ink); color: var(--ink); font-family: var(--heading); font-size: 19px; text-decoration: none; }
.vehicle-back span { font-family: var(--body); font-size: 21px; line-height: 1; }
.vehicle-detail-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(380px, .8fr); gap: 28px; margin-top: 23px; }
.vehicle-gallery { padding: 14px; border: 1px solid rgba(28, 45, 51, .1); background: rgba(255, 254, 250, .65); }
.vehicle-main-image { display: block; width: 100%; aspect-ratio: 1.48 / 1; object-fit: cover; background: #ded9d1; }
.vehicle-gallery-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; margin-top: 13px; }
.vehicle-thumbnail { display: block; min-width: 0; padding: 0; overflow: hidden; border: 2px solid transparent; background: #ded9d1; cursor: pointer; }
.vehicle-thumbnail.is-active { border-color: var(--sea); }
.vehicle-thumbnail img { display: block; width: 100%; aspect-ratio: 1 / .82; object-fit: cover; }
.vehicle-gallery-note { display: flex; grid-column: span 3; flex-direction: column; justify-content: center; min-height: 100%; padding: 18px; border: 1px solid rgba(28, 45, 51, .12); background: rgba(220, 236, 245, .34); }
.vehicle-gallery-note span { color: var(--sea); font-size: 10px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.vehicle-gallery-note p { max-width: 240px; margin: 9px 0 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.vehicle-specification { padding: clamp(34px, 4vw, 60px); background: #f1eee7; }
.vehicle-specification h1 { margin: 0; color: var(--ink); font-family: var(--heading); font-size: clamp(45px, 4vw, 62px); font-weight: 500; letter-spacing: -.06em; line-height: .92; }
.vehicle-description { margin: 24px 0 31px; color: #394950; font-size: 17px; line-height: 1.55; }
.vehicle-specification h2 { margin: 0 0 17px; color: var(--ink); font-family: var(--heading); font-size: 26px; font-weight: 500; letter-spacing: -.04em; }
.vehicle-spec-list { margin: 0; }
.vehicle-spec-list > div { display: grid; grid-template-columns: minmax(120px, .75fr) minmax(0, 1.25fr); gap: 18px; padding: 10px 0; border-bottom: 1px solid rgba(28, 45, 51, .16); }
.vehicle-spec-list dt { color: #44535a; font-size: 14px; font-weight: 400; }
.vehicle-spec-list dd { margin: 0; color: var(--ink); font-size: 14px; font-weight: 600; }
.vehicle-viewing-cta { margin-top: 30px; }
.vehicle-or { display: flex; align-items: center; gap: 14px; margin: 28px 0; color: var(--muted); font-size: 13px; font-weight: 600; letter-spacing: .1em; text-align: center; text-transform: uppercase; }
.vehicle-or::before, .vehicle-or::after { flex: 1; height: 1px; background: rgba(28, 45, 51, .16); content: ''; }
.vehicle-part-exchange { text-align: center; }
.vehicle-part-exchange strong { color: #548dc0; font-size: 16px; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.vehicle-part-exchange p { margin: 6px 0 18px; color: #3f4f56; font-size: 14px; }
.vehicle-part-exchange a { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 51px; padding: 12px 18px; background: #5795ca; color: #fff; font-size: 11px; font-weight: 600; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; transition: background .18s ease; }
.vehicle-part-exchange a:hover { background: var(--sea); color: #fff; }

@media (max-width: 850px) {
  .available-collection { width: min(100% - 48px, 760px); }
  .vehicle-detail { width: min(100% - 48px, 760px); }
  .vehicle-detail-grid { grid-template-columns: 1fr; }
  .vehicle-specification { padding: 42px; }
}

@media (max-width: 640px) {
  .available-collection { width: min(100% - 40px, 540px); padding: var(--page-top-space) 0 70px; }
  .available-collection-heading { margin-bottom: 30px; text-align: left; }
  .available-collection-heading h1 { font-size: clamp(52px, 14vw, 67px); }
  .available-collection-heading p { font-size: 14px; line-height: 1.6; }
  .available-cars-grid { grid-template-columns: 1fr; gap: 16px; }
  .available-car-card { padding: 25px 17px 24px; }
  .available-car-card h2 { font-size: 39px; }
  .available-car-description { margin: 16px 3px 20px; font-size: 14px; }
  .vehicle-detail { width: min(100% - 40px, 540px); padding: 27px 0 65px; }
  .vehicle-back { font-size: 18px; }
  .vehicle-detail-grid { gap: 18px; margin-top: 20px; }
  .vehicle-gallery { padding: 8px; }
  .vehicle-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 8px; }
  .vehicle-gallery-note { grid-column: span 1; padding: 13px; }
  .vehicle-gallery-note p { font-size: 12px; }
  .vehicle-specification { padding: 31px 23px; }
  .vehicle-specification h1 { font-size: 47px; }
  .vehicle-description { margin: 19px 0 26px; font-size: 15px; }
  .vehicle-spec-list > div { grid-template-columns: .82fr 1.18fr; gap: 12px; }
  .vehicle-spec-list dt, .vehicle-spec-list dd { font-size: 13px; }
  .vehicle-part-exchange strong { font-size: 13px; }
}

/* ---------- Rent ÉLAN ---------- */
.rent-page main,
.journal-page main,
.terms-page main { background: var(--warm-ivory); }
.rent-shell,
.journal-shell,
.terms-shell { width: min(100% - 80px, 1345px); margin-inline: auto; }
.rent-hero { padding: clamp(70px, 8vw, 120px) 0 18px; }
.rent-hero .rent-shell { display: grid; grid-template-columns: minmax(0, .92fr) minmax(290px, .55fr); align-items: end; gap: 36px; }
.rent-eyebrow { margin: 0; color: #548dc0; font-size: 10px; font-weight: 600; letter-spacing: .15em; line-height: 1.5; text-transform: uppercase; }
.rent-hero-copy h1,
.rent-service h2,
.rent-plan h2,
.rent-closing h2 {
  margin: 14px 0 0;
  color: var(--ink);
  font-family: var(--heading);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: .9;
}
.rent-hero-copy h1 { font-size: clamp(64px, 6vw, 93px); }
.rent-hero-copy > p:not(.rent-eyebrow) { max-width: 440px; margin: 15px 0 0; color: #32434b; font-family: var(--heading); font-size: clamp(23px, 2vw, 31px); line-height: 1.25; }
.rent-hero-copy > a,
.rent-service-copy > a,
.rent-closing a {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-top: 28px;
  padding-bottom: 4px;
  border-bottom: 1px solid #548dc0;
  color: #548dc0;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .12em;
  text-decoration: none;
  text-transform: uppercase;
}
.rent-hero-copy > a::after,
.rent-service-copy > a::after,
.rent-closing a::after { content: '→'; font-size: 16px; font-weight: 400; }
.rent-hero-media { grid-column: 1 / -1; width: min(100%, 840px); margin: 34px 0 0; }
.rent-hero-media img { display: block; width: 100%; aspect-ratio: 2.05 / 1; object-fit: cover; object-position: center 55%; }
.rent-services { border-top: 1px solid rgba(28, 45, 51, .11); }
.rent-services .rent-shell { padding-top: 18px; }
.rent-service,
.rent-plan { display: grid; grid-template-columns: minmax(260px, .82fr) minmax(0, 1.18fr); align-items: center; gap: clamp(45px, 8vw, 150px); min-height: 445px; padding: clamp(45px, 6vw, 88px) clamp(6px, 3vw, 45px); }
.rent-service-copy { max-width: 345px; }
.rent-service h2,
.rent-plan h2 { font-size: clamp(48px, 4.8vw, 71px); }
.rent-service-copy > p:not(.rent-eyebrow) { margin: 13px 0 0; color: #304149; font-size: 15px; line-height: 1.55; }
.rent-service-copy > p:not(.rent-eyebrow):nth-of-type(2) { max-width: 275px; margin-top: 28px; }
.rent-service-media { height: 100%; min-height: 326px; margin: 0; }
.rent-service-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rent-service:nth-child(2) { position: relative; margin-inline: calc((100vw - min(100vw - 80px, 1345px)) / -2); padding-inline: max(calc((100vw - min(100vw - 80px, 1345px)) / 2), 40px); background: #e5f1f7; }
.rent-service:nth-child(2) .rent-service-copy { justify-self: end; }
.rent-service:nth-child(3) { border-top: 1px solid rgba(28, 45, 51, .08); }
.rent-plan { grid-template-columns: minmax(240px, .73fr) minmax(0, 1.27fr); min-height: 350px; padding-top: 56px; padding-bottom: 56px; }
.rent-plan::before { display: block; min-height: 212px; background: #ece9e3 url('../img/01.jpeg') center / cover no-repeat; content: ''; }
.rent-plan .rent-service-copy { max-width: 400px; }
.rent-closing { margin-top: 12px; padding: 52px 0 64px; background: linear-gradient(105deg, #d9ebf7, #d4e7f5); }
.rent-closing .rent-shell { display: grid; grid-template-columns: minmax(250px, .7fr) minmax(0, 1.3fr); gap: clamp(45px, 12vw, 180px); }
.rent-closing h2 { font-size: clamp(50px, 5vw, 74px); }
.rent-closing .rent-shell > p:not(.rent-eyebrow) { max-width: 450px; margin: 10px 0 0; color: #40525b; font-size: 15px; line-height: 1.55; }
.rent-closing .rent-shell > p:not(.rent-eyebrow):nth-of-type(2) { grid-column: 2; margin-top: -34px; }
.rent-closing a { grid-column: 2; width: max-content; margin-top: -17px; color: var(--sea); border-color: var(--sea); }

/* ---------- ÉLAN Journal ---------- */
.journal-page-hero { padding: var(--page-top-space) 0 27px; text-align: center; }
.journal-page-hero p:first-child,
.journal-feature-copy > p:first-child,
.journal-shell > header > p,
.journal-story-card h3 { margin: 0; color: var(--sea); font-size: 10px; font-weight: 600; letter-spacing: .15em; line-height: 1.5; text-transform: uppercase; }
.journal-page-hero h1 { margin: 15px 0 0; color: var(--ink); font-family: var(--heading); font-size: clamp(63px, 6vw, 90px); font-weight: 500; letter-spacing: -.06em; line-height: .88; }
.journal-page-hero p:last-child { margin: 16px 0 0; color: var(--muted); font-size: 16px; }
.journal-feature { display: grid; grid-template-columns: minmax(0, 1.03fr) minmax(350px, .97fr); border: 1px solid rgba(28, 45, 51, .1); background: rgba(255, 254, 250, .56); }
.journal-feature-media { min-height: 367px; margin: 0; }
.journal-feature-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.journal-feature-copy { align-self: center; max-width: 480px; padding: clamp(38px, 5.8vw, 86px); }
@media (min-width: 1101px) {
  .journal-feature--article { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: start; margin-bottom: 48px; }
  .journal-feature--article .journal-feature-media { min-height: 0; }
  .journal-feature--article .journal-feature-media img { height: auto; object-fit: contain; }
  .journal-feature--article .journal-feature-copy { align-self: start; min-width: 0; max-width: none; padding: 32px clamp(28px, 3vw, 48px); }
}
.journal-feature-copy h2 { margin: 22px 0 17px; color: var(--ink); font-family: var(--heading); font-size: clamp(39px, 3.8vw, 58px); font-weight: 500; letter-spacing: -.055em; line-height: .92; }
.journal-feature-copy > p:nth-of-type(2) { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.63; }
.journal-feature-copy > a,
.journal-feature-copy .journal-back-link,
.journal-story-card > div > a { display: inline-flex; align-items: center; gap: 10px; margin-top: 26px; padding-bottom: 3px; border-bottom: 1px solid var(--ink); color: var(--ink); font-size: 13px; text-decoration: none; }
.journal-feature-copy > a::after,
.journal-feature-copy .journal-back-link::after,
.journal-story-card > div > a::after { content: '→'; font-size: 17px; }
.journal-shell + .journal-shell { margin-top: 44px; }
.journal-shell > header { max-width: 600px; margin-bottom: 23px; }
#journal-stories > header { margin-bottom: clamp(38px, 4vw, 58px); }
#journal-stories { margin-bottom: clamp(72px, 9vw, 140px); }
.journal-shell > header h2 { margin: 13px 0 0; color: var(--ink); font-family: var(--heading); font-size: clamp(38px, 3.8vw, 58px); font-weight: 500; letter-spacing: -.055em; line-height: .94; }
.journal-story-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.journal-story-card { display: grid; grid-template-columns: minmax(110px, .78fr) minmax(0, 1.22fr); gap: 17px; min-height: 202px; padding: 15px; border: 1px solid rgba(28, 45, 51, .09); background: rgba(255, 254, 250, .55); }
.journal-story-media { min-height: 170px; margin: 0; }
.journal-story-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.journal-story-card > div { align-self: center; }
.journal-story-card h3 { color: #425b6a; }
.journal-story-card p { margin: 12px 0 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.journal-story-card > div > a { margin-top: 13px; font-size: 12px; }
.journal-page-note { margin-top: 39px; padding: 62px 0; border-top: 1px solid rgba(28, 45, 51, .1); text-align: center; }
.journal-page-note h2 { margin: 0; color: var(--ink); font-family: var(--heading); font-size: clamp(41px, 4vw, 62px); font-weight: 500; letter-spacing: -.055em; }
.journal-page-note p { max-width: 540px; margin: 16px auto 0; color: var(--muted); }
.journal-page-note a { color: var(--ink); }

/* ---------- Terms and Conditions ---------- */
.terms-page-content { padding: var(--page-top-space) 0 104px; }
:is(.privacy-policy-document, .terms-document-text) { max-width: 790px; margin-inline: auto; color: #222; font-size: 16px; line-height: 1.75; overflow-wrap: anywhere; }
.privacy-policy-intro { margin-top: 42px; }
.terms-document-text > .terms-page-heading { margin-bottom: 42px; }
.terms-seller-data { display: grid; grid-template-columns: minmax(110px, .35fr) minmax(0, 1fr); gap: 10px 24px; margin: 28px 0 40px; padding: 24px 0; border-block: 1px solid var(--line); }
.terms-seller-data dt { font-weight: 600; }
.terms-seller-data dd { margin: 0; }
@media (max-width: 640px) {
  .terms-seller-data { grid-template-columns: 1fr; gap: 3px; }
  .terms-seller-data dd + dt { margin-top: 12px; }
}
:is(.privacy-policy-document, .terms-document-text) > section { margin-top: 36px; }
:is(.privacy-policy-document, .terms-document-text) h2 { margin: 0 0 16px; font-size: clamp(29px, 3vw, 38px); line-height: 1.15; text-align: left; text-wrap: initial; }
:is(.privacy-policy-document, .terms-document-text) h3 { margin: 22px 0 8px; font: 600 17px/1.5 var(--body); letter-spacing: 0; }
:is(.privacy-policy-document, .terms-document-text) p { margin: 0 0 16px; }
:is(.privacy-policy-document, .terms-document-text) ul { margin: 0 0 18px; padding-left: 24px; }
:is(.privacy-policy-document, .terms-document-text) li + li { margin-top: 5px; }
:is(.privacy-policy-document, .terms-document-text) a { color: var(--sea); text-underline-offset: 3px; }
:is(.privacy-policy-document, .terms-document-text) a:focus-visible { outline: 2px solid var(--sea); outline-offset: 4px; }
.privacy-language-note { max-width: 790px; margin: 0 auto 24px; color: #454953; font-size: 14px; }
.terms-page-heading { max-width: 680px; text-align: center; margin: 0 auto; }
.terms-page-heading h1 { margin: 0; color: var(--ink); font-family: var(--heading); font-size: clamp(55px, 5.5vw, 82px); font-weight: 500; letter-spacing: -.06em; line-height: .9; }
.terms-page-heading p { margin: 17px 0 0; color: var(--muted); font-size: 16px; }
.terms-notice { max-width: 790px; margin: 42px auto 26px; padding: 20px 25px; border-left: 3px solid #77a7ca; background: #e7f1f6; color: #3c4e57; font-size: 14px; line-height: 1.58; }
.terms-notice p { margin: 0; }
.terms-notice p + p { margin-top: 11px; }
.terms-notice a { color: var(--sea); font-weight: 600; }
.terms-document-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; max-width: 900px; margin: 0 auto; }
.terms-document-card { padding: 36px; border: 1px solid rgba(28, 45, 51, .13); background: rgba(255, 254, 250, .55); }
.terms-document-card h2 { margin: 0; color: var(--ink); font-family: var(--heading); font-size: 42px; font-weight: 500; letter-spacing: -.05em; }
.terms-document-card p { margin: 14px 0 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.terms-document-card a { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 46px; margin-top: 8px; padding: 10px 15px; border: 1px solid var(--sea); color: var(--sea); font-size: 10px; font-weight: 600; letter-spacing: .1em; text-align: center; text-decoration: none; text-transform: uppercase; transition: background .18s ease, color .18s ease; }
.terms-document-card a:hover { background: var(--sea); color: #fff; }
.terms-document-card p + p a { border-color: transparent; color: var(--ink); text-decoration: underline; text-transform: none; letter-spacing: 0; font-size: 13px; }
.terms-document-card p + p a:hover { background: transparent; color: var(--sea); }

@media (max-width: 850px) {
  .rent-shell, .journal-shell, .terms-shell { width: min(100% - 48px, 760px); }
  .rent-hero .rent-shell { grid-template-columns: 1fr; }
  .rent-hero-media { margin-top: 8px; }
  .rent-service, .rent-plan { gap: 36px; }
  .rent-service:nth-child(2) { margin-inline: -24px; padding-inline: 24px; }
  .rent-closing .rent-shell { grid-template-columns: 1fr; gap: 19px; }
  .rent-closing .rent-shell > p:not(.rent-eyebrow):nth-of-type(2), .rent-closing a { grid-column: auto; margin-top: 0; }
  .journal-feature { grid-template-columns: 1fr; }
  .journal-feature-media { min-height: 390px; }
  .journal-feature-copy { max-width: none; }
  .journal-story-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .rent-shell, .journal-shell, .terms-shell { width: min(100% - 40px, 540px); }
  .rent-hero { padding-top: 61px; }
  .rent-hero-copy h1 { font-size: 65px; }
  .rent-hero-copy > p:not(.rent-eyebrow) { font-size: 24px; }
  .rent-hero-media { width: 100%; margin-top: 28px; }
  .rent-hero-media img { aspect-ratio: 1.25 / 1; }
  .rent-service, .rent-plan { grid-template-columns: 1fr; min-height: 0; gap: 30px; padding: 61px 0; }
  .rent-service h2, .rent-plan h2 { font-size: 53px; }
  .rent-service-media { min-height: 290px; }
  .rent-service:nth-child(2) { margin-inline: -20px; padding-inline: 20px; }
  .rent-service:nth-child(2) .rent-service-copy { justify-self: auto; }
  .rent-plan { grid-template-columns: 1fr; }
  .rent-plan::before { min-height: 250px; order: 2; }
  .rent-closing { padding: 51px 0; }
  .rent-closing h2 { font-size: 58px; }
  .rent-closing a { width: max-content; }
  .journal-page-hero { padding-top: var(--page-top-space); text-align: left; }
  .journal-page-hero h1 { font-size: 64px; }
  .journal-page-hero p:last-child { font-size: 15px; }
  .journal-feature-media { min-height: 285px; }
  .journal-feature-copy { padding: 31px 24px 35px; }
  .journal-feature-copy h2 { font-size: 49px; }
  .journal-shell + .journal-shell { margin-top: 32px; }
  .journal-shell > header h2 { font-size: 47px; }
  .journal-story-grid { grid-template-columns: 1fr; gap: 10px; }
  .journal-story-card { grid-template-columns: 115px minmax(0, 1fr); min-height: 170px; padding: 12px; }
  .journal-story-media { min-height: 145px; }
  .journal-page-note { margin-top: 31px; padding: 50px 0; text-align: left; }
  .journal-page-note p { margin-left: 0; }
  .terms-page-content { padding: var(--page-top-space) 0 70px; }
  .terms-page-heading { text-align: left; }
  .terms-page-heading h1 { font-size: 59px; }
  .terms-page-heading p { font-size: 15px; }
  .terms-notice { margin-top: 30px; padding: 18px; }
  .terms-document-grid { grid-template-columns: 1fr; gap: 10px; }
  .terms-document-card { padding: 27px 22px; }
}

/* ---------- Briefing delivery refinements ---------- */
.home-page .hero-actions .btn-ink,
.home-page .hero-actions .btn-outline-ink {
  border: 1px solid rgba(255, 254, 250, .55);
  background: rgba(18, 35, 34, .34);
  box-shadow: 0 10px 30px rgba(5, 19, 19, .17);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}
.home-page .hero-actions .btn-ink:hover,
.home-page .hero-actions .btn-outline-ink:hover {
  border-color: rgba(255, 254, 250, .8);
  background: rgba(247, 243, 234, .27);
  color: #fff;
}

.elan-association-strip { padding: 24px 0 40px; background: var(--warm-ivory); }
.elan-association-strip .container-x { display: grid; grid-template-columns: minmax(200px, .45fr) minmax(0, 1fr); align-items: center; gap: 32px; padding: 30px clamp(24px, 3vw, 44px); border: 1px solid var(--line); background: var(--soft-white); }
.elan-association-strip h2 { margin: 0; color: var(--ink); font-family: var(--heading); font-size: clamp(26px, 2.3vw, 34px); font-weight: 500; letter-spacing: -.025em; line-height: 1.15; }
.elan-association-logos { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 24px 36px; }
.elan-association-logos > a,
.elan-association-logo { display: inline-flex; align-items: center; justify-content: center; min-width: 130px; max-width: 180px; min-height: 60px; color: var(--ink); font-family: var(--heading); font-size: 19px; text-align: center; text-decoration: none; }
.elan-association-logos img { width: 100%; max-height: 60px; object-fit: contain; filter: none; opacity: 1; }
.elan-association-logos a:focus-visible { outline: 2px solid var(--sea); outline-offset: 6px; }

.rent-media-placeholder {
  display: grid;
  width: 100%;
  height: 100%;
  min-height: inherit;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(28, 45, 51, .14);
  background:
    radial-gradient(circle at 82% 20%, rgba(255, 254, 250, .86) 0 5%, transparent 5.2%),
    linear-gradient(140deg, #d9eaf4 0%, #edf1ed 48%, #c2d5e1 100%);
}
.rent-media-placeholder::before,
.rent-media-placeholder::after { position: absolute; border: 1px solid rgba(49, 92, 112, .25); border-radius: 50%; content: ''; }
.rent-media-placeholder { position: relative; }
.rent-media-placeholder::before { width: 52%; aspect-ratio: 1; right: -13%; bottom: -41%; }
.rent-media-placeholder::after { width: 30%; aspect-ratio: 1; left: 17%; top: -18%; }
.rent-media-placeholder span { position: relative; z-index: 1; color: rgba(28, 45, 51, .58); font-family: var(--heading); font-size: clamp(42px, 6vw, 78px); font-weight: 500; letter-spacing: -.07em; }
.rent-hero-media .rent-media-placeholder { aspect-ratio: 2.05 / 1; }
.rent-plan::before { display: grid; place-items: center; min-height: 212px; border: 1px solid rgba(28, 45, 51, .12); background: linear-gradient(130deg, #edf1ed, #d9eaf4); color: rgba(28, 45, 51, .52); font-family: var(--heading); font-size: 48px; content: 'ÉLAN'; }

/* ---------- Hire ÉLAN: focused editorial page ---------- */
.rent-shell { width: min(100% - 80px, 1450px); }
.rent-hero { padding: 0; background: #f8f5ef; }
.rent-hero .rent-shell {
  display: grid;
  grid-template-columns: minmax(300px, .76fr) minmax(0, 1.24fr);
  min-height: min(49vw, 680px);
  align-items: stretch;
  gap: 0;
}
.rent-hero-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  max-width: 430px;
  padding: clamp(48px, 7vw, 116px) clamp(25px, 4vw, 72px) clamp(48px, 7vw, 116px) 0;
}
.rent-eyebrow { color: #6096b1; font-weight: 700; }
.rent-hero-copy h1,
.rent-special-copy h2,
.rent-closing h2 {
  margin: 17px 0 0;
  color: var(--ink);
  font-family: var(--heading);
  font-weight: 500;
  letter-spacing: -.06em;
  line-height: .88;
}
.rent-hero-copy h1 { font-size: clamp(59px, 5.6vw, 91px); }
.rent-hero-copy > p:not(.rent-eyebrow) {
  max-width: 370px;
  margin: 24px 0 0;
  color: #4b5252;
  font-family: var(--heading);
  font-size: clamp(24px, 2.1vw, 35px);
  line-height: 1.18;
}
.rent-hero-copy > a,
.rent-special-copy > a,
.rent-closing a {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 30px;
  padding: 0 0 5px;
  border-bottom: 1px solid #7da9be;
  color: #6096b1;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .13em;
  text-decoration: none;
  text-transform: uppercase;
}
.rent-hero-copy > a::after,
.rent-special-copy > a::after,
.rent-closing a::after { content: '→'; font-size: 17px; font-weight: 400; }
.rent-hero-media {
  position: relative;
  grid-column: auto;
  width: 100%;
  height: 100%;
  margin: 0;
  overflow: hidden;
  background: #ded9d0;
}
.rent-hero-media img,
.rent-special-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.rent-hero-media img { object-position: center; }
.rent-special { background: #fbf8f2; }
.rent-special .rent-shell {
  display: grid;
  grid-template-columns: minmax(300px, .76fr) minmax(0, 1.24fr);
  min-height: min(48vw, 660px);
  align-items: stretch;
  gap: 0;
}
.rent-special-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  max-width: 440px;
  padding: clamp(48px, 7vw, 116px) clamp(25px, 4vw, 72px) clamp(48px, 7vw, 116px) 0;
}
.rent-special-copy h2 { font-size: clamp(57px, 5.4vw, 88px); }
.rent-special-copy > p:not(.rent-eyebrow) {
  max-width: 330px;
  margin: 22px 0 0;
  color: #4b5252;
  font-family: var(--heading);
  font-size: clamp(21px, 1.8vw, 29px);
  line-height: 1.28;
}
.rent-special-copy > p.rent-special-occasions { margin-top: 26px; }
.rent-special-copy > p.rent-special-occasions + p { font-size: clamp(18px, 1.45vw, 23px); }
.rent-special-media {
  position: relative;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  background: #eae6df;
}
.rent-special-media img { object-position: center; }
.rent-hero-media::after,
.rent-special-media::after {
  position: absolute;
  z-index: 1;
  top: 0;
  bottom: 0;
  left: 0;
  width: clamp(118px, 18vw, 280px);
  content: '';
  pointer-events: none;
}
.rent-hero-media::after {
  background: linear-gradient(90deg, #f8f5ef 0%, rgba(248, 245, 239, .96) 31%, rgba(248, 245, 239, .63) 68%, rgba(248, 245, 239, 0) 100%);
}
.rent-special-media::after {
  background: linear-gradient(90deg, #fbf8f2 0%, rgba(251, 248, 242, .96) 31%, rgba(251, 248, 242, .63) 68%, rgba(251, 248, 242, 0) 100%);
}
.rent-closing {
  position: relative;
  margin: 0;
  overflow: hidden;
  padding: clamp(78px, 8vw, 130px) 0;
  background:
    radial-gradient(circle at 80% 20%, rgba(255, 254, 250, .86) 0 3.4%, transparent 3.6%),
    radial-gradient(circle at 11% 8%, transparent 0 15%, rgba(103, 153, 179, .13) 15.2% 15.4%, transparent 15.6%),
    radial-gradient(circle at 87% 82%, transparent 0 19%, rgba(103, 153, 179, .13) 19.2% 19.4%, transparent 19.6%),
    linear-gradient(120deg, #e7f2f7, #d7e9f2);
  text-align: center;
}
.rent-closing .rent-shell { display: flex; flex-direction: column; align-items: center; max-width: 720px; }
.rent-closing h2 { margin: 0; font-size: clamp(53px, 5vw, 80px); }
.rent-closing .rent-shell > p:not(.rent-eyebrow) {
  max-width: none;
  margin: 23px 0 0;
  color: #58656a;
  font-family: var(--heading);
  font-size: clamp(23px, 2vw, 31px);
  line-height: 1.25;
}
.rent-closing a { grid-column: auto; width: max-content; margin-top: 26px; }

@media (max-width: 850px) {
  .rent-shell { width: min(100% - 48px, 760px); }
  .rent-hero .rent-shell,
  .rent-special .rent-shell { grid-template-columns: 1fr; min-height: 0; }
  .rent-hero-copy,
  .rent-special-copy { max-width: 500px; padding: 70px 0 40px; }
  .rent-hero-media,
  .rent-special-media { min-height: min(70vw, 500px); }
  .rent-hero-media::after,
  .rent-special-media::after { display: none; }
}

@media (max-width: 640px) {
  .rent-shell { width: min(100% - 40px, 540px); }
  .rent-hero-copy,
  .rent-special-copy { padding: 60px 0 33px; }
  .rent-hero-copy h1 { font-size: 65px; }
  .rent-special-copy h2 { font-size: 61px; }
  .rent-hero-copy > p:not(.rent-eyebrow) { margin-top: 20px; font-size: 29px; }
  .rent-special-copy > p:not(.rent-eyebrow) { font-size: 24px; }
  .rent-hero-media,
  .rent-special-media { min-height: 300px; }
  .rent-hero-media img,
  .rent-special-media img { object-position: center; }
  .rent-closing { padding: 75px 0; }
  .rent-closing h2 { max-width: 100%; font-size: 52px; }
  .rent-closing .rent-shell > p:not(.rent-eyebrow) { font-size: 27px; }
}

.vehicle-detail { position: relative; }
.vehicle-close { position: absolute; top: 29px; right: 0; display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid rgba(28, 45, 51, .3); border-radius: 50%; color: var(--ink); font-family: var(--body); font-size: 27px; font-weight: 300; line-height: 1; text-decoration: none; transition: background .18s ease, color .18s ease, transform .18s ease; }
.vehicle-close:hover { background: var(--ink); color: var(--warm-ivory); transform: rotate(90deg); }
.share-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 30px; padding-top: 21px; border-top: 1px solid rgba(28, 45, 51, .16); }
.share-actions-label { margin-right: 2px; color: var(--muted); font-size: 10px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.share-action { padding: 0; border: 0; border-bottom: 1px solid rgba(28, 45, 51, .5); background: transparent; color: var(--ink); font: inherit; font-size: 12px; line-height: 1.5; text-decoration: none; cursor: pointer; }
.share-action:hover { border-color: var(--sea); color: var(--sea); }
.share-actions .share-action::after { content: none; }
.share-actions-status { min-height: 18px; color: var(--sea); font-size: 11px; }
.journal-post-body { margin: 25px 0 0; color: var(--muted); font-size: 15px; line-height: 1.72; }
.journal-post-body > :first-child { margin-top: 0; }
.journal-post-body > :last-child { margin-bottom: 0; }
.journal-post-body p,
.journal-post-body div { margin: 0 0 1.3em; }
.journal-post-body h2,
.journal-post-body h3,
.journal-post-body h4 { margin: 1.65em 0 .55em; color: var(--ink); font-family: var(--heading); font-weight: 500; letter-spacing: -.035em; line-height: 1; }
.journal-post-body h2 { font-size: clamp(30px, 3vw, 43px); }
.journal-post-body h3 { font-size: clamp(24px, 2.4vw, 32px); }
.journal-post-body h4 { font-family: var(--body); font-size: 16px; font-weight: 700; letter-spacing: 0; line-height: 1.3; }
.journal-post-body ul,
.journal-post-body ol { margin: 0 0 1.3em; padding-left: 1.35em; }
.journal-post-body li + li { margin-top: .35em; }
.journal-post-body blockquote { margin: 1.5em 0; padding: 3px 0 3px 19px; border-left: 2px solid var(--sea); color: var(--ink); font-size: 1.08em; }
.journal-post-body a { overflow-wrap: anywhere; color: var(--sea); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.journal-post-body a:hover { color: var(--ink); }
.journal-post-body + .share-actions { margin-top: 30px; }

@media (max-width: 640px) {
  .home-page .hero-actions .btn-ink,
  .home-page .hero-actions .btn-outline-ink { background: rgba(18, 35, 34, .42); }
  .elan-association-strip .container-x { grid-template-columns: 1fr; gap: 24px; padding: 24px 20px; }
  .elan-association-logos { justify-content: flex-start; gap: 13px 20px; }
  .elan-association-logos > a,
  .elan-association-logo { min-width: 104px; max-width: 144px; min-height: 48px; font-size: 17px; }
  .elan-association-logos img { max-height: 48px; }
  .rent-hero-media .rent-media-placeholder { aspect-ratio: 1.25 / 1; }
  .rent-service-media .rent-media-placeholder { min-height: 290px; }
  .rent-plan::before { min-height: 250px; }
  .vehicle-close { top: 23px; width: 35px; height: 35px; font-size: 24px; }
  .share-actions { gap: 9px 11px; }
}

/* ---------- Private viewing modal ---------- */
.available-car-viewing,
.vehicle-viewing-cta { border: 0; font-family: var(--body); cursor: pointer; }
.has-viewing-modal { overflow: hidden; }
.viewing-modal { position: fixed; z-index: 210; inset: 0; display: none; align-items: center; justify-content: center; overflow: hidden; padding: 28px; background: rgba(16, 30, 35, .58); -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px); }
.viewing-modal.is-open { display: flex; }
.viewing-modal-dialog { position: relative; width: min(100%, 670px); height: min(790px, calc(100dvh - 56px)); max-height: calc(100dvh - 56px); min-height: 0; overflow-y: scroll; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: clamp(30px, 5vw, 52px); background: var(--warm-ivory); box-shadow: 0 28px 80px rgba(0, 0, 0, .28); }
.viewing-modal-close { position: absolute; top: 18px; right: 18px; display: grid; width: 36px; height: 36px; place-items: center; padding: 0; border: 1px solid rgba(28, 45, 51, .3); border-radius: 50%; background: transparent; color: var(--ink); font-family: var(--body); font-size: 25px; font-weight: 300; line-height: 1; cursor: pointer; transition: background .18s ease, color .18s ease; }
.viewing-modal-close:hover { background: var(--ink); color: var(--warm-ivory); }
.viewing-modal-eyebrow { margin: 0; color: var(--sea); font-size: 10px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.viewing-modal h2 { max-width: 500px; margin: 14px 42px 0 0; color: var(--ink); font-family: var(--heading); font-size: clamp(45px, 5vw, 67px); font-weight: 500; letter-spacing: -.055em; line-height: .9; }
.viewing-modal-intro { max-width: 490px; margin: 18px 0 28px; color: var(--muted); font-size: 15px; line-height: 1.58; }
.viewing-modal-feedback { margin: 0 0 22px; padding: 13px 15px; border-left: 3px solid var(--sea); background: #e6f0f5; color: #324a57; font-size: 14px; line-height: 1.5; }
.viewing-modal-feedback--danger { border-color: #a34d3b; background: #f6e6e2; color: #6b3025; }
.viewing-modal-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.viewing-modal-fields-full { grid-column: 1 / -1; }
.viewing-modal-fields input,
.viewing-modal-fields textarea { display: block; width: 100%; padding: 14px 15px; border: 1px solid rgba(28, 45, 51, .22); border-radius: 0; background: rgba(255, 254, 250, .62); color: var(--ink); font: inherit; font-size: 14px; outline: none; }
.viewing-modal-fields textarea { min-height: 115px; resize: vertical; line-height: 1.5; }
.viewing-modal-fields input:focus,
.viewing-modal-fields textarea:focus { border-color: var(--sea); box-shadow: 0 0 0 3px rgba(49, 92, 112, .13); }
.viewing-modal-terms { display: flex; align-items: flex-start; gap: 9px; margin-top: 16px; color: var(--muted); font-size: 12px; line-height: 1.45; cursor: pointer; }
.viewing-modal-terms input { flex: 0 0 auto; margin-top: 3px; }
.viewing-modal-terms a { color: var(--ink); text-underline-offset: 3px; }
.viewing-modal-submit { display: inline-flex; align-items: center; justify-content: center; gap: 13px; width: 100%; min-height: 52px; margin-top: 25px; padding: 12px 20px; border: 0; background: linear-gradient(110deg, #142e44, #193d5a); color: #fff; font-family: var(--body); font-size: 11px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; cursor: pointer; transition: background .18s ease, transform .18s ease; }
.viewing-modal-submit:hover { background: var(--sea); transform: translateY(-1px); }

@media (max-width: 640px) {
  .viewing-modal { align-items: flex-end; padding: 0; }
  .viewing-modal-dialog { width: 100%; height: calc(100dvh - 16px); max-height: calc(100dvh - 16px); padding: 32px 22px 26px; }
  .viewing-modal h2 { font-size: 49px; }
  .viewing-modal-fields { grid-template-columns: 1fr; }
  .viewing-modal-fields-full { grid-column: auto; }
}

/* ---------- Barra de idioma ---------- */
.language-bar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-height: 32px;
  padding: 0 clamp(36px, 5vw, 76px);
  background: var(--ink);
  color: rgba(255, 254, 250, .72);
  font-family: var(--body);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .13em;
  line-height: 1;
}
.language-bar-inner {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.language-bar-label {
  margin-right: 8px;
  color: rgba(255, 254, 250, .54);
  text-transform: uppercase;
}
.language-bar a {
  color: inherit;
  text-decoration: none;
}
.language-bar a:hover,
.language-bar a.is-active { color: #fffefa; }
.language-bar a.is-active {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

/* Design page: preserve the shared interior navigation while matching the configurator canvas. */
body.design-page > .site-nav,
body.design-page > .site-nav .nav-pill { background: var(--warm-ivory); }

/* Homepage navigation: keep the badge centred in the viewport. */
body.home-page > .site-nav .language-bar { display: none !important; }
body.home-page > .site-nav .nav-pill { min-height: 156px; }
body.home-page > .site-nav .nav-logo {
  right: 0;
  left: 0;
  width: 216px;
  height: 69px;
  margin-inline: auto;
  transform: translateY(-50%);
}
body.home-page > .site-nav .nav-primary {
  grid-template-columns: repeat(5, max-content) minmax(250px, 1fr) repeat(4, max-content);
  gap: clamp(13px, 1.35vw, 22px);
}

@media (max-width: 767px) {
  body.home-page > .site-nav .nav-pill { min-height: 82px; }
  body.home-page > .site-nav .nav-logo { width: 128px; height: 41px; }
}



.home-page .hero-frame--elan {
  height: 100vh;
  min-height: 100vh;
}

@media (max-width: 767px) {
  .language-bar {
    min-height: 30px;
    padding-inline: 18px;
    font-size: 8px;
  }
  .language-bar-inner { gap: 7px; }
  .language-bar-label { margin-right: 6px; }
  .home-page .hero-frame--elan {
    height: 100vh;
    min-height: 100vh;
  }
}

/* ---------- Expanded ÉLAN configuration flow ---------- */
.elan-configurator--design-page {
  width: min(100% - 80px, 1452px);
  height: auto;
  min-height: 720px;
  margin: var(--page-top-space) auto 0;
  grid-template-columns: minmax(0, 1fr) minmax(560px, 1fr);
  overflow: visible;
  border: 1px solid #dedbd5;
  background: var(--warm-ivory);
}
.elan-configurator--design-page .elan-configurator-viewer {
  position: sticky;
  top: 16px;
  align-self: start;
  height: min(720px, calc(100svh - 32px));
  min-height: 590px;
  overflow: hidden;
  background: var(--warm-ivory);
}
.elan-configurator--design-page .elan-design-page-title { top: 42px; z-index: 9; }
.elan-configurator--design-page .elan-home-car-image {
  top: 11%;
  left: 5%;
  width: 90%;
  height: 78%;
  object-position: center;
}
.elan-configurator-viewer-status {
  position: absolute;
  z-index: 9;
  right: 28px;
  bottom: 24px;
  max-width: calc(100% - 56px);
  margin: 0;
  color: rgba(28, 45, 51, .72);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .1em;
  line-height: 1.45;
  text-align: right;
  text-transform: uppercase;
}
.elan-configurator--design-page .elan-home-configurator-panel {
  display: block;
  min-height: 100%;
  padding: 18px 42px 42px;
  background: var(--warm-ivory);
}
.elan-configurator--design-page .elan-home-configurator-form { display: block; width: 100%; }
.elan-configurator--design-page .elan-config-step {
  grid-template-columns: 146px minmax(0, 1fr);
  gap: 22px;
  min-height: 0;
  padding: 25px 0;
  border-top: 1px solid #dedbd5;
}
.elan-configurator--design-page .elan-config-step:first-of-type { border-top: 0; }
.elan-configurator--design-page .elan-config-step-title { align-content: start; gap: 6px; }
.elan-configurator--design-page .elan-config-step-title span { font-size: 8px; letter-spacing: .14em; }
.elan-configurator--design-page .elan-config-step-title strong { font-size: 22px; line-height: 1.04; }
.elan-config-choice-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.elan-config-choice-card {
  display: grid;
  gap: 9px;
  min-height: 92px;
  padding: 15px;
  border: 1px solid rgba(28, 45, 51, .18);
  background: #fbfaf7;
  color: var(--ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}
.elan-config-choice-card:hover { border-color: var(--sea); transform: translateY(-1px); }
.elan-config-choice-card.is-selected { border-color: var(--sea); background: #edf5f8; box-shadow: inset 0 0 0 1px var(--sea); }
.elan-config-choice-card > span { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.elan-config-choice-card strong { font-family: var(--heading); font-size: 18px; font-weight: 500; line-height: 1.05; }
.elan-config-choice-card b { flex: 0 0 auto; color: var(--sea); font-size: 11px; letter-spacing: .04em; }
.elan-config-choice-card small { color: #546269; font-size: 10px; line-height: 1.45; }
.elan-config-paint-collection + .elan-config-paint-collection { margin-top: 15px; padding-top: 15px; border-top: 1px solid rgba(28, 45, 51, .12); }
.elan-config-paint-collection-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.elan-config-paint-collection-heading strong { font-family: var(--heading); font-size: 18px; font-weight: 500; }
.elan-config-paint-collection-heading span,
.elan-config-paint-collection > p { margin: 4px 0 0; color: var(--muted); font-size: 10px; line-height: 1.4; }
.elan-config-ral-request { margin-top: 16px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.elan-config-ral-request p { margin: 0 0 3px; }
.elan-config-ral-browse { min-height: 44px; padding: 4px 0; border: 0; background: transparent; color: var(--sea); font: inherit; text-align: left; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.has-config-ral-dialog { overflow: hidden; }
.elan-ral-dialog { width: min(960px, calc(100% - 40px)); max-width: none; height: min(820px, calc(100dvh - 40px)); max-height: calc(100dvh - 40px); margin: auto; padding: 0; border: 1px solid var(--line); background: var(--warm-ivory); color: var(--ink); font-family: var(--body); }
.elan-ral-dialog[open] { display: flex; flex-direction: column; }
.elan-ral-dialog::backdrop { background: rgba(16, 30, 35, .65); }
.elan-ral-dialog-header { flex: 0 0 auto; padding: 24px 28px 0; }
.elan-ral-dialog-heading { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.elan-ral-dialog h2 { margin: 0; font-size: clamp(30px, 4vw, 42px); line-height: 1.1; }
.elan-ral-close { flex: 0 0 44px; height: 44px; padding: 0; border: 1px solid var(--ink); border-radius: 50%; background: transparent; color: var(--ink); font: 28px/1 var(--body); cursor: pointer; }
.elan-ral-close:hover { background: var(--ink); color: var(--warm-ivory); }
.elan-ral-dialog-header p { margin: 12px 0; font-size: 14px; line-height: 1.5; }
.elan-ral-dialog-header label { display: block; margin: 16px 0 6px; font-size: 13px; font-weight: 600; }
.elan-ral-dialog input { width: 100%; padding: 11px 12px; border: 1px solid var(--sea); border-radius: var(--radius-sm); background: var(--soft-white); color: var(--ink); font: 16px/1.5 var(--body); }
.elan-ral-dialog input::placeholder { color: var(--sea); opacity: 1; }
.elan-ral-dialog-header .elan-ral-count { margin: 10px 0; color: var(--sea); font-size: 12px; }
.elan-ral-results { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 4px 28px 24px; }
.elan-ral-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.elan-ral-colour { display: flex; flex-direction: column; align-items: stretch; gap: 4px; min-width: 0; padding: 7px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--soft-white); color: var(--ink); font: 12px/1.4 var(--body); text-align: left; cursor: pointer; }
.elan-ral-colour[hidden] { display: none; }
.elan-ral-colour:hover { border-color: var(--sea); }
.elan-ral-colour[aria-pressed="true"] { outline: 2px solid var(--sea); outline-offset: -2px; }
.elan-ral-colour:active { transform: scale(.98); }
.elan-ral-swatch { display: block; height: 62px; margin-bottom: 5px; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.elan-ral-colour strong { font-size: 13px; }
.elan-ral-empty { padding: 24px 0; font-size: 14px; }
.elan-ral-disclaimer { flex: 0 0 auto; margin: 0; padding: 16px 28px; border-top: 1px solid var(--line); color: var(--sea); font-size: 12px; line-height: 1.5; }
.elan-config-ral-browse:focus-visible,
.elan-ral-dialog button:focus-visible,
.elan-ral-dialog input:focus-visible { outline: 2px solid var(--sea); outline-offset: 3px; }
@media (max-width: 767px) {
  .elan-ral-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  .elan-ral-dialog { width: calc(100% - 16px); height: calc(100dvh - 16px); max-height: calc(100dvh - 16px); }
  .elan-ral-dialog-header { padding: 16px 16px 0; }
  .elan-ral-results { padding: 4px 16px 16px; }
  .elan-ral-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .elan-ral-disclaimer { padding: 12px 16px; }
}
@media (max-height: 500px) {
  .elan-ral-dialog-header { padding-top: 10px; }
  .elan-ral-dialog-header p { margin: 6px 0; font-size: 12px; }
  .elan-ral-dialog-header label { margin-top: 6px; }
  .elan-ral-disclaimer { padding-top: 8px; padding-bottom: 8px; font-size: 11px; }
}
.elan-config-ral-request label { display: block; margin: 16px 0 6px; color: var(--ink); }
.elan-config-ral-request input { width: 100%; max-width: 280px; padding: 11px 12px; border: 1px solid var(--line); background: transparent; color: var(--ink); font: inherit; }
.elan-config-ral-request small:not([hidden]) { display: block; margin-top: 5px; color: #9b342f; }
.elan-config-ral-request .elan-config-ral-preview-note { max-width: 340px; margin: 8px 0 0; color: #222; font-size: 12px; line-height: 1.5; }
.has-config-metallic-dialog { overflow: hidden; }
.elan-config-metallic-dialog .elan-config-storage-dialog-inner { grid-template-columns: 1fr; width: min(100%, 1000px); gap: 14px; }
.elan-config-metallic-dialog .elan-config-storage-dialog-inner img { max-width: none; max-height: 65svh; object-fit: contain; }
.elan-config-metallic-dialog .elan-config-storage-dialog-inner h2 { font-size: 28px; }
.elan-config-swatch-grid { display: flex; flex-wrap: wrap; gap: 9px 12px; margin-top: 10px; }
.elan-config-swatch-option {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  font: 600 10px/1.2 var(--body);
  text-align: left;
  cursor: pointer;
}
.elan-config-swatch-option > i {
  display: block;
  flex: 0 0 auto;
  width: 27px;
  height: 27px;
  border: 1px solid rgba(28, 45, 51, .18);
  background: var(--swatch);
  box-shadow: inset 0 0 0 0 #fffefa;
  transition: transform .18s ease, box-shadow .18s ease, outline-color .18s ease;
}
.elan-config-swatch-option:hover > i { transform: translateY(-1px); }
.elan-config-swatch-option.is-selected > i { outline: 1px solid var(--sea); outline-offset: 3px; box-shadow: inset 0 0 0 2px #fffefa; }
.elan-config-selected-value { display: flex; align-items: center; gap: 7px; margin: 12px 0 0; color: var(--ink); font-size: 11px; font-weight: 600; }
.elan-config-selected-value > i { display: block; width: 8px; height: 8px; border-radius: 50%; background: var(--swatch); }
.elan-config-colour-custom-note { margin: 17px 0 0; padding: 14px 0 0; border-top: 1px solid rgba(28, 45, 51, .12); color: var(--sea); font-size: 11px; font-weight: 500; line-height: 1.5; }
.elan-config-note { margin: 15px 0 0; color: #68757a; font-size: 10px; font-style: italic; line-height: 1.45; }
.elan-config-reset { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 44px; margin-top: 12px; padding: 10px 16px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: transparent; color: #222; font: 500 13px/1.4 var(--body); cursor: pointer; }
.elan-config-reset:hover { border-color: var(--ink); background: var(--soft-white); }
.elan-config-reset:focus-visible { outline: 2px solid var(--sea); outline-offset: 3px; }
.elan-config-wheel-centres { margin-top: 18px; padding-top: 18px; border-top: 1px solid rgba(28, 45, 51, .12); }
.elan-config-wheel-centres.is-hidden { display: none; }
.elan-config-wheel-centres > p:first-child { margin: 0; color: var(--ink); font-family: var(--heading); font-size: 18px; font-weight: 500; }
.elan-config-wheel-centre-note { margin: 10px 0 0; color: var(--muted); font-size: 10px; line-height: 1.4; }
.elan-config-adventure-note { margin: 12px 0 0; color: #222; font-size: 11px; line-height: 1.45; }
.elan-config-paint-collection > p,
.elan-config-ral-request > p,
.elan-config-step--wheel_design .elan-config-note { color: #222; }
.elan-config-adventure-finish { margin-top: 18px; padding-top: 18px; border-top: 1px solid rgba(28, 45, 51, .12); }
.elan-config-adventure-finish.is-hidden { display: none; }
.elan-config-adventure-finish > p:first-child { margin: 0; color: var(--ink); font-family: var(--heading); font-size: 18px; font-weight: 500; }
.elan-config-adventure-finish > p:nth-child(2) { margin: 7px 0 13px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.elan-config-adventure-finish .elan-config-choice-card { min-height: 68px; }
.elan-config-storage-preview {
  margin-top: 15px;
  padding: 0;
  border: 0;
  border-bottom: 1px solid var(--ink);
  background: transparent;
  color: var(--ink);
  font: 600 10px/1.4 var(--body);
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}
.elan-configurator-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px 0;
  align-items: end;
  margin-top: 28px;
  padding: 25px 0 0;
  border-top: 1px solid var(--ink);
}
.elan-configurator-summary > div { display: grid; gap: 6px; }
.elan-configurator-summary > div > span { color: var(--sea); font-size: 9px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.elan-configurator-summary > div strong { display: grid; gap: 5px; font-size: clamp(34px, 3.4vw, 47px); letter-spacing: -.05em; line-height: .9; }
.elan-configurator-summary > div strong small { color: var(--muted); font-family: var(--body); font-size: 10px; font-weight: 500; letter-spacing: 0; line-height: 1.3; }
.elan-configurator-summary > div strong b { font: inherit; }
.elan-configurator-summary > p { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
.elan-configurator-summary .elan-config-terms { padding-top: 10px; border-top: 1px solid rgba(28, 45, 51, .12); font-style: italic; }
.elan-configurator-summary .elan-home-configurator-submit { justify-self: stretch; width: 100%; min-width: 0; min-height: 45px; margin: 0; padding: 10px 16px; border: 0; border-radius: 0; background: #254d80; color: #fff; font-family: var(--body); cursor: pointer; }
.elan-configurator-summary .elan-home-configurator-submit:hover { background: var(--ink); }
.elan-configurator-bespoke {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 28px 32px;
  margin-top: 34px;
  padding: clamp(28px, 3vw, 44px) clamp(24px, 3vw, 40px);
  border: 1px solid #35637b;
  background: #04334e url('../img/configurator-bespoke-background.webp') center right / cover no-repeat;
  color: #fff;
}
.elan-configurator-bespoke-copy { flex: 1 1 340px; min-width: 0; }
.elan-configurator-bespoke-eyebrow { margin: 0; color: #e0eaf0; font-size: 11px; font-weight: 600; letter-spacing: .18em; line-height: 1.6; text-transform: uppercase; }
.elan-configurator-bespoke h2 { margin: 12px 0 18px; color: #fff; font-family: var(--heading); font-size: clamp(42px, 4.3vw, 64px); font-weight: 500; letter-spacing: -.025em; line-height: 1.05; text-transform: uppercase; text-wrap: initial; }
.elan-configurator-bespoke h2::after { content: ''; display: block; width: 56px; height: 3px; margin-top: 18px; background: #d6bd80; }
.elan-configurator-bespoke-description { max-width: 560px; margin: 0; color: #fff; font-size: clamp(18px, 1.6vw, 22px); font-weight: 500; line-height: 1.45; text-wrap: pretty; }
.elan-configurator-bespoke a {
  display: inline-flex;
  flex: 0 1 230px;
  align-items: center;
  justify-content: center;
  gap: 24px;
  min-width: 0;
  min-height: 62px;
  padding: 16px 22px;
  border: 2px solid #e0eaf0;
  background: rgba(3, 38, 63, .35);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .1em;
  white-space: nowrap;
  text-decoration: none;
  text-transform: uppercase;
  transition: background .18s ease, color .18s ease;
}
.elan-configurator-bespoke a:hover { background: #fff9ee; color: #04334e; }
.elan-configurator-bespoke a:focus-visible { outline: 3px solid #fff; outline-offset: 5px; }
.elan-configurator-bespoke a i { font-size: 26px; font-style: normal; line-height: 1; }
@media (max-width: 767px) {
  .elan-configurator-bespoke { flex-direction: column; align-items: stretch; }
  .elan-configurator-bespoke-copy,
  .elan-configurator-bespoke a { flex-basis: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .elan-configurator-bespoke a { transition: none; }
}
/* ---------- Configurator order hand-off ---------- */
.has-config-order-modal { overflow: hidden; }
.configurator-order-modal {
  position: fixed;
  z-index: 230;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 28px;
  overflow: hidden;
  background: rgba(16, 30, 35, .62);
  -webkit-backdrop-filter: blur(7px);
  backdrop-filter: blur(7px);
}
.configurator-order-modal.is-open { display: flex; }
.configurator-order-modal-dialog {
  position: relative;
  width: min(100%, 1040px);
  max-height: calc(100dvh - 56px);
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding: 40px clamp(28px, 5vw, 64px) 44px;
  background: #fffefa;
  color: #222;
  box-shadow: 0 28px 80px rgba(0, 0, 0, .28);
}
.configurator-order-modal-close {
  position: absolute;
  top: 18px;
  right: 18px;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(28, 45, 51, .3);
  border-radius: 50%;
  background: transparent;
  color: var(--ink);
  font: 300 25px/1 var(--body);
  cursor: pointer;
}
.configurator-order-modal-close:hover { background: var(--ink); color: var(--warm-ivory); }
.configurator-order-modal-eyebrow { margin: 0 48px 0 0; color: #222; font-size: 12px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.configurator-order-modal h2 { margin: 10px 0 24px; color: #11131b; font-family: var(--heading); font-size: clamp(44px, 6.5vw, 80px); font-weight: 500; letter-spacing: -.055em; line-height: 1.05; text-wrap: initial; }
.configurator-order-modal-feedback { margin: 0 0 20px; padding: 13px 15px; border-left: 3px solid #a34d3b; background: #f6e6e2; color: #6b3025; font-size: 14px; line-height: 1.5; }
.configurator-order-summary,
.configurator-order-payment { margin: 0 0 16px; padding: 22px 28px; border: 1px solid #cfccc5; border-radius: 3px; background: #f6f3ed; }
.configurator-order-summary-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.configurator-order-summary-title,
.configurator-order-payment h3 { margin: 0; color: #11131b; font: 600 14px/1.4 var(--body); letter-spacing: .16em; text-transform: uppercase; text-wrap: initial; }
.configurator-order-summary-heading strong { display: grid; gap: 8px; color: #11131b; text-align: right; }
.configurator-order-summary-heading strong span { color: #454953; font: 400 14px/1.3 var(--body); }
.configurator-order-summary-heading strong b { font-family: var(--heading); font-size: clamp(38px, 4.5vw, 54px); font-weight: 500; letter-spacing: -.055em; line-height: 1; }
.configurator-order-summary dl { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 56px; margin: 18px 0 0; padding-top: 18px; border-top: 1px solid #d6d2ca; }
.configurator-order-summary dl::before { content: ''; position: absolute; top: 18px; bottom: 0; left: 50%; width: 1px; background: #dedad3; }
.configurator-order-summary dl > div { display: grid; align-content: start; gap: 2px; min-width: 0; }
.configurator-order-summary dt { color: #454953; font: 600 11px/1.4 var(--body); letter-spacing: .07em; text-transform: uppercase; }
.configurator-order-summary dd { margin: 0; color: #303440; font-size: 16px; line-height: 1.35; overflow-wrap: anywhere; }
.configurator-order-summary > p { margin: 14px 0 0; color: #454953; font-size: 14px; line-height: 1.45; }
.configurator-order-payment-intro { margin: 4px 0 12px; color: #303440; font-size: 18px; line-height: 1.4; }
.configurator-order-payment-schedule { margin: 0; border-top: 1px solid #d6d2ca; }
.configurator-order-payment-schedule > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; padding: 12px 10px; border-bottom: 1px solid #d6d2ca; }
.configurator-order-payment-schedule dt { display: flex; align-items: baseline; gap: 12px; color: #11131b; font: 600 16px/1.4 var(--body); }
.configurator-order-payment-amount { flex-shrink: 0; white-space: nowrap; }
.configurator-order-payment-schedule dd { margin: 0; color: #454953; font-size: 15px; line-height: 1.4; overflow-wrap: anywhere; }
.configurator-order-payment-note { margin: 12px 0 0; color: #454953; font-size: 14px; line-height: 1.45; }
.configurator-order-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.configurator-order-fields > div { min-width: 0; }
.configurator-order-fields-full { grid-column: 1 / -1; }
.configurator-order-fields input,
.configurator-order-fields textarea,
.configurator-order-fields select { display: block; width: 100%; min-height: 54px; padding: 14px 20px; border: 1px solid #b6b7ba; border-radius: 3px; background: #fffefa; color: #303440; font: 16px/1.4 var(--body); outline: none; }
.configurator-order-fields input::placeholder,
.configurator-order-fields textarea::placeholder { color: #555963; opacity: 1; }
.configurator-order-fields input:focus,
.configurator-order-fields textarea:focus,
.configurator-order-fields select:focus { border-color: var(--sea); box-shadow: 0 0 0 3px rgba(49, 92, 112, .13); }
.configurator-order-fields textarea { resize: vertical; }
.configurator-order-exchange { margin-top: 16px; }
.configurator-order-exchange-toggle { display: flex; align-items: flex-start; gap: 16px; color: #303440; font: 400 16px/1.5 var(--body); cursor: pointer; }
.configurator-order-exchange-toggle input,
.configurator-order-terms input { flex: 0 0 auto; width: 24px; height: 24px; margin: 0; accent-color: #06376b; }
.configurator-order-exchange > p { margin: 3px 0 14px 40px; color: #60636c; font-size: 14px; line-height: 1.45; }
.configurator-order-exchange .configurator-order-fields[hidden] { display: none; }
.configurator-order-exchange .configurator-order-fields label { display: block; margin-bottom: 8px; color: var(--ink); font-size: 13px; }
.configurator-order-confirmation-copy { margin-top: 24px; color: var(--muted); font-size: 15px; line-height: 1.6; }
.configurator-order-confirmation-copy p { margin: 0 0 16px; }
.configurator-order-terms { display: flex; align-items: flex-start; gap: 16px; margin-top: 18px; color: #303440; font-size: 16px; line-height: 1.5; cursor: pointer; }
.configurator-order-terms a { color: var(--ink); text-underline-offset: 3px; }
.configurator-order-submit,
.configurator-order-modal-done { display: inline-flex; align-items: center; justify-content: center; gap: 16px; width: 100%; min-height: 62px; margin-top: 22px; padding: 16px 20px; border: 0; border-radius: 3px; background: #06376b; color: #fff; font: 600 14px/1.4 var(--body); letter-spacing: .15em; text-transform: uppercase; cursor: pointer; transition: background .18s ease, transform .18s ease; }
.configurator-order-submit > span { font-size: 26px; line-height: 1; }
.configurator-order-modal :is(button, a, input[type="checkbox"]):focus-visible { outline: 2px solid #06376b; outline-offset: 4px; }
.configurator-order-submit:active,
.configurator-order-modal-done:active { transform: translateY(1px); }
@media (max-width: 767px) {
  .configurator-order-summary dl,
  .configurator-order-payment-schedule > div,
  .configurator-order-fields { grid-template-columns: 1fr; }
  .configurator-order-summary dl::before { display: none; }
  .configurator-order-payment-schedule > div { gap: 6px; padding: 14px 0; }
  .configurator-order-payment-schedule dt { gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .configurator-order-submit,
  .configurator-order-modal-done { transition: none; }
}
.configurator-order-submit:hover,
.configurator-order-modal-done:hover { background: var(--sea); transform: translateY(-1px); }
.has-config-storage-dialog { overflow: hidden; }
.elan-config-storage-dialog {
  position: fixed;
  z-index: 220;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 26px;
  background: rgba(12, 27, 34, .62);
  -webkit-backdrop-filter: blur(7px);
  backdrop-filter: blur(7px);
}
.elan-config-storage-dialog.is-open { display: flex; }
.elan-config-storage-dialog-inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(180px, .75fr) minmax(250px, 1fr);
  gap: 30px;
  width: min(100%, 720px);
  padding: 42px;
  background: #fffefa;
  box-shadow: 0 30px 90px rgba(0, 0, 0, .32);
}
.elan-config-storage-dialog img { width: 100%; align-self: center; }
.elan-config-storage-dialog p { margin: 0; color: var(--sea); font-size: 10px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.elan-config-storage-dialog h2 { margin: 12px 0; font-size: clamp(36px, 4vw, 52px); font-weight: 500; line-height: .93; }
.elan-config-storage-dialog span { color: var(--muted); font-size: 14px; line-height: 1.55; }
.elan-config-storage-close {
  position: absolute;
  top: 14px;
  right: 14px;
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(28, 45, 51, .28);
  border-radius: 50%;
  background: transparent;
  color: var(--ink);
  font: 300 25px/1 var(--body);
  cursor: pointer;
}
.elan-config-storage-close:hover { background: var(--ink); color: #fff; }

@media (max-width: 1100px) {
  .elan-configurator--design-page { width: min(100% - 48px, 860px); grid-template-columns: 1fr; }
  .elan-configurator--design-page .elan-configurator-viewer { position: relative; top: auto; height: 560px; min-height: 560px; }
}
@media (max-width: 640px) {
  .elan-configurator--design-page { width: min(100% - 32px, 540px); }
  .elan-configurator--design-page .elan-configurator-viewer { height: 460px; min-height: 460px; }
  .elan-configurator--design-page .elan-home-configurator-panel { padding: 13px 20px 30px; }
  .elan-configurator--design-page .elan-config-step { grid-template-columns: 1fr; gap: 14px; padding: 24px 0; }
  .elan-config-choice-cards { grid-template-columns: 1fr; }
  .elan-config-choice-card { min-height: 0; }
  .elan-configurator-summary { grid-template-columns: 1fr; }
  .elan-configurator-summary .elan-home-configurator-submit { width: 100%; }
  .elan-configurator-bespoke { align-items: stretch; flex-direction: column; padding: 25px 21px; }
  .elan-configurator-bespoke a { width: 100%; gap: 12px; padding-inline: 12px; font-size: 11px; letter-spacing: .06em; }
  .configurator-order-modal { align-items: flex-end; padding: 0; }
  .configurator-order-modal-dialog { width: 100%; max-height: calc(100dvh - 16px); padding: 34px 22px 28px; }
  .configurator-order-modal h2 { font-size: 47px; }
  .configurator-order-summary,
  .configurator-order-payment { padding: 18px; }
  .configurator-order-payment-intro { font-size: 16px; }
  .configurator-order-submit { gap: 10px; padding-inline: 12px; font-size: 12px; letter-spacing: .08em; }
  .configurator-order-summary-heading { align-items: start; flex-direction: column; gap: 11px; }
  .configurator-order-summary-heading strong { text-align: left; }
  .configurator-order-summary dl,
  .configurator-order-fields { grid-template-columns: 1fr; }
  .configurator-order-fields-full { grid-column: auto; }
  .elan-config-storage-dialog { align-items: flex-end; padding: 0; }
  .elan-config-storage-dialog-inner { grid-template-columns: 1fr; gap: 22px; width: 100%; max-height: 88svh; overflow-y: auto; padding: 42px 24px 30px; }
  .elan-config-storage-dialog img { max-width: 220px; margin: 0 auto; }
}

/* ---------- Bespoke ÉLAN ---------- */
.bespoke-page main { background: #fbfaf7; }
.bespoke-shell { width: min(100% - 80px, 1250px); margin-inline: auto; }
.bespoke-hero { padding: var(--page-top-space) 0 clamp(76px, 9vw, 128px); background: linear-gradient(118deg, #062d54, #0d426e); color: #fff; }
.bespoke-hero .bespoke-shell { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(280px, .62fr); gap: clamp(48px, 10vw, 160px); align-items: end; }
.bespoke-hero > .bespoke-shell > p,
.bespoke-process > .bespoke-shell > p { margin: 0; font-size: 10px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.bespoke-hero h1 { max-width: 760px; margin: 20px 0 0; color: inherit; font-size: clamp(58px, 7.2vw, 108px); font-weight: 500; letter-spacing: -.065em; line-height: .84; }
.bespoke-hero .bespoke-shell > p { grid-column: 1 / -1; }
.bespoke-hero .bespoke-shell > div { max-width: 390px; }
.bespoke-hero .bespoke-shell > div p { margin: 0; color: rgba(255, 255, 255, .87); font-size: 15px; line-height: 1.6; }
.bespoke-hero a,
.bespoke-closing a { display: inline-flex; align-items: center; justify-content: center; gap: 18px; min-height: 49px; margin-top: 28px; padding: 12px 21px; border: 1px solid rgba(255, 255, 255, .84); color: #fff; font-size: 10px; font-weight: 600; letter-spacing: .11em; text-decoration: none; text-transform: uppercase; }
.bespoke-hero a:hover { background: var(--soft-white); color: var(--ink); }
.bespoke-process { padding: clamp(84px, 10vw, 140px) 0; }
.bespoke-process > .bespoke-shell > p { color: var(--sea); }
.bespoke-process h2 { max-width: 760px; margin: 20px 0 0; font-size: clamp(45px, 5.1vw, 74px); font-weight: 500; letter-spacing: -.06em; line-height: .92; }
.bespoke-process-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 62px; }
.bespoke-process-grid article { min-height: 265px; padding: 28px; background: #ebe8e0; }
.bespoke-process-grid span { color: var(--sea); font-size: 10px; font-weight: 600; letter-spacing: .14em; }
.bespoke-process-grid h3 { margin: 54px 0 12px; font-size: 31px; font-weight: 500; letter-spacing: -.045em; }
.bespoke-process-grid p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.58; }
.bespoke-closing { padding: clamp(68px, 8vw, 110px) 0; background: #1c3036; color: #fff; text-align: center; }
.bespoke-closing h2 { max-width: 830px; margin: 0 auto; color: inherit; font-size: clamp(47px, 5.2vw, 78px); font-weight: 500; letter-spacing: -.06em; line-height: .9; }
.bespoke-closing a { border-color: rgba(255, 255, 255, .78); }
.bespoke-closing a:hover { background: var(--soft-white); color: var(--ink); }

@media (max-width: 800px) {
  .bespoke-shell { width: min(100% - 40px, 540px); }
  .bespoke-hero .bespoke-shell { grid-template-columns: 1fr; gap: 30px; }
  .bespoke-hero .bespoke-shell > p { grid-column: auto; }
  .bespoke-process-grid { grid-template-columns: 1fr; gap: 10px; margin-top: 42px; }
  .bespoke-process-grid article { min-height: 0; }
  .bespoke-process-grid h3 { margin-top: 30px; }
}

/* ---------- Footer social links ---------- */
.footer-column--follow {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.footer-follow-social { display: flex; justify-content: center; margin-top: 15px; }
.footer-column .footer-follow-social .social-icons { width: max-content; gap: 10px; }
.footer-column .footer-follow-social .social-icons a {
  width: 34px;
  height: 34px;
  padding-top: 8px;
  border: 1px solid rgba(255, 255, 255, .62);
  border-radius: 50%;
  color: #fff;
  line-height: 1;
}
.footer-column .footer-follow-social .social-icons a:hover {
  background: var(--soft-white);
  color: var(--ink);
  transform: translateY(-2px);
}
.footer-column .footer-follow-social .social-icons svg { width: 17px; height: 17px; }

@media (max-width: 767px) {
  .footer-column .footer-follow-social .social-icons a { width: 32px; height: 32px; }
}

/* ---------- Business ÉLAN ---------- */
.business-page main { background: var(--warm-ivory); }
.business-shell { width: min(100% - 80px, 1250px); margin-inline: auto; }
.business-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(104px, 12vw, 172px) 0 clamp(84px, 10vw, 140px);
  background:
    radial-gradient(circle at 88% 12%, rgba(175, 201, 215, .2) 0 2px, transparent 2.5px),
    linear-gradient(122deg, #062d54 0%, #0d426e 61%, #1c3036 100%);
  color: var(--soft-white);
}
.business-hero::before,
.business-hero::after {
  position: absolute;
  border: 1px solid rgba(255, 254, 250, .15);
  border-radius: 50%;
  content: '';
  pointer-events: none;
}
.business-hero::before { width: min(56vw, 760px); aspect-ratio: 1; right: -15vw; bottom: -36vw; }
.business-hero::after { width: min(30vw, 420px); aspect-ratio: 1; right: 13vw; top: -19vw; }
.business-hero .business-shell { position: relative; z-index: 1; }
.business-eyebrow {
  margin: 0;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .14em;
  line-height: 1.5;
  text-transform: uppercase;
}
.business-hero .business-eyebrow { color: rgba(255, 254, 250, .7); }
.business-hero-content { max-width: 800px; margin-top: 23px; }
.business-hero h1,
.business-commissions h2,
.business-empty h3,
.business-closing h2 {
  font-family: var(--heading);
  font-weight: 500;
  letter-spacing: -.06em;
}
.business-hero h1 {
  max-width: 760px;
  margin: 0;
  color: inherit;
  font-size: clamp(59px, 7.2vw, 108px);
  line-height: .84;
}
.business-hero-content > p {
  max-width: 460px;
  margin: 28px 0 0;
  color: rgba(255, 254, 250, .84);
  font-size: 16px;
  line-height: 1.62;
}
.business-contact-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  min-height: 49px;
  margin-top: 31px;
  padding: 12px 21px;
  border: 1px solid currentColor;
  color: inherit;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .11em;
  line-height: 1.2;
  text-decoration: none;
  text-transform: uppercase;
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.business-contact-link:hover { border-color: var(--soft-white); background: var(--soft-white); color: var(--ink); }
.business-contact-link span { font-size: 17px; font-weight: 400; }
.business-commissions { padding: clamp(84px, 10vw, 145px) 0 clamp(88px, 11vw, 158px); }
.business-commissions-heading { max-width: 770px; }
.business-commissions .business-eyebrow { color: var(--sea); }
.business-commissions h2 {
  margin: 19px 0 0;
  color: var(--ink);
  font-size: clamp(46px, 5.2vw, 76px);
  line-height: .91;
}
.business-commissions-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: 20px;
  margin-top: clamp(42px, 5vw, 68px);
}
.business-commission-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(28, 45, 51, .13);
  background: rgba(255, 254, 250, .58);
}
.business-commission-media { aspect-ratio: 1.28 / 1; margin: 0; overflow: hidden; background: var(--sand); }
.business-commission-media > a { display: block; width: 100%; height: 100%; }
.business-commission-copy h3 a { color: inherit; text-decoration: none; }
.business-commission-copy h3 a:hover { text-decoration: underline; text-underline-offset: 4px; }
.business-commission-media > a:focus-visible { outline: 2px solid var(--sea); outline-offset: -4px; }
.business-commission-copy h3 a:focus-visible { outline: 2px solid var(--sea); outline-offset: 4px; }
.business-commission-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
}
.business-commission-card:hover .business-commission-media img,
.business-commission-card:focus-within .business-commission-media img { transform: scale(1.025); }
.business-commission-copy { display: flex; min-height: 220px; flex: 1; flex-direction: column; padding: clamp(23px, 2.5vw, 31px); }
.business-commission-copy h3 {
  margin: 0;
  color: var(--ink);
  font-family: var(--heading);
  font-size: clamp(31px, 2.7vw, 42px);
  font-weight: 500;
  letter-spacing: -.05em;
  line-height: .94;
}
.business-commission-description { margin: 16px 0 0; color: var(--muted); font-size: 14px; line-height: 1.62; }
.business-commission-website { margin: 19px 0 0; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.business-commission-website a { color: var(--sea); text-decoration-color: rgba(49, 92, 112, .45); text-underline-offset: 4px; }
.business-commission-website a:hover { color: var(--ink); }
.business-commission-thanks { margin: auto 0 0; padding-top: 22px; border-top: 1px solid rgba(28, 45, 51, .12); color: #40525b; font-size: 12px; font-style: italic; line-height: 1.55; }
.business-empty { max-width: 660px; margin-top: clamp(42px, 5vw, 68px); padding: clamp(38px, 5vw, 65px); border: 1px solid rgba(28, 45, 51, .13); background: #e8edf0; }
.business-empty h3 { margin: 0; color: var(--ink); font-size: clamp(40px, 4.2vw, 62px); line-height: .91; }
.business-empty p { max-width: 440px; margin: 19px 0 0; color: #40525b; font-size: 15px; line-height: 1.62; }
.business-closing { padding: clamp(74px, 9vw, 126px) 0; background: #1c3036; color: var(--soft-white); text-align: center; }
.business-closing h2 { max-width: 840px; margin: 0 auto; color: inherit; font-size: clamp(48px, 5.2vw, 78px); line-height: .9; }
.business-closing p { max-width: 560px; margin: 22px auto 0; color: rgba(255, 254, 250, .78); font-size: 16px; line-height: 1.62; }
.business-closing .business-contact-link { border-color: rgba(255, 254, 250, .78); }

@media (max-width: 800px) {
  .business-shell { width: min(100% - 48px, 760px); }
  .business-hero::before { right: -29vw; bottom: -45vw; }
  .business-hero::after { right: 6vw; top: -27vw; }
  .business-commissions-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .business-shell { width: min(100% - 40px, 540px); }
  .business-hero { padding-top: 83px; }
  .business-hero h1 { font-size: 63px; }
  .business-hero-content > p { max-width: 100%; font-size: 15px; overflow-wrap: anywhere; }
  .business-contact-link { box-sizing: border-box; width: 100%; max-width: 100%; }
  .business-commissions h2 { font-size: 50px; }
  .business-commissions-grid { grid-template-columns: 1fr; gap: 12px; }
  .business-commission-media { aspect-ratio: 1.22 / 1; }
  .business-commission-copy { min-height: 0; padding: 26px 23px 25px; }
  .business-commission-copy h3 { font-size: 38px; }
  .business-empty { padding: 35px 24px; }
  .business-empty h3 { font-size: 48px; }
  .business-closing h2 { font-size: 54px; }
}

/* ---------- Business ÉLAN: commission layout ---------- */
.business-shell { width: min(100% - 112px, 1420px); }
.business-hero {
  padding: var(--page-top-space) 0 clamp(64px, 6.5vw, 104px);
  background: linear-gradient(116deg, #052b54 0%, #073460 100%);
}
.business-hero::before,
.business-hero::after { display: none; }
.business-hero .business-eyebrow { color: rgba(255, 254, 250, .72); }
.business-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(330px, .92fr);
  align-items: center;
  gap: clamp(48px, 8vw, 154px);
  margin-top: clamp(24px, 3.2vw, 46px);
}
.business-hero h1 {
  max-width: 690px;
  font-size: clamp(58px, 5.8vw, 94px);
  line-height: .86;
}
.business-hero-content { max-width: 465px; margin: 0; }
.business-hero-content > p {
  max-width: none;
  margin: 0;
  color: rgba(255, 254, 250, .88);
  font-size: clamp(15px, 1.2vw, 18px);
  line-height: 1.52;
}
.business-contact-link { min-width: min(100%, 310px); margin-top: 25px; }
.business-commissions { padding: clamp(30px, 3.3vw, 52px) 0 20px; }
.business-commissions-heading { max-width: none; }
.business-commissions h2,
.business-process > .business-shell > h2 {
  margin: 0;
  color: var(--sea);
  font-family: var(--display);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .11em;
  line-height: 1.3;
  text-transform: uppercase;
}
.business-commissions-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(12px, 1.3vw, 20px);
  margin-top: 18px;
}
.business-commission-card {
  border: 0;
  background: rgba(255, 254, 250, .62);
}
.business-commission-media { aspect-ratio: 1.64 / 1; }
.business-commission-copy {
  display: grid;
  min-height: 0;
  grid-template-columns: minmax(0, 1fr);
  align-items: end;
  gap: 20px;
  padding: 14px 20px 16px;
}
.business-commission-copy h3 {
  font-size: clamp(23px, 2vw, 31px);
  line-height: .95;
}
.business-commission-description,
.business-commission-website {
  margin: 5px 0 0;
  color: #506068;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.4;
}
.business-commission-website a { color: inherit; }

.business-commission-thanks { display: none; }
.business-empty { margin-top: 18px; }
.business-part-exchange { padding: 0 0 clamp(42px, 5vw, 72px); }
.business-part-exchange-inner {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(18px, 2vw, 32px);
  padding: 16px clamp(22px, 3vw, 44px);
  background: linear-gradient(105deg, #dcebf4, #c3ddec);
  color: var(--ink);
}
.business-part-exchange-mark { width: 72px; color: var(--sea); }
.business-part-exchange-mark svg { display: block; width: 100%; height: auto; }
.business-part-exchange-copy > p {
  margin: 0 0 4px;
  color: var(--sea);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.business-part-exchange-copy h2 {
  margin: 0;
  font-family: var(--heading);
  font-size: clamp(29px, 2.55vw, 44px);
  font-weight: 500;
  letter-spacing: -.05em;
  line-height: .94;
}
.business-part-exchange-copy > span { display: block; margin-top: 5px; font-size: 12px; }
.business-part-exchange a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  min-width: 252px;
  min-height: 44px;
  padding: 10px 18px;
  border: 1px solid var(--sea);
  background: transparent;
  color: var(--sea);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .1em;
  text-decoration: none;
  text-transform: uppercase;
  transition: background .18s ease, color .18s ease;
}
.business-part-exchange a:hover { background: var(--sea); color: #fff; }
.business-part-exchange a span { font-size: 18px; font-weight: 400; }
.business-process { padding: 0 0 clamp(56px, 6vw, 88px); }
.business-process > .business-shell > h2 { color: var(--sea); text-align: center; }
.business-process-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 22px;
}
.business-process-grid article {
  min-width: 0;
  padding: 0 clamp(24px, 4vw, 68px);
  text-align: center;
}
.business-process-grid article + article { border-left: 1px solid rgba(49, 92, 112, .42); }
.business-process-grid span {
  display: block;
  color: var(--sea);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
}
.business-process-grid h3 {
  margin: 16px 0 0;
  color: var(--ink);
  font-family: var(--display);
  font-size: clamp(14px, 1.3vw, 18px);
  font-weight: 700;
  letter-spacing: .07em;
  line-height: 1.25;
  text-transform: uppercase;
}
.business-process-grid p {
  max-width: 250px;
  margin: 11px auto 0;
  color: #506068;
  font-size: 12px;
  line-height: 1.45;
}
.business-process-icon {
  display: block;
  width: 44px;
  height: 36px;
  margin: 22px auto 0;
  color: var(--sea);
}
.business-closing {
  position: relative;
  overflow: hidden;
  padding: clamp(55px, 5.7vw, 92px) 0;
  background: linear-gradient(116deg, #052b54 0%, #073460 100%);
  text-align: left;
}
.business-closing .business-shell { position: relative; z-index: 1; }
.business-closing-copy { position: relative; z-index: 1; max-width: 670px; }
.business-closing h2 {
  max-width: none;
  margin: 0;
  font-size: clamp(43px, 4.3vw, 70px);
  line-height: .9;
}
.business-closing p { max-width: 550px; margin: 16px 0 0; font-size: 15px; }
.business-closing .business-contact-link { min-width: 268px; }
.business-closing-vehicle {
  position: absolute;
  right: -4%;
  bottom: -38%;
  width: min(52vw, 760px);
  opacity: .18;
  filter: grayscale(1) brightness(2.8) contrast(.8);
  pointer-events: none;
}

@media (max-width: 800px) {
  .business-shell { width: min(100% - 48px, 760px); }
  .business-hero-grid { grid-template-columns: 1fr; gap: 30px; }
  .business-hero-content { max-width: 500px; }
  .business-part-exchange-inner { grid-template-columns: 70px minmax(0, 1fr); }
  .business-part-exchange a { grid-column: 2; justify-self: start; }
  .business-closing-vehicle { right: -20%; width: min(78vw, 620px); }
}

@media (max-width: 560px) {
  .business-shell { width: min(100% - 40px, 540px); }
  .business-hero { padding: var(--page-top-space) 0 64px; }
  .business-hero-grid { gap: 26px; margin-top: 24px; }
  .business-hero h1 { font-size: 59px; }
  .business-contact-link { box-sizing: border-box; width: 100%; max-width: 100%; }
  .business-commissions { padding-top: 30px; }
  .business-commissions-grid { grid-template-columns: 1fr; }
  .business-commission-media { aspect-ratio: 1.48 / 1; }
  .business-commission-copy { padding: 15px 17px 16px; }
  .business-part-exchange-inner { grid-template-columns: 54px minmax(0, 1fr); gap: 15px; padding: 22px 18px; }
  .business-part-exchange-mark { width: 52px; }
  .business-part-exchange-copy h2 { font-size: 31px; }
  .business-part-exchange-copy > span { font-size: 11px; }
  .business-part-exchange a { grid-column: 1 / -1; width: 100%; min-width: 0; }
  .business-process-grid { grid-template-columns: 1fr; gap: 32px; }
  .business-process-grid article { padding: 0 24px; }
  .business-process-grid article + article { border-left: 0; }
  .business-closing-vehicle { right: -46%; bottom: -10%; width: 138vw; }
}

/* Bespoke shares the Business layout, but keeps its own palette and gallery content. */
.bespoke-page .business-hero,
.bespoke-page .business-closing { background: var(--sea-blue); }
.bespoke-page .business-closing p { color: var(--soft-white); }
.bespoke-page .business-commission-copy { grid-template-columns: minmax(0, 1fr); align-items: start; }
.bespoke-page .business-commission-copy h3,
.bespoke-page .business-commission-description { overflow-wrap: anywhere; }
.bespoke-page .bespoke-process-intro {
  max-width: 760px;
  margin: 16px auto 30px;
  color: var(--ink);
  font-family: var(--heading);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 500;
  letter-spacing: -.04em;
  line-height: 1.1;
  text-align: center;
}
.bespoke-page .bespoke-image-disclaimer {
  margin-top: 24px;
  padding: 20px 0 8px;
  background: transparent;
}
.bespoke-page .bespoke-image-disclaimer p { max-width: none; text-align: left; }

/* ---------- Homepage: editorial stories ---------- */
.home-editorial-stories {
  display: block;
  width: min(100% - 48px, 1672px);
  margin: 0 auto;
}
.home-editorial-story {
  position: sticky;
  top: 0;
  height: min(100svh, 920px);
  min-height: 680px;
  overflow: hidden;
  border-bottom: clamp(7px, .8vw, 13px) solid var(--cream);
  background: #b8b3ab;
  isolation: isolate;
}
.home-editorial-story--child { z-index: 1; }
.home-editorial-story--mischief { z-index: 2; }
.home-editorial-story--rain { z-index: 3; }
.home-editorial-story > picture {
  display: block;
  width: 100%;
  height: 100%;
}
.home-editorial-story > img,
.home-editorial-story > picture > img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

.js .home-editorial-copy {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition: opacity .55s .42s ease, transform .75s .42s cubic-bezier(.22, 1, .36, 1);
}
.js .home-editorial-copy h2 {
  clip-path: inset(0 0 110% 0);
  transform: translate3d(0, 105%, 0);
  transition: clip-path .86s .4s cubic-bezier(.22, 1, .36, 1), transform .86s .4s cubic-bezier(.22, 1, .36, 1);
  will-change: clip-path, transform;
}
.js .home-editorial-copy p {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition: opacity .5s .88s ease, transform .6s .88s cubic-bezier(.22, 1, .36, 1);
}

.js .home-editorial-story.is-editorial-revealed .home-editorial-copy {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}
.js .home-editorial-story.is-editorial-revealed .home-editorial-copy h2 {
  clip-path: inset(0);
  transform: translate3d(0, 0, 0);
}
.js .home-editorial-story.is-editorial-revealed .home-editorial-copy p {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}
@media (prefers-reduced-motion: reduce) {
  .js .home-editorial-copy,
  .js .home-editorial-copy h2,
  .js .home-editorial-copy p {
    clip-path: none;
    opacity: 1;
    transform: none;
    transition: none;
  }
}
.home-editorial-story--child::after,
.home-editorial-story--mischief::after,
.home-editorial-story--rain::after {
  content: '';
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
}
.home-editorial-story--child::after {
  background: linear-gradient(90deg, rgba(8, 13, 16, .42) 0%, rgba(8, 13, 16, .18) 44%, transparent 72%);
}
.home-editorial-story--mischief::after {
  background: linear-gradient(90deg, rgba(0, 0, 0, .43) 0%, rgba(0, 0, 0, .18) 38%, transparent 67%);
}
.home-editorial-story--rain::after {
  background: linear-gradient(90deg, rgba(8, 13, 16, .45) 0%, rgba(8, 13, 16, .18) 42%, transparent 70%);
}
.home-editorial-copy {
  position: absolute;
  z-index: 1;
  top: clamp(108px, 10vw, 156px);
  left: clamp(28px, 6.2vw, 104px);
  max-width: min(66%, 790px);
  color: var(--ink);
}
.home-editorial-copy h2 {
  margin: 0;
  color: inherit;
  font-family: var(--heading);
  font-size: clamp(52px, 7.3vw, 124px);
  font-weight: 500;
  letter-spacing: -.075em;
  line-height: .75;
}
.home-editorial-copy p {
  margin: clamp(18px, 2.25vw, 34px) 0 0;
  color: inherit;
  font-family: var(--heading);
  font-size: clamp(31px, 3.25vw, 56px);
  font-weight: 500;
  letter-spacing: -.05em;
  line-height: .9;
  text-wrap: balance;
}
.home-editorial-story--child .home-editorial-copy,
.home-editorial-story--mischief .home-editorial-copy,
.home-editorial-story--rain .home-editorial-copy { color: #fffefa; }
.home-editorial-story--child .home-editorial-copy,
.home-editorial-story--mischief .home-editorial-copy { max-width: min(86%, 1220px); }
.home-editorial-story--mischief .home-editorial-copy { top: clamp(108px, 10vw, 156px); }
.home-editorial-story--rain .home-editorial-copy { max-width: min(51%, 650px); }

.home-editorial-story--child .home-editorial-copy h2,
.home-editorial-story--mischief .home-editorial-copy h2 { font-size: clamp(62px, 7.2vw, 118px); line-height: .82; }
.home-editorial-story--rain .home-editorial-copy { top: clamp(84px, 8.7vw, 142px); }
.home-editorial-story--rain .home-editorial-copy h2 { font-size: clamp(78px, 10.2vw, 174px); line-height: .76; }
.home-editorial-story--child .home-editorial-copy p,
.home-editorial-story--mischief .home-editorial-copy p {
  margin-top: clamp(24px, 3vw, 46px);
  color: inherit;
  font-family: var(--body);
  font-size: clamp(20px, 2.35vw, 40px);
  font-weight: 400;
  letter-spacing: .2em;
  line-height: 1.25;
  text-transform: uppercase;
  text-wrap: nowrap;
}
.home-editorial-story--child .home-editorial-copy-line--normal,
.home-editorial-story--mischief .home-editorial-copy-line--normal { font-weight: 300; }
.home-editorial-story--child .home-editorial-copy-line--emphasis,
.home-editorial-story--mischief .home-editorial-copy-line--emphasis { font-weight: 700; }
.home-editorial-story--rain .home-editorial-copy p {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-top: clamp(20px, 2.4vw, 36px);
  color: inherit;
  font-family: var(--heading);
  font-size: inherit;
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: .84;
  text-wrap: nowrap;
}
.home-editorial-story--rain .home-editorial-copy-line { display: block; }
.home-editorial-story--rain .home-editorial-copy-line--normal { font-size: clamp(29px, 3.35vw, 56px); }
.home-editorial-story--rain .home-editorial-copy-line--emphasis { font-size: clamp(65px, 7.2vw, 118px); font-style: italic; letter-spacing: -.075em; line-height: .72; }

/* Keep authored inline formatting together inside the rain layout's flex column. */
.home-editorial-copy .home-editorial-copy-rich { display: block; max-width: 100%; text-transform: none; text-wrap: wrap; overflow-wrap: anywhere; }
.home-editorial-story--rain .home-editorial-copy-rich { font-size: clamp(29px, 3.35vw, 56px); line-height: 1.15; }
@media (max-width: 767px) {
  .home-editorial-story--rain .home-editorial-copy-rich { font-size: clamp(19px, 5.7vw, 29px); }
}

@media (max-width: 1050px) {
  .home-editorial-story--child .home-editorial-copy,
  .home-editorial-story--mischief .home-editorial-copy { max-width: min(76%, 740px); }
  .home-editorial-story--child .home-editorial-copy p,
  .home-editorial-story--mischief .home-editorial-copy p { text-wrap: balance; }
}
/* ---------- OnlyElans teaser and coming-soon page ---------- */
.home-onlyelans {
  width: min(100% - 80px, 1452px);
  margin: var(--section-space-large) auto 0;
}
.home-onlyelans-teaser {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(26px, 3vw, 40px);
  padding: 0;
  background: transparent;
  color: var(--ink);
  text-decoration: none;
}

.home-onlyelans img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
}
.home-onlyelans-coming,
.onlyelans-coming-label {
  display: grid;
  grid-template-columns: minmax(24px, 1fr) auto minmax(24px, 1fr);
  align-items: center;
  width: min(100%, 496px);
  gap: 17px;
  color: var(--sea);
  font-family: var(--body);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .27em;
  line-height: 1.2;
  text-align: center;
  text-transform: uppercase;
}
.home-onlyelans-coming i,
.onlyelans-coming-label i {
  display: block;
  height: 1px;
  background: currentColor;
  opacity: .46;
}
.onlyelans-page main { background: var(--warm-ivory); }
.onlyelans-coming {
  display: grid;
  min-height: calc(100svh - 131px);
  padding: clamp(70px, 11vw, 148px) 40px clamp(86px, 12vw, 164px);
  background: var(--warm-ivory);
  place-items: center;
}
.onlyelans-coming-shell {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(100%, 920px);
  text-align: center;
}
.onlyelans-logo {
  display: block;
  width: min(76vw, 610px);
  max-width: 100%;
  height: auto;
}
.onlyelans-coming-label {
  width: min(100%, 468px);
  margin: clamp(48px, 6vw, 74px) 0 0;
}
.onlyelans-coming h1 {
  max-width: 790px;
  margin: clamp(32px, 4vw, 49px) 0 0;
  color: var(--ink);
  font-family: var(--heading);
  font-size: clamp(48px, 5vw, 76px);
  font-weight: 500;
  letter-spacing: -.06em;
  line-height: .87;
}
.onlyelans-domain {
  margin: clamp(38px, 5vw, 64px) 0 0;
  color: var(--sea);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .24em;
  line-height: 1.2;
  text-transform: uppercase;
}
.onlyelans-enter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  min-height: 50px;
  margin-top: 25px;
  padding: 13px 21px;
  background: var(--ink);
  color: #fff;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .1em;
  line-height: 1.2;
  text-decoration: none;
  text-transform: uppercase;
  transition: background .18s ease, transform .18s ease;
}
.onlyelans-enter:hover { background: var(--sea); color: #fff; transform: translateY(-2px); }
.onlyelans-enter span { font-size: 16px; font-weight: 400; line-height: 1; }

/* ---------- Homepage: press / journal feature ---------- */
.home-press { width: min(100% - 80px, 1452px); margin: var(--section-space-large) auto 0; }
.home-press-heading { max-width: 760px; }
.home-press-heading > p,
.home-press-feature-eyebrow { margin: 0; color: var(--ink); font-size: 10px; font-weight: 600; letter-spacing: .15em; line-height: 1.25; text-transform: uppercase; }
.home-press-heading h2 { margin: 18px 0 0; color: var(--ink); font-size: clamp(52px, 5.5vw, 84px); font-weight: 500; letter-spacing: -.06em; line-height: .88; }
.home-press-heading > i,
.home-press-copy > i { display: block; width: 42px; height: 1px; margin-top: 31px; background: rgba(28, 45, 51, .28); }
.home-press-heading > div { max-width: 590px; margin-top: 25px; color: #4b5252; font-size: 17px; line-height: 1.52; }
.home-press-carousel { margin-top: 34px; overflow: hidden; }
.home-press-carousel-track { display: flex; gap: 18px; overflow-x: auto; padding: 0 1px 4px; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
.home-press-carousel-track::-webkit-scrollbar { display: none; }
.home-press-card { display: flex; flex: 0 0 clamp(278px, 24vw, 332px); min-width: 0; min-height: 408px; flex-direction: column; overflow: hidden; border: 1px solid rgba(28, 45, 51, .2); border-radius: 7px; background: var(--soft-white); scroll-snap-align: start; }
.home-press-card--turbo { flex-basis: clamp(290px, 25vw, 346px); }
.home-press-card-media { min-height: 188px; margin: 0; overflow: hidden; background: var(--ink); }
.home-press-card-media img { width: 100%; height: 100%; min-height: 188px; object-fit: cover; object-position: center 41%; transition: transform .45s ease; }
.home-press-card:hover .home-press-card-media img { transform: scale(1.035); }
.home-press-card-copy { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 21px 21px 20px; }
.home-press-publication { margin: 9px 0 0; color: #c7171c; font-size: 10px; font-weight: 700; letter-spacing: .12em; line-height: 1.2; text-transform: uppercase; }
.home-press-card-copy h3 { margin: 17px 0 0; color: var(--ink); font-size: clamp(29px, 2.3vw, 38px); font-weight: 500; letter-spacing: -.045em; line-height: .92; }
.home-press-card-copy > p:not(.home-press-feature-eyebrow):not(.home-press-publication) { margin: 15px 0 0; color: #535b5d; font-size: 13px; line-height: 1.5; }
.home-press-card-copy > a { display: inline-flex; align-items: center; gap: 10px; min-height: 36px; margin-top: auto; padding-top: 18px; color: var(--ink); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.home-press-card-copy > a:hover { color: var(--sea); }
.home-press-card-copy > a span { font-size: 15px; font-weight: 400; line-height: 1; }
.home-press-carousel-controls { display: flex; justify-content: flex-end; gap: 7px; margin-top: 15px; }
.home-press-carousel-controls button { display: inline-grid; width: 36px; height: 36px; padding: 0; place-items: center; border: 1px solid rgba(28, 45, 51, .35); border-radius: 50%; background: transparent; color: var(--ink); cursor: pointer; font: 400 18px/1 var(--body); transition: background .18s ease, color .18s ease, transform .18s ease; }
.home-press-carousel-controls button:hover { background: var(--ink); color: var(--soft-white); transform: translateY(-1px); }
.home-press-carousel-controls button:disabled { cursor: default; opacity: .38; transform: none; }
.home-newsletter-anchor { margin: var(--section-space-large) 0; }
.home-newsletter-anchor .newsletter-section {
  width: min(100% - 80px, 1452px);
  max-width: none;
  padding: 0;
}
.home-newsletter-anchor .newsletter {
  min-height: 0;
  padding: clamp(34px, 5vw, 72px);
  background: #e7e0d4;
}
.newsletter-eyebrow {
  margin: 0 !important;
  color: var(--sea);
  font-size: 10px !important;
  font-weight: 600;
  letter-spacing: .15em;
  line-height: 1.2 !important;
  text-align: left !important;
  text-transform: uppercase;
}
.home-newsletter-anchor .newsletter-copy h2 {
  font-size: clamp(37px, 4vw, 59px);
  font-weight: 500;
  letter-spacing: -.055em;
  text-align: left;
}
.home-newsletter-anchor .newsletter-copy > p:not(.newsletter-eyebrow) {
  max-width: 430px;
  margin: 0;
}

@media (max-width: 767px) {
  .home-editorial-stories { width: min(100% - 28px, 620px); margin-top: 0; }
  .home-editorial-story { height: 100svh; min-height: 620px; border-bottom-width: 7px; }
  .home-editorial-copy { top: 96px; left: 21px; max-width: 76%; }
  .home-editorial-copy h2 { font-size: clamp(39px, 12vw, 58px); }
  .home-editorial-copy p { margin-top: 13px; font-size: clamp(23px, 7.3vw, 34px); line-height: .93; }
  .home-editorial-story--mischief .home-editorial-copy { top: 96px; }
  .home-editorial-story--rain .home-editorial-copy { top: 96px; max-width: 64%; }
  .home-editorial-story--rain .home-editorial-copy p { font-size: clamp(19px, 5.7vw, 29px); }
  .home-onlyelans { width: min(100% - 40px, 540px); margin-top: 48px; }
  .home-onlyelans-teaser { gap: 25px; padding: 0; }
  .home-onlyelans img { width: 100%; }
  .home-onlyelans-coming,
  .onlyelans-coming-label { gap: 11px; font-size: 9px; letter-spacing: .2em; }
  .onlyelans-coming { min-height: calc(100svh - 116px); padding: 64px 20px 84px; }
  .onlyelans-coming-shell { width: min(100%, 540px); }
  .onlyelans-logo { width: min(90vw, 480px); }
  .onlyelans-coming-label { width: min(100%, 390px); margin-top: 51px; }
  .onlyelans-coming h1 { margin-top: 34px; font-size: clamp(46px, 13vw, 64px); line-height: .86; }
  .onlyelans-domain { margin-top: 41px; font-size: 10px; letter-spacing: .2em; }
  .home-press { width: min(100% - 40px, 540px); margin-top: 48px; }
  .home-press-heading h2 { font-size: 58px; }
  .home-press-heading > i { margin-top: 24px; }
  .home-press-heading > div { margin-top: 20px; font-size: 15px; }
  .home-press-carousel { margin-top: 29px; }
  .home-press-carousel-track { gap: 12px; padding-bottom: 3px; }
  .home-press-card,
  .home-press-card--turbo { flex-basis: min(82vw, 340px); min-height: 392px; }
  .home-press-card-media,
  .home-press-card-media img { min-height: min(54vw, 220px); }
  .home-press-card-copy { padding: 20px; }
  .home-press-card-copy h3 { font-size: 35px; }
  .home-press-carousel-controls { margin-top: 13px; }
  .home-newsletter-anchor { margin: 48px 0; }
  .home-newsletter-anchor .newsletter-section { width: min(100% - 40px, 540px); }
  .home-newsletter-anchor .newsletter { padding: 32px 24px; }
  .home-newsletter-anchor .newsletter-copy h2 { font-size: 42px; }
}

/* ---------- Our Cars concept gallery ---------- */
.our-cars-page main { background: var(--warm-ivory); }
.our-cars-collection { width: min(100% - 80px, 1452px); margin: 0 auto; padding: var(--page-top-space) 0 clamp(80px, 9vw, 136px); }
.our-cars-heading { max-width: 920px; margin: 0 auto clamp(52px, 6vw, 82px); text-align: center; }
.our-cars-heading > p { max-width: 100%; margin: 0 auto; color: var(--sea); font-size: clamp(15px, 1.35vw, 20px); font-weight: 600; letter-spacing: .11em; line-height: 1.3; text-transform: uppercase; }
.our-cars-heading h1 { margin: 24px 0 0; color: var(--ink); font-size: clamp(58px, 7vw, 102px); font-weight: 500; letter-spacing: -.065em; line-height: .84; }
.our-cars-intro { max-width: 780px; margin: 30px auto 0; color: var(--ink); font-family: var(--heading); font-size: clamp(25px, 2.35vw, 37px); font-weight: 500; letter-spacing: -.035em; line-height: 1.16; }
.our-cars-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.our-cars-card { display: flex; flex-direction: column; min-width: 0; border: 1px solid rgba(28, 45, 51, .13); background: var(--soft-white); }
.our-cars-card > img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.our-cars-card-copy { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 24px 24px 26px; }
.our-cars-card-copy h2 { margin: 0; color: var(--ink); font-size: clamp(31px, 2.5vw, 43px); font-weight: 500; letter-spacing: -.05em; }
.our-cars-card-copy p { margin: 11px 0 0; color: var(--muted); font-size: 14px; line-height: 1.58; }
.our-cars-card-copy > a,
.our-cars-actions a { display: inline-flex; align-items: center; justify-content: center; gap: 17px; min-height: 48px; padding: 12px 20px; font-size: 10px; font-weight: 600; letter-spacing: .11em; text-align: center; text-decoration: none; text-transform: uppercase; transition: background .18s ease, color .18s ease, transform .18s ease; }
.our-cars-card-copy > a { margin-top: auto; padding: 20px 0 0; border-bottom: 1px solid var(--ink); color: var(--ink); }
.our-cars-card-copy > a:hover { color: var(--sea); border-color: var(--sea); }
.our-cars-actions { margin-top: clamp(52px, 7vw, 88px); text-align: center; }
.our-cars-actions a { border: 1px solid var(--ink); background: var(--ink); color: #fff; }
.our-cars-actions a:hover { background: transparent; color: var(--ink); transform: translateY(-2px); }
.our-cars-empty { max-width: 640px; margin: 0 auto; padding: 58px 30px; border: 1px solid rgba(28, 45, 51, .13); background: var(--soft-white); text-align: center; }
.our-cars-empty h2 { margin: 0; font-size: clamp(41px, 4vw, 58px); font-weight: 500; letter-spacing: -.055em; }
.our-cars-empty p { margin: 14px auto 0; color: var(--muted); }
.our-cars-empty a { display: inline-flex; gap: 13px; margin-top: 25px; color: var(--ink); font-size: 11px; font-weight: 600; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.our-cars-disclaimer { max-width: 850px; margin: clamp(68px, 8vw, 104px) auto 0; padding: 24px 0 0; border-top: 1px solid rgba(28, 45, 51, .18); text-align: center; }
.our-cars-disclaimer p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }

/* ---------- Image and specification disclaimers ---------- */
.terms-image-disclaimer { max-width: 790px; margin: 26px auto; padding: 30px 32px; border: 1px solid rgba(49, 92, 112, .24); background: #edf4f6; color: #3c4e57; }
.terms-image-disclaimer h2 { margin: 0; color: var(--sea); font-family: var(--heading); font-size: clamp(33px, 3.5vw, 46px); font-weight: 500; letter-spacing: -.05em; }
.terms-image-disclaimer p { margin: 14px 0 0; font-size: 14px; line-height: 1.65; }
.bespoke-image-disclaimer { padding: 31px 0; border-top: 1px solid rgba(28, 45, 51, .12); background: #f2f0ea; }
.bespoke-image-disclaimer p { max-width: 850px; margin: 0 auto; color: var(--muted); font-size: 12px; line-height: 1.65; text-align: center; }

@media (max-width: 960px) {
  .our-cars-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .our-cars-collection { width: min(100% - 40px, 540px); padding-top: var(--page-top-space); }
  .our-cars-heading { margin-bottom: 42px; text-align: left; }
  .our-cars-heading > p { font-size: 15px; }
  .our-cars-heading h1 { font-size: 62px; }
  .our-cars-intro { margin-left: 0; font-size: clamp(25px, 7.4vw, 34px); }
  .our-cars-grid { grid-template-columns: 1fr; gap: 14px; }
  .our-cars-card-copy { padding: 22px 20px 24px; }
  .our-cars-card-copy h2 { font-size: 37px; }
  .our-cars-actions { margin-top: 46px; }
  .our-cars-actions a { width: 100%; }
  .our-cars-empty { padding: 42px 21px; }
  .our-cars-disclaimer { margin-top: 58px; text-align: left; }
  .terms-image-disclaimer { margin: 20px auto; padding: 24px 21px; }
  .terms-image-disclaimer h2 { font-size: 38px; }
  .bespoke-image-disclaimer { padding: 27px 0; }
  .bespoke-image-disclaimer p { text-align: left; }
}

/* ---------- Hire ÉLAN: clean editorial layout ---------- */
.rent-page main {
  overflow: clip;
  background: #fbfaf7;
}
/* Keep the Hire ÉLAN page immediate and still: no scroll-reveal fade. */
.js .rent-page .reveal {
  opacity: 1;
  transform: none;
  transition: none;
}
.rent-shell { width: min(100% - 80px, 1452px); }
.rent-hero {
  padding: var(--page-top-space) 0 0;
  background: var(--warm-ivory);
}
.rent-hero .rent-shell {
  display: grid;
  grid-template-columns: minmax(300px, .76fr) minmax(0, 1.24fr);
  align-items: stretch;
  min-height: min(45vw, 656px);
  gap: clamp(40px, 7vw, 128px);
}
.rent-hero-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  max-width: 470px;
  padding: clamp(40px, 5vw, 76px) 0;
}
.rent-eyebrow {
  margin: 0;
  color: var(--sea);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .15em;
  line-height: 1.3;
  text-transform: uppercase;
}
.rent-hero-copy h1,
.rent-special-copy h2,
.rent-closing h2 {
  margin: 19px 0 0;
  color: var(--ink);
  font-family: var(--heading);
  font-weight: 500;
  letter-spacing: -.06em;
  line-height: .86;
}
.rent-hero-copy h1 { font-size: clamp(62px, 6.15vw, 96px); }
.rent-hero-copy > p:not(.rent-eyebrow) {
  max-width: 410px;
  margin: 27px 0 0;
  color: #4a5558;
  font-family: var(--heading);
  font-size: clamp(25px, 2.1vw, 34px);
  line-height: 1.18;
}
.rent-hero-copy > a,
.rent-special-copy > a,
.rent-closing a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  min-height: 48px;
  margin-top: 33px;
  padding: 13px 21px;
  border: 1px solid var(--ink);
  background: var(--ink);
  color: #fffefa;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .12em;
  line-height: 1.2;
  text-decoration: none;
  text-transform: uppercase;
  transition: background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}
.rent-hero-copy > a::after,
.rent-special-copy > a::after,
.rent-closing a::after { content: '→'; font-size: 17px; font-weight: 400; }
.rent-hero-copy > a:hover,
.rent-special-copy > a:hover {
  border-color: var(--sea);
  background: var(--sea);
  color: #fff;
  transform: translateY(-2px);
}
.rent-hero-media,
.rent-special-media {
  position: relative;
  width: 100%;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(28, 45, 51, .17);
  background: #e5e2db;
}
.rent-hero-media { grid-column: auto; height: 100%; }
.rent-hero-media img,
.rent-special-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
/* The supplied cars are shown in full, without the reference mock-up's image fades. */
.rent-hero-media::after,
.rent-special-media::after { display: none; }
.rent-special {
  margin-top: clamp(76px, 10vw, 144px);
  background: #e7f0f2;
}
.rent-special .rent-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.17fr) minmax(300px, .83fr);
  align-items: stretch;
  min-height: min(43vw, 630px);
  gap: clamp(40px, 7vw, 126px);
}
.rent-special-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  order: 2;
  max-width: 470px;
  padding: clamp(54px, 7.1vw, 108px) 0;
}
.rent-special-copy h2 { font-size: clamp(57px, 5.6vw, 87px); }
.rent-special-copy > p:not(.rent-eyebrow) {
  max-width: 400px;
  margin: 24px 0 0;
  color: #445357;
  font-family: var(--heading);
  font-size: clamp(21px, 1.8vw, 29px);
  line-height: 1.28;
}
.rent-special-copy > p.rent-special-occasions {
  margin-top: 30px;
  color: var(--ink);
  font-size: clamp(23px, 2vw, 32px);
  line-height: 1.2;
}
.rent-special-copy > p.rent-special-occasions + p {
  max-width: 340px;
  margin-top: 24px;
  font-size: clamp(18px, 1.45vw, 23px);
}
.rent-special-media { order: 1; }
/* Keep the complete vehicle visible in the special-occasions feature. */
.rent-special-media img { object-fit: contain; }
.rent-closing {
  margin: 0;
  padding: clamp(56px, 6vw, 88px) 0;
  background: var(--sea);
  text-align: center;
}
.rent-closing .rent-shell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  max-width: 620px;
}
.rent-closing h2 {
  max-width: 500px;
  margin: 0;
  color: #fffefa;
  font-size: clamp(44px, 4.2vw, 66px);
}
.rent-closing .rent-shell > p:not(.rent-eyebrow) {
  max-width: 450px;
  margin: 19px 0 0;
  color: rgba(255, 254, 250, .84);
  font-family: var(--heading);
  font-size: clamp(19px, 1.6vw, 26px);
  line-height: 1.24;
}
.rent-closing a {
  width: max-content;
  margin-top: 24px;
  border-color: #fffefa;
  background: #fffefa;
  color: var(--sea);
}
.rent-closing a:hover {
  border-color: #d9e8ec;
  background: #d9e8ec;
  color: var(--ink);
  transform: translateY(-2px);
}

@media (max-width: 900px) {
  .rent-shell { width: min(100% - 48px, 760px); }
  .rent-hero { padding-top: 60px; }
  .rent-hero .rent-shell,
  .rent-special .rent-shell {
    grid-template-columns: 1fr;
    min-height: 0;
    gap: 0;
  }
  .rent-hero-copy,
  .rent-special-copy { max-width: 570px; padding: 0 0 48px; }
  .rent-hero-media,
  .rent-special-media { min-height: min(76vw, 550px); }
  .rent-special { margin-top: 74px; }
  .rent-special-copy { order: 1; padding-top: 68px; }
  .rent-special-media { order: 2; }
}

@media (max-width: 640px) {
  .rent-shell { width: min(100% - 40px, 540px); }
  .rent-hero { padding-top: var(--page-top-space); }
  .rent-hero-copy { padding-bottom: 37px; }
  .rent-hero-copy h1 { font-size: clamp(58px, 17vw, 72px); }
  .rent-hero-copy > p:not(.rent-eyebrow) { margin-top: 21px; font-size: 27px; }
  .rent-hero-copy > a,
  .rent-special-copy > a,
  .rent-closing a { width: 100%; }
  .rent-hero-media,
  .rent-special-media { min-height: min(90vw, 430px); }
  .rent-special { margin-top: 55px; }
  .rent-special-copy { padding: 56px 0 37px; }
  .rent-special-copy h2 { font-size: clamp(54px, 16vw, 67px); }
  .rent-special-copy > p.rent-special-occasions { margin-top: 25px; font-size: 27px; }
  .rent-special-copy > p.rent-special-occasions + p { margin-top: 21px; font-size: 21px; }
  .rent-closing { padding: 56px 0; }
  .rent-closing h2 { font-size: clamp(42px, 12vw, 54px); }
  .rent-closing .rent-shell > p:not(.rent-eyebrow) { margin-top: 17px; font-size: 22px; }
}

/* ---------- Responsive navigation and touch layouts ---------- */
/* Nine translated links and the centred badge need more room than a tablet provides. */
@media (min-width: 1400px) and (max-width: 1540px) {
  .site-nav .nav-primary,
  body.home-page > .site-nav .nav-primary { gap: 8px; }
}
@media (max-width: 1399px) {
  html.js { scroll-padding-top: 142px; }
  /* Keep the menu above the floating price, but below modal dialogs. */
  .site-nav,
  .home-page .site-nav,
  .home-page .site-nav.is-scrolled { position: sticky; top: 0; z-index: 90; }
  .site-nav .nav-pill,
  body.home-page > .site-nav .nav-pill,
  body.home-page > .site-nav.is-scrolled .nav-pill {
    position: relative;
    min-height: 82px;
    flex-wrap: nowrap;
    padding: 0 18px;
  }
  .site-nav .nav-logo,
  body.home-page > .site-nav .nav-logo,
  body.home-page > .site-nav.is-scrolled .nav-logo { width: 128px; height: 41px; }
  .site-nav .nav-toggle {
    position: absolute;
    z-index: 3;
    top: 50%;
    right: 18px;
    display: none;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 12px 9px;
    transform: translateY(-50%);
  }
  .js .site-nav .nav-toggle { display: flex; }
  .site-nav .nav-links {
    position: absolute;
    z-index: 4;
    top: 100%;
    right: 0;
    left: 0;
    display: flex;
    width: auto;
    max-height: calc(100vh - 126px);
    max-height: calc(100dvh - 126px);
    flex-direction: column;
    align-items: stretch;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 8px 24px max(18px, env(safe-area-inset-bottom));
    border-bottom: 1px solid var(--line);
    background: var(--warm-ivory);
    box-shadow: 0 12px 18px rgba(28, 45, 51, .1);
  }
  .js .site-nav .nav-links { display: none; }
  .js .site-nav .nav-links.is-open { display: flex; }
  .site-nav .nav-primary,
  body.home-page > .site-nav .nav-primary,
  body.home-page > .site-nav.is-scrolled .nav-primary {
    display: flex;
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 0;
  }
  .site-nav .nav-link,
  body.home-page > .site-nav.is-scrolled .nav-link {
    display: flex;
    align-items: center;
    min-height: 44px;
    margin: 0;
    padding: 12px 2px;
    font-size: 13px;
    line-height: 1.5;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .site-nav .nav-toggle:focus-visible,
  .site-nav .nav-link:focus-visible { outline: 2px solid var(--sea); outline-offset: 2px; }
  .site-nav .language-bar { min-height: 44px; padding-inline: 18px; }
  body.home-page > .site-nav .language-bar { display: flex !important; }
  .language-bar a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
  .about-page .language-bar,
  .why-page .language-bar { padding-right: 82px; }
  .about-page .about-close,
  .why-page .about-close { z-index: 100; top: 6px; right: 18px; width: 44px; height: 44px; }

  /* Navigation stays available when JavaScript is disabled. */
  html:not(.js) { scroll-padding-top: 16px; }
  html:not(.js) .site-nav .nav-pill { flex-wrap: wrap; padding-block: 18px; }
  html:not(.js) body .site-nav .nav-logo { position: relative; top: auto; transform: none; }
  html:not(.js) .site-nav .nav-links { position: static; flex-basis: 100%; max-height: none; box-shadow: none; }
  html:not(.js) .site-nav,
  html:not(.js) .home-page .site-nav { position: relative; }
}

@media (min-width: 1101px) and (max-width: 1399px) {
  .elan-configurator--design-page .elan-configurator-viewer { top: 142px; height: min(720px, calc(100svh - 158px)); min-height: 0; }
}
@media (min-width: 992px) and (max-width: 1399px) {
  .contact-media { top: 142px; }
}
@media (max-width: 1100px) {
  .newsletter { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .newsletter-subscribe { width: 100%; }
  .subscribe-shell { flex-wrap: wrap; gap: 8px; }
  .subscribe-input { flex: 1 1 200px; }
  .subscribe-btn.btn-ink { flex: 0 1 auto; min-height: 44px; max-width: 100%; padding: 12px 16px; }
  .field,
  .contact-car-search,
  .subscribe-input,
  .viewing-modal-fields input,
  .viewing-modal-fields textarea,
  .configurator-order-fields input,
  .configurator-order-fields textarea,
  .configurator-order-fields select { min-width: 0; max-width: 100%; font-size: 16px; }
  .field,
  .contact-car-search,
  .subscribe-input { min-height: 48px; }
  .subscribe-shell:focus-within { outline: 2px solid var(--sea); outline-offset: 3px; }
  .contact-car-native-select { white-space: normal; }
  .info-row a { overflow-wrap: anywhere; }

  .design-bespoke { flex-direction: column; align-items: stretch; gap: 24px; }
  .design-bespoke > a { width: 100%; min-width: 0; max-width: 100%; text-align: center; }
  .design-bespoke > div { min-width: 0; }
  .elan-config-choice-card > span,
  .elan-config-paint-collection-heading { flex-wrap: wrap; }
  .elan-config-swatch-option { justify-content: center; min-width: 44px; min-height: 44px; }
  .elan-config-swatch-option > i { width: 32px; height: 32px; }
  .elan-config-choice-card small,
  .elan-config-paint-collection > p,
  .elan-config-colour-custom-note,
  .elan-config-note,
  .elan-config-wheel-centre-note,
  .elan-config-adventure-note,
  .elan-config-adventure-finish > p:nth-child(2),
  .elan-configurator-summary > p { font-size: 12px; line-height: 1.5; }
  .elan-configurator--design-page .elan-config-step-title span { font-size: 10px; }
  .elan-configurator--design-page .elan-home-configurator-submit { font-size: 12px; line-height: 1.4; }
  .elan-config-storage-preview,
  .design-specifications a,
  .design-editions-view-all { display: inline-flex; align-items: center; min-height: 44px; }
  .design-editions-controls button,
  .home-press-carousel-controls button,
  .viewing-modal-close,
  .configurator-order-modal-close,
  .elan-config-storage-close { width: 44px; height: 44px; }
  .footer-column > a { display: flex; align-items: center; min-height: 44px; }
  .footer-legal > a { display: inline-flex; align-items: center; min-height: 44px; }
  .footer-columns { gap: 24px; }
  .footer-column .footer-follow-social .social-icons a { display: inline-flex; justify-content: center; align-items: center; width: 44px; height: 44px; padding: 0; }
  .newsletter .social-icons a { width: 44px; height: 44px; }

  .home-editorial-story--rain .home-editorial-copy { max-width: calc(100% - 80px); }
  .home-editorial-story--rain .home-editorial-copy p { text-wrap: balance; }
  .home-editorial-story--rain .home-editorial-copy-line { max-width: 100%; }
  .journal-feature { grid-template-columns: minmax(0, 1fr); }
  .journal-feature-copy { max-width: none; }
  .journal-feature-media { min-height: 0; aspect-ratio: 16 / 10; }
  .journal-feature-media img { height: 100%; }
  .journal-story-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .journal-story-card { grid-template-columns: minmax(0, 1fr); }
  .journal-story-media { aspect-ratio: 16 / 10; min-height: 0; }
  .journal-story-card h3 { overflow-wrap: anywhere; }
  .journal-post-body { overflow-wrap: anywhere; }
}

@media (max-width: 991px) {
  /* Give the portrait message room to be read, without blue letterboxing. */
  .contact-media { width: min(100%, 480px); height: auto; aspect-ratio: 2 / 3; margin-inline: auto; background-color: transparent; background-size: contain; }
}

@media (max-width: 767px) {
  .home-page .hero-frame--elan { height: auto; min-height: calc(100svh - 126px); }
  .home-page .hero-inner { padding: 52px 20px 64px; transform: none; }
  .home-page .hero-actions .btn-ink,
  .home-page .hero-actions .btn-outline-ink { min-width: 0; text-align: center; }
  /* Intrinsic text height prevents translated or enlarged copy from being clipped by the next sticky story. */
  .home-editorial-story { position: relative; height: auto; min-height: min(760px, 100svh); padding: 76px 21px 60px; }
  .home-editorial-story > picture { position: absolute; inset: 0; }
  .home-editorial-story .home-editorial-copy { position: relative; top: auto; left: auto; width: 100%; max-width: 100%; }
  .home-editorial-story .home-editorial-copy h2 { font-size: clamp(39px, 12vw, 58px); line-height: .95; overflow-wrap: anywhere; }
  .home-editorial-story .home-editorial-copy p { margin-top: 22px; font-size: clamp(16px, 4.6vw, 23px); line-height: 1.4; letter-spacing: .12em; text-wrap: balance; overflow-wrap: anywhere; }
  .home-editorial-story--rain .home-editorial-copy p { gap: 8px; letter-spacing: -.04em; }
  .home-editorial-story--rain .home-editorial-copy-line--normal { font-size: clamp(24px, 7vw, 34px); line-height: 1.05; }
  .home-editorial-story--rain .home-editorial-copy-line--emphasis { font-size: clamp(42px, 12vw, 62px); line-height: .95; }
  .our-cars-heading > .our-cars-intro { margin-top: 24px; color: var(--ink); font-size: clamp(25px, 6vw, 34px); font-weight: 500; letter-spacing: -.035em; line-height: 1.16; text-transform: none; }
  .subscribe-shell { flex-direction: column; align-items: stretch; padding: 6px; gap: 6px; }
  .subscribe-input { flex: 0 1 auto; width: 100%; padding: 12px; }
  .subscribe-btn.btn-ink { width: 100%; }
  .newsletter-terms { font-size: 11px; line-height: 1.5; }
  .follow-row { flex-wrap: wrap; gap: 12px; }
  .footer-column > a { font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
  .footer-column .footer-follow-social .social-icons { flex-wrap: wrap; width: auto; }
  .journal-story-grid { grid-template-columns: minmax(0, 1fr); }
  .journal-story-card { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  .journal-story-media { aspect-ratio: auto; min-height: 160px; }
}

/* Keep the portrait photo's faces clear; desktop and landscape retain their layout. */
@media (max-width: 767px) and (orientation: portrait) {
  .home-page .hero-frame--elan {
    align-items: flex-end;
    min-height: max(560px, calc(100svh - 126px));
  }
  .home-page .hero-inner { padding: 32px 20px max(24px, env(safe-area-inset-bottom)); }
  .home-page .hero-title { margin-top: 16px; }
  .home-page .hero-actions { margin-top: 20px; }
  .home-page .hero-frame--elan::after {
    background: linear-gradient(180deg, rgba(10, 15, 15, .12) 0%, rgba(10, 15, 15, .16) 45%, rgba(10, 15, 15, .72) 100%);
  }
}

/* All dialogs must remain scrollable in landscape as well as portrait. */
.elan-config-storage-dialog-inner { max-height: calc(100vh - 52px); max-height: calc(100dvh - 52px); overflow-y: auto; overscroll-behavior: contain; }
@media (max-width: 640px) {
  .elan-configurator--design-page .elan-configurator-viewer { height: clamp(320px, 95vw, 460px); min-height: 0; }
  .elan-configurator--design-page .elan-design-page-title { top: 26px; left: 20px; max-width: calc(100% - 40px); font-size: clamp(34px, 10vw, 48px); line-height: 1; }
  .elan-configurator-bespoke a { min-width: 0; text-align: center; }
  .elan-configurator-bespoke h2 { overflow-wrap: anywhere; }
  .design-bespoke h2 { font-size: clamp(34px, 10vw, 43px); line-height: 1; }
  .viewing-modal h2,
  .configurator-order-modal h2 { font-size: clamp(34px, 10vw, 47px); line-height: 1; overflow-wrap: anywhere; }
  .viewing-modal-dialog,
  .configurator-order-modal-dialog { padding-bottom: max(28px, env(safe-area-inset-bottom)); }
  .elan-config-storage-dialog-inner { max-height: calc(100dvh - 16px); padding-bottom: max(30px, env(safe-area-inset-bottom)); }
  .elan-config-storage-dialog h2 { margin-right: 20px; }
}
@media (max-width: 380px) {
  .why-feature-stack { grid-template-columns: minmax(0, 1fr); }
  .why-feature-stack p:last-child { grid-column: auto; }
  .why-feature-stack p { min-height: 64px; }
  .why-assurance h2 { overflow-wrap: anywhere; }
  .journal-story-card { grid-template-columns: minmax(0, 1fr); }
  .journal-story-media { aspect-ratio: 16 / 10; min-height: 0; }
  .journal-feature-copy h2,
  .terms-page-heading h1 { font-size: 44px; overflow-wrap: anywhere; }
}
@media (max-width: 1100px) and (max-height: 500px) {
  .home-editorial-story { position: relative; height: auto; min-height: 480px; }
}

/* Rain curtains sit over the interior; the roof retains its original edge. */
.elan-home-car-image--rain { z-index: 12; }
.elan-home-car-image--rain-next { z-index: 13; opacity: 0; }

/* Mobile enhancement is opt-in. Only an open native bottom sheet locks scrolling;
   closed/no-JS/desktop layouts retain their original document flow. */
.elan-config-mobile-workspace[hidden],
.elan-config-mobile-panel:not([open]),
.elan-config-mobile-storage-host:not([open]) { display: none; }
@media (max-width: 767px) {
  html.has-config-mobile-editor { overflow: hidden; }
  body.has-config-mobile-editor { position: fixed; top: var(--config-scroll-top); left: 0; width: 100%; overflow: hidden; }
  .is-mobile-enhanced { transform: none; filter: none; transition: none; opacity: 1; }
  .elan-configurator--design-page.is-mobile-enhanced { display: block; width: 100%; min-height: 0; margin-top: 0; border-inline: 0; }
  .elan-configurator-floating-price.is-mobile-suppressed { display: none; }
  .elan-config-mobile-workspace {
    --config-modal-height: 100svh;
    --config-preview-height: calc(var(--config-modal-height) * .43);
    --config-sheet-top: calc(var(--config-modal-height) * .45);
    --config-viewport-top: 0px;
    display: grid;
    grid-template-rows: minmax(180px, 45svh) auto auto;
    min-width: 0;
    background: var(--warm-ivory);
    scroll-margin-top: var(--config-header-offset, 0px);
  }
  .is-mobile-enhanced .elan-config-mobile-workspace .elan-configurator-viewer { position: relative; top: auto; align-self: stretch; grid-row: 1; height: 100%; min-height: 0; }
  .elan-config-mobile-workspace > .elan-config-mobile-overview { grid-row: 3; }
  .elan-config-mobile-workspace > .elan-config-mobile-categories { grid-row: 2; }
  .is-mobile-enhanced .elan-config-mobile-workspace .elan-home-car-image { inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center; }
  .is-mobile-enhanced .elan-design-page-title { top: 14px; left: 16px; max-width: calc(100% - 32px); font-size: 25px; line-height: 1; }

  .is-mobile-enhanced .elan-configurator-viewer-status { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); }
  .elan-config-mobile-overview { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 4px 12px; border-block: 1px solid var(--line); }
  .elan-config-mobile-overview > div { display: grid; gap: 1px; margin-right: auto; }
  .elan-config-mobile-overview span { font-size: 10px; }
  .elan-config-mobile-overview strong { font-size: 21px; line-height: 1.1; font-variant-numeric: tabular-nums; }
  .elan-config-mobile-overview button,
  .elan-config-mobile-actions button { min-height: 44px; padding: 8px 12px; border: 1px solid var(--ink); background: transparent; color: var(--ink); font: 600 13px/1.2 var(--body); cursor: pointer; }
  .elan-config-mobile-overview [data-config-mobile-order],
  .elan-config-mobile-actions [data-config-mobile-apply] { background: #254d80; border-color: #254d80; color: #fff; }
  .elan-config-mobile-panel {
    position: fixed;
    inset: var(--config-viewport-top) 0 auto;
    top: calc(var(--config-viewport-top) + var(--config-modal-height) * .5);
        transform: translateY(-50%);
    width: calc(100% - 32px);
    max-width: 480px;
    height: auto;
    max-height: calc(var(--config-modal-height) * .7);
    margin: 0 auto;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--warm-ivory);
    color: var(--ink);
    box-shadow: none;
    overflow: hidden;
    overscroll-behavior: contain;
  }
  .elan-config-mobile-panel[open] { display: flex; flex-direction: column; }
  .elan-config-mobile-panel::backdrop { background: rgba(16, 30, 35, .28); }
  .elan-config-mobile-panel-heading { position: relative; flex: 0 0 auto; padding: 14px 64px 10px 16px; }
  .elan-config-mobile-close { position: absolute; top: 7px; right: 10px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: var(--soft-white); color: var(--ink); font: 28px/1 var(--body); cursor: pointer; }
  .elan-config-mobile-panel > .elan-config-mobile-overview,
  .elan-config-mobile-panel > .elan-config-mobile-actions,
  .elan-config-mobile-panel > .elan-config-mobile-categories { flex: 0 0 auto; }
  .elan-config-mobile-storage-host { position: fixed; inset: 0; width: 100%; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; }
  .elan-config-mobile-storage-host::backdrop { background: transparent; }
  .elan-config-mobile-storage-host .elan-config-storage-dialog { z-index: auto; }
  .elan-config-mobile-panel-heading h2:focus { outline: none; }
    .elan-config-mobile-panel-heading h2 { margin: 0; font-family: var(--heading); font-size: 22px; font-weight: 500; line-height: 1.1; }
  .elan-config-mobile-panel-heading p { margin: 4px 0 0; color: var(--ink); font-size: 12px; line-height: 1.4; }
  .elan-config-mobile-options { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior-y: contain; padding: 8px 16px 20px; scroll-padding-block: 8px; }
  .is-mobile-enhanced .elan-config-mobile-options .elan-config-step { display: block; padding: 0; border: 0; }
  .is-mobile-enhanced .elan-config-mobile-options .elan-config-step-title { display: none; }
  .is-mobile-enhanced [data-config-group][hidden],
  .elan-config-mobile-panel[hidden],
  .elan-config-mobile-actions[hidden] { display: none; }
  .elan-config-mobile-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 6px 16px; border-top: 1px solid var(--line); }
  .elan-config-mobile-categories { display: flex; flex-wrap: nowrap; gap: 14px; min-width: 0; overflow-x: auto; padding: 0 16px 16px; scroll-snap-type: x proximity; scroll-padding-inline: 16px; overscroll-behavior-x: contain; scrollbar-width: thin; }
  .elan-config-mobile-categories button { position: relative; display: grid; grid-template-rows: 88px auto; justify-items: center; align-content: start; flex: 0 0 88px; gap: 9px; min-width: 0; padding: 0; border: 0; background: transparent; color: var(--ink); font: 12px/1.3 var(--body); text-align: center; cursor: pointer; scroll-snap-align: start; }
  .elan-config-mobile-category-image { display: block; width: 88px; height: 88px; border: 1px solid var(--line); border-radius: 50%; object-fit: cover; background: var(--soft-white); }
  .elan-config-mobile-categories button[aria-expanded="true"] .elan-config-mobile-category-image { border-color: var(--sea); }
  .elan-config-mobile-categories strong { font-size: 12px; font-weight: 600; overflow-wrap: anywhere; }
  .elan-config-mobile-categories [data-config-mobile-category-value] { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); }
  .elan-config-mobile-workspace :is(button, input):focus-visible { outline: 2px solid var(--sea); outline-offset: 2px; }
  .elan-config-mobile-workspace .elan-config-choice-cards { grid-template-columns: 1fr; }
  .elan-config-mobile-workspace .elan-config-choice-card { min-height: 44px; padding: 10px 12px; }
  .elan-config-mobile-workspace .elan-config-choice-card strong { font-size: 17px; }
  .elan-config-mobile-workspace .elan-config-ral-request input { font-size: 16px; }
  .elan-config-mobile-options .elan-config-swatch-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .elan-config-mobile-options .elan-config-swatch-option { justify-content: flex-start; gap: 10px; min-height: 48px; padding: 10px; border: 1px solid var(--line); font-size: 12px; }
  .elan-config-mobile-options .elan-config-swatch-option::after { content: attr(data-config-label); overflow-wrap: anywhere; }
  .elan-config-mobile-options .elan-config-swatch-option > i { width: 24px; height: 24px; }
  .elan-config-mobile-options .elan-config-swatch-option.is-selected { border-color: var(--sea); background: #edf5f8; }
  .elan-config-mobile-options .elan-config-swatch-option:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .is-mobile-enhanced .elan-home-configurator-panel { min-height: 0; padding: 12px 20px 30px; }
  .is-mobile-enhanced .elan-configurator-summary { margin-top: 0; padding-top: 0; border-top: 0; }
  .is-mobile-enhanced .elan-configurator-summary > div,
  .is-mobile-enhanced .elan-configurator-summary > button { display: none; }
  .elan-config-mobile-workspace.is-keyboard { --config-preview-height: calc(var(--config-modal-height) * .22); --config-sheet-top: calc(var(--config-modal-height) * .24); }
  .elan-config-mobile-workspace.is-keyboard .elan-config-mobile-panel { max-height: calc(var(--config-modal-height) - 24px); }
  .elan-config-mobile-workspace.is-keyboard .elan-config-mobile-actions { padding-bottom: max(6px, env(safe-area-inset-bottom)); }
  .elan-config-mobile-workspace.is-keyboard .elan-config-mobile-panel-heading { padding-block: 8px; }
}
@media (max-width: 767px) {
  body > .site-nav .language-bar,
  body.home-page > .site-nav .language-bar { display: none !important; }
}
@keyframes config-mobile-slide-up {
  from { transform: translateY(calc(-50% + 24px)); opacity: 0; }
  to { transform: translateY(-50%); opacity: 1; }
}
@media (max-width: 767px) and (prefers-reduced-motion: no-preference) {
  .elan-config-mobile-panel[open] { animation: config-mobile-slide-up 320ms cubic-bezier(.22, 1, .36, 1); }
}
@media (max-width: 767px) and (max-height: 600px) {
  .elan-config-mobile-panel > .elan-config-mobile-overview { display: none; }
}
@media (max-width: 767px) and (max-height: 500px) {
  .elan-config-mobile-panel > .elan-config-mobile-categories { display: none; }
  .elan-config-mobile-panel .elan-config-mobile-actions { padding-bottom: max(6px, env(safe-area-inset-bottom)); }
  .elan-config-mobile-workspace { --config-preview-height: calc(var(--config-modal-height) * .24); --config-sheet-top: calc(var(--config-modal-height) * .26); }
  .elan-config-mobile-panel-heading { padding-block: 4px; }
  .elan-config-mobile-panel-heading h2 { font-size: 18px; }
  .elan-config-mobile-panel-heading p { margin-top: 2px; font-size: 11px; }
  .elan-config-mobile-categories { padding-top: 0; padding-bottom: max(4px, env(safe-area-inset-bottom)); }
  .elan-config-mobile-panel { max-height: calc(var(--config-modal-height) - 24px); }
}
