/* SKADI.REST — стилі поточної версії. Порядок правил збережено. */

/* Кольори та базові змінні */
:root {
  --ink: #242d27;
  --muted: #7b8078;
  --paper: #f2f0e9;
  --forest: #30483a;
  --line: #d8d8cf;
}

/* Базові елементи */
* {
  box-sizing: border-box;
}

html,body {
  margin: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

body {
  font-family: 'DM Sans',sans-serif;
  background: var(--paper);
  color: var(--ink);
}

button,input,select {
  font: inherit;
}

button {
  cursor: pointer;
}

/* Композиція сторінки */
.app {
  height: 100dvh;
  min-height: 560px;
  display: grid;
  grid-template-columns: 92px minmax(0,1fr);
  overflow: hidden;
}

/* Бічна панель */
.rail {
  border-right: 1px solid var(--line);
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: space-between;
  padding: 29px 0 25px;
  z-index: 10;
  background: var(--paper);
}

.mark {
  width: 42px;
  height: 42px;
  border: 1px solid #abb6a8;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-family: Georgia,serif;
  font-size: 25px;
  color: var(--forest);
}

.rail-word {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 10px;
  letter-spacing: .31em;
  font-weight: 700;
  color: #7e897c;
}

.rail-social {
  font-size: 10px;
  letter-spacing: .13em;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  text-decoration: none;
  color: var(--ink);
}

.stage {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

/* Верхня панель */
.top {
  height: 94px;
  flex: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 clamp(25px,4.3vw,75px);
  gap: 25px;
}

.logo {
  white-space: nowrap;
}

.logo span {
  display: block;
}

.top-center {
  color: var(--muted);
}

.top-actions {
  display: flex;
  align-items: center;
  gap: 25px;
}

.top-actions a {
  color: var(--ink);
  text-decoration: none;
  font-size: 12px;
}

.reserve {
  color: var(--ink);
  border: 1px solid var(--ink);
  background: transparent;
  padding: 13px 19px;
  border-radius: 2px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  transition: .2s;
}

.reserve:hover {
  background: var(--ink);
  color: white;
}

/* Сцени й текст */
.main {
  min-height: 0;
  flex: 1;
  display: grid;
  grid-template-columns: minmax(320px,41%) minmax(0,59%);
  padding: 0 clamp(25px,4.3vw,75px) 0;
  gap: clamp(24px,3vw,55px);
}

.info {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-bottom: 30px;
  position: relative;
}

.eyebrow {
  font-size: 10px;
  letter-spacing: .27em;
  text-transform: uppercase;
  font-weight: 700;
  color: #7e8a7d;
  display: flex;
  align-items: center;
  gap: 14px;
}

.eyebrow:before {
  content: '';
  width: 31px;
  height: 1px;
  background: #8d9c8e;
}

.headline {
  font-family: Georgia,'Times New Roman',serif;
  font-weight: 400;
}

.headline em {
  font-weight: 400;
  color: #7e8f7e;
}

.description {
  font-size: 14px;
  line-height: 1.95;
  max-width: 370px;
  color: #646d64;
}

.info-bottom {
  margin-top: 42px;
  display: flex;
  gap: 25px;
  align-items: center;
}

.text-btn {
  border: 0;
  background: none;
  border-bottom: 1px solid var(--ink);
  padding: 0 0 9px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--ink);
}

.circle-next {
  border: 1px solid #bdc7b9;
  width: 51px;
  height: 51px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: transparent;
  color: var(--ink);
  font-size: 23px;
  transition: .2s;
}

.circle-next:hover {
  background: var(--forest);
  color: #fff;
}

/* Фотографії та підписи */
.visual {
  min-width: 0;
  min-height: 0;
  position: relative;
}

.visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
  filter: saturate(.78);
}

.visual:after {
  content: '';
  position: absolute;
  inset: 0;
}

