.veduta-reservation-page, .veduta-commerce-page { box-sizing: border-box; padding: 140px 32px 88px; }
.veduta-reservation-page { padding-top: 156px; }
.veduta-reservation-page > .wp-block-template-part:has(.veduta-breadcrumbs) { margin-bottom: clamp(40px,4vw,56px); }
.veduta-visit, .veduta-commerce-page { max-width: 1280px; margin-inline: auto; }
.veduta-commerce-page { min-height: 75vh; }
.veduta-commerce-page > h1 { font-size: 42px; line-height: 1.1; margin: 0 0 40px; }
.veduta-visit__body { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(320px,1fr); gap: 80px; align-items: start; }
.veduta-visit__story h2 { margin: 20px 0 24px; font-size: 40px; line-height: 1.08; font-weight: 500; letter-spacing: 0; }
.veduta-visit__story > p:not(.veduta-section-label) { font-size: 19px; line-height: 1.6; color: var(--veduta-text-secondary); margin: 0 0 20px; }
.veduta-visit__story > .veduta-visit__facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; margin-block: 32px; padding-top: 28px; border-top: 1px solid rgba(222,214,191,.2); }
.veduta-visit__facts p { margin: 8px 0; line-height: 1.5; }
.veduta-visit__venue { grid-column: 1 / -1; }
.veduta-visit__story > .veduta-visit__detail { margin: 32px 0 0; }
.veduta-visit__detail img { display: block; width: 100%; aspect-ratio: 1.5; object-fit: cover; border-radius: 8px; }
.veduta-visit__rules { margin-top: 48px; padding-top: 40px; border-top: 1px solid rgba(222,214,191,.2); }
.veduta-visit__rules h2 { margin: 18px 0 22px; font-size: 32px; font-weight: 500; line-height: 1.1; }
.veduta-visit__rules > p, .veduta-visit__rules li { color: var(--veduta-text-secondary); font-size: 17px; line-height: 1.6; }
.veduta-visit__rules ul { margin: 24px 0 32px; padding-left: 1.25em; }
.veduta-visit__rules li { margin-bottom: 12px; padding-left: .35em; }
.veduta-visit__rules-location { padding: 24px 0; border-top: 1px solid rgba(222,214,191,.16); border-bottom: 1px solid rgba(222,214,191,.16); }
.veduta-visit__rules-location p { margin: 0 0 6px; line-height: 1.5; }
.veduta-visit__rules-note { margin-top: 24px; }
.veduta-visit__booking { position: sticky; top: 124px; scroll-margin-top: 130px; min-width: 0; }
.veduta-booking-form { padding: 32px; border: 1px solid rgba(222,214,191,.25); border-radius: 8px; background: rgba(7,17,15,.9); }
.veduta-booking-form h2 { font-size: 28px; margin: 0 0 24px; font-weight: 500; line-height: 1.15; }
.veduta-booking-form p { line-height: 1.5; }
.veduta-booking-form .price { margin-block: 20px; font-size: 24px; }
.veduta-booking-form__account { display: inline-block; margin-top: 24px; text-decoration: underline; text-underline-offset: 4px; }
.veduta-booking-form .cart { display: flex; flex-wrap: wrap; gap: 16px; }
.veduta-booking-form .cart > :not(.quantity):not(button):not(input[type=hidden]) { flex-basis: 100%; }
.veduta-booking-form .quantity { flex: 0 0 80px; }
.veduta-booking-form .quantity input { box-sizing: border-box; width: 100%; }
.veduta-booking-form .cart button { flex: 1; }
.veduta-booking-form .form-row { margin: 0; padding: 0; }
.veduta-booking-form label { display: block; margin-bottom: 8px; }
.veduta-booking-form select { width: 100%; }
.veduta-commerce-page :where(a:not(.button):not(.wp-element-button)) { text-decoration: underline; text-underline-offset: 3px; }
.veduta-commerce-page :where(input:not([type=checkbox]):not([type=radio]),select,textarea), .veduta-booking-form :where(input:not([type=hidden]),select) {
  min-height: 48px; padding: 12px; border: 1px solid #74817b; border-radius: 4px; background: #fff; color: #111; font: inherit; font-size: 16px;
}
.veduta-commerce-page :where(button,.button,.wp-element-button), .veduta-booking-form button { padding: 14px 22px; border: 1px solid #ded6bf; border-radius: 4px; background: #ded6bf; color: #07110f; font: inherit; font-weight: 600; line-height: 1.4; cursor: pointer; text-decoration: none; }
.veduta-commerce-page :where(button,.button):hover, .veduta-booking-form button:hover { background: #fff; color: #07110f; }
.veduta-commerce-page :where(input,button,a,select,textarea):focus-visible, .veduta-booking-form :where(input,button,a,select):focus-visible { outline: 2px solid #83d8b1; outline-offset: 4px; }
.veduta-commerce-page :where(.woocommerce-info,.woocommerce-message,.woocommerce-error) { border-top-color: #174e3f; color: #07110f; background: #f0f4f2; }
.veduta-commerce-page .woocommerce form.login, .veduta-commerce-page .woocommerce form.register { border: 1px solid rgba(222,214,191,.25); border-radius: 8px; padding: 28px; max-width: 620px; }
.veduta-commerce-page .woocommerce form .form-row { margin-bottom: 20px; }
.veduta-commerce-page .woocommerce form .form-row label { margin-bottom: 8px; }
.veduta-commerce-page .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.veduta-commerce-page .woocommerce-MyAccount-navigation a { display: block; padding: 16px 12px; border-bottom: 1px solid rgba(222,214,191,.2); text-decoration: none; }
.veduta-commerce-page .woocommerce-MyAccount-navigation .is-active a { background: #174e3f; color: #fff; }
.veduta-commerce-page .woocommerce-MyAccount-content { line-height: 1.6; }
.veduta-commerce-page .woocommerce-MyAccount-content > table:not(.shop_table) { width: 100%; border-collapse: collapse; }
.veduta-commerce-page .woocommerce-MyAccount-content > table:not(.shop_table) td { padding: 14px 8px; border-bottom: 1px solid rgba(222,214,191,.2); }
.veduta-commerce-page .wc-block-components-notice-banner { color: #111; }
.veduta-commerce-page .wc-block-components-form .wc-block-components-text-input label { color: #444; }
.veduta-commerce-page .wc-block-components-checkbox__input { accent-color: #174e3f; }
.veduta-commerce-page .wc-block-components-order-summary-item__description p { color: inherit; }
.veduta-commerce-page .wc-block-components-checkout-step__heading-content a { white-space: normal; }
.veduta-commerce-page #fooevents-attendee-page { max-width: 900px; }
.veduta-commerce-page #fooevents-attendee-page :where(h2,h3,h4) { color: inherit; }
.veduta-commerce-page #fooevents-attendee-page .form-row { margin: 0 0 20px; }
.veduta-commerce-page #fooevents-attendee-page input { box-sizing: border-box; max-width: 100%; }
.veduta-commerce-page #fooevents-attendee-page button { background: #ded6bf; color: #07110f; padding: 14px 22px; }
.veduta-commerce-page .fooevents-attendee-item { padding-block: 24px; border-top: 1px solid rgba(222,214,191,.2); }
.veduta-commerce-page .shop_table { border-color: rgba(222,214,191,.25); }
.veduta-commerce-page .wp-block-woocommerce-order-confirmation-status h1 { font-size: 42px; margin: 0 0 20px; line-height: 1.1; }
.veduta-commerce-page > .wp-block-woocommerce-order-confirmation-status { margin-bottom: 32px; }
.veduta-commerce-page > [class*="order-confirmation-"] { margin-bottom: 32px; }
.veduta-commerce-page [class*="order-confirmation-"] > h2 { margin-bottom: 24px; font-size: 28px; }
.veduta-commerce-page :where(.fooevents-order-ticket-container,.fooevents-ticket-container) { overflow-x: auto; }
.veduta-cancel-reservation { margin-top: 48px; padding-top: 32px; border-top: 1px solid rgba(222,214,191,.2); }
.veduta-cancel-reservation h2 { margin: 0 0 12px; font-size: 28px; }
.veduta-cancel-reservation p { max-width: 680px; color: var(--veduta-text-secondary); }
.veduta-cancel-reservation form { margin-top: 24px; }
.editor-styles-wrapper .veduta-visit { max-width: none; width: 100%; padding: 24px; box-sizing: border-box; }
.editor-styles-wrapper .veduta-visit__booking { position: static; }
.editor-styles-wrapper .is-root-container > .veduta-visit { max-width: calc(100% - 32px) !important; }

/* Auth uses WooCommerce's original forms, hooks, nonces and password controls. */
.veduta-auth-page .veduta-commerce-page { max-width: 576px; min-height: 800px; padding-top: 160px; padding-bottom: 100px; }
.veduta-auth-page .veduta-commerce-page > h1 { font-size: 44px; font-weight: 500; margin-bottom: 16px; letter-spacing: 0; }
.veduta-auth-page .veduta-commerce-page .woocommerce > h2 { margin: 0 0 32px; color: rgba(222,214,191,.65); font-size: 20px; font-weight: 400; }
.veduta-auth-page .veduta-commerce-page .woocommerce form.login,
.veduta-auth-page .veduta-commerce-page .woocommerce form.register { max-width: none; margin: 0; padding: 0; border: 0; border-radius: 0; }
.veduta-auth-page .veduta-commerce-page .woocommerce form .form-row { margin: 0 0 24px; padding: 0; }
.veduta-auth-page .veduta-commerce-page .woocommerce form .form-row label { color: #ded6bf; font-size: 14px; line-height: 1.5; margin-bottom: 10px; }
.veduta-auth-page .veduta-commerce-page .woocommerce form .required { color: #83d8b1; }
.veduta-auth-page .veduta-commerce-page .woocommerce form input.input-text {
  box-sizing: border-box; width: 100%; min-height: 56px; padding: 16px; border: 1px solid #40564d; border-radius: 6px;
  background: #0a1914; color: var(--veduta-text-primary, #ded6bf); font: inherit; font-size: 16px; line-height: 1.4; box-shadow: inset 0 1px 2px rgba(0,0,0,.12);
  transition: border-color 160ms ease, background 160ms ease;
}
.veduta-auth-page .veduta-commerce-page .woocommerce form input.input-text:hover { border-color: #728779; }
.veduta-auth-page .veduta-commerce-page .woocommerce form input.input-text:focus { border-color: #83d8b1; background: #10251d; outline: 2px solid rgba(131,216,177,.35); outline-offset: 3px; }
.veduta-auth-page .veduta-commerce-page .woocommerce form input[type=password],
.veduta-auth-page .veduta-commerce-page .woocommerce form .password-input input { padding-right: 52px; }
.veduta-auth-page .veduta-commerce-page .woocommerce form .show-password-input { display: grid; place-items: center; top: 6px; right: 6px; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; color: #ded6bf; transform: none; }
.veduta-auth-page .veduta-commerce-page .woocommerce form .show-password-input::before,
.veduta-auth-page .veduta-commerce-page .woocommerce form .show-password-input::after { margin: 0; }
.veduta-auth-page .veduta-commerce-page .woocommerce form .show-password-input::before { filter: invert(1); }
.veduta-auth-page .veduta-commerce-page .woocommerce .woocommerce-form-login .form-row:has(.woocommerce-form-login__submit) { display: flex; flex-direction: column; gap: 20px; }
.veduta-auth-page .veduta-commerce-page .woocommerce .woocommerce-form-login .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 8px; margin: 0; align-self: flex-start; min-height: 28px; color: rgba(222,214,191,.78); }
.veduta-auth-page .veduta-commerce-page .woocommerce input[type=checkbox] { width: 18px; height: 18px; margin: 0; accent-color: #83d8b1; }
.veduta-auth-page .veduta-commerce-page .woocommerce form button.button {
  display: flex; justify-content: center; align-items: center; gap: 16px; float: none; box-sizing: border-box; width: 100%; min-height: 56px; margin: 0;
  padding: 15px 24px; border: 1px solid #ded6bf; border-radius: 6px; background: #ded6bf; color: #07110f; font-size: 16px; font-weight: 600; line-height: 1.4;
  transition: background 160ms ease, border-color 160ms ease;
}
.veduta-auth-page .veduta-commerce-page .woocommerce form button.button::after { content: ""; width: 20px; height: 20px; flex: 0 0 20px; background: url('../icons/arrow-right.svg') center / contain no-repeat; filter: brightness(0); }
.veduta-auth-page .veduta-commerce-page .woocommerce form button.button:hover { background: #f5f3eb; border-color: #f5f3eb; }
.veduta-auth-page .veduta-commerce-page .woocommerce .lost_password { margin: 24px 0 0; padding-top: 24px; border-top: 1px solid rgba(222,214,191,.18); text-align: center; font-size: 14px; }
.veduta-auth-page .veduta-commerce-page .woocommerce .lost_password a { color: rgba(222,214,191,.8); text-decoration-thickness: 1px; text-underline-offset: 5px; }
.veduta-auth-page .veduta-commerce-page .woocommerce .lost_password a:hover { color: #fff; }
.veduta-auth-page .veduta-commerce-page .woocommerce-ResetPassword { line-height: 1.6; }
.veduta-auth-page .veduta-commerce-page .woocommerce-ResetPassword .form-row-first,
.veduta-auth-page .veduta-commerce-page .woocommerce-ResetPassword .form-row-last { width: 100%; float: none; }
.veduta-auth-page .veduta-commerce-page .woocommerce :is(.woocommerce-error,.woocommerce-message,.woocommerce-info) { border-radius: 6px; font-size: 15px; line-height: 1.5; }
@media (prefers-reduced-motion: reduce) {
  .veduta-auth-page .veduta-commerce-page .woocommerce form :is(input.input-text,button.button) { transition: none; }
}
@media (max-width: 960px) {
  .veduta-visit__body { grid-template-columns: 1fr; gap: 40px; }
  .veduta-visit__booking { position: static; }
}
@media (max-width: 600px) {
  .veduta-auth-page .veduta-commerce-page { min-height: 690px; padding: 124px 24px 64px; }
  .veduta-auth-page .veduta-commerce-page > h1 { font-size: 36px; }
  .veduta-reservation-page, .veduta-commerce-page { padding: 108px 20px 56px; }
  .veduta-reservation-page { padding-top: 120px; }
  .veduta-reservation-page > .wp-block-template-part:has(.veduta-breadcrumbs) { margin-bottom: 36px; }
  .veduta-visit__story h2 { font-size: 32px; }
  .veduta-booking-form { padding: 24px; }
  .veduta-commerce-page > h1 { font-size: 34px; }
  .veduta-commerce-page .woocommerce form.login { padding: 20px; }
  .veduta-commerce-page .woocommerce-MyAccount-content > table:not(.shop_table) tr { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; padding-block: 16px; border-bottom: 1px solid rgba(222,214,191,.2); }
  .veduta-commerce-page .woocommerce-MyAccount-content > table:not(.shop_table) td { padding: 0; border: 0; overflow-wrap: anywhere; }
  .veduta-commerce-page .woocommerce-MyAccount-content > table:not(.shop_table) td:first-child { grid-column: 1; }
  .veduta-commerce-page .woocommerce-MyAccount-content > table:not(.shop_table) td:nth-child(2) { grid-column: 1; grid-row: 2; }
  .veduta-commerce-page .woocommerce-MyAccount-content > table:not(.shop_table) td:nth-child(3) { grid-column: 2; grid-row: 1 / 3; align-self: center; }
}
