/* Plan your trip — editorial enquiry experience */
.fjxx-plan-page {
    --fjxx-plan-ink: #1b2928;
    --fjxx-plan-deep: #19302e;
    --fjxx-plan-gold: #c99035;
    --fjxx-plan-gold-dark: #a96f1f;
    --fjxx-plan-paper: #f6f2e9;
    --fjxx-plan-white: #fffefa;
    --fjxx-plan-line: #ddd6c8;
    color: var(--fjxx-plan-ink);
    background: var(--fjxx-plan-paper);
}

.fjxx-plan-hero {
    position: relative;
    min-height: min(47rem, 76vh);
    overflow: hidden;
    color: #fff;
    background: var(--fjxx-plan-deep);
}

.fjxx-plan-hero-media,
.fjxx-plan-hero-overlay {
    position: absolute;
    inset: 0;
}

.fjxx-plan-hero-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 45%;
}

.fjxx-plan-hero-overlay {
    background:
        linear-gradient(90deg, rgba(8, 20, 20, 0.72) 0%, rgba(8, 20, 20, 0.26) 61%, rgba(8, 20, 20, 0.08) 100%),
        linear-gradient(180deg, rgba(7, 18, 18, 0.32) 0%, rgba(7, 18, 18, 0.02) 42%, rgba(7, 18, 18, 0.62) 100%);
}

.fjxx-plan-hero-content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: min(87.5%, 90rem);
    min-height: min(47rem, 76vh);
    margin: 0 auto;
    padding: 6rem 0 4.5rem;
}

.fjxx-plan-hero-eyebrow,
.fjxx-plan-kicker,
.fjxx-plan-contact-kicker {
    color: var(--fjxx-plan-gold);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.17em;
    line-height: 1.4;
    text-transform: uppercase;
}

.fjxx-plan-hero-eyebrow {
    max-width: 32rem;
    margin-bottom: 1.25rem;
    color: rgba(255, 255, 255, 0.82);
}

.fjxx-plan-hero h1 {
    max-width: 47rem;
    margin: 0;
    font-size: clamp(3.4rem, 7.6vw, 7.8rem);
    line-height: 0.94;
    letter-spacing: 0.015em;
    text-transform: uppercase;
}

.fjxx-plan-hero-rule {
    width: 3.6rem;
    height: 0.18rem;
    margin: 2.15rem 0 1.65rem;
    background: var(--fjxx-plan-gold);
}

.fjxx-plan-hero-description {
    max-width: 34rem;
    margin: 0;
    color: rgba(255, 255, 255, 0.8);
    font-size: clamp(0.8rem, 1vw, 1rem);
    line-height: 1.85;
}

.fjxx-plan-inspiration,
.fjxx-plan-form-section {
    width: min(87.5%, 90rem);
    margin: 0 auto;
}

.fjxx-plan-inspiration {
    padding: clamp(4.8rem, 8vw, 8rem) 0 clamp(5rem, 8vw, 8.5rem);
}

.fjxx-plan-section-heading {
    text-align: center;
}

.fjxx-plan-section-heading .fjxx-plan-kicker {
    margin-bottom: 0.8rem;
}

.fjxx-plan-section-heading h2 {
    margin: 0;
    color: var(--fjxx-plan-ink);
    font-size: clamp(2.1rem, 3.3vw, 3.8rem);
    line-height: 0.98;
    text-transform: uppercase;
}

.fjxx-plan-section-heading > p:last-child {
    max-width: 40rem;
    margin: 1.1rem auto 0;
    color: #69716b;
    font-size: 0.78rem;
    line-height: 1.8;
}

.fjxx-plan-journey-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
    margin-top: clamp(2.5rem, 4vw, 4rem);
}

.fjxx-plan-journey-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    color: var(--fjxx-plan-ink);
    background: var(--fjxx-plan-white);
    border: 1px solid rgba(85, 78, 62, 0.13);
    transition: color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.fjxx-plan-journey-card:hover,
.fjxx-plan-journey-card:focus-visible {
    color: var(--fjxx-plan-ink);
    box-shadow: 0 1rem 2.5rem rgba(31, 42, 38, 0.12);
    transform: translateY(-0.3rem);
}