.photo-caption {
  position: absolute;
  z-index: 2;
  bottom: 36px;
  left: 35px;
  color: white;
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.photo-num {
  position: absolute;
  z-index: 2;
  right: 32px;
  bottom: 30px;
  color: white;
}

.photo-num small {
  font-family: DM Sans,sans-serif;
  margin-left: 4px;
}

.photo-top {
  position: absolute;
  top: 29px;
  right: 31px;
  color: white;
  z-index: 2;
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
}

/* Нижня навігація */
.footer {
  height: 112px;
  flex: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 clamp(25px,4.3vw,75px);
  gap: 20px;
}

.scene-tabs {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.tab {
  border: 0;
  background: transparent;
  color: #8c948a;
  padding: 14px 13px;
  font-size: 11px;
  letter-spacing: .04em;
  position: relative;
  white-space: nowrap;
}

.tab.active {
  color: var(--ink);
  font-weight: 700;
}

.tab.active:after {
  content: '';
  height: 2px;
  background: var(--forest);
  position: absolute;
  left: 13px;
  right: 13px;
  bottom: 2px;
}

.tab b {
  font-size: 9px;
  margin-right: 9px;
  color: #a6aca2;
}

.foot-right {
  display: flex;
  align-items: center;
  gap: 23px;
  white-space: nowrap;
}

.foot-right span {
  font-size: 11px;
  color: var(--muted);
}

.arrows {
  display: flex;
  gap: 7px;
}

.arrow {
  width: 44px;
  height: 44px;
  border: 1px solid #c7cdc3;
  background: transparent;
  color: var(--ink);
  font-size: 20px;
}

.arrow:hover {
  background: var(--forest);
  color: white;
}

.progress {
  height: 2px;
  background: #e2e2da;
}

.progress i {
  height: 100%;
  display: block;
  background: var(--forest);
  width: 20%;
  transition: width .6s;
}

.changing .info>* {
  animation: reveal .6s both;
}

.changing .info .headline {
  animation-delay: .07s;
}

.changing .info .description {
  animation-delay: .14s;
}

.changing .info .info-bottom {
  animation-delay: .2s;
}

@keyframes reveal {
from {
    opacity:0;
    transform:translateY(17px)
  }

  to {
    opacity:1;
    transform:translateY(0)
  }
}

@keyframes photoReveal {
from {
    opacity:.45;
    transform:scale(1.055)
  }

  to {
    opacity:1;
    transform:scale(1)
  }
}

/* Модальні вікна */
.overlay {
  position: fixed;
  inset: 0;
  background: rgba(18,29,22,.57);
  z-index: 50;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 18px;
  backdrop-filter: blur(7px);
}

.overlay.show {
  display: flex;
}

.modal {
  max-height: 95dvh;
  overflow: auto;
  background: var(--paper);
  padding: 34px 40px 38px;
  box-shadow: 0 25px 80px #0003;
}

.modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.modal h2 {
  font: normal 43px Georgia,serif;
  letter-spacing: -.04em;
  margin: 18px 0 8px;
}

.modal p {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
}

.close {
  border: 0;
  background: none;
  font-size: 29px;
  color: var(--ink);
}

/* Поля форми */
.fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 22px;
}

.field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 11px;
  font-weight: 700;
}

.field input,.field select {
  background: white;
  border: 1px solid #d6d9d0;
  padding: 14px 12px;
  width: 100%;
  min-width: 0;
  color: var(--ink);
}

.field.wide {
  grid-column: span 2;
}

.summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 23px 0;
  padding: 17px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  font-size: 12px;
}

.summary strong {
  font: normal 29px Georgia,serif;
}

.send {
  width: 100%;
  border: 0;
  background: var(--forest);
  color: white;
  padding: 17px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
}

.small-note {
  font-size: 10px!important;
  margin-bottom: 0;
}

.hidden {
  display: none!important;
}

@media(max-width:1100px) {
  .top-center {
    display: none;
  }

  .footer {
    height: 95px;
  }

  .tab {
    padding: 10px 7px;
  }

  .tab.active:after {
    left: 7px;
    right: 7px;
  }

  .tab b {
    display: none;
  }
}

