/* Flight & Hotel page */
.fh-hero {
    background: radial-gradient(circle at 78% 20%, rgba(52,112,190,.35), transparent 28%), linear-gradient(135deg, var(--navy-deep) 0%, var(--navy) 62%, var(--royal) 100%);
    color: var(--white);
    padding: 72px 0 84px;
    overflow: hidden;
}
.fh-hero-grid {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 58px;
    align-items: center;
}
.fh-hero-copy { max-width: 660px; }
.fh-eyebrow,
.fh-section-label {
    display: inline-block;
    color: var(--gold-bright);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: 1.8px;
    margin-bottom: 14px;
}
.fh-hero h1 {
    color: var(--white);
    font-size: clamp(2.8rem, 5vw, 4.7rem);
    line-height: 1.02;
    margin-bottom: 20px;
    letter-spacing:0;
}
.fh-hero h1 em { color: var(--gold-bright); font-style: normal; }
.fh-hero p {
    max-width: 58ch;
    color: rgba(255,255,255,.76);
    font-size: 1.06rem;
}
.fh-hero-actions { display:flex; gap:14px; flex-wrap:wrap; margin-top:28px; }
.fh-mini-points {
    display:flex;
    gap:22px;
    flex-wrap:wrap;
    margin-top:28px;
    padding-top:20px;
    border-top:1px solid rgba(255,255,255,.14);
    color:rgba(255,255,255,.75);
    font-size:.83rem;
}
.fh-mini-points span::before { content:'•'; color:var(--gold-bright); margin-right:8px; }
.fh-hero-visual { position:relative; }
.fh-hero-visual img {
    width:100%;
    aspect-ratio: 4 / 3;
    object-fit:cover;
    border-radius:16px;
    display:block;
    box-shadow: 0 28px 80px rgba(0,0,0,.28);
}
.fh-image-card {
    position:absolute;
    left:-28px;
    bottom:24px;
    background:var(--white);
    color:var(--navy);
    padding:15px 18px;
    border-radius:10px;
    box-shadow:0 18px 40px rgba(0,0,0,.18);
    min-width:215px;
}
.fh-image-card strong { display:block; font-size:.95rem; margin-bottom:4px; }
.fh-image-card span { display:block; color:var(--slate); font-size:.76rem; }

.fh-services { padding-bottom: 88px; }
.fh-booking-layout {
    display:grid;
    grid-template-columns: .9fr 1.1fr;
    gap:48px;
    align-items:start;
}
.fh-booking-info { padding: 12px 0; }
.fh-booking-info h2 { margin-bottom:14px; }
.fh-booking-info > p { max-width:52ch; }
.fh-feature-list { display:grid; gap:20px; margin-top:32px; }
.fh-feature { display:grid; grid-template-columns:46px 1fr; gap:14px; align-items:start; }
.fh-icon {
    width:46px; height:46px; border-radius:12px; display:grid; place-items:center;
    background:var(--surface); color:var(--royal); font-weight:800; font-size:1.1rem;
    border:1px solid var(--line);
}
.fh-feature h3 { font-size:1rem; margin-bottom:4px; }
.fh-feature p { margin:0; font-size:.9rem; color:var(--slate); }

.fh-form-card {
    background:var(--white);
    border:1px solid var(--line);
    border-radius:14px;
    padding:30px;
    box-shadow:0 18px 50px rgba(13,42,78,.10);
}
.fh-form-card h3 { margin-bottom:4px; }
.fh-form-note { color:var(--slate); font-size:.88rem; margin-bottom:22px; }
.fh-type-field { margin-bottom:18px; }
.fh-type-field label { display:block; font-size:.82rem; font-weight:700; margin-bottom:6px; }
.fh-type-field select {
    width:100%; padding:13px 14px; border:2px solid var(--gold); border-radius:8px;
    background:#fffdf7; font:inherit; font-weight:700; color:var(--navy);
}
.fh-detail-panel {
    display:none;
    padding:18px;
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:10px;
    margin-bottom:20px;
}
.fh-detail-panel.active { display:block; }
.fh-panel-title { font-size:.88rem; font-weight:800; color:var(--navy); margin-bottom:15px; }
.fh-contact-title { padding-top:4px; }
.fh-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; }
.fh-form-grid .field { margin-bottom:14px; }
.fh-full { grid-column:1/-1; }
.fh-form-footnote { margin:12px 0 0; text-align:center; color:var(--slate); font-size:.74rem; line-height:1.5; }

.fh-benefits .service-card { height:100%; }
.fh-process {
    display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:56px;
    align-items:start;
}
.fh-process > div:first-child p { max-width:46ch; }
.fh-steps { display:grid; }
.fh-step { display:grid; grid-template-columns:54px 1fr; gap:18px; padding:18px 0; border-top:1px solid var(--line); }
.fh-step:first-child { border-top:0; padding-top:0; }
.fh-step > strong { color:var(--gold); font-size:.9rem; }
.fh-step h3 { font-size:1rem; margin-bottom:4px; }
.fh-step p { margin:0; font-size:.88rem; color:var(--slate); }
.fh-faq-list { max-width:820px; margin:0 auto; }

@media (max-width: 980px) {
    .fh-hero-grid,
    .fh-booking-layout,
    .fh-process { grid-template-columns:1fr; }
    .fh-hero-copy { max-width: none; }
    .fh-hero-visual { max-width:760px; }
    .fh-image-card { left:18px; }
}

@media (max-width: 640px) {
    .fh-hero { padding:48px 0 60px; }
    .fh-hero h1 { font-size:2.55rem; }
    .fh-hero-actions .btn { width:100%; text-align:center; }
    .fh-mini-points { gap:12px 18px; }
    .fh-image-card { position:static; margin-top:14px; min-width:0; }
    .fh-form-card { padding:20px; }
    .fh-form-grid { grid-template-columns:1fr; }
    .fh-full { grid-column:auto; }
    .fh-detail-panel { padding:14px; }
    .fh-step { grid-template-columns:40px 1fr; gap:12px; }
}
