/* Trip-planning service and form styles. */
:root {
      --plan-bg: #fffaf5;
      --plan-surface: #ffffff;
      --plan-ink: #19130e;
      --plan-muted: #72675d;
      --plan-soft: #f5ece3;
      --plan-line: rgba(34, 25, 17, 0.1);
      --plan-orange: #c96a2b;
      --plan-orange-dark: #a8511d;
      --plan-orange-soft: #fff0e5;
      --plan-shadow: 0 26px 70px rgba(37, 25, 15, 0.12);
      --plan-radius: 22px;
      --plan-ease: cubic-bezier(0.22, 1, 0.36, 1);
    }

    html {
      scroll-behavior: smooth;
    }

    body.planning-page {
      background:
        radial-gradient(circle at 12% 12%, rgba(201, 106, 43, 0.08), transparent 28rem),
        linear-gradient(180deg, #fffaf5 0%, #fff 100%);
      color: var(--plan-ink);
    }

    .planning-page #page-content {
      margin: 0 auto;
      max-width: 1240px;
      padding: 18px 34px 46px;
    }

    .planning-hero {
      align-items: center;
      display: grid;
      gap: clamp(34px, 5vw, 76px);
      grid-template-columns: minmax(0, 1fr) minmax(420px, 0.9fr);
      min-height: calc(100vh - 178px);
      padding: 26px 0 34px;
    }

    .planning-copy {
      animation: planFadeUp 560ms var(--plan-ease) both;
      max-width: 620px;
    }

    .trust-line {
      align-items: center;
      color: var(--plan-orange-dark);
      display: flex;
      font-size: 13px;
      font-weight: 850;
      gap: 10px;
      letter-spacing: 0.01em;
      margin-bottom: 22px;
    }

    .trust-line span:first-child {
      color: #e0a21d;
      letter-spacing: 0.07em;
      white-space: nowrap;
    }

    .planning-copy h1 {
      color: var(--plan-ink);
      font-size: 68px;
      letter-spacing: 0;
      line-height: 1.02;
      margin: 0;
      max-width: 720px;
    }

    .planning-copy > p {
      color: var(--plan-muted);
      font-size: clamp(17px, 1.5vw, 20px);
      line-height: 1.72;
      margin: 26px 0 0;
      max-width: 590px;
    }

    .planning-copy > p strong {
      color: var(--plan-ink);
      font-weight: 850;
    }

    .planning-badges {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin: 28px 0 24px;
    }

    .planning-badge {
      align-items: center;
      background: rgba(255, 255, 255, 0.78);
      border: 1px solid var(--plan-line);
      border-radius: 999px;
      box-shadow: 0 10px 28px rgba(37, 25, 15, 0.06);
      color: #3b3128;
      display: inline-flex;
      font-size: 13px;
      font-weight: 800;
      min-height: 36px;
      padding: 0 14px;
    }

    .price-card {
      background: rgba(255, 255, 255, 0.86);
      border: 1px solid rgba(34, 25, 17, 0.09);
      border-radius: var(--plan-radius);
      box-shadow: var(--plan-shadow);
      max-width: 470px;
      padding: 24px;
    }

    .price-card-head {
      align-items: end;
      border-bottom: 1px solid var(--plan-line);
      display: flex;
      justify-content: space-between;
      gap: 18px;
      padding-bottom: 20px;
    }

    .price-card strong {
      color: var(--plan-ink);
      display: block;
      font-size: 52px;
      letter-spacing: -0.06em;
      line-height: 0.9;
    }

    .price-card span {
      color: var(--plan-muted);
      display: block;
      font-size: 14px;
      font-weight: 750;
      margin-top: 6px;
    }

    .delivery {
      background: var(--plan-orange-soft);
      border-radius: 16px;
      color: var(--plan-orange-dark);
      font-size: 13px;
      font-weight: 850;
      padding: 12px 14px;
      text-align: right;
    }

    .delivery b {
      color: var(--plan-ink);
      display: block;
      font-size: 16px;
      margin-top: 2px;
    }

    .included-list {
      display: grid;
      gap: 10px;
      list-style: none;
      margin: 20px 0 0;
      padding: 0;
    }

    .included-list li {
      color: #473d34;
      font-size: 14px;
      line-height: 1.45;
      padding-left: 18px;
      position: relative;
    }

    .included-list li::before {
      background: var(--plan-orange);
      border-radius: 50%;
      content: "";
      height: 5px;
      left: 2px;
      position: absolute;
      top: 0.68em;
      width: 5px;
    }

    .trust-points {
      color: var(--plan-muted);
      display: grid;
      font-size: 14px;
      gap: 8px;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      line-height: 1.35;
      margin-top: 20px;
    }

    .trip-form-card {
      animation: planFadeUp 640ms var(--plan-ease) 80ms both;
      background: var(--plan-surface);
      border: 1px solid rgba(34, 25, 17, 0.1);
      border-radius: var(--plan-radius);
      box-shadow: 0 34px 90px rgba(37, 25, 15, 0.14);
      padding: clamp(24px, 3vw, 34px);
    }

    .trip-form-card h2 {
      color: var(--plan-ink);
      font-size: clamp(28px, 3vw, 38px);
      letter-spacing: -0.04em;
      line-height: 1;
      margin: 0 0 24px;
    }

    .trip-form {
      display: grid;
      gap: 15px;
    }

    .form-grid {
      display: grid;
      gap: 14px;
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .field {
      display: grid;
      gap: 7px;
    }

    .field.full {
      grid-column: 1 / -1;
    }

    .field-label,
    .radio-group legend {
      color: #332a23;
      font-size: 13px;
      font-weight: 850;
    }

    .trip-form input,
    .trip-form textarea {
      background: #fffdfb;
      border: 1px solid rgba(34, 25, 17, 0.13);
      border-radius: 15px;
      color: var(--plan-ink);
      font: inherit;
      min-height: 50px;
      outline: 0;
      padding: 0 15px;
      transition: border-color 180ms ease, box-shadow 180ms ease, background 180ms ease;
      width: 100%;
    }

    .trip-form textarea {
      line-height: 1.55;
      min-height: 126px;
      padding: 14px 15px;
      resize: vertical;
    }

    .trip-form input::placeholder,
    .trip-form textarea::placeholder {
      color: #9a9087;
    }

    .trip-form input:focus,
    .trip-form textarea:focus {
      background: #fff;
      border-color: var(--plan-orange);
      box-shadow: 0 0 0 4px rgba(201, 106, 43, 0.13);
    }

    .trip-form input:user-invalid,
    .trip-form textarea:user-invalid {
      border-color: #b42318;
    }

    .radio-group {
      border: 0;
      margin: 0;
      padding: 0;
    }

    .radio-options {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-top: 9px;
    }

    .radio-options label {
      align-items: center;
      background: #fffdfb;
      border: 1px solid rgba(34, 25, 17, 0.12);
      border-radius: 999px;
      color: #473d34;
      cursor: pointer;
      display: inline-flex;
      font-size: 14px;
      font-weight: 780;
      gap: 8px;
      min-height: 42px;
      padding: 0 14px;
    }

    .radio-options input {
      accent-color: var(--plan-orange);
      min-height: 0;
      padding: 0;
      width: auto;
    }

    .trip-form button {
      align-items: center;
      background: var(--plan-orange);
      border: 0;
      border-radius: 17px;
      box-shadow: 0 18px 42px rgba(201, 106, 43, 0.28);
      color: #fff;
      cursor: pointer;
      display: inline-flex;
      font: inherit;
      font-size: 16px;
      font-weight: 900;
      justify-content: center;
      min-height: 56px;
      padding: 0 24px;
      transition: transform 180ms var(--plan-ease), box-shadow 180ms var(--plan-ease), background 180ms ease;
      width: 100%;
    }

    .trip-form button:hover {
      background: var(--plan-orange-dark);
      box-shadow: 0 22px 48px rgba(201, 106, 43, 0.34);
      transform: translateY(-2px);
    }

    .trip-form button:disabled {
      cursor: wait;
      opacity: 0.72;
      transform: none;
    }

    .trip-form button:focus-visible {
      outline: 4px solid rgba(201, 106, 43, 0.22);
      outline-offset: 3px;
    }

    .form-note {
      color: var(--plan-muted);
      font-size: 13px;
      line-height: 1.5;
      margin: -2px 0 0;
      text-align: center;
    }

    .privacy-notice {
      background: #fffaf4;
      border: 1px solid rgba(201, 106, 43, 0.16);
      border-radius: 14px;
      color: var(--plan-muted);
      font-size: 12px;
      line-height: 1.55;
      margin: 0;
      padding: 12px 14px;
    }

    .form-error {
      background: #fff4f2;
      border: 1px solid rgba(180, 35, 24, 0.18);
      border-radius: 14px;
      color: #9f2a20;
      display: none;
      font-size: 13px;
      font-weight: 750;
      line-height: 1.45;
      padding: 11px 13px;
    }

    .form-error.is-visible {
      display: block;
    }

    .form-success {
      background: #f1fbf5;
      border: 1px solid rgba(34, 139, 84, 0.2);
      border-radius: 16px;
      color: #17663a;
      display: none;
      font-size: 14px;
      font-weight: 800;
      line-height: 1.55;
      padding: 14px 15px;
    }

    .form-success.is-visible {
      display: block;
    }

    .button-loading {
      display: none;
    }

    .trip-form.is-submitting .button-label {
      display: none;
    }

    .trip-form.is-submitting .button-loading {
      display: inline;
    }

    .honeypot {
      left: -9999px;
      position: absolute;
    }

    @keyframes planFadeUp {
      from {
        opacity: 0;
        transform: translateY(14px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }
.purchase-process { background: #fff; border: 1px solid var(--plan-line); border-radius: 18px; margin-top: 22px; padding: 20px 22px; }
.purchase-process h2 { font-size: 20px; margin: 0 0 12px; }
.purchase-process ol { color: var(--plan-muted); display: grid; gap: 8px; margin: 0; padding-left: 22px; }
.purchase-process li::marker { color: var(--plan-orange-dark); font-weight: 900; }

    @media (prefers-reduced-motion: reduce) {
      *,
      *::before,
      *::after {
        animation-duration: 0.01ms !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
      }
    }

    @media (max-width: 1080px) {
      .planning-page #page-content {
        padding-inline: 24px;
      }

      .planning-hero {
        grid-template-columns: 1fr;
        min-height: auto;
        padding-top: 34px;
      }

      .planning-copy,
      .price-card {
        max-width: none;
      }
    }

    @media (max-width: 1080px) {
      .planning-copy h1 {
        font-size: 54px;
      }
    }

    @media (max-width: 700px) {
      .planning-page #page-content {
        padding: 12px 18px 34px;
      }

      .planning-hero {
        gap: 28px;
        padding-top: 18px;
      }

      .planning-page,
      .planning-copy {
        max-width: 100%;
        overflow-x: hidden;
      }

      .planning-copy > p,
      .planning-badges {
        max-width: 320px;
      }

      .planning-copy > p {
        font-size: 16px;
        overflow-wrap: break-word;
      }

      .trust-line {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
      }

      .planning-copy h1 {
        font-size: 30px;
        line-height: 1.12;
        max-width: 320px;
        overflow-wrap: break-word;
      }

      .planning-badges {
        grid-template-columns: 1fr;
      }

      .planning-badges .badge-pill {
        justify-content: flex-start;
        white-space: normal;
      }

      .price-card,
      .trip-form-card {
        border-radius: 20px;
      }

      .price-card-head {
        align-items: start;
        flex-direction: column;
      }

      .delivery {
        text-align: left;
        width: 100%;
      }

      .trust-points,
      .form-grid {
        grid-template-columns: 1fr;
      }

      .field.full {
        grid-column: auto;
      }

      .radio-options {
        display: grid;
        grid-template-columns: 1fr;
      }
    }