@media(max-width:760px) {
  .app {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .rail {
    display: none;
  }

  .top {
    height: 70px;
    padding: 0 19px;
  }

  .top-actions a {
    display: none;
  }

  .reserve {
    padding: 11px 12px;
    font-size: 10px;
  }

  .main {
    padding: 0 18px;
    gap: 0;
    display: flex;
    flex-direction: column-reverse;
    min-height: 0;
  }

  .visual {
    height: 43%;
    flex: none;
  }

  .visual .photo-caption {
    left: 18px;
    bottom: 17px;
    font-size: 9px;
  }

  .visual .photo-num {
    bottom: 12px;
    right: 16px;
    font-size: 30px;
  }

  .photo-top {
    top: 16px;
    right: 17px;
  }

  .info {
    flex: 1;
    justify-content: center;
    padding: 13px 5px;
    min-height: 0;
  }

  .eyebrow {
    font-size: 9px;
  }

  .description {
    font-size: 12px;
    line-height: 1.65;
    max-width: 95%;
    margin: 0;
  }

  .info-bottom {
    margin-top: 15px;
  }

  .circle-next {
    width: 38px;
    height: 38px;
    font-size: 20px;
  }

  .footer {
    height: 85px;
    padding: 0 12px;
    gap: 3px;
  }

  .scene-tabs {
    width: 100%;
    justify-content: space-between;
  }

  .tab {
    font-size: 10px;
    padding: 10px 5px;
  }

  .tab.active:after {
    left: 5px;
    right: 5px;
  }

  .foot-right {
    display: none;
  }
}

@media(max-height:720px) and (min-width:761px) {
  .top {
    height: 70px;
  }

  .footer {
    height: 76px;
  }

  .info-bottom {
    margin-top: 22px;
  }
}

@media(max-height:690px) and (max-width:760px) {
  .top {
    height: 58px;
  }

  .footer {
    height: 60px;
  }

  .visual {
    height: 38%;
  }

  .description {
    font-size: 11px;
  }

  .info-bottom {
    margin-top: 10px;
  }
}

.visual:before {
  border-radius: inherit;
}

.visual img {
  animation: floatPhoto 9s ease-in-out infinite alternate;
}

.visual:after {
  background: linear-gradient(180deg,transparent 48%,rgba(8,19,12,.62));
}

@keyframes floatPhoto {
from {
    object-position:48% 50%
  }

  to {
    object-position:55% 50%
  }
}

@keyframes shapeEnter {
from {
    opacity:.65;
    transform:translateY(14px) scale(.97);
    border-radius:12% 48% 8px 8px / 12% 24% 8px 8px
  }

  to {
    opacity:1;
    transform:translateY(0) scale(1)
  }
}

/* Вибір будинку у сцені */
.house-picker {
  display: none;
}

.house-picker.show {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
}

.house-choice {
  min-width: 0;
  color: var(--ink);
}

.house-choice:hover img,.house-choice.active img {
  filter: saturate(1);
}

.house-choice span {
  margin-top: 4px;
}

.demo-note {
  position: absolute;
  z-index: 4;
  left: 25px;
  top: 25px;
  background: #f2f0e9e8;
  color: #30483a;
  padding: 8px 11px;
  font-size: 9px;
  letter-spacing: .07em;
  display: none;
}

.demo-note.show {
  display: block;
}

@media(max-width:760px) {
  .visual {
    border-radius: 46% 46% 5px 5px / 25% 25% 5px 5px;
    box-shadow: 12px 10px 0 -5px #d5ded1;
  }

  .house-choice {
    padding: 3px 3px 6px;
  }

  .house-choice span {
    margin-top: 2px;
  }

  .demo-note {
    left: 12px;
    top: 12px;
    font-size: 8px;
    padding: 6px;
  }
}

.visual {
  border-radius: 0!important;
  transition: clip-path .7s ease;
}

.visual:before {
  display: none!important;
}

.visual img,.visual:after {
  border-radius: 0!important;
}

.changing .visual {
  animation: frameReveal .8s cubic-bezier(.2,.7,.2,1) both!important;
}

@keyframes frameReveal {
from {
    opacity:.45;
    transform:translateY(12px) scale(.985)
  }

  to {
    opacity:1;
    transform:translateY(0) scale(1)
  }
}

.house-picker {
  max-width: 540px!important;
}

.house-choice {
  padding: 0!important;
  box-shadow: none!important;
}

.house-choice:hover {
  transform: translateY(-3px);
  box-shadow: none!important;
  border-color: #829483!important;
}

.house-choice.active {
  background: #f4f3ed!important;
}

.house-choice img {
  width: 100%;
  object-fit: cover;
  display: block;
  filter: saturate(.78);
}

.house-choice strong {
  font: 600 13px 'Manrope',sans-serif!important;
  letter-spacing: .025em;
  white-space: nowrap;
}

.house-choice span {
  font-size: 10px!important;
  color: #7a8378;
}

.house-picker.show~.info-bottom {
  margin-top: 23px!important;
}

@media(max-width:760px) {
  .house-choice span {
    font-size: 9px!important;
  }

  .house-picker.show~.info-bottom {
    margin-top: 10px!important;
  }
}

@media(max-height:720px) and (min-width:761px) {
  .house-choice img {
    height: 75px!important;
  }

  .house-picker {
    margin-top: 12px!important;
  }
}

.visual {
  clip-path: none!important;
  margin: 12px 18px 16px 0!important;
  overflow: visible!important;
  background: transparent!important;
  isolation: isolate;
  box-shadow: none!important;
  transform: none!important;
  animation: none!important;
}

.visual:before {
  content: ""!important;
  position: absolute!important;
  inset: 18px -15px -14px 18px!important;
  border: 1px solid #a9b8a7!important;
  background: transparent!important;
  z-index: -1!important;
  pointer-events: none!important;
  opacity: 1!important;
}

.visual img {
  border-radius: 0!important;
  clip-path: none!important;
  transform: scale(1.025);
  transition: transform 1s cubic-bezier(.2,.7,.2,1),opacity .5s!important;
}

.visual:hover img {
  transform: scale(1.085) translate(var(--move-x,0px),var(--move-y,0px))!important;
}

.visual:after {
  border-radius: 0!important;
  pointer-events: none;
}

.visual .photo-top {
  padding: 10px 13px;
  background: rgba(242,240,233,.92);
  color: #30483a!important;
  top: 22px;
  right: 22px;
  backdrop-filter: blur(10px);
}

.visual .photo-caption {
  bottom: 28px;
  left: 27px;
}

.visual .photo-num {
  bottom: 22px;
  right: 24px;
}

.visual .photo-index-line {
  position: absolute;
  z-index: 3;
  left: 27px;
  bottom: 58px;
  width: 58px;
  height: 1px;
  background: rgba(255,255,255,.7);
  transition: width .4s;
}

.visual:hover .photo-index-line {
  width: 105px;
}

.visual .photo-corner {
  position: absolute;
  transition: transform .4s;
}

.visual:hover .photo-corner {
  transform: translate(-4px,-4px);
}

.house-picker {
  gap: 10px!important;
  margin-top: 24px!important;
}

.house-choice {
  position: relative!important;
  border: 1px solid #d5d9d0!important;
  background: #f4f3ed!important;
  overflow: hidden!important;
  text-align: left!important;
}

.house-choice img {
  height: 112px!important;
  transition: transform .5s,filter .4s!important;
}

.house-choice:hover img {
  transform: scale(1.07);
}

.house-choice strong {
  display: block!important;
  padding: 13px 13px 0!important;
}

.house-choice span {
  display: block!important;
  padding: 0 13px!important;
  margin: 5px 0 14px!important;
}

.house-choice.active {
  border-color: #30483a!important;
  box-shadow: inset 0 0 0 1px #30483a!important;
}

.house-choice.active:after {
  content: '✓'!important;
  position: absolute;
  top: 9px!important;
  right: 9px!important;
  display: grid;
  place-items: center;
  width: 25px!important;
  height: 25px!important;
  background: #30483a!important;
  color: white!important;
  border-radius: 50%;
  font-size: 12px;
}

@media(max-width:760px) {
  .visual {
    clip-path: none!important;
  }

  .visual:before {
    inset: 9px -9px -8px 9px!important;
  }

  .visual .photo-top {
    top: 13px;
    right: 13px;
    padding: 7px 9px;
  }

  .visual .photo-index-line {
    bottom: 41px;
    left: 17px;
  }

  .house-picker {
    margin-top: 12px!important;
  }

  .house-choice strong {
    padding: 9px 7px 0!important;
  }

  .house-choice span {
    padding: 0 7px!important;
    margin: 3px 0 9px!important;
  }
}

@media(prefers-reduced-motion:reduce) {
  .visual img,.house-choice img {
    transition: none!important;
  }
}

.visual,.changing .visual {
  transform: none!important;
  animation: none!important;
  transition: none!important;
}

.visual img,.visual:hover img {
  transform: none!important;
  animation: none!important;
  object-position: center!important;
  transition: opacity .45s ease!important;
}

.visual .photo-corner,.visual:hover .photo-corner {
  transform: none!important;
  transition: none!important;
}

.visual .photo-index-line,.visual:hover .photo-index-line {
  width: 58px!important;
  transition: none!important;
}

.house-choice,.house-choice:hover,.house-choice img,.house-choice:hover img {
  transform: none!important;
  animation: none!important;
}

.house-choice {
  transition: border-color .2s,background .2s!important;
}

.changing .visual img {
  animation: calmFade .5s ease both!important;
}

@keyframes calmFade {
from {
    opacity:.45
  }

  to {
    opacity:1
  }
}

@media(max-width:760px) {
  .visual {
    margin: 0 0 9px!important;
  }

  .visual:before,.visual .photo-corner {
    display: none!important;
  }

  .house-choice {
    border-radius: 2px;
    min-height: 102px;
  }

  .house-choice img {
    height: 64px!important;
  }

  .house-picker {
    gap: 6px!important;
  }

  .house-choice strong {
    font-size: 10px!important;
  }

  .photo-top {
    font-size: 8px!important;
  }
}

@media(prefers-reduced-motion:reduce) {
  .changing .visual img {
    animation: none!important;
  }
}

.headline {
  font-size: clamp(38px,3.5vw,56px);
  line-height: 1.12;
  letter-spacing: -.035em;
  margin: 24px 0 20px;
  text-wrap: balance;
}

@media(max-width:1100px) {
  .headline {
    font-size: clamp(36px,3.8vw,48px);
  }
}

@media(max-height:720px) and (min-width:761px) {
  .headline {
    font-size: clamp(34px,3.3vw,46px);
    margin: 18px 0 16px;
  }
}

@media(max-width:760px) {
  .headline {
    font-size: clamp(28px,7.2vw,36px);
    line-height: 1.12;
    margin: 12px 0 10px;
    letter-spacing: -.03em;
  }
}

@media(max-height:690px) and (max-width:760px) {
  .headline {
    font-size: clamp(26px,6.8vw,32px);
    margin: 9px 0 8px;
  }
}

.photo-num {
  display: flex;
  align-items: baseline;
  gap: 6px;
  line-height: 1;
  font-size: 29px!important;
  font-family: 'DM Sans',sans-serif;
  font-weight: 400;
  font-variant-numeric: tabular-nums;
}

.photo-num small {
  font: inherit;
  font-size: 13px;
  vertical-align: baseline;
  margin: 0;
  opacity: .8;
}

.photo-index-line,.photo-corner,.demo-note {
  display: none!important;
}

.circle-next,.arrow {
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--forest);
  display: grid;
  place-items: center;
  min-width: 44px;
  min-height: 44px;
  padding: 10px;
  transition: color .2s,transform .2s;
}

