/* Homepage: original products and people, with quiet typography and clear paths. */
.home-page { overflow-wrap: break-word; }
.home-page main > section[id] { scroll-margin-top: 105px; }
.home-page .hero { height: min(740px, calc(100svh - 86px)); min-height: 590px; }
/* The photograph supplies the wall, shadows and floor; no synthetic wall or repeated wood. */
.home-page .hero-media { background: transparent; }
.home-page .hero-media picture { display: block; width: 100%; height: 100%; }
.home-page .hero-media img { inset: 0; width: 100%; min-width: 0; max-width: 100%; height: 100%; object-fit: cover; object-position: center 53%; transform: none; mask-image: none; }
.home-page .hero-shade { background: radial-gradient(ellipse at 12% 40%, rgba(8,15,13,.60), rgba(8,15,13,.30) 38%, transparent 75%); mask-image: linear-gradient(180deg, #000 0%, #000 60%, transparent 88%); }
@media (min-width: 981px) {
  .home-page .hero-media img { object-position: 72% center; }
}
@media (max-width: 760px) {
  .home-page .hero-media img { object-position: 58% 50%; }
  .home-page .hero-shade { background: linear-gradient(90deg, rgba(8,15,13,.52), rgba(8,15,13,.12) 80%); }
}
.home-page .hero h1 { font-size: clamp(34px, 4.45vw, 65px); line-height: 1.12; letter-spacing: -2px; }
.hero-actions { display: flex; align-items: center; gap: 30px; flex-wrap: wrap; }
.hero-secondary { font-size: 15px; text-decoration: underline; text-underline-offset: 6px; }
.hero-secondary:hover { color: #ddd; }
.trust-strip { list-style: none; margin: 0; padding: 27px 6%; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; font-size: 17px; line-height: 1.5; font-weight: 500; text-align: center; }
.trust-strip li { display: flex; align-items: center; justify-content: center; min-width: 0; padding: 0 8px; overflow-wrap: normal; word-break: normal; -webkit-hyphens: none; hyphens: none; }
.trust-strip li + li { border-left: 1px solid #d1d1ca; }
.trust-strip a, .trust-strip a:hover, .trust-strip a:focus-visible { text-decoration: none; }
.home-section { padding: 85px 6%; }
.home-page .editorial-heading { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 7%; margin-bottom: 42px; }
.home-page h2 { font-size: clamp(30px, 3.2vw, 46px); line-height: 1.2; letter-spacing: -1.4px; }
.home-page .eyebrow + h2 { margin-top: 18px; }
.home-page .home-models h2 + .eyebrow { margin-top: 18px; }
.home-page .section-copy { font-size: 14px; line-height: 1.85; color: #5c625e; max-width: 550px; }
.home-page .section-copy p + p { margin-top: 14px; }
.home-model-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.home-model-card { min-width: 0; }
.home-model-image { background: #e8e7e2; height: clamp(280px, 28vw, 390px); padding: 22px 12px; display: flex; justify-content: center; }
.home-model-image img { display: block; width: 100%; height: 100%; object-fit: contain; }
.home-model-info { padding: 20px 0 0; }
.home-model-info h3 { font-size: 22px; letter-spacing: -.5px; }
.home-model-info p { margin: 6px 0 13px; color: #656b66; font-size: 12px; }
.home-model-info a { font-size: 14px; text-decoration: underline; text-underline-offset: 5px; }
.home-model-info a:hover { color: #7b4234; }
.model-section-bottom { margin-top: 35px; padding-top: 26px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 25px; align-items: center; }
.model-section-bottom p { font-size: 12px; line-height: 1.7; color: #60665f; }
.model-section-bottom .button { flex-shrink: 0; }
.home-page .config-section { padding-top: 65px; padding-bottom: 30px; background: #f0efea; max-width: none; }
.home-page .config-heading h2 { font-size: clamp(28px, 3vw, 40px); }
.home-page .config-disclaimer { max-width: 1050px; margin: 20px auto 0; font-size: 11px; line-height: 1.7; color: #61685f; }
.design-examples { background: #f0efea; padding: 0 6% 40px; }
.design-examples > summary { width: fit-content; cursor: pointer; font-size: 13px; text-decoration: underline; text-underline-offset: 5px; padding: 10px 0; }
.design-examples .collection-section { padding: 35px 0 10px; }
.design-examples .collection-section h2 { font-size: 28px; }
.design-examples .section-heading > p { font-size: 12px; }
/* The same construction layout used on the Milano model page. */
.home-technology { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 8%; padding: 85px 8%; background: #222622; color: #f8f7f4; line-height: 1.75; }
.home-technology > div { min-width: 0; }
.home-technology .eyebrow { margin-bottom: 24px; }
.home-page .home-technology h2 { font-size: clamp(30px,3.6vw,52px); line-height: 1.16; letter-spacing: -1.7px; margin-top: 0; }
.home-technology .technology-intro { max-width: 43ch; margin-top: 20px; color: #d0d3ca; font-size: 15px; line-height: 1.7; }
.technology-equation { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 18px; margin-bottom: 24px; }
.technology-equation-brands { display: grid; grid-template-columns: minmax(0, 76px) 14px minmax(0, 105px); align-items: center; gap: 12px; flex: 0 1 219px; min-width: 0; max-width: 100%; }
/* Crop taglines and transparent margins so visible logos align with the heading. */
.technology-brand { display: block; position: relative; min-width: 0; overflow: hidden; }
.technology-brand img { position: absolute; top: 0; left: 0; width: 100%; max-width: none; height: auto; }
/* Optical centring aligns the Schüco letter body with VOTH, accounting for the umlaut above it. */
.technology-brand-schueco { aspect-ratio: 1015 / 172; transform: translateY(-14.5%); }
.technology-brand-schueco img { width: 123.842365%; transform: translate(-9.626094%, -23.779725%); }
.technology-brand-voth { aspect-ratio: 2529 / 587; }
.technology-brand-voth img { width: 118.623962%; transform: translate(-7.8%, -24.1%); }
.technology-equation-symbol { font-size: 17px; line-height: 1; font-weight: 300; color: #d0d3ca; text-align: center; }
.home-technology > div > .profile-preview { height: 350px; width: 100%; object-fit: contain; margin-top: 35px; --reveal-distance: 80px; --reveal-duration: 4000ms; }
.construction-specs { margin: 0; }
.construction-specs > div { position: relative; padding: 18px 0; border-bottom: 1px solid transparent; }
.construction-specs > div::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: #53574f; transform-origin: left center; }
@keyframes construction-line-enter {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}
.construction-specs > div.line-enter::after { animation: construction-line-enter 1400ms cubic-bezier(.22, 1, .36, 1) both; }
.construction-specs dt { font-size: 22px; }
.construction-specs dd { margin: 5px 0 0; color: #d0d3ca; font-size: 15px; }
.technology-more { margin-top: 24px; }
.technology-more p { margin: 0 0 14px; color: #d0d3ca; font-size: 15px; }
.technology-more .button { font-size: 16px; }
/* Load the film when it enters view, retaining a still poster until then. */
.home-film { padding: 0 8% 70px; background: #222622; color: #f8f7f4; }
.home-film-player { position: relative; aspect-ratio: 16 / 9; min-height: 200px; width: 100%; overflow: hidden; border-radius: 12px; background: #111; }
.home-film-play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; text-decoration: none; }
.home-film-play > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.home-film-play::after { content: ''; position: absolute; inset: 0; background: #0003; }
.home-film-play-icon { position: relative; z-index: 1; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: #fff; color: #222622; transition: background .2s; }
.home-film-play:hover .home-film-play-icon { background: #dceaff; }
.home-film-play:focus-visible { outline: 3px solid #fff; outline-offset: -5px; }
.home-film-player > iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
@media (max-width: 760px) {
  .home-film { padding: 0 6% 45px; }
  .home-film-player { border-radius: 8px; }
  .home-film-play-icon { width: 44px; height: 44px; }
}
.warranty-teaser { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 32px; align-items: center; padding: 40px 6%; background: #f0efea; }
#main .warranty-teaser h2 { font-size: var(--type-card-size); line-height: var(--type-card-leading); letter-spacing: .002em; }
.warranty-teaser p { max-width: 760px; margin-top: 12px; color: #5c625e; font-size: 15px; line-height: 1.75; }
.warranty-teaser .warranty-link { border-radius: 999px; background: #0674df; border-color: #0674df; color: #fff; text-align: center; }
.warranty-teaser .warranty-link:hover { background: #005fbf; border-color: #005fbf; }
.service-options { display: grid; grid-template-columns: 1fr 1fr; gap: 7%; }
.service-options article { border-top: 2px solid #373d37; padding: 26px 0 0; }
.service-label { font-size:var(--section-label-size); letter-spacing: 1.8px; color: #62695f; }
.service-options h3 { font-size: 28px; margin: 13px 0 18px; letter-spacing: -.7px; }
.service-options p { font-size: 14px; line-height: 1.85; color: #5b625a; }
.service-options .text-button { margin-top: 20px; }
.purchase-steps { list-style: none; padding: 35px 0 0; margin: 45px 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 35px; border-top: 1px solid var(--line); }
.purchase-steps li { display: grid; grid-template-columns: 32px 1fr; align-content: start; gap: 10px 14px; }
.purchase-steps li > span { grid-row: 1 / 3; color: #777e73; font-size: 13px; padding-top: 3px; }
.purchase-steps h3 { font-size: 17px; }
.purchase-steps p { font-size: 12px; line-height: 1.8; color: #60675e; grid-column: 2; }
/* Showroom: a balanced introduction and a separate, full-width visit column. */
.home-showroom { background: #333; color: #fff; }
.showroom-feature-image img { display: block; width: 100%; height: clamp(260px, 26vw, 420px); object-fit: cover; object-position: center 48%; }
.showroom-location-content { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(36px, 5vw, 80px); width: 88%; max-width: 1440px; margin-inline: auto; padding-block: clamp(48px, 6vw, 88px); }
.showroom-location-intro { min-width: 0; }
.showroom-location-intro .eyebrow { color: #d3d3cb; }
.showroom-location-intro h2 { text-wrap: balance; }
.showroom-location-intro > p { max-width: 58ch; margin-top: 24px; font-size: 14px; line-height: 1.85; color: #e2e2dd; }
.showroom-location-intro > p + p { margin-top: 16px; }
.showroom-visit { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); align-items: center; gap: 28px 20px; padding-left: clamp(24px, 3vw, 48px); border-left: 1px solid #ffffff29; }
.showroom-location-details { min-width: 0; }
.showroom-location-details address { font-style: normal; font-size: 15px; line-height: 1.8; }
.showroom-location-details address > * { display: block; }
.showroom-location-details address strong { font-size: 17px; font-weight: 500; margin-bottom: 6px; }
.showroom-location-details .showroom-hours { display: grid; gap: 10px; margin: 24px 0 0; font-size: 13px; line-height: 1.7; color: #e2e2dd; }
.showroom-hours > div { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 8px; }
.showroom-hours dt { font-weight: 500; }
.showroom-hours dd { margin: 0; }
.showroom-hours dd span { display: block; white-space: nowrap; }
.showroom-location-map { margin: 0; min-width: 0; width: 100%; max-width: 250px; justify-self: end; }
.showroom-location-map picture, .showroom-location-map img { display: block; width: 100%; height: auto; }
.showroom-location-link { grid-column: 1 / -1; justify-self: start; text-align: center; }
@media (max-width: 1068px) and (min-width: 761px) {
  .showroom-visit { column-gap: 16px; padding-left: 24px; }
  .showroom-hours > div { display: block; }
}
@media (max-width: 760px) {
  .showroom-location-content { grid-template-columns: minmax(0, 1fr); gap: 32px; padding-block: 44px; }
  .showroom-visit { grid-template-columns: minmax(0, 1fr) minmax(120px, .8fr); gap: 24px; border-left: 0; border-top: 1px solid #ffffff29; padding: 30px 0 0; }
  .showroom-location-intro > p { font-size: 14px; }
  .showroom-location-map { max-width: 210px; }
}
@media (max-width: 420px) {
  .showroom-visit { grid-template-columns: minmax(0, 1fr) minmax(100px, .8fr); gap: 22px 16px; }
  .showroom-hours > div { display: block; }
  .showroom-location-details address { font-size: 14px; }
}
.family-section { display: grid; grid-template-columns: 1fr 1fr; gap: 9%; align-items: center; }
.family-copy p { font-size: 14px; line-height: 1.9; color: #5a6259; margin-top: 24px; }
.family-copy .text-button { margin-top: 25px; }
.family-section figure { margin: 0; min-width: 0; }
.family-section figure img { width: 100%; height: auto; display: block; }
.family-section figcaption { font-size: 11px; color: #646b60; margin-top: 13px; line-height: 1.6; }
.home-faq { display: grid; grid-template-columns: .85fr 1.15fr; gap: 9%; }
.home-faq > div > p { font-size: 13px; color: #666e63; margin-top: 23px; max-width: 280px; line-height: 1.8; }
.faq-list details { border-top: 1px solid #c8ccc4; }
.faq-list details:last-child { border-bottom: 1px solid #c8ccc4; }
.faq-list summary { cursor: pointer; list-style: none; padding: 22px 35px 22px 0; font-size: 15px; line-height: 1.6; font-weight: 500; position: relative; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: '+'; position: absolute; right: 5px; top: 21px; font-size: 20px; font-weight: 400; }
.faq-list details[open] > summary::after { content: '−'; }
.faq-list p { font-size: 13px; line-height: 1.85; color: #626b5e; margin: 0 30px 25px 0; }
.home-contact { display: grid; grid-template-columns: 1.2fr 1fr; gap: 9%; align-items: center; padding: 65px 6%; background: #e5e4de; }
.home-contact p { font-size: 13px; line-height: 1.85; color: #525b50; margin-top: 22px; max-width: 530px; }
.contact-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.contact-phone { font-size: 28px; letter-spacing: -.5px; }
.contact-actions > span { font-size: 12px; line-height: 1.7; }
.contact-actions > span a { text-decoration: underline; text-underline-offset: 3px; }
.home-page .footer-tools { flex-wrap: wrap; }
@media (min-width: 1600px) {
  .home-section, .home-contact { padding-left: max(6%, calc((100vw - 1440px) / 2)); padding-right: max(6%, calc((100vw - 1440px) / 2)); }
  .home-model-image { height: 420px; }
}
@media (max-width: 1050px) {
  .home-page .hero { min-height: 550px; }
  .home-model-grid { gap: 18px; }
  .home-model-image { height: 300px; padding: 18px 10px; }
  .home-page .editorial-heading { gap: 6%; }
  .home-page h2 { font-size: 33px; }
  .trust-strip { font-size: 16px; gap: 12px; padding-left: 4%; padding-right: 4%; }
}
@media (max-width: 760px) {
  .home-page main > section[id] { scroll-margin-top: 85px; }
  .warranty-teaser { grid-template-columns: 1fr; gap: 22px; padding: 30px 6%; }
  .warranty-teaser .warranty-link { justify-self: start; }
  .home-page .hero { height: 620px; min-height: 510px; max-height: none; }
  .home-page .hero h1 { font-size: clamp(28px, 6.9vw, 44px); letter-spacing: -1.2px; }
  .home-page .hero p { font-size: 14px; max-width: 300px; }
  .hero-actions { gap: 22px; align-items: flex-start; flex-direction: column; }
  .hero-secondary { font-size: 14px; }
  .trust-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); font-size: 15px; padding: 25px 6%; gap: 18px 12px; }
  .trust-strip li { overflow-wrap: normal; word-break: normal; hyphens: none; }
  .trust-strip li + li { border-left: 1px solid #d1d1ca; }
  .trust-strip li:nth-child(3) { border-left: 0; }
  .home-section { padding: 55px 6%; }
  .home-page .editorial-heading { grid-template-columns: 1fr; gap: 25px; margin-bottom: 30px; }
  .home-page h2 { font-size: clamp(28px, 7vw, 37px); letter-spacing: -1px; }
  .home-page .section-copy { font-size: 13px; }
  .home-model-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 16px; }
  .home-model-image { height: clamp(245px, 60vw, 360px); padding: 18px 9px; }
  .home-model-info { padding-top: 14px; }
  .home-model-info h3 { font-size: 20px; }
  .home-model-info p { font-size: 11px; line-height: 1.7; min-height: 38px; margin: 6px 0; }
  .home-model-info a { font-size: 13px; }
  .model-section-bottom { display: block; margin-top: 30px; }
  .model-section-bottom .button { margin-top: 22px; }
  .home-page .config-section { padding-top: 48px; }
  .home-page .config-heading h2 { font-size: 27px; }
  .home-page .config-disclaimer { font-size: 10px; }
  .design-examples { padding-bottom: 30px; }
  .design-examples > summary { font-size: 12px; }
  .design-examples .collection-section h2 { font-size: 27px; }
  .home-technology, .family-section, .home-faq, .home-contact { grid-template-columns: 1fr; }
  .service-options { grid-template-columns: 1fr; gap: 30px; }
  .service-options h3 { font-size: 25px; }
  .service-options p { font-size: 13px; }
  .purchase-steps { grid-template-columns: 1fr; gap: 27px; margin-top: 35px; }
  .purchase-steps h3 { font-size: 17px; }
  .family-section { gap: 35px; }
  .family-copy p { font-size: 13px; }
  .family-section figure { max-width: 540px; }
  .home-faq { gap: 30px; }
  .home-faq > div > p { max-width: 100%; }
  .faq-list summary { font-size: 14px; }
  .home-contact { gap: 30px; padding: 50px 7%; }
  .contact-phone { font-size: 26px; }
}

/* More readable text links throughout the homepage. */
.home-page main .text-button { font-size: 14px; }
.home-page .review-card-bottom > a { font-size: 13px; }
.home-page .contact-actions > span a { font-size: 14px; }
@media (max-width: 760px) {
  .home-page .reviews-heading > .text-button { white-space: normal; }
}

.model-card-actions { display:flex; flex-wrap:wrap; gap:12px 22px; }

/* Rounded model actions matching the supplied button reference. */
.model-card-actions { gap:12px 16px; align-items:center; }
.home-model-info a.model-pill { display:inline-flex; align-items:center; justify-content:center; min-height:44px; max-width:100%; padding:10px 22px; border:1.5px solid #2167b3; border-radius:999px; font-size:15px; font-weight:400; line-height:1.4; text-decoration:none; text-align:center; transition:background .18s,color .18s; }
.home-model-info a.model-pill-info { background:#0674df; border-color:#0674df; color:#fff; }
.home-model-info a.model-pill-buy { background:transparent; color:#2167b3; }
.home-model-info a.model-pill-info:hover { background:#005fbf; border-color:#005fbf; color:#fff; }
.home-model-info a.model-pill-buy:hover { background:#e6f1fc; color:#155397; }
.home-model-info a.model-pill:focus-visible { outline:2px solid #2167b3; outline-offset:4px; }
@media(max-width:760px) { .home-model-info a.model-pill { font-size:13px; padding:10px 17px; } .model-card-actions { gap:10px; } }

/* Hero links use the same blue rounded style as the model actions. */
.home-page .hero-actions { gap:16px; }
.home-page .hero-actions .hero-pill { display:inline-flex; align-items:center; justify-content:center; min-height:48px; max-width:100%; padding:12px 24px; border:1.5px solid #2167b3; border-radius:999px; font-size:15px; font-weight:400; line-height:1.4; text-decoration:none; text-align:center; transition:background .18s,color .18s; }
.home-page .hero-actions .hero-pill-primary { background:#0674df; border-color:#0674df; color:#fff; }
.home-page .hero-actions .hero-pill-secondary { background:transparent; color:#fff; border-color:#fff; }
.home-page .hero-actions .hero-pill-primary:hover { background:#005fbf; border-color:#005fbf; color:#fff; }
.home-page .hero-actions .hero-pill-secondary:hover { background:#ffffff1a; color:#fff; border-color:#fff; }
.home-page .hero-actions .hero-pill:focus-visible { outline:2px solid #fff; outline-offset:4px; }

/* Boxed homepage actions match the existing rounded blue model buttons. */
.home-page #main .button {
  border-radius: 999px;
  background: #0674df;
  border-color: #0674df;
  color: #fff;
}
.home-page #main .button:hover { background: #005fbf; border-color: #005fbf; color: #fff; }
.home-page #main .button.outline { background: transparent; border-color: #2167b3; color: #2167b3; }
.home-page #main .button.outline:hover { background: #e6f1fc; border-color: #2167b3; color: #155397; }
.home-page #main .button:focus-visible { outline: 2px solid #2167b3; outline-offset: 4px; }

@media(max-width:760px) {
  .home-technology { grid-template-columns: 1fr; gap: 35px; padding: 55px 6%; }
  .home-technology > div > .profile-preview { height: 270px; }
  .technology-equation { margin-bottom: 22px; }
  .technology-equation-brands { grid-template-columns: minmax(0, 68px) 12px minmax(0, 93px); gap: 10px; flex-basis: 193px; }
  .technology-equation-symbol { font-size: 15px; }
  .construction-specs dt { font-size: 20px; }
}

/* Widget owns its rating, count and review cards; do not duplicate cached values. */
.reviews-widget { min-height: 280px; min-width: 0; }
.reviews-widget > div { width: 100%; }

/* Text remains visible without JavaScript; transform/opacity do not move the layout. */
@keyframes home-text-enter {
  from { opacity: 0; transform: translateY(var(--reveal-distance, 50px)); }
  to { opacity: 1; transform: translateY(0); }
}
.home-page #main [data-home-reveal].home-text-enter { animation: home-text-enter var(--reveal-duration, 2250ms) cubic-bezier(.22, 1, .36, 1) var(--reveal-delay, 0ms) both; }
@media (prefers-reduced-motion: reduce), print {
  .home-page #main [data-home-reveal].home-text-enter,
  .construction-specs > div.line-enter::after { animation: none; }
}

/* One horizontal model row, with native touch scrolling and a next-card preview. */
.models-overview-footer { display: flex; justify-content: center; margin-top: 20px; }
.models-overview-action { max-width: 100%; border-radius: 999px; background: #0674df; border-color: #0674df; color: #fff; text-align: center; scroll-margin-top: 120px; }
.models-overview-action:hover { background: #005fbf; border-color: #005fbf; color: #fff; }
.models-overview-action:focus-visible { outline: 2px solid #2167b3; outline-offset: 4px; }
#models-carousel { position: relative; display: grid; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: clamp(280px, 28vw, 380px); gap: 24px; max-width: 100%; min-width: 0; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 4px 0 12px; }
#models-carousel::-webkit-scrollbar { display: none; }
#models-carousel .home-model-card { scroll-snap-align: start; }
#models-carousel .home-model-image { height: clamp(380px, 38vw, 490px); padding: 16px 10px; }
#models-carousel .model-card-actions { flex-wrap: nowrap; gap: 10px; }
#models-carousel .model-pill { white-space: nowrap; }
#models-carousel:focus-visible { outline: 2px solid #2167b3; outline-offset: 6px; }
#models-carousel a:focus-visible { outline: 2px solid #2167b3; outline-offset: -3px; }
.model-carousel-controls { display: flex; justify-content: center; align-items: center; gap: 10px; margin: 24px 0 0; }
.model-carousel-controls[hidden] { display: none; }
.model-carousel-progress { display: block; width: 72px; height: 3px; border-radius: 3px; overflow: hidden; background: #dcdedb; }
.model-carousel-progress > span { display: block; width: 100%; height: 100%; border-radius: inherit; background: #0674df; transform: scaleX(0); transform-origin: left; transition: transform 220ms ease-out; }
.model-carousel-arrow { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; flex: 0 0 38px; padding: 0; border: 0; border-radius: 50%; background: #e5e5e7; color: #242426; cursor: pointer; transition: background .18s, opacity .18s; }
.model-carousel-arrow:hover:not(:disabled) { background: #d7d7da; }
.model-carousel-arrow:disabled { opacity: .35; cursor: default; }
.model-carousel-arrow:focus-visible { outline: 2px solid #2167b3; outline-offset: 3px; }
@media(max-width:760px) {
  #models-carousel { grid-auto-columns: 88%; gap: 16px; }
  #models-carousel .home-model-image { height: clamp(360px, 104vw, 470px); padding: 12px 8px; }
  .model-carousel-controls { margin-top: 20px; }
}

/* A short history beside the existing family story; the full chronology has its own page. */
.family-history { grid-column: 1 / -1; min-width: 0; }
.family-history ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.family-history li { min-width: 0; padding-top: 10px; border-top: 1px solid #deded9; }
.family-history time { display: block; margin-bottom: 5px; font-size: 18px; line-height: 1.4; font-weight: 500; font-variant-numeric: tabular-nums; }
.family-history li span { font-size: 13px; line-height: 1.5; color: #5c625e; }
.family-history > .text-button { margin-top: 16px; }
.home-page #main .family-history > .text-button { font-size: 13px; }
/* Keep the family milestones visually attached to the portrait instead of adrift below the section. */
@media (min-width: 761px) {
  .family-section { align-items: start; row-gap: 30px; }
  .family-history { grid-column: 2; grid-row: 2; padding-top: 8px; }
  .family-history ol { position: relative; gap: 12px; }
  .family-history ol::before { content: ""; position: absolute; top: 7px; left: 9px; right: 9px; height: 1px; background: #c8ccc4; }
  .family-history li { position: relative; border: 0; padding: 0; }
  .family-history li::before { content: ""; position: absolute; z-index: 1; top: 1px; left: 3px; width: 11px; height: 11px; border: 1px solid #636b61; border-radius: 50%; background: #f8f7f4; }
  .family-history time { margin: 22px 0 4px; font-size: 17px; }
  .family-history li span { font-size: 12px; }
}
@media (max-width: 760px) {
 .family-history ol { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; }
 .family-history time { font-size: 17px; }
 .family-history li span { font-size: 13px; }
 .family-history ol { position: relative; grid-template-columns: 1fr; gap: 0; margin-left: 5px; padding-left: 23px; border-left: 1px solid #c8ccc4; }
 .family-history li { position: relative; border: 0; padding: 0 0 18px; }
 .family-history li:last-child { padding-bottom: 0; }
 .family-history li::before { content: ""; position: absolute; top: 4px; left: -29px; width: 10px; height: 10px; border: 1px solid #636b61; border-radius: 50%; background: #f8f7f4; }
 .family-history time { display: inline-block; margin: 0 9px 0 0; font-size: 16px; }
}

/* Keep every advantage word intact, including Safari and tablet layouts. */
#main .trust-strip a { overflow-wrap: normal; word-break: normal; -webkit-hyphens: none; hyphens: none; }
@media (max-width: 380px) {
  #main .trust-strip { padding-left: 4%; padding-right: 4%; font-size: 14px; }
  #main .trust-strip li { padding-left: 4px; padding-right: 4px; }
}

/* Compact rating below the footer details. */
.site-footer .footer-google-rating { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 3px; margin-top: 0; color: #eee; font-size: 12px; line-height: 1.4; text-decoration: none; }
.site-footer .footer-google-rating:hover { text-decoration: underline; text-underline-offset: 4px; }
.site-footer .footer-google-rating:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.site-footer .footer-google-line { display: flex; align-items: center; gap: 10px; }
.site-footer .footer-google-line strong { font-size: 15px; font-weight: 600; }
.site-footer .footer-google-stars { color: #fbbc04; font-size: 17px; letter-spacing: 2px; }

.site-footer .footer-marks { flex-wrap: wrap; }
.site-footer .footer-partner-rating { display: flex; align-items: center; gap: 20px; max-width: 100%; }
@media (max-width: 560px) {
  .site-footer .footer-partner-rating { gap: 10px; }
  .site-footer .footer-google-rating { font-size: 11px; }
  .site-footer .footer-google-line { gap: 5px; }
  .site-footer .footer-google-line strong { font-size: 13px; }
  .site-footer .footer-google-stars { font-size: 14px; letter-spacing: 1px; }
}

/* Homepage feedback: keep the technical story and the visit details compact. */
.home-technology .technology-equation{margin:24px 0 28px}
.profile-development{display:block;font-size:13px;line-height:1.6;margin-top:7px;max-width:340px}
.service-warranty{display:flex;align-items:center;justify-content:space-between;gap:25px;border-top:1px solid #d3d5ce;padding-top:25px;margin-top:38px}
.service-warranty strong{font-size:18px;font-weight:500}.service-warranty p{font-size:14px;color:#62675f;margin-top:7px}.service-warranty a{flex-shrink:0}
.family-story-link{display:block;width:fit-content;font-size:14px;color:#62675f;margin-top:18px;text-decoration:underline;text-underline-offset:4px}
footer.site-footer.original-footer{padding:48px 6% 30px;font-size:16px;font-weight:300;line-height:1.65}
.original-footer-top{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 160px;gap:40px;max-width:980px;margin:auto}
.original-footer h3{font-size:18px;font-weight:500;margin-bottom:30px}
.original-footer address{font-style:normal;color:#c5c5c5}.original-footer-top p{color:#a6a6a6}
.original-footer .original-anniversary{width:120px;height:90px;object-fit:contain;margin:auto}
.original-footer .footer-socials{justify-content:center;gap:20px;margin-top:25px}
.original-footer .footer-socials img{width:30px;height:30px}
.original-footer .footer-google-rating{margin:0;min-width:0;display:flex;flex-direction:column-reverse;gap:12px}
.original-footer .footer-google-line strong{display:none}
.original-footer .footer-google-stars{font-size:23px;color:#ed8b23;letter-spacing:1px}
.original-footer .footer-google-rating>span:first-child{font-size:12px;color:#aaa}
.original-footer-partner{margin:44px auto 0;width:170px}.original-footer-partner img{width:100%;height:70px;object-fit:contain}
.original-footer .original-copyright{text-align:center;color:#999;font-size:15px;margin:45px auto 0}
.original-footer .original-footer-legal{display:flex;flex-direction:column;gap:1px;align-items:center;font-size:14px;margin:90px auto 0;color:#aaa}
.original-footer .footer-tools{display:flex;justify-content:center;gap:20px;margin-top:30px;font-size:11px;opacity:.7}
@media(max-width:760px){.service-warranty{align-items:flex-start;flex-direction:column;gap:14px}.original-footer-top{grid-template-columns:1fr 1fr;gap:32px}.original-footer h3{font-size:17px;margin-bottom:18px}.original-footer .original-footer-legal{margin-top:50px}.original-footer .footer-tools{flex-wrap:wrap}}
@media(max-width:420px){.original-footer-top{gap:28px 18px}.original-footer-top address,.original-footer-top p{font-size:14px}}

/* Secondary technical information stays available without crowding the five priorities. */

/* Image-led exploration: one coordinate system keeps outlines on the photograph. */
.profile-explorer { margin: 8px 0 0; }
.profile-stage { height: 420px; display: grid; place-items: center; --reveal-distance: 80px; --reveal-duration: 4000ms; }
.profile-zoom { position: relative; height: 350px; width: auto; aspect-ratio: 829 / 1420; transform: scale(1); transform-origin: 50% 50%; transition: transform 1000ms cubic-bezier(.22,1,.36,1); }
.profile-zoom .profile-preview { display: block; width: 100%; height: 100%; object-fit: contain; margin: 0; }
.profile-explorer.is-active .profile-zoom, .profile-explorer.is-hovered .profile-zoom { transform: scale(1.2); }
.profile-highlights { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.profile-highlights [data-profile-zone] { opacity: 0; transition: opacity 200ms ease; }
.profile-highlights [data-profile-zone].is-active { opacity: 1; }
.profile-zone-fill { fill: #ff4c4c; fill-opacity: .12; }
.profile-zone-line, .profile-zone-sweep { fill: none; stroke: #ff6262; stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.profile-zone-sweep { stroke: #ffd1cd; stroke-width: 2.2; stroke-dasharray: .07 .93; opacity: 0; }
.profile-highlights .is-active .profile-zone-line { animation: profile-trace 1200ms cubic-bezier(.22,1,.36,1) both; }
.profile-highlights .is-active .profile-zone-fill { animation: profile-pulse 1800ms ease-in-out 2; }
.profile-highlights .is-active .profile-zone-sweep { animation: profile-sweep 1700ms 200ms ease-in-out 2 both; }
.profile-hit { fill: transparent; stroke: none; pointer-events: none; }
.profile-ready .profile-hit { pointer-events: fill; cursor: pointer; }
.profile-cursor { opacity: 0; pointer-events: none; }
.has-profile-cursor .profile-cursor { opacity: 1; }
@keyframes profile-trace { from { stroke-dasharray: 1; stroke-dashoffset: 1; } to { stroke-dasharray: 1; stroke-dashoffset: 0; } }
@keyframes profile-pulse { 0%,100% { fill-opacity: .12; } 50% { fill-opacity: .24; } }
@keyframes profile-sweep { 0% { opacity: 0; stroke-dashoffset: 1; } 15% { opacity: 1; } 80% { opacity: 1; } 100% { opacity: 0; stroke-dashoffset: 0; } }
.profile-zoom .profile-pin { display: none; position: absolute; z-index: 1; left: var(--pin-x); top: var(--pin-y); width: 44px; height: 44px; min-height: 44px; padding: 0; border: 0; border-radius: 4px; background: transparent; color: #fff; transform: translate(-50%,-50%); place-items: center; cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.profile-ready .profile-pin { display: grid; }
.profile-pin span { display: grid; place-items: center; position: relative; z-index: 1; width: 32px; height: 32px; border: 0; background: transparent; font-size: 32px; font-weight: 600; line-height: 1; text-shadow: 0 1px 3px #0009; transition: color 220ms, transform 350ms; }
.profile-pin[aria-pressed="true"] span { color: #ffb3ad; transform: scale(1.12); }
.profile-pin:focus-visible { outline: 2px solid #ffb3ad; outline-offset: 1px; }
.profile-caption { visibility: hidden; min-height: 44px; max-width: 320px; margin: 12px auto 0; text-align: center; color: #c9cdc3; font-size: 12px; line-height: 1.5; }
.profile-ready .profile-caption { visibility: visible; }
.profile-explorer.is-active .profile-caption { color: #f4b5b5; }
.construction-specs [data-profile-feature] dt { position: relative; transition: color 250ms; }
.profile-detail-marker { display: none; position: absolute; left: -28px; top: 4px; color: #ff9c9c; font-size: 28px; font-weight: 600; line-height: 1; }
.profile-ready .profile-detail-marker { display: inline; opacity: 0; transition: opacity 200ms; }
.construction-specs > div.is-profile-active dt { color: #ffb3ad; animation: profile-title-enter 650ms cubic-bezier(.22,1,.36,1) both; }
.construction-specs > div.is-profile-active .profile-detail-marker { opacity: 1; }
.construction-specs > div.is-profile-active dd { color: #fff; animation: profile-copy-enter 750ms 90ms cubic-bezier(.22,1,.36,1) both; }
.construction-specs > div.is-profile-active::after { background: #e86868; animation: construction-line-enter 1000ms cubic-bezier(.22,1,.36,1) both; }
@keyframes profile-title-enter { from { opacity: .5; transform: translateX(14px); } to { opacity: 1; transform: translateX(0); } }
@keyframes profile-copy-enter { from { opacity: .3; transform: translateX(20px); } to { opacity: 1; transform: translateX(0); } }
@media(max-width:760px) {
  .profile-stage { height: 330px; }
  .profile-zoom { height: 270px; }
  .profile-explorer.is-active .profile-zoom, .profile-explorer.is-hovered .profile-zoom { transform: scale(1.16); }
  .profile-caption { margin-top: 8px; }
  .profile-detail-marker { left: -22px; }
}
@media(prefers-reduced-motion:reduce), print {
  .profile-zoom, .profile-highlights [data-profile-zone], .profile-pin span, .construction-specs [data-profile-feature] dt, .profile-detail-marker { transition: none; }
  .profile-explorer.is-active .profile-zoom, .profile-explorer.is-hovered .profile-zoom { transform: none; }
  .profile-cursor { display: none; }
  .profile-highlights .is-active .profile-zone-line, .profile-highlights .is-active .profile-zone-fill, .profile-highlights .is-active .profile-zone-sweep, .construction-specs > div.is-profile-active dt, .construction-specs > div.is-profile-active dd, .construction-specs > div.is-profile-active::after { animation: none; }
}
@media print {
  .profile-highlights, .profile-zoom .profile-pin, .profile-caption, .profile-detail-marker { display: none; }
}

/* Brand row introduces the five priorities in the right column. */
.home-technology .technology-details > .technology-equation { margin: 0 0 22px; min-height: 30px; }

.family-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 25px; }
.family-actions .button { text-align: center; }
.reviews-direct { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }

/* Compact social icons with a soft circular hover highlight. */
.original-footer .footer-socials { gap: 12px; }
.original-footer .footer-socials a { position: relative; isolation: isolate; display: inline-flex; flex: 0 0 48px; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; }
.original-footer .footer-socials a::before { content: ''; position: absolute; inset: 0; z-index: -1; border-radius: inherit; background: #ffffff24; opacity: 0; transform: scale(.8); transition: opacity 180ms ease, transform 180ms ease; }
.original-footer .footer-socials img { width: 24px; height: 24px; object-fit: contain; }
@media(hover:hover) { .original-footer .footer-socials a:hover::before { opacity: 1; transform: scale(1); } }
.original-footer .footer-socials a:focus-visible { outline: 2px solid #80bfff; outline-offset: 3px; }
.original-footer .footer-socials a:focus-visible::before, .original-footer .footer-socials a:active::before { opacity: 1; transform: scale(1); }
@media(prefers-reduced-motion:reduce) { .original-footer .footer-socials a::before { transition: none; } }

/* Visit details and actions share the text column; the map has its own space. */
#ausstellung .showroom-location-content { grid-template-columns:minmax(0,1.6fr) minmax(220px,.8fr); gap:clamp(40px,6vw,96px); align-items:center; }
#ausstellung .showroom-location-copy { min-width:0; }
#ausstellung .showroom-location-intro > p { max-width:66ch; }
#ausstellung .showroom-location-details { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px; max-width:560px; margin-top:30px; align-items:start; }
#ausstellung .showroom-location-details .showroom-hours { margin:0; }
#ausstellung .showroom-hours > div { display:grid; grid-template-columns:54px minmax(0,1fr); gap:8px; }
#ausstellung .showroom-location-actions { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px; margin-top:28px; }
#ausstellung .showroom-location-actions .button { white-space:nowrap; }
.home-page #main #ausstellung .showroom-location-actions .button.outline { color:#fff; border-color:#d4d4d4; background:transparent; }
.home-page #main #ausstellung .showroom-location-actions .button.outline:hover { background:#ffffff12; }
#ausstellung .showroom-location-map { max-width:340px; }
@media(max-width:760px) {
 #ausstellung .showroom-location-content { grid-template-columns:minmax(0,1fr); gap:32px; }
 #ausstellung .showroom-location-map { max-width:230px; }
 #ausstellung .showroom-location-details { gap:20px; margin-top:24px; }
}
@media(max-width:420px) {
 #ausstellung .showroom-hours > div { display:block; }
 #ausstellung .showroom-location-actions { gap:10px; }
}

.home-page #main #ausstellung .showroom-location-actions .button.outline:focus-visible { outline-color:#fff; }

/* Consistent reading size throughout the exhibition details. */
#ausstellung .showroom-location-intro > p,
#ausstellung .showroom-location-details address,
#ausstellung .showroom-location-details address strong,
#ausstellung .showroom-location-details .showroom-hours,
.home-page #main #ausstellung .showroom-location-actions .button { font-size:16px; line-height:1.65; }
#ausstellung .showroom-location-intro > p strong { font-size:inherit; }
#ausstellung .showroom-location-details address strong { font-weight:500; }
#ausstellung .showroom-location-map { transform:translateX(0); }
@media(max-width:760px) {
 #ausstellung .showroom-location-map { transform:none; }
 .home-page #main #ausstellung .showroom-location-actions .button { padding-left:14px; padding-right:14px; }
}

#ausstellung .showroom-hours > div { grid-template-columns:72px minmax(0,1fr); }
#ausstellung .showroom-hours dt { white-space:nowrap; }

#ausstellung .showroom-hours-title { display:block; margin-bottom:6px; font-size:16px; line-height:1.65; font-weight:500; }
@media(max-width:420px) {
 #ausstellung .showroom-location-details address strong,
 #ausstellung .showroom-hours-title { min-height:3.3em; }
}

/* Mobile profile story, matched to the supplied Apple reference. */
@media (max-width: 760px) {
  .home-page #main .home-technology,
  .home-page #main .home-film { background: #000; color: #f5f5f7; }
  .home-page #main .home-technology {
    font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
  }
  .home-page #main .home-technology #technology-title {
    font-family: inherit;
    font-size: 40px;
    line-height: 1.1;
    font-weight: 600;
    letter-spacing: 0;
    color: #f5f5f7;
    text-align: center;
  }
  .home-page #main .home-technology .technology-intro {
    font-family: inherit;
    font-size: 19px;
    line-height: 1.4211;
    font-weight: 400;
    letter-spacing: .012em;
    color: #86868b;
    text-align: center;
    margin: 28px auto 0;
    max-width: 38ch;
  }
  .home-page #main .home-technology .construction-specs dd,
  .home-page #main .home-technology .technology-more p,
  .home-page #main .home-technology .profile-caption {
    color: #86868b;
  }
}
