    .booking-layout {
      display: grid;
      gap: 1.15rem;
      align-items: start;
    }

    .booking-trust-strip {
      margin: 0.55rem 0 0;
      padding-top: 0.5rem;
      border-top: 1px solid #e5d5be;
      display: flex;
      flex-wrap: wrap;
      gap: 0.45rem 0.95rem;
      color: #5f483f;
      font-size: 0.9rem;
      line-height: 1.35;
    }

    .booking-header-support {
      margin: 0.4rem 0 0;
      color: #6b4a3d;
      font-size: 0.9rem;
      line-height: 1.35;
    }

    .booking-trust-item {
      display: inline-flex;
      align-items: center;
      gap: 0.3rem;
      white-space: nowrap;
    }

    .booking-trip-options-info {
      margin: 0.28rem 0 0;
      color: #6b4a3d;
      font-size: 0.82rem;
      line-height: 1.35;
      white-space: normal;
    }

    .booking-trip-options-main {
      display: block;
      white-space: nowrap;
    }

    .booking-trip-options-sub {
      display: block;
      margin-top: 0.12rem;
      color: #7a665d;
      font-size: 0.76rem;
      line-height: 1.3;
    }

    .booking-trip-options-sub a {
      color: #7a665d;
      text-decoration-color: rgba(122, 102, 93, 0.55);
    }

    .booking-trip-options-sub a:hover,
    .booking-trip-options-sub a:focus-visible {
      color: #5f483f;
      text-decoration-color: rgba(95, 72, 63, 0.7);
    }

    .booking-layout-left,
    .booking-layout-right {
      min-width: 0;
    }

    @media (min-width: 900px) {
      .booking-layout {
        grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
        gap: 1.4rem;
      }
    }

    .booking-calendar-shell {
      max-width: none;
      margin: 0.85rem 0 0;
      background: #faf7f0;
      border-radius: 12px;
      padding: 1.25rem;
      border: 1px solid #ead9bd;
      box-shadow: 0 6px 16px rgba(34, 34, 34, 0.06);
    }

    .booking-steps {
      margin: 0.85rem 0 0;
      padding: 0.55rem 0.65rem;
      list-style: none;
      display: flex;
      flex-wrap: nowrap;
      gap: 0.4rem 0.85rem;
      border: 1px solid #d9c3a1;
      border-radius: 10px;
      background: #f5eddc;
      font-size: 0.82rem;
      color: #5f483f;
    }

    .booking-steps li {
      margin: 0;
      white-space: nowrap;
    }

    .booking-steps strong {
      color: #5b1d1d;
      font-weight: 700;
      letter-spacing: 0.1px;
      margin-right: 0.1rem;
    }

    .booking-calendar-intro {
      margin: 0 0 0.6rem;
      color: #6b4a3d;
      font-size: 0.88rem;
      line-height: 1.35;
    }

    .booking-calendar {
      margin-top: 0;
      border: 1px solid #d8c2a2;
      border-radius: 12px;
      padding: 0.95rem;
      background: #fff;
    }

    .booking-calendar-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.95rem;
      margin-bottom: 0.75rem;
    }

    .booking-calendar-title {
      margin: 0;
      font-size: 1.2rem;
      text-align: center;
      flex: 1;
    }

    .booking-calendar-legend {
      display: flex;
      flex-wrap: wrap;
      gap: 0.75rem 1rem;
      margin: 0 0 0.75rem;
      padding: 0.45rem 0.55rem;
      border: 1px solid #e4d5bf;
      border-radius: 10px;
      background: #fbf7ef;
    }

    .booking-legend-item {
      display: inline-flex;
      align-items: center;
      gap: 0.4rem;
      font-size: 0.82rem;
      color: #5e463c;
    }

    .booking-legend-dot {
      width: 0.5rem;
      height: 0.5rem;
      border-radius: 50%;
      display: inline-block;
      border: 1px solid transparent;
    }

    .booking-legend-dot-all {
      background: #4f9550;
      border-color: #3d7a3e;
    }

    .booking-legend-dot-some {
      background: #4d81c7;
      border-color: #3b67a0;
    }

    .booking-legend-dot-soldout {
      background: #b56e70;
      border-color: #944f52;
    }

    .booking-calendar-grid {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
      gap: 0.45rem;
    }

    .booking-calendar-dow {
      font-size: 0.76rem;
      text-transform: uppercase;
      letter-spacing: 0.4px;
      color: #6b4a3d;
      text-align: center;
      padding-bottom: 0.2rem;
    }

    .booking-calendar-empty {
      aspect-ratio: 1 / 1;
    }

    .booking-day {
      aspect-ratio: 1 / 1;
      display: flex;
      align-items: flex-start;
      justify-content: flex-start;
      padding: 0.5rem;
      border: 1px solid #ccb08a;
      border-radius: 10px;
      background: #f8f3e9;
      color: #2d2d2d;
      font: inherit;
      font-size: 0.88rem;
      cursor: pointer;
      position: relative;
      transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
    }

    .booking-day[data-status="available_all"] {
      background: #eff8ea;
      border-color: #7cad6d;
      color: #23401d;
    }

    .booking-day[data-status="available_some"] {
      background: #ebf2ff;
      border-color: #7593c7;
      color: #1f3a62;
    }

    .booking-day[data-status="soldout"] {
      background: #f5efef;
      border-color: #ceaeaf;
      color: #7a3f41;
    }

    .booking-day::after {
      content: "";
      position: absolute;
      top: 0.45rem;
      right: 0.45rem;
      width: 0.4rem;
      height: 0.4rem;
      border-radius: 50%;
      background: transparent;
    }

    .booking-day[data-status="available_all"]::after {
      background: #4f9550;
    }

    .booking-day[data-status="available_some"]::after {
      background: #4d81c7;
    }

    .booking-day[data-status="soldout"]::after {
      background: #b56e70;
    }

    .booking-day:hover,
    .booking-day:focus-visible {
      background: #f3eadb;
      border-color: #b08f64;
      transform: translateY(-1px);
    }

    .booking-day[data-selected="true"] {
      outline: 2px solid #82292a;
      outline-offset: 1px;
    }

    .booking-results {
      display: grid;
      gap: 0.75rem;
      margin-top: 0.75rem;
    }

    .booking-results-panel,
    .booking-details-panel {
      background: #fff;
      border: 1px solid #ead8be;
      border-radius: 12px;
      box-shadow: 0 6px 16px rgba(34, 34, 34, 0.06);
    }

    .booking-details-shell {
      margin-top: 1rem;
    }

    .booking-details {
      width: 100%;
      max-width: 760px;
      margin: 0 auto;
      opacity: 0;
      transform: translateY(10px);
      transition: opacity 0.2s ease, transform 0.2s ease;
    }

    .booking-details[data-visible="true"] {
      opacity: 1;
      transform: translateY(0);
    }

    .booking-details-top {
      margin-bottom: 0.5rem;
    }

    .booking-details-intro {
      margin: -0.1rem 0 0.15rem;
      color: #6b4a3d;
      font-size: 0.84rem;
      line-height: 1.35;
    }

    .booking-selection-summary {
      margin: 0.15rem 0 0.45rem;
      padding: 0.5rem 0.6rem;
      border: 1px solid #e5d5be;
      border-radius: 8px;
      background: #fbf7ef;
    }

    .booking-selection-summary-label {
      margin: 0 0 0.18rem;
      color: #6b4a3d;
      font-size: 0.82rem;
      font-weight: 600;
    }

    .booking-selection-summary-item {
      margin: 0;
      color: #6b4a3d;
      font-size: 0.8rem;
      line-height: 1.35;
    }

    .booking-selection-summary-item + .booking-selection-summary-item {
      margin-top: 0.12rem;
    }

    .booking-details-panel form {
      gap: 0.62rem;
    }

    .booking-details-panel form .row {
      gap: 0.62rem;
    }

    .booking-change-slot {
      padding: 0;
      border: 0;
      background: transparent;
      color: #6b4a3d;
      text-decoration: underline;
      font: inherit;
      cursor: pointer;
    }

    .booking-change-slot:hover,
    .booking-change-slot:focus-visible {
      color: #3f2c24;
    }

    .booking-passenger-head {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 0.6rem;
      flex-wrap: wrap;
    }

    .booking-passenger-limit {
      margin: 0;
      font-size: 0.84rem;
      color: #6b4a3d;
    }

    .booking-field-error {
      margin: 0.35rem 0 0;
      font-size: 0.9rem;
      color: #8e2c2c;
      line-height: 1.4;
    }

    .booking-field-info {
      margin: 0.35rem 0 0;
      font-size: 0.84rem;
      color: #6b4a3d;
      line-height: 1.35;
    }

    .booking-slot-btn-highlight {
      box-shadow: 0 0 0 3px rgba(130, 41, 42, 0.28);
      animation: booking-slot-highlight 1.2s ease-out;
    }

    @keyframes booking-slot-highlight {
      0% {
        transform: scale(1);
      }
      30% {
        transform: scale(1.03);
      }
      100% {
        transform: scale(1);
      }
    }

    .booking-boat {
      border: 1px solid #d8c2a2;
      border-radius: 12px;
      padding: 0.75rem;
      background: #fff;
    }

    .booking-boat h3 {
      margin: 0 0 0.55rem;
      font-size: 1.2rem;
    }

    .booking-boat ul {
      list-style: none;
      margin: 0;
      padding: 0;
      display: grid;
      gap: 0.45rem;
    }

    .booking-slot-btn[data-selected="true"] {
      background: #e8f3df;
      border-color: #8ea877;
    }

    .booking-exact-date {
      margin-top: 0.85rem;
      border-top: 1px solid #e5d5be;
      padding-top: 0.8rem;
    }

    .booking-exact-date-toggle {
      padding: 0;
      border: 0;
      background: transparent;
      color: #6b4a3d;
      text-decoration: underline;
      font: inherit;
      font-size: 0.86rem;
      cursor: pointer;
    }

    .booking-exact-date-toggle:hover,
    .booking-exact-date-toggle:focus-visible {
      color: #3f2c24;
    }

    .booking-exact-date-panel {
      margin-top: 0.5rem;
    }

    .booking-exact-date-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 0.6rem;
      align-items: end;
    }

    .booking-tooltip {
      position: absolute;
      z-index: 250;
      min-width: 260px;
      max-width: 360px;
      max-height: 320px;
      overflow: auto;
      background: #fffdf7;
      border: 1px solid #c7ad87;
      border-radius: 12px;
      box-shadow: 0 10px 24px rgba(66, 34, 18, 0.18);
      padding: 0.75rem 0.8rem;
      line-height: 1.45;
      display: none;
    }

    .booking-tooltip[data-open="true"] {
      display: block;
    }

    .booking-tooltip h4 {
      margin: 0 0 0.55rem;
      font-size: 1rem;
    }

    .booking-tooltip p {
      margin: 0 0 0.35rem;
      font-size: 0.94rem;
    }

    .booking-tooltip p:last-child {
      margin-bottom: 0;
    }

    .booking-details[hidden] {
      display: none;
    }

    .booking-details-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 0.6rem;
      margin-top: 0.6rem;
    }

    .booking-cta-hint {
      margin: 0.2rem 0 0;
      color: #6b4a3d;
      font-size: 0.76rem;
      line-height: 1.3;
      min-height: 1.05em;
      visibility: hidden;
    }

    .booking-cta-hint.is-visible {
      visibility: visible;
    }

    .booking-pricing {
      margin-top: 0.75rem;
      padding: 0.75rem;
      border: 1px solid #e4d5bf;
      border-radius: 10px;
      background: #fbf7ef;
    }

    .booking-pricing h3 {
      margin: 0 0 0.5rem;
      font-size: 1rem;
    }

    .booking-pricing-line {
      display: flex;
      justify-content: space-between;
      gap: 0.75rem;
      margin: 0 0 0.3rem;
      font-size: 0.92rem;
    }

    .booking-pricing-line strong {
      font-size: 0.98rem;
    }

    .booking-pricing-note {
      margin: 0.35rem 0 0;
      font-size: 0.86rem;
      color: #6b4a3d;
      line-height: 1.35;
    }

    .booking-payment-options {
      margin-top: 0.6rem;
      padding: 0.45rem;
      border: 1px solid #e4d5bf;
      border-radius: 10px;
      background: #fbf7ef;
      font-size: 0.88rem;
    }

    .booking-payment-options legend {
      padding: 0 0.25rem;
      font-size: 0.8rem;
      color: #6b4a3d;
      letter-spacing: 0.15px;
    }

    .booking-payment-option {
      display: flex;
      align-items: center;
      gap: 0.45rem;
      padding: 0.2rem;
      border-radius: 8px;
      cursor: pointer;
    }

    .booking-payment-option + .booking-payment-option {
      margin-top: 0.15rem;
    }

    .booking-payment-option-helper {
      margin: -0.05rem 0 0.35rem 1.7rem;
      color: #6b4a3d;
      font-size: 0.78rem;
      line-height: 1.3;
    }

    .booking-promo {
      margin-top: 0.55rem;
      border: 1px solid #e4d5bf;
      border-radius: 10px;
      background: #fbf7ef;
      padding: 0.55rem 0.6rem;
    }

    .booking-promo-toggle {
      margin: 0;
      display: inline-flex;
      align-items: center;
      gap: 0.45rem;
      font-size: 0.84rem;
      font-weight: 600;
      color: #6b4a3d;
      cursor: pointer;
    }

    .booking-promo-toggle input[type="checkbox"] {
      width: 0.95rem;
      height: 0.95rem;
      margin: 0;
      accent-color: #7a2b2b;
      flex: 0 0 auto;
    }

    .booking-promo-panel {
      margin-top: 0.5rem;
      display: grid;
      gap: 0.4rem;
    }

    .booking-promo-panel[hidden],
    .promo-box[hidden] {
      display: none !important;
    }

    .booking-promo-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 0.5rem;
      align-items: center;
    }

    .booking-promo-row .btn {
      white-space: nowrap;
    }

    .booking-promo-status {
      margin: 0;
      font-size: 0.8rem;
      color: #6b4a3d;
      line-height: 1.3;
    }

    .booking-promo-status[data-level="success"] {
      color: #2b5f38;
    }

    .booking-promo-status[data-level="danger"] {
      color: #8d1e24;
    }

    .booking-promo-status[data-level="warning"] {
      color: #6b4a3d;
    }

    .booking-promo-deposit-note {
      margin-top: 0.15rem;
      margin-bottom: 0.45rem;
      margin-left: 1.7rem;
      padding: 0.45rem 0.55rem;
      border: 1px solid #e1d0b3;
      border-radius: 8px;
      background: #f7efde;
      color: #5f483f;
      font-size: 0.79rem;
      line-height: 1.35;
    }

    .booking-payment-option input[type="radio"] {
      margin: 0;
      flex: 0 0 auto;
      width: 0.9rem;
      height: 0.9rem;
      accent-color: #7a2b2b;
    }

    .booking-payment-option span {
      display: block;
      flex: 1 1 auto;
      padding: 0.32rem 0.45rem;
      border: 1px solid transparent;
      border-radius: 7px;
      transition: background-color 0.15s ease, border-color 0.15s ease;
    }

    .booking-payment-option:hover span {
      background: #f4ede1;
      border-color: #e1d0b3;
    }

    .booking-payment-option input[type="radio"]:checked + span {
      background: #e8f3df;
      border-color: #9eb889;
    }

    .booking-slot-warning {
      margin-top: 0.5rem;
    }

    .booking-trip-note {
      margin-top: 0.65rem;
      color: #6b4a3d;
      font-size: 0.95rem;
      line-height: 1.4;
    }

    .booking-weather-note {
      margin: 0.7rem 0 0;
      color: #6b4a3d;
      font-size: 0.88rem;
      line-height: 1.35;
    }

    #continue-deposit-btn {
      padding: 0.76rem 1.18rem;
      font-weight: 700;
      box-shadow: 0 6px 14px rgba(91, 29, 29, 0.2);
    }

    #continue-deposit-btn:disabled {
      box-shadow: none;
    }

    @media (max-width: 720px) {
      .booking-calendar-shell {
        max-width: 100%;
        padding: 0.75rem;
      }

      .booking-calendar {
        padding: 0.55rem;
      }

      .booking-calendar-legend {
        gap: 0.5rem 0.7rem;
        padding: 0.35rem 0.45rem;
      }

      .booking-legend-item {
        font-size: 0.75rem;
      }

      .booking-calendar-grid {
        gap: 0.35rem;
      }

      .booking-day {
        padding: 0.35rem;
        font-size: 0.82rem;
      }

      .booking-trust-strip {
        gap: 0.35rem 0.6rem;
        font-size: 0.84rem;
      }

      .booking-trust-item {
        white-space: normal;
      }

      .booking-trip-options-info {
        white-space: normal;
      }

      .booking-trip-options-main {
        white-space: normal;
      }

      .booking-steps {
        flex-wrap: wrap;
        padding: 0.45rem 0.5rem;
        font-size: 0.8rem;
        gap: 0.35rem 0.6rem;
      }

      .booking-payment-option-helper {
        margin-left: 1.55rem;
      }

      .booking-promo-deposit-note {
        margin-left: 1.55rem;
      }

      .booking-promo-row {
        grid-template-columns: 1fr;
      }

      .booking-promo-row .btn {
        width: 100%;
      }
    }