.circle-next:hover,.arrow:hover {
  background: transparent;
  color: #71876e;
  transform: translateX(3px);
}

.circle-next svg,.arrow svg {
  width: 28px;
  height: 18px;
  display: block;
}

.rail-copyright {
  font-size: 9px;
  letter-spacing: .12em;
  color: var(--muted);
}

.modal {
  width: min(660px,100%);
  border-radius: 4px;
}

.modal h2 {
  font-size: 36px;
}

.field-hint,.optional {
  font-size: 10px;
  color: var(--muted);
  font-weight: 400;
  line-height: 1.5;
}

.form-section {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.wide {
  grid-column: 1/-1;
}

.pet-check {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 12px;
  padding: 10px 0;
}

.pet-check input {
  accent-color: var(--forest);
  width: 17px;
  height: 17px;
}

.pet-check span {
  margin-left: auto;
  font-size: 10px;
  color: var(--muted);
}

.pet-fields {
  display: grid;
}

.booking-summary {
  margin: 24px 0 18px;
  padding: 18px;
  background: #e9ece3;
  border-radius: 3px;
}

.summary-title {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .15em;
  margin-bottom: 12px;
  color: var(--forest);
}

#bookingDetails {
  font-size: 12px;
  line-height: 1.85;
  color: #5d685d;
  white-space: pre-line;
}

.booking-summary .summary {
  margin: 12px 0 0;
  padding: 12px 0 0;
  border-bottom: 0;
  padding-bottom: 0;
}

