.item-page { background:#fff; }
.item-hero { position:relative; isolation:isolate; min-height:780px; padding-bottom:68px; color:#fff; background:#59665e; overflow:hidden; }
.item-hero::after { position:absolute; z-index:-1; inset:0; background:rgba(41,40,40,.6); content:""; }
.item-hero__image { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; }
.item-hero__content { display:grid; grid-template-columns:minmax(0,1fr); gap:28px; padding-top:48px; }
.item-hero__copy,.item-rates,.item-booking__contact,.item-booking__calendar,.item-booking__total { min-width:0; }
.item-hero h1 { font-size:clamp(42px,8vw,82px); font-weight:400; line-height:1.03; letter-spacing:-.005em; overflow-wrap:anywhere; }
.item-hero__features { display:flex; flex-wrap:wrap; gap:10px; max-width:620px; margin-top:28px; }
.item-hero__features span { padding:10px 26px; border:1px solid #fff; border-radius:30px; background:rgba(255,255,255,.15); font-size:18px; line-height:1.3; }
.item-hero__icons { display:flex; flex-wrap:wrap; align-items:center; gap:19px; margin-top:30px; }
.item-hero__icons img { width:50px; height:50px; object-fit:contain; }
.item-rates dl { margin:0; padding:24px 26px; border-radius:20px; background:rgba(255,255,255,.15); }
.item-rates dl div { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 16px; padding:13px 0; border-bottom:1px solid rgba(255,255,255,.7); font-size:20px; line-height:1.25; }
.item-rates dl div:last-child { border:0; }
.item-rates dd { margin:0 0 0 auto; text-align:right; white-space:nowrap; }
.item-rates p { margin:20px 0 0; font-size:16px; line-height:1.3; overflow-wrap:anywhere; }
.item-gallery { position:relative; margin-top:40px; }
.item-gallery__track { display:flex; gap:12px; overflow:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
.item-gallery__track::-webkit-scrollbar { display:none; }
.item-gallery__photo { flex:0 0 min(68vw,273px); height:290px; padding:0; overflow:hidden; border:1px solid #fff; border-radius:24px; background:rgba(255,255,255,.12); cursor:zoom-in; scroll-snap-align:start; }
.item-gallery__photo img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.item-gallery__photo:hover img { transform:scale(1.04); }
.item-gallery__arrow { display:none; position:absolute; z-index:1; top:50%; width:48px; height:48px; padding:0; border:1px solid rgba(255,255,255,.2); border-radius:50%; color:#fff; background:rgba(255,255,255,.3); font-size:26px; cursor:pointer; transform:translateY(-50%); }
.item-gallery__arrow--previous { left:var(--page-gutter); }
.item-gallery__arrow--next { right:var(--page-gutter); }
.item-gallery__note { position:absolute; right:var(--page-gutter); bottom:-26px; font-size:12px; }
.item-booking { padding:70px 0 82px; }
.item-booking__top { display:grid; grid-template-columns:minmax(0,1fr); gap:45px; }
.item-booking__contact h2 { font-size:clamp(34px,5vw,44px); font-weight:400; line-height:1.18; letter-spacing:-.025em; }
.item-booking__intro { max-width:460px; margin:28px 0 25px; font-size:18px; line-height:1.3; }
.item-field { display:block; margin-top:12px; }
.item-field__label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.item-field input { width:100%; height:48px; padding:0 24px; border:1px solid #9397a6; border-radius:30px; background:#fff; font:inherit; font-size:18px; }
.item-field input::placeholder { color:#797b8c; opacity:1; }
.item-field input:focus { outline:2px solid var(--green); outline-offset:2px; }
.item-booking__required { margin-top:20px; color:#797b8c; font-size:15px; text-align:right; }
.item-booking__required b { color:#a73226; }
.item-booking__details { margin-top:20px; font-size:14px; color:#6b6d6e; }
.item-booking__details summary { cursor:pointer; }
.item-booking__details label { display:grid; min-width:0; gap:8px; margin-top:18px; color:var(--ink); }
.item-booking__details input,.item-booking__details textarea { width:100%; min-width:0; padding:10px 12px; border:1px solid #a3aa9d; border-radius:10px; background:white; font:inherit; }
.item-request__date-row { display:grid; grid-template-columns:minmax(0,1fr); gap:15px; }
.item-request__time-note { margin-top:12px; font-size:12px; }
.item-booking__calendar { width:100%; max-width:504px; justify-self:center; }
.item-booking__calendar .booking-calendar { min-height:470px; border:1px solid #fff; box-shadow:0 4px 8px #0005; }
.item-services { margin-top:86px; }
.item-services__heading,.item-service { display:grid; grid-template-columns:minmax(0,1fr) minmax(200px,.9fr) minmax(100px,1fr); align-items:center; gap:16px; }
.item-services__heading { margin-bottom:20px; font-size:12px; }
.item-services__heading span:nth-child(2) { text-align:center; }
.item-services__heading span:last-child { text-align:right; }
.item-service { min-height:70px; padding:16px 0; border-bottom:1px solid #969baa; }
.item-service:last-child { border-bottom:0; }
.item-service__name,.item-service__price { min-width:0; font-size:20px; overflow-wrap:anywhere; }
.item-service__price { text-align:right; }
.item-service__stepper { display:grid; grid-template-columns:34px 1fr 34px; width:100%; max-width:330px; justify-self:center; align-items:center; min-height:36px; border-radius:25px; color:#fff; background:var(--green); }
.item-service__stepper button { width:34px; height:36px; padding:0; border:0; border-radius:50%; color:#fff; background:transparent; font-size:24px; cursor:pointer; }
.item-service__stepper button:disabled { opacity:.3; cursor:default; }
.item-service__stepper output { text-align:center; font-size:16px; }
.item-service__stepper button:focus-visible { outline:2px solid var(--sand); outline-offset:2px; }
.item-booking__bottom { display:grid; grid-template-columns:minmax(0,1fr); gap:30px; margin-top:55px; }
.item-request__availability { max-width:560px; color:#667062; font-size:14px; line-height:1.45; }
.item-request__availability[data-state="error"],.item-request__availability[data-state="unavailable"] { color:#973d30; }
.item-booking__total { text-align:right; justify-self:end; max-width:540px; }
.item-booking__amount { font-size:clamp(32px,4vw,44px); font-weight:400; line-height:1.2; letter-spacing:-.03em; }
.item-booking__summary { margin-top:15px; color:#797b8c; font-size:15px; line-height:1.5; white-space:pre-line; overflow-wrap:anywhere; }
.item-request__submit,[data-unpublished-contact] { margin-top:22px; min-width:152px; cursor:pointer; }
.item-request__submit:disabled { opacity:.6; cursor:wait; }
.item-request__disclaimer { max-width:370px; margin:16px 0 0 auto; color:#797b8c; font-size:12px; line-height:1.5; }
.item-request__message { margin-top:18px; padding:12px 16px; border-radius:12px; color:#953e32; background:#f4e6df; font-size:15px; line-height:1.5; text-align:left; overflow-wrap:anywhere; }
.item-request__message[data-state="success"] { color:#42523a; background:#eaf0e4; }
.item-map { display:block; height:463px; overflow:hidden; background:#ddd; }
.item-map img { width:100%; height:100%; object-fit:cover; }
.item-page .footer { background-image:linear-gradient(#29282899,#29282899),url("./assets/design/common-footer.webp"); background-position:center; }
.item-error { display:grid; gap:22px; justify-items:start; padding:30px; border:1px solid #acb49f; border-radius:24px; font-size:20px; }
.item-back { font-size:16px; text-decoration:underline; text-underline-offset:5px; }
.item-lightbox { max-width:min(94vw,1400px); max-height:94vh; padding:45px 18px 18px; border:0; border-radius:18px; background:#263027; color:white; }
.item-lightbox::backdrop { background:#000b; }
.item-lightbox img { max-height:80vh; width:auto; max-width:100%; margin:auto; object-fit:contain; }
.item-lightbox button { position:absolute; right:12px; top:6px; width:36px; height:36px; padding:0; border:0; color:white; background:transparent; font-size:30px; cursor:pointer; }
.item-error[hidden],.item-request[hidden],.item-hero__image[hidden],.item-gallery[hidden],.item-request__message[hidden],.item-rates[hidden],[data-item-information][hidden],[data-unpublished-contact][hidden],[data-gallery-note][hidden] { display:none; }
@media(min-width:768px) { .item-hero__content { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:35px; } .item-booking__top { grid-template-columns:repeat(2,minmax(0,1fr)); gap:70px; } .item-booking__calendar { justify-self:end; } .item-booking__bottom { grid-template-columns:repeat(2,minmax(0,1fr)); } .item-rates { padding-top:20px; } }
@media(min-width:1200px) { .item-hero { height:auto; min-height:851px; padding-bottom:39px; } .item-hero__content { padding-top:31px; grid-template-columns:640fr 640fr; gap:52px; } .item-hero h1 { line-height:96px; } .item-rates { padding-top:21px; } .item-gallery { max-width:1440px; padding-inline:var(--page-gutter); } .item-gallery__track { gap:10px; } .item-gallery__photo { flex-basis:calc((100% - 30px)/4); height:301px; } .item-gallery__arrow { display:block; } .item-booking { padding-top:77px; padding-bottom:82px; min-height:1078px; } .item-booking__top { grid-template-columns:minmax(0,617px) minmax(0,504px); justify-content:space-between; gap:70px; } .item-booking__intro { margin:32px 0 28px; font-size:18px; } .item-booking__contact h2 { font-size:44px; line-height:52px; } .item-field input { height:48px; } .item-services { margin-top:90px; } .item-page[data-item-layout="estate"] .item-booking { min-height:1488px; } .item-page[data-item-layout="banquet"] .item-booking { min-height:1307px; } .item-page[data-item-layout="playground"] .item-booking { min-height:1126px; } .item-page[data-item-layout="lodging"] .item-booking { min-height:1285px; } }
@media(max-width:1199px) and (min-width:768px) { .item-rates dl div { font-size:17px; } .item-hero__features span { font-size:16px; padding-inline:20px; } .item-hero__icons img { width:40px; height:40px; } .item-booking__calendar .booking-calendar { padding-inline:20px; min-height:430px; } }
@media(min-width:1200px) {
  .item-request__date-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .item-page[data-long-title="true"] .item-hero h1 { font-size:68px; line-height:1.12; }
  .item-booking { padding-bottom:47px; }
  .item-booking__bottom { margin-top:40px; }
  .item-booking__calendar .booking-calendar { min-height:485px; }
  .item-page[data-item-layout="playground"] .item-hero__content { display:block; position:relative; }
  .item-page[data-item-layout="playground"] .item-hero__copy { max-width:950px; }
  .item-page[data-item-layout="playground"] .item-hero h1 { line-height:82px; }
  .item-page[data-item-layout="playground"] .item-hero__features { max-width:950px; }
  .item-page[data-item-layout="playground"] .item-rates { position:absolute; top:65px; right:var(--page-gutter); width:430px; }
}
@media(max-width:767px) { .item-hero { min-height:0; } .item-gallery__photo { height:245px; } .item-map { height:300px; } .item-services { margin-top:50px; } .item-services__heading { display:none; } .item-service { grid-template-columns:1fr auto; gap:12px; } .item-service__stepper { grid-row:2; grid-column:1/-1; max-width:none; min-height:40px; } .item-service__name,.item-service__price { font-size:18px; } .item-booking__calendar .booking-calendar { min-height:400px; } .item-booking__amount { font-size:32px; } .item-booking__contact { min-width:0; } }
@media(prefers-reduced-motion:reduce) { .item-gallery__photo img { transition:none; } }
.item-request__privacy {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid #c9cec7;
  color: var(--deep-green);
  font-size: 14px;
  line-height: 1.6;
}

.item-request__consent {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  cursor: pointer;
}

.item-request__consent input[type="checkbox"] {
  width: 22px;
  height: 22px;
  margin: 2px 0 0;
  accent-color: var(--deep-green);
  cursor: pointer;
}

.item-request__privacy p {
  margin: 10px 0 0 34px;
}

.item-request__privacy a {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.item-request__privacy a:focus-visible,
.item-request__consent input:focus-visible {
  outline: 3px solid var(--deep-green);
  outline-offset: 4px;
}
