.veduta-reservations, .veduta-footer { box-sizing: border-box; color: #ded6bf; }
.veduta-reservations *, .veduta-footer * { box-sizing: border-box; }
.veduta-reservations :where(p,h2,ul), .veduta-footer :where(p) { margin: 0; font-weight: 400; }
.veduta-reservations { margin: 0; padding: 80px 16px; background: #000; scroll-margin-top: 88px; }
.veduta-reservations__grid { display: grid; gap: 16px; max-width: 1152px; margin-inline: auto; }
.veduta-reservations__grid > * { min-width: 0; }
.veduta-reservations__panel, .veduta-press__panel { position: relative; padding: 24px; border: 1px solid rgba(222,214,191,.18); border-radius: 21.6px; }
.veduta-reservations__panel { background: linear-gradient(225deg,#242422 0%,#101010 28%); }
.veduta-press__panel { background: rgba(9,45,39,.75); scroll-margin-top: 88px; }
.veduta-section-label { margin-bottom: 16px !important; font-size: 12px; line-height: 16px; text-transform: uppercase; letter-spacing: .32em; }
.veduta-reservations__title { font-size: 36px; line-height: .95; }
.veduta-reservations__description { margin-top: 28px !important; font-size: 16px; line-height: 1.35; }
.veduta-reservations .veduta-reservations__facts { display: grid; gap: 12px; margin-top: 40px; }
.veduta-reservations__fact { border: 1px solid rgba(222,214,191,.18); padding: 16px; min-width: 0; }
.veduta-fact-label { font-size: 12px; line-height: 24px; text-transform: uppercase; letter-spacing: .2em; }
.veduta-fact-value { margin-top: 12px !important; font-size: 24px; line-height: 32px; }
.veduta-reservations__location .veduta-fact-value { line-height: 1.25; }
.veduta-fact-description { margin-top: 8px !important; font-size: 14px; line-height: 20px; }
.veduta-reservations .veduta-reservations__actions { margin-top: 32px; }
.veduta-arrow-button .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 20px; max-width: 100%; border-radius: 999px; background: #ded6bf; color: #07110f; font-size: 14px; font-weight: 500; line-height: 20px; text-align: left; transition: gap 180ms ease; }
.veduta-arrow-button .wp-block-button__link::after { content: ""; flex: 0 0 36px; width: 36px; height: 36px; border-radius: 50%; background: #07110f url('../icons/arrow-right.svg') center / 18px no-repeat; transition: transform 180ms ease; }
.veduta-arrow-button .wp-block-button__link:hover { gap: 12px; }
.veduta-arrow-button .wp-block-button__link:hover::after { transform: scale(1.1); }
.veduta-press__title { font-size: 30px; line-height: 1; }
.veduta-press__list { padding: 0; margin-top: 32px !important; list-style: none; font-size: 16px; line-height: 1.25; }
.veduta-press__list > li { padding-top: 20px; border-top: 1px solid rgba(222,214,191,.18); }
.veduta-press__list > li + li { margin-top: 20px; }
.veduta-reservations .veduta-press__closing { margin-top: 48px; padding-top: 24px; border-top: 1px solid rgba(222,214,191,.18); }
.veduta-press__closing p { max-width: 448px; font-size: 24px; line-height: 1; }
.veduta-reveal-ready { opacity: 0; transform: translateY(24px); transition: opacity 800ms cubic-bezier(.16,1,.3,1),transform 800ms cubic-bezier(.16,1,.3,1); }
.veduta-reveal-ready.veduta-press__panel { transition-delay: 120ms; }
.veduta-reveal-ready.is-visible { opacity: 1; transform: none; }
.veduta-footer { position: relative; overflow: hidden; background: linear-gradient(180deg,#000 0%,#010504 16%,#020d0b 31%,#041711 46%,#09271f 61%,#0f3a30 78%,#174e3f 100%); }
.veduta-footer::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg,rgba(0,0,0,.38),rgba(0,0,0,.08) 45%,rgba(23,78,63,0)); }
.veduta-footer__top { position: relative; display: grid; gap: 40px; max-width: 1472px; margin-inline: auto; padding: 64px 20px 40px; }
.veduta-footer__top > *, .veduta-footer__columns > * { min-width: 0; }
.veduta-footer__brand .wp-block-site-logo img { display: block; max-width: 100%; height: auto; }
.veduta-footer__statement { max-width: 576px; margin-top: 28px !important; font-size: 24px; line-height: 1.02; }
.veduta-footer__columns { display: grid; gap: 32px; }
.veduta-footer__label { margin-bottom: 16px !important; font-size: 12px; line-height: 16px; text-transform: uppercase; letter-spacing: .28em; color: rgba(222,214,191,.45); }
.veduta-footer__navigation, .veduta-footer__navigation .wp-block-navigation__container { width: 100%; gap: 12px; }
.veduta-footer__navigation .wp-block-navigation-item { width: 100%; }
.veduta-footer__navigation .wp-block-navigation-item__content { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; padding-bottom: 12px; border-bottom: 1px solid rgba(222,214,191,.18); font-size: 14px; line-height: 20px; color: inherit; transition: color 180ms; }
.veduta-footer__navigation .wp-block-navigation-item__content::after { content: ""; flex: 0 0 15px; width: 15px; height: 15px; background: url('../icons/arrow-up-right.svg') center / contain no-repeat; opacity: .45; transition: opacity 180ms,transform 180ms; }
.veduta-footer__navigation a:hover { color: #ded6bf; }
.veduta-footer__navigation a:hover::after { opacity: 1; transform: translate(4px,-4px); }
.veduta-footer__facts { display: grid; gap: 20px; font-size: 14px; line-height: 20px; }
.veduta-footer__value { margin-top: 4px !important; }
.veduta-footer__bottom { position: relative; }
.veduta-footer__legal { position: absolute; right: 20px; left: 20px; bottom: 24px; display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px 24px; }
.veduta-footer__copyright { font-size: 12px; line-height: 16px; text-transform: uppercase; letter-spacing: .3em; }
.veduta-footer__privacy { font-size: 14px; line-height: 20px; }
.veduta-footer a:focus-visible, .veduta-reservations a:focus-visible { outline: 2px solid #ded6bf; outline-offset: 5px; }
.veduta-footer :where(p,a), .veduta-reservations :where(p,h2,a,li) { overflow-wrap: anywhere; }
@media (min-width:640px) {
  .veduta-reservations { padding-inline: 24px; }
  .veduta-reservations__panel, .veduta-press__panel { padding: 40px; }
  .veduta-reservations__title { font-size: 48px; line-height: 1; }
  .veduta-reservations__description { font-size: 18px; line-height: 28px; }
  .veduta-reservations__facts { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .veduta-reservations__location { grid-column: 1 / -1; }
  .veduta-press__title { font-size: 36px; line-height: 40px; }
  .veduta-footer__top { padding-inline: 32px; }
  .veduta-footer__statement { font-size: 30px; line-height: 36px; }
  .veduta-footer__columns { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .veduta-footer__legal { right: 40px; left: 40px; bottom: 40px; }
}
@media (min-width:1024px) {
  .veduta-reservations { padding-inline: 32px; }
  .veduta-reservations__grid { grid-template-columns: minmax(0,1fr) minmax(0,.86fr); }
  .veduta-footer__top { grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); padding: 96px 48px 64px; }
}
@media (prefers-reduced-motion:reduce) {
  .veduta-reveal-ready { opacity: 1; transform: none; transition: none; }
  .veduta-reservations *, .veduta-footer * { transition: none !important; }
}

/* Keep mobile legal content below the decorative video, without overlap. */
@media (max-width: 639px) {
  .veduta-footer__bottom { padding-bottom: 28px; }
  .veduta-footer__bottom .veduta-video-wordmark { min-height: 210px; margin-bottom: 24px; }
  .veduta-footer__legal { position: relative; inset: auto; margin: 0 20px; padding-top: 24px; border-top: 1px solid rgba(222,214,191,.18); display: grid; gap: 16px; }
  .veduta-footer__copyright { max-width: 32ch; font-size: 11px; line-height: 1.7; letter-spacing: .18em; }
  .veduta-footer__privacy a { display: inline-flex; min-height: 44px; align-items: center; }
}