.summary-note {
  font-size: 10px!important;
  margin-bottom: 0;
}

.booking-status {
  font-size: 12px;
  line-height: 1.7;
  padding: 14px;
  margin-top: 14px;
  border: 1px solid var(--line);
}

.house-explore {
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
}

.house-explore.hidden {
  display: none;
}

.hotspot {
  position: absolute;
  pointer-events: auto;
  display: flex;
  align-items: center;
  gap: 7px;
  border: 0;
  border-radius: 20px;
  background: #f2f0e9ed;
  color: #30483a;
  padding: 8px 12px;
  font-size: 11px;
  min-height: 38px;
  box-shadow: 0 2px 12px #0002;
}

.hotspot:before {
  content: '+';
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--forest);
  color: white;
  font-size: 15px;
}

.hotspot[aria-expanded=true]:before {
  content: '−';
}

.hotspot:nth-child(1) {
  left: 10%;
  top: 41%;
}

.hotspot:nth-child(2) {
  right: 9%;
  top: 52%;
}

.hotspot:nth-child(3) {
  left: 20%;
  top: 66%;
}

.explore-card {
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 65px;
  background: #f2f0e9f5;
  border-radius: 5px;
  padding: 16px 35px 16px 16px;
  pointer-events: auto;
  color: var(--ink);
  box-shadow: 0 8px 30px #0002;
}

.explore-card strong {
  font: normal 22px Georgia,serif;
}

.explore-card p {
  font-size: 12px;
  line-height: 1.65;
  margin: 7px 0 0;
}

.explore-close {
  position: absolute;
  right: 8px;
  top: 6px;
  background: none;
  border: 0;
  font-size: 23px;
  color: var(--ink);
}

@media(max-width:760px) {
  .photo-num {
    font-size: 23px!important;
  }

  .photo-num small {
    font-size: 11px;
  }

  .modal {
    padding: 23px 19px;
  }

  .modal h2 {
    font-size: 30px;
  }

  .hotspot {
    font-size: 10px;
    padding: 5px 8px;
    min-height: 34px;
  }

  .explore-card {
    bottom: 48px;
    padding: 12px 30px 12px 12px;
  }

  .explore-card strong {
    font-size: 18px;
  }

  .explore-card p {
    font-size: 11px;
    margin-top: 4px;
  }
}

.visual .photo-corner {
  display: block!important;
  top: -9px;
  left: -9px;
  width: 42px;
  height: 42px;
  border-left: 1.5px solid #30483a;
  border-top: 1.5px solid #30483a;
  z-index: 6;
  pointer-events: none;
}

.pet-fields {
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 10px;
}

.pet-fields .field {
  min-width: 0;
}

.pet-fields select {
  padding: 12px 8px;
  font-size: 12px;
}

.confirmation-modal {
  text-align: center;
  width: min(450px,100%);
  padding: 38px 28px;
}

.confirmation-icon {
  width: 48px;
  height: 48px;
  border: 1px solid #9bab97;
  border-radius: 50%;
  display: grid;
  place-items: center;
  margin: 0 auto 20px;
  font-size: 24px;
  color: var(--forest);
}

.confirmation-modal h2 {
  font-size: 32px;
  margin: 0 0 14px;
}

.confirmation-modal p {
  font-size: 14px;
  line-height: 1.8;
}

.confirmation-modal .demo-caption {
  font-size: 10px;
  color: var(--muted);
  margin-top: 16px;
}

.confirmation-modal .send {
  margin-top: 16px;
}

@media(max-width:760px) {
  .visual {
    overflow: visible!important;
  }

  .visual .photo-corner {
    display: block!important;
    top: -5px;
    left: -5px;
    width: 26px;
    height: 26px;
  }

  .pet-fields {
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 7px;
  }

  .pet-fields .field {
    font-size: 10px;
  }

  .pet-fields select {
    font-size: 11px;
    padding: 11px 5px;
  }
}

.photo-viewport {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: inherit;
}

.visual .photo-viewport #photo {
  transform: scale(1)!important;
  animation: none!important;
  transition: opacity .45s ease!important;
}

.changing .visual .photo-viewport #photo {
  animation: gentlePhotoZoomOut 9s cubic-bezier(.16,.5,.35,1) both!important;
}

@keyframes gentlePhotoZoomOut {
from {
    transform:scale(1.055);
    opacity:.65
  }

  12% {
    opacity:1
  }

  to {
    transform:scale(1);
    opacity:1
  }
}

@media(prefers-reduced-motion:reduce) {
  .changing .visual .photo-viewport #photo {
    animation: none!important;
    transform: none!important;
  }
}

.photo-motion {
  position: absolute;
  inset: 0;
  will-change: transform;
}

#petFields {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#phoneFormat {
  font-size: 11px;
  padding: 8px 10px;
}

#phone[aria-invalid="true"] {
  border-color: #a65b4a;
}

#phoneHint.error {
  color: #9a4e3e;
}

.family-grid {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  gap: 16px;
}

.family-grid>div {
  min-width: 0;
}

.family-grid .field {
  margin-top: 12px;
}

.family-grid .pet-check {
  padding-bottom: 5px;
}

.house-multi {
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;
  flex-direction: column;
  font-size: 11px;
}

