/* Extracted from templates/fragments/hero.html */

/* ── Smart Booking Group ── */
.smart-booking-group {
    display: inline-flex;
    align-items: stretch;
    background: linear-gradient(135deg, #1a56db, #06b6d4);
    border-radius: 14px;
    padding: 2px;
    box-shadow: 0 4px 20px rgba(26, 86, 219, 0.3);
    transition: transform 0.2s, box-shadow 0.2s;
}

.smart-booking-group:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(26, 86, 219, 0.45);
}

.smart-booking-group .btn-primary {
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 12px 0 0 12px !important;
    padding: 12px 24px !important;
    margin: 0 !important;
    border-right: 1px solid rgba(255, 255, 255, 0.15) !important;
}

.smart-booking-group .btn-manage-rez {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 16px;
    color: #fff;
    text-decoration: none;
    font-size: 1.1rem;
    transition: background 0.2s;
    border-radius: 0 12px 12px 0;
}

.smart-booking-group .btn-manage-rez:hover {
    background: rgba(255, 255, 255, 0.1);
}

@media (max-width: 600px) {
    .smart-booking-group {
        width: 100%;
    }
    .smart-booking-group .btn-primary {
        flex: 1;
        font-size: 0.85rem !important;
        padding: 12px 16px !important;
    }
    .smart-booking-group .btn-primary span {
        display: none; /* Hide long text on very small screens */
    }
    .smart-booking-group .btn-primary::after {
        content: 'Rezervasyon';
    }
}

