:root {
  --shp-black:#060605;
  --shp-black-2:#0b0907;
  --shp-black-3:#11100d;
  --shp-cream:#f1ece2;
  --shp-cream-2:#e5dccf;
  --shp-champagne:#c8b69d;
  --shp-taupe:#a79b8d;
  --shp-ink:#17130f;
  --shp-line:rgba(231,220,205,.17);
  --shp-shell:min(1380px,calc(100vw - 9vw));
}
body.shp-page {
  background:var(--shp-black);
  color:var(--shp-cream)
}
.shp-shell {
  width:var(--shp-shell);
  margin-inline:auto
}
.shp-eyebrow {
  margin:0 0 15px;
  color:var(--shp-champagne);
  font-size:9px;
  font-weight:700;
  letter-spacing:.24em;
  text-transform:uppercase
}
.shp-eyebrow--dark {
  color:#75695d
}
.shp-section {
  position:relative;
  padding:clamp(84px,9vw,145px) 0;
  overflow:hidden
}
.shp-section h2 {
  margin:0;
  font-family:var(--serif);
  font-size:clamp(40px,5.2vw,78px);
  font-weight:400;
  line-height:1.02;
  letter-spacing:-.045em
}
.shp-section h3 {
  margin:0;
  font-family:var(--serif);
  font-weight:400;
  line-height:1.1;
  letter-spacing:-.025em
}
.shp-section p {
  color:rgba(241,236,226,.65)
}
.shp-hero {
  position:relative;
  min-height:100svh;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:#090806
}
.shp-hero__image {
  position:absolute;
  inset:0;
  transform:scale(1.025);
  animation:shpHeroBreath 18s ease-in-out infinite alternate
}
.shp-hero__veil {
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(3,3,2,.18) 0%,rgba(3,3,2,.08) 35%,rgba(3,3,2,.82) 100%),linear-gradient(90deg,rgba(3,3,2,.52),transparent 60%)
}
.shp-hero__grain {
  position:absolute;
  inset:0;
  opacity:.11;
  pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E")
}
.shp-hero__shell {
  position:relative;
  z-index:2;
  padding:calc(var(--header-height) + 72px) 0 64px
}
.shp-hero__glass {
  width:min(790px,72vw);
  padding:clamp(34px,5vw,70px);
  border:1px solid rgba(255,255,255,.34);
  background:linear-gradient(135deg,rgba(239,233,224,.29),rgba(185,165,142,.09));
  box-shadow:0 32px 100px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.25);
  backdrop-filter:blur(22px) saturate(115%);
  -webkit-backdrop-filter:blur(22px) saturate(115%)
}
.shp-kicker {
  display:flex;
  align-items:center;
  gap:14px;
  margin:0 0 24px;
  color:#f5eee4;
  font-size:9px;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase
}
.shp-kicker i {
  display:block;
  width:52px;
  height:1px;
  background:rgba(245,238,228,.48)
}
.shp-hero h1 {
  margin:0;
  font-family:var(--serif);
  font-size:clamp(62px,7.2vw,116px);
  font-weight:400;
  line-height:.87;
  letter-spacing:-.055em
}
.shp-hero__lead {
  max-width:660px;
  margin:28px 0 0;
  color:rgba(255,250,243,.78);
  font-size:clamp(15px,1.2vw,18px);
  line-height:1.75
}
.shp-hero__lead strong {
  color:#fffaf4;
  font-weight:600
}
.shp-hero__actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:34px
}
.shp-button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  min-height:56px;
  padding:14px 20px;
  border:1px solid rgba(240,231,219,.34);
  font-size:8px;
  font-weight:700;
  letter-spacing:.19em;
  text-transform:uppercase;
  transition:transform .3s ease,border-color .3s ease,background .3s ease,color .3s ease
}
.shp-button:hover {
  transform:translateY(-2px)
}
.shp-button--glass {
  background:linear-gradient(135deg,rgba(244,238,229,.22),rgba(213,197,177,.10));
  color:#fffaf4;
  backdrop-filter:blur(15px);
  -webkit-backdrop-filter:blur(15px)
}
.shp-button--ghost {
  background:rgba(10,8,6,.22);
  color:#fffaf4
}
.shp-button--cream {
  background:linear-gradient(135deg,rgba(242,236,226,.94),rgba(214,200,181,.88));
  color:var(--shp-ink);
  border-color:rgba(255,255,255,.75);
  box-shadow:0 16px 48px rgba(0,0,0,.14)
}
.shp-button--dark {
  background:linear-gradient(135deg,rgba(20,17,13,.93),rgba(44,36,28,.85));
  color:var(--shp-cream);
  border-color:rgba(34,28,22,.42)
}
.shp-hero__facts {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  margin-top:18px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(7,6,5,.46);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px)
}
.shp-hero__facts span {
  min-height:94px;
  padding:20px 17px;
  border-right:1px solid rgba(255,255,255,.12);
  display:flex;
  flex-direction:column;
  justify-content:center;
  color:rgba(241,236,226,.55);
  font-size:8px;
  letter-spacing:.13em;
  text-transform:uppercase;
  line-height:1.55
}
.shp-hero__facts span:last-child {
  border-right:0
}
.shp-hero__facts strong {
  display:block;
  margin-bottom:5px;
  color:#f4eee5;
  font-family:var(--serif);
  font-size:21px;
  font-weight:400;
  letter-spacing:-.015em;
  text-transform:none
}
.shp-scroll {
  position:absolute;
  z-index:2;
  right:4.5vw;
  bottom:35px;
  display:flex;
  align-items:center;
  gap:14px;
  color:rgba(255,255,255,.64);
  font-size:8px;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase
}
.shp-scroll i {
  width:52px;
  height:1px;
  background:rgba(255,255,255,.35)
}
.shp-chapter-nav {
  position:sticky;
  top:78px;
  z-index:50;
  border-top:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.08);
  background:rgba(7,6,5,.9);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px)
}
.shp-chapter-nav .shp-shell {
  display:flex;
  overflow-x:auto;
  scrollbar-width:none
}
.shp-chapter-nav .shp-shell::-webkit-scrollbar {
  display:none
}
.shp-chapter-nav a {
  flex:0 0 auto;
  padding:17px 22px;
  border-right:1px solid rgba(255,255,255,.08);
  color:rgba(241,236,226,.58);
  font-size:8px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  transition:color .25s ease,background .25s ease
}
.shp-chapter-nav a:hover {
  color:var(--shp-cream);
  background:rgba(230,218,201,.06)
}
.shp-overview {
  background:radial-gradient(circle at 15% 10%,rgba(225,210,190,.08),transparent 30%),var(--shp-black);
  padding:clamp(88px,9vw,140px) 0
}
.shp-overview__intro {
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:clamp(55px,8vw,140px);
  align-items:end
}
.shp-overview__intro h2 {
  max-width:570px
}
.shp-overview__intro-copy {
  padding-bottom:6px
}
.shp-overview__intro-copy>p:first-child {
  font-size:clamp(18px,1.65vw,24px);
  line-height:1.7;
  color:rgba(241,236,226,.84)
}
.shp-thesis {
  margin:28px 0 0;
  padding:25px 28px;
  border:1px solid rgba(232,221,207,.2);
  background:linear-gradient(135deg,rgba(237,229,217,.13),rgba(190,172,149,.05));
  color:rgba(241,236,226,.74)!important;
  backdrop-filter:blur(12px)
}
.shp-overview__grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  margin-top:70px;
  background:rgba(233,221,206,.14);
  border:1px solid rgba(233,221,206,.14)
}
.shp-overview-card {
  min-height:295px;
  padding:40px;
  background:linear-gradient(145deg,rgba(18,16,13,.97),rgba(9,8,7,.98));
  position:relative;
  overflow:hidden
}
.shp-overview-card::after {
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  border-radius:50%;
  right:-80px;
  bottom:-110px;
  background:rgba(233,221,206,.06);
  filter:blur(1px)
}
.shp-overview-card>span {
  font-family:var(--serif);
  font-size:30px;
  color:var(--shp-champagne)
}
.shp-overview-card h3 {
  margin:28px 0 16px;
  font-size:29px
}
.shp-overview-card p {
  margin:0;
  font-size:14px;
  line-height:1.85
}
.shp-price-band {
  display:grid;
  grid-template-columns:1fr auto;
  gap:45px;
  align-items:center;
  margin-top:1px;
  padding:35px 40px;
  background:linear-gradient(135deg,#eee7dc,#cabba8);
  color:var(--shp-ink)
}
.shp-price-band p {
  margin:0;
  color:rgba(23,19,15,.64);
  font-size:13px
}
.shp-price-band strong {
  display:block;
  font-family:var(--serif);
  font-size:clamp(40px,4vw,64px);
  font-weight:400;
  line-height:1
}
.shp-price-band small {
  display:block;
  margin-top:8px;
  color:rgba(23,19,15,.55);
  font-size:9px;
  letter-spacing:.13em;
  text-transform:uppercase
}
.shp-description {
  background:linear-gradient(180deg,#0c0b09,#080706)
}
.shp-description__layout {
  display:grid;
  grid-template-columns:1.03fr .97fr;
  gap:clamp(55px,8vw,130px);
  align-items:center
}
.shp-description__image {
  position:relative;
  min-height:720px;
  overflow:hidden
}
.shp-description__image img {
  width:100%;
  height:100%;
  position:absolute;
  inset:0;
  object-fit:cover
}
.shp-description__image span {
  position:absolute;
  left:24px;
  bottom:20px;
  padding:8px 11px;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(7,6,5,.42);
  backdrop-filter:blur(10px);
  font-size:8px;
  letter-spacing:.15em;
  text-transform:uppercase
}
.shp-description__copy h2 {
  margin-bottom:30px
}
.shp-description__copy p {
  font-size:15px;
  line-height:1.9
}
.shp-option-pills {
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin:34px 0
}
.shp-option-pills span {
  padding:10px 13px;
  border:1px solid rgba(235,224,210,.18);
  background:rgba(235,224,210,.05);
  color:rgba(241,236,226,.76);
  font-size:9px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase
}
.shp-spec-columns {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-top:60px
}
.shp-spec-card {
  padding:clamp(30px,4vw,52px);
  border:1px solid rgba(23,19,15,.15);
  background:rgba(255,255,255,.28);
  box-shadow:0 24px 60px rgba(72,55,39,.07)
}
.shp-spec-card__head {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:20px;
  padding-bottom:22px;
  border-bottom:1px solid rgba(23,19,15,.14)
}
.shp-spec-card__head span {
  color:#8b7760;
  font-family:var(--serif);
  font-size:29px
}
.shp-spec-card h3 {
  font-size:34px
}
.shp-check-list {
  list-style:none;
  padding:0;
  margin:25px 0 0;
  columns:2;
  column-gap:34px
}
.shp-check-list li {
  break-inside:avoid;
  position:relative;
  padding:9px 0 9px 19px;
  color:rgba(23,19,15,.68);
  font-size:13px;
  line-height:1.6
}
.shp-check-list li::before {
  content:"";
  position:absolute;
  left:0;
  top:18px;
  width:6px;
  height:1px;
  background:#8b7760
}
.shp-upgrades {
  background:radial-gradient(circle at 100% 0%,rgba(233,221,206,.09),transparent 25%),#080706
}
.shp-section__head {
  max-width:900px
}
.shp-section__head>p:last-child {
  margin:25px 0 0;
  max-width:760px;
  font-size:15px;
  line-height:1.9
}
.shp-upgrade-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  margin-top:55px
}
.shp-upgrade-card {
  padding:30px;
  border:1px solid rgba(236,225,211,.16);
  background:linear-gradient(145deg,rgba(237,226,211,.08),rgba(237,226,211,.025))
}
.shp-upgrade-card h3 {
  font-size:29px;
  margin-bottom:20px
}
.shp-upgrade-list {
  list-style:none;
  padding:0;
  margin:0
}
.shp-upgrade-list li {
  display:flex;
  justify-content:space-between;
  gap:22px;
  padding:13px 0;
  border-top:1px solid rgba(236,225,211,.1);
  color:rgba(241,236,226,.65);
  font-size:12px;
  line-height:1.5
}
.shp-upgrade-list strong {
  flex:0 0 auto;
  color:var(--shp-cream);
  font-weight:500
}
.shp-upgrade-note {
  margin:26px 0 0;
  color:rgba(241,236,226,.43)!important;
  font-size:10px!important;
  line-height:1.7!important
}
.shp-cta-strip {
  padding:50px 0;
  background:linear-gradient(135deg,#e7ded2,#c9baa6);
  color:var(--shp-ink)
}
.shp-cta-strip__inner {
  display:grid;
  grid-template-columns:1fr auto;
  gap:40px;
  align-items:center
}
.shp-cta-strip h2 {
  font-family:var(--serif);
  font-size:clamp(34px,4vw,58px);
  font-weight:400;
  line-height:1;
  letter-spacing:-.035em
}
.shp-cta-strip p {
  margin:10px 0 0;
  color:rgba(23,19,15,.62)
}
.shp-cta-strip__actions {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end
}
.shp-services {
  background:#0b0907
}
.shp-services__intro {
  display:grid;
  grid-template-columns:.75fr 1.25fr;
  gap:clamp(50px,8vw,130px);
  align-items:end
}
.shp-services__cards {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-top:55px
}
.shp-service-card {
  padding:clamp(30px,4vw,50px);
  border:1px solid rgba(233,221,206,.16);
  background:linear-gradient(145deg,rgba(233,221,206,.07),rgba(233,221,206,.02))
}
.shp-service-card>span {
  font-family:var(--serif);
  font-size:31px;
  color:var(--shp-champagne)
}
.shp-service-card h3 {
  margin:24px 0 15px;
  font-size:34px
}
.shp-service-card>p {
  font-size:14px;
  line-height:1.85
}
.shp-service-card ul {
  list-style:none;
  padding:0;
  margin:25px 0 0
}
.shp-service-card li {
  padding:12px 0;
  border-top:1px solid rgba(233,221,206,.12);
  color:rgba(241,236,226,.66);
  font-size:12px;
  line-height:1.6
}
.shp-service-card li strong {
  color:var(--shp-cream);
  font-weight:600
}
.shp-rental-link {
  display:grid;
  grid-template-columns:1fr auto;
  gap:25px;
  align-items:center;
  margin-top:18px;
  padding:24px 28px;
  border:1px solid rgba(233,221,206,.16);
  background:linear-gradient(135deg,rgba(232,219,202,.12),rgba(178,154,126,.04))
}
.shp-rental-link h3 {
  font-size:27px
}
.shp-rental-link p {
  margin:8px 0 0;
  font-size:12px
}
.shp-strengths {
  background:#e7dfd3;
  color:var(--shp-ink)
}
.shp-strengths .shp-section__head {
  max-width:700px
}
.shp-strength-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  margin-top:50px;
  border:1px solid rgba(23,19,15,.13);
  background:rgba(23,19,15,.13)
}
.shp-strength-card {
  padding:35px;
  background:rgba(255,255,255,.28)
}
.shp-strength-card span {
  color:#8b7760;
  font-family:var(--serif);
  font-size:29px
}
.shp-strength-card h3 {
  margin:25px 0 13px;
  font-size:28px
}
.shp-strength-card p {
  margin:0;
  color:rgba(23,19,15,.62);
  font-size:13px;
  line-height:1.75
}
.shp-contact {
  background:radial-gradient(circle at 20% 15%,rgba(230,216,198,.08),transparent 27%),#080706
}
.shp-contact__grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(45px,8vw,130px);
  align-items:start
}
.shp-contact__copy h2 {
  max-width:650px
}
.shp-contact__copy>p {
  max-width:600px;
  margin:25px 0 0
}
.shp-contact__actions {
  display:grid;
  gap:12px;
  margin-top:35px;
  max-width:470px
}
.shp-contact__actions .shp-button {
  width:100%
}
.shp-contact__reservation {
  padding:clamp(32px,4vw,50px);
  border:1px solid rgba(234,223,209,.16);
  background:linear-gradient(145deg,rgba(234,223,209,.09),rgba(234,223,209,.025))
}
.shp-contact__reservation h3 {
  font-size:36px
}
.shp-contact__reservation p {
  font-size:13px;
  line-height:1.8
}
.shp-reservation-facts {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  margin:25px 0;
  background:rgba(235,224,210,.12)
}
.shp-reservation-facts span {
  padding:18px;
  background:#0d0b09;
  color:rgba(241,236,226,.55);
  font-size:8px;
  letter-spacing:.13em;
  text-transform:uppercase
}
.shp-reservation-facts strong {
  display:block;
  margin-bottom:4px;
  color:var(--shp-cream);
  font-family:var(--serif);
  font-size:22px;
  font-weight:400;
  text-transform:none;
  letter-spacing:0
}
.shp-disclaimer {
  margin-top:35px;
  padding-top:22px;
  border-top:1px solid rgba(234,223,209,.12);
  color:rgba(241,236,226,.38)!important;
  font-size:9px!important;
  line-height:1.7!important
}
@keyframes shpHeroBreath {
  from {
    transform:scale(1.025)
  }
  to {
    transform:scale(1.06)
  }
}
@media (max-width:1024px) and (orientation:portrait), (max-width:820px) and (orientation:landscape), (max-width:1366px) and (max-height:820px) and (orientation:landscape) and (hover:none) and (pointer:coarse) {
  .shp-hero__facts {
    grid-template-columns:repeat(3,1fr)
  }
  .shp-hero__facts span:nth-child(3) {
    border-right:0
  }
  .shp-hero__facts span:nth-child(n+4) {
    border-top:1px solid rgba(255,255,255,.12)
  }
  .shp-overview__intro,.shp-services__intro,.shp-description__layout,.shp-contact__grid {
    grid-template-columns:1fr;
    gap:45px
  }
  .shp-description__image {
    min-height:560px
  }
  .shp-overview__grid {
    grid-template-columns:1fr
  }
  .shp-overview-card {
    min-height:auto
  }
  .shp-upgrade-grid {
    grid-template-columns:1fr 1fr
  }
  .shp-strength-grid {
    grid-template-columns:1fr
  }
}
@media (max-width:1024px) and (orientation:portrait), (max-width:820px) and (orientation:landscape), (max-width:1366px) and (max-height:820px) and (orientation:landscape) and (hover:none) and (pointer:coarse) {
  .shp-shell {
    width:calc(100% - 40px)
  }
  .shp-section {
    padding:75px 0
  }
  .shp-hero__shell {
    padding-bottom:35px
  }
  .shp-hero__glass {
    width:100%
  }
  .shp-hero__facts {
    grid-template-columns:1fr 1fr
  }
  .shp-hero__facts span:nth-child(2n) {
    border-right:0
  }
  .shp-hero__facts span:nth-child(3) {
    border-right:1px solid rgba(255,255,255,.12)
  }
  .shp-hero__facts span:nth-child(n+3) {
    border-top:1px solid rgba(255,255,255,.12)
  }
  .shp-scroll {
    display:none
  }
  .shp-chapter-nav {
    top:70px
  }
  .shp-spec-columns,.shp-services__cards,.shp-upgrade-grid {
    grid-template-columns:1fr
  }
  .shp-check-list {
    columns:1
  }
  .shp-price-band,.shp-cta-strip__inner,.shp-rental-link {
    grid-template-columns:1fr
  }
  .shp-cta-strip__actions {
    justify-content:flex-start
  }
  .shp-description__image {
    min-height:500px
  }
  .shp-contact__grid {
    grid-template-columns:1fr
  }
  .shp-strength-card {
    padding:28px
  }
}
@media(max-width:560px) {
  .shp-shell {
    width:calc(100% - 40px)
  }
  .shp-hero {
    min-height:auto;
    padding-top:92px
  }
  .shp-hero__image {
    height:52vh;
    bottom:auto
  }
  .shp-hero__veil {
    background:linear-gradient(180deg,rgba(3,3,2,.18),rgba(3,3,2,.25) 36%,#080706 70%)
  }
  .shp-hero__shell {
    padding:36vh 0 25px
  }
  .shp-hero__glass {
    padding:26px 21px
  }
  .shp-hero h1 {
    font-size:clamp(50px,15vw,70px)
  }
  .shp-kicker {
    font-size:7px;
    gap:9px
  }
  .shp-kicker i {
    width:25px
  }
  .shp-hero__lead {
    font-size:13px
  }
  .shp-button {
    width:100%;
    min-height:52px
  }
  .shp-hero__facts {
    grid-template-columns:1fr 1fr;
    margin-top:10px
  }
  .shp-hero__facts span {
    min-height:76px;
    padding:14px 12px;
    font-size:6px
  }
  .shp-hero__facts strong {
    font-size:17px
  }
  .shp-section h2 {
    font-size:clamp(35px,11vw,49px)
  }
  .shp-overview__intro-copy>p:first-child {
    font-size:17px
  }
  .shp-overview__grid {
    margin-top:38px
  }
  .shp-overview-card {
    padding:27px
  }
  .shp-overview-card h3 {
    font-size:25px
  }
  .shp-price-band {
    padding:28px
  }
  .shp-description__image {
    min-height:420px
  }
  .shp-spec-card {
    padding:26px 22px
  }
  .shp-spec-card h3 {
    font-size:29px
  }
  .shp-check-list li {
    font-size:12px
  }
  .shp-upgrade-card {
    padding:24px 21px
  }
  .shp-upgrade-list li {
    font-size:11px
  }
  .shp-cta-strip {
    padding:38px 0
  }
  .shp-service-card {
    padding:26px 22px
  }
  .shp-service-card h3 {
    font-size:28px
  }
  .shp-rental-link {
    padding:22px
  }
  .shp-contact__reservation {
    padding:26px 22px
  }
  .shp-reservation-facts {
    grid-template-columns:1fr
  }
  .shp-chapter-nav a {
    padding:14px 16px;
    font-size:7px
  }
}
@media(prefers-reduced-motion:reduce) {
  .shp-hero__image {
    animation:none
  }
  .shp-button {
    transition:none
  }
}
/* Strandhaus mit Pool – page-specific refinements */
.shp-price-band__prices {
  display:flex;
  gap:34px;
  align-items:center
}
.shp-price-band__prices span {
  display:flex;
  flex-direction:column;
  min-width:190px
}
.shp-price-band__prices small {
  margin:0 0 7px
}
.shp-price-band__prices strong {
  font-size:clamp(31px,3.3vw,52px)
}
.shp-description__image img {
  object-position:center 57%
}
.shp-variants {
  background:#e8e0d4;
  color:var(--shp-ink)
}
.shp-variants .shp-section__head {
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  gap:clamp(50px,8vw,140px);
  align-items:end
}
.shp-variants .shp-section__head p {
  color:rgba(23,19,15,.62)
}
.shp-variant-tabs {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  margin-top:58px;
  border:1px solid rgba(23,19,15,.15);
  background:rgba(23,19,15,.15)
}
.shp-variant-tabs button {
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:18px;
  align-items:center;
  min-height:90px;
  padding:20px 26px;
  border:0;
  background:rgba(255,255,255,.26);
  color:rgba(23,19,15,.62);
  text-align:left;
  cursor:pointer;
  transition:background .3s ease,color .3s ease
}
.shp-variant-tabs button span {
  font-family:var(--serif);
  font-size:25px;
  color:#8b7760
}
.shp-variant-tabs button strong {
  font-family:var(--serif);
  font-size:26px;
  font-weight:400;
  color:inherit
}
.shp-variant-tabs button.is-active {
  background:linear-gradient(135deg,rgba(255,255,255,.7),rgba(211,195,174,.42));
  color:var(--shp-ink)
}
.shp-variant-panel {
  margin-top:1px
}
.shp-variant-panel[hidden] {
  display:none
}
.shp-variant-panel .shp-spec-columns {
  margin-top:0
}
.shp-variant-summary {
  display:grid;
  grid-template-columns:1fr auto;
  gap:35px;
  align-items:center;
  margin-top:20px;
  padding:26px 30px;
  border:1px solid rgba(23,19,15,.14);
  background:linear-gradient(135deg,rgba(255,255,255,.42),rgba(211,195,174,.22))
}
.shp-variant-summary strong {
  font-family:var(--serif);
  font-size:31px;
  font-weight:400
}
.shp-variant-summary p {
  margin:5px 0 0;
  color:rgba(23,19,15,.62)
}
.shp-floorplan {
  background:radial-gradient(circle at 15% 20%,rgba(233,221,206,.09),transparent 30%),#090806
}
.shp-floorplan__layout {
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:clamp(45px,7vw,110px);
  align-items:center
}
.shp-floorplan__copy h2 {
  margin-bottom:28px
}
.shp-floorplan__copy p {
  font-size:14px;
  line-height:1.9
}
.shp-floorplan__facts {
  display:grid;
  gap:1px;
  margin:30px 0;
  background:rgba(233,221,206,.14);
  border:1px solid rgba(233,221,206,.14)
}
.shp-floorplan__facts span {
  display:grid;
  grid-template-columns:70px 1fr;
  gap:18px;
  padding:14px 16px;
  background:rgba(233,221,206,.045);
  color:rgba(241,236,226,.66);
  font-size:11px
}
.shp-floorplan__facts strong {
  font-family:var(--serif);
  font-size:20px;
  font-weight:400;
  color:var(--shp-cream)
}
.shp-floorplan__figure {
  position:relative;
  margin:0;
  padding:18px;
  border:1px solid rgba(233,221,206,.18);
  background:linear-gradient(145deg,rgba(233,221,206,.09),rgba(233,221,206,.025));
  box-shadow:0 34px 100px rgba(0,0,0,.28)
}
.shp-floorplan__figure img {
  width:100%;
  height:auto
}
.shp-floorplan__figure figcaption {
  padding:14px 3px 0;
  color:rgba(241,236,226,.46);
  font-size:8px;
  letter-spacing:.16em;
  text-transform:uppercase
}

/* In-page, full-size floor-plan viewer */
.shp-floorplan-viewer {
  width:100vw;
  max-width:none;
  height:100dvh;
  max-height:none;
  margin:0;
  padding:clamp(24px,4vw,64px);
  border:0;
  background:rgba(7,6,5,.97);
  color:var(--shp-cream);
  overflow:hidden
}
.shp-floorplan-viewer::backdrop {
  background:rgba(0,0,0,.78);
  backdrop-filter:blur(8px)
}
.shp-floorplan-viewer__stage {
  display:grid;
  width:100%;
  height:100%;
  place-items:center
}
.shp-floorplan-viewer__stage img {
  display:block;
  width:auto;
  max-width:100%;
  height:auto;
  max-height:100%;
  object-fit:contain;
  box-shadow:0 30px 90px rgba(0,0,0,.42)
}
.shp-floorplan-viewer__close {
  position:fixed;
  z-index:2;
  top:clamp(16px,2vw,28px);
  right:clamp(16px,2vw,28px);
  display:grid;
  width:48px;
  height:48px;
  padding:0;
  border:1px solid rgba(233,221,206,.45);
  border-radius:50%;
  background:rgba(10,8,6,.74);
  color:var(--shp-cream);
  font-family:Arial,sans-serif;
  font-size:29px;
  font-weight:300;
  line-height:1;
  cursor:pointer;
  place-items:center;
  transition:background .2s ease,border-color .2s ease,transform .2s ease
}
.shp-floorplan-viewer__close:hover,
.shp-floorplan-viewer__close:focus-visible {
  border-color:#a19167;
  background:rgba(161,145,103,.22);
  transform:scale(1.04)
}
body.shp-floorplan-viewer-open {
  overflow:hidden
}
@media(max-width:760px) {
  .shp-floorplan-viewer {
    padding:70px 12px 20px
  }
  .shp-floorplan-viewer__close {
    width:44px;
    height:44px;
    font-size:27px
  }
}
@media (max-width:1024px) and (orientation:portrait), (max-width:820px) and (orientation:landscape), (max-width:1366px) and (max-height:820px) and (orientation:landscape) and (hover:none) and (pointer:coarse) {
  .shp-price-band {
    grid-template-columns:1fr
  }
  .shp-price-band__prices {
    justify-content:flex-start
  }
  .shp-variant-summary {
    grid-template-columns:1fr
  }
  .shp-floorplan__layout {
    grid-template-columns:1fr
  }
  .shp-floorplan__figure {
    order:-1
  }
}
@media(max-width:760px) {
  .shp-price-band__prices {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px
  }
  .shp-price-band__prices span {
    min-width:0
  }
  .shp-variant-tabs {
    grid-template-columns:1fr
  }
  .shp-variant-tabs button {
    grid-template-columns:auto 1fr;
    min-height:78px
  }
  .shp-variant-tabs button strong {
    grid-column:2
  }
  .shp-variants .shp-section__head {
    grid-template-columns:1fr
  }
  .shp-floorplan__facts span {
    grid-template-columns:56px 1fr
  }
}
@media(max-width:520px) {
  .shp-price-band__prices {
    grid-template-columns:1fr
  }
  .shp-hero__facts {
    grid-template-columns:1fr 1fr
  }
  .shp-hero__facts span:last-child {
    grid-column:1/-1
  }
  .shp-floorplan__figure {
    padding:9px
  }
  .shp-floorplan__copy p {
    font-size:13px
  }
}