.house-multi legend {
  font-weight: 700;
}

.house-multi label {
  display: flex;
  align-items: center;
  gap: 8px;
}

.house-multi input {
  accent-color: var(--forest);
}

.photo-motion {
  animation: photoDistance 12s linear infinite alternate;
  transform-origin: center;
}

@keyframes photoDistance {
from {
    transform:scale(1.22)
  }

  to {
    transform:scale(1)
  }
}

.house-multi {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 9px;
}

.house-multi legend {
  margin-bottom: 8px;
}

.house-selection-hint {
  grid-column: 1/-1;
  margin-bottom: 2px;
}

.house-multi label {
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 3px;
  padding: 10px 8px;
  background: #f8f8f3;
  cursor: pointer;
  font-size: 11px;
  white-space: nowrap;
}

.house-multi label:has(input:checked) {
  border-color: var(--forest);
  background: #e5eadf;
}

.house-multi label:focus-within {
  outline: 2px solid #849a7d;
  outline-offset: 2px;
}

.house-multi input {
  width: 16px;
  height: 16px;
  flex: none;
  margin: 0;
}

#phoneHint[hidden] {
  display: none!important;
}

@media(max-width:400px) {
  .house-multi {
    gap: 5px;
  }

  .house-multi label {
    font-size: 10px;
    padding: 9px 5px;
    gap: 5px;
  }
}

/* Кастомні випадайки */
.house-dropdown {
  position: relative;
  font-weight: 400;
}

.house-dropdown-trigger {
  width: 100%;
  min-height: 46px;
  padding: 13px 12px;
  border: 1px solid #d6d9d0;
  background: #fff;
  color: var(--ink);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  text-align: left;
  font-size: 12px;
}

.house-dropdown-trigger svg {
  flex: none;
  transition: transform .2s;
}

.house-dropdown-trigger[aria-expanded="true"] svg {
  transform: rotate(180deg);
}

.house-dropdown-trigger:focus-visible,.house-dropdown-panel button:focus-visible {
  outline: 2px solid #849a7d;
  outline-offset: 2px;
}

.house-dropdown-panel {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  z-index: 20;
  padding: 8px;
  background: #fff;
  border: 1px solid #d6d9d0;
  box-shadow: 0 12px 30px #22302420;
  border-radius: 3px;
}

.house-dropdown-panel[hidden] {
  display: none!important;
}

.house-dropdown-panel p {
  font-size: 10px;
  margin: 5px 8px 8px;
  color: var(--muted);
}

.house-dropdown-panel label {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 52px;
  padding: 10px;
  cursor: pointer;
  border-radius: 2px;
  font-size: 12px;
}

.house-dropdown-panel label:has(input:checked) {
  background: #e9eee4;
}

.house-dropdown-panel label:hover {
  background: #f0f2ec;
}

.house-dropdown-panel input {
  accent-color: var(--forest);
  width: 18px;
  height: 18px;
  flex: none;
  margin: 0;
}

.house-dropdown-panel small {
  display: block;
  color: var(--muted);
  font-size: 10px;
  margin-top: 4px;
}

.house-dropdown-panel button {
  display: block;
  width: 100%;
  min-height: 40px;
  border: 0;
  border-top: 1px solid var(--line);
  margin-top: 7px;
  padding: 10px;
  background: var(--forest);
  color: #fff;
  font-size: 11px;
}

.guest-panel {
  min-width: 230px;
  left: auto;
  right: 0;
}

.guest-panel .guest-control {
  display: grid;
  grid-template-columns: 1fr 65px;
  gap: 4px 8px;
  cursor: default;
  padding: 11px 8px;
}

.guest-control small {
  grid-column: 1;
  grid-row: 2;
}

.guest-control select {
  grid-column: 2;
  grid-row: 1/3;
  width: 100%;
  padding: 9px 4px;
  font-size: 12px;
}

.guest-panel .guest-control:last-of-type {
  grid-template-columns: 1fr 105px;
}

/* Поля дат із незмінним часом */
.date-input-shell {
  background: #fff;
}

.date-input-shell input[type=date] {
  min-height: 28px;
}

.date-fixed-time {
  color: var(--muted);
  font-weight: 400;
  pointer-events: none;
}

/* Згода з правилами */
.rules-accept {
  font-size: 11px;
  line-height: 1.6;
}

.rules-accept label {
  display: flex;
  align-items: center;
  gap: 9px;
}

.rules-accept input {
  accent-color: var(--forest);
  margin: 0;
  width: 17px;
  height: 17px;
  flex: none;
}

.rules-accept button {
  font-size: 11px;
}

.rules-modal {
  width: min(580px,100%);
}

.rules-modal h2 {
  font-size: 30px;
}

.rules-modal ul {
  padding-left: 20px;
  font-size: 13px;
  line-height: 1.8;
  color: #646d64;
}

.rules-modal li {
  margin: 10px 0;
}

.date-input-shell {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 7px;
  padding: 0 10px;
  height: 46px;
  min-width: 0;
  border: 1px solid #d6d9d0;
}

.date-input-shell:focus-within {
  border-color: #73866e;
  box-shadow: 0 0 0 1px #73866e;
}

.date-input-shell input[type=date] {
  flex: 1 1 0;
  width: 0;
  min-width: 0;
  height: 44px;
  border: 0!important;
  outline: none!important;
  box-shadow: none!important;
  padding: 0;
  background: transparent;
  font-size: 12px;
  font-weight: 400;
  color: var(--ink);
}