/* ── Reservation Widget — Expandable + Mobile ── */
        .rez-widget {
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            z-index: 1000;
            pointer-events: auto;
            animation: rezSlideIn 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) both;
            animation-delay: 1.2s;
        }

        @keyframes rezSlideIn {
            from {
                opacity: 0;
                transform: translateY(100%);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        /* Mini bar — always visible */
        .rez-mini {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 12px 20px;
            background: rgba(8, 16, 36, 0.92);
            border-top: 1px solid rgba(59, 130, 246, 0.3);
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
            cursor: pointer;
            transition: background 0.2s;
        }

        .rez-mini:hover {
            background: rgba(8, 16, 36, 0.97);
        }

        .rez-mini-icon {
            width: 36px;
            height: 36px;
            background: linear-gradient(135deg, #1a56db, #06b6d4);
            border-radius: 10px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 16px;
            flex-shrink: 0;
        }

        .rez-mini-text {
            flex: 1;
            min-width: 0;
        }

        .rez-mini-title {
            display: block;
            font-size: 13px;
            font-weight: 700;
            color: #e2e8f0;
        }

        .rez-mini-sub {
            display: block;
            font-size: 11px;
            color: #94a3b8;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .rez-mini-badge {
            font-size: 10px;
            font-weight: 700;
            padding: 3px 10px;
            border-radius: 12px;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            white-space: nowrap;
        }

        .rez-mini-badge.st-PENDING {
            background: rgba(245, 158, 11, 0.2);
            color: #fbbf24;
        }

        .rez-mini-badge.st-CANCELLED {
            background: rgba(239, 68, 68, 0.2);
            color: #f87171;
        }

        .rez-mini-badge.st-COMPLETED {
            background: rgba(99, 102, 241, 0.2);
            color: #a78bfa;
        }

        .rez-mini-chevron {
            font-size: 14px;
            color: #64748b;
            transition: transform 0.3s;
        }

        .rez-widget.collapsed .rez-mini-chevron {
            transform: rotate(180deg);
        }

        /* Expanded panel */
        .rez-expanded {
            max-height: 400px;
            overflow: hidden;
            transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s;
            opacity: 1;
        }

        .rez-widget.collapsed .rez-expanded {
            max-height: 0;
            opacity: 0;
        }

        .rez-widget-inner {
            background: rgba(8, 16, 36, 0.95);
            border-top: 1px solid rgba(59, 130, 246, 0.15);
            padding: 16px 20px;
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
        }

        .rez-header {
            display: flex;
            align-items: center;
            gap: 0.65rem;
            margin-bottom: 0.85rem;
        }

        .rez-icon {
            width: 32px;
            height: 32px;
            background: linear-gradient(135deg, #1a56db, #06b6d4);
            border-radius: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
            color: #fff;
            font-size: 0.85rem;
            flex-shrink: 0;
        }

        .rez-label {
            font-size: 0.62rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 1.5px;
            color: rgba(148, 163, 184, 0.8);
        }

        .rez-name {
            font-family: var(--font-display);
            font-size: 0.92rem;
            font-weight: 700;
            color: #e2e8f0;
        }

        .rez-status {
            margin-left: auto;
            font-size: 0.62rem;
            font-weight: 700;
            padding: 2px 8px;
            border-radius: 10px;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .rez-status-PENDING {
            background: rgba(245, 158, 11, 0.2);
            color: #fbbf24;
        }

        .rez-status-CONFIRMED {
            background: rgba(16, 185, 129, 0.2);
            color: #4ade80;
        }

        .rez-status-COMPLETED {
            background: rgba(99, 102, 241, 0.2);
            color: #a78bfa;
        }

        .rez-status-CANCELLED {
            background: rgba(239, 68, 68, 0.2);
            color: #f87171;
        }

        .rez-flight {
            display: flex;
            align-items: center;
            gap: 0.4rem;
            margin-bottom: 0.75rem;
        }

        .rez-date {
            text-align: center;
            min-width: 52px;
        }

        .rez-date-lbl {
            font-size: 0.55rem;
            color: rgba(148, 163, 184, 0.6);
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .rez-date-val {
            font-family: var(--font-display);
            font-size: 0.72rem;
            font-weight: 700;
            color: #93c5fd;
        }

        .rez-track {
            flex: 1;
            height: 20px;
            position: relative;
        }

        .rez-track-line {
            position: absolute;
            top: 50%;
            left: 0;
            right: 0;
            height: 1px;
            background: linear-gradient(90deg, rgba(59, 130, 246, 0.5), rgba(6, 182, 212, 0.5));
            transform: translateY(-50%);
        }

        .rez-track-line::before, .rez-track-line::after {
            content: '';
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            width: 5px;
            height: 5px;
            border-radius: 50%;
        }

        .rez-track-line::before {
            left: -2px;
            background: #3b82f6;
        }

        .rez-track-line::after {
            right: -2px;
            background: #06b6d4;
        }

        .rez-track-plane {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            opacity: 0.9;
            filter: drop-shadow(0 0 6px rgba(59, 130, 246, 0.6));
            animation: rezFly 4s ease-in-out infinite alternate;
        }

        @keyframes rezFly {
            0% {
                left: 5%;
            }
            100% {
                left: 75%;
            }
        }

        .rez-details {
            display: flex;
            gap: 0.35rem;
            flex-wrap: wrap;
        }

        .rez-chip {
            font-size: 0.65rem;
            font-weight: 600;
            padding: 2px 8px;
            border-radius: 8px;
            background: rgba(59, 130, 246, 0.12);
            color: #93c5fd;
            white-space: nowrap;
        }

        /* Action buttons */
        .rez-widget-actions {
            display: flex;
            gap: 8px;
            margin-top: 12px;
        }

        .rez-wbtn {
            flex: 1;
            padding: 9px 12px;
            border: none;
            border-radius: 10px;
            font-size: 12px;
            font-weight: 700;
            cursor: pointer;
            text-decoration: none;
            text-align: center;
            transition: all 0.2s;
        }

        .rez-wbtn:active {
            transform: scale(0.97);
        }

        .rez-wbtn-primary {
            background: linear-gradient(135deg, #3b82f6, #06b6d4);
            color: #fff;
        }

        .rez-wbtn-primary:hover {
            box-shadow: 0 4px 16px rgba(59, 130, 246, 0.4);
        }

        .rez-wbtn-cancel {
            background: rgba(239, 68, 68, 0.15);
            color: #f87171;
        }

        .rez-wbtn-cancel:hover {
            background: rgba(239, 68, 68, 0.25);
        }

        /* Desktop: position bottom-left like before, not full-width */
        @media (min-width: 769px) {
            .rez-widget {
                position: fixed;
                bottom: 20px;
                left: 20px;
                right: auto;
                max-width: 360px;
                border-radius: 16px;
                overflow: hidden;
                box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4);
            }

            .rez-mini {
                border-radius: 16px 16px 0 0;
                border-top: none;
            }

            .rez-widget.collapsed .rez-mini {
                border-radius: 16px;
            }
        }
/* ══════════════════════════════════════════════════════════
       AMBIENT FLIGHT ANIMATION  v2
       ── display:flex on each .sky-plane so ::after (contrail)
          and ::before (plane body) sit side-by-side.
       ── Two encoded SVGs: LTR (nose right) and RTL (nose left).
       ── Responsive: 2 planes on mobile, 5 on desktop.
       ── Pure transform+opacity → full GPU compositing.
       ══════════════════════════════════════════════════════════ */

        .sky-planes {
            position: absolute;
            inset: 0;
            overflow: hidden;
            pointer-events: none;
            z-index: 1;
        }

        /* Each plane = flex row: [contrail] [body] for LTR
                              [body] [contrail] for RTL     */
        .sky-plane {
            position: absolute;
            left: 0;
            display: flex;
            align-items: center;
            opacity: 0;
            will-change: transform, opacity;
        }

        /* ── Plane body (::before) ── */
        .sky-plane::before {
            content: '';
            display: block;
            flex-shrink: 0;
            /* LTR plane: nose → right */
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 22'%3E%3Crect x='8' y='8' width='48' height='6' rx='3' fill='white'/%3E%3Cpath d='M56 8 Q64 11 56 14 Z' fill='white'/%3E%3Cpath d='M10 8 L10 1 L18 8 Z' fill='white'/%3E%3Cpath d='M8 8 L1 5 L12 8 Z' fill='white'/%3E%3Cpath d='M8 14 L1 17 L12 14 Z' fill='white'/%3E%3Cpath d='M36 11 L18 0 L24 0 L44 11 L24 22 L18 22 Z' fill='white'/%3E%3C/svg%3E");
            background-size: contain;
            background-repeat: no-repeat;
            background-position: center;
        }

        /* RTL: nose → left (manually mirrored SVG paths) */
        .sky-plane.rtl::before {
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 22'%3E%3Crect x='8' y='8' width='48' height='6' rx='3' fill='white'/%3E%3Cpath d='M8 8 Q0 11 8 14 Z' fill='white'/%3E%3Cpath d='M54 8 L54 1 L46 8 Z' fill='white'/%3E%3Cpath d='M56 8 L63 5 L52 8 Z' fill='white'/%3E%3Cpath d='M56 14 L63 17 L52 14 Z' fill='white'/%3E%3Cpath d='M28 11 L46 0 L40 0 L20 11 L40 22 L46 22 Z' fill='white'/%3E%3C/svg%3E");
        }

        /* ── Contrail (::after) ── */
        .sky-plane::after {
            content: '';
            display: block;
            flex-shrink: 0;
            height: 1.5px;
            border-radius: 2px;
        }

        /* LTR: contrail LEFT of plane → order:-1, fades in toward plane */
        .sky-plane:not(.rtl)::after {
            order: -1;
            background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.3));
        }

        /* RTL: contrail RIGHT of plane → order:1, fades in toward plane */
        .sky-plane.rtl::after {
            order: 1;
            background: linear-gradient(to left, transparent, rgba(255, 255, 255, 0.3));
        }

        /* ── Individual sizes + positions ── */
        .spa {
            top: 22%;
            --sp-opacity: 0.28;
        }

        .spa::before {
            width: 54px;
            height: 19px;
        }

        .spa::after {
            width: 90px;
        }

        .spb {
            top: 12%;
            --sp-opacity: 0.18;
        }

        .spb::before {
            width: 38px;
            height: 13px;
        }

        .spb::after {
            width: 68px;
        }

        .spc {
            top: 64%;
            --sp-opacity: 0.16;
        }

        .spc::before {
            width: 30px;
            height: 11px;
        }

        .spc::after {
            width: 55px;
        }

        .spd {
            top: 7%;
            --sp-opacity: 0.11;
        }

        .spd::before {
            width: 22px;
            height: 8px;
        }

        .spd::after {
            width: 42px;
        }

        .spe {
            top: 46%;
            --sp-opacity: 0.13;
        }

        .spe::before {
            width: 26px;
            height: 9px;
        }

        .spe::after {
            width: 48px;
        }

        /* ── LTR keyframes — multi-point Y-wave for natural flight feel ── */
        @keyframes sky-ltr {
            0% {
                transform: translateX(-260px) translateY(0);
                opacity: 0;
            }
            5% {
                transform: translateX(3vw) translateY(-3px);
                opacity: var(--sp-opacity);
            }
            20% {
                transform: translateX(20vw) translateY(-11px);
                opacity: var(--sp-opacity);
            }
            38% {
                transform: translateX(38vw) translateY(-2px);
                opacity: var(--sp-opacity);
            }
            55% {
                transform: translateX(55vw) translateY(7px);
                opacity: var(--sp-opacity);
            }
            72% {
                transform: translateX(72vw) translateY(-5px);
                opacity: var(--sp-opacity);
            }
            88% {
                transform: translateX(88vw) translateY(2px);
                opacity: var(--sp-opacity);
            }
            95% {
                transform: translateX(95vw) translateY(0);
                opacity: var(--sp-opacity);
            }
            100% {
                transform: translateX(calc(100vw + 260px)) translateY(0);
                opacity: 0;
            }
        }

        /* ── RTL keyframes ── */
        @keyframes sky-rtl {
            0% {
                transform: translateX(calc(100vw + 260px)) translateY(0);
                opacity: 0;
            }
            5% {
                transform: translateX(97vw) translateY(-3px);
                opacity: var(--sp-opacity);
            }
            20% {
                transform: translateX(80vw) translateY(-9px);
                opacity: var(--sp-opacity);
            }
            38% {
                transform: translateX(62vw) translateY(4px);
                opacity: var(--sp-opacity);
            }
            55% {
                transform: translateX(45vw) translateY(-6px);
                opacity: var(--sp-opacity);
            }
            72% {
                transform: translateX(28vw) translateY(8px);
                opacity: var(--sp-opacity);
            }
            88% {
                transform: translateX(12vw) translateY(-4px);
                opacity: var(--sp-opacity);
            }
            95% {
                transform: translateX(5vw) translateY(0);
                opacity: var(--sp-opacity);
            }
            100% {
                transform: translateX(-260px) translateY(0);
                opacity: 0;
            }
        }

        /* ── Animation bindings ── */
        .spa {
            animation: sky-ltr 22s linear infinite;
        }

        .spb {
            animation: sky-ltr 38s linear infinite;
            animation-delay: -15s;
        }

        .spc {
            animation: sky-rtl 30s linear infinite;
            animation-delay: -9s;
        }

        .spd {
            animation: sky-ltr 52s linear infinite;
            animation-delay: -28s;
        }

        .spe {
            animation: sky-rtl 44s linear infinite;
            animation-delay: -21s;
        }

        /* ── Mobile: 2 smaller planes, hide the rest ── */
        @media (max-width: 768px) {
            .spc, .spd, .spe {
                display: none;
            }

            .spa {
                top: 18%;
                --sp-opacity: 0.22;
            }

            .spa::before {
                width: 38px;
                height: 13px;
            }

            .spa::after {
                width: 60px;
            }

            .spb {
                top: 10%;
                --sp-opacity: 0.15;
            }

            .spb::before {
                width: 26px;
                height: 9px;
            }

            .spb::after {
                width: 44px;
            }
        }

        /* ══════════════════════════════════════════════════════════
       HERO REVIEW CARDS (unchanged below)
       ══════════════════════════════════════════════════════════ */
        .hrev-stack {
            position: absolute;
            top: 50%;
            right: clamp(1.5rem, 5vw, 5rem);
            transform: translateY(-50%);
            display: flex;
            flex-direction: column;
            gap: 0.75rem;
            width: 260px;
            z-index: 10;
            pointer-events: none;
        }

        /* Entrance state → visible state → exit state */
        .hrev-card {
            background: rgba(8, 16, 36, 0.55);
            border: 1px solid rgba(255, 255, 255, 0.08);
            border-radius: 14px;
            padding: 0.85rem 1rem;
            backdrop-filter: blur(14px);
            -webkit-backdrop-filter: blur(14px);
            will-change: opacity, transform;

            /* Default: invisible, pushed right */
            opacity: 0;
            transform: translateX(20px);

            /* Smooth entrance */
            transition: opacity 0.7s cubic-bezier(0.4, 0, 0.2, 1),
            transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .hrev-card.visible {
            opacity: 1;
            transform: translateX(0);
        }

        /* Exit: faster than entrance so the swap feels crisp */
        .hrev-card.exiting {
            opacity: 0;
            transform: translateX(20px);
            transition: opacity 0.4s cubic-bezier(0.4, 0, 1, 1),
            transform 0.4s cubic-bezier(0.4, 1, 1, 1);
        }

        .hrev-head {
            display: flex;
            align-items: center;
            gap: 0.55rem;
            margin-bottom: 0.5rem;
        }

        .hrev-avatar {
            width: 30px;
            height: 30px;
            border-radius: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 0.78rem;
            font-weight: 700;
            color: #fff;
            flex-shrink: 0;
        }

        .hrev-name {
            font-size: 0.78rem;
            font-weight: 700;
            color: #e2e8f0;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            flex: 1;
            min-width: 0;
        }

        .hrev-stars {
            font-size: 0.65rem;
            color: #fbbf24;
            letter-spacing: 1px;
            flex-shrink: 0;
        }

        .hrev-text {
            font-size: 0.73rem;
            color: rgba(148, 163, 184, 0.9);
            line-height: 1.5;
            margin: 0;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        @media (max-width: 1100px) {
            .hrev-stack {
                display: none;
            }
        }
