@font-face {
  font-family: 'Xmas Display';
  src: url('/fonts/PlayfairDisplay/PlayfairDisplay-Regular.woff2') format('woff2');
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: 'Xmas Hand';
  src: url('/fonts/Allura/Allura-Regular.ttf') format('truetype');
  font-weight: 400;
  font-display: swap;
}
.xmas-page {
  --mraz: #eff1ea;
  --paper: #fffdf8;
  --ink: #183f36;
  --muted: #506259;
  --line: #cbd3ca;
  --smrk: #183f36;
  --smrk-soft: #e2e9e1;
  --cesmina: #a52f35;
  --cesmina-dark: #84242a;
  --display: 'Xmas Display', Georgia, serif;
  background: var(--mraz);
  font-size: 16px;
  overflow-x: clip;
  caret-color: var(--smrk);
}
.xmas-page ::selection { background: #c9dacd; color: #122d26; }
.xmas-page :focus-visible { outline: 3px solid #9c7434; outline-offset: 4px; }
.xmas-page .v-top { max-width: 1240px; padding: 24px 32px; }
.xmas-page .v-top__brand { font-family: var(--display); font-size: 30px; font-weight: 400; letter-spacing: -.02em; }
.xmas-page .v-top__mark { width: 32px; height: 39px; }
.xmas-page .v-top__end { gap: 24px; }
.xmas-page .v-top__lang a { display: inline-flex; align-items: center; min-height: 44px; padding: 4px; }
.xmas-page main { position: relative; isolation: isolate; }
.xm-sprig { position: absolute; z-index: -1; top: -20px; right: 0; width: clamp(180px, 25vw, 340px); height: auto; pointer-events: none; }
.xmas-page .v-buy { max-width: 1240px; padding: 24px 32px 88px; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); gap: 64px; }
.xmas-page .v-buy__intro { position: sticky; top: 24px; display: block; }
.xmas-page .v-buy__intro::before { display: none; }
.xmas-page .v-buy h1 { font-family: var(--display); font-weight: 400; color: var(--ink); font-size: clamp(40px, 4.4vw, 58px); line-height: 1.12; letter-spacing: -.025em; margin: 0; max-width: 16ch; text-wrap: balance; }
.xmas-page .v-lead { max-width: 38ch; margin-top: 20px; color: var(--ink); font-size: 18px; line-height: 1.55; }
.xmas-page .v-scene { margin-top: 28px; grid-template-columns: 1.15fr 1fr; grid-template-rows: 248px; gap: 5px; border-radius: 14px; }
.xmas-page .v-scene__tile:first-child { grid-column: auto; }
.xmas-page .v-scene__tile img { object-position: 55% 60%; }
.xmas-page .v-scene__tile:first-child img { object-position: 60% 70%; }
.xmas-page .v-scene__tile figcaption { font-size: 13px; padding: 28px 12px 10px; }
.xmas-page .v-preview { margin-top: 32px; }
.xmas-page .v-preview .v-ticket { margin: 0; }
.xmas-page .v-ticket { padding: 26px; min-height: 284px; border: 0; border-radius: 14px; background: #faf8f0 url('/img/xmas/voucher-paper.webp') center / cover no-repeat; box-shadow: 0 12px 24px -18px #283a2b66; overflow: hidden; }
.xmas-page .v-ticket::before, .xmas-page .v-ticket::after { content: none; }
.xmas-page .v-ticket__head { display: flex; flex-direction: row; align-items: center; gap: 10px; padding: 0; color: var(--ink); }
.xmas-page .v-ticket__head .v-top__mark { width: 22px; height: 27px; }
.xmas-page .v-ticket__head span:last-child { font-family: var(--display); color: var(--ink); text-transform: none; font-size: 21px; letter-spacing: -.02em; }
.xmas-page .v-ticket__title { font-family: var(--display); color: var(--ink); font-size: clamp(27px, 3.2vw, 38px); line-height: 1.15; margin-top: 20px; letter-spacing: -.02em; }
.xmas-page .v-ticket__what { max-width: 75%; font-size: 13px; margin-top: 12px; line-height: 1.5; }
.xmas-page .v-ticket__note { font-family: 'Xmas Hand', cursive; font-style: normal; font-size: 36px; line-height: 1.15; max-width: 78%; padding: 0; margin: 20px 0; min-height: 2.3em; color: var(--ink); }
.xmas-page .v-ticket__note.is-empty { color: var(--ink); }
.xmas-page .v-ticket__foot { max-width: 78%; border: 0; padding: 0; color: #4e5e50; font-size: 10px; }
.xmas-page .v-facts { margin-top: 24px; font-size: 14px; }
.xmas-page .v-facts li::before { background: #718266; }
.xmas-page .v-form { padding: 0; border: 0; border-radius: 0; box-shadow: none; background: none; gap: 24px; }
.xmas-page .v-field legend, .xmas-page .v-input > span { font-size: 16px; }
.xmas-page .v-form > .v-field:first-child legend { font-family: var(--display); font-weight: 400; font-size: 28px; margin-bottom: 18px; }
.xmas-page .v-choices--duration { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.xmas-page .v-choice { border-radius: 16px; padding: 15px 8px; background: #ffffffa6; }
.xmas-page .v-choice__len { font-size: 20px; }
.xmas-page .v-choice__price { font-size: 13px; }
.xmas-page .v-choice:has(input:checked) { color: white; background: var(--smrk); border-color: var(--smrk); box-shadow: none; }
.xmas-page .v-choice:has(input:checked) .v-choice__name, .xmas-page .v-choice:has(input:checked) .v-choice__price { color: white; }
.xmas-page .v-choice:hover { border-color: var(--smrk); }
.xmas-page .v-choices--people { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.xm-purchase { display: grid; gap: 18px; }
.xm-total { display: grid; gap: 4px; color: var(--muted); font-size: 15px; }
.xm-total strong { color: var(--ink); font: 400 46px/1.15 var(--display); font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.xmas-page .v-buy-btn { border-radius: 12px; min-height: 58px; padding: 14px 20px; font-size: 17px; font-weight: 500; text-align: center; }
.xmas-page .xm-continue { font-family: var(--display); font-size: 24px; font-weight: 400; }
.xm-reassurance { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 13px; color: var(--ink); }
.xm-reassurance li + li { border-left: 1px solid var(--line); padding-left: 20px; }
.xm-details-title { padding-top: 24px; border-top: 1px solid var(--line); scroll-margin-top: 24px; }
.xmas-page .xm-details-title h2, .xmas-page .xm-contact-title h2 { font-size: 28px; line-height: 1.2; margin: 0; }
.xm-contact-title { padding-top: 24px; border-top: 1px solid var(--line); scroll-margin-top: 24px; }
.xm-contact-title p { margin-top: 10px; font-size: 14px; color: var(--muted); }
.xmas-page .v-input input, .xmas-page .v-input textarea { border-radius: 10px; background: #ffffffc9; }
.xmas-page .v-input input::placeholder, .xmas-page .v-input textarea::placeholder { color: #626e65; opacity: 1; }
.xmas-page .v-extra, .xmas-page .v-pay__opt { background: #ffffff66; }
.xmas-page .v-extras, .xmas-page .v-pay { overflow: hidden; border-radius: 12px; }
.xmas-page .v-legal { font-size: 13px; }
.xmas-page .v-place, .xmas-page .v-steps, .xmas-page .v-quotes, .xmas-page .v-faq { max-width: 1240px; padding: 0 32px 88px; }
.xmas-page .v-place { grid-template-columns: 1fr 1.6fr; }
.xmas-page h2 { letter-spacing: -.02em; font-size: clamp(28px, 3.5vw, 42px); line-height: 1.2; }
.xmas-page .v-quotes > h2 { max-width: 24ch; }
.xmas-page .v-quote { border-radius: 14px; background: #ffffff80; }
.xmas-page .v-foot { padding: 32px; background: #e0e7dd; color: var(--ink); border-top: 1px solid var(--line); }
.xmas-page .v-foot a:hover { color: var(--ink); }
.xmas-page .v-cookie-settings { border-color: #8c9c8e; }
.xmas-page .v-cookie-settings:hover { background: #d1ddce; }
.xmas-page #cookie-banner { box-shadow: 0 12px 50px #183f3626; }
@media (max-width: 960px) {
  .xmas-page .v-buy { grid-template-columns: minmax(0, 1fr); max-width: 680px; padding: 20px 24px 72px; gap: 32px; }
  .xmas-page .v-buy__intro { position: static; display: block; }
  .xmas-page .v-buy h1 { max-width: 17ch; font-size: clamp(36px, 6.7vw, 50px); }
  .xmas-page .v-form { order: 0; margin: 0; }
  .xmas-page .v-preview { order: 0; margin-top: 24px; }
  .xmas-page .v-facts { display: none; }
  .xmas-page .v-place { grid-template-columns: minmax(0, 1fr); }
  .xm-sprig { top: -14px; right: -70px; width: 200px; opacity: .8; }
}
@media (max-width: 600px) {
  .xmas-page .v-top { padding: 18px 24px; }
  .xmas-page .v-top__brand { font-size: 25px; gap: 9px; }
  .xmas-page .v-top__mark { width: 27px; height: 33px; }
  .xmas-page .v-top__end { font-size: 14px; gap: 0; }
  .xmas-page .v-buy { padding: 24px 22px 64px; gap: 28px; }
  .xmas-page .v-buy h1 { max-width: 16ch; font-size: clamp(34px, 8.8vw, 46px); letter-spacing: -.025em; }
  .xmas-page .v-lead { font-size: 17px; margin-top: 16px; }
  .xmas-page .v-scene { margin-top: 24px; grid-template-rows: 176px; border-radius: 12px; gap: 4px; }
  .xmas-page .v-scene__tile figcaption { font-size: 11px; }
  .xmas-page .v-ticket { min-height: 242px; padding: 20px; background-position: center; }
  .xmas-page .v-ticket__head span:last-child { font-size: 18px; }
  .xmas-page .v-ticket__title { font-size: clamp(25px, 7vw, 31px); margin-top: 18px; }
  .xmas-page .v-ticket__what { font-size: 12px; }
  .xmas-page .v-ticket__note { font-size: 32px; margin: 16px 0; max-width: 76%; }
  .xmas-page .v-ticket__foot { font-size: 9px; }
  .xmas-page .v-form { gap: 22px; }
  .xmas-page .v-form > .v-field:first-child legend { font-size: 24px; margin-bottom: 16px; }
  .xmas-page .v-choices--duration { gap: 8px; }
  .xmas-page .v-choice { padding: 13px 5px; border-radius: 14px; }
  .xmas-page .v-choice__len { font-size: 18px; }
  .xmas-page .v-choices--duration .v-choice__price { font-size: 11px; }
  .xmas-page .v-choice--small .v-choice__name { font-size: 14px; }
  .xmas-page .v-choice--small .v-choice__price { font-size: 12px; }
  .xm-total strong { font-size: 40px; }
  .xm-reassurance { font-size: 12px; gap: 8px 14px; }
  .xm-reassurance li + li { padding-left: 14px; }
  .xmas-page .v-place, .xmas-page .v-steps, .xmas-page .v-quotes, .xmas-page .v-faq { padding: 0 22px 64px; }
  .xmas-page .v-foot { padding: 28px 22px 100px; gap: 12px 20px; font-size: 14px; }
  .xmas-page .v-row { grid-template-columns: minmax(0, 1fr); }
}