.date-fixed-time {
  flex: none;
  font-size: 10px;
  white-space: nowrap;
}

.rules-accept {
  margin: 15px 0;
}

.rules-accept label {
  font-size: 10px;
  line-height: 1.65;
}

.rules-accept button {
  display: inline;
  padding: 0;
  margin: 0;
  border: 0;
  border-bottom: 1px solid #a8b4a3;
  border-radius: 0;
  font: inherit;
  line-height: inherit;
  color: var(--forest);
  text-align: left;
  background: none;
}

@media(max-width:420px) {
  .date-input-shell {
    padding: 0 6px;
    gap: 4px;
  }

  .date-input-shell input[type=date] {
    font-size: 10px;
  }

  .date-fixed-time {
    font-size: 8px;
  }
}

/* Знижка */
.discount-shell {
  display: flex;
  align-items: center;
  background: white;
  border: 1px solid #d6d9d0;
  min-height: 46px;
  padding-right: 12px;
  gap: 8px;
}

.discount-shell:focus-within {
  border-color: #73866e;
}

.discount-shell #discount {
  border: 0;
  outline: 0;
  box-shadow: none;
  flex: 1;
  min-width: 0;
  padding-right: 4px;
}

.discount-shell #discountRate {
  font-size: 11px;
  font-weight: 500;
  color: var(--forest);
  white-space: nowrap;
}

.send:disabled {
  opacity: .6;
  cursor: wait;
}

.logo {
  font-family: 'Bruno Ace SC',sans-serif;
  font-weight: 400;
  font-style: normal;
  letter-spacing: 0;
  line-height: 1.15;
  font-size: 27px;
}

.logo span {
  font-style: normal;
  line-height: 1.4;
}

@media(max-width:760px) {
  .logo {
    font-size: 23px;
  }
}

.logo span {
  font-family: 'Gotham Pro',sans-serif;
  font-weight: 400;
  letter-spacing: .105em;
  font-size: 8px;
  margin-top: 5px;
  white-space: nowrap;
}

.top-center {
  font-family: 'Gotham Pro',sans-serif;
  font-weight: 400;
  text-transform: none;
  letter-spacing: .025em;
  font-size: 10px;
  text-align: center;
  line-height: 1.7;
  max-width: 600px;
}

@media(max-width:760px) {
  .logo span {
    font-size: 7px;
  }
}

.rail .mark {
  width: 62px;
  height: 48px;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
}

.rail .mark img {
  display: block;
  width: 58px;
  height: 44px;
  object-fit: contain;
}

#tubDaysField[hidden], #poolDaysField[hidden], #serviceDaysNote[hidden] {
  display: none;
}

.service-dates { max-height: 280px; overflow-y: auto; }
.service-date-row { padding: 6px; margin: 3px 0; border-radius: 3px; }
.service-date-row:has(input:checked) { background: #e9eee4; }
.service-panel .service-date-row label { min-height: 40px; padding: 8px; background: transparent; }
.service-date-row select { width: calc(100% - 16px); margin: 4px 8px 8px; padding: 9px; font-size: 12px; border-radius: 3px; }
.service-panel { min-width: 230px; }

#discountProofField[hidden] { display: none; }
#discountProofField { min-width: 0; }

/* Статичні фотографії без масштабування, руху та анімації появи. */
.photo-motion,
.visual .photo-viewport #photo,
.changing .visual .photo-viewport #photo,
.visual img,
.visual:hover img,
.changing .visual img,
.house-choice img,
.house-choice:hover img {
  animation: none!important;
  transition: none!important;
  transform: none!important;
  will-change: auto;
}

/* Вертикальний опис у лівій панелі. */
.rail-word {
  font-size: clamp(7px, 1.05vh, 10px);
  letter-spacing: .08em;
  white-space: nowrap;
}

/* Обидва посилання бренду мають однакову висоту. */
.logo {
  height: 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  line-height: 1;
  color: inherit;
  text-decoration: none;
}
.logo span { line-height: 1; }
.rail .mark { height: 40px; }
.rail .mark img { width: auto; height: 40px; }
.logo:focus-visible, .mark:focus-visible { outline: 2px solid var(--forest); outline-offset: 5px; }

.logo img { display: block; width: auto; height: 40px; object-fit: contain; }

.call-icon { display: none; }
.call-link:focus-visible { outline: 2px solid var(--forest); outline-offset: 3px; }
@media(max-width:760px) {
  .top { gap: 10px; }
  .top .logo { flex-shrink: 1; min-width: 0; }
  .top .logo img { width: clamp(80px, 25vw, 140px); height: auto; max-height: 40px; }
  .top-actions { gap: 8px; flex-shrink: 0; }
  .top-actions .call-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 0;
    color: var(--forest);
  }
  .call-icon { display: block; }
  .call-label { display: none; }
}

.booking-summary #servicesNote { margin: 6px 0 0; line-height: 1.5; }

/* Однакова висота вибору знижки та завантаження документа. */
.discount-shell { height: 46px; min-height: 46px; }
.discount-shell #discount { height: 44px; padding-top: 0; padding-bottom: 0; }
#discountProof { height: 46px; padding: 10px 12px; font-size: 11px; }
.rules-modal .modal-head { gap: 12px; }
.rules-modal .modal-head .close { flex-shrink: 0; }
#rulesTitle { line-height: 1.6; }