.fjxx-plan-journey-card:focus-visible {
    outline: 0.16rem solid var(--fjxx-plan-gold);
    outline-offset: 0.2rem;
}

.fjxx-plan-journey-card-media {
    aspect-ratio: 1.8 / 1;
    overflow: hidden;
    background: #304643;
}

.fjxx-plan-journey-card-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.fjxx-plan-journey-card:nth-child(1) .fjxx-plan-journey-card-media img { object-position: center 44%; }
.fjxx-plan-journey-card:nth-child(2) .fjxx-plan-journey-card-media img { object-position: center 53%; }
.fjxx-plan-journey-card:nth-child(3) .fjxx-plan-journey-card-media img { object-position: center 48%; }
.fjxx-plan-journey-card:hover .fjxx-plan-journey-card-media img,
.fjxx-plan-journey-card:focus-visible .fjxx-plan-journey-card-media img { transform: scale(1.045); }

.fjxx-plan-journey-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    padding: 1.35rem 1.45rem 1.5rem;
}

.fjxx-plan-journey-card-route {
    margin: 0 0 0.6rem;
    color: var(--fjxx-plan-ink);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    line-height: 1.45;
    text-transform: uppercase;
}

.fjxx-plan-journey-card h3 {
    max-width: 19rem;
    margin: 0;
    font-size: clamp(1.3rem, 1.65vw, 1.8rem);
    line-height: 1.02;
}

.fjxx-plan-journey-card-body > span {
    margin-top: auto;
    padding-top: 1.25rem;
    color: var(--fjxx-plan-gold-dark);
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.fjxx-plan-form-section {
    padding-bottom: clamp(5rem, 9vw, 9rem);
}

.fjxx-plan-form-heading {
    margin-bottom: clamp(2.6rem, 4.5vw, 4.5rem);
}

.fjxx-plan-form-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.85fr) minmax(16rem, 0.72fr);
    gap: clamp(1.5rem, 4vw, 4.75rem);
    align-items: start;
}

.fjxx-plan-form {
    min-width: 0;
    padding: clamp(1.5rem, 3.5vw, 3.5rem);
    background: var(--fjxx-plan-white);
    border: 1px solid rgba(85, 78, 62, 0.16);
}

.fjxx-plan-fieldset {
    min-width: 0;
    padding: 0;
    border: 0;
}

.fjxx-plan-fieldset + .fjxx-plan-fieldset {
    margin-top: 3.3rem;
}

.fjxx-plan-fieldset legend {
    width: 100%;
    padding: 0 0 0.8rem;
    color: var(--fjxx-plan-ink);
    border-bottom: 1px solid var(--fjxx-plan-line);
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(1.7rem, 2.3vw, 2.55rem);
    line-height: 1;
    text-transform: uppercase;
}

.fjxx-plan-field-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.2rem;
    margin-top: 1.35rem;
}

.fjxx-plan-field-grid-three {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 0.72fr) minmax(0, 1.2fr);
}

.fjxx-plan-field {
    min-width: 0;
}

.fjxx-plan-field-full {
    margin-top: 1.35rem;
}

.fjxx-plan-field label,
.fjxx-plan-multi summary {
    color: #303c38;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.5;
}

.fjxx-plan-field label {
    display: block;
    margin-bottom: 0.45rem;
}

.fjxx-plan-field label span,
.fjxx-plan-fieldset label span[aria-hidden="true"] {
    margin-left: 0.18rem;
    color: var(--fjxx-plan-gold-dark);
}

