/* Rectangular corners derive from --border-radius (10px baseline).
   Ratios retain Vanesse’s existing hierarchy; circles and the sheet handle stay fixed. */
.style-title {
  font-size: 36px;
  color: var(--text-color);
  position: relative;
  font-weight: 400;
  margin: 0;
}
.style-title > span {
  display: inline-block;
  position: relative;
  padding-bottom: 10px;
}
.style-title > span::after {
  content: " ";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: var(--primary-color);
}
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}
/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}
/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}
/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
/* Grouping content
   ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */
}
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}
/* Text-level semantics
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}
/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  /* 2 */
}
/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}
/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}
/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}
/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */
}
/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible;
}
/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none;
}
/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}
/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}
/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}
/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}
/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */
}
/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}
/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}
/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}
/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}
/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}
/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}
/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}
/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}
/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}
/* Single source for the interface typeface; images, logos and architectural SVG keep their own. */
:root {
  --font-family: "Noto Sans", sans-serif;
}
body {
  background-color: #fff;
  padding-top: 50px;
  font-family: var(--font-family);
  font-weight: 400;
  color: var(--text-color);
  padding: 0;
  margin: 0;
}
/*
Block : Herobanner
*/
.herobanner {
  display: grid;
  grid-template-columns: 1fr 2fr;
  grid-template-rows: max-content 1fr;
  background: #fff;
}
.herobanner__brand {
  grid-column: 1;
  grid-row: 1;
  padding: 10%;
  padding-bottom: 0;
  box-sizing: border-box;
}
.herobanner__languagemenu {
  position: relative;
  display: inline-block;
  margin-bottom: 1vw;
}
.herobanner__languagetoggle {
  position: relative;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.herobanner__flag {
  display: block;
  width: 3vw;
  min-width: 20px;
  height: auto;
}
.herobanner__languagecaret {
  display: block;
  width: 12px;
  height: auto;
}
.herobanner__languagelist {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 5;
  display: none;
  background-color: #fff;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}
.herobanner__languagemenu--open .herobanner__languagelist {
  display: grid;
  gap: 6px;
}
.herobanner__languageitem {
  display: block;
  padding: 0;
}
.herobanner__languageitem:hover,
.herobanner__languageitem:focus {
  opacity: 0.7;
}
.herobanner__logo {
  display: block;
  width: 50%;
  max-width: 100%;
}
.herobanner__body {
  grid-column: 1;
  grid-row: 2;
  align-self: end;
  height: 100%;
  padding: 10%;
  box-sizing: border-box;
}
.herobanner__title {
  margin: 0 0 30px;
  color: var(--text-color);
  font-size: 4vw;
  font-weight: 400;
  line-height: 1.08;
}
.herobanner__location {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 30px;
  color: var(--text-color);
  font-size: 20px;
  line-height: 1.3;
}
.herobanner__mapmarker {
  color: var(--primary-color);
  background-color: currentColor;
  /* Embedded like the header icons: external SVG masks are blocked in local file previews. */
  -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2040%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M16%200C7.2%200%200%207%200%2015.7%200%2027.5%2016%2040%2016%2040s16-12.5%2016-24.3C32%207%2024.8%200%2016%200Zm0%2022.5a6.5%206.5%200%201%201%200-13%206.5%206.5%200%200%201%200%2013Z%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2040%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M16%200C7.2%200%200%207%200%2015.7%200%2027.5%2016%2040%2016%2040s16-12.5%2016-24.3C32%207%2024.8%200%2016%200Zm0%2022.5a6.5%206.5%200%201%201%200-13%206.5%206.5%200%200%201%200%2013Z%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat;
  display: block;
  width: 15px;
  height: 20px;
  flex: 0 0 auto;
}
.herobanner__metas {
  display: block;
}
.herobanner__peb {
  display: block;
  width: 40%;
  min-width: 100px;
}
.herobanner__mobileprice {
  display: none;
}
.herobanner__visual {
  grid-column: 2;
  grid-row: 1 / span 2;
  position: relative;
  min-width: 0;
  overflow: hidden;
  margin-bottom: -170px;
}
.herobanner__image {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.herobanner__reference {
  position: absolute;
  top: 5px;
  right: 0;
  min-width: 80px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  text-align: center;
}
.herobanner__status {
  padding: 10px;
  background: var(--primary-color);
  color: #fff;
  font-size: 11px;
  line-height: 1;
  text-transform: uppercase;
}
.herobanner__status::before {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  margin-right: 7px;
  border-radius: 50%;
  background: #fff;
  vertical-align: -1px;
}
.herobanner__ref {
  padding: 10px;
  color: var(--primary-color);
  font-size: 11px;
  line-height: 1;
}
.herobanner__type {
  padding: 10px;
  background: #eee;
  color: var(--text-color);
  font-size: 11px;
  line-height: 1;
}
@media (max-width: 800px) {
  .herobanner {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
  }
  .herobanner__brand {
    grid-column: 1;
    grid-row: 1;
    padding: 5%;
  }
  .herobanner__languagemenu {
    margin-bottom: 0;
    float: right;
  }
  .herobanner__logo {
    width: 30%;
    min-width: 100px;
  }
  .herobanner__body {
    grid-column: 1;
    grid-row: 3;
    align-self: auto;
    height: auto;
    padding: 5%;
  }
  .herobanner__visual {
    grid-column: 1;
    grid-row: 2;
    margin-bottom: 0;
  }
  .herobanner__title {
    font-size: 26px;
    text-align: center;
    margin-bottom: 15px;
  }
  .herobanner__location {
    margin-bottom: 36px;
    justify-content: center;
    font-size: 15px;
  }
  .herobanner__peb {
    width: 100px;
    min-width: 0;
  }
  .herobanner__metas {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
  }
  .herobanner__mobileprice {
    display: block;
    text-align: left;
  }
  .herobanner__mobilepricevalue {
    color: var(--text-color);
    font-size: 42px;
    line-height: 1;
    white-space: nowrap;
  }
  .herobanner__mobilepricecurrency {
    color: var(--primary-color);
  }
  .herobanner__mobilepricelabel {
    margin-top: 5px;
    color: var(--text-color);
    font-size: 14px;
    line-height: 1.2;
  }
}
@media screen and (max-width: 450px) {
  .herobanner__visual {
    height: 100vw;
  }
}
/*
Block : ImportantsInfosBar
*/
.importantsinfosbar {
  display: flex;
  align-items: center;
  height: 170px;
  padding: 0 5%;
  box-sizing: border-box;
  background: rgba(238, 238, 238, 0.6);
  backdrop-filter: blur(16px);
  box-shadow: 0 -12px 35px rgba(0, 0, 0, 0.12);
}
.importantsinfosbar__features {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-grow: 1;
  font-size: 9px;
}
.importantsinfosbar__feature {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 1em;
}
.importantsinfosbar__icon {
  display: block;
  width: 6em;
  height: 6em;
  color: var(--primary-color);
}
.importantsinfosbar__icon svg {
  display: block;
  width: 100%;
  height: 100%;
}
.importantsinfosbar__icon svg * {
  fill: currentColor;
}
.importantsinfosbar__value {
  color: var(--text-color);
  font-size: 4em;
  line-height: 1;
  white-space: nowrap;
  font-weight: 400;
}
.importantsinfosbar__desktopprice {
  text-align: left;
  margin-left: 10vw;
}
.importantsinfosbar__desktoppricelabel {
  margin-bottom: 8px;
  color: var(--text-color);
  font-size: 18px;
  line-height: 1.2;
}
.importantsinfosbar__desktoppricevalue {
  color: var(--text-color);
  font-size: 42px;
  line-height: 1;
  white-space: nowrap;
}
.importantsinfosbar__desktoppricecurrency {
  color: var(--primary-color);
}
@media screen and (max-width: 1140px) {
  .importantsinfosbar__features {
    font-size: 8px;
  }
}
@media screen and (max-width: 1000px) {
  .importantsinfosbar__features {
    font-size: 7px;
  }
}
@media (max-width: 800px) {
  .importantsinfosbar {
    height: auto;
    padding: 5%;
    flex-direction: column;
    align-items: stretch;
    background: #eee;
    box-shadow: none;
  }
  .importantsinfosbar__features {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    font-size: 1vw;
  }
  .importantsinfosbar__feature {
    justify-content: center;
    gap: 8px;
    min-width: 78px;
    padding: 1em;
    box-sizing: border-box;
    border: 1px solid var(--primary-color);
  }
  .importantsinfosbar__desktopprice {
    display: none;
  }
}
@media screen and (max-width: 500px) {
  .importantsinfosbar__features {
    font-size: 5px;
  }
}
/*
Block : AskVisit
*/
.askvisit {
  padding: 30px 5%;
  box-sizing: border-box;
}
.askvisit__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
}
.askvisit__text {
  margin: 0;
  color: var(--primary-color);
  font-size: 18px;
  line-height: 1.2;
}
.askvisit__button {
  display: inline-block;
  padding: 8px 13px;
  border-radius: calc(var(--border-radius) * 0.2);
  background: var(--primary-color);
  color: #fff;
  font-size: 16px;
  line-height: 1;
  text-decoration: none;
}
.askvisit__button:hover,
.askvisit__button:focus {
  background: color-mix(in srgb, var(--primary-color) 75%, #000);
}
@media (max-width: 800px) {
  .askvisit {
    padding: 18px 5% 28px;
    background: #eee;
  }
  .askvisit__inner {
    flex-direction: column;
    gap: 12px;
    text-align: center;
  }
}
/*
Block : DescriptiveText
*/
.descriptivetext {
  padding: 90px 0;
  max-width: var(--layout-max);
  box-sizing: border-box;
  color: var(--text-color);
  font-size: 16px;
  line-height: 1.45;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
}
.descriptivetext p {
  margin: 0 0 24px;
}
.descriptivetext p:last-child {
  margin-bottom: 0;
}
.descriptivetext strong {
  font-weight: 700;
}
@media (max-width: 800px) {
  .descriptivetext {
    padding: 30px 0;
  }
}
/*
Block : PhotoGallery
*/
/* Block : PhotoGallery */
.photogallery {
  position: relative;
  width: var(--layout-width);
  max-width: var(--layout-max);
  margin: 28px auto 32px;
  color: #292d32;
}
.photogallery__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  height: clamp(360px, 33.333333vw, 480px);
  gap: 14px;
}
.photogallery__item {
  display: block;
  position: relative;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  border-radius: var(--border-radius);
  background: #eceeed;
}
.photogallery__item:first-child { grid-row: span 2; }
.photogallery__grid[data-js-count="1"] { grid-template-columns: 1fr; height: clamp(300px, 33.333333vw, 480px); }
.photogallery__grid[data-js-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 1fr; }
.photogallery__grid[data-js-count="2"] .photogallery__item:first-child { grid-row: auto; }
.photogallery__grid[data-js-count="3"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.photogallery__grid[data-js-count="4"] .photogallery__item:nth-child(4) { grid-column: span 2; }
.photogallery__item[hidden] { display: none; }
.photogallery__image, .photogallery__item video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.photogallery__toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-top: 14px; }
.photogallery__counts { display: flex; flex-wrap: wrap; gap: 12px 18px; font-size: 14px; color: #525963; }
.photogallery__count { display: inline-flex; align-items: center; gap: 8px; }
.photogallery__count svg { width: 20px; height: 20px; color: var(--primary-color); fill: none; stroke: currentColor; stroke-width: 1.5; }
.photogallery__open, .photogallery__expand { min-height: 44px; padding: 10px 16px; border: 1px solid #d8dbdd; border-radius: calc(var(--border-radius) * 0.6); background: #fff; color: #292d32; font-weight: 600; font-size: 14px; cursor: pointer; }
.photogallery__expand { position: absolute; left: 12px; bottom: 12px; text-decoration: none; box-sizing: border-box; }
.photogallery__empty { padding: 60px 24px; text-align: center; background: #f4f5f5; border-radius: calc(var(--border-radius) * 1.2); }
.photogallery__item:focus-visible, .photogallery__open:focus-visible, .photogallery__expand:focus-visible { outline: 3px solid #292d32; outline-offset: 4px; }
.photogallery__caption {
  display: none;
}
.lg-sub-html .photogallery__caption {
  display: block;
  max-width: 900px;
  margin: 0 auto;
  color: #fff;
}
.lg-sub-html .photogallery__captiontitle {
  margin: 0 0 12px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
}
.lg-sub-html .photogallery__captiondata {
  display: grid;
  grid-template-columns: repeat(5, auto);
  gap: 8px;
  justify-content: center;
}
.lg-sub-html .photogallery__captionitem {
  display: grid;
  gap: 3px;
  padding: 8px 10px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: calc(var(--border-radius) * 0.4);
  background: rgba(255, 255, 255, 0.1);
  font-size: 13px;
  line-height: 1.2;
}
.lg-sub-html .photogallery__captionitem strong {
  color: rgba(255, 255, 255, 0.72);
  font-weight: 400;
}
.lg-sub-html .photogallery__captionitem span {
  color: #fff;
}
@media (max-width: 800px) {
  .photogallery { margin-top: 24px; margin-bottom: 32px; }
  .photogallery__grid { height: clamp(340px, 52vw, 416px); gap: 12px; }
  .lg-sub-html .photogallery__captiondata { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .photogallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: minmax(0, 2.3fr) minmax(0, 1fr); height: 400px; gap: 10px; }
  .photogallery__item:first-child { grid-column: 1 / -1; grid-row: auto; }
  .photogallery__item:nth-child(n+4) { display: none; }
  .photogallery__grid[data-js-count="1"] { height: 320px; grid-template-rows: 1fr; }
  .photogallery__grid[data-js-count="2"] { grid-template-columns: 1fr; grid-template-rows: 2fr 1fr; }
  .photogallery__toolbar { gap: 12px; }
  .photogallery__open { width: 100%; }
}
/* Block : PropertyDetails */
.energy, .technical, .compositions { max-width: var(--layout-max); width: var(--layout-width); margin: 0 auto 64px; color: var(--text-color); }
.energy__maintitle, .technical__maintitle, .compositions__maintitle { margin: 0 0 24px; color: var(--text-color); font-size: clamp(26px, 2.3vw, 32px); font-weight: 600; line-height: 1.25; overflow-wrap: anywhere; }
.energy__maintitle > span, .technical__maintitle > span, .compositions__maintitle > span { display: inline-block; position: relative; padding-bottom: 10px; }
.energy__maintitle > span::after, .technical__maintitle > span::after, .compositions__maintitle > span::after { content: ""; position: absolute; inset: auto 0 0; height: 2px; background: var(--primary-color); }
.technical__stats, .compositions__stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 24px; }
.compositions__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.technical__stat, .compositions__stat { background-color: #ffffff; display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: center; gap: 6px 12px; min-width: 0; padding: 18px; border: 1px solid #e1e6e2; border-radius: calc(var(--border-radius) * 0.8); }
.technical__staticon, .compositions__staticon { grid-row: 1 / span 2; }
.technical__staticon, .technical__noticeicon, .technical__cardicon, .compositions__staticon, .compositions__sectionicon, .energy__icon { display: block; width: 20px; height: 20px; flex: 0 0 20px; color: var(--primary-color); }
.technical__staticon svg, .technical__noticeicon svg, .technical__cardicon svg, .compositions__staticon svg, .compositions__sectionicon svg, .energy__icon svg, .technical__listicon svg { display: block; width: 100%; height: 100%; }
.technical__staticon svg *, .technical__noticeicon svg *, .technical__cardicon svg *, .compositions__staticon svg *, .compositions__sectionicon svg *, .energy__icon svg *, .technical__listicon svg * { fill: currentColor; }
.technical__statvalue, .compositions__statvalue { color: var(--text-color); font-size: 26px; font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; }
.compositions__statvalue span { display: inline-block; color: var(--primary-color); font-size: .8em; font-weight: 400; }
.compositions__statvalue sup { font-size: .65em; }
.technical__statlabel, .compositions__statlabel { grid-column: 2; color: #737b76; font-size: 13px; line-height: 1.5; }
.energy__chart, .energy__consumption, .energy__notice, .energy__feature, .technical__notice, .technical__card, .compositions__card { box-sizing: border-box; min-width: 0; background: #fff; border: 1px solid #e1e6e2; border-radius: var(--border-radius); }
.technical__cardtitle, .compositions__sectiontitle, .compositions__cardtitle, .energy__subtitle { margin: 0; color: var(--text-color); font-size: 18px; font-weight: 600; line-height: 1.5; overflow-wrap: anywhere; }
@media (max-width: 800px) {
  .energy, .technical, .compositions { margin-bottom: 48px; }
  .technical__stats, .compositions__stats { gap: 12px; }
  .technical__stat, .compositions__stat { padding: 14px; gap: 6px 10px; }
  .technical__statvalue, .compositions__statvalue { font-size: 24px; }
}
@media (max-width: 600px) {
  .technical__stats, .compositions__stats { grid-template-columns: minmax(0, 1fr); }
}

/* Block : Compositions */
.compositions__columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 20px; }
.compositions__section { min-width: 0; }
.compositions__sectionhead { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.compositions__cards { display: grid; align-items: start; gap: 12px; }
.compositions__card { display: grid; gap: 10px; padding: 18px; font-size: 14px; line-height: 1.6; }
.compositions__cardtitle { font-size: 16px; }
.compositions__card--compact { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; align-items: start; }
.compositions__cardtext { color: var(--text-color); overflow-wrap: anywhere; }
.compositions__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 12px; margin: 0; padding: 0; list-style: none; color: var(--text-color); overflow-wrap: anywhere; }

.compositions__list sup { font-size: .65em; }
@media (max-width: 800px) {
  .compositions__columns { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}
/*
SVG Map components
*/
.room_element {
  fill: transparent;
  fill-opacity: 0.3;
  stroke: none;
  cursor: pointer;
}
.room_element.selected {
  fill: var(--primary-color);
}
.room_element:hover {
  fill: var(--primary-color);
}
/* .room_name {
fill: #fff;
cursor: pointer;
}
.room_name:active {
fill: var(--primary-color);
} */
/* path:first-child {
	fill: #eee !important;
	stroke: none !important;
} */
/* Block : Booklet */
.booklet { max-width: var(--layout-max); width: var(--layout-width); margin: 0 auto 64px; }
.booklet__inner { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; align-items: center; gap: 24px; padding: 24px 28px; box-sizing: border-box; border: 1px solid color-mix(in srgb, var(--primary-color) 25%, #e1e6e2); border-left: 4px solid var(--primary-color); border-radius: var(--border-radius); background: color-mix(in srgb, var(--primary-color) 4%, #fff); }
.booklet__icon { display: flex; align-items: center; justify-content: center; width: 56px; height: 64px; border: 1px solid color-mix(in srgb, var(--primary-color) 22%, #e1e6e2); border-radius: calc(var(--border-radius) * 0.8); background: #fff; color: var(--primary-color); }
.booklet__icon svg { width: 32px; height: 32px; }
.booklet__content { min-width: 0; }
.booklet__badge { display: inline-block; margin-bottom: 8px; padding: 3px 8px; border-radius: calc(var(--border-radius) * 0.4); background: color-mix(in srgb, var(--primary-color) 10%, #fff); color: color-mix(in srgb, var(--primary-color) 75%, #000); font-size: 12px; font-weight: 600; line-height: 1.5; }
.booklet__lead { margin: 0; color: var(--text-color); font-size: clamp(22px, 2vw, 26px); font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; }
.booklet__subtext { margin: 8px 0 0; max-width: 620px; color: var(--text-color); font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.booklet__button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; box-sizing: border-box; min-height: 44px; min-width: 0; max-width: 100%; padding: 10px 12px; border: 1px solid var(--primary-color); border-radius: calc(var(--border-radius) * 0.8); background: var(--primary-color); color: var(--header-ink, #fff); font-family: inherit; font-size: 14px; font-weight: 600; line-height: 1.5; text-align: center; text-decoration: none; cursor: pointer; }
.booklet__button svg { width: 20px; height: 20px; flex: 0 0 20px; }
.booklet__button:hover { border-color: color-mix(in srgb, var(--primary-color) 75%, #000); background: color-mix(in srgb, var(--primary-color) 75%, #000); color: #fff; }
.booklet__button:focus-visible { outline: 3px solid color-mix(in srgb, var(--primary-color) 75%, #000); outline-offset: 3px; }
.booklet__modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
}
.booklet__modal--open {
  display: flex;
}
.booklet__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
}
.booklet__dialog {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 560px;
  max-height: calc(100vh - 48px);
  padding: 34px;
  overflow: auto;
  background: #fff;
  border-radius: calc(var(--border-radius) * 0.8);
  box-shadow: 0 18px 60px rgba(0, 0, 0, 0.24);
  box-sizing: border-box;
}
.booklet__close {
  position: absolute;
  top: 14px;
  right: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text-color);
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}
.booklet__close:hover,
.booklet__close:focus {
  color: var(--primary-color);
}
.booklet__modaltitle {
  margin: 0;
  color: var(--text-color);
  font-size: 30px;
  font-weight: 600;
  line-height: 1.2;
}
.booklet__modalsubtitle {
  margin: 6px 0 26px;
  color: #687087;
  font-size: 14px;
  line-height: 1.3;
}
.booklet__form {
  display: grid;
  gap: 18px;
}
.booklet__fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.booklet__field {
  display: grid;
  gap: 7px;
  color: var(--text-color);
  font-size: 14px;
  line-height: 1.2;
}
.booklet__field input {
  width: 100%;
  height: 42px;
  padding: 0 12px;
  border: 1px solid #ddd;
  border-radius: calc(var(--border-radius) * 0.4);
  box-sizing: border-box;
  color: var(--text-color);
  font: inherit;
}
.booklet__field input:focus {
  outline: none;
  border-color: var(--primary-color);
}
.booklet__checkbox {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: start;
  color: #4d5563;
  font-size: 13px;
  line-height: 1.4;
}
.booklet__checkbox input {
  margin-top: 2px;
  accent-color: var(--primary-color);
}
.booklet__submit {
  justify-self: start;
  padding: 13px 22px;
  border: 0;
  border-radius: calc(var(--border-radius) * 0.3);
  background: var(--primary-color);
  color: #fff;
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s ease;
}
.booklet__submit:hover,
.booklet__submit:focus {
  background: color-mix(in srgb, var(--primary-color) 75%, #000);
}
.is-booklet-modal-open {
  overflow: hidden;
}
@media (max-width: 800px) {
  .booklet { margin-bottom: 48px; }
  .booklet__inner { grid-template-columns: 44px minmax(0, 1fr); gap: 16px; padding: 20px; }
  .booklet__icon { width: 44px; height: 52px; align-self: start; }
  .booklet__icon svg { width: 26px; height: 26px; }
  .booklet__lead { font-size: 22px; }
  .booklet__button { grid-column: 1 / -1; width: 100%; }
  .booklet__dialog {
    padding: 28px 20px;
  }
  .booklet__modaltitle {
    font-size: 24px;
  }
  .booklet__fields {
    grid-template-columns: 1fr;
  }
  .booklet__submit {
    width: 100%;
  }
}
@media (max-width: 600px) {
  .booklet__inner { position: relative; grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 18px; }
  .booklet__icon { position: absolute; top: 16px; left: 18px; width: 28px; height: 28px; border: 0; background: transparent; }
  .booklet__icon svg { width: 24px; height: 24px; }
  .booklet__badge { margin-left: 36px; margin-bottom: 12px; }
}
/* Block : Mapgallery */
.mapgallery { max-width: var(--layout-max); width: var(--layout-width); margin: 0 auto 64px; }
.mapgallery__maintitle { margin: 0 0 22px; color: var(--text-color); font-size: clamp(26px, 2.4vw, 34px); font-weight: 600; line-height: 1.25; }
.mapgallery__maintitle > span { display: inline-block; position: relative; padding-bottom: 10px; }
.mapgallery__floortabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; }
.mapgallery__floortab { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; min-height: 44px; padding: 10px 16px; border: 1px solid #dce2de; border-radius: calc(var(--border-radius) * 0.7); background: #fff; color: #525c56; font-size: 14px; line-height: 1.4; text-decoration: none; overflow-wrap: anywhere; }
.mapgallery__floortab:hover { border-color: var(--primary-color); background: #f5f7f5; }
.mapgallery__floortab--active { border-color: var(--primary-color); background: var(--primary-color); color: var(--mapgallery-ink, #fff); font-weight: 600; }
.mapgallery__floortab--active:hover { border-color: color-mix(in srgb, var(--primary-color) 75%, #000); background: color-mix(in srgb, var(--primary-color) 75%, #000); color: #fff; }
.mapgallery__floortitle { margin: 0 0 16px; color: var(--text-color); font-size: 16px; line-height: 1.4; font-weight: 600; }
.mapgallery__columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; align-items: start; }
.mapgallery__map, .mapgallery__gallery { position: relative; min-width: 0; }
.mapgallery__map { box-sizing: border-box; padding: 16px; border: 1px solid #e1e6e2; border-radius: var(--border-radius); background: #fff; }
.mapgallery__map svg { display: block; width: 100%; max-width: 100%; height: auto; }
.mapgallery__map [data-js-mapgallery-room] { cursor: pointer; }
/* SVG focus has a native blue outline even after pointer selection. */
.mapgallery__map [data-js-mapgallery-room]:focus:not(:focus-visible) { outline: none; }
.mapgallery__map [data-js-mapgallery-room]:focus-visible { outline: 2px solid var(--primary-color); outline-offset: 3px; }
.mapgallery__roomtarget { position: relative; top: -16px; }
.mapgallery__roomtabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }
.mapgallery__roomtab { display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box; padding: 9px 12px; border: 1px solid #e1e6e2; border-radius: calc(var(--border-radius) * 0.6); color: var(--text-color); background: #fff; font-size: 13px; line-height: 1.4; text-decoration: none; overflow-wrap: anywhere; }
.mapgallery__roomtab:hover { color: var(--primary-color); background: #f5f7f5; border-color: var(--primary-color); }
.mapgallery__roomtab--active { color: var(--primary-color); border-color: var(--primary-color); box-shadow: inset 0 -2px var(--primary-color); background: #fff; font-weight: 600; }
.mapgallery__roomtitle { margin: 0 0 16px; color: var(--text-color); font-size: 24px; font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; }
.mapgallery__roomdata { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: 8px; margin: 14px 0 0; }
.mapgallery__datacard { display: grid; grid-template-columns: 16px minmax(0, 1fr); gap: 3px 8px; align-content: start; min-height: 64px; box-sizing: border-box; padding: 9px 10px; background: #fff; border: 1px solid #e1e6e2; border-radius: calc(var(--border-radius) * 0.6); }
.mapgallery__dataicon { grid-column: 1; grid-row: 1 / span 2; width: 16px; height: 16px; color: var(--primary-color); }
.mapgallery__dataicon svg { display: block; width: 100%; height: 100%; }
.mapgallery__dataicon svg * { fill: currentColor; }
.mapgallery__datalabel { grid-column: 2; color: #737b76; font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }
.mapgallery__datavalue { grid-column: 2; color: var(--text-color); font-size: 13px; font-weight: 600; line-height: 1.5; overflow-wrap: anywhere; }
.mapgallery__datavalue small { margin-left: 3px; color: var(--primary-color); font-size: inherit; font-weight: 400; }
.mapgallery__photos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.mapgallery__photos:has(> a:only-child) { grid-template-columns: minmax(0, 180px); }
.mapgallery__photos:has(> a:nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 374px; }
.mapgallery__photos a { display: block; min-width: 0; overflow: hidden; border-radius: calc(var(--border-radius) * 0.8); background: #f5f7f5; }
.mapgallery__photos img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.mapgallery__empty { grid-column: 1 / -1; margin: 0; padding: 18px; border: 1px solid #e1e6e2; border-radius: calc(var(--border-radius) * 0.8); color: #737b76; background: #fafbf9; font-size: 14px; line-height: 1.6; }
.mapgallery a:focus-visible, .mapgallery button:focus-visible { outline: 3px solid #292d32; outline-offset: 3px; }
@media (max-width: 1100px) {
  .mapgallery__photos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
  .mapgallery__maintitle > span::after { content: ""; position: absolute; inset: auto 0 0; height: 2px; background: var(--primary-color); }
  .mapgallery { margin-bottom: 48px; }
  .mapgallery__columns { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .mapgallery__map { padding: 12px; }
  .mapgallery__roomdata { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mapgallery__roomtitle { font-size: 22px; }
  .mapgallery__datacard { padding: 9px 10px; }
}
/* Block : Exterior */
.exterior { max-width: var(--layout-max); width: var(--layout-width); margin: 0 auto 64px; }
.exterior__maintitle { margin: 0 0 24px; color: var(--text-color); font-size: clamp(26px, 2.3vw, 32px); font-weight: 600; line-height: 1.25; }
.exterior__maintitle > span { display: inline-block; position: relative; padding-bottom: 10px; }
.exterior__maintitle > span::after { content: ""; position: absolute; inset: auto 0 0; height: 2px; background: var(--primary-color); }
.exterior__stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 24px; }
.exterior__stat { display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: center; gap: 6px 12px; padding: 18px; border: 1px solid #e1e6e2; border-radius: calc(var(--border-radius) * 0.8); min-width: 0; }
.exterior__staticon { width: 22px; height: 22px; grid-row: 1 / span 2; color: var(--primary-color); }
.exterior__staticon svg, .exterior__cardicon svg { display: block; width: 100%; height: 100%; }
.exterior__staticon svg *, .exterior__cardicon svg * { fill: currentColor; }
.exterior__statvalue { color: var(--text-color); font-size: 26px; font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; }
.exterior__statvalue span { display: inline-block; color: var(--primary-color); font-size: .8em; font-weight: 400; }
.exterior__statvalue sup { font-size: .65em; }
.exterior__statlabel { grid-column: 2; color: #737b76; font-size: 13px; line-height: 1.5; }
.exterior__cards { display: grid; gap: 16px; }
.exterior__card { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 16px; padding: 24px; background: #fff; border: 1px solid #e1e6e2; border-radius: var(--border-radius); box-sizing: border-box; }
.exterior__cardicon { width: 20px; height: 20px; color: var(--primary-color); }
.exterior__cardcontent { min-width: 0; }
.exterior__cardtitle { margin: 0 0 16px; color: var(--text-color); font-size: 18px; font-weight: 600; line-height: 1.5; overflow-wrap: anywhere; }
.exterior__items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; }
.exterior__item { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: start; gap: 12px; padding: 11px 0; border-bottom: 1px solid #edf0ed; color: var(--text-color); font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.exterior__itemvalue { font-weight: 600; }
.exterior__itemvalue--missing { font-weight: 400; color: #737b76; }
@media (max-width: 800px) {
  .exterior { margin-bottom: 48px; }
  .exterior__stats { gap: 12px; }
  .exterior__stat { padding: 14px; gap: 6px 10px; }
  .exterior__statvalue { font-size: 24px; }
  .exterior__card { padding: 18px; gap: 12px; }
  .exterior__items { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .exterior__stats { grid-template-columns: minmax(0, 1fr); }
  .exterior__cardcontent { display: contents; }
  .exterior__cardtitle { margin: 0; }
  .exterior__items { grid-column: 1 / -1; }
}
@media (min-width: 1200px) {
  .exterior { display: grid; grid-template-columns: minmax(0, 28fr) minmax(0, 72fr); column-gap: 36px; align-items: start; }
  .exterior__maintitle { position: sticky; top: calc(var(--siteheader-height, 0px) + 24px); align-self: start; min-width: 0; margin-bottom: 0; }
  .exterior__content { display: grid; gap: 16px; min-width: 0; }
  .exterior__stats { gap: 12px; margin-bottom: 0; }
  .exterior__stat { padding: 16px; gap: 6px 10px; background: #fff; }
  .exterior__cards { gap: 12px; }
  .exterior__card { padding: 18px; gap: 12px; }
  .exterior__cardtitle { margin-bottom: 12px; }
  .exterior__items { column-gap: 20px; }
}

/* Block : Energy */
.energy__content { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.energy__essential { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; padding: 20px; gap: 24px; border: 1px solid #e1e6e2; border-radius: var(--border-radius); background: #fff; }
.energy__chart { display: flex; align-items: center; justify-content: center; padding: 12px 24px 12px 0; border: 0; border-right: 1px solid #e1e6e2; border-radius: 0; background: transparent; }
.energy__chartimage { display: block; width: auto; max-width: 100%; max-height: 47px; height: auto; }
.energy__consumption { padding: 0; border: 0; border-radius: 0; background: transparent; }
.energy__subtitle { margin: 0 0 6px; color: var(--text-color); font-size: 13px; font-weight: 400; line-height: 1.5; }
.energy__value { color: var(--primary-color); font-size: 26px; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.energy__value sup { font-size: .65em; }
.energy__notice { margin: 0; padding: 2px 0 2px 14px; border: 0; border-left: 2px solid #e1e6e2; border-radius: 0; background: transparent; color: var(--text-color); font-size: 14px; font-weight: 400; line-height: 1.7; overflow-wrap: anywhere; }
.energy__installations { min-width: 0; padding: 18px; border: 1px solid #e1e6e2; border-radius: var(--border-radius); background: #fff; }
.energy__installationstitle { margin: 0 0 14px; color: var(--text-color); font-size: 16px; font-weight: 600; line-height: 1.5; }
.energy__features { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 24px; }
.energy__feature { display: flex; align-items: flex-start; gap: 8px; padding: 0; border: 0; border-radius: 0; background: transparent; }
.energy__icon { width: 18px; height: 18px; flex-basis: 18px; margin-top: 2px; }
.energy__label { min-width: 0; color: var(--primary-color); font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
@media (max-width: 800px) {
  .energy__essential { padding: 16px; gap: 16px; }
  .energy__features { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
}
@media (max-width: 600px) {
  .energy__essential { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .energy__chart { justify-content: flex-start; padding: 0 0 14px; border-right: 0; border-bottom: 1px solid #e1e6e2; }
  .energy__features { grid-template-columns: minmax(0, 1fr); }
  .energy__installations { padding: 16px; }
  .energy__value { font-size: 24px; }
}

/* Block : Technical */
.technical__notice { margin-bottom: 20px; padding: 16px 18px; border-left: 3px solid var(--primary-color); }
.technical__noticehead { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.technical__noticetitle { margin: 0; color: var(--primary-color); font-size: 16px; font-weight: 600; line-height: 1.5; }
.technical__noticetext { margin: 0; color: var(--text-color); font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.technical__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 16px; }
.technical__card { padding: 16px; }
.technical__cardhead { display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: center; gap: 10px; margin-bottom: 10px; }
.technical__cardtitle { font-size: 16px; }
.technical__list { margin: 0; padding: 0; list-style: none; font-size: 14px; line-height: 1.6; }
.technical__list li { display: flex; align-items: flex-start; gap: 8px; color: var(--text-color); }
.technical__list li + li { margin-top: 6px; }
.technical__listicon { display: block; flex: 0 0 12px; width: 12px; height: 12px; margin-top: 5px; color: var(--primary-color); }
.technical__listtext { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 800px) {
  .technical__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .technical__cards { grid-template-columns: minmax(0, 1fr); }
  .technical__notice, .technical__card { padding: 16px; }
}
@media (min-width: 1200px) {
  .technical { display: grid; grid-template-columns: minmax(0, 28fr) minmax(0, 72fr); column-gap: 36px; align-items: start; }
  .technical__maintitle { position: sticky; top: calc(var(--siteheader-height, 0px) + 24px); align-self: start; min-width: 0; margin-bottom: 0; overflow-wrap: normal; }
  .technical__content { display: grid; gap: 16px; min-width: 0; }
  .technical__stats { gap: 12px; margin-bottom: 0; }
  .technical__stat { padding: 14px; gap: 6px 10px; }
  .technical__notice { margin-bottom: 0; padding: 14px 16px; }
  .technical__cards { display: block; column-count: 2; column-gap: 12px; }
  .technical__card { break-inside: avoid; margin-bottom: 12px; padding: 14px; }
  .exterior__maintitle > span::after, .energy__maintitle > span::after, .technical__maintitle > span::after, .compositions__maintitle > span::after { content: none; }
}
/* Block : Documents */
.documents { width: var(--layout-width); max-width: var(--layout-max); margin: 0 auto 64px; color: var(--text-color); }
.documents[hidden] { display: none; }
.documents__title { margin: 0 0 24px; font-size: clamp(26px, 2.3vw, 32px); font-weight: 600; line-height: 1.3; }
.documents__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; list-style: none; margin: 0; padding: 0; }
.documents__list > li { min-width: 0; }
.documents__link { display: flex; align-items: center; gap: 14px; min-height: 84px; height: 100%; padding: 18px; box-sizing: border-box; border: 1px solid color-mix(in srgb, var(--text-color) 14%, transparent); border-radius: var(--border-radius); color: var(--text-color); background: #fff; text-decoration: none; }
.documents__link:hover { border-color: var(--primary-color); background: color-mix(in srgb, var(--primary-color) 3%, #fff); }
.documents__link:focus-visible { outline: 2px solid var(--primary-color); outline-offset: 3px; }
.documents__icon { display: block; flex: 0 0 26px; width: 26px; height: 32px; background: var(--primary-color); mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%202H5v20h14V7l-5-5Z%22%2F%3E%3Cpath%20d%3D%22M14%202v5h5M8%2012h8M8%2016h8%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat; }
.documents__content { display: grid; gap: 4px; min-width: 0; }
.documents__label { font-size: 16px; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.documents__detail { color: color-mix(in srgb, var(--text-color) 75%, transparent); font-size: 13px; line-height: 1.4; }
@media (max-width: 800px) {
  .documents { margin-bottom: 40px; }
  .documents__list { grid-template-columns: minmax(0, 1fr); gap: 12px; }
}

/* Block : Poi */
.poi { max-width: var(--layout-max); width: var(--layout-width); margin: 0 auto 64px; }
.poi__maintitle { margin: 0 0 24px; position: relative; color: var(--text-color); font-size: clamp(26px, 2.3vw, 32px); font-weight: 600; line-height: 1.3; }
.poi__maintitle > span { display: inline-block; position: relative; padding-bottom: 10px; }
.poi__maintitle > span::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 2px; background: var(--primary-color); }
@media (min-width: 801px) {
  .poi__maintitle > span::after { content: none; }
}
.poi__mapwrap { height: clamp(340px, 28vw, 400px); margin-bottom: 24px; overflow: hidden; border: 1px solid #e1e6e2; border-radius: calc(var(--border-radius) * 1.2); }
.poi__map { width: 100%; height: 100%; }
/* Yatmo loads after this file: one extra class carries the site typeface into its controls. */
.poi__map[data-yatmo-root] { --yatmo-font: var(--font-family); }
.poi__content { min-width: 0; box-sizing: border-box; color: var(--text-color); }
.poi__highlights { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 24px; }
.poi__highlight { min-width: 0; padding: 14px 16px; border: 1px solid #e1e6e2; border-radius: calc(var(--border-radius) * 0.8); background: #fff; }
.poi__highlightmain { display: flex; align-items: center; gap: 10px; margin-bottom: 7px; }
.poi__highlighticon { display: block; flex: 0 0 20px; width: 20px; height: 20px; color: var(--primary-color); }
.poi__highlighticon svg { display: block; width: 100%; height: 100%; }
.poi__highlighticon svg * { fill: currentColor; }
.poi__highlightvalue { display: block; color: var(--text-color); font-size: 22px; font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; }
.poi__highlightunit { color: var(--primary-color); font-size: inherit; font-weight: 400; }
.poi__highlightlabel { color: #737b76; font-size: 12px; line-height: 1.5; }
.poi__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.poi__card { min-width: 0; padding: 18px; background: #fff; border: 1px solid #e1e6e2; border-radius: var(--border-radius); }
.poi__card--wide { grid-column: 1 / -1; }
.poi__cardhead { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; align-items: center; gap: 10px; margin-bottom: 12px; }
.poi__cardicon { display: flex; align-items: center; justify-content: center; width: 18px; height: 18px; color: var(--primary-color); }
.poi__cardicon svg { display: block; width: 18px; height: 18px; }
.poi__cardicon svg * { fill: currentColor; }
.poi__cardtitle { margin: 0; color: var(--text-color); font-size: 16px; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.poi__cardmeta { color: #737b76; font-size: 12px; line-height: 1.5; }
.poi__empty { margin: 0; color: #737b76; font-size: 13px; }
.poi__listtable { display: grid; font-size: 13px; line-height: 1.5; }
.poi__listtable--twocolumns { display: block; column-count: 2; column-gap: 24px; }
.poi__listrow { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; width: 100%; break-inside: avoid; border-top: 1px solid #edf0ee; }
.poi__listcell { min-width: 0; padding: 10px 0; }
.poi__listcell--name { display: flex; align-items: center; gap: 8px; overflow-wrap: anywhere; }
.poi__listcell--distance { color: var(--primary-color); text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.poi__rowmarker { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; flex: 0 0 18px; color: var(--primary-color); }
.poi__rowmarker svg { display: block; width: 14px; height: 14px; }
.poi__rowmarker svg * { fill: currentColor; stroke: currentColor; }
.poi__rowmarker:empty::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
@media (max-width: 800px) {
  .poi { margin-bottom: 48px; }
  .poi__mapwrap { height: 360px; margin-bottom: 18px; }
  .poi__map .mapboxgl-ctrl-group button { width: 44px !important; height: 44px !important; }
  .poi__highlights { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .poi__highlight { padding: 12px; }
  .poi__highlightvalue { font-size: 20px; }
  .poi__highlighticon { width: 20px; height: 20px; flex-basis: 20px; }
  .poi__cards { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .poi__card { padding: 14px; }
  .poi__card--wide { grid-column: auto; }
  .poi__listtable--twocolumns { column-count: 1; }
}
/* Block : Contact */
.contact { max-width: var(--layout-max); width: var(--layout-width); margin: 0 auto 40px; padding: 24px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .85fr); align-items: center; gap: 32px; box-sizing: border-box; border: 1px solid #e1e6e2; border-radius: var(--border-radius); background: color-mix(in srgb, var(--primary-color) 3%, #fff); }
.contact__copy { min-width: 0; }
.contact__maintitle { margin: 0 0 12px; color: var(--text-color); font-size: clamp(26px, 2.3vw, 32px); font-weight: 600; line-height: 1.3; }
.contact__intro { margin: 0; max-width: 510px; color: var(--text-color); font-size: 15px; line-height: 1.7; }
.contact__card { min-width: 0; }
.contact__links { display: grid; gap: 12px; }
.contact__link { gap: 12px; }
.contact__link > span { min-width: 0; }
.contact__detail { display: block; font-size: 13px; font-weight: 400; overflow-wrap: anywhere; }
.contact__icon { display: block; width: 20px; height: 20px; flex: 0 0 20px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 800px) {
  .contact { grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 20px; margin-bottom: 28px; }
  .contact__links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .contact { padding: 18px; }
  .contact__links { grid-template-columns: minmax(0, 1fr); }
}

/* Block : Footer */
.footer { background-color: var(--primary-color); background-image: linear-gradient(to bottom, color-mix(in srgb, var(--primary-color) 96%, #fff), var(--primary-color)); --footer-ink: #fff; --footer-secondary-ink: #fff; --footer-symbol-color: #fff; color: #fff; padding-block: 20px 14px; }
.footer__inner { width: var(--layout-width); max-width: var(--layout-max); margin-inline: auto; }
.footer__main { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-bottom: 16px; }
.footer__logo { display: block; width: var(--agency-footer-width, 150px); max-width: 55%; max-height: var(--agency-footer-height, 64px); height: auto; object-fit: contain; object-position: left center; color: var(--footer-symbol-color, var(--footer-ink)); }
.footer__socials { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 8px; }
.footer__social { display: inline-flex; justify-content: center; align-items: center; width: 44px; height: 44px; border-radius: calc(var(--border-radius) * 0.6); }
.footer__social img { display: block; width: 20px; height: 20px; object-fit: contain; filter: brightness(0) invert(1); }
.footer__social:not([href]) { cursor: default; }
.footer__social[href]:hover { opacity: .85; }
.footer__secondary { --footer-ink: inherit; padding-top: 12px; border-top: 1px solid color-mix(in srgb, var(--footer-ink, #fff) 20%, transparent); }
.footer__poweredby { display: inline-flex; align-items: center; min-height: 32px; color: var(--footer-ink, #fff); font-size: 12px; line-height: 1.5; text-decoration: none; }
.footer__poweredby:hover { color: var(--footer-ink, #fff); text-decoration: underline; text-underline-offset: 3px; }
.footer a[href]:focus-visible { outline: 2px solid var(--footer-ink, #fff); outline-offset: 3px; }
@media (max-width: 800px) {
  .footer { padding-block: 16px 12px; }
  .footer__main { padding-bottom: 12px; gap: 12px; }
  .footer__logo { width: var(--agency-footer-mobile-width, 132px); max-height: var(--agency-footer-mobile-height, 56px); }
}

/* Block : Layout */
:root {
  --layout-max: 1160px;
  --layout-width: 90%;
  --layout-gap: clamp(12px, 2vw, 32px);
}
.sitecontent { margin-inline: auto; min-width: 0; }
/* Block : SiteHeader — flowing information bar, one sticky navigation surface. */
.siteheader { --siteheader-surface: #fff; display: contents; background: var(--siteheader-surface); color: var(--text-color); border-top: 4px solid var(--primary-color); }
.siteheader__top { position: relative; z-index: 31; background: var(--siteheader-surface); border-top: inherit; border-bottom: 1px solid color-mix(in srgb, var(--text-color) 10%, transparent); }
.siteheader__inner { display: flex; align-items: center; gap: 12px 18px; width: var(--layout-width); max-width: var(--layout-max); min-height: 44px; margin-inline: auto; padding-block: 4px; box-sizing: border-box; }
.siteheader__main { position: sticky; top: 0; z-index: 30; background: var(--siteheader-surface); border-bottom: 1px solid color-mix(in srgb, var(--text-color) 10%, transparent); }
.siteheader__maininner { display: flex; align-items: center; gap: 24px; width: var(--layout-width); max-width: var(--layout-max); min-height: 80px; margin-inline: auto; padding-block: 12px; box-sizing: border-box; }
.siteheader .herobanner__brand { display: flex; flex: 0 0 auto; align-items: center; min-width: 0; padding: 0; }
.siteheader .herobanner__logo { display: block; width: var(--agency-header-width, 150px); height: var(--agency-header-height, 44px); min-width: 0; max-width: 100%; object-fit: contain; object-position: left center; }
.siteheader .siteheader__brand--darklogo { padding: 6px 10px; border-radius: calc(var(--border-radius) * 0.6); background: #252b28; }
.siteheader .herobanner__languagemenu { flex: 0 0 auto; float: none; margin: 0 0 0 auto; min-width: 0; }
.siteheader .herobanner__flag { width: 20px; min-width: 20px; }
.siteheader .herobanner__languagetoggle, .siteheader .herobanner__languageitem { display: inline-flex; align-items: center; justify-content: center; gap: 6px; box-sizing: border-box; min-height: 44px; padding: 8px; border-radius: calc(var(--border-radius) * 0.6); background: transparent; color: var(--text-color); font-family: inherit; font-size: 13px; line-height: 1.4; text-decoration: none; }
.siteheader .herobanner__languagetoggle:hover, .siteheader .herobanner__languageitem:hover { color: var(--primary-color); background: color-mix(in srgb, var(--text-color) 4%, var(--siteheader-surface)); opacity: 1; }
.siteheader .herobanner__languagecaret { width: 10px; }
.siteheader .herobanner__languagelist { left: auto; right: 0; min-width: 100%; z-index: 40; padding: 4px; box-sizing: border-box; border: 1px solid color-mix(in srgb, var(--text-color) 12%, transparent); border-radius: calc(var(--border-radius) * 0.8); box-shadow: 0 4px 12px color-mix(in srgb, var(--text-color) 5%, transparent); }
.siteheader .herobanner__reference { position: static; display: flex; flex: 1 1 auto; align-items: center; justify-content: flex-start; gap: 8px 18px; min-width: 0; background: none; box-shadow: none; }
.siteheader .herobanner__ref, .siteheader .herobanner__type, .siteheader .siteheader__address, .siteheader .herobanner__status { padding: 0; background: transparent; border: 0; border-radius: 0; color: var(--text-color); font-family: inherit; font-size: 13px; font-weight: 400; line-height: 1.5; overflow-wrap: anywhere; text-transform: none; text-align: left; }
.siteheader__propertyline { display: contents; }
.siteheader .herobanner__ref { order: 0; }
.siteheader .herobanner__type { order: 1; }
.siteheader .siteheader__address { order: 2; flex: 0 1 auto; min-width: 0; max-width: none; }
.siteheader .herobanner__status { order: 3; flex: 0 0 auto; }
.siteheader .herobanner__type, .siteheader .siteheader__address { padding-left: 14px; border-left: 1px solid color-mix(in srgb, var(--text-color) 12%, transparent); }
.siteheader .siteheader__address[hidden] { display: none; }
.siteheader .herobanner__status::after { content: none; }
.siteheader .herobanner__type, .siteheader .siteheader__address { display: flex; align-items: flex-start; gap: 6px; }
.siteheader .herobanner__type::before, .siteheader .siteheader__address::before { content: ''; display: block; flex: 0 0 14px; width: 14px; height: 14px; margin-top: .2em; background: var(--primary-color); mask: center / contain no-repeat; }
/* Embedded SVG masks also render in local file previews, without cross-origin fetches. */
.siteheader .herobanner__type::before { mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2021V3h12v18M16%209h4v12M2%2021h20M8%207h4M8%2011h4M8%2015h4M9%2021v-3h2v3%22%2F%3E%3C%2Fsvg%3E"); }
.siteheader .siteheader__address::before { mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%2010c0%206-8%2011-8%2011S4%2016%204%2010a8%208%200%201%201%2016%200Z%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2210%22%20r%3D%222.5%22%2F%3E%3C%2Fsvg%3E"); }
.siteheader button:focus-visible, .siteheader a:focus-visible { outline: 2px solid var(--primary-color); outline-offset: 3px; }
.siteheader__mobilebrand { display: none; }
.siteheader__nav { flex: 1 1 auto; min-width: 0; }
.siteheader__nav[hidden] { display: none; }
.siteheader__links { display: flex; flex-wrap: nowrap; justify-content: flex-start; justify-content: safe flex-end; gap: 2px 16px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; scroll-padding-inline: 16px; }
.siteheader__links::-webkit-scrollbar { display: none; }
.siteheader__link { display: inline-flex; align-items: center; flex: 0 0 auto; min-height: 36px; padding: 2px 0; box-sizing: border-box; color: var(--text-color); font-size: 13px; font-weight: 500; line-height: 1.4; text-decoration: none; white-space: nowrap; }
.siteheader__link:hover, .siteheader__link[aria-current="location"] { color: var(--primary-color); }
[data-js-section-anchor] { scroll-margin-top: calc(var(--siteheader-height, 0px) + 16px); }
[data-js-section-anchor]:focus { outline: none; }
@media (max-width: 800px) {
  .siteheader__inner { display: grid; grid-template-columns: max-content minmax(0, 1fr) auto auto; grid-template-rows: auto auto auto; min-height: 0; gap: 7px 8px; padding-block: 12px; }
  .siteheader__mobilebrand { display: flex; grid-column: 1 / 3; grid-row: 1; min-width: 0; max-width: 100%; }
  .siteheader .herobanner__brand { flex: 0 1 auto; max-width: 100%; }
  .siteheader .herobanner__logo { width: var(--agency-header-mobile-width, 136px); height: var(--agency-header-mobile-height, 42px); }
  .siteheader .herobanner__languagemenu { grid-column: 4; grid-row: 1; margin: 0; }
  .siteheader .herobanner__reference { display: contents; }
  .siteheader__propertyline { grid-column: 1 / -1; grid-row: 2; display: flex; flex-wrap: wrap; justify-content: flex-start; align-items: flex-start; gap: 4px 8px; min-width: 0; padding-block: 5px; }
  .siteheader .herobanner__ref, .siteheader .herobanner__type { flex: 0 1 auto; max-width: 100%; box-sizing: border-box; text-align: left; }
  .siteheader .herobanner__type { padding-left: 12px; }
  .siteheader .siteheader__address { grid-column: 1 / -1; grid-row: 3; padding-left: 0; border-left: 0; }
  .siteheader .herobanner__status { grid-column: 3; grid-row: 1; justify-self: end; white-space: nowrap; }
  .siteheader__maininner { width: 100%; min-height: 0; padding: 0; }
  .siteheader__nav { position: relative; }
  .siteheader__nav::after { content: ''; position: absolute; inset: 0 0 0 auto; width: 24px; pointer-events: none; background: linear-gradient(to right, transparent, var(--siteheader-surface)); }
  .siteheader__links { flex-wrap: nowrap; justify-content: flex-start; gap: 22px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; padding-inline: calc((100% - var(--layout-width)) / 2); scroll-padding-inline: 16px; }
  .siteheader__links::-webkit-scrollbar { display: none; }
  .siteheader__link { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .siteheader__main { transition: none; }
}

/* Block : Herobanner */
.herobanner__body { grid-row: 1 / span 2; }
@media (max-width: 800px) {
  .herobanner__body { grid-row: 3; }
}

/* Block : PhotoGallery */
.photogallery__grid--fallback { height: auto; grid-auto-rows: 240px; grid-template-rows: none; }
.photogallery__grid--fallback .photogallery__item { display: block; grid-column: auto; grid-row: auto; }
.photogallery__open { position: absolute; right: 16px; bottom: 64px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; max-width: calc(100% - 32px); box-shadow: 0 2px 8px #00000014; }
.photogallery:has(> .photogallery__grid--video) .photogallery__open { position: static; max-width: none; box-shadow: none; }
.photogallery__open svg { width: 18px; height: 18px; fill: currentColor; flex-shrink: 0; }
.photogallery__video { position: relative; min-width: 0; min-height: 0; grid-row: span 2; border-radius: var(--border-radius); overflow: hidden; background: #eceeed; }
.photogallery__video > .photogallery__item { height: 100%; grid-row: auto; }
.photogallery__sound { position: absolute; top: 12px; right: 12px; min-height: 44px; padding: 10px 14px; border: 1px solid #d8dbdd; border-radius: calc(var(--border-radius) * 0.6); color: #292d32; background: #fff; cursor: pointer; }
.photogallery__sound:focus-visible { outline: 3px solid #292d32; outline-offset: -5px; }
.photogallery__grid--video { --mosaic-height: clamp(360px, 33.333333vw, 480px); grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) calc(var(--mosaic-height) * 9 / 16); height: var(--mosaic-height); }
.photogallery__grid--video .photogallery__video { grid-column: 3; grid-row: 1 / span 2; }
.photogallery__grid--video[data-js-count="1"] { grid-template-columns: 1fr; }
.photogallery__grid--video[data-js-count="1"] .photogallery__video { grid-column: 1; grid-row: 1; }
.photogallery__grid--video[data-js-count="2"], .photogallery__grid--video[data-js-count="3"] { grid-template-columns: minmax(0, 1fr) calc(var(--mosaic-height) * 9 / 16); grid-template-rows: repeat(2, minmax(0, 1fr)); }
.photogallery__grid--video[data-js-count="2"] .photogallery__video, .photogallery__grid--video[data-js-count="3"] .photogallery__video { grid-column: 2; grid-row: 1 / span 2; }
.photogallery__grid--video[data-js-count="2"] > .photogallery__item { grid-row: 1 / span 2; }
@media (min-width: 601px) and (max-width: 800px) {
  .photogallery__grid--video { --mosaic-height: clamp(340px, 52vw, 416px); }
}
.photogallery__grid[data-js-count="1"] { grid-template-rows: 1fr; }
.photogallery__grid--fallback .photogallery__video { grid-row: auto; }
@media (max-width: 600px) {
  .photogallery__grid[data-js-count] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .photogallery__grid[data-js-count="1"] { grid-template-columns: 1fr; }
  .photogallery__grid[data-js-count="2"] { grid-template-columns: 1fr; }
  .photogallery__grid[data-js-count="4"] .photogallery__item:nth-child(3) { grid-column: auto; }
  .photogallery__grid--video[data-js-count] { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: minmax(0, 2.3fr) minmax(0, 1fr); height: 400px; }
  .photogallery__grid--video[data-js-count] .photogallery__video { grid-column: 1 / -1; grid-row: 1; }
  .photogallery__grid--video[data-js-count="1"] { grid-template-rows: 1fr; height: 360px; }
  .photogallery__grid--video[data-js-count="2"] > .photogallery__item { grid-row: 2; grid-column: 1 / -1; }
  .photogallery__open { position: static; width: 100%; max-width: none; box-shadow: none; }
  .photogallery__grid--fallback { grid-template-rows: none; height: auto; }
}
/* The same media nodes and lightbox; only the mobile mosaic changes. */
@media (max-width: 600px) {
  [data-gallery-layout="video-2"] .photogallery__grid--video[data-js-count] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(3, minmax(0, 1fr));
    height: auto;
  }
  [data-gallery-layout="video-2"] .photogallery__grid--video[data-js-preview-photos="1"] { grid-template-rows: minmax(0, 1fr); }
  [data-gallery-layout="video-2"] .photogallery__grid--video[data-js-preview-photos="2"] { grid-template-rows: repeat(2, minmax(0, 1fr)); }
  [data-gallery-layout="video-2"] .photogallery__grid--video[data-js-count][data-js-preview-photos="0"] { grid-template-columns: minmax(0, 1fr); }
  [data-gallery-layout="video-2"] .photogallery__grid--video[data-js-count] .photogallery__video {
    grid-column: 1;
    grid-row: 1 / -1;
    aspect-ratio: 9 / 16;
  }
  [data-gallery-layout="video-2"] .photogallery__grid--video[data-js-count] > .photogallery__item {
    display: none;
    grid-column: 2;
    grid-row: auto;
  }
  [data-gallery-layout="video-2"] .photogallery__grid--video[data-js-count] > [data-js-preview-photo] { display: block; }
  [data-gallery-layout="video-2"] .photogallery__grid--video[data-js-count] > .photogallery__item > img,
  [data-gallery-layout="video-2"] .photogallery__video > video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
  [data-gallery-layout="video-2"] .photogallery__expand { left: 8px; bottom: 8px; max-width: calc(100% - 16px); min-height: 44px; padding: 8px; }
  [data-gallery-layout="video-2"] .photogallery__sound { top: 8px; right: 8px; width: 44px; height: 44px; min-width: 44px; }
  [data-gallery-layout="video-2"] .photogallery__play { top: 60px; left: 8px; max-width: calc(100% - 16px); padding: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .siteheader *, .photogallery * { transition: none; animation: none; }
}

/* Block : PropertyOverview */
.propertyoverview { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); column-gap: clamp(32px, 5vw, 80px); row-gap: 28px; width: var(--layout-width); max-width: var(--layout-max); margin: 0 auto 72px; color: #292d32; align-items: start; }
.propertyoverview .herobanner { display: block; grid-column: 1; background: none; min-width: 0; }
.propertyoverview .herobanner__body { padding: 0; height: auto; }
.propertyoverview__status { margin: 0 0 14px; }
.propertyoverview .herobanner__title { margin: 0 0 14px; color: var(--text-color); font-size: clamp(28px, 2.6vw, 42px); line-height: 1.18; font-weight: 650; overflow-wrap: anywhere; text-align: left; }
.propertyoverview .herobanner__location { justify-content: flex-start; margin: 0; color: var(--text-color); font-size: 16px; line-height: 1.6; }
.propertyoverview .herobanner__metas { display: block; margin-top: 20px; }
.propertyoverview .herobanner__peb { width: 130px; min-width: 0; max-width: 100%; height: auto; }
.propertyoverview .importantsinfosbar { grid-column: 1; display: block; height: auto; padding: 0; background: none; backdrop-filter: none; box-shadow: none; min-width: 0; }
.propertyoverview .importantsinfosbar__features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; font-size: 16px; }
.propertyoverview .importantsinfosbar__feature { justify-content: flex-start; gap: 14px; padding: 18px 0; border: 0; border-bottom: 1px solid #e5e8e6; min-width: 0; }
.propertyoverview .importantsinfosbar__icon { width: 24px; height: 24px; flex: 0 0 24px; color: var(--primary-color); }
.propertyoverview__fact { display: grid; gap: 6px; min-width: 0; }
.propertyoverview__label { font-size: 13px; color: #707773; }
.propertyoverview .importantsinfosbar__value { color: var(--text-color); font-size: 20px; line-height: 1.3; font-weight: 600; white-space: normal; overflow-wrap: anywhere; }
.propertyoverview .askvisit { grid-column: 2; grid-row: 1 / span 3; padding: clamp(22px, 2.5vw, 36px); border: 1px solid #e0e5e2; border-radius: calc(var(--border-radius) * 1.2); background: #fff; min-width: 0; }
.propertyoverview .importantsinfosbar__desktopprice { display: block; margin: 0 0 28px; padding-bottom: 24px; border-bottom: 1px solid #e5e8e6; text-align: left; }
.propertyoverview .importantsinfosbar__desktoppricelabel { font-size: 14px; color: var(--text-color); margin-bottom: 12px; }
.propertyoverview .importantsinfosbar__desktoppricevalue { font-size: clamp(28px, 3vw, 42px); line-height: 1.2; color: var(--text-color); font-weight: 700; white-space: normal; overflow-wrap: anywhere; }
.propertyoverview .importantsinfosbar__desktoppricecurrency { color: var(--primary-color); }
.propertyoverview .askvisit__inner { display: flex; flex-direction: column; align-items: stretch; gap: 18px; text-align: left; }
.propertyoverview .askvisit__text { color: var(--primary-color); font-size: 17px; font-weight: 600; }
.propertyoverview .askvisit__button { display: flex; align-items: center; justify-content: center; padding: 14px 18px; min-height: 48px; box-sizing: border-box; border-radius: calc(var(--border-radius) * 0.6); color: var(--header-ink, #fff); background: var(--primary-color); font-size: 18px; line-height: 1.4; overflow-wrap: anywhere; }
.propertyoverview .askvisit__button:hover, .propertyoverview .askvisit__button:focus { background: color-mix(in srgb, var(--primary-color) 75%, #000); color: #fff; }
.propertyoverview .descriptivetext { grid-column: 1; width: 100%; max-width: none; margin: 0; padding: 0; color: var(--text-color); line-height: 1.8; min-width: 0; overflow-wrap: anywhere; }
[data-js-property-description] { display: flow-root; transition: height 300ms ease-out; overflow-anchor: none; }
.propertyoverview__description--collapsed { overflow: hidden; -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 60px), transparent 100%); mask-image: linear-gradient(to bottom, #000 calc(100% - 60px), transparent 100%); }
.propertyoverview__description--animating { overflow: hidden; }
@media (prefers-reduced-motion: reduce) {
  [data-js-property-description] { transition: none; }
}
.propertyoverview__more { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; margin-top: 8px; padding: 0 2px; border: 0; border-radius: var(--border-radius); background: none; color: var(--primary-color); cursor: pointer; font: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; transition: color 200ms ease; overflow-anchor: none; }
.propertyoverview__more::after { content: ""; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); }
.propertyoverview__more[aria-expanded="true"]::after { transform: rotate(225deg); }
.propertyoverview__more:hover { color: color-mix(in srgb, var(--primary-color) 75%, #000); }
.propertyoverview__more[hidden] { display: none; }
.propertyoverview a:focus-visible, .propertyoverview button:focus-visible { outline: 3px solid #292d32; outline-offset: 4px; }
@media (max-width: 800px) {
  .propertyoverview { grid-template-columns: minmax(0, 1fr); gap: 24px; margin-bottom: 48px; }
  .propertyoverview .herobanner, .propertyoverview .importantsinfosbar, .propertyoverview .askvisit, .propertyoverview .descriptivetext { grid-column: 1; grid-row: auto; }
  .propertyoverview .askvisit { order: 2; }
  .propertyoverview .descriptivetext { order: 3; }
  .propertyoverview .herobanner__location { font-size: 14px; }
  .propertyoverview .importantsinfosbar__features { gap: 0 16px; }
  .propertyoverview .importantsinfosbar__feature { gap: 10px; }
}

/* Block : PhotoGalleryVideo */
.photogallery__video > video, .photogallery__video > iframe { display: block; width: 100%; height: 100%; border: 0; object-fit: cover; object-position: center; }
.photogallery__play { position: absolute; left: 12px; top: 12px; min-height: 44px; padding: 10px 14px; border: 1px solid #d8dbdd; border-radius: calc(var(--border-radius) * 0.6); color: #292d32; background: #fff; cursor: pointer; }
.photogallery__play[hidden] { display: none; }
.photogallery__video .photogallery__item--preview { position: absolute; inset: 0; z-index: 0; }
.photogallery__video > video, .photogallery__video > iframe { position: relative; z-index: 1; }
.photogallery__video > button { z-index: 2; }
.photogallery__video > .photogallery__videotrigger { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: pointer; }
.photogallery__videotrigger:focus-visible { outline: 3px solid #fff; outline-offset: -4px; }

.photogallery__video > video[hidden] { display: none; }

/* Block : PropertyOverview */
.propertyoverview .importantsinfosbar__feature[hidden] { display: none; }
.propertyoverview .askvisit__button:focus-visible { background: color-mix(in srgb, var(--primary-color) 75%, #000); color: #fff; }

/* Block : PhotoGallery */
 .photogallery__expand { display: inline-flex; align-items: center; justify-content: center; gap: 8px; max-width: calc(100% - 24px); font-size: 13px; }
.photogallery__expand svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; flex-shrink: 0; }
.photogallery__sound { font-size: 12px; padding: 8px 12px; }
.photogallery__play:focus-visible { outline: 3px solid #292d32; outline-offset: -5px; }

/* Block : PhotoGallery */
.photogallery__grid[hidden] { display: none; }
@media (max-width: 600px) {
  .photogallery__counts { gap: 10px 14px; font-size: 12px; }
  .photogallery__count { gap: 6px; }
  .photogallery__count svg { width: 18px; height: 18px; }
}

/* Block : PropertyOverview */
@media (min-width: 1200px) {
  .propertyoverview .askvisit { position: sticky; top: calc(var(--siteheader-height, 0px) + 24px); grid-row: 1 / span 3; align-self: start; }
}

/* Block : AskVisit */
.propertyoverview .askvisit__email { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; margin-top: -10px; color: var(--text-color); font-size: 14px; line-height: 1.5; text-decoration-thickness: 1px; text-underline-offset: 3px; overflow-wrap: anywhere; }
.propertyoverview .askvisit__email:hover { color: color-mix(in srgb, var(--primary-color) 75%, #000); }
.propertyoverview .askvisit__email[hidden] { display: none; }

/* Block : PropertyStatus */
.siteheader .herobanner__status, .propertyoverview__status { display: inline-flex; align-items: center; padding: 5px 10px; border: 0; border-radius: var(--border-radius); background: var(--primary-color); color: #fff; font-family: inherit; font-size: 13px; font-weight: 500; line-height: 1.5; }
@media (max-width: 600px) {
  .siteheader .herobanner__status { grid-column: 3; grid-row: 1; justify-self: end; white-space: nowrap; }
}
.propertystatus--pulse { gap: 6px; }
.propertystatus--pulse::before { content: ""; display: block; flex: 0 0 6px; width: 6px; height: 6px; border-radius: 50%; background: #fff; animation: propertyStatusPulse 2.5s ease-out infinite; }
@keyframes propertyStatusPulse {
  0% { box-shadow: 0 0 0 0 rgb(255 255 255 / 55%); }
  70%, 100% { box-shadow: 0 0 0 5px rgb(255 255 255 / 0%); }
}
@media (prefers-reduced-motion: reduce) {
  .propertystatus--pulse::before { animation: none; box-shadow: none; }
}

/* Block : PropertyActions */
.propertyoverview .askvisit__button, .propertyoverview .askvisit__email, .photogallery__open, .photogallery__expand, .photogallery__sound, .photogallery__play { display: inline-flex; align-items: center; justify-content: center; gap: 8px; box-sizing: border-box; min-height: 48px; padding: 12px 16px; border: 1px solid #d8dbdd; border-radius: calc(var(--border-radius) * 0.6); font-family: inherit; font-size: 14px; font-weight: 600; line-height: 1.4; text-align: center; text-decoration: none; cursor: pointer; }
.propertyoverview .askvisit__button { border-color: transparent; }
.propertyoverview .askvisit__email { margin-top: -10px; background: #fff; color: var(--text-color); border-color: var(--primary-color); }
.propertyoverview .askvisit__email:hover, .photogallery__open:hover, .photogallery__expand:hover, .photogallery__sound:hover, .photogallery__play:hover { border-color: color-mix(in srgb, var(--primary-color) 75%, #000); background: #f5f7f5; }
.propertyoverview .askvisit__button:focus-visible, .propertyoverview .askvisit__email:focus-visible, .photogallery__open:focus-visible, .photogallery__expand:focus-visible, .photogallery__sound:focus-visible, .photogallery__play:focus-visible { outline: 3px solid color-mix(in srgb, var(--primary-color) 75%, #000); outline-offset: 3px; }
.propertyoverview .askvisit__email[hidden], .photogallery__play[hidden] { display: none; }

/* Block : ContactActions */
.propertyoverview .askvisit__button, .propertyoverview .askvisit__email, .contact__link { display: inline-flex; justify-content: center; align-items: center; gap: 10px; min-height: 44px; min-width: 0; max-width: 100%; padding: 10px 12px; box-sizing: border-box; border: 1px solid var(--primary-color); border-radius: calc(var(--border-radius) * 0.8); font-family: inherit; font-size: 14px; font-weight: 600; line-height: 1.5; text-align: center; text-decoration: none; transition: background-color .15s, border-color .15s, color .15s; }
.propertyoverview .askvisit__button, .contact__link--phone { background: var(--primary-color); color: var(--header-ink, #fff); }
.propertyoverview .askvisit__email, .contact__link--email { background: #fff; color: var(--primary-color); }
.propertyoverview .askvisit__email { margin-top: 0; }
.propertyoverview .askvisit__button:hover, .contact__link--phone:hover { background: color-mix(in srgb, var(--primary-color) 75%, #000); border-color: color-mix(in srgb, var(--primary-color) 75%, #000); color: #fff; }
.propertyoverview .askvisit__email:hover, .contact__link--email:hover { background: color-mix(in srgb, var(--primary-color) 6%, #fff); border-color: color-mix(in srgb, var(--primary-color) 75%, #000); color: color-mix(in srgb, var(--primary-color) 75%, #000); }
.propertyoverview .askvisit__button:focus-visible, .propertyoverview .askvisit__email:focus-visible, .contact__link:focus-visible { outline: 3px solid color-mix(in srgb, var(--primary-color) 75%, #000); outline-offset: 3px; }
.propertyoverview .askvisit__email[hidden] { display: none; }
@media (prefers-reduced-motion: reduce) {
  .propertyoverview .askvisit__button, .propertyoverview .askvisit__email, .contact__link { transition: none; }
}

/* Block : MicroInteractions */
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .photogallery__grid > .photogallery__item:not([data-video]):not([data-poster]):not(:has(video)) > img { transition: transform 350ms ease-out; }
  .photogallery__grid > .photogallery__item:not([data-video]):not([data-poster]):not(:has(video)):hover > img { transform: scale(1.02); }
}
.booklet__button, .propertyoverview .askvisit__button, .propertyoverview .askvisit__email, .contact__link, .photogallery__open, .photogallery__expand, .photogallery__sound, .photogallery__play { transition: background-color 200ms ease, border-color 200ms ease, color 200ms ease, filter 200ms ease; }
.booklet__button:active, .propertyoverview .askvisit__button:active, .propertyoverview .askvisit__email:active, .contact__link:active, .photogallery__open:active, .photogallery__expand:active, .photogallery__sound:active, .photogallery__play:active { filter: brightness(.94); transition-duration: 0s; }
.siteheader__main { transition: box-shadow 200ms ease; }
.siteheader__main[data-js-scrolled] { box-shadow: 0 4px 12px color-mix(in srgb, var(--text-color) 5%, transparent); }
.booklet[data-js-booklet-revealed] { animation: bookletEntrance 450ms ease-out; }
@keyframes bookletEntrance {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
.mapgallery__roomtab, .mapgallery__floortab { transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, box-shadow 180ms ease; }
.mapgallery__map [data-js-mapgallery-room] { transition: fill 180ms ease; }
@media (prefers-reduced-motion: reduce) {
  .booklet, .siteheader__main, .booklet__button, .propertyoverview .askvisit__button, .propertyoverview .askvisit__email, .contact__link, .photogallery__open, .photogallery__expand, .photogallery__sound, .photogallery__play, .mapgallery__roomtab, .mapgallery__floortab, .mapgallery__map [data-js-mapgallery-room] { animation: none; transition: none; }
  .photogallery__grid > .photogallery__item > img { transform: none; transition: none; }
}

/* Block : ScrollReveal */
[data-js-scroll-state="pending"] { opacity: 0; transform: translateY(35px); }
[data-js-scroll-entering] { animation: sectionEntrance 850ms cubic-bezier(0.22, 1, 0.36, 1) var(--reveal-delay, 0ms) backwards; }
@keyframes sectionEntrance {
  from { opacity: 0; transform: translateY(35px); }
  to { opacity: 1; transform: translateY(0); }
}
[data-js-scroll-reveal]:focus-within, [data-js-scroll-reveal]:target { opacity: 1; transform: none; animation: none; }
@media (prefers-reduced-motion: reduce) {
  [data-js-scroll-reveal] { opacity: 1; transform: none; animation: none; }
}

/* Block : BackgroundFinish */
.sitecontent { position: relative; isolation: isolate; overflow-x: clip; }
.technical { position: relative; }
.sitecontent::before, .technical::before {
  content: ""; position: absolute; pointer-events: none; z-index: -1;
  background-repeat: no-repeat;
}
.sitecontent::before {
  inset: 0 0 auto; height: 1300px;
  background-image: radial-gradient(ellipse 75% 50% at 80% 45%, color-mix(in srgb, var(--primary-color-dark) 12%, #fff) 0%, color-mix(in srgb, var(--primary-color-dark) 12%, #fff) 12%, transparent 100%);
}
.technical::before {
  top: -320px; bottom: -320px; left: 50%; width: 100vw; transform: translateX(-50%);
  background-image: radial-gradient(ellipse 75% 50% at 12% 50%, color-mix(in srgb, var(--primary-color-dark) 8%, #fff) 0%, color-mix(in srgb, var(--primary-color-dark) 8%, #fff) 12%, transparent 100%);
}

/* Block : PropertyLightbox */
.propertylightbox .lg-img-wrap {
    padding: 20px;
}
.propertylightbox .lg-image {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

/* Block : MediaCommands */
.photogallery__open, .photogallery__expand, .photogallery__sound {
  min-height: 40px; padding: 9px 14px; border: 1px solid #d8dbdd; border-radius: calc(var(--border-radius) * 2);
  background: rgb(255 255 255 / 94%); color: #292d32; font-size: 13px; font-weight: 500; line-height: 1.5;
}
.photogallery__sound { border-radius: 50%; width: 40px; height: 40px; min-width: 40px; padding: 0; }
.photogallery__open svg, .photogallery__expand svg, .photogallery__sound svg {
  width: 18px; height: 18px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round;
}
.photogallery__open:hover, .photogallery__expand:hover, .photogallery__sound:hover { border-color: #8c949c; background: #fff; }
.photogallery__open:focus-visible, .photogallery__expand:focus-visible, .photogallery__sound:focus-visible { outline: 3px solid #292d32; outline-offset: 3px; }
.photogallery__counts { align-items: center; gap: 8px; }
.photogallery__count { gap: 5px; }
.photogallery__count svg { width: 16px; height: 16px; color: currentColor; }
.photogallery__separator { color: #525963; }
@media (max-width: 800px), (pointer: coarse) {
  .photogallery__open, .photogallery__expand, .photogallery__sound { min-height: 44px; }
  .photogallery__sound { width: 44px; height: 44px; min-width: 44px; }
}

/* LightGallery declares its own system stack on .lg-container after this file; its "lg" icon font is untouched. */
body .lg-container { font-family: var(--font-family); }

/* Block : VideoViewer */
.lg-container[data-js-video-active] .lg-backdrop { background: #202422; overflow: hidden; }
.lg-container[data-js-video-active] .lg-backdrop::before {
  content: ""; position: absolute; inset: -40px; pointer-events: none;
  background-image: var(--video-backdrop-image, none); background-position: center;
  background-size: cover; filter: blur(28px) brightness(.55); opacity: .8;
}
.propertylightbox--media .lg-video-cont:has(> video) { max-width: calc(100% - 32px); max-height: calc(100% - 32px); }
.propertylightbox--media .lg-video-object { width: 100%; height: 100%; object-fit: contain; object-position: center; }
.propertylightbox--media.lg-show .lg-outer:not(.lg-closing) .lg-toolbar { opacity: 1; transform: none; padding: env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left); box-sizing: border-box; }
.propertylightbox--media .lg-toolbar .lg-close { min-width: 44px; min-height: 44px; color: #fff; }

/* Block : PropertyTitleReveal */
[data-js-title-pending] { opacity: 0; }
[data-js-title-entering] { animation: propertyTitleFade 900ms ease-out both; }
@keyframes propertyTitleFade {
  from { opacity: 0; }
  to { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  [data-js-title-reveal] { opacity: 1; animation: none; }
}

/* Block : RoomSheet */
.roomsheet { position: fixed; inset: auto 0 0; margin: 0 auto; width: 100%; max-width: 100%; height: 88vh; height: 88dvh; max-height: 90vh; max-height: 90dvh; padding: 0; border: 0; border-radius: calc(var(--border-radius) * 2) calc(var(--border-radius) * 2) 0 0; background: #fff; color: var(--text-color); box-shadow: 0 -8px 32px #0000001a; box-sizing: border-box; overflow: hidden; transform: translateY(100%); transition: transform 320ms cubic-bezier(.22,1,.36,1); }
.roomsheet:not([open]) { display: none; }
.roomsheet[open] { display: flex; flex-direction: column; }
.roomsheet[data-js-sheet-visible] { transform: none; }
.roomsheet::backdrop { background: rgb(0 0 0 / 18%); }
.roomsheet__handle { flex-shrink: 0; width: 36px; height: 4px; border-radius: 4px; background: #d8ddda; margin: 10px auto 4px; }
.roomsheet__header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 4px max(16px, env(safe-area-inset-right)) 10px max(16px, env(safe-area-inset-left)); flex-shrink: 0; border-bottom: 1px solid #e1e6e2; }
.roomsheet .mapgallery__roomtitle { margin: 0; font-size: 22px; }
.roomsheet__close { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 44px; height: 44px; padding: 10px; border: 1px solid #e1e6e2; border-radius: 50%; background: #fff; color: var(--text-color); cursor: pointer; }
.roomsheet__close svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.roomsheet__body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 16px max(16px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left)); }
.roomsheet .mapgallery__photos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.roomsheet .mapgallery__roomdata { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.roomsheet button:focus-visible, .roomsheet a:focus-visible { outline: 3px solid #292d32; outline-offset: 2px; }
@media (max-width: 800px) {
  .mapgallery--sheet .mapgallery__roomtitle, .mapgallery--sheet .mapgallery__photos, .mapgallery--sheet .mapgallery__roomdata { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .roomsheet { transition: none; }
}
@media (min-width: 601px) and (max-width: 800px) {
  .roomsheet .mapgallery__photos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Block : RoomViewer */
.roomviewer { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; background: #000; overflow: hidden; }
.roomviewer:not([open]) { display: none; }
.roomviewer::backdrop { background: #000; }
.roomviewer .lg-outer .lg-toolbar { top: 0; padding: env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left); box-sizing: border-box; opacity: 1; transform: none; background: rgb(0 0 0 / 65%); }
.roomviewer .lg-toolbar .lg-close { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; color: #fff; }
.roomviewer .lg-toolbar .lg-close::after { content: none; }
.roomviewer .lg-close svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; }
.roomviewer .lg-components { padding-bottom: env(safe-area-inset-bottom); }
.roomviewer button:focus-visible { outline: 2px solid #fff; outline-offset: -4px; }

/* Block : TemplateData */
[data-js-template-field][hidden], .propertyoverview .importantsinfosbar__feature[hidden] { display: none; }
.herobanner__title, .siteheader__address, .herobanner__ref { min-width: 0; overflow-wrap: anywhere; }
.siteheader .siteheader__address { text-align: left; }
[data-js-adaptive-stats="1"] { grid-template-columns: minmax(0, 1fr); }
[data-js-adaptive-stats="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.energy__chart:only-child, .energy__consumption:only-child { grid-column: 1 / -1; border: 0; }
.contact [aria-disabled="true"], .askvisit [aria-disabled="true"] { cursor: default; }
@media (max-width: 600px) {
  [data-js-adaptive-stats] { grid-template-columns: minmax(0, 1fr); }
}
.siteheader .herobanner__logo[hidden], .footer .footer__logo[hidden], .propertyoverview .importantsinfosbar__desktopprice[hidden], .propertyoverview .askvisit [hidden], .contact .contact__link[hidden], .propertyoverview .herobanner__title[hidden], .propertyoverview .herobanner__location[hidden] { display: none; }
.technical__cards[data-js-single-card] { column-count: 1; grid-template-columns: minmax(0, 1fr); }
.siteheader .herobanner__ref[hidden], .siteheader .herobanner__type[hidden], .siteheader .herobanner__status[hidden] { display: none; }

/* Shared dynamic quick facts: 1–6 visible items, at most three columns. */
.propertyoverview .importantsinfosbar__features { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 0 24px; font-size: 16px; }
.propertyoverview .importantsinfosbar__features[hidden] { display: none; }
.propertyoverview .importantsinfosbar__feature { flex: 1 1 calc((100% - 24px) / 2); min-width: min(140px, 100%); max-width: 100%; box-sizing: border-box; }
.propertyoverview .propertyoverview__label { overflow-wrap: anywhere; }
@media (min-width: 1200px) {
  .propertyoverview .importantsinfosbar__features:is([data-fact-count="3"], [data-fact-count="5"], [data-fact-count="6"]) > .importantsinfosbar__feature { flex-basis: calc((100% - 48px) / 3); }
}
@media (max-width: 800px) {
  .propertyoverview .importantsinfosbar__features { column-gap: 16px; }
  .propertyoverview .importantsinfosbar__feature { flex-basis: calc((100% - 16px) / 2); }
}

/* Shared room metadata in both LightGallery entry points. */
.propertylightbox .lg-sub-html { padding: 8px 16px; max-height: 35vh; max-height: 35dvh; overflow-y: auto; overscroll-behavior: contain; }
.propertylightbox .roomcaption { max-width: 900px; margin: 0 auto; color: #fff; }
.propertylightbox .roomcaption__title { margin: 0 0 8px; font-size: 18px; font-weight: 600; line-height: 1.3; }
.propertylightbox .roomcaption__data { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.propertylightbox .mapgallery__datacard { display: block; min-height: 0; max-width: 100%; padding: 6px 9px; text-align: left; background: #222; border-color: #444; }
.propertylightbox .mapgallery__dataicon { display: none; }
.propertylightbox .mapgallery__datalabel { color: #bbb; font-size: 11px; }
.propertylightbox .mapgallery__datavalue, .propertylightbox .mapgallery__datavalue small { color: #fff; font-size: 12px; }

.propertylightbox .roomcaption__description { margin: 6px 0 0; color: #ccc; font-size: 12px; }

/* Phase 25: the plan floats over LightGallery without resizing its image. */
.lbplan { position: absolute; right: max(16px, env(safe-area-inset-right)); z-index: 1083; width: 164px; }
.lbplan__trigger { display: block; width: 100%; padding: 10px; border: 1px solid #666; border-radius: var(--border-radius); background: #202020; color: #fff; cursor: pointer; text-align: left; font: inherit; font-size: 12px; }
.lbplan__desktop { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 7px; }
.lbplan__mobile { display: none; }
.lbplan__mini { display: block; max-height: 160px; overflow: hidden; pointer-events: none; }
.lbplan__svg svg { display: block; width: 100%; height: auto; background: #fff; }
.lbplan__mini svg { max-height: 160px; }
.lbplan__svg .room_element.selected { fill: var(--primary-color); }
.lbplan__svg [role="button"]:focus:not(:focus-visible) { outline: none; }
.lbplan__svg [role="button"]:focus-visible { outline: 2px solid var(--primary-color); }
.lbplan__overlay { position: absolute; inset: 0; z-index: 1090; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgb(0 0 0 / 70%); box-sizing: border-box; animation: lbplan-fade 220ms ease; }
.lbplan__overlay[hidden] { display: none; }
.lbplan__panel { display: flex; flex-direction: column; width: min(660px, 100%); max-height: calc(100% - 24px); border: 1px solid #666; border-radius: var(--border-radius); background: #202020; color: #fff; overflow: hidden; }
.lbplan__heading { display: flex; flex-shrink: 0; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px; border-bottom: 1px solid #555; }
.lbplan__heading h2 { margin: 0; color: #fff; font-size: 17px; }
.lbplan__close { width: 44px; height: 44px; border: 0; background: transparent; color: #fff; font-size: 30px; cursor: pointer; }
.lbplan__body { padding: 16px; overflow-y: auto; overscroll-behavior: contain; }
.lbplan__floors, .lbplan__rooms { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.lbplan__rooms { margin: 12px 0 0; }
.lbplan__floors button, .lbplan__rooms button { min-height: 40px; padding: 8px 12px; border: 1px solid #777; border-radius: var(--border-radius); background: #303030; color: #fff; font: inherit; font-size: 13px; cursor: pointer; }
.lbplan__floors [aria-pressed="true"], .lbplan__rooms [aria-pressed="true"] { border-color: var(--primary-color); }
.lbplan__body .lbplan__svg { max-width: 440px; margin: auto; }
.lbplan button:focus-visible, .lbplan__overlay button:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.lbplan__empty { display: none; }
.lbplan--empty .lg-inner, .lbplan--empty .lg-components, .lbplan--empty .lg-prev, .lbplan--empty .lg-next, .lbplan--empty .lg-counter, .lbplan--empty .lg-zoom-in, .lbplan--empty .lg-zoom-out, .lbplan--empty .lg-actual-size { visibility: hidden; }
.lbplan--empty .lbplan__empty { display: block; position: absolute; z-index: 1055; inset: 70px 20px 80px; overflow: auto; color: #ddd; text-align: center; align-content: center; }
.lbplan__empty .roomcaption { max-width: 700px; margin: auto; }
@keyframes lbplan-fade { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 800px) {
  .lbplan { right: max(10px, env(safe-area-inset-right)); width: auto; }
  .lbplan__desktop, .lbplan__mini { display: none; }
  .lbplan__mobile { display: block; }
  .lbplan__trigger { min-height: 40px; padding: 9px 12px; }
  .lbplan__overlay { align-items: flex-end; padding: 0; }
  .lbplan__panel { width: 100%; max-height: min(88%, 850px); border-radius: var(--border-radius) var(--border-radius) 0 0; padding-bottom: env(safe-area-inset-bottom); }
  .lbplan__body { padding-bottom: max(16px, env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) { .lbplan__overlay { animation: none; } }

/* Phase 26: full dynamic viewBox in the same mini-plan on desktop and mobile. */
.lbplan__mini { max-height: none; overflow: visible; }
.lbplan__mini .lbplan__svg { height: var(--lbplan-mini-height, 160px); }
.lbplan__mini svg { width: 100%; height: 100%; max-height: none; object-fit: contain; }
@media (max-width: 800px) {
  .lbplan { width: clamp(100px, 28vw, 126px); }
  .lbplan__trigger { padding: 6px; background: rgb(255 255 255 / 96%); color: #252b28; border-color: #d8dbdd; }
  .lbplan__desktop { display: flex; margin-bottom: 4px; font-size: 10px; }
  .lbplan__mini { display: block; }
  .lbplan__trigger:focus-visible { outline: 2px solid var(--primary-color); outline-offset: 3px; }
  .propertylightbox .roomcaption__data { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; align-items: stretch; text-align: left; }
  .propertylightbox .roomcaption__data > .mapgallery__datacard { min-width: 0; width: 100%; box-sizing: border-box; text-align: left; }
}
@media (max-width: 300px) {
  .propertylightbox .roomcaption__data { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 800px) { .lbplan[data-compact] .lbplan__desktop { display: none; } }

/* Mobile UI refinement: the entire plan thumbnail remains the existing button. */
@media (max-width: 800px) {
  .lbplan { width: clamp(75px, 22vw, 90px); }
  .lbplan__desktop { display: none; }
  .lbplan__trigger { min-width: 44px; min-height: 44px; padding: 1px; border: 0; background: #fff; }
  .lbplan__mini .lbplan__svg { height: auto; }
  .lbplan__mini svg { height: auto; max-height: min(100px, var(--lbplan-mini-height, 100px)); }
}

/* Phase 28: on mobile the same mini-plan leads the thumbnail row instead of floating over the photo. */
@media (max-width: 800px) {
  .propertylightbox .lg-components { display: grid; grid-template-columns: auto minmax(0, 1fr); }
  .propertylightbox .lg-components > * { grid-column: 1 / -1; min-width: 0; }
  .propertylightbox .lg-components > .lbplan { grid-column: 1; position: static; display: flex; align-items: center; width: auto; box-sizing: border-box; padding: 0 8px 0 max(8px, env(safe-area-inset-left)); background: #0d0a0a; }
  .propertylightbox .lg-components > .lbplan + .lg-thumb-outer { grid-column: 2; }
  /* A single photo keeps its thumbnail beside the plan, so LightGallery reserves the bar height. */
  .propertylightbox .lg-outer.lg-single-item .lg-components > .lbplan + .lg-thumb-outer { display: block; }
  .propertylightbox .lg-components > .lbplan .lbplan__trigger { display: flex; width: clamp(65px, 18vw, 75px); height: 80px; }
  .propertylightbox .lg-components > .lbplan .lbplan__mini, .propertylightbox .lg-components > .lbplan .lbplan__mini .lbplan__svg { width: 100%; height: 100%; }
  .propertylightbox .lg-components > .lbplan .lbplan__mini svg { width: 100%; height: 100%; max-height: none; }
  /* Few photos stay left-aligned next to the plan; reduced motion scrolls the strip natively. */
  .propertylightbox .lg-outer .lg-thumb-outer.lg-thumb-align-middle { text-align: left; }
  .propertylightbox .lg-outer:not(.lg-animate-thumb) .lg-thumb-outer { overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; }
  .propertylightbox .lg-outer:not(.lg-animate-thumb) .lg-thumb { display: flex; width: max-content; }
  .propertylightbox .lbplan--empty .lg-components > .lbplan { visibility: visible; }
  /* LightGallery draws no thumbnail border below 768 px: mark the active photo explicitly. */
  .propertylightbox .lg-thumb-item { opacity: .6; transition: opacity .2s ease; }
  .propertylightbox .lg-thumb-item.active { opacity: 1; outline: 2px solid var(--primary-color); outline-offset: -2px; }
}

/* Alternative media structures: same source links and lightbox, no photo copies. */
.photogallery__slidercontrols[hidden] { display: none; }
[data-gallery-layout="video-3"] .photogallery__grid--video[data-js-count],
[data-gallery-layout="video-4"] .photogallery__grid--video[data-js-count] {
  grid-template-columns: calc(var(--mosaic-height) * 9 / 16) minmax(0, 1fr) minmax(0, 1fr);
}
[data-gallery-layout="video-3"] .photogallery__grid--video[data-js-count] .photogallery__video { grid-column: 1; grid-row: 1 / -1; }
[data-gallery-layout="video-3"] .photogallery__grid--video[data-js-count] > .photogallery__item { grid-column: auto; grid-row: auto; }
[data-gallery-layout="video-4"] .photogallery__grid--video[data-js-count] { grid-template-columns: minmax(0, 1fr) calc(var(--mosaic-height) * 9 / 16); grid-template-rows: minmax(0, 1fr); }
[data-gallery-layout="video-4"] .photogallery__grid--video[data-js-count] .photogallery__video { grid-column: 2; grid-row: 1; }
[data-gallery-layout="video-4"] .photogallery__grid--video[data-js-count] > .photogallery__item { display: none; }
[data-gallery-layout="video-4"] .photogallery__grid--video[data-js-count] > [data-js-slider-active] { display: block; grid-column: 1; grid-row: 1; position: relative; height: 100%; }
[data-gallery-layout="video-4"] .photogallery__grid--video[data-js-count] > [data-js-slider-active] img { width: 100%; height: 100%; object-fit: cover; }
.photogallery__slidercontrols { grid-column: 1; grid-row: 1; align-self: end; justify-self: center; z-index: 2; display: flex; gap: 8px; align-items: center; margin: 10px; padding: 3px; border-radius: var(--border-radius); background: #fff; color: var(--text-color); box-shadow: 0 1px 8px #0002; }
.photogallery__slidercontrols button { width: 44px; height: 44px; border: 1px solid #ddd; border-radius: calc(var(--border-radius) * .6); background: #fff; color: var(--primary-color); font: inherit; font-size: 24px; cursor: pointer; }
.photogallery__slidercontrols button:focus-visible { outline: 2px solid var(--primary-color); outline-offset: 2px; }
[data-gallery-layout="video-3"] .photogallery__grid--video[data-js-count="1"],
[data-gallery-layout="video-4"] .photogallery__grid--video[data-js-count="1"] { grid-template-columns: minmax(0, 1fr); }
[data-gallery-layout="video-4"] .photogallery__grid--video[data-js-count="1"] .photogallery__video { grid-column: 1; }
@media (max-width: 600px) {
  [data-gallery-layout="video-3"] .photogallery__grid--video[data-js-count] { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(3, minmax(0, 1fr)); height: auto; }
  [data-gallery-layout="video-3"] .photogallery__grid--video[data-js-count] .photogallery__video { grid-column: 1; grid-row: 1 / -1; aspect-ratio: 9 / 16; }
  [data-gallery-layout="video-3"] .photogallery__grid--video[data-js-count] > .photogallery__item { display: none; grid-column: 2; grid-row: auto; }
  [data-gallery-layout="video-3"] .photogallery__grid--video[data-js-count] > [data-js-preview-photo] { display: block; }
  [data-gallery-layout="video-3"] .photogallery__grid--video[data-js-count] > .photogallery__item img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  [data-gallery-layout="video-3"] .photogallery__grid--video[data-js-preview-photos="1"] { grid-template-rows: minmax(0, 1fr); }
  [data-gallery-layout="video-3"] .photogallery__grid--video[data-js-preview-photos="2"] { grid-template-rows: repeat(2, minmax(0, 1fr)); }
  [data-gallery-layout="video-3"] .photogallery__grid--video[data-js-count="1"] { grid-template-columns: minmax(0, 1fr); }
  [data-gallery-layout="video-4"] .photogallery__grid--video[data-js-count] { grid-template-columns: repeat(2, minmax(0, 1fr)); height: auto; min-height: 260px; }
  [data-gallery-layout="video-4"] .photogallery__grid--video[data-js-count] .photogallery__video { aspect-ratio: 9 / 16; }
  .photogallery__slidercontrols { gap: 0; margin: 4px; font-size: 11px; }
  .photogallery__slidercontrols button { width: 40px; }
}

/* Photo-only mosaic: one large photo on the left, four regular tiles on the right. */
[data-gallery-layout="photos"] .photogallery__grid[data-js-count="5"] {
  grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
}
[data-gallery-layout="photos"] .photogallery__grid[data-js-count="5"] > .photogallery__item {
  display: block; grid-column: auto; grid-row: auto;
}
[data-gallery-layout="photos"] .photogallery__grid[data-js-count="5"] > .photogallery__item:first-child { grid-column: 1; grid-row: 1 / span 2; }
[data-gallery-layout="photos"] .photogallery__grid[data-js-count="5"] > .photogallery__item[hidden] { display: none; }
/* Explicit hidden states take precedence over the toolbar's flex declarations. */
.photogallery__counts > [hidden], .photogallery__sliderpause[hidden] { display: none; }
.photogallery__slidercontrols { gap: 4px; padding: 3px; max-width: calc(100% - 12px); box-sizing: border-box; border: 1px solid #d8dbdd; background: rgb(255 255 255 / 94%); }
.photogallery__slidercontrols span { min-width: 28px; text-align: center; white-space: nowrap; font-variant-numeric: tabular-nums; font-size: 12px; }
.photogallery__slidercontrols button { flex: 0 0 44px; width: 44px; height: 44px; padding: 0; font-size: 23px; }
.photogallery__sliderpause { grid-column: 1; grid-row: 1; align-self: start; justify-self: end; z-index: 2; margin: 8px; width: 44px; height: 44px; padding: 0; border: 1px solid #d8dbdd; border-radius: calc(var(--border-radius) * 2); background: rgb(255 255 255 / 94%); color: var(--text-color); font: inherit; cursor: pointer; }
.photogallery__sliderpause:focus-visible { outline: 2px solid var(--primary-color); outline-offset: 2px; }
@media (max-width: 600px) {
  [data-gallery-layout="photos"] .photogallery__grid[data-js-count="5"] { height: clamp(260px, 70vw, 360px); gap: 8px; }
  [data-gallery-layout="video-4"] .photogallery__grid--video[data-js-count][data-js-slider-fixed] { grid-template-rows: repeat(2, minmax(0, 1fr)); }
  [data-gallery-layout="video-4"] .photogallery__grid--video[data-js-count][data-js-slider-fixed] .photogallery__video { grid-column: 2; grid-row: 1 / span 2; width: 100%; height: 100%; }
  [data-gallery-layout="video-4"] .photogallery__grid--video[data-js-count][data-js-slider-fixed] > [data-js-slider-active] { grid-column: 1; grid-row: 1; }
  [data-gallery-layout="video-4"] .photogallery__grid--video[data-js-count][data-js-slider-fixed] > [data-js-slider-fixed-photo] { display: block; grid-column: 1; grid-row: 2; position: relative; height: 100%; }
  [data-gallery-layout="video-4"] .photogallery__grid--video[data-js-count] > [data-js-slider-active] img,
  [data-gallery-layout="video-4"] .photogallery__grid--video[data-js-count] > [data-js-slider-fixed-photo] img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .photogallery__slidercontrols { margin: 6px; gap: 0; padding: 0; }
  .photogallery__slidercontrols button { border: 0; background: transparent; }
  .photogallery__sliderpause { margin: 6px; }
}

/* Architectural details: replace the source's pale yellow, keeping walls and geometry intact. */
.mapgallery__map svg [stroke="#ebeb00" i],
.lbplan__svg svg [stroke="#ebeb00" i] { stroke: var(--plan-detail-color, #526d82); }
.mapgallery__map svg [fill="#ebeb00" i],
.lbplan__svg svg [fill="#ebeb00" i] { fill: var(--plan-detail-color, #526d82); }


/* Slider navigation uses the same visual treatment as “Voir la vidéo”. */
.photogallery__slidercontrols {
  height: 44px; min-height: 44px; padding: 0; gap: 0;
  border: 0; border-radius: calc(var(--border-radius) * 2);
  background: rgb(255 255 255 / 94%); color: #292d32;
  box-shadow: inset 0 0 0 1px #d8dbdd;
  font-family: inherit; font-size: 13px; font-weight: 500; line-height: 1.5;
}
.photogallery__slidercontrols button {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; padding: 0; border: 0;
  border-radius: calc(var(--border-radius) * 2); background: transparent;
  color: inherit; font: inherit;
}
.photogallery__slidercontrols span { font: inherit; font-variant-numeric: tabular-nums; }
.photogallery__slidercontrols button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.photogallery__slidercontrols button:hover { background: #292d320a; }
.photogallery__slidercontrols button:focus-visible { outline: 2px solid #292d32; outline-offset: -4px; }

/* Give the desktop lightbox plan enough room to read; keep the mobile thumbnail intact. */
@media (min-width: 801px) {
  .lbplan { width: clamp(210px, 15vw, 260px); }
  .lbplan__mini .lbplan__svg { height: min(300px, 34vh); }
}


/* Seven room characteristics: four cards above three on the desktop plan. */
@media (min-width: 801px) {
  .mapgallery__roomdata { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}


/* Optional agent identity inside the existing price/contact card. */
.askvisit__agent { display: grid; grid-template-columns: 104px minmax(0, 1fr); align-items: center; gap: 16px; margin-bottom: 22px; padding-bottom: 22px; border-bottom: 1px solid #e5e8e6; color: var(--text-color); }
.askvisit__agent[hidden], .askvisit__agent [hidden] { display: none; }
.askvisit__agentportrait { display: grid; place-items: center; width: 104px; height: 128px; overflow: hidden; border-radius: calc(var(--border-radius) * .6); }
.askvisit__agentphoto { grid-area: 1 / 1; display: block; width: 100%; height: 100%; min-height: 0; object-fit: contain; object-position: center bottom; }
.askvisit__agentinitials { grid-area: 1 / 1; display: grid; place-items: center; width: 72px; height: 72px; border-radius: 50%; color: var(--primary-color); background: color-mix(in srgb, var(--primary-color) 10%, #fff); font-size: 22px; font-weight: 600; }
.askvisit__agentidentity { min-width: 0; }
.askvisit__agentname { margin: 0 0 4px; font-size: 18px; font-weight: 700; line-height: 1.3; overflow-wrap: anywhere; }
.askvisit__agenttitle { margin: 0; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
@media (max-width: 400px) {
  .askvisit__agent { grid-template-columns: 88px minmax(0, 1fr); gap: 12px; }
  .askvisit__agentportrait { width: 88px; height: 112px; }
  .askvisit__agentname { font-size: 17px; }
}

/* Block : PropertyFloor and EnergyData */
.propertyoverview__floor { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 14px 0; padding: 12px 14px; border: 1px solid color-mix(in srgb, var(--primary-color) 25%, #fff); border-radius: var(--border-radius); background: #fff; color: var(--text-color); font-size: 15px; line-height: 1.5; }
.propertyoverview__floor[hidden], .propertyoverview__floor [hidden], .energy [hidden] { display: none; }
.propertyoverview__flooricon { width: 24px; height: 24px; color: var(--primary-color); }
.propertyoverview__flooricon svg { display: block; width: 100%; height: 100%; }
.propertyoverview__floor small { font-size: 11px; color: #65716b; }
.energy__data { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 20px 0; }
.energy__datum { min-width: 0; padding: 16px; border: 1px solid #e1e6e2; border-radius: var(--border-radius); }
.energy__datum dt { color: var(--text-color); font-size: 14px; line-height: 1.5; }
.energy__datum dd { margin: 8px 0 0; color: var(--text-color); font-size: 17px; font-weight: 600; overflow-wrap: anywhere; }
.energy__datanote { font-size: 13px; line-height: 1.5; color: #65716b; }
@media (max-width: 600px) { .energy__data { grid-template-columns: minmax(0, 1fr); } }

.energy--structured .energy__essential { display: block; padding: 16px; }
.energy--structured .energy__chart { justify-content: flex-start; border: 0; padding: 0; }
.energy--structured .energy__chartimage { height: 44px; width: auto; max-width: 100%; object-fit: contain; }

/* Block : AgentSpacing */
.propertyoverview .importantsinfosbar__desktopprice { margin-bottom: 14px; padding-bottom: 18px; }
.propertyoverview .askvisit__inner { gap: 14px; }
.propertyoverview .askvisit__agent { align-items: center; margin: 0; padding-bottom: 14px; }
.propertyoverview .askvisit__agentidentity { align-self: center; }

/* Block : FooterLegal */
.footer__disclaimer { margin: 12px 0 18px; font-size: 12px; line-height: 1.75; color: var(--footer-ink, #fff); }
.footer__legal { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 0 0 12px; }
.footer__legal a, .footer__legal button { display: inline-flex; align-items: center; min-height: 44px; padding: 0; border: 0; background: none; color: var(--footer-ink, #fff); font: inherit; font-size: 13px; text-decoration: underline; cursor: pointer; }
.photogallery__toolbar { flex-wrap: wrap; }
.photogallery__tour, .photocompare__open { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; box-sizing: border-box; padding: 10px 14px; border: 1px solid #d8dbdd; border-radius: calc(var(--border-radius) * 2); background: #fff; color: var(--text-color); font: inherit; font-size: 13px; font-weight: 500; text-decoration: none; cursor: pointer; }
.photogallery__tour svg { width: 20px; height: 20px; }
.photocompare__open { margin-top: 10px; }
.photocompare__badge { position: absolute; left: 8px; top: 8px; z-index: 1; padding: 5px 8px; border-radius: calc(var(--border-radius) * .6); background: #fffffff0; color: #252b28; font: 600 11px/1.4 var(--font-family); pointer-events: none; }
.mapgallery__photos a { position: relative; }

/* Block : PhotoCompare */
.photocompare { width: min(1100px, calc(100vw - 24px)); max-width: none; max-height: calc(100dvh - 24px); box-sizing: border-box; padding: 16px; border: 1px solid #d8dbdd; border-radius: var(--border-radius); color: var(--text-color); background: #fff; font-family: var(--font-family); overflow: auto; }
.photocompare::backdrop { background: #000c; }
.photocompare__heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.photocompare__heading h2 { margin: 0; font-size: 20px; }
.photocompare__heading button { flex-shrink: 0; width: 44px; height: 44px; border: 1px solid #d8dbdd; border-radius: var(--border-radius); background: #fff; color: var(--text-color); font-size: 26px; cursor: pointer; }
.photocompare__stage { --compare-split: 50%; position: relative; width: 100%; aspect-ratio: 4 / 3; max-height: 65dvh; overflow: hidden; background: #111; touch-action: pan-y; cursor: ew-resize; border-radius: var(--border-radius); }
.photocompare__stage img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; pointer-events: none; user-select: none; }
.photocompare__before { clip-path: inset(0 calc(100% - var(--compare-split)) 0 0); }
.photocompare__stage--demo .photocompare__after { filter: brightness(1.12) saturate(.65); }
.photocompare__divider { position: absolute; left: var(--compare-split); top: 0; bottom: 0; width: 2px; background: #fff; transform: translateX(-50%); color: transparent; pointer-events: none; }
.photocompare__divider::after { content: '↔'; display: grid; place-items: center; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 44px; height: 44px; border-radius: 50%; color: #172c40; background: #fff; font-size: 24px; }
.photocompare__label { position: absolute; bottom: 10px; padding: 6px 9px; border-radius: calc(var(--border-radius) * .6); background: #fffffff0; color: #172c40; font-size: 12px; pointer-events: none; }
.photocompare__label--before { left: 10px; }
.photocompare__label--after { right: 10px; }
.photocompare__range { display: grid; gap: 8px; margin-top: 12px; font-size: 13px; }
.photocompare__range input { width: 100%; min-height: 44px; accent-color: var(--primary-color); }
.photocompare__note, .photocompare__error { font-size: 13px; line-height: 1.6; }
.photocompare [hidden] { display: none; }

/* Block : CookieDemo */
.cookiedemo { position: fixed; left: 16px; bottom: 16px; z-index: 1095; width: min(400px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); box-sizing: border-box; overflow: auto; padding: 20px; border: 1px solid #d8dbdd; border-radius: var(--border-radius); background: #fff; color: var(--text-color); font-family: var(--font-family); box-shadow: 0 8px 32px #0002; }
.cookiedemo[hidden], .cookiedemo [hidden] { display: none; }
.cookiedemo h2 { margin: 0 0 10px; font-size: 18px; }
.cookiedemo p, .cookiedemo a, .cookiedemo label { font-size: 13px; line-height: 1.6; }
.cookiedemo a { color: var(--text-color); }
.cookiedemo__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 12px 0 8px; }
.cookiedemo button { min-height: 44px; padding: 8px 12px; border: 1px solid var(--primary-color); border-radius: calc(var(--border-radius) * .6); background: #fff; color: var(--text-color); font: inherit; font-size: 13px; cursor: pointer; }
.cookiedemo [data-js-cookie-options] label { display: block; margin: 10px 0; }
@media (max-width: 600px) { .photogallery__tour { width: 100%; } .photocompare__label { bottom: 6px; padding: 5px; font-size: 10px; } }

/* Block : GalleryNavigationVisibility */
.propertylightbox .lg-prev, .propertylightbox .lg-next { color: #fff; opacity: 1; z-index: 1084; background: rgb(0 0 0 / 65%); }
.propertylightbox .lg-prev::after, .propertylightbox .lg-next::before { color: #fff; opacity: 1; }

/* Block : RoomExtraDetails */
.roomcaption__extra { font-family: var(--font-family); max-width: 820px; margin: 12px auto 0; padding: 12px; border: 1px solid #555; border-radius: var(--border-radius); background: #1b1b1b; color: #fff; text-align: left; }
.roomcaption__extra h5 { margin: 0; color: #fff; font-size: 14px; line-height: 1.5; }
.roomcaption__extranote { margin: 4px 0 8px; color: #c9cdd0; font-size: 11px; }
.roomcaption__extra summary { min-height: 44px; padding: 10px 0; box-sizing: border-box; cursor: pointer; font-size: 13px; color: #fff; }
.roomcaption__extra summary:focus-visible { outline: 2px solid var(--primary-color); outline-offset: 2px; }
.roomcaption__extralist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; margin: 4px 0 0; }
.roomcaption__extralist > div { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 8px; padding: 9px 0; border-bottom: 1px solid #444; font-size: 12px; line-height: 1.5; }
.roomcaption__extralist dt { color: #c9cdd0; }
.roomcaption__extralist dd { margin: 0; color: #fff; overflow-wrap: anywhere; }
.roomcaption__extralist ul { padding-left: 16px; margin: 0; }
.askvisit__simulators { display: grid; gap: 8px; padding-top: 12px; border-top: 1px solid #e5e8e6; }
.askvisit__simulator { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 9px 12px; box-sizing: border-box; border: 1px solid #d8dbdd; border-radius: calc(var(--border-radius) * .6); background: #fff; color: var(--text-color); font: inherit; font-size: 13px; text-decoration: none; }
.askvisit__simulator svg { width: 20px; height: 20px; flex-shrink: 0; color: var(--primary-color); }
.askvisit__simulator:hover { border-color: var(--primary-color); }
@media (max-width: 800px) { .roomcaption__extralist { grid-template-columns: minmax(0, 1fr); } }

/* Direct image comparison: keeps the existing lightbox and its room caption. */
.inlinecompare { --compare-split: 50%; position: absolute; z-index: 1060; overflow: hidden; touch-action: pan-y; cursor: ew-resize; background: #111; font-family: var(--font-family); }
.inlinecompare[hidden], .inlinecompare [hidden] { display: none; }
.inlinecompare img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; pointer-events: none; user-select: none; }
.inlinecompare__before { clip-path: inset(0 calc(100% - var(--compare-split)) 0 0); }
.inlinecompare--demo .inlinecompare__after { filter: brightness(1.12) saturate(.65); }
.inlinecompare__divider { position: absolute; left: var(--compare-split); top: 0; bottom: 0; width: 2px; background: #fff; pointer-events: none; }
.inlinecompare__divider::after { content: '↔'; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #fff; color: #172c40; font-size: 24px; box-shadow: 0 2px 8px #0004; }
.inlinecompare__label { position: absolute; top: 10px; padding: 5px 9px; color: #172c40; background: #fffffff0; border-radius: 4px; font-size: 12px; pointer-events: none; }
.inlinecompare__label--before { left: 10px; } .inlinecompare__label--after { right: 10px; }
.inlinecompare input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
.inlinecompare:focus-within { outline: 2px solid #fff; outline-offset: -2px; }
.inlinecompare input:focus-visible { outline: 2px solid #fff; outline-offset: -2px; }
.inlinecompare__demo { position: absolute; bottom: 10px; left: 10px; padding: 3px 6px; background: #000b; color: #fff; font-size: 10px; pointer-events: none; }
.has-inline-comparison .lg-sub-html .photocompare__open { display: none; }
.photogallery__tour-mention { display: inline-flex; align-items: center; gap: 8px; color: inherit; text-decoration: none; }
.photogallery__tour-mention svg { width: 20px; height: 20px; flex-shrink: 0; }
.photogallery__tour-mention:hover { text-decoration: underline; }

/* Compact floor, complete PEB card, and on-demand room information. */
.propertyoverview__floor { width: fit-content; max-width: 100%; box-sizing: border-box; }
.energy--structured .energy__essential { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 20px; align-items: start; }
.energy--structured .energy__chart { padding-top: 4px; }
.energy--structured .energy__data { margin: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.energy--structured .energy__datum { padding: 10px 12px; background: #fafbfb; }
.energy--structured .energy__datum:last-child:nth-child(odd) { grid-column: 1 / -1; }
.roomcaption { position: relative; }
.roomcaption__data { padding-right: 52px; }
.roomcaption__extra { margin: 0; padding: 0; border: 0; background: transparent; }
.roomcaption__extra summary { position: absolute; top: 30px; right: 0; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid #666; border-radius: 8px; background: #242424; list-style: none; }
.roomcaption__extra summary::-webkit-details-marker { display: none; }
.roomcaption__extra summary svg { width: 22px; height: 22px; transition: transform 180ms; }
.roomcaption__extra details[open] summary { border-color: #fff; background: #383838; }
.roomcaption__extra details[open] { margin-top: 12px; padding: 12px; border: 1px solid #555; border-radius: var(--border-radius); background: #1b1b1b; }
.roomcaption__sr { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (min-width: 801px) { .propertylightbox .lg-img-wrap { padding: 8px 20px; } }
@media (max-width: 700px) {
  .energy--structured .energy__essential { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .energy--structured .energy__data { grid-template-columns: minmax(0, 1fr); }
}

/* Highlight the optional virtual tour as a primary presentation action. */
.photogallery__toolbar > .photogallery__tour {
  background: var(--primary-color);
  border-color: var(--primary-color);
  color: #fff;
  font-weight: 700;
  box-shadow: 0 3px 10px color-mix(in srgb, var(--primary-color) 24%, transparent);
}
.photogallery__toolbar > .photogallery__tour:hover {
  background: color-mix(in srgb, var(--primary-color) 88%, #000);
  border-color: color-mix(in srgb, var(--primary-color) 88%, #000);
}
.photogallery__toolbar > .photogallery__tour:focus-visible {
  outline: 3px solid var(--text-color);
  outline-offset: 3px;
}

/* A soft edge indicates that the room caption continues below the viewport. */
.propertylightbox .lg-sub-html.has-scroll-below {
  -webkit-mask-image: linear-gradient(to bottom, #000 0, #000 calc(100% - 32px), transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0, #000 calc(100% - 32px), transparent 100%);
}

/* Three readable footer sections: agency, information, useful links. */
.footer { padding-block: 32px 16px; }
.footer__main { display: grid; grid-template-columns: minmax(140px, .8fr) minmax(0, 2.2fr) minmax(180px, 1fr); align-items: start; gap: clamp(24px, 3vw, 48px); padding-bottom: 28px; }
.footer__brand, .footer__information, .footer__links { min-width: 0; }
.footer__brand { padding-top: 4px; }
.footer__brand .footer__logo { max-width: 100%; }
.footer__information .footer__disclaimer { margin: 0; max-width: 68ch; font-size: 12px; line-height: 1.85; }
.footer__links { padding-left: 24px; border-left: 1px solid rgb(255 255 255 / 24%); }
.footer__links .footer__legal { display: flex; flex-direction: column; align-items: flex-start; gap: 0; margin: 0 0 12px; }
.footer__links .footer__legal a, .footer__links .footer__legal button { min-height: 36px; text-align: left; text-underline-offset: 4px; }
.footer__links .footer__socials { justify-content: flex-start; }
@media (max-width: 800px) {
  .footer__main { grid-template-columns: minmax(0, 1fr); gap: 24px; padding-bottom: 24px; }
  .footer__links { padding: 16px 0 0; border-left: 0; border-top: 1px solid rgb(255 255 255 / 24%); }
  .footer__links .footer__legal a, .footer__links .footer__legal button { min-height: 44px; }
}

/* Client refinements: tighter agent card and a more discoverable information action. */
.propertyoverview .importantsinfosbar__desktopprice { margin-bottom: 0; padding-bottom: 10px; }
.propertyoverview .askvisit__agent { padding-top: 0; }
.roomcaption__extra summary {
  color: #fff; background: var(--primary-color); border-color: #fff;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary-color) 30%, transparent);
}
.roomcaption__extra details:not([open]):not([data-information-seen]) summary { animation: room-information-pulse 2.4s ease-out 3; }
.roomcaption__extra summary:hover { background: color-mix(in srgb, var(--primary-color) 85%, #000); }
@keyframes room-information-pulse {
  0%, 70%, 100% { box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary-color) 30%, transparent); }
  35% { box-shadow: 0 0 0 9px color-mix(in srgb, var(--primary-color) 5%, transparent); }
}
@media (prefers-reduced-motion: reduce) {
  .roomcaption__extra details:not([open]):not([data-information-seen]) summary { animation: none; }
}
.mapgallery__photos a { position: relative; }
.mapgallery__photos .photocompare__badge { font-size: 10px; padding: 4px 6px; }

/* Room information: primary-dark trigger and a panel entirely over the photograph. */
.roomcaption__extra summary, .roomcaption__extra summary:hover {
  background: var(--primary-color-dark); border-color: #fff;
}
.roomcaption__extra--overlay-open summary { visibility: hidden; animation: none !important; }
.roominfo-overlay {
  position: absolute; z-index: 1085; box-sizing: border-box; overflow-y: auto;
  overscroll-behavior: contain; padding: 22px; border: 1px solid #777;
  border-radius: var(--border-radius); background: rgb(24 24 24 / 97%);
  box-shadow: 0 8px 36px #0008; color: #fff; font-family: var(--font-family); text-align: left;
}
.roominfo-overlay h5 { margin: 0 44px 8px 0; color: #fff; font-size: 16px; line-height: 1.5; }
.roominfo-overlay__close { position: absolute; top: 8px; right: 8px; width: 36px; height: 36px; border: 1px solid #777; border-radius: 6px; background: #333; color: #fff; font-size: 24px; cursor: pointer; }
.roominfo-overlay:focus { outline: none; }
.roominfo-overlay__close:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
@media (max-width: 800px) { .roominfo-overlay { padding: 14px; } }