.proof-upload {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  height: 46px;
  padding: 8px;
  background: #fff;
  border: 1px solid #d6d9d0;
  min-width: 0;
  font-size: 10px;
  font-weight: 400;
}
.proof-upload #discountProof {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  opacity: 0;
  cursor: pointer;
}
.proof-upload:focus-within { outline: 2px solid var(--forest); outline-offset: 2px; }
.proof-upload-button { flex: none; padding: 6px 8px; background: #e9eee4; color: var(--forest); }
#discountProofName { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.booking-summary .summary { margin: 8px 0 0; padding: 8px 0 0; gap: 12px; }
.booking-summary .summary strong { font-size: 25px; line-height: 1.15; white-space: nowrap; }
.booking-summary #servicesNote { margin: 3px 0 0; line-height: 1.35; }

.modal h2.compact-title { font-size: 22px; line-height: 1.25; margin: 14px 0 8px; text-align: center; }

/* Короткі інформаційні заголовки замість великих слоганів. */
.headline {
  font-family: 'Gotham Pro', sans-serif;
  font-size: clamp(26px, 2.5vw, 36px);
  font-weight: 400;
  font-style: normal;
  line-height: 1.2;
  letter-spacing: -.025em;
  color: var(--ink);
  margin: 18px 0 14px;
}
.headline em { font-style: normal; color: inherit; }
.top-actions .mobile-instagram { display: none; }
@media(max-width:760px) {
  .headline { font-size: clamp(22px, 5.8vw, 28px); margin: 10px 0; }
  .top-actions { gap: 4px; }
  .top-actions .mobile-instagram { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 40px; }
  .mobile-instagram img { display: block; width: 32px; height: 32px; }
  .top-actions .call-link { width: 32px; }
}
@media(max-width:360px) {
  .top { padding-left: 12px; padding-right: 12px; gap: 6px; }
  .top .logo img { width: 72px; }
  .reserve { padding-left: 8px; padding-right: 8px; font-size: 9px; }
}

/* Обкладинка сцени: типографіка виходить за межі текстової колонки. */
.info:has(.house-picker.show) .title-composition {
  width: 100%;
  margin-top: 12px;
}
.info:has(.house-picker.show) .headline-line + .headline-line {
  margin-left: 0;
  max-width: calc(100% - 8px);
}
.info { z-index: 2; }
.title-composition {
  position: relative;
  z-index: 3;
  width: calc(100% + clamp(90px, 13vw, 210px));
  margin: 24px 0 22px;
  isolation: isolate;
}
.scene-marker { display: none; }
.title-composition .headline {
  margin: 0;
  padding: 0;
  border: 0;
  font-family: 'Gotham Pro', sans-serif;
  font-size: clamp(44px, 5.1vw, 78px);
  font-style: normal;
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -.075em;
  color: var(--ink);
  text-wrap: initial;
}
.headline-line {
  display: table;
  position: relative;
  max-width: 100%;
  padding: 4px 24px 12px 0;
  background: var(--paper);
}
.headline-line:first-child::after {
  content: '';
  position: absolute;
  right: -18px;
  top: 0;
  bottom: 0;
  width: 20px;
  background: var(--paper);
  clip-path: polygon(0 0, 100% 0, 0 100%);
}
.headline-line + .headline-line {
  margin-top: -2px;
  margin-left: 34px;
  padding: 10px 25px 12px 18px;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: .56em;
  line-height: 1.15;
  letter-spacing: -.035em;
  background: var(--forest);
  color: var(--paper);
  box-shadow: 7px 7px 0 #b8c2af;
  transform: rotate(-2deg);
}
.title-composition::after {
  content: 'SKADI / FOREST ESCAPE';
  display: block;
  width: max-content;
  margin: 23px 0 0 3px;
  font: 8px 'Gotham Pro', sans-serif;
  letter-spacing: .23em;
  color: var(--muted);
}
.info > .description { position: relative; z-index: 2; }
@media(min-width:761px) and (max-height:740px) {
  .title-composition { margin: 14px 0 15px; }
  .title-composition .headline { font-size: clamp(40px, 4.5vw, 62px); }
  .title-composition::after { margin-top: 18px; }
}
@media(max-width:760px) {
  .info { overflow: visible; }
  .title-composition {
    order: -1;
    width: calc(100% + 10px);
    margin: -35px 0 18px -5px;
  }
  .title-composition .headline { font-size: clamp(30px, 8.4vw, 45px); line-height: 1.02; }
  .headline-line { padding: 8px 14px 10px 5px; }
  .headline-line + .headline-line {
    margin-left: 22px;
    padding: 7px 15px 9px;
    font-size: .58em;
    box-shadow: 4px 4px 0 #b8c2af;
  }
  .title-composition::after { display: none; }
  .info > .eyebrow { font-size: 8px; letter-spacing: .16em; margin-bottom: 8px; }
}
@media(max-height:690px) and (max-width:760px) {
  .title-composition { margin-top: -30px; margin-bottom: 12px; }
  .title-composition .headline { font-size: clamp(28px, 7.5vw, 36px); }
  .headline-line + .headline-line { font-size: .57em; }
}