.fjxx-plan-field input,
.fjxx-plan-field select,
.fjxx-plan-field textarea,
.fjxx-plan-multi summary {
    width: 100%;
    min-height: 2.95rem;
    padding: 0.72rem 0.85rem;
    color: #33403b;
    border: 1px solid #d9d4c9;
    border-radius: 0;
    outline: 0;
    background: #fff;
    font: inherit;
    font-size: 0.72rem;
    line-height: 1.45;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.fjxx-plan-field input::placeholder,
.fjxx-plan-field textarea::placeholder {
    color: #9a9c96;
}

.fjxx-plan-field select {
    appearance: none;
    padding-right: 2.2rem;
    background-image: linear-gradient(45deg, transparent 50%, #8a8d83 50%), linear-gradient(135deg, #8a8d83 50%, transparent 50%);
    background-position: calc(100% - 1rem) 1.28rem, calc(100% - 0.7rem) 1.28rem;
    background-size: 0.3rem 0.3rem, 0.3rem 0.3rem;
    background-repeat: no-repeat;
}

.fjxx-plan-field textarea {
    display: block;
    min-height: 7.5rem;
    resize: vertical;
}

.fjxx-plan-field input:focus,
.fjxx-plan-field select:focus,
.fjxx-plan-field textarea:focus,
.fjxx-plan-multi[open] summary {
    border-color: var(--fjxx-plan-gold);
    box-shadow: 0 0 0 0.18rem rgba(201, 144, 53, 0.13);
}

.fjxx-plan-multi {
    position: relative;
}

.fjxx-plan-multi summary {
    position: relative;
    display: flex;
    align-items: center;
    cursor: pointer;
    list-style: none;
    color: #8e918a;
}

.fjxx-plan-multi summary::-webkit-details-marker { display: none; }
.fjxx-plan-multi summary::after {
    position: absolute;
    right: 1rem;
    width: 0.38rem;
    height: 0.38rem;
    border-right: 1px solid #898d85;
    border-bottom: 1px solid #898d85;
    content: '';
    transform: translateY(-0.12rem) rotate(45deg);
    transition: transform 0.2s ease;
}
.fjxx-plan-multi[open] summary::after { transform: translateY(0.08rem) rotate(225deg); }
.fjxx-plan-multi.is-invalid summary { border-color: #ba593e; box-shadow: 0 0 0 0.18rem rgba(186, 89, 62, 0.12); }

.fjxx-plan-multi-options {
    position: absolute;
    z-index: 6;
    top: calc(100% + 0.35rem);
    left: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.05rem 0.8rem;
    width: 100%;
    max-height: 19rem;
    padding: 0.8rem;
    overflow-y: auto;
    background: #fff;
    border: 1px solid var(--fjxx-plan-line);
    box-shadow: 0 1.2rem 2.5rem rgba(25, 48, 46, 0.14);
}

.fjxx-plan-multi-options label {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0;
    padding: 0.46rem 0.25rem;
    color: #48524e;
    font-size: 0.68rem;
    font-weight: 500;
    cursor: pointer;
}

.fjxx-plan-multi-options input {
    width: 0.9rem;
    min-height: 0.9rem;
    margin: 0.12rem 0 0;
    accent-color: var(--fjxx-plan-gold);
}

.fjxx-plan-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.8rem;
    width: 100%;
    min-height: 3.2rem;
    margin-top: 1.5rem;
    padding: 0.75rem 1.2rem;
    color: #fff;
    border: 1px solid var(--fjxx-plan-gold);
    background: var(--fjxx-plan-gold);
    cursor: pointer;
    font: inherit;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    transition: background-color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

.fjxx-plan-submit:hover,
.fjxx-plan-submit:focus-visible {
    border-color: var(--fjxx-plan-gold-dark);
    background: var(--fjxx-plan-gold-dark);
    transform: translateY(-0.12rem);
}

.fjxx-plan-submit:focus-visible {
    outline: 0.16rem solid rgba(201, 144, 53, 0.4);
    outline-offset: 0.15rem;
}

.fjxx-plan-form-note,
.fjxx-plan-form-status {
    margin: 0.8rem auto 0;
    color: #8a8c86;
    font-size: 0.62rem;
    line-height: 1.6;
    text-align: center;
}

.fjxx-plan-form-status {
    min-height: 1rem;
    color: #557863;
    font-weight: 700;
}

.fjxx-plan-contact-card {
    position: sticky;
    top: 6rem;
    align-self: start;
    padding: 3.6rem 2.65rem 3.25rem;
    color: #202020;
    background: #fff;
    border: 1px solid rgba(221, 214, 200, 0.18);
    box-shadow: none;
    text-align: center;
}

.fjxx-plan-contact-kicker,
.fjxx-plan-contact-label {
    margin: 0;
    color: #bd740f;
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1.4;
    text-transform: uppercase;
}

.fjxx-plan-contact-block {
    position: relative;
    padding: 1.4rem 0 1.7rem;
}

.fjxx-plan-contact-block + .fjxx-plan-contact-block {
    border-top: 1px solid #e5ded2;
}

.fjxx-plan-contact-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    margin: 0 auto 1.15rem;
    color: #111;
    font-size: 1.55rem;
    line-height: 1;
}

.fjxx-plan-contact-icon-phone i {
    font-size: 1.55rem;
}

.fjxx-plan-contact-icon-clock {
    position: relative;
    width: 1.45rem;
    height: 1.45rem;
    margin-bottom: 1.25rem;
    border: 2px solid #111;
    border-radius: 50%;
}

.fjxx-plan-contact-icon-clock::before,
.fjxx-plan-contact-icon-clock::after {
    position: absolute;
    top: 0.3rem;
    left: calc(50% - 0.06rem);
    width: 0.1rem;
    border-radius: 999px;
    background: #111;
    content: '';
    transform-origin: 50% 100%;
}

.fjxx-plan-contact-icon-clock::before {
    height: 0.44rem;
}

.fjxx-plan-contact-icon-clock::after {
    top: 0.66rem;
    height: 0.34rem;
    transform: rotate(125deg);
}

.fjxx-plan-contact-card h2 {
    margin: 0 0 1.3rem;
    color: #111;
    font-size: clamp(1.8rem, 2.4vw, 2.35rem);
    line-height: 0.98;
    text-transform: uppercase;
}

.fjxx-plan-contact-phone {
    display: inline-block;
    color: #c2780e;
    font-size: 1.15rem;
    font-weight: 600;
    line-height: 1.4;
}

.fjxx-plan-contact-copy {
    margin: 1.25rem 0 0;
    color: #333;
    font-size: 0.72rem;
    line-height: 1.7;
}

.fjxx-plan-contact-hours {
    padding-top: 1.6rem;
    padding-bottom: 1.8rem;
}

.fjxx-plan-contact-hours h2 {
    margin-bottom: 1.45rem;
}

.fjxx-plan-contact-hours-day,
.fjxx-plan-contact-hours-time,
.fjxx-plan-contact-hours-zone {
    margin: 0;
    color: #292929;
    font-size: 0.8rem;
    line-height: 1.6;
}

.fjxx-plan-contact-hours-day {
    font-weight: 600;
}

.fjxx-plan-contact-hours-time {
    margin-top: 0.85rem;
    font-size: 0.86rem;
}

.fjxx-plan-contact-hours-zone {
    margin-top: 0.85rem;
    font-size: 0.68rem;
}

.fjxx-plan-contact-email {
    padding-top: 1.2rem;
    padding-bottom: 0;
}

.fjxx-plan-contact-email a {
    display: inline-block;
    margin-top: 1.25rem;
    color: #242424;
    font-size: 0.78rem;
    line-height: 1.5;
}

@media (max-width: 64rem) {
    .fjxx-plan-form-layout { grid-template-columns: minmax(0, 1fr); }
    .fjxx-plan-contact-card { position: static; }
}

@media (max-width: 48rem) {
    .fjxx-plan-hero,
    .fjxx-plan-hero-content { min-height: 38rem; }
    .fjxx-plan-hero-content { width: calc(100% - 2.2rem); padding-bottom: 3rem; }
    .fjxx-plan-hero-media img { object-position: 57% center; }
    .fjxx-plan-hero-overlay { background: linear-gradient(90deg, rgba(8, 20, 20, 0.68), rgba(8, 20, 20, 0.2)), linear-gradient(180deg, rgba(7, 18, 18, 0.3), rgba(7, 18, 18, 0.7)); }
    .fjxx-plan-inspiration,
    .fjxx-plan-form-section { width: calc(100% - 2.2rem); }
    .fjxx-plan-journey-grid,
    .fjxx-plan-field-grid,
    .fjxx-plan-field-grid-three { grid-template-columns: 1fr; }
    .fjxx-plan-journey-grid { gap: 0.8rem; }
    .fjxx-plan-form { padding: 1.25rem; }
    .fjxx-plan-field-grid { gap: 1.1rem; }
    .fjxx-plan-field-full { margin-top: 1.1rem; }
    .fjxx-plan-multi-options { position: static; box-shadow: none; }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-plan-journey-card,
    .fjxx-plan-journey-card-media img,
    .fjxx-plan-submit { transition: none; }
}
