@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800;900&display=swap');

:root {
    --blue: #0f5f9f;
    --blue-deep: #063a70;
    --blue-soft: #e7f3ff;
    --green: #28bf54;
    --teal: #58bcb6;
    --yellow: #ffc400;
    --gold: #d6ab72;
    --ink: #162033;
    --muted: #667085;
    --line: #dbe2ec;
    --page: #f7f9fc;
    --shadow: 0 18px 48px rgba(11, 36, 82, .13);
}

* { box-sizing: border-box; }
html, body { max-width: 100%; overflow-x: hidden; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--page);
    font-family: Poppins, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.5;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
main, .site-footer, .hero, .hajj-hero, .hajj-steps, .hajj-shorts, .hajj-preform, .hajj-package-guide, .gallery-section, .reviews-section, .featured-section, .omra-page-heading, .omra-presentation-hero, .omra-intro-cards, .omra-steps-section, .omra-filter-bar, .omra-tour-list, .omra-packages-hero, .omra-package-comparison, .omra-package-details, .omra-package-flow, .omra-packages-intro, .omra-faq-section { max-width: 100%; overflow-x: hidden; overflow-x: clip; }
body:not(.admin-body) { padding-top: 114px; }

.site-header {
    position: fixed; top: 0; right: 0; left: 0; z-index: 1000;
    display: flex; align-items: center; gap: 28px;
    min-height: 114px; padding: 24px 6vw;
    color: #fff; background: var(--blue);
    box-shadow: 0 8px 20px rgba(11,36,82,.24);
}
.brand { display: inline-flex; align-items: center; gap: 14px; min-width: 320px; }
.brand-logo { width: 320px; height: auto; }
.brand-fallback { display: none; align-items: center; gap: 14px; }
.brand-mark { display: grid; width: 62px; height: 62px; place-items: center; border: 3px solid rgba(255,255,255,.92); border-radius: 50%; font-family: Georgia, serif; font-size: 30px; font-weight: 700; }
.brand strong { display: block; font-family: Georgia, serif; font-size: 30px; line-height: 1; }
.brand em { display: block; margin-top: -2px; font-family: Georgia, serif; font-size: 18px; font-style: normal; text-align: right; }
.main-nav { display: flex; align-items: center; gap: 28px; margin-left: auto; font-weight: 800; text-transform: uppercase; }
.main-nav > a, .main-nav .nav-parent { padding: 12px 0; border-bottom: 3px solid transparent; }
.main-nav > a.active, .main-nav > a:hover, .main-nav .nav-parent.active, .main-nav .nav-parent:hover, .main-nav .nav-item:hover .nav-parent, .main-nav .nav-item:focus-within .nav-parent { border-color: #fff; }
.nav-item { position: relative; display: inline-flex; align-items: center; }
.nav-parent::after { content: '⌄'; margin-left: 6px; font-size: 13px; }
.nav-dropdown {
    position: absolute; top: calc(100% + 14px); left: 50%; z-index: 120;
    display: grid; min-width: 230px; border-radius: 4px; padding: 12px 0;
    background: #4167be; box-shadow: 0 18px 34px rgba(6,25,66,.24);
    opacity: 0; visibility: hidden; transform: translate(-50%, 8px);
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
    text-transform: none;
}
.nav-dropdown a { display: block; border: 0; padding: 13px 24px; color: #fff; font-size: 14px; font-weight: 800; white-space: nowrap; }
.nav-dropdown a:hover { background: rgba(255,255,255,.12); }
.nav-item:hover .nav-dropdown, .nav-item:focus-within .nav-dropdown { opacity: 1; visibility: visible; transform: translate(-50%,0); }
.nav-toggle { display: none; }

.call-button, .green-button, .blue-button, .ghost-button, .inquiry-form button, .all-tours-button, .call-strip, .whatsapp-square, .primary-button, .whatsapp-pill, .detail-pill {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 42px; border: 0; border-radius: 8px; padding: 11px 18px;
    color: #fff; font-weight: 900; cursor: pointer; transition: transform .18s ease, filter .18s ease, box-shadow .18s ease;
}
.call-button, .call-strip { background: var(--teal); }
.green-button, .whatsapp-pill { background: var(--green); }
.blue-button, .all-tours-button, .detail-pill, .primary-button, .inquiry-form button { background: var(--blue); }
.ghost-button { border: 1px solid rgba(255,255,255,.7); background: rgba(255,255,255,.08); }
.call-button { min-width: 150px; }
.call-button:hover, .green-button:hover, .blue-button:hover, .ghost-button:hover, .all-tours-button:hover, .call-strip:hover, .whatsapp-pill:hover, .detail-pill:hover, .primary-button:hover { transform: translateY(-2px); filter: brightness(1.04); }
.callback-action { gap: 9px; }
.callback-action svg { width: 18px; height: 18px; flex: 0 0 18px; fill: currentColor; }
.omra-whatsapp-button { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; gap: 9px; border-radius: 8px; padding: 11px 18px; color: #fff; background: #17bf55; font-weight: 900; text-decoration: none; transition: transform .18s ease, filter .18s ease, box-shadow .18s ease; }
.omra-whatsapp-button:hover { transform: translateY(-2px); filter: brightness(1.04); }
.omra-whatsapp-button svg { width: 20px; height: 20px; flex: 0 0 20px; fill: currentColor; }

.hero {
    position: relative; min-height: 620px; display: flex; align-items: center;
    padding: 76px 6vw 150px; color: #fff; background-size: cover; background-position: center;
}
.hero-content { width: min(760px, 92vw); }
.hero-content p, .section-kicker { margin: 0 0 10px; color: var(--teal); font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.hero-content h1 { margin: 0; font-size: clamp(44px, 6vw, 78px); line-height: .96; letter-spacing: -.04em; }
.hero-content span { display: block; max-width: 680px; margin-top: 22px; font-size: clamp(18px, 2vw, 23px); font-weight: 600; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }

.home-categories {
    position: relative; z-index: 4; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px;
    width: min(1180px, 84vw); margin: -72px auto 0;
}
.home-categories a { overflow: hidden; border-radius: 8px; background: #fff; box-shadow: 0 18px 42px rgba(11,36,82,.12); transition: transform .2s ease; }
.home-categories a:hover { transform: translateY(-5px); }
.home-categories img { width: 100%; height: 160px; object-fit: cover; }
.home-categories strong { display: grid; min-height: 56px; place-items: center; padding: 12px; color: #07142a; font-size: 19px; text-align: center; }

.section-title { margin-bottom: 24px; text-align: center; }
.section-title span { color: var(--teal); font-size: 13px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.section-title h2, .section h2, .page-heading h1 { margin: 0; color: var(--blue-deep); font-size: clamp(30px, 4vw, 44px); line-height: 1.12; }
.section-title p { color: #344054; font-weight: 600; }

.featured-section { width: 100%; padding: 76px 0 70px; background: var(--page); }
.featured-head { display: grid; grid-template-columns: minmax(260px,.7fr) minmax(320px,1fr) minmax(220px,.55fr) auto; gap: 28px; align-items: center; width: min(1480px, 92vw); margin: 0 auto 30px; }
.featured-head h2 { margin: 0; color: #172033; font-size: clamp(40px, 5vw, 64px); line-height: .98; letter-spacing: -.04em; }
.featured-head p { color: #667085; font-size: 20px; }
.featured-arrows { display: flex; gap: 12px; }
.featured-arrows button, .carousel-arrow { display: grid; width: 54px; height: 54px; place-items: center; border: 1px solid #e2e8f0; border-radius: 50%; background: #fff; color: #07142a; font-size: 34px; font-weight: 900; cursor: pointer; }
.featured-layout { display: grid; grid-template-columns: 220px minmax(0,1fr); gap: 28px; width: min(1480px, 92vw); margin: 0 auto; }
.featured-tabs { display: grid; align-content: start; gap: 12px; border-left: 1px solid #d8dde7; padding: 220px 0 0; }
.featured-tabs a, .featured-tabs button { border: 0; border-left: 4px solid transparent; padding: 8px 0 8px 18px; color: #62c6ea; background: transparent; font: inherit; font-weight: 900; text-align: left; cursor: pointer; }
.featured-tabs a.active, .featured-tabs button.active { color: #83d20f; border-left-color: #83d20f; }
.carousel-shell { position: relative; max-width: 100%; overflow: hidden; contain: layout paint; }
.featured-grid, .gallery-track, .reviews-track { display: flex; gap: 20px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.featured-grid::-webkit-scrollbar, .gallery-track::-webkit-scrollbar, .reviews-track::-webkit-scrollbar { display: none; }
.featured-card { display: flex; flex-direction: column; flex: 0 0 calc((100% - 40px) / 3); min-width: 340px; min-height: 560px; border: 1px solid #d9e9c5; border-radius: 8px; background: #fff; overflow: hidden; scroll-snap-align: start; }
.featured-image { position: relative; display: block; margin: 10px 10px 0; overflow: hidden; border-radius: 7px; background: #f8e8db; }
.featured-image img { width: 100%; height: 250px; object-fit: cover; }
.featured-image .available, .featured-image .full, .featured-image .last { position: absolute; top: 14px; right: 14px; border-radius: 5px; padding: 10px 14px; color: #fff; font-weight: 900; font-size: 13px; }
.featured-image .available { background: #09cf2c; } .featured-image .full { background: #e11d48; } .featured-image .last { background: #1675e8; }
.featured-body { padding: 20px 16px 12px; }
.featured-body h3 { margin: 0 0 16px; color: #0b1428; font-size: 19px; line-height: 1.15; }
.featured-body h3 span { color: #344054; font-weight: 500; }
.tour-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 18px; margin: 0; font-size: 12px; }
.tour-facts div { display: grid; grid-template-columns: auto 1fr; gap: 4px; align-items: start; }
.tour-facts dt { display: inline-flex; align-items: center; gap: 3px; color: #000; font-weight: 900; } .tour-facts dd { margin: 0; color: #344054; } .fact-icon { display: inline-flex; width: 13px; height: 13px; align-items: center; justify-content: center; color: #000; line-height: 1; } .fact-icon svg { display: block; width: 13px; height: 13px; fill: currentColor; }
.featured-actions { display: grid; grid-template-columns: 1fr 76px; gap: 8px; margin-top: auto; border-top: 1px solid #e6ebf1; border-bottom: 1px solid #e6ebf1; padding: 16px; }
.whatsapp-square { padding: 0; background: #09d32d; } .whatsapp-square svg { width: 28px; height: 28px; fill: #fff; }
.featured-price { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 22px 16px; }
.featured-price span { color: #667085; } .featured-price strong { color: #07142a; font-size: 23px; }
.featured-room-prices { display: grid; gap: 12px; padding: 18px 16px 24px; border-top: 1px solid #e6ebf1; }
.room-price-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: start; }
.room-price-row p { margin: 0; } .room-price-row small { display: block; color: #667085; font-size: 11px; } .room-price-row b { font-size: 20px; white-space: nowrap; }
.hidden-by-package { display: none !important; }
.carousel-dots { display: flex; justify-content: center; gap: 10px; padding-top: 20px; }
.carousel-dots button { width: 7px; height: 7px; border: 0; border-radius: 50%; padding: 0; background: #cfcfcf; cursor: pointer; } .carousel-dots button.active { background: #07142a; transform: scale(1.2); }

.gallery-section, .reviews-section { padding: 72px 4vw; background: #fff; }
.gallery-head, .reviews-head { width: min(980px, 92vw); margin: 0 auto 26px; text-align: center; }
.gallery-head h2, .reviews-head h2 { margin: 0 0 12px; color: #050914; font-size: clamp(34px, 4.8vw, 52px); line-height: 1.05; }
.gallery-head p, .reviews-head p { color: #111827; font-size: clamp(16px,2vw,22px); }
.reviews-head .review-maps-link { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; max-width: 100%; margin-top: 8px; border: 1px solid #b9cfe2; border-radius: 9px; padding: 10px 16px; color: #145482; background: #fff; font-size: 14px; font-weight: 700; line-height: 1.3; transition: border-color .18s ease, background-color .18s ease; }
.reviews-head .review-maps-link:hover { border-color: #4e87b0; background: #f0f7fc; }
.reviews-head .review-maps-link:focus-visible { outline: 2px solid #145482; outline-offset: 3px; }
.reviews-head .review-write-link { display: inline-flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px; min-height: 44px; max-width: 100%; margin: 8px 0 0 8px; padding: 10px 16px; border: 1px solid #145482; border-radius: 9px; color: #fff; background: #145482; font-size: 14px; font-weight: 700; line-height: 1.3; }
.reviews-head .review-write-link:hover { background: #063a70; border-color: #063a70; }
.reviews-head .review-write-link:focus-visible { outline: 2px solid #145482; outline-offset: 3px; }
.review-write-stars { color: #ffcf5c; letter-spacing: 2px; }
@media (max-width: 700px) { .reviews-head .review-write-link { margin-left: 0; } }
.review-maps-link svg { flex: 0 0 16px; width: 16px; height: 16px; }
.gallery-section .carousel-shell { width: min(1760px, 94vw); margin: 0 auto; padding: 0 58px 34px; }
.gallery-card { flex: 0 0 min(19vw, 340px); min-width: 250px; margin: 0; overflow: hidden; border-radius: 18px; background: #fff; box-shadow: var(--shadow); scroll-snap-align: start; }
.gallery-card img { width: 100%; aspect-ratio: 3/5; object-fit: cover; }
.carousel-arrow { position: absolute; top: calc(50% - 26px); z-index: 2; } .carousel-prev { left: 0; } .carousel-next { right: 0; }
.reviews-section { background: #fbfcff; }
.reviews-carousel { width: min(1480px,94vw); margin: 0 auto; }
.review-card { flex: 0 0 calc((100% - 60px)/4); min-width: 320px; min-height: 330px; border: 1px solid #e3e8f1; border-radius: 22px; padding: 28px; background: #fff; box-shadow: 0 18px 44px rgba(16,42,90,.08); scroll-snap-align: start; }
.review-logo { width: 98px; height: auto; } .review-card blockquote { margin: 0; color: #172033; font-weight: 700; } .review-card figcaption { margin-top: auto; color: #667085; font-weight: 700; }

.page-heading { padding: 48px 0 16px; text-align: center; }
.filters, .omra-filter-bar { display: grid; grid-template-columns: repeat(4,1fr); width: min(1480px,94vw); margin: 0 auto 16px; border: 1px solid #cfd6e0; border-radius: 12px; overflow: hidden; background: #fff; box-shadow: 0 18px 40px rgba(11,36,82,.08); }
.filters div, .omra-filter-bar div { min-height: 66px; padding: 13px 22px; border-right: 1px solid #cfd6e0; } .filters div:last-child, .omra-filter-bar div:last-child { border-right: 0; }
.filters span, .omra-filter-bar span { display: block; color: var(--muted); font-size: 14px; } .filters strong, .omra-filter-bar strong { font-weight: 700; }
.tour-list { display: grid; grid-template-columns: repeat(2,minmax(390px,1fr)); align-items: stretch; gap: 20px; width: min(1320px,92vw); margin: 0 auto; }
.tour-list-card { min-height: 620px; }
.page-list { padding-bottom: 60px; }

.omra-presentation-hero { position: relative; display: flex; align-items: center; width: 100%; min-height: clamp(560px,68vh,760px); margin: 0 0 42px; padding: clamp(44px,7vw,92px) 6vw; color: #fff; background: linear-gradient(115deg,#031931 0%,#063a70 55%,#0b6380 100%); box-shadow: 0 22px 70px rgba(11,36,82,.22); overflow: hidden; isolation: isolate; }
.omra-hero-photo { position: absolute; inset: 0; z-index: -3; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 54%; opacity: 1; }
.omra-presentation-hero::before { content: ''; position: absolute; inset: 0; z-index: -2; background: radial-gradient(circle at 78% 18%, rgba(88,188,182,.28), transparent 28%), radial-gradient(circle at 18% 84%, rgba(255,196,0,.18), transparent 28%); }
.omra-presentation-hero::after { content: ''; position: absolute; inset: auto 0 0; z-index: -1; height: 42%; background: linear-gradient(0deg, rgba(2,17,34,.72), transparent); }
.omra-hero-overlay { position: absolute; inset: 0; z-index: -1; background: linear-gradient(105deg, rgba(3,25,49,.52), rgba(6,58,112,.18)); backdrop-filter: saturate(1.04); }
.omra-presentation-copy { width: min(820px,92vw); margin-left: max(0px, calc((100vw - 1360px)/2)); }
.omra-presentation-copy p, .omra-packages-hero p { margin: 0 0 14px; color: #8fe3dd; font-size: 14px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.omra-presentation-copy h1, .omra-packages-hero h1 { margin: 0; font-size: clamp(44px,7vw,92px); line-height: .96; letter-spacing: -.04em; }
.omra-presentation-copy > span, .omra-packages-hero > span { display: block; max-width: 720px; margin-top: 22px; color: rgba(255,255,255,.9); font-size: clamp(18px,2vw,24px); font-weight: 600; }
.omra-presentation-hero .omra-hero-actions { gap: 10px; margin-top: 26px; }
.omra-presentation-hero .omra-hero-actions > a { min-height: 52px; border-radius: 13px; padding: 0 19px; font-size: 15px; font-weight: 800; box-shadow: 0 12px 28px rgba(0,0,0,.14); }
.omra-presentation-hero .omra-hero-actions > a span { display: inline; max-width: none; margin: 0; color: inherit; font: inherit; }
.omra-presentation-hero .omra-hero-actions .callback-action { color: var(--blue-deep); background: #fff; }
.omra-presentation-hero .omra-hero-actions .omra-whatsapp-button { background: #19bd58; }
.omra-presentation-hero .omra-hero-actions .ghost-button { box-shadow: inset 0 0 0 1px rgba(255,255,255,.2); }
.omra-hero-stats { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.omra-hero-stats strong { display: flex; align-items: center; gap: 11px; min-height: 58px; max-width: 220px; border: 1px solid rgba(255,255,255,.22); border-radius: 14px; padding: 10px 14px; background: rgba(255,255,255,.11); box-shadow: 0 14px 30px rgba(0,0,0,.13); backdrop-filter: blur(10px); }
.omra-hero-stats b { color: #8fe3dd; font-size: 15px; line-height: 1; } .omra-hero-stats small { color: rgba(255,255,255,.9); font-size: 12px; font-weight: 700; line-height: 1.3; }
.omra-intro-cards, .omra-steps-grid, .omra-package-detail-grid { display: grid; gap: 18px; width: min(1180px,92vw); margin: 0 auto; }
.omra-intro-cards { grid-template-columns: repeat(3,minmax(0,1fr)); margin-bottom: 62px; }
.omra-intro-cards article, .omra-steps-grid article, .omra-package-detail-grid article { position: relative; border: 1px solid #d8e2ee; border-radius: 24px; padding: 28px; background: linear-gradient(180deg,#fff,#f8fbff); box-shadow: 0 20px 46px rgba(11,36,82,.09); overflow: hidden; }
.omra-intro-cards article::after, .omra-steps-grid article::after, .omra-package-detail-grid article::after { content: ''; position: absolute; right: -34px; bottom: -38px; width: 110px; height: 110px; border-radius: 50%; background: rgba(88,188,182,.13); }
.omra-intro-cards span, .omra-steps-grid strong, .omra-package-detail-grid strong { display: inline-grid; width: 44px; height: 44px; place-items: center; border-radius: 14px; color: #fff; background: var(--blue); font-weight: 900; }
.omra-intro-cards h2, .omra-steps-grid h3, .omra-package-detail-grid h3 { margin: 18px 0 10px; color: var(--blue-deep); }
.omra-intro-cards p, .omra-steps-grid p, .omra-package-detail-grid p { margin: 0; color: #475467; font-weight: 600; line-height: 1.72; }
.omra-steps-section, .omra-package-details { padding: 68px 0; background: #fff; }
.omra-steps-grid { grid-template-columns: repeat(5,minmax(0,1fr)); }
.omra-featured-section { background: var(--page); }
.omra-featured-section .featured-head { grid-template-columns: minmax(390px,.85fr) minmax(280px,.7fr) minmax(190px,.42fr) auto; }
.omra-featured-section .featured-head h2 { font-size: clamp(42px,4vw,52px); }

.omra-commitments { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); width: min(1240px,92vw); margin: 66px auto 0; border-top: 1px solid #d7e1ec; border-bottom: 1px solid #d7e1ec; }
.omra-commitments article { display: flex; align-items: center; gap: 18px; min-width: 0; padding: 28px clamp(18px,2.4vw,34px); }
.omra-commitments article + article { border-left: 1px solid #d7e1ec; }
.omra-commitment-icon { display: grid; flex: 0 0 52px; width: 52px; height: 52px; place-items: center; border-radius: 16px; color: var(--blue); background: #e9f5fb; }
.omra-commitment-icon svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.omra-commitments h2 { margin: 0 0 5px; color: var(--blue-deep); font-size: 18px; line-height: 1.2; }
.omra-commitments p { margin: 0; color: #5b6678; font-size: 14px; font-weight: 500; line-height: 1.5; }

.omra-steps-section { padding: 78px 0 86px; background: #fff; }
.omra-steps-section .section-title p { max-width: 580px; margin: 10px auto 0; color: #667085; font-weight: 500; }
.omra-journey { position: relative; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 0; width: min(1240px,92vw); margin: 42px auto 0; padding: 0; list-style: none; }
.omra-journey::before { content: ''; position: absolute; top: 25px; right: 9%; left: 9%; height: 2px; background: linear-gradient(90deg,#58bcb6,#1266a8); }
.omra-journey li { position: relative; z-index: 1; padding: 0 clamp(12px,1.5vw,22px); text-align: center; }
.omra-journey strong { display: grid; width: 52px; height: 52px; margin: 0 auto 24px; place-items: center; border: 6px solid #fff; border-radius: 50%; color: #fff; background: var(--blue); box-shadow: 0 0 0 1px #bdd1e4, 0 10px 24px rgba(11,64,116,.18); font-size: 13px; }
.omra-journey li:nth-child(even) strong { background: var(--teal); }
.omra-journey h3 { margin: 0 0 9px; color: var(--blue-deep); font-size: 19px; line-height: 1.2; }
.omra-journey p { margin: 0; color: #5b6678; font-size: 14px; font-weight: 500; line-height: 1.65; }

.omra-lead-section { display: grid; grid-template-columns: minmax(0,1fr) minmax(360px,.7fr); gap: clamp(30px,5vw,76px); align-items: center; width: min(1240px,92vw); margin: 0 auto 80px; border-radius: 28px; padding: clamp(30px,5vw,62px); color: #fff; background: linear-gradient(125deg,#063a70 0%,#0b5790 63%,#197f9d 100%); box-shadow: 0 24px 58px rgba(11,36,82,.18); }
.omra-lead-copy > span { color: #8fe3dd; font-size: 13px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.omra-lead-copy h2 { max-width: 620px; margin: 10px 0 14px; font-size: clamp(32px,4vw,52px); line-height: 1.04; }
.omra-lead-copy p { max-width: 650px; margin: 0; color: rgba(255,255,255,.82); font-size: 17px; font-weight: 500; line-height: 1.7; }
.omra-lead-copy a { display: inline-flex; align-items: center; gap: 10px; margin-top: 24px; color: #fff; font-weight: 750; text-decoration: none; }
.omra-lead-copy a svg { width: 24px; height: 24px; fill: #25d366; }
.omra-lead-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; border-radius: 22px; padding: 24px; color: var(--blue-deep); background: #fff; box-shadow: 0 20px 42px rgba(0,0,0,.17); }
.omra-lead-form label { display: grid; gap: 7px; font-size: 14px; font-weight: 700; }
.omra-lead-form input { min-height: 48px; border-color: #cbd8e5; border-radius: 10px; }
.omra-lead-form button { grid-column: 1/-1; min-height: 50px; border: 0; border-radius: 10px; color: #fff; background: var(--blue); font: inherit; font-weight: 800; cursor: pointer; transition: transform .2s ease, background .2s ease; }
.omra-lead-form button:hover { background: var(--blue-deep); transform: translateY(-2px); }
.omra-lead-form small { grid-column: 1/-1; color: #7a8595; font-size: 11px; line-height: 1.45; }

.omra-page-heading { width: min(1480px,94vw); margin: 0 auto; padding: 52px 0 18px; text-align: center; }
.omra-page-heading > p, .omra-packages-intro span, .omra-faq-section .section-title span { margin: 0 0 8px; color: var(--teal); font-size: 13px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.omra-page-heading h1 { margin: 0; color: var(--blue-deep); font-size: clamp(38px,5vw,58px); line-height: 1; }
.omra-tour-list { display: grid; gap: 16px; width: min(1480px,94vw); margin: 0 auto; }
.omra-tour-row { display: grid; grid-template-columns: minmax(430px,.95fr) minmax(360px,.8fr) minmax(210px,.28fr); gap: 34px; align-items: center; border: 1px solid #d8e2ee; border-radius: 18px; padding: 18px 24px; background: #fff; box-shadow: 0 18px 42px rgba(11,36,82,.07); }
.omra-row-images { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; min-width: 0; } .omra-row-images figure { position: relative; margin: 0; min-width: 0; } .omra-row-images figure span { position: absolute; top: 10px; left: 12px; z-index: 2; border-radius: 999px; padding: 8px 14px; color: #07142a; background: var(--yellow); font-size: 13px; font-weight: 800; } .omra-row-images img { width: 100%; aspect-ratio: 1.28/1; border-radius: 16px; object-fit: cover; }
.omra-row-images.has-aqsa { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.omra-row-info h2 { margin: 0 0 20px; color: #07142a; font-size: clamp(20px,2.1vw,27px); line-height: 1.2; } .omra-row-info h2 span { color: var(--muted); font-size: .72em; font-weight: 500; }
.category-chip { display: inline-flex; margin: 0 0 14px; border-radius: 99px; padding: 5px 12px; color: var(--blue-deep); background: var(--blue-soft); font-weight: 800; }
.omra-row-meta { display: grid; gap: 10px; } .omra-row-meta p { display: flex; align-items: center; gap: 10px; margin: 0; color: #22304a; font-weight: 600; } .omra-row-meta span { display: inline-grid; flex: 0 0 28px; width: 28px; height: 28px; place-items: center; border-radius: 9px; color: var(--blue); background: var(--blue-soft); font-size: 14px; }
.omra-row-note { margin: 18px 0 0; color: #5f6c80; font-size: 14px; font-weight: 500; } .omra-row-price { display: grid; justify-items: start; gap: 12px; min-width: 0; border-left: 1px solid #e2e8f0; padding-left: 28px; } .omra-row-price span { color: var(--muted); font-weight: 600; } .omra-row-price strong { color: #07142a; font-size: 31px; line-height: 1; } .omra-row-price div { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px; }

.omra-packages-hero { width: min(1180px,92vw); margin: 46px auto 28px; border-radius: 32px; padding: clamp(32px,6vw,72px); color: #fff; text-align: center; background: linear-gradient(135deg,#063a70,#4167be 62%,#58bcb6); box-shadow: 0 26px 70px rgba(11,36,82,.2); }
.omra-package-comparison { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; width: min(1180px,92vw); margin: 0 auto 66px; }
.omra-package-comparison article { display: grid; gap: 22px; align-content: start; border-radius: 28px; padding: clamp(26px,4vw,42px); color: #fff; box-shadow: 0 22px 54px rgba(11,36,82,.16); } .omra-package-comparison article.economique { background: linear-gradient(135deg,#0f5f9f,#58bcb6); } .omra-package-comparison article.confort { background: linear-gradient(135deg,#1f3768,#b6985b); }
.omra-package-comparison span { color: rgba(255,255,255,.78); font-size: 13px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; } .omra-package-comparison h2 { margin: 6px 0 10px; font-size: clamp(32px,4vw,48px); line-height: 1; } .omra-package-comparison p, .omra-package-comparison li { color: rgba(255,255,255,.9); font-weight: 600; line-height: 1.72; } .omra-package-comparison ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; } .omra-package-comparison li::before { content: '✓'; margin-right: 9px; font-weight: 900; } .omra-package-comparison .primary-button { justify-self: start; background: rgba(255,255,255,.18); box-shadow: inset 0 0 0 1px rgba(255,255,255,.24); }
.omra-package-detail-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.omra-package-flow { display: grid; grid-template-columns: minmax(0,.85fr) minmax(320px,.6fr); gap: 34px; align-items: center; width: min(1120px,92vw); margin: 70px auto; border-radius: 28px; padding: clamp(26px,4vw,48px); background: #fff; box-shadow: 0 22px 54px rgba(11,36,82,.1); } .omra-package-flow h2 { margin: 0 0 14px; color: var(--blue-deep); font-size: clamp(32px,4vw,48px); line-height: 1.08; } .omra-package-flow p:not(.section-kicker) { color: #475467; font-size: 17px; font-weight: 600; line-height: 1.75; } .omra-package-flow img { width: 100%; border-radius: 24px; }

.omra-faq-section { width: min(1280px,92vw); margin: 34px auto 78px; }
.omra-faq-content { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(320px,.72fr); gap: 28px; align-items: start; }
.compact-title { margin-bottom: 18px; text-align: left; } .compact-title h2 { font-size: clamp(30px,4vw,46px); }
.omra-faq-section .section-title p { max-width: 620px; margin: 12px 0 0; color: #344054; font-weight: 600; }
.omra-faq-list { display: grid; gap: 9px; }
.omra-faq-list details { border: 1px solid #d8e2ee; border-radius: 14px; background: #fff; box-shadow: 0 10px 24px rgba(11,36,82,.055); overflow: hidden; }
.omra-faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 15px 17px; color: var(--blue-deep); font-size: 15px; font-weight: 900; cursor: pointer; }
.omra-faq-list summary::after { content: '+'; display: grid; flex: 0 0 28px; width: 28px; height: 28px; place-items: center; border-radius: 50%; color: var(--blue); background: var(--blue-soft); } .omra-faq-list details[open] > summary::after { content: '−'; }
.omra-faq-list p { margin: 0; padding: 0 17px 17px; color: #475467; font-size: 14px; font-weight: 600; line-height: 1.65; }
.omra-faq-list > .omra-faq-more { margin-top: 8px; border: 0; background: transparent; box-shadow: none; overflow: visible; }
.omra-faq-list > .omra-faq-more > summary { justify-content: center; border: 1px solid #b8cce0; border-radius: 12px; color: var(--blue); background: #f5f9fd; }
.omra-faq-list > .omra-faq-more > summary::after { content: '↓'; background: #fff; }
.omra-faq-list > .omra-faq-more[open] > summary::after { content: '↑'; }
.omra-faq-more-list { display: grid; gap: 9px; margin-top: 9px; }
.omra-faq-image-card { position: sticky; top: 136px; border-radius: 26px; overflow: hidden; background: #fff; box-shadow: 0 24px 58px rgba(11,36,82,.12); } .omra-faq-image-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; } .omra-faq-image-card > div { padding: 24px; } .omra-faq-image-card strong { display: block; color: var(--blue-deep); font-size: 24px; line-height: 1.1; } .omra-faq-image-card p { color: #475467; font-weight: 600; line-height: 1.65; }
.omra-faq-actions { display: flex; flex-wrap: wrap; gap: 10px; }

.hajj-hero { position: relative; display: grid; place-items: center; min-height: 560px; padding: 90px 6vw; color: #fff; text-align: center; background-size: cover; background-position: center; overflow: hidden; } .hajj-hero::before { content: ''; position: absolute; inset: 0; background: rgba(0,80,80,.62); } .hajj-hero-content { position: relative; z-index: 1; width: min(900px,92vw); } .hajj-hero h1 { margin: 0; font-size: clamp(42px,6vw,72px); line-height: 1; } .hajj-hero p { font-size: 21px; font-weight: 700; }
.hajj-steps, .hajj-package-guide, .hajj-zones-transport, .hajj-journey, .hajj-faq { padding: 70px 5vw; } .hajj-steps { background: #155d5d; color: #fff; } .hajj-step-grid, .hajj-package-cards, .hajj-feature-icons, .hajj-faq-grid { display: grid; gap: 18px; width: min(1180px,92vw); margin: 0 auto; } .hajj-step-grid { grid-template-columns: repeat(4,1fr); } .hajj-step-grid article, .hajj-package-cards article, .hajj-faq details { border-radius: 18px; padding: 22px; background: #fff; color: var(--ink); box-shadow: var(--shadow); } .hajj-step-grid strong { color: rgba(255,255,255,.9); font-size: 70px; line-height: 1; } .hajj-shorts { padding: 70px 0; background: #201d28; color: #fff; } .hajj-short-track { display: flex; gap: 20px; overflow-x: auto; padding: 0 4vw 22px; } .hajj-short-card { flex: 0 0 min(280px,75vw); position: relative; overflow: hidden; border-radius: 24px; } .hajj-short-card img { width: 100%; aspect-ratio: 9/16; object-fit: cover; } .hajj-preform { padding: 70px 5vw; background: #222831; color: #fff; } .hajj-preform-box { width: min(1050px,92vw); margin: 0 auto; border: 2px solid var(--gold); padding: 44px; text-align: center; } .hajj-preform form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; text-align: left; } .hajj-package-cards { grid-template-columns: repeat(2,1fr); } .hajj-feature-icons { grid-template-columns: repeat(5,1fr); text-align: center; } .hajj-feature-icons button, .hajj-transport button { border: 0; border-radius: 16px; padding: 18px; background: transparent; color: #b6985b; font-weight: 900; cursor: pointer; } .hajj-feature-icons button:hover, .hajj-feature-icons button.active, .hajj-transport button:hover, .hajj-transport button.active { background: rgba(182,152,91,.12); } .hajj-zones-transport { background: #222831; color: #fff; } .hajj-zones-transport > div, .hajj-journey { display: grid; grid-template-columns: 1fr 1fr; gap: 34px; align-items: center; } .hajj-map-card img, .hajj-journey-visual img { width: 100%; } .hajj-faq { background: #eef5fb; } .hajj-faq-head { text-align: center; } .hajj-faq-grid { grid-template-columns: 1fr; max-width: 980px; } .hajj-faq summary { font-weight: 900; color: var(--blue-deep); cursor: pointer; } .hajj-faq p { color: #475467; font-weight: 600; }

.tour-card { display: grid; grid-template-columns: minmax(360px,1.15fr) minmax(260px,.9fr) minmax(170px,.32fr); gap: 34px; align-items: center; min-height: 280px; padding: 24px 42px 24px 70px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.tour-images { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; } .tour-images figure { position: relative; margin: 0; } .tour-images span { position: absolute; top: -15px; left: 0; z-index: 2; border-radius: 18px; padding: 8px 14px; background: var(--yellow); font-weight: 700; } .tour-images img { width: 100%; aspect-ratio: 1.28/1; object-fit: cover; border-radius: 16px; }
.two-column { display: grid; grid-template-columns: minmax(0,1fr) minmax(340px,.62fr); gap: 42px; align-items: center; width: min(1180px,92vw); margin: 60px auto; } .align-start { align-items: start; }
.video-box, .contact-box, .request-panel { border: 1px solid var(--line); border-radius: 12px; padding: 28px; background: #fff; box-shadow: var(--shadow); } .video-box { display: grid; min-height: 180px; place-items: center; background: linear-gradient(135deg,var(--blue-deep),var(--blue)); color: #fff; font-weight: 900; }
.contact-hero { min-height: calc(100vh - 114px); padding: 70px 5vw 78px; background: #fff; } .contact-inner { width: min(1080px,92vw); margin: 0 auto; } .contact-inner .section-kicker { margin-bottom: 12px; color: var(--blue-deep); font-size: 30px; font-weight: 500; text-transform: none; letter-spacing: 0; } .contact-inner h1 { margin: 0 0 28px; color: var(--blue-deep); font-size: clamp(34px,4vw,54px); line-height: 1.08; } .contact-inner blockquote { display: grid; grid-template-columns: 44px minmax(0,1fr); gap: 10px; margin: 0 0 58px; color: #050914; font-size: clamp(17px,1.7vw,21px); font-style: italic; font-weight: 800; line-height: 1.35; } .contact-inner blockquote span { margin-top: -12px; color: var(--teal); font-size: 70px; font-style: normal; line-height: 1; }
.inquiry-form, .contact-form-wide { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; } .inquiry-form label, .admin-form label, .login-card label, .contact-form-wide label { display: grid; gap: 7px; color: #344054; font-weight: 700; } .full, .contact-form-wide .full { grid-column: 1/-1; } input, select, textarea { width: 100%; border: 1px solid #cfd6e0; border-radius: 8px; padding: 12px 13px; color: var(--ink); background: #fff; font: inherit; } textarea { resize: vertical; } .contact-form-wide { padding: 0; border: 0; background: transparent; box-shadow: none; } .contact-form-wide .checkbox { display: flex; align-items: center; gap: 10px; }
.narrow { width: min(860px,90vw); margin: 50px auto; font-size: 20px; } .detail-hero { display: grid; grid-template-columns: minmax(0,.9fr) minmax(320px,.7fr); gap: 44px; align-items: center; width: min(1220px,94vw); margin: 46px auto 0; padding: 28px; border-radius: 18px; background: #fff; box-shadow: var(--shadow); } .detail-hero img { width: 100%; aspect-ratio: 1.55/1; object-fit: cover; border-radius: 14px; } .detail-hero h1 { margin: 0 0 16px; color: var(--blue-deep); font-size: clamp(34px,5vw,58px); line-height: 1; } .detail-hero strong { display: block; margin-top: 22px; color: var(--blue-deep); font-size: 34px; } .detail-hero strong span { font-size: 16px; font-weight: 500; } .itinerary { margin-top: 18px; border-left: 5px solid var(--teal); padding: 4px 0 4px 22px; font-size: 18px; }
.flash { width: min(960px,92vw); margin: 24px auto 0; border-radius: 10px; padding: 14px 18px; background: #e9f9ee; color: #166534; font-weight: 800; } .empty { padding: 34px; border: 1px solid var(--line); border-radius: 10px; background: #fff; text-align: center; }
.site-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 26px; padding: 38px 6vw; color: #fff; background: #222c3a; } .site-footer p { margin: 6px 0; color: rgba(255,255,255,.78); }

.floating-contact-actions { position: fixed; right: 0; bottom: 86px; left: 0; z-index: 1000; pointer-events: none; } .floating-contact-actions a { position: absolute; display: grid; width: 62px; height: 62px; place-items: center; border: 3px solid #fff; border-radius: 50%; color: #fff; box-shadow: 0 14px 32px rgba(16,42,90,.2); pointer-events: auto; } .floating-contact-actions svg { width: 29px; height: 29px; fill: currentColor; } .floating-phone { left: 24px; background: #0fb6c8; } .floating-whatsapp { right: 24px; background: #16c95a; }

@media (max-width: 1050px) {
    body:not(.admin-body) { padding-top: 104px; }
    .site-header { flex-wrap: wrap; min-height: auto; } .brand { min-width: 0; } .brand-logo { width: 250px; }
    .nav-toggle { display: inline-grid; margin-left: auto; border: 1px solid rgba(255,255,255,.45); border-radius: 8px; padding: 9px 12px; color: #fff; background: transparent; font-size: 22px; }
    .main-nav { display: none; order: 4; flex-basis: 100%; margin-left: 0; } .main-nav.open { display: grid; gap: 4px; }
    .nav-item { display: grid; align-items: stretch; } .nav-dropdown { position: static; min-width: 0; margin: 0 0 6px 14px; border-left: 2px solid rgba(255,255,255,.35); border-radius: 0; padding: 0 0 0 12px; background: transparent; box-shadow: none; opacity: 1; visibility: visible; transform: none; } .nav-dropdown a { padding: 9px 0; font-size: 13px; color: rgba(255,255,255,.86); }
    .call-button { margin-left: 0; }
    .featured-head, .featured-layout, .omra-presentation-hero, .omra-intro-cards, .omra-steps-grid, .omra-package-comparison, .omra-package-detail-grid, .omra-package-flow, .omra-tour-row, .hajj-zones-transport > div, .hajj-journey, .tour-card, .detail-hero, .two-column { grid-template-columns: 1fr; }
    .omra-row-price { border-left: 0; border-top: 1px solid #e2e8f0; padding-top: 22px; padding-left: 0; }
    .featured-arrows { display: none; } .featured-tabs { display: flex; min-height: auto; overflow-x: auto; border-left: 0; padding: 0 0 6px; } .featured-tabs a, .featured-tabs button { flex: 0 0 auto; border-left: 0; border-bottom: 1px solid #d8dde7; padding: 0 18px 10px; white-space: nowrap; } .featured-tabs a.active, .featured-tabs button.active { border-bottom: 4px solid #8dd118; }
    .featured-card { flex-basis: calc((100% - 20px)/2); min-width: 320px; } .hajj-step-grid { grid-template-columns: repeat(2,1fr); } .hajj-feature-icons { grid-template-columns: repeat(3,1fr); }
    .omra-commitments { grid-template-columns: 1fr; } .omra-commitments article + article { border-top: 1px solid #d7e1ec; border-left: 0; }
    .omra-journey { grid-template-columns: 1fr; gap: 22px; max-width: 720px; } .omra-journey::before { top: 20px; bottom: 20px; left: 25px; width: 2px; height: auto; } .omra-journey li { display: grid; grid-template-columns: 52px 1fr; gap: 20px; padding: 0; text-align: left; } .omra-journey strong { margin: 0; } .omra-journey h3 { margin-top: 4px; }
    .omra-lead-section { grid-template-columns: 1fr; }
    .omra-featured-section .featured-head { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    body:not(.admin-body) { padding-top: 96px; }
    .site-header { padding: 18px 5vw; } .brand-logo { width: 190px; } .hero { min-height: 480px; padding: 48px 5vw 76px; }
    .home-categories { grid-template-columns: repeat(2,1fr); gap: 12px; width: min(94vw,520px); margin-top: -38px; } .home-categories strong { min-height: 48px; font-size: 14px; }
    .featured-section { padding: 58px 0 48px; } .featured-head, .featured-layout { width: min(92vw,520px); margin-left: auto; margin-right: auto; } .all-tours-button { width: 100%; min-height: 52px; }
    .featured-grid { gap: 14px; padding: 0 4vw 12px; } .featured-card { flex: 0 0 min(88vw,390px); min-height: 560px; } .featured-image img { height: 235px; }
    .filters, .omra-filter-bar, .tour-images, .omra-row-images, .inquiry-form, .contact-form-wide, .hajj-preform form { grid-template-columns: 1fr; } .filters div, .omra-filter-bar div { border-right: 0; border-bottom: 1px solid #cfd6e0; }
    .omra-presentation-hero { min-height: 520px; } .omra-hero-photo { object-position: 58% center; opacity: .82; } .omra-faq-content { grid-template-columns: 1fr; } .omra-faq-image-card { position: static; }
    .omra-presentation-hero .omra-hero-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; } .omra-presentation-hero .omra-hero-actions .ghost-button { grid-column: 1/-1; }
    .omra-hero-stats { display: grid; grid-template-columns: 1fr; } .omra-hero-stats strong { max-width: 280px; }
    .omra-commitments { margin-top: 44px; } .omra-commitments article { padding: 22px 10px; }
    .omra-steps-section { padding: 58px 0 64px; } .omra-journey p { font-size: 13px; }
    .omra-lead-section { margin-bottom: 58px; border-radius: 22px; padding: 28px 20px; } .omra-lead-form { grid-template-columns: 1fr; padding: 20px; }
    .omra-featured-section .featured-head h2 { font-size: 42px; }
    .omra-steps-section, .omra-package-details { padding: 48px 0; } .omra-tour-row { padding: 12px; }
    .hajj-hero { min-height: 520px; padding: 52px 5vw 180px; } .hajj-feature-icons, .hajj-transport div { grid-template-columns: repeat(2,1fr); } .hajj-package-cards, .hajj-faq-grid { grid-template-columns: 1fr; }
    .gallery-section .carousel-shell { width: 100%; padding: 0 46px 34px; } .gallery-card { flex-basis: min(70vw,300px); min-width: 240px; } .review-card { flex-basis: min(78vw,360px); min-width: min(78vw,360px); padding: 22px; }
    .tour-list { grid-template-columns: 1fr; width: min(92vw,420px); } .contact-hero { padding: 44px 5vw 56px; } .contact-inner blockquote span { display: none; }
    .floating-contact-actions { bottom: 18px; } .floating-contact-actions a { width: 52px; height: 52px; } .floating-phone { left: 14px; } .floating-whatsapp { right: 14px; }
}
@media (max-width: 460px) { .brand-logo { width: 160px; } .call-button { min-width: 0; padding: 10px 12px; font-size: 13px; } .hero-content h1 { font-size: 36px; } .featured-body dl { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }

/* --- Regression repairs: home, reviews, Hajj scale --- */
body:not(.admin-body) { padding-top: 108px; }
.site-header { min-height: 108px; padding-top: 20px; padding-bottom: 20px; }
.brand { min-width: 300px; }
.brand-logo { width: 300px; }

.hero { min-height: 540px; padding-top: 64px; padding-bottom: 118px; }
.hero-content h1 { font-size: clamp(40px, 5.2vw, 68px); }
.hero-content span { max-width: 630px; font-size: clamp(17px, 1.55vw, 21px); }
.home-categories { width: min(1120px, 84vw); margin-top: -58px; }
.home-categories img { height: 148px; }
.home-categories strong { min-height: 54px; font-size: 18px; }

.review-card { display: flex; flex-direction: column; min-height: 300px; padding: 24px; }
.review-logo { display: flex; align-items: center; justify-content: flex-start; width: auto; height: 36px; margin-bottom: 16px; }
.review-logo img { width: auto; max-width: 92px; max-height: 36px; object-fit: contain; }
.review-logo.hisar img { max-width: 108px; max-height: 34px; }
.review-card p { margin: 0 0 18px; color: #344054; font-size: 15px; font-weight: 600; line-height: 1.65; }
.review-stars { margin-top: auto; color: #f59e0b; font-size: 18px; letter-spacing: .04em; }
.review-card strong { margin-top: 10px; color: #07142a; font-weight: 900; }

.hajj-hero { min-height: 500px; padding: 72px 6vw 78px; }
.hajj-hero-content { width: min(840px, 92vw); }
.hajj-hero h1 { font-size: clamp(36px, 4.8vw, 62px); }
.hajj-hero p { max-width: 760px; margin: 18px auto 28px; font-size: clamp(17px, 1.45vw, 20px); line-height: 1.55; }
.hajj-gold-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; border-radius: 999px; padding: 12px 28px; color: #fff; background: var(--gold); font-weight: 900; box-shadow: 0 14px 32px rgba(0,0,0,.18); }

.hajj-steps { padding: 62px 5vw 66px; text-align: center; }
.hajj-steps-intro { max-width: 820px; margin: 0 auto 14px; color: rgba(255,255,255,.82); font-weight: 700; line-height: 1.7; }
.hajj-steps h2 { margin: 0 0 34px; color: #fff; font-size: clamp(30px, 4vw, 46px); line-height: 1.08; }
.hajj-step-grid { gap: 18px; }
.hajj-step-grid article { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px; min-height: 240px; border: 1px solid rgba(255,255,255,.18); border-radius: 22px; padding: 22px; color: #fff; background: rgba(255,255,255,.08); box-shadow: none; text-align: left; }
.hajj-step-grid strong { color: rgba(255,255,255,.9); font-size: clamp(48px, 5.5vw, 76px); line-height: .85; }
.hajj-step-grid h3 { margin: 0 0 8px; color: #fff; font-size: 21px; line-height: 1.15; }
.hajj-step-grid p { margin: 0 0 14px; color: rgba(255,255,255,.78); font-size: 14px; line-height: 1.6; }
.hajj-step-grid a { display: inline-flex; color: #fff; font-weight: 900; text-decoration: underline; text-underline-offset: 4px; }

.hajj-shorts { padding: 60px 0 62px; }
.hajj-shorts-head { width: min(960px, 92vw); margin: 0 auto 28px; text-align: center; }
.hajj-shorts-head h2 { margin: 0 0 10px; color: #fff; font-size: clamp(30px, 4vw, 46px); line-height: 1.08; }
.hajj-shorts-head p { margin: 0; color: rgba(255,255,255,.76); font-weight: 600; }
.hajj-shorts-carousel { width: 100%; max-width: 100%; padding: 0 58px 34px; overflow: hidden; }
.hajj-shorts-track { display: flex; gap: 18px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.hajj-shorts-track::-webkit-scrollbar { display: none; }
.hajj-short-card { position: relative; display: block; flex: 0 0 min(19vw, 310px); min-width: 230px; overflow: hidden; border-radius: 24px; background: #111827; scroll-snap-align: start; box-shadow: 0 20px 46px rgba(0,0,0,.22); }
.hajj-short-card img { width: 100%; aspect-ratio: 9 / 16; object-fit: cover; filter: brightness(.82); }
.short-play { position: absolute; top: 50%; left: 50%; display: grid; width: 66px; height: 66px; place-items: center; border: 3px solid rgba(255,255,255,.9); border-radius: 50%; color: #fff; transform: translate(-50%, -50%); font-size: 24px; }
.hajj-short-card div { position: absolute; right: 16px; bottom: 16px; left: 16px; border-radius: 12px; padding: 12px; background: rgba(255,255,255,.92); color: #07142a; text-align: center; }
.hajj-short-card small { display: block; color: #667085; font-weight: 600; }

.hajj-preform { padding: 62px 5vw; }
.hajj-preform-box { border-radius: 0; padding: clamp(28px, 4vw, 44px); }
.hajj-preform-box h2 { margin: 0 0 28px; color: #fff; font-size: clamp(34px, 4vw, 52px); line-height: 1.05; text-transform: uppercase; }
.hajj-preform-box h2 span { display: block; color: var(--gold); font-size: .62em; text-decoration: underline; text-underline-offset: 5px; }
.hajj-preform form label { color: #fff; font-weight: 800; }
.hajj-preform form input,
.hajj-preform form select { border: 0; border-bottom: 1px solid rgba(255,255,255,.78); border-radius: 0; padding-left: 0; color: #fff; background: transparent; }
.hajj-preform form input::placeholder { color: rgba(255,255,255,.55); }
.hajj-preform form select option { color: #07142a; }
.hajj-consent { grid-column: 1 / -1; display: flex !important; align-items: center; gap: 10px; }
.hajj-consent input { width: auto; }
.hajj-preform button { grid-column: 1 / -1; justify-self: center; min-width: 180px; border: 0; border-radius: 4px; padding: 13px 28px; color: #fff; background: var(--gold); font-weight: 900; cursor: pointer; }

.hajj-package-guide { padding: 66px 0; background: #222831; color: #fff; }
.hajj-guide-inner { width: min(1180px, 92vw); margin: 0 auto; text-align: center; }
.hajj-guide-inner h2 { margin: 0; color: #b6985b; font-size: clamp(28px, 3.4vw, 42px); line-height: 1.14; }
.hajj-guide-lead { max-width: 880px; margin: 18px auto 30px; color: rgba(255,255,255,.78); font-weight: 600; line-height: 1.75; }
.hajj-tabs { position: relative; }
.hajj-tabs > input { position: absolute; opacity: 0; pointer-events: none; }
.hajj-tab-labels { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: min(960px, 100%); margin: 0 auto; }
.hajj-tab-labels label { display: grid; min-height: 58px; place-items: center; border: 1px solid transparent; border-bottom: 0; padding: 10px 14px; color: #b6985b; font-size: 14px; font-weight: 900; cursor: pointer; }
#guide-services:checked ~ .hajj-tab-labels label[for="guide-services"],
#guide-hotels:checked ~ .hajj-tab-labels label[for="guide-hotels"],
#guide-categories:checked ~ .hajj-tab-labels label[for="guide-categories"],
#guide-duration:checked ~ .hajj-tab-labels label[for="guide-duration"] { border-color: rgba(255,255,255,.82); background: rgba(255,255,255,.03); }
.hajj-tab-panels { width: min(1060px, 100%); margin: 0 auto 54px; border: 1px solid rgba(255,255,255,.82); padding: 28px; text-align: left; }
.hajj-panel { display: none; }
#guide-services:checked ~ .hajj-tab-panels .services,
#guide-hotels:checked ~ .hajj-tab-panels .hotels,
#guide-categories:checked ~ .hajj-tab-panels .categories,
#guide-duration:checked ~ .hajj-tab-panels .duration { display: block; }
.hajj-panel h3 { margin: 0 0 12px; color: #fff; }
.hajj-panel p { margin: 0 0 12px; color: rgba(255,255,255,.82); font-weight: 600; line-height: 1.7; }
.hajj-panel ul { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 0; padding: 0; list-style: none; }
.hajj-panel li { border-radius: 999px; padding: 9px 13px; color: #063a70; background: #e7f3ff; font-weight: 900; }
.hajj-category-summary h3 { margin: 0 0 12px; color: #fff; }
.hajj-category-summary > p { max-width: 880px; margin: 0 auto 28px; color: rgba(255,255,255,.78); font-weight: 600; line-height: 1.7; }
.hajj-package-cards { gap: 18px; }
.hajj-package-cards article { min-height: 180px; border: 0; border-radius: 20px; padding: 24px; color: #fff; box-shadow: none; text-align: left; }
.hajj-package-cards article.comfort { background: #4a986b; }
.hajj-package-cards article.gold-shifting { background: #b2a266; }
.hajj-package-cards article.gold { background: #a7963b; }
.hajj-package-cards article.platinum { background: #a779b5; }
.hajj-package-cards h4 { margin: 0 0 14px; font-size: 26px; line-height: 1.05; text-transform: uppercase; }
.hajj-package-cards ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.hajj-package-cards li::before { content: '✓'; margin-right: 8px; font-weight: 900; }
.hajj-feature-icons { gap: 12px; margin-top: 28px; }
.hajj-feature-icons span,
.hajj-transport span { display: grid; gap: 8px; place-items: center; min-height: 96px; border-radius: 18px; padding: 18px 12px; color: #b6985b; font-size: 34px; transition: background .18s ease, transform .18s ease; }
.hajj-feature-icons span:hover,
.hajj-transport span:hover { background: rgba(182,152,91,.12); transform: translateY(-3px); }
.hajj-feature-icons strong,
.hajj-transport strong { display: block; color: #b6985b; font-size: 14px; line-height: 1.2; }

.hajj-zones-transport { display: grid; grid-template-columns: minmax(0, .9fr) minmax(360px, 1fr); gap: 36px; align-items: center; width: min(1120px, 100%); margin: 58px auto 0; padding: 0; background: transparent; color: #fff; }
.hajj-zones-transport > div { display: block; }
.hajj-zones { text-align: left; }
.hajj-zones h3 { margin: 0 0 12px; color: #fff; font-size: 28px; }
.hajj-zones > p { color: rgba(255,255,255,.78); font-weight: 600; line-height: 1.7; }
.hajj-zones details { border-bottom: 1px solid rgba(255,255,255,.35); padding: 16px 0; }
.hajj-zones summary { color: #fff; font-weight: 900; cursor: pointer; }
.hajj-zones details p { margin: 12px 0 0; color: rgba(255,255,255,.78); line-height: 1.65; }
.hajj-map-card { border-radius: 28px; padding: 18px; background: rgba(255,255,255,.04); }
.hajj-map-card img { width: 100%; max-height: 420px; object-fit: contain; }
.hajj-transport { width: min(980px, 100%); margin: 46px auto 0; text-align: center; }
.hajj-transport p { max-width: 880px; margin: 0 auto 24px; color: rgba(255,255,255,.84); font-weight: 700; line-height: 1.75; }
.hajj-transport div { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }

.hajj-journey { display: grid; grid-template-columns: minmax(0, .88fr) minmax(360px, 1fr); gap: 42px; align-items: center; width: min(1220px, 92vw); margin: 0 auto; padding: 70px 0; background: transparent; }
.hajj-journey-copy h2 { margin: 0 0 24px; color: #07142a; font-size: clamp(34px, 4.4vw, 58px); line-height: 1.04; }
.hajj-journey-copy ol { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.hajj-journey-copy li { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 14px; align-items: center; color: #07142a; font-weight: 700; }
.hajj-journey-copy li span { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; color: #fff; background: #ff9800; font-weight: 900; box-shadow: 0 6px 14px rgba(255,152,0,.28); }
.hajj-journey-visual img { width: 100%; max-height: 620px; object-fit: contain; }

.hajj-faq { padding: 66px 5vw 78px; background: #eef5fb; }
.hajj-faq-head { max-width: 860px; margin: 0 auto 28px; text-align: center; }
.hajj-faq-head h2 { margin: 0; color: #050914; font-size: clamp(34px, 5vw, 58px); line-height: 1.05; }
.hajj-faq-head p:not(.section-kicker) { color: #344054; font-size: 18px; font-weight: 700; }
.hajj-faq-grid { max-width: 920px; gap: 12px; }
.hajj-faq details { padding: 0; overflow: hidden; border: 1px solid #d8e2ee; border-radius: 16px; background: #fff; box-shadow: 0 14px 34px rgba(11,36,82,.08); }
.hajj-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 18px 22px; color: var(--blue-deep); font-weight: 900; list-style: none; cursor: pointer; }
.hajj-faq summary::-webkit-details-marker { display: none; }
.hajj-faq summary::after { content: '+'; display: grid; flex: 0 0 30px; width: 30px; height: 30px; place-items: center; border-radius: 50%; color: var(--blue); background: var(--blue-soft); }
.hajj-faq details[open] > summary::after { content: '−'; }
.hajj-faq p { margin: 0; padding: 0 22px 20px; color: #475467; font-weight: 600; line-height: 1.65; }
.hajj-faq-grid > .hajj-faq-more { margin-top: 4px; border: 0; background: transparent; box-shadow: none; overflow: visible; }
.hajj-faq-grid > .hajj-faq-more > summary { justify-content: center; border: 1px solid #b8cce0; border-radius: 14px; color: var(--blue); background: #f7fbfe; }
.hajj-faq-grid > .hajj-faq-more > summary::after { content: '↓'; background: #fff; }
.hajj-faq-grid > .hajj-faq-more[open] > summary::after { content: '↑'; }
.hajj-faq-more-list { display: grid; gap: 12px; margin-top: 12px; }

@media (max-width: 1050px) {
    body:not(.admin-body) { padding-top: 104px; }
    .site-header { min-height: auto; }
    .brand { min-width: 0; }
    .brand-logo { width: 250px; }
    .hero { min-height: 500px; padding-bottom: 92px; }
    .hajj-step-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hajj-zones-transport,
    .hajj-journey { grid-template-columns: 1fr; }
    .hajj-short-card { flex-basis: 250px; }
}

@media (max-width: 720px) {
    body:not(.admin-body) { padding-top: 96px; }
    .hero { min-height: 460px; padding: 44px 5vw 78px; }
    .hero-content h1 { font-size: clamp(34px, 10vw, 46px); }
    .home-categories { margin-top: -34px; }
    .home-categories img { height: 118px; }
    .review-logo { height: 32px; }
    .review-logo img { max-height: 32px; }
    .hajj-hero { min-height: 470px; padding: 46px 5vw 62px; }
    .hajj-steps,
    .hajj-preform,
    .hajj-package-guide,
    .hajj-faq { padding-top: 48px; padding-bottom: 52px; }
    .hajj-step-grid,
    .hajj-package-cards,
    .hajj-feature-icons,
    .hajj-transport div { grid-template-columns: 1fr; }
    .hajj-step-grid article { min-height: auto; }
    .hajj-shorts-carousel { padding-right: 44px; padding-left: 44px; }
    .hajj-short-card { flex-basis: min(72vw, 280px); min-width: 220px; }
    .hajj-preform-box { padding: 28px 18px; }
    .hajj-tab-labels { display: flex; overflow-x: auto; justify-content: flex-start; }
    .hajj-tab-labels label { flex: 0 0 auto; min-width: 190px; }
    .hajj-tab-panels { padding: 22px; }
    .hajj-journey { padding: 52px 0; }
    .hajj-journey-copy li { grid-template-columns: 36px minmax(0, 1fr); font-size: 14px; }
    .hajj-journey-copy li span { width: 36px; height: 36px; }
}

/* Small alignment cleanup after regression repairs */
body:not(.admin-body) { padding-top: 115px; }
.hajj-step-grid strong { align-self: start; }
@media (max-width: 1050px) { body:not(.admin-body) { padding-top: 104px; } }
@media (max-width: 720px) { body:not(.admin-body) { padding-top: 96px; } }


/* Keep desktop navigation compact after size repairs */
.main-nav { gap: 24px; }
.main-nav > a,
.main-nav .nav-parent { white-space: nowrap; }
@media (max-width: 1120px) { .main-nav { gap: 18px; } .brand-logo { width: 260px; } .brand { min-width: 260px; } }

/* Header and body offset stay matched on desktop */
body:not(.admin-body) { padding-top: 108px; }


/* Functional Omra voyage filters and row actions */
.omra-filter-bar.active-filters { align-items: stretch; }
.omra-filter-bar label { display: grid; gap: 5px; min-height: 70px; padding: 13px 22px; border-right: 1px solid #cfd6e0; background: #fff; }
.omra-filter-bar label:last-child { border-right: 0; }
.omra-filter-bar label span { display: block; color: var(--muted); font-size: 14px; font-weight: 500; }
.omra-filter-bar select { width: 100%; border: 0; border-radius: 0; padding: 0 28px 0 0; color: #07142a; background: transparent; font-weight: 900; cursor: pointer; appearance: auto; }
.omra-filter-bar select:focus { outline: 2px solid rgba(15, 95, 159, .18); outline-offset: 4px; }
.omra-filter-reset { width: min(1480px,94vw); margin: -4px auto 18px; text-align: right; }
.omra-filter-reset a { display: inline-flex; border-radius: 999px; padding: 8px 13px; color: var(--blue-deep); background: var(--blue-soft); font-size: 13px; font-weight: 900; }
.omra-row-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 14px; }
.category-chip { margin: 0; }
.category-chip.package-economique { color: #0b4c85; background: #e7f3ff; box-shadow: inset 0 0 0 1px rgba(15,95,159,.08); }
.category-chip.package-confort { color: #0f5b4f; background: #e7f8f0; box-shadow: inset 0 0 0 1px rgba(15,91,79,.1); }
.availability-chip { display: inline-flex; align-items: center; min-height: 36px; margin: 0; border-radius: 999px; padding: 7px 12px; color: #116329; background: #dcfce7; font-size: 13px; font-weight: 850; box-shadow: inset 0 0 0 1px rgba(17,99,41,.08); }
.availability-chip.last { color: #92400e; background: #fef3c7; box-shadow: inset 0 0 0 1px rgba(146,64,14,.12); }
.availability-chip.full { color: #991b1b; background: #fee2e2; box-shadow: inset 0 0 0 1px rgba(153,27,27,.12); }
.aqsa-chip { display: inline-flex; align-items: center; min-height: 36px; margin: 0; border-radius: 999px; padding: 7px 12px; color: #7a4b00; background: #fff0bf; font-size: 13px; font-weight: 880; box-shadow: inset 0 0 0 1px rgba(191,139,30,.16); }
.language-flags { display: inline-flex; align-items: center; gap: 5px; margin: 0; border-radius: 999px; padding: 7px 10px; background: #f0f7ff; box-shadow: inset 0 0 0 1px rgba(15, 95, 159, .08); }
.language-flags span { font-size: 18px; line-height: 1; }
.omra-row-price div { gap: 12px; }
.omra-row-price .whatsapp-pill,
.omra-row-price .detail-pill { min-height: 43px; border-radius: 9px; padding: 10px 15px; font-size: 15px; font-weight: 900; line-height: 1; box-shadow: none; }
.omra-row-price .whatsapp-pill { background: #24c244; }
.omra-row-price .detail-pill { background: #4256a3; }
.omra-row-price .whatsapp-pill span,
.omra-row-price .detail-pill span { display: inline-grid; width: 18px; height: 18px; place-items: center; margin-right: 7px; border-radius: 50%; color: inherit; font-size: 15px; line-height: 1; }
.omra-row-price .detail-pill span { background: #fff; color: #4256a3; font-size: 12px; font-weight: 900; }

@media (max-width: 720px) {
    .omra-filter-bar label { border-right: 0; border-bottom: 1px solid #cfd6e0; }
    .omra-filter-bar label:last-child { border-bottom: 0; }
    .omra-filter-reset { text-align: left; }
    .omra-row-price div { width: 100%; }
    .omra-row-price .whatsapp-pill,
    .omra-row-price .detail-pill { flex: 1 1 auto; }
}

.omra-row-price .whatsapp-pill svg { width: 18px; height: 18px; margin-right: 7px; fill: currentColor; }
.omra-row-price .whatsapp-pill span { margin-right: 0; }

.language-flags { min-height: 36px; padding: 8px 10px; }
.language-flags .flag-icon { position: relative; display: inline-block; width: 25px; height: 17px; overflow: hidden; border-radius: 3px; box-shadow: 0 0 0 1px rgba(7,20,42,.14), 0 2px 5px rgba(7,20,42,.12); }
.flag-fr { background: linear-gradient(90deg, #244aa5 0 33.33%, #fff 33.33% 66.66%, #ed2939 66.66% 100%); }
.flag-tr { background: #e30a17; }
.flag-tr::before { content: ''; position: absolute; left: 6px; top: 4px; width: 9px; height: 9px; border-radius: 50%; background: #fff; }
.flag-tr::after { content: ''; position: absolute; left: 9px; top: 4px; width: 9px; height: 9px; border-radius: 50%; background: #e30a17; box-shadow: 7px 2px 0 -3px #fff; }
.omra-row-price .whatsapp-pill { min-width: 104px; }
.detail-language-flags { justify-self: start; width: max-content; min-height: 0; padding: 0; background: transparent; box-shadow: none; }
.tour-detail-language { align-content: start; }


/* Public form fields must not inherit tour badge classes such as .full. */
.inquiry-form .full,
.contact-form-wide .full,
.contact-form-wide .checkbox,
form .full {
    position: static !important;
    inset: auto !important;
    display: grid !important;
    grid-column: 1 / -1;
    min-height: 0;
    border-radius: 0;
    padding: 0;
    color: #344054;
    background: transparent !important;
    box-shadow: none;
    font-size: inherit;
    font-weight: 700;
    line-height: inherit;
    text-align: left;
}
.contact-form-wide .checkbox,
.inquiry-form .checkbox {
    display: flex !important;
    align-items: center;
    gap: 10px;
}
.contact-form-wide .checkbox input,
.inquiry-form .checkbox input {
    width: auto;
}

/* Home hero height options: normal, intermediate and high. */
.hero-height-normal { min-height: 540px; padding-bottom: 118px; }
.hero-height-medium { min-height: 600px; padding-bottom: 138px; }
.hero-height-high { min-height: 660px; padding-bottom: 170px; }
@media (max-width: 1050px) {
    .hero-height-normal { min-height: 500px; padding-bottom: 92px; }
    .hero-height-medium { min-height: 560px; padding-bottom: 112px; }
    .hero-height-high { min-height: 620px; padding-bottom: 138px; }
}
@media (max-width: 720px) {
    .hero-height-normal { min-height: 460px; padding-bottom: 78px; }
    .hero-height-medium { min-height: 500px; padding-bottom: 92px; }
    .hero-height-high { min-height: 560px; padding-bottom: 110px; }
}

/* Rich tour detail page */
.tour-detail-hero {
    display: grid;
    grid-template-columns: minmax(300px, .82fr) minmax(430px, 1.08fr) minmax(292px, .54fr);
    gap: 24px;
    align-items: stretch;
    width: min(1420px, 94vw);
    margin: 52px auto 60px;
}
.tour-detail-hero-image,
.tour-detail-hero-copy,
.tour-detail-price-card,
.tour-detail-hotels,
.tour-detail-gifts,
.tour-detail-notes,
.tour-detail-program article,
.tour-detail-service-grid article {
    border: 1px solid var(--line);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 18px 46px rgba(11,36,82,.08);
}
.tour-detail-hero-image { position: relative; overflow: hidden; aspect-ratio: 3 / 4; min-height: 0; align-self: start; background: #edf2f6; }
.tour-detail-hero-image img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; min-height: 0; object-fit: cover; object-position: center; }
.tour-detail-badge { position: absolute; top: 18px; right: 18px; border-radius: 999px; padding: 10px 15px; color: #fff; font-weight: 900; }
.tour-detail-badge-available { background: #09cf2c; }
.tour-detail-badge-full { background: #e11d48; }
.tour-detail-badge-last { background: #1675e8; }
.tour-detail-hero-copy { display: grid; min-width: 0; align-content: start; gap: 18px; padding: clamp(22px, 2.2vw, 32px); }
.tour-detail-hero-copy h1 { max-width: 14ch; margin: 0; color: var(--blue-deep); font-size: clamp(38px, 4.35vw, 56px); line-height: 1.04; letter-spacing: -.045em; text-wrap: balance; }
.tour-detail-intro { margin: 0; color: #4d5a6d; font-size: 17px; font-weight: 520; line-height: 1.65; }
.tour-detail-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 2px 0 4px; }
.detail-fact { min-width: 0; border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; background: #fff; }
.detail-fact-wide { grid-column: 1 / -1; }
.detail-fact dt { display: flex; align-items: center; gap: 8px; color: #526479; font-size: 13px; font-weight: 500; line-height: 1.5; }
.detail-fact dt svg { flex: 0 0 19px; width: 19px; height: 19px; color: var(--blue); }
.detail-fact dd { margin: 9px 0 0; color: var(--blue-deep); font-size: 16px; font-weight: 600; line-height: 1.5; overflow-wrap: anywhere; }
.detail-fact-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.detail-fact-pair > span { display: grid; align-content: start; gap: 2px; min-width: 0; }
.detail-fact-pair > span + span { border-left: 1px solid var(--line); padding-left: 16px; }
.detail-fact-pair small { color: #627185; font-size: 12px; font-weight: 400; }
.detail-fact-pair strong { font-size: 17px; font-weight: 600; line-height: 1.4; }
.detail-fact-dates { border-top: 3px solid var(--blue); background: #f8fbfd; }
.detail-fact-quds { border-left: 3px solid var(--blue); background: #f1f7fa; }
.tour-detail-cta { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.tour-whatsapp-button { display: grid; width: 56px; height: 56px; place-items: center; border-radius: 17px; background: #09d32d; box-shadow: 0 16px 34px rgba(9,211,45,.24); transition: transform .18s ease, box-shadow .18s ease; }
.tour-whatsapp-button:hover { transform: translateY(-2px); box-shadow: 0 20px 40px rgba(9,211,45,.32); }
.tour-whatsapp-button svg { width: 30px; height: 30px; fill: #fff; }
.reserve-button { display: inline-flex; align-items: center; justify-content: center; min-height: 56px; border: 0; border-radius: 15px; padding: 0 24px; color: #fff; background: linear-gradient(135deg, var(--blue), #0b4e9a); font: inherit; font-weight: 900; text-decoration: none; cursor: pointer; box-shadow: 0 16px 34px rgba(22,102,166,.22); }
.ghost-button.dark { border-color: rgba(7,20,42,.22); color: var(--blue-deep); }
.tour-detail-price-card { position: relative; display: flex; flex-direction: column; gap: 18px; padding: 28px; overflow: hidden; background: linear-gradient(160deg,#ffffff 0%,#f4fbff 56%,#eaf7f5 100%); }
.tour-detail-price-card::before { content: '€'; position: absolute; right: -10px; top: -34px; color: rgba(22,102,166,.08); font-size: 150px; font-weight: 900; line-height: 1; }
.price-card-head { position: relative; z-index: 1; display: grid; gap: 6px; border-radius: 22px; padding: 20px; color: #fff; background: linear-gradient(135deg,var(--blue-deep),var(--blue)); box-shadow: 0 16px 36px rgba(11,66,120,.22); }
.price-card-head span { color: rgba(255,255,255,.78); font-weight: 900; }
.price-card-head strong { color: #fff; font-size: clamp(38px, 4vw, 56px); line-height: 1; letter-spacing: -.04em; }
.price-card-head small { color: rgba(255,255,255,.82); font-weight: 800; }
.tour-detail-price-list { position: relative; z-index: 1; display: grid; gap: 10px; }
.tour-detail-price-list p { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; margin: 0; border: 1px solid rgba(22,102,166,.12); border-radius: 16px; padding: 14px 18px; background: rgba(255,255,255,.86); color: #475467; font-weight: 650; }
.tour-detail-price-list p span { display: grid; gap: 2px; }
.tour-detail-price-list p b { color: #07142a; font-size: 16px; font-weight: 850; }
.tour-detail-price-list p small { color: #667085; font-size: 12px; font-weight: 650; }
.tour-detail-price-list p strong { color: #07142a; font-size: 22px; white-space: nowrap; }
.price-card-actions { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 56px; gap: 10px; margin-top: 4px; padding-top: 0; }
.price-card-actions .reserve-button { width: 100%; min-height: 56px; }
.price-whatsapp-button { display: grid; width: 56px; height: 56px; place-items: center; border-radius: 16px; background: #09d32d; box-shadow: 0 16px 34px rgba(9,211,45,.22); }
.price-whatsapp-button svg { width: 29px; height: 29px; fill: #fff; }
.tour-detail-section { width: min(1220px, 92vw); margin: 0 auto 66px; }
.section-title.centered { margin-bottom: 28px; text-align: center; }
.section-title.centered p { max-width: 760px; margin: 12px auto 0; color: #475467; font-weight: 650; line-height: 1.65; }
.detail-program-section { margin-top: -18px; margin-bottom: 42px; }
.tour-route-card { border: 1px solid var(--line); border-radius: 18px; padding: clamp(20px, 3vw, 36px); background: #fff; }
.tour-route-card .section-title { margin-bottom: 28px; text-align: left; }
.tour-route-card .section-title > span { color: var(--blue); font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.tour-route-card .section-title h2 { margin: 6px 0 10px; color: var(--blue-deep); font-size: clamp(25px, 2.6vw, 34px); font-weight: 600; line-height: 1.25; letter-spacing: -.025em; }
.tour-route-card .route-summary { margin: 0; color: #627185; font-size: 14px; line-height: 1.5; }
.route-summary span { padding: 0 6px; }
.tour-route-timeline { display: grid; list-style: none; max-width: 940px; margin: 0 auto; padding: 0; }
.tour-route-timeline > li { position: relative; display: grid; grid-template-columns: 48px minmax(0,1fr); align-items: center; gap: 20px; min-width: 0; padding: 0 0 14px; }
.tour-route-timeline > li:not(:last-child)::before { content: ''; position: absolute; top: 50%; bottom: -50%; left: 23px; width: 2px; background: #cadce7; }
.tour-route-timeline > li:last-child { padding-bottom: 0; }
.route-step-copy { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 20px; min-width: 0; border: 1px solid var(--line); border-radius: 12px; padding: 16px 20px; background: #fff; }
.tour-route-timeline > li:first-child .route-step-copy, .tour-route-timeline > li:last-child .route-step-copy { border-color: #c8dce8; background: #f5f9fc; }
.route-step-heading { min-width: 0; }
.route-step-label { display: block; margin-bottom: 4px; color: #627185; font-size: 12px; font-weight: 400; line-height: 1.5; }
.route-step-label span { padding: 0 3px; }
.tour-route-timeline h3 { margin: 0; color: var(--blue-deep); font-size: clamp(18px, 1.65vw, 21px); font-weight: 600; line-height: 1.35; letter-spacing: -.015em; overflow-wrap: anywhere; }
.route-step-icon { position: relative; z-index: 1; display: grid; width: 48px; height: 48px; place-items: center; border: 1px solid #cadce7; border-radius: 50%; color: var(--blue); background: #f1f7fa; }
.route-step-icon.is-flight { color: #fff; border-color: var(--blue); background: var(--blue); }
.route-step-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.tour-route-timeline .route-step-duration { flex: 0 0 auto; margin: 0; border-radius: 7px; padding: 7px 12px; color: var(--blue-deep); background: #eaf3f8; font-size: 15px; font-weight: 600; line-height: 1.5; }
.tour-route-timeline .route-step-duration.is-pending { color: #627185; background: #f3f5f7; font-size: 13px; font-weight: 400; }
.route-step-endpoint { display: block; margin-top: 3px; color: #627185; font-size: 13px; font-weight: 400; line-height: 1.5; }
@media (max-width: 720px) {
    .tour-route-timeline > li { gap: 12px; grid-template-columns: 36px minmax(0,1fr); }
    .tour-route-timeline > li:not(:last-child)::before { left: 17px; }
    .route-step-icon { width: 36px; height: 36px; }
    .route-step-icon svg { width: 19px; height: 19px; }
    .route-step-copy { display: grid; justify-content: stretch; gap: 10px; padding: 13px 14px; }
    .tour-route-timeline .route-step-duration { justify-self: start; padding: 5px 9px; }
}
.tour-detail-service-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.tour-detail-service-grid article { padding: 22px; }
.tour-detail-service-grid article > span { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 15px; background: var(--blue-soft); font-size: 26px; }
.tour-detail-service-grid h3 { margin: 16px 0 8px; color: var(--blue-deep); font-size: 18px; }
.tour-detail-service-grid p { margin: 0; color: #475467; font-weight: 600; line-height: 1.55; }
.tour-detail-hotels-section,
.tour-detail-gifts-section { width: min(1220px, 92vw); margin: 0 auto 66px; }
.hotel-carousel-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; }
.hotel-city-carousel { min-width: 0; border: 1px solid var(--line); border-radius: 24px; padding: clamp(18px, 2vw, 24px); background: #fff; box-shadow: 0 18px 46px rgba(11,36,82,.08); }
.hotel-city-head { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 18px; align-items: start; margin-bottom: 18px; }
.hotel-city-head h3 { margin: 6px 0 0; color: #07142a; font-size: 19px; line-height: 1.35; }
.hotel-arrows { display: flex; flex: 0 0 auto; gap: 8px; }
.hotel-arrows button { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid #dce5f0; border-radius: 50%; background: #f8fbff; color: #07142a; font-size: 28px; font-weight: 900; cursor: pointer; }
.hotel-carousel-shell { overflow: hidden; }
.hotel-track { display: flex; gap: 14px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.hotel-track::-webkit-scrollbar { display: none; }
.hotel-card { flex: 0 0 100%; min-width: 0; margin: 0; overflow: hidden; border: 1px solid #e4eaf2; border-radius: 18px; background: #fff; scroll-snap-align: start; }
.hotel-card img { width: 100%; height: 220px; object-fit: cover; background: #eef6fb; }
.hotel-card figcaption { padding: 16px; }
.hotel-card span { color: var(--teal); font-size: 12px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.hotel-card h4 { margin: 8px 0 0; color: #07142a; font-size: clamp(18px, 1.8vw, 24px); font-weight: 600; line-height: 1.35; letter-spacing: -.03em; }
.hotel-dots { padding-top: 16px; flex-wrap: wrap; gap: 8px; }
.hotel-confirmation-note, .hotel-photos-pending { color: #617181; font-size: 14px; line-height: 1.6; }
.hotel-confirmation-note { margin: 20px 0 0; text-align: center; }
.hotel-dots button { width: 8px; height: 8px; }
.hotel-dots[hidden] { display: none; }
.hotel-photo-count { margin: 14px 0 0; color: #617181; text-align: center; font-size: 13px; font-weight: 400; font-variant-numeric: tabular-nums; }
.tour-detail-split { display: grid; grid-template-columns: minmax(0, .92fr) minmax(360px, 1fr); gap: 24px; width: min(1220px, 92vw); margin: 0 auto 66px; }
.tour-detail-hotels,
.tour-detail-gifts,
.tour-detail-notes { padding: clamp(24px, 3vw, 34px); }
.tour-detail-hotels h2,
.tour-detail-gifts h2,
.tour-detail-notes h2 { margin: 0 0 18px; color: var(--blue-deep); font-size: clamp(30px, 3.4vw, 44px); line-height: 1.04; }
.hotel-lines { display: grid; gap: 12px; }
.hotel-lines p { margin: 0; border-radius: 16px; padding: 16px; background: #f8fbff; color: #475467; font-weight: 650; line-height: 1.65; }
.hotel-lines b { display: block; color: #07142a; }
.hotel-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.hotel-tags span { border-radius: 999px; padding: 9px 13px; color: var(--blue-deep); background: var(--blue-soft); font-weight: 900; }
.tour-detail-gifts { display: grid; grid-template-columns: minmax(0, .72fr) minmax(260px, .88fr); gap: 20px; align-items: center; overflow: hidden; background: linear-gradient(135deg,#fff,#f2fbfa); }
.tour-detail-gifts img { width: 100%; max-height: 360px; object-fit: contain; border-radius: 22px; background: #fff; }
.tour-detail-gifts ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.tour-detail-gifts li { display: flex; gap: 9px; color: #475467; font-weight: 800; }
.tour-detail-gifts li::before { content: '✓'; color: #09b53d; font-weight: 900; }
.tour-detail-program { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.tour-detail-program article { display: grid; grid-template-columns: 42px minmax(0,1fr); gap: 14px; align-items: start; padding: 18px; }
.tour-detail-program article > span { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; color: #fff; background: var(--gold); font-weight: 900; }
.tour-detail-program p { margin: 0; color: #344054; font-weight: 700; line-height: 1.6; }
.tour-detail-bottom { display: grid; grid-template-columns: minmax(0, .86fr) minmax(420px, .62fr); gap: 24px; align-items: stretch; width: min(1220px, 92vw); margin: 0 auto 78px; }
.tour-detail-bottom .request-panel { display: grid; align-content: start; border-radius: 24px; padding: clamp(24px,3vw,34px); }
.tour-detail-notes { display: grid; align-content: center; min-height: 100%; background: linear-gradient(135deg,#fff,#f5fbff); }
.tour-detail-notes div { color: #475467; font-weight: 650; line-height: 1.75; }
.tour-detail-gallery-section { margin-top: -18px; }
/* One shared height on desktop, driven by content rather than image dimensions. */
@media (min-width: 1051px) {
    .tour-detail-hero-image { aspect-ratio: auto; align-self: stretch; }
    .tour-detail-hero .price-card-actions { margin-top: auto; }
}
@media (max-width: 1050px) {
    .tour-detail-hero,
    .tour-detail-split,
    .tour-detail-bottom { grid-template-columns: 1fr; }
    .tour-detail-hero-image { aspect-ratio: auto; height: clamp(260px, 42vw, 420px); }
    .hotel-carousel-grid { grid-template-columns: 1fr; }
    .tour-detail-service-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 720px) {
    .tour-detail-hero { margin-top: 32px; }
    .tour-detail-facts,
    .tour-detail-service-grid,
    .tour-detail-program,
    .tour-detail-gifts { grid-template-columns: 1fr; }
    .tour-detail-hero-image { aspect-ratio: 4 / 3; height: auto; }
    .tour-detail-price-card strong { font-size: 34px; }
    .price-card-head strong { font-size: 38px; }
    .hotel-card { flex-basis: 100%; }
    .hotel-city-head { display: grid; }
}


.tour-detail-hotels-section .section-title.centered p { max-width: 1120px; font-weight: 560; }
.tour-detail-hotels-section .section-title.centered { margin-bottom: 34px; }
.hotel-city-head h3 { max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: clip; font-size: clamp(15px, 1.05vw, 17px); font-weight: 650; line-height: 1.25; letter-spacing: -.01em; }

@media (max-width: 860px) {
    .hotel-city-head h3 { white-space: normal; overflow: visible; }
}

.hotel-city-head > div:first-child { min-width: 0; }
.hotel-arrows { justify-self: end; }

/* --- Alternative topbar: capsule navigation --- */
body:not(.admin-body) { padding-top: 92px; }
.site-header {
    min-height: 92px;
    padding: 14px clamp(24px, 5vw, 86px);
    gap: 22px;
    background: linear-gradient(135deg, #0b4d86 0%, #0f66a6 58%, #0d5c98 100%);
    box-shadow: 0 14px 32px rgba(8, 38, 86, .2);
}
.brand { min-width: 230px; }
.brand-logo { width: 238px; }
.main-nav {
    margin: 0 auto;
    gap: 4px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 999px;
    padding: 7px;
    background: rgba(255,255,255,.12);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 12px 28px rgba(6, 28, 67, .12);
    backdrop-filter: blur(10px);
    text-transform: none;
    font-size: 14px;
    font-weight: 850;
}
.main-nav > a,
.main-nav .nav-parent {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    border: 0;
    border-radius: 999px;
    padding: 0 14px;
    color: rgba(255,255,255,.9);
    transition: background .18s ease, color .18s ease, transform .18s ease;
}
.main-nav > a.active,
.main-nav > a:hover,
.main-nav .nav-parent.active,
.main-nav .nav-parent:hover,
.main-nav .nav-item:hover .nav-parent,
.main-nav .nav-item:focus-within .nav-parent {
    border-color: transparent;
    color: #063a70;
    background: #fff;
    transform: translateY(-1px);
}
.nav-parent::after { content: '⌄'; margin-left: 7px; font-size: 12px; opacity: .8; }
.nav-dropdown {
    top: calc(100% + 10px);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 18px;
    padding: 9px;
    background: #ffffff;
    box-shadow: 0 24px 46px rgba(6,25,66,.25);
}
.nav-dropdown a {
    border-radius: 12px;
    padding: 11px 16px;
    color: #0b2444;
    font-size: 14px;
    font-weight: 800;
}
.nav-dropdown a:hover { background: #eaf4ff; }
.header-actions { display: inline-flex; align-items: center; gap: 10px; }
.header-whatsapp {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    border-radius: 999px;
    padding: 0 15px;
    color: #fff;
    background: #18c65a;
    font-weight: 900;
    box-shadow: 0 14px 30px rgba(24, 198, 90, .24);
    transition: transform .18s ease, filter .18s ease;
}
.header-whatsapp svg { width: 22px; height: 22px; fill: currentColor; }
.header-whatsapp:hover { transform: translateY(-2px); filter: brightness(1.04); }
.call-button {
    min-width: 138px;
    min-height: 44px;
    border-radius: 999px;
    background: #65cbc3;
    box-shadow: 0 14px 30px rgba(101, 203, 195, .22);
}
@media (max-width: 1180px) {
    .site-header { gap: 14px; padding-right: 3vw; padding-left: 3vw; }
    .brand { min-width: 190px; }
    .brand-logo { width: 205px; }
    .main-nav { font-size: 13px; }
    .main-nav > a,
    .main-nav .nav-parent { padding: 0 10px; }
    .header-whatsapp span { display: none; }
    .header-whatsapp { width: 44px; padding: 0; }
}
@media (max-width: 1050px) {
    body:not(.admin-body) { padding-top: 96px; }
    .site-header { min-height: auto; padding: 16px 5vw; }
    .brand { min-width: 0; }
    .brand-logo { width: 220px; }
    .nav-toggle { order: 2; }
    .header-actions { order: 3; margin-left: auto; }
    .main-nav {
        order: 5;
        flex-basis: 100%;
        margin: 10px 0 0;
        border-radius: 22px;
        padding: 10px;
        background: rgba(255,255,255,.13);
    }
    .main-nav.open { display: grid; gap: 6px; }
    .main-nav > a,
    .main-nav .nav-parent { justify-content: flex-start; border-radius: 14px; padding: 10px 12px; }
    .nav-dropdown { border: 0; border-radius: 14px; margin: 2px 0 8px 16px; padding: 4px 0 4px 12px; background: transparent; box-shadow: none; }
    .nav-dropdown a { color: rgba(255,255,255,.86); }
    .nav-dropdown a:hover { color: #fff; background: rgba(255,255,255,.12); }
}
@media (max-width: 720px) {
    body:not(.admin-body) { padding-top: 90px; }
    .brand-logo { width: 178px; }
    .header-actions { gap: 7px; }
    .header-whatsapp { width: 42px; min-height: 42px; }
    .call-button { min-width: 0; min-height: 42px; padding: 0 13px; font-size: 13px; }
}
@media (max-width: 460px) {
    .brand-logo { width: 150px; }
    .call-button { padding: 0 10px; }
}

/* --- Topbar refinement: calmer agency style --- */
.site-header {
    min-height: 88px;
    padding-top: 13px;
    padding-bottom: 13px;
    background: #0f5f9f;
    box-shadow: 0 8px 22px rgba(8, 38, 86, .18);
}

.brand-logo { width: 230px; }
.main-nav {
    gap: 2px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 18px;
    padding: 5px;
    background: rgba(255,255,255,.08);
    box-shadow: none;
    backdrop-filter: none;
    font-size: 14px;
    font-weight: 650;
}
.main-nav > a,
.main-nav .nav-parent {
    min-height: 36px;
    border-radius: 13px;
    padding: 0 13px;
    color: rgba(255,255,255,.88);
    font-weight: 650;
}
.main-nav > a.active,
.main-nav > a:hover,
.main-nav .nav-parent.active,
.main-nav .nav-parent:hover,
.main-nav .nav-item:hover .nav-parent,
.main-nav .nav-item:focus-within .nav-parent {
    color: #fff;
    background: rgba(255,255,255,.14);
    transform: none;
}
.nav-dropdown {
    border-radius: 14px;
    padding: 8px;
    background: #fff;
}
.nav-dropdown a {
    font-size: 14px;
    font-weight: 650;
}
.header-actions { gap: 9px; }
.header-whatsapp,
.call-button {
    min-height: 42px;
    border-radius: 13px;
    font-weight: 700;
    box-shadow: none;
}
.header-whatsapp {
    padding: 0 14px;
    background: #22c55e;
}
.call-button {
    min-width: 132px;
    background: #62c4be;
}
@media (max-width: 1180px) {
    .brand-logo { width: 200px; }
    .main-nav { font-size: 13px; }
}
@media (max-width: 1050px) {
    .main-nav {
        border-radius: 16px;
        background: rgba(255,255,255,.08);
    }
    .main-nav > a,
    .main-nav .nav-parent { border-radius: 11px; }
}
@media (max-width: 720px) {
    .brand-logo { width: 174px; }
}

/* --- Topbar liquid glass version --- */
.site-header {
    min-height: 92px;
    padding: 14px clamp(24px, 5vw, 86px);
    gap: 22px;
    background:
        radial-gradient(circle at 18% 0%, rgba(255,255,255,.18), transparent 28%),
        linear-gradient(135deg, #0b4d86 0%, #1068a9 55%, #0d5c98 100%);
    box-shadow: 0 14px 34px rgba(8, 38, 86, .22);
}
.brand { min-width: 230px; }
.brand-logo { width: 238px; }
.main-nav {
    position: relative;
    margin: 0 auto;
    gap: 4px;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 999px;
    padding: 7px;
    background: linear-gradient(135deg, rgba(255,255,255,.22), rgba(255,255,255,.08));
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.34),
        inset 0 -1px 0 rgba(255,255,255,.08),
        0 18px 36px rgba(6, 28, 67, .16);
    backdrop-filter: blur(18px) saturate(150%);
    -webkit-backdrop-filter: blur(18px) saturate(150%);
    text-transform: none;
    font-size: 14px;
    font-weight: 760;
}
.main-nav::before {
    content: '';
    position: absolute;
    inset: 1px 1px auto;
    height: 45%;
    border-radius: inherit;
    background: linear-gradient(180deg, rgba(255,255,255,.24), transparent);
    pointer-events: none;
}
.main-nav > a,
.main-nav .nav-parent {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    border: 0;
    border-radius: 999px;
    padding: 0 14px;
    color: rgba(255,255,255,.92);
    font-weight: 760;
    transition: background .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.main-nav > a.active,
.main-nav > a:hover,
.main-nav .nav-parent.active,
.main-nav .nav-parent:hover,
.main-nav .nav-item:hover .nav-parent,
.main-nav .nav-item:focus-within .nav-parent {
    border-color: transparent;
    color: #063a70;
    background: rgba(255,255,255,.88);
    box-shadow: 0 8px 18px rgba(4, 29, 68, .12), inset 0 1px 0 rgba(255,255,255,.9);
    transform: translateY(-1px);
}
.nav-dropdown {
    top: calc(100% + 10px);
    border: 1px solid rgba(255,255,255,.38);
    border-radius: 18px;
    padding: 9px;
    background: rgba(255,255,255,.92);
    box-shadow: 0 24px 46px rgba(6,25,66,.24);
    backdrop-filter: blur(16px) saturate(140%);
    -webkit-backdrop-filter: blur(16px) saturate(140%);
}
.nav-dropdown a {
    border-radius: 12px;
    padding: 11px 16px;
    color: #0b2444;
    font-size: 14px;
    font-weight: 760;
}
.nav-dropdown a:hover { background: rgba(15,95,159,.1); }
.header-actions { display: inline-flex; align-items: center; gap: 10px; }
.header-whatsapp,
.call-button {
    min-height: 44px;
    border-radius: 999px;
    font-weight: 850;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 14px 30px rgba(6, 28, 67, .16);
}
.header-whatsapp {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 15px;
    color: #fff;
    background: linear-gradient(135deg, #29d86a, #12b84d);
}
.header-whatsapp svg { width: 22px; height: 22px; fill: currentColor; }
.call-button {
    min-width: 138px;
    background: linear-gradient(135deg, rgba(116,218,211,.98), rgba(76,184,178,.98));
}
.header-whatsapp:hover,
.call-button:hover { transform: translateY(-2px); filter: brightness(1.04); }
@media (max-width: 1180px) {
    .site-header { gap: 14px; padding-right: 3vw; padding-left: 3vw; }
    .brand { min-width: 190px; }
    .brand-logo { width: 205px; }
    .main-nav { font-size: 13px; }
    .main-nav > a,
    .main-nav .nav-parent { padding: 0 10px; }
    .header-whatsapp span { display: none; }
    .header-whatsapp { width: 44px; padding: 0; }
}
@media (max-width: 1050px) {
    body:not(.admin-body) { padding-top: 96px; }
    .site-header { min-height: auto; padding: 16px 5vw; }
    .brand { min-width: 0; }
    .brand-logo { width: 220px; }
    .nav-toggle { order: 2; }
    .header-actions { order: 3; margin-left: auto; }
    .main-nav {
        order: 5;
        flex-basis: 100%;
        margin: 10px 0 0;
        border-radius: 22px;
        padding: 10px;
        background: linear-gradient(135deg, rgba(255,255,255,.2), rgba(255,255,255,.08));
    }
    .main-nav.open { display: grid; gap: 6px; }
    .main-nav > a,
    .main-nav .nav-parent { justify-content: flex-start; border-radius: 14px; padding: 10px 12px; }
    .nav-dropdown { border: 0; border-radius: 14px; margin: 2px 0 8px 16px; padding: 4px 0 4px 12px; background: transparent; box-shadow: none; backdrop-filter: none; }
    .nav-dropdown a { color: rgba(255,255,255,.86); }
    .nav-dropdown a:hover { color: #fff; background: rgba(255,255,255,.12); }
}
@media (max-width: 720px) {
    body:not(.admin-body) { padding-top: 90px; }
    .brand-logo { width: 178px; }
    .header-actions { gap: 7px; }
    .header-whatsapp { width: 42px; min-height: 42px; }
    .call-button { min-width: 0; min-height: 42px; padding: 0 13px; font-size: 13px; }
}
@media (max-width: 460px) {
    .brand-logo { width: 150px; }
    .call-button { padding: 0 10px; }
}

/* --- Topbar minimal glass refinement --- */
.site-header {
    min-height: 86px;
    padding: 13px clamp(24px, 5vw, 86px);
    background: rgba(15, 95, 159, .96);
    box-shadow: 0 8px 24px rgba(8, 38, 86, .18);
}
.brand-logo { width: 228px; }
.main-nav {
    gap: 2px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 16px;
    padding: 5px;
    background: rgba(255,255,255,.1);
    box-shadow: none;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    font-size: 14px;
    font-weight: 650;
}
.main-nav::before { display: none; }
.main-nav > a,
.main-nav .nav-parent {
    min-height: 36px;
    border-radius: 11px;
    padding: 0 13px;
    color: rgba(255,255,255,.9);
    font-weight: 650;
    transform: none;
}
.main-nav > a.active,
.main-nav > a:hover,
.main-nav .nav-parent.active,
.main-nav .nav-parent:hover,
.main-nav .nav-item:hover .nav-parent,
.main-nav .nav-item:focus-within .nav-parent {
    color: #fff;
    background: rgba(255,255,255,.14);
    box-shadow: none;
    transform: none;
}
.nav-dropdown {
    border: 1px solid rgba(15,95,159,.12);
    border-radius: 14px;
    padding: 8px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 18px 36px rgba(6,25,66,.16);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
.nav-dropdown a {
    border-radius: 10px;
    font-weight: 650;
}
.header-whatsapp,
.call-button {
    min-height: 42px;
    border-radius: 12px;
    font-weight: 720;
    box-shadow: none;
}
.header-whatsapp {
    background: #22c55e;
}
.call-button {
    min-width: 132px;
    background: #62c4be;
}
.header-whatsapp:hover,
.call-button:hover { transform: none; filter: brightness(1.04); }
@media (max-width: 1050px) {
    .main-nav { border-radius: 16px; }
    .main-nav > a,
    .main-nav .nav-parent { border-radius: 10px; }
}

/* --- Restore first capsule topbar version --- */
body:not(.admin-body) { padding-top: 92px; }
.site-header {
    min-height: 92px;
    padding: 14px clamp(24px, 5vw, 86px);
    gap: 22px;
    background: linear-gradient(135deg, #0b4d86 0%, #0f66a6 58%, #0d5c98 100%);
    box-shadow: 0 14px 32px rgba(8, 38, 86, .2);
}
.brand { min-width: 230px; }
.brand-logo { width: 238px; }
.main-nav {
    margin: 0 auto;
    gap: 4px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 999px;
    padding: 7px;
    background: rgba(255,255,255,.12);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 12px 28px rgba(6, 28, 67, .12);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    text-transform: none;
    font-size: 14px;
    font-weight: 850;
}
.main-nav::before { display: none; }
.main-nav > a,
.main-nav .nav-parent {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    border: 0;
    border-radius: 999px;
    padding: 0 14px;
    color: rgba(255,255,255,.9);
    font-weight: 850;
    transition: background .18s ease, color .18s ease, transform .18s ease;
}
.main-nav > a.active,
.main-nav > a:hover,
.main-nav .nav-parent.active,
.main-nav .nav-parent:hover,
.main-nav .nav-item:hover .nav-parent,
.main-nav .nav-item:focus-within .nav-parent {
    border-color: transparent;
    color: #063a70;
    background: #fff;
    box-shadow: none;
    transform: translateY(-1px);
}
.nav-parent::after { content: '⌄'; margin-left: 7px; font-size: 12px; opacity: .8; }
.nav-dropdown {
    top: calc(100% + 10px);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 18px;
    padding: 9px;
    background: #ffffff;
    box-shadow: 0 24px 46px rgba(6,25,66,.25);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}
.nav-dropdown a {
    border-radius: 12px;
    padding: 11px 16px;
    color: #0b2444;
    font-size: 14px;
    font-weight: 800;
}
.nav-dropdown a:hover { background: #eaf4ff; }
.header-actions { display: inline-flex; align-items: center; gap: 10px; }
.header-whatsapp {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    border-radius: 999px;
    padding: 0 15px;
    color: #fff;
    background: #18c65a;
    font-weight: 900;
    box-shadow: 0 14px 30px rgba(24, 198, 90, .24);
    transition: transform .18s ease, filter .18s ease;
}
.header-whatsapp svg { width: 22px; height: 22px; fill: currentColor; }
.header-whatsapp:hover { transform: translateY(-2px); filter: brightness(1.04); }
.call-button {
    min-width: 138px;
    min-height: 44px;
    border-radius: 999px;
    background: #65cbc3;
    font-weight: 900;
    box-shadow: 0 14px 30px rgba(101, 203, 195, .22);
}
@media (max-width: 1180px) {
    .site-header { gap: 14px; padding-right: 3vw; padding-left: 3vw; }
    .brand { min-width: 190px; }
    .brand-logo { width: 205px; }
    .main-nav { font-size: 13px; }
    .main-nav > a,
    .main-nav .nav-parent { padding: 0 10px; }
    .header-whatsapp span { display: none; }
    .header-whatsapp { width: 44px; padding: 0; }
}
@media (max-width: 1050px) {
    body:not(.admin-body) { padding-top: 96px; }
    .site-header { min-height: auto; padding: 16px 5vw; }
    .brand { min-width: 0; }
    .brand-logo { width: 220px; }
    .nav-toggle { order: 2; }
    .header-actions { order: 3; margin-left: auto; }
    .main-nav {
        order: 5;
        flex-basis: 100%;
        margin: 10px 0 0;
        border-radius: 22px;
        padding: 10px;
        background: rgba(255,255,255,.13);
    }
    .main-nav.open { display: grid; gap: 6px; }
    .main-nav > a,
    .main-nav .nav-parent { justify-content: flex-start; border-radius: 14px; padding: 10px 12px; }
    .nav-dropdown { border: 0; border-radius: 14px; margin: 2px 0 8px 16px; padding: 4px 0 4px 12px; background: transparent; box-shadow: none; }
    .nav-dropdown a { color: rgba(255,255,255,.86); }
    .nav-dropdown a:hover { color: #fff; background: rgba(255,255,255,.12); }
}
@media (max-width: 720px) {
    body:not(.admin-body) { padding-top: 90px; }
    .brand-logo { width: 178px; }
    .header-actions { gap: 7px; }
    .header-whatsapp { width: 42px; min-height: 42px; }
    .call-button { min-width: 0; min-height: 42px; padding: 0 13px; font-size: 13px; }
}
@media (max-width: 460px) {
    .brand-logo { width: 150px; }
    .call-button { padding: 0 10px; }
}

/* --- Hajj landing redesign --- */
.hajj-landing-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
    gap: clamp(24px, 5vw, 70px);
    align-items: end;
    min-height: 620px;
    padding: clamp(70px, 9vw, 128px) clamp(24px, 6vw, 108px) clamp(54px, 7vw, 86px);
    color: #fff;
    background-size: cover;
    background-position: center;
}
.hajj-landing-copy { max-width: 780px; }
.hajj-landing-copy h1 {
    margin: 0;
    max-width: 760px;
    font-size: clamp(44px, 6vw, 78px);
    line-height: .98;
    letter-spacing: -.055em;
}
.hajj-landing-copy > p:not(.section-kicker) {
    max-width: 650px;
    margin: 24px 0 0;
    color: rgba(255,255,255,.88);
    font-size: clamp(17px, 2vw, 22px);
    font-weight: 520;
    line-height: 1.65;
}
.hajj-landing-actions { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 30px; }
.hajj-landing-actions .primary-button,
.hajj-landing-actions .ghost-button { min-height: 54px; border-radius: 14px; padding: 0 24px; }
.hajj-hero-panel {
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 24px;
    padding: 24px;
    background: rgba(255,255,255,.13);
    backdrop-filter: blur(12px);
    box-shadow: 0 24px 54px rgba(0,0,0,.18);
}
.hajj-hero-panel span { color: #9fe1dc; font-size: 13px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.hajj-hero-panel strong { display: block; margin-top: 8px; color: #fff; font-size: 25px; line-height: 1.15; }
.hajj-hero-panel p { margin: 12px 0 0; color: rgba(255,255,255,.78); font-weight: 520; line-height: 1.6; }

.hajj-trust-section {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    width: min(1220px, 92vw);
    margin: -42px auto 78px;
    position: relative;
    z-index: 3;
}
.hajj-trust-section article {
    border: 1px solid var(--line);
    border-radius: 22px;
    padding: 24px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(11,36,82,.1);
}
.hajj-trust-section span { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 14px; background: #eaf4ff; font-size: 25px; }
.hajj-trust-section h3 { margin: 16px 0 8px; color: var(--blue-deep); font-size: 19px; }
.hajj-trust-section p { margin: 0; color: #58657a; font-weight: 520; line-height: 1.6; }

.hajj-flow-section,
.hajj-formulas-section { width: min(1220px, 92vw); margin: 0 auto 76px; }
.hajj-flow-line {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
}
.hajj-flow-line article {
    position: relative;
    border: 1px solid #dfe8f3;
    border-radius: 22px;
    padding: 22px;
    background: linear-gradient(180deg, #fff, #f8fbff);
    box-shadow: 0 14px 34px rgba(11,36,82,.08);
}
.hajj-flow-line b { color: #64c7bf; font-size: 13px; letter-spacing: .12em; }
.hajj-flow-line h3 { margin: 12px 0 8px; color: #07142a; font-size: 20px; }
.hajj-flow-line p { margin: 0; color: #58657a; font-weight: 520; line-height: 1.55; }

.hajj-formula-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}
.hajj-formula-cards article {
    border: 1px solid #dfe8f3;
    border-radius: 26px;
    padding: 28px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(11,36,82,.09);
}
.hajj-formula-cards article.highlight {
    border-color: rgba(15,95,159,.18);
    background: linear-gradient(180deg, #ffffff, #eef8ff);
    transform: translateY(-8px);
}
.hajj-formula-cards p { margin: 0 0 8px; color: #64c7bf; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.hajj-formula-cards h3 { margin: 0 0 18px; color: var(--blue-deep); font-size: clamp(26px, 3vw, 36px); line-height: 1; }
.hajj-formula-cards ul { display: grid; gap: 10px; margin: 0 0 24px; padding: 0; list-style: none; color: #475467; font-weight: 560; }
.hajj-formula-cards li::before { content: '✓'; margin-right: 9px; color: #16b852; font-weight: 900; }
.hajj-formula-cards a { display: inline-flex; min-height: 46px; align-items: center; border-radius: 13px; padding: 0 18px; color: #fff; background: var(--blue); font-weight: 820; }

.hajj-included-section {
    display: grid;
    grid-template-columns: minmax(0, .78fr) minmax(0, 1.1fr);
    gap: 34px;
    align-items: center;
    margin: 0 0 78px;
    padding: 70px clamp(24px, 6vw, 108px);
    background: #0b3159;
    color: #fff;
}
.hajj-included-section h2 { margin: 0; max-width: 560px; font-size: clamp(34px, 4.6vw, 58px); line-height: 1.04; letter-spacing: -.045em; }
.hajj-included-section p:not(.section-kicker) { max-width: 560px; color: rgba(255,255,255,.78); font-size: 18px; font-weight: 500; line-height: 1.7; }
.hajj-included-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.hajj-included-grid span { display: grid; gap: 10px; min-height: 116px; place-items: center; border: 1px solid rgba(255,255,255,.14); border-radius: 20px; padding: 16px; background: rgba(255,255,255,.08); font-size: 28px; }
.hajj-included-grid b { color: #fff; font-size: 14px; }

.hajj-preform-modern {
    display: grid;
    grid-template-columns: minmax(0, .74fr) minmax(420px, 1fr);
    gap: 26px;
    align-items: start;
    width: min(1220px, 92vw);
    margin: 0 auto 78px;
    padding: 0;
    background: transparent;
}
.hajj-preform-intro,
.hajj-preform-modern .hajj-preform-box {
    border: 1px solid var(--line);
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(11,36,82,.08);
}
.hajj-preform-intro { padding: clamp(28px, 4vw, 42px); }
.hajj-preform-intro h2 { margin: 0; color: var(--blue-deep); font-size: clamp(34px, 4vw, 52px); line-height: 1.05; letter-spacing: -.04em; }
.hajj-preform-intro p:not(.section-kicker) { color: #58657a; font-weight: 520; line-height: 1.7; }
.hajj-contact-note { display: grid; gap: 8px; margin-top: 24px; border-radius: 18px; padding: 18px; background: #eef8ff; }
.hajj-contact-note strong { color: #07142a; }
.hajj-contact-note a { color: var(--blue); font-weight: 850; }
.hajj-preform-modern .hajj-preform-box { padding: clamp(24px, 3vw, 34px); }
.hajj-preform-modern form { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.hajj-preform-modern form label { color: #344054; font-weight: 720; }
.hajj-preform-modern form input,
.hajj-preform-modern form select {
    border: 1px solid #cfd6e0;
    border-radius: 10px;
    padding: 12px 13px;
    color: var(--ink);
    background: #fff;
}
.hajj-preform-modern .hajj-consent { grid-column: 1 / -1; color: #475467; }
.hajj-preform-modern .hajj-consent input { width: auto; }
.hajj-preform-modern button { grid-column: 1 / -1; min-height: 52px; border: 0; border-radius: 14px; color: #fff; background: var(--blue); font-weight: 850; cursor: pointer; }

.hajj-faq-modern { padding: 66px 5vw 78px; background: #eef5fb; }
.hajj-faq-modern .hajj-faq-grid { max-width: 980px; margin: 0 auto; }

@media (max-width: 1050px) {
    .hajj-landing-hero,
    .hajj-included-section,
    .hajj-preform-modern { grid-template-columns: 1fr; }
    .hajj-trust-section { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .hajj-flow-line { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .hajj-formula-cards { grid-template-columns: 1fr; }
    .hajj-formula-cards article.highlight { transform: none; }
    .hajj-included-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 720px) {
    .hajj-landing-hero { min-height: 560px; padding: 52px 5vw 58px; }
    .hajj-landing-copy h1 { font-size: clamp(36px, 10vw, 48px); }
    .hajj-trust-section,
    .hajj-flow-line,
    .hajj-included-grid,
    .hajj-preform-modern form { grid-template-columns: 1fr; }
    .hajj-trust-section { margin-top: -26px; }
    .hajj-included-section { padding: 52px 5vw; }
}

/* --- Hajj restored useful sections --- */
.hajj-formula-cards-four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.hajj-formula-cards-four article {
    min-height: 280px;
    border: 0;
    color: #fff;
    box-shadow: 0 18px 42px rgba(11,36,82,.12);
}
.hajj-formula-cards-four article.comfort { background: #48966a; }
.hajj-formula-cards-four article.gold-shifting { background: #b0a063; }
.hajj-formula-cards-four article.gold { background: #a49338; }
.hajj-formula-cards-four article.platinum { background: #a979b7; }
.hajj-formula-cards-four article.highlight { transform: none; }
.hajj-formula-cards-four h3 {
    color: #fff;
    font-size: clamp(32px, 4vw, 46px);
    text-transform: uppercase;
    letter-spacing: -.035em;
}
.hajj-formula-cards-four ul {
    color: rgba(255,255,255,.94);
    font-size: 18px;
    font-weight: 620;
}
.hajj-formula-cards-four li::before { color: #fff; }
.hajj-formula-cards-four a {
    margin-top: auto;
    color: #07142a;
    background: rgba(255,255,255,.9);
}
.hajj-zones-modern,
.hajj-journey-modern {
    width: min(1220px, 92vw);
    margin: 0 auto 78px;
}
.hajj-zones-modern {
    display: grid;
    grid-template-columns: minmax(0, .82fr) minmax(420px, 1fr);
    gap: 28px;
    align-items: stretch;
}
.hajj-zones-copy,
.hajj-zone-map-card {
    border: 1px solid var(--line);
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(11,36,82,.08);
}
.hajj-zones-copy { padding: clamp(26px, 4vw, 42px); }
.hajj-zones-copy h2 { margin: 0; color: var(--blue-deep); font-size: clamp(34px, 4vw, 52px); line-height: 1.05; letter-spacing: -.04em; }
.hajj-zones-copy > p:not(.section-kicker) { color: #58657a; font-weight: 520; line-height: 1.7; }
.hajj-zone-list { display: grid; gap: 10px; margin-top: 22px; }
.hajj-zone-list details { border: 1px solid #dfe8f3; border-radius: 16px; padding: 14px 16px; background: #f8fbff; }
.hajj-zone-list summary { color: #07142a; font-weight: 850; cursor: pointer; }
.hajj-zone-list p { margin: 10px 0 0; color: #58657a; font-weight: 520; line-height: 1.6; }
.hajj-zone-map-card { display: grid; place-items: center; padding: 24px; }
.hajj-zone-map-card img { width: 100%; max-height: 440px; object-fit: contain; }
.hajj-journey-modern {
    border: 1px solid var(--line);
    border-radius: 28px;
    padding: clamp(28px, 4vw, 46px);
    background: #fff;
    box-shadow: 0 18px 42px rgba(11,36,82,.08);
}
.hajj-journey-modern-grid {
    display: grid;
    grid-template-columns: minmax(0, .82fr) minmax(380px, 1fr);
    gap: 32px;
    align-items: center;
}
.hajj-journey-modern ol {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.hajj-journey-modern li {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    color: #24364f;
    font-weight: 620;
}
.hajj-journey-modern li span {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #ff9800;
    font-weight: 900;
}
.hajj-journey-modern-visual img { width: 100%; max-height: 620px; object-fit: contain; }
@media (max-width: 1050px) {
    .hajj-formula-cards-four,
    .hajj-zones-modern,
    .hajj-journey-modern-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    .hajj-formula-cards-four h3 { font-size: 30px; }
    .hajj-formula-cards-four ul { font-size: 16px; }
    .hajj-zone-map-card { padding: 14px; }
    .hajj-journey-modern li { grid-template-columns: 36px minmax(0, 1fr); font-size: 14px; }
    .hajj-journey-modern li span { width: 36px; height: 36px; }
}

/* --- Hajj alternative 2: editorial premium layout --- */
.hajj-landing-hero {
    grid-template-columns: minmax(0, .78fr) minmax(360px, .58fr);
    min-height: 560px;
    padding-top: clamp(64px, 8vw, 104px);
    padding-bottom: clamp(48px, 6vw, 72px);
    background-position: center 42%;
}
.hajj-landing-copy h1 {
    max-width: 690px;
    font-size: clamp(42px, 5.4vw, 68px);
}
.hajj-hero-panel {
    align-self: center;
    border-radius: 18px;
    background: rgba(255,255,255,.92);
    color: #07142a;
    backdrop-filter: blur(10px);
}
.hajj-hero-panel span { color: var(--teal); }
.hajj-hero-panel strong { color: var(--blue-deep); }
.hajj-hero-panel p { color: #58657a; }
.hajj-trust-section {
    margin-top: 0;
    margin-bottom: 64px;
    padding-top: 28px;
}
.hajj-trust-section article {
    border-radius: 18px;
    box-shadow: none;
    border-color: #e4ebf4;
}
.hajj-flow-section {
    display: grid;
    grid-template-columns: minmax(300px, .52fr) minmax(0, 1fr);
    gap: 34px;
    align-items: start;
    border: 1px solid var(--line);
    border-radius: 30px;
    padding: clamp(28px, 4vw, 48px);
    background: #fff;
    box-shadow: 0 18px 42px rgba(11,36,82,.08);
}
.hajj-flow-section .section-title.centered {
    margin: 0;
    text-align: left;
}
.hajj-flow-section .section-title.centered p {
    margin-right: 0;
    margin-left: 0;
}
.hajj-flow-line {
    grid-template-columns: 1fr;
    gap: 0;
}
.hajj-flow-line article {
    display: grid;
    grid-template-columns: 70px minmax(0,1fr);
    gap: 18px;
    border: 0;
    border-radius: 0;
    padding: 0 0 22px;
    background: transparent;
    box-shadow: none;
}
.hajj-flow-line article:not(:last-child) { border-bottom: 1px solid #e6edf5; margin-bottom: 22px; }
.hajj-flow-line b {
    display: grid;
    width: 54px;
    height: 54px;
    place-items: center;
    border-radius: 50%;
    color: var(--blue);
    background: #eaf4ff;
    letter-spacing: 0;
}
.hajj-flow-line h3 { margin: 0 0 4px; }
.hajj-formulas-section {
    width: min(1280px, 92vw);
    border-radius: 30px;
    padding: clamp(30px, 4vw, 50px);
    background: #202733;
    color: #fff;
}
.hajj-formulas-section .section-title.centered h2 { color: #fff; }
.hajj-formulas-section .section-title.centered p { color: rgba(255,255,255,.72); }
.hajj-formula-cards-four {
    gap: 0;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 24px;
    overflow: hidden;
    background: rgba(255,255,255,.04);
}
.hajj-formula-cards-four article {
    min-height: 0;
    border-radius: 0;
    border: 0;
    padding: 30px;
    background: transparent !important;
    box-shadow: none;
}
.hajj-formula-cards-four article:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.12); }
.hajj-formula-cards-four article:nth-child(1),
.hajj-formula-cards-four article:nth-child(2) { border-bottom: 1px solid rgba(255,255,255,.12); }
.hajj-formula-cards-four h3 {
    margin-bottom: 18px;
    font-size: clamp(26px, 3vw, 34px);
    letter-spacing: -.03em;
}
.hajj-formula-cards-four ul {
    color: rgba(255,255,255,.82);
    font-size: 16px;
    font-weight: 520;
}
.hajj-formula-cards-four a {
    margin-top: 22px;
    color: #fff;
    background: rgba(255,255,255,.12);
}
.hajj-zones-modern {
    grid-template-columns: minmax(0, .72fr) minmax(420px, 1fr);
    align-items: center;
}
.hajj-zones-copy,
.hajj-zone-map-card,
.hajj-journey-modern {
    box-shadow: none;
}
.hajj-zones-copy {
    border-radius: 24px;
    background: #f8fbff;
}
.hajj-zone-map-card { border-radius: 24px; }
.hajj-journey-modern {
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
}
.hajj-journey-modern .section-title.centered {
    width: min(860px, 92vw);
    margin: 0 auto 30px;
}
.hajj-journey-modern-grid {
    border: 1px solid var(--line);
    border-radius: 28px;
    padding: clamp(26px, 4vw, 42px);
    background: #fff;
    box-shadow: 0 18px 42px rgba(11,36,82,.08);
}
.hajj-journey-modern li {
    font-weight: 560;
    color: #344054;
}
.hajj-journey-modern li span {
    background: var(--blue);
}
.hajj-included-section {
    grid-template-columns: minmax(0, .7fr) minmax(0, 1fr);
    background: linear-gradient(135deg, #f8fbff, #eef8ff);
    color: #07142a;
}
.hajj-included-section h2 { color: var(--blue-deep); }
.hajj-included-section p:not(.section-kicker) { color: #58657a; }
.hajj-included-grid span {
    border-color: #dfe8f3;
    background: #fff;
    color: #07142a;
}
.hajj-included-grid b { color: #07142a; }
@media (max-width: 1050px) {
    .hajj-flow-section,
    .hajj-landing-hero,
    .hajj-zones-modern { grid-template-columns: 1fr; }
    .hajj-formula-cards-four article:nth-child(odd) { border-right: 0; }
    .hajj-formula-cards-four article:not(:last-child) { border-bottom: 1px solid rgba(255,255,255,.12); }
}
@media (max-width: 720px) {
    .hajj-flow-line article { grid-template-columns: 52px minmax(0,1fr); }
    .hajj-flow-line b { width: 44px; height: 44px; }
    .hajj-formulas-section { padding: 28px 18px; }
    .hajj-formula-cards-four article { padding: 24px 18px; }
}

/* --- Revert Hajj from editorial alt to previous restored version --- */
.hajj-landing-hero {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
    min-height: 620px;
    padding: clamp(70px, 9vw, 128px) clamp(24px, 6vw, 108px) clamp(54px, 7vw, 86px);
    background-position: center;
}
.hajj-landing-copy h1 {
    max-width: 760px;
    font-size: clamp(44px, 6vw, 78px);
}
.hajj-hero-panel {
    align-self: end;
    border-radius: 24px;
    background: rgba(255,255,255,.13);
    color: #fff;
    backdrop-filter: blur(12px);
}
.hajj-hero-panel span { color: #9fe1dc; }
.hajj-hero-panel strong { color: #fff; }
.hajj-hero-panel p { color: rgba(255,255,255,.78); }
.hajj-trust-section {
    margin-top: -42px;
    margin-bottom: 78px;
    padding-top: 0;
}
.hajj-trust-section article {
    border-radius: 22px;
    box-shadow: 0 18px 42px rgba(11,36,82,.1);
    border-color: var(--line);
}
.hajj-flow-section {
    display: block;
    width: min(1220px, 92vw);
    margin: 0 auto 76px;
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
    box-shadow: none;
}
.hajj-flow-section .section-title.centered {
    margin-bottom: 28px;
    text-align: center;
}
.hajj-flow-section .section-title.centered p {
    margin-right: auto;
    margin-left: auto;
}
.hajj-flow-line {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
}
.hajj-flow-line article {
    display: block;
    border: 1px solid #dfe8f3;
    border-radius: 22px;
    padding: 22px;
    background: linear-gradient(180deg, #fff, #f8fbff);
    box-shadow: 0 14px 34px rgba(11,36,82,.08);
    margin-bottom: 0;
}
.hajj-flow-line article:not(:last-child) { border-bottom: 1px solid #dfe8f3; margin-bottom: 0; }
.hajj-flow-line b {
    display: inline;
    width: auto;
    height: auto;
    place-items: initial;
    border-radius: 0;
    color: #64c7bf;
    background: transparent;
    letter-spacing: .12em;
}
.hajj-flow-line h3 { margin: 12px 0 8px; }
.hajj-formulas-section {
    width: min(1220px, 92vw);
    margin: 0 auto 76px;
    border-radius: 0;
    padding: 0;
    background: transparent;
    color: inherit;
}
.hajj-formulas-section .section-title.centered h2 { color: var(--blue-deep); }
.hajj-formulas-section .section-title.centered p { color: #475467; }
.hajj-formula-cards-four {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    border: 0;
    border-radius: 0;
    overflow: visible;
    background: transparent;
}
.hajj-formula-cards-four article {
    min-height: 280px;
    border: 0;
    border-radius: 26px;
    padding: 28px;
    color: #fff;
    box-shadow: 0 18px 42px rgba(11,36,82,.12);
}
.hajj-formula-cards-four article.comfort { background: #48966a !important; }
.hajj-formula-cards-four article.gold-shifting { background: #b0a063 !important; }
.hajj-formula-cards-four article.gold { background: #a49338 !important; }
.hajj-formula-cards-four article.platinum { background: #a979b7 !important; }
.hajj-formula-cards-four article:nth-child(odd),
.hajj-formula-cards-four article:nth-child(1),
.hajj-formula-cards-four article:nth-child(2) { border: 0; }
.hajj-formula-cards-four h3 {
    color: #fff;
    font-size: clamp(32px, 4vw, 46px);
    text-transform: uppercase;
    letter-spacing: -.035em;
}
.hajj-formula-cards-four ul {
    color: rgba(255,255,255,.94);
    font-size: 18px;
    font-weight: 620;
}
.hajj-formula-cards-four a {
    color: #07142a;
    background: rgba(255,255,255,.9);
}
.hajj-zones-modern {
    grid-template-columns: minmax(0, .82fr) minmax(420px, 1fr);
    align-items: stretch;
}
.hajj-zones-copy,
.hajj-zone-map-card,
.hajj-journey-modern {
    box-shadow: 0 18px 42px rgba(11,36,82,.08);
}
.hajj-zones-copy {
    border-radius: 26px;
    background: #fff;
}
.hajj-zone-map-card { border-radius: 26px; }
.hajj-journey-modern {
    border: 1px solid var(--line);
    border-radius: 28px;
    padding: clamp(28px, 4vw, 46px);
    background: #fff;
}
.hajj-journey-modern .section-title.centered {
    width: auto;
    margin: 0 0 30px;
}
.hajj-journey-modern-grid {
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
    box-shadow: none;
}
.hajj-journey-modern li {
    font-weight: 620;
    color: #24364f;
}
.hajj-journey-modern li span { background: #ff9800; }
.hajj-included-section {
    grid-template-columns: minmax(0, .78fr) minmax(0, 1.1fr);
    background: #0b3159;
    color: #fff;
}
.hajj-included-section h2 { color: #fff; }
.hajj-included-section p:not(.section-kicker) { color: rgba(255,255,255,.78); }
.hajj-included-grid span {
    border-color: rgba(255,255,255,.14);
    background: rgba(255,255,255,.08);
    color: #fff;
}
.hajj-included-grid b { color: #fff; }
@media (max-width: 1050px) {
    .hajj-flow-line,
    .hajj-formula-cards-four,
    .hajj-landing-hero,
    .hajj-zones-modern { grid-template-columns: 1fr; }
}

/* --- Hajj requested fixes: hero award, zones stability, short form --- */
.hajj-landing-hero {
    grid-template-columns: minmax(0, 1fr) !important;
    min-height: 610px;
}
.hajj-landing-copy { max-width: 980px; }
.hajj-landing-copy h1 { max-width: 920px; }
.hajj-award-line {
    max-width: 820px !important;
    border-left: 5px solid var(--teal);
    padding-left: 20px;
    color: #fff !important;
    font-size: clamp(20px, 2.25vw, 29px) !important;
    font-weight: 850 !important;
    line-height: 1.45 !important;
    text-shadow: 0 4px 16px rgba(0,0,0,.28);
}
.hajj-hero-panel { display: none !important; }
.hajj-zones-modern { align-items: start !important; }
.hajj-zones-copy { min-height: 650px; }
.hajj-zone-map-card {
    height: 650px;
    min-height: 650px;
    background: #111827 !important;
    overflow: hidden;
}
.hajj-zone-map-card img {
    max-height: 590px;
    filter: brightness(0) invert(1) contrast(1.05);
    opacity: .92;
}
.hajj-zone-list details { min-height: 66px; transition: none; }
.hajj-zone-list details[open] { min-height: 136px; }
.hajj-included-section h2 { max-width: 680px; }
.hajj-preform-modern {
    grid-template-columns: minmax(320px, .82fr) minmax(420px, .9fr);
    overflow: visible;
}
.hajj-preform-modern form { grid-template-columns: repeat(2, minmax(0,1fr)); }
.hajj-preform-modern .hajj-preform-box { overflow: hidden; }
.hajj-preform-modern button { justify-self: stretch; }
@media (max-width: 1050px) {
    .hajj-zones-copy,
    .hajj-zone-map-card { min-height: auto; height: auto; }
    .hajj-zone-map-card img { max-height: 420px; }
    .hajj-preform-modern { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    .hajj-award-line { font-size: 18px !important; }
    .hajj-preform-modern form { grid-template-columns: 1fr; }
}

/* --- Hajj final layout corrections --- */
.hajj-preform-modern {
    width: min(100% - 10vw, 1520px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    grid-template-columns: minmax(300px, .72fr) minmax(440px, 1fr) !important;
    box-sizing: border-box;
}
.hajj-preform-modern .hajj-preform-intro,
.hajj-preform-modern .hajj-preform-box { min-width: 0; }
.hajj-preform-modern form label { min-width: 0; }
.hajj-preform-modern form input {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}
.hajj-preform-modern .hajj-preform-box {
    max-width: none !important;
    width: 100%;
}
.hajj-zones-modern {
    width: min(100% - 10vw, 1520px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    grid-template-columns: minmax(420px, .86fr) minmax(520px, 1.14fr) !important;
}
.hajj-zones-copy,
.hajj-zone-map-card {
    min-height: 650px !important;
    height: 650px !important;
    box-sizing: border-box;
}
.hajj-zone-map-card {
    background: radial-gradient(circle at 50% 45%, #1f2937 0%, #111827 62%, #070b12 100%) !important;
}
.hajj-zone-map-card img {
    width: 92% !important;
    height: 92% !important;
    object-fit: contain !important;
    filter: brightness(0) invert(1) contrast(1.08) drop-shadow(0 16px 24px rgba(0,0,0,.25)) !important;
    opacity: .94 !important;
}
.hajj-zone-list details,
.hajj-zone-list details[open] {
    box-sizing: border-box;
}
@media (max-width: 1150px) {
    .hajj-zones-modern,
    .hajj-preform-modern { grid-template-columns: 1fr !important; }
    .hajj-zones-copy,
    .hajj-zone-map-card { min-height: auto !important; height: auto !important; }
    .hajj-zone-map-card { aspect-ratio: 1.12 / 1; }
}
@media (max-width: 760px) {
    .hajj-preform-modern,
    .hajj-zones-modern { width: min(100% - 32px, 1520px) !important; }
    .hajj-preform-modern form { grid-template-columns: 1fr !important; }
}

/* --- Hajj hero title and zones accordion fix --- */
@media (min-width: 1100px) {
    .hajj-landing-copy h1 {
        font-size: clamp(56px, 5.15vw, 86px) !important;
        line-height: .98 !important;
        max-width: 1040px !important;
        letter-spacing: -.055em !important;
    }
}
.hajj-zones-modern {
    align-items: stretch !important;
}
.hajj-zones-copy {
    height: auto !important;
    min-height: 650px !important;
    overflow: visible !important;
}
.hajj-zone-map-card {
    position: sticky;
    top: 118px;
    align-self: start;
}
.hajj-zone-list {
    grid-auto-rows: auto;
}
.hajj-zone-list details,
.hajj-zone-list details[open] {
    min-height: 0 !important;
    height: auto !important;
}
.hajj-zone-list summary {
    list-style-position: outside;
}
.hajj-zone-list p {
    max-width: 98%;
}
@media (max-width: 1150px) {
    .hajj-zone-map-card { position: static; }
}
@media (max-width: 720px) {
    .hajj-landing-copy h1 {
        font-size: clamp(38px, 10vw, 58px) !important;
        line-height: 1.02 !important;
    }
}

/* --- Hajj formulas, services and detail pages --- */
@media (min-width: 1100px) {
    .hajj-landing-copy { max-width: 1180px !important; }
    .hajj-landing-copy h1 {
        max-width: 1120px !important;
        font-size: clamp(54px, 4.65vw, 78px) !important;
        line-height: .99 !important;
    }
}

.hajj-formulas-section {
    width: min(1320px, 92vw) !important;
    padding: 0 !important;
    background: transparent !important;
    scroll-margin-top: 130px;
}
.hajj-formulas-section .section-title.centered { max-width: 820px; margin-right: auto; margin-left: auto; }
.hajj-formula-cards-four {
    gap: 22px !important;
    border: 0 !important;
    overflow: visible !important;
    background: transparent !important;
}
.hajj-formula-cards-four article {
    --package-accent: #237b5a;
    position: relative;
    display: flex;
    min-height: 390px !important;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #dfe7ef !important;
    border-radius: 26px !important;
    padding: 30px !important;
    color: #15243a !important;
    background: linear-gradient(145deg, #fff 0%, #f9fbfd 100%) !important;
    box-shadow: 0 18px 45px rgba(17, 42, 76, .09) !important;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.hajj-formula-cards-four article::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 7px;
    background: var(--package-accent);
    content: '';
}
.hajj-formula-cards-four article:hover {
    transform: translateY(-6px);
    border-color: color-mix(in srgb, var(--package-accent) 28%, #dfe7ef) !important;
    box-shadow: 0 26px 60px rgba(17, 42, 76, .15) !important;
}
.hajj-formula-cards-four article.comfort { --package-accent: #3f9369; }
.hajj-formula-cards-four article.gold-shifting { --package-accent: #a58c3f; }
.hajj-formula-cards-four article.gold { --package-accent: #8b701c; }
.hajj-formula-cards-four article.platinum { --package-accent: #875a9a; }
.hajj-formula-card-head { display: flex; gap: 12px; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.hajj-formula-card-head > span {
    color: var(--package-accent);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.hajj-formula-card-head > b {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 8px 11px;
    color: #334155;
    background: #edf3f8;
    font-size: 12px;
    font-weight: 750;
}
.hajj-formula-cards-four h3 {
    margin: 0 0 22px !important;
    color: #083d74 !important;
    font-size: clamp(28px, 2.6vw, 38px) !important;
    font-weight: 760 !important;
    line-height: 1.06 !important;
    letter-spacing: -.035em !important;
    text-transform: none !important;
}
.hajj-formula-cards-four ul {
    display: grid;
    gap: 11px;
    margin: 0 0 28px;
    color: #4d5d72 !important;
    font-size: 16px !important;
    font-weight: 520 !important;
    line-height: 1.45;
}
.hajj-formula-cards-four li { position: relative; padding-left: 27px; }
.hajj-formula-cards-four li::before {
    position: absolute;
    top: .05em;
    left: 0;
    display: grid;
    width: 19px;
    height: 19px;
    place-items: center;
    border-radius: 50%;
    color: #fff !important;
    background: var(--package-accent);
    font-size: 11px;
}
.hajj-formula-actions { display: flex; gap: 10px; align-items: center; margin-top: auto; }
.hajj-formula-cards-four .hajj-formula-actions a {
    display: inline-flex;
    min-height: 48px;
    margin: 0 !important;
    align-items: center;
    justify-content: center;
    border-radius: 13px;
    padding: 0 17px;
    font-size: 15px;
    font-weight: 760;
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.hajj-formula-cards-four .hajj-formula-detail {
    flex: 1 1 auto;
    gap: 12px;
    color: #fff !important;
    background: #0b5fa6 !important;
    box-shadow: 0 10px 20px rgba(11, 95, 166, .18);
}
.hajj-formula-detail span { transition: transform .2s ease; }
.hajj-formula-detail:hover span { transform: translateX(4px); }
.hajj-formula-cards-four .hajj-formula-whatsapp {
    flex: 0 0 auto;
    gap: 8px;
    color: #087a36 !important;
    background: #e9f9ef !important;
}
.hajj-formula-whatsapp svg { width: 21px; height: 21px; fill: currentColor; }
.hajj-formula-cards-four .hajj-formula-actions a:hover { transform: translateY(-2px); box-shadow: 0 13px 25px rgba(17, 42, 76, .16); }

.hajj-included-section {
    gap: clamp(40px, 6vw, 92px) !important;
    margin-bottom: 88px !important;
    padding-top: 92px !important;
    padding-bottom: 92px !important;
    background: linear-gradient(120deg, #082e57, #0d4778) !important;
}
.hajj-included-section > div:first-child { max-width: 610px; }
.hajj-included-section h2 { font-size: clamp(40px, 4.4vw, 64px) !important; }
.hajj-included-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 15px !important; }
.hajj-included-grid article {
    display: flex;
    min-height: 116px;
    gap: 17px;
    align-items: center;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 20px;
    padding: 20px;
    background: rgba(255,255,255,.075);
    transition: transform .22s ease, background-color .22s ease, border-color .22s ease;
}
.hajj-included-grid article:hover {
    transform: translateY(-5px);
    border-color: rgba(107, 217, 207, .68);
    background: rgba(255,255,255,.14);
}
.hajj-included-grid article > span {
    display: grid;
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    place-items: center;
    border-radius: 15px;
    background: rgba(255,255,255,.12);
    font-size: 27px;
}
.hajj-included-grid article > div { display: grid; gap: 5px; }
.hajj-included-grid b { color: #fff; font-size: 17px; font-weight: 720; }
.hajj-included-grid small { color: rgba(255,255,255,.67); font-size: 13px; font-weight: 520; }

.hajj-package-detail-hero {
    position: relative;
    min-height: 610px;
    padding: clamp(76px, 9vw, 128px) clamp(24px, 7vw, 128px) clamp(62px, 7vw, 92px);
    color: #fff;
    background-position: center;
    background-size: cover;
}
.hajj-package-detail-copy { width: min(850px, 100%); }
.hajj-back-link { display: inline-flex; margin-bottom: 34px; color: rgba(255,255,255,.78); font-weight: 650; }
.hajj-back-link:hover { color: #fff; }
.hajj-package-detail-copy h1 { margin: 8px 0 18px; font-size: clamp(48px, 6.5vw, 92px); line-height: .95; letter-spacing: -.055em; }
.hajj-package-detail-copy > p:not(.section-kicker) { max-width: 760px; color: rgba(255,255,255,.84); font-size: clamp(18px, 2vw, 22px); line-height: 1.6; }
.hajj-package-detail-facts { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.hajj-package-detail-facts span { display: grid; min-width: 180px; gap: 4px; border: 1px solid rgba(255,255,255,.2); border-radius: 15px; padding: 14px 17px; background: rgba(6,30,57,.42); backdrop-filter: blur(8px); }
.hajj-package-detail-facts small { color: #74d8cf; font-size: 11px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.hajj-package-detail-facts b { color: #fff; font-size: 15px; font-weight: 680; }
.hajj-package-detail-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.hajj-detail-primary,
.hajj-detail-whatsapp { display: inline-flex; min-height: 54px; gap: 9px; align-items: center; justify-content: center; border-radius: 14px; padding: 0 22px; font-weight: 780; transition: transform .2s ease, box-shadow .2s ease; }
.hajj-detail-primary { color: #fff; background: #146eb4; box-shadow: 0 12px 26px rgba(0,0,0,.2); }
.hajj-detail-whatsapp { color: #fff; background: #15bd54; }
.hajj-detail-whatsapp svg { width: 22px; height: 22px; fill: currentColor; }
.hajj-detail-primary:hover,
.hajj-detail-whatsapp:hover { transform: translateY(-3px); box-shadow: 0 16px 30px rgba(0,0,0,.25); }
.hajj-package-overview,
.hajj-package-stays,
.hajj-package-journey,
.hajj-package-contact { width: min(1280px, 92vw); margin: 82px auto; }
.hajj-package-overview { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(320px,.75fr); gap: 24px; align-items: stretch; }
.hajj-package-includes,
.hajj-package-advice { border: 1px solid #dfe7ef; border-radius: 28px; padding: clamp(28px, 4vw, 46px); background: #fff; box-shadow: 0 18px 45px rgba(17,42,76,.08); }
.hajj-package-includes h2 { margin: 0 0 26px; color: #083d74; font-size: clamp(34px, 4vw, 50px); letter-spacing: -.04em; }
.hajj-package-checklist { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.hajj-package-checklist p { display: flex; gap: 11px; align-items: flex-start; margin: 0; border-radius: 16px; padding: 16px; color: #425269; background: #f5f8fb; font-weight: 580; line-height: 1.45; }
.hajj-package-checklist span { display: grid; width: 22px; height: 22px; flex: 0 0 22px; place-items: center; border-radius: 50%; color: #fff; background: #299262; font-size: 12px; }
.hajj-package-advice { color: #fff; background: linear-gradient(145deg, #0a4f88, #072f58); }
.hajj-package-advice > span { color: #73d7cf; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.hajj-package-advice h3 { margin: 18px 0 14px; color: #fff; font-size: 30px; line-height: 1.1; }
.hajj-package-advice p { color: rgba(255,255,255,.76); line-height: 1.65; }
.hajj-package-advice a { display: inline-flex; min-height: 48px; margin-top: 12px; align-items: center; border-radius: 13px; padding: 0 18px; color: #083d74; background: #fff; font-weight: 760; }
.hajj-package-stay-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.hajj-package-stay-grid article { display: flex; min-height: 235px; gap: 22px; align-items: flex-start; border: 1px solid #dfe7ef; border-radius: 26px; padding: 32px; background: linear-gradient(145deg,#fff,#f4f8fb); }
.hajj-stay-icon { display: grid; width: 58px; height: 58px; flex: 0 0 58px; place-items: center; border-radius: 18px; background: #e7f3ff; font-size: 29px; }
.hajj-package-stay-grid span { color: #55bdb4; font-size: 12px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.hajj-package-stay-grid h3 { margin: 10px 0 12px; color: #083d74; font-size: 26px; }
.hajj-package-stay-grid p { margin: 0; color: #536176; line-height: 1.65; }
.hajj-package-journey { border-radius: 30px; padding: clamp(32px,5vw,60px); background: #eef5fb; }
.hajj-package-journey-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.hajj-package-journey-grid article { border-radius: 20px; padding: 24px; background: #fff; box-shadow: 0 12px 28px rgba(17,42,76,.06); }
.hajj-package-journey-grid b { display: block; color: #4fbcb3; font-size: 13px; letter-spacing: .1em; }
.hajj-package-journey-grid span { display: block; margin-top: 22px; color: #7a8899; font-size: 12px; font-weight: 700; text-transform: uppercase; }
.hajj-package-journey-grid h3 { margin: 6px 0 10px; color: #083d74; font-size: 22px; }
.hajj-package-journey-grid p { margin: 0; color: #59677a; line-height: 1.55; }
.hajj-package-contact { display: grid; grid-template-columns: minmax(300px,.75fr) minmax(420px,1fr); gap: 24px; align-items: stretch; }
.hajj-package-contact > div,
.hajj-package-contact form { border: 1px solid #dfe7ef; border-radius: 28px; padding: clamp(28px,4vw,44px); background: #fff; box-shadow: 0 18px 45px rgba(17,42,76,.08); }
.hajj-package-contact h2 { margin: 0 0 16px; color: #083d74; font-size: clamp(34px,4vw,50px); line-height: 1.04; letter-spacing: -.04em; }
.hajj-package-contact > div > p:not(.section-kicker) { color: #59677a; line-height: 1.65; }
.hajj-package-contact > div > a { display: inline-flex; min-height: 48px; gap: 9px; margin-top: 14px; align-items: center; border-radius: 13px; padding: 0 17px; color: #087a36; background: #e9f9ef; font-weight: 760; }
.hajj-package-contact > div > a svg { width: 21px; height: 21px; fill: currentColor; }
.hajj-package-contact form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; }
.hajj-package-contact label { color: #344054; font-weight: 700; }
.hajj-package-contact input { width: 100%; border: 1px solid #ccd7e3; border-radius: 11px; padding: 13px; background: #fff; box-sizing: border-box; }
.hajj-package-contact button { grid-column: 1/-1; min-height: 53px; border: 0; border-radius: 14px; color: #fff; background: #1267a8; font-weight: 800; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; }
.hajj-package-contact button:hover { transform: translateY(-2px); box-shadow: 0 12px 24px rgba(18,103,168,.22); }

@media (max-width: 900px) {
    .hajj-package-overview,
    .hajj-package-contact { grid-template-columns: 1fr; }
    .hajj-package-journey-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 720px) {
    .hajj-formula-actions { align-items: stretch; flex-direction: column; }
    .hajj-formula-cards-four .hajj-formula-actions a { width: 100%; }
    .hajj-included-grid,
    .hajj-package-checklist,
    .hajj-package-stay-grid,
    .hajj-package-journey-grid,
    .hajj-package-contact form { grid-template-columns: 1fr !important; }
    .hajj-package-detail-facts { display: grid; }
    .hajj-package-detail-facts span { min-width: 0; }
    .hajj-package-contact button { grid-column: auto; }
}

/* --- Hajj final visual polish --- */
.hajj-formula-cards-four article.comfort,
.hajj-formula-cards-four article.gold-shifting,
.hajj-formula-cards-four article.gold,
.hajj-formula-cards-four article.platinum {
    color: #15243a !important;
    background: linear-gradient(145deg, #ffffff 0%, #f7fafc 100%) !important;
}
.hajj-formula-cards-four article.comfort::before { background: #2d9366; }
.hajj-formula-cards-four article.gold-shifting::before { background: #b3933d; }
.hajj-formula-cards-four article.gold::before { background: #92751d; }
.hajj-formula-cards-four article.platinum::before { background: #875b99; }
.hajj-formula-cards-four article.comfort .hajj-formula-card-head > span { color: #238354; }
.hajj-formula-cards-four article.gold-shifting .hajj-formula-card-head > span { color: #977a24; }
.hajj-formula-cards-four article.gold .hajj-formula-card-head > span { color: #796014; }
.hajj-formula-cards-four article.platinum .hajj-formula-card-head > span { color: #765087; }
.hajj-formula-cards-four article.comfort li::before { background: #2d9366; }
.hajj-formula-cards-four article.gold-shifting li::before { background: #b3933d; }
.hajj-formula-cards-four article.gold li::before { background: #92751d; }
.hajj-formula-cards-four article.platinum li::before { background: #875b99; }

.hajj-included-section {
    position: relative;
    display: grid;
    grid-template-columns: minmax(285px, .72fr) minmax(0, 1.28fr) !important;
    gap: clamp(28px, 5vw, 72px) !important;
    margin: 0 0 88px !important;
    padding: clamp(38px, 6vw, 70px) max(5vw, 28px) !important;
    overflow: hidden;
    background: #eef4f8 !important;
    color: #102d4e !important;
}
.hajj-included-section::before {
    position: absolute;
    top: -160px;
    left: -100px;
    width: 430px;
    height: 430px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(78,190,181,.16), transparent 68%);
    content: '';
    pointer-events: none;
}
.hajj-included-section > div:first-child {
    position: relative;
    z-index: 1;
    align-self: stretch;
    border-radius: 25px;
    padding: clamp(28px, 4vw, 42px);
    background: linear-gradient(150deg, #0b3867, #0e5b8c);
    box-shadow: 0 18px 40px rgba(11,56,103,.18);
}
.hajj-included-section > div:first-child .section-kicker { color: #73d7cf; }
.hajj-included-section h2 {
    max-width: 470px !important;
    color: #fff !important;
    font-size: clamp(32px, 3.7vw, 54px) !important;
    line-height: 1.01 !important;
}
.hajj-included-section p:not(.section-kicker) {
    max-width: 470px;
    color: rgba(255,255,255,.76) !important;
    font-size: 16px !important;
    line-height: 1.65 !important;
}
.hajj-included-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    align-content: center;
    gap: 13px !important;
}
.hajj-included-grid article {
    min-height: 104px;
    border: 1px solid #dce7f0 !important;
    border-radius: 18px;
    background: rgba(255,255,255,.88) !important;
    box-shadow: 0 10px 24px rgba(17,42,76,.05);
}
.hajj-included-grid article:hover {
    border-color: #6bcfc5 !important;
    background: #fff !important;
    box-shadow: 0 16px 30px rgba(17,42,76,.1);
}
.hajj-included-grid article > span {
    width: 47px;
    height: 47px;
    flex-basis: 47px;
    background: #e8f4fb;
    font-size: 24px;
}
.hajj-included-grid article > div { gap: 4px; }
.hajj-included-grid b { color: #123f6e !important; font-size: 16px; }
.hajj-included-grid small { color: #77869a !important; font-size: 12px; }
@media (max-width: 1050px) {
    .hajj-included-section { grid-template-columns: 1fr !important; }
    .hajj-included-section > div:first-child { max-width: none; }
}
@media (max-width: 720px) {
    .hajj-included-grid { grid-template-columns: 1fr !important; }
}

/* Services inclus : panneau éditorial avec photo et lecture plus généreuse */
.hajj-included-section > div:first-child {
    display: flex;
    flex-direction: column;
}
.hajj-included-photo {
    position: relative;
    min-height: 205px;
    margin: auto 0 0;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 18px;
    background: #082e57;
}
.hajj-included-photo img {
    display: block;
    width: 100%;
    height: 205px;
    object-fit: cover;
    object-position: center 44%;
    opacity: .86;
}
.hajj-included-photo::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(4,37,72,.03), rgba(4,37,72,.72));
    content: '';
    pointer-events: none;
}
.hajj-included-photo figcaption {
    position: absolute;
    right: 18px;
    bottom: 15px;
    left: 18px;
    z-index: 1;
    color: rgba(255,255,255,.9);
    font-size: 13px;
    font-weight: 650;
    line-height: 1.35;
}
.hajj-included-grid article { min-height: 122px; }
.hajj-included-grid article > span {
    width: 56px;
    height: 56px;
    flex-basis: 56px;
    font-size: 29px;
}
.hajj-included-grid b { font-size: 19px !important; }
.hajj-included-grid small { font-size: 14px !important; }
@media (max-width: 1050px) {
    .hajj-included-photo { margin-top: 28px; }
}

/* Capture de demande avant la comparaison détaillée des forfaits */
.hajj-quick-lead {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(470px,.92fr);
    gap: 34px;
    align-items: center;
    width: min(1180px, 92vw);
    margin: -24px auto 78px;
    border: 1px solid #dce8ef;
    border-radius: 26px;
    padding: clamp(26px,4vw,42px);
    background: linear-gradient(135deg, #f8fcfd, #edf6f8);
    box-shadow: 0 16px 38px rgba(15,59,94,.07);
}
.hajj-quick-lead h2 { margin: 0; color: #0b467d; font-size: clamp(30px,3.4vw,45px); line-height: 1.04; letter-spacing: -.04em; }
.hajj-quick-lead p:not(.section-kicker) { max-width: 620px; margin: 12px 0 0; color: #5c6d80; line-height: 1.62; }
.hajj-quick-lead form { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.25fr) auto; gap: 10px; align-items: end; }
.hajj-quick-lead label { display: grid; gap: 6px; color: #334155; font-size: 13px; font-weight: 720; }
.hajj-quick-lead input { min-width: 0; border: 1px solid #cfdeea; border-radius: 11px; padding: 13px; color: #132d4e; background: #fff; }
.hajj-quick-lead button { min-height: 46px; border: 0; border-radius: 12px; padding: 0 17px; color: #fff; background: #0c68ab; font-weight: 780; cursor: pointer; white-space: nowrap; transition: transform .2s ease, box-shadow .2s ease; }
.hajj-quick-lead button:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(12,104,171,.22); }

/* Icônes vectorielles centrées sur une grille fixe */
.hajj-included-grid article > .hajj-service-icon {
    display: grid !important;
    width: 62px !important;
    height: 62px !important;
    flex: 0 0 62px !important;
    place-items: center !important;
    box-sizing: border-box;
    padding: 0 !important;
    border: 1px solid #d5e6f2;
    border-radius: 18px;
    color: #1571ae;
    background: linear-gradient(145deg, #f3f9fd, #e2f1fa) !important;
    font-size: 0 !important;
    line-height: 1 !important;
}
.hajj-included-grid article > .hajj-service-icon svg {
    display: block;
    width: 30px;
    height: 30px;
    overflow: visible;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.hajj-included-grid article {
    gap: 19px;
    padding: 22px;
}
.hajj-included-grid b { font-size: 19px !important; line-height: 1.1; }
.hajj-included-grid small { font-size: 14px !important; }
@media (max-width: 1050px) {
    .hajj-quick-lead { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    .hajj-quick-lead { width: min(100% - 32px, 1180px); margin-top: 0; }
    .hajj-quick-lead form { grid-template-columns: 1fr; }
    .hajj-quick-lead button { width: 100%; }
}

/* Hajj : navigation visuelle allégée et carte interactive */
.hajj-trust-section {
    gap: 10px !important;
    margin-top: -30px !important;
    margin-bottom: 62px !important;
}
.hajj-trust-section article {
    display: grid;
    grid-template-columns: 44px minmax(0,1fr);
    grid-template-rows: auto auto;
    column-gap: 13px;
    align-content: center;
    min-height: 112px;
    border-radius: 17px !important;
    padding: 17px !important;
    box-shadow: 0 12px 28px rgba(11,36,82,.08) !important;
}
.hajj-trust-section span {
    grid-row: 1 / 3;
    width: 44px;
    height: 44px;
    align-self: center;
    font-size: 22px;
}
.hajj-trust-section h3 { margin: 0 0 3px !important; font-size: 16px !important; }
.hajj-trust-section p { margin: 0 !important; font-size: 12px; line-height: 1.4 !important; }

.hajj-zone-map-card {
    display: grid !important;
    place-items: center !important;
}
.hajj-zone-map-stage {
    position: relative;
    width: min(94%, 820px);
    aspect-ratio: 768 / 577;
}
.hajj-zone-map-stage > img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    object-fit: contain !important;
}
.hajj-map-point {
    position: absolute;
    z-index: 3;
    width: 38px;
    height: 38px;
    transform: translate(-50%, -50%);
    border: 0;
    border-radius: 50%;
    padding: 0;
    background: transparent;
    cursor: pointer;
}
.hajj-map-point::before {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 17px;
    height: 17px;
    transform: translate(-50%, -50%);
    border: 3px solid #f3ead1;
    border-radius: 50%;
    background: #b79857;
    box-shadow: 0 0 0 2px #736241, 0 4px 12px rgba(0,0,0,.35);
    content: '';
    transition: transform .18s ease, background-color .18s ease;
}
.hajj-map-point > span {
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    min-width: max-content;
    transform: translate(-50%, 7px);
    border-radius: 7px;
    padding: 9px 12px;
    color: #fff;
    background: #343d4b;
    box-shadow: 0 9px 22px rgba(0,0,0,.28);
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    opacity: 0;
    pointer-events: none;
    transition: opacity .18s ease, transform .18s ease;
}
.hajj-map-point > span::after {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 6px solid transparent;
    border-top-color: #343d4b;
    content: '';
}
.hajj-map-point:hover::before,
.hajj-map-point:focus-visible::before { transform: translate(-50%, -50%) scale(1.18); background: #d2b46d; }
.hajj-map-point:hover > span,
.hajj-map-point:focus-visible > span { transform: translate(-50%, 0); opacity: 1; }
.hajj-map-point:focus-visible { outline: 2px solid #76d8cf; outline-offset: 3px; }
.point-haram { left: 34.7%; top: 13.9%; }
.point-jamarat { left: 63.3%; top: 16.8%; }
.point-mina { left: 69.7%; top: 19.4%; }
.point-muzdalifah { left: 77.6%; top: 27%; }
.point-arafat { left: 90%; top: 29.6%; }
.point-arafat > span { left: auto; right: -8px; transform: translate(0, 7px); }
.point-arafat:hover > span,
.point-arafat:focus-visible > span { transform: translate(0, 0); }
.point-arafat > span::after { right: 11px; left: auto; transform: none; }
@media (max-width: 760px) {
    .hajj-map-point { width: 32px; height: 32px; }
    .hajj-map-point::before { width: 13px; height: 13px; border-width: 2px; }
    .hajj-map-point > span { font-size: 11px; }
}

/* Topbar : action de rappel plus explicite */
.call-button {
    display: inline-flex !important;
    gap: 8px;
    align-items: center;
    justify-content: center;
}
.call-button svg {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    fill: currentColor;
}

/* Préinscription Hajj : ancre visible et formulaire plus engageant */
#preinscription-hajj { scroll-margin-top: 126px; }
.hajj-preform-modern {
    gap: 14px !important;
    align-items: stretch !important;
    margin-bottom: 62px !important;
    border: 1px solid #dce7ef;
    border-radius: 30px;
    padding: 14px !important;
    overflow: visible !important;
    background: linear-gradient(135deg, #edf7fa, #f8fbfd) !important;
    box-shadow: 0 20px 46px rgba(17,42,76,.08);
}
.hajj-preform-modern .hajj-preform-intro {
    display: flex;
    flex-direction: column;
    justify-content: center;
    border: 0 !important;
    background: linear-gradient(145deg, #0b3d70, #0e6292) !important;
    box-shadow: none !important;
}
.hajj-preform-modern .hajj-preform-intro .section-kicker { color: #75ddd3; }
.hajj-preform-modern .hajj-preform-intro h2 { color: #fff !important; }
.hajj-preform-modern .hajj-preform-intro > p:not(.section-kicker) { color: rgba(255,255,255,.78) !important; }
.hajj-preform-modern .hajj-preform-box {
    display: flex;
    align-items: center;
    border: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
}
.hajj-preform-modern .hajj-preform-box form { width: 100%; }
.hajj-contact-note {
    border: 1px solid rgba(255,255,255,.16);
    background: rgba(255,255,255,.1) !important;
}
.hajj-contact-note strong { color: #fff !important; }
.hajj-contact-note a {
    display: inline-flex;
    width: fit-content;
    min-height: 43px;
    gap: 8px;
    align-items: center;
    border-radius: 12px;
    padding: 0 14px;
    color: #fff !important;
    background: #17bd55;
    box-shadow: 0 10px 22px rgba(7,67,36,.2);
    transition: transform .2s ease, filter .2s ease;
}
.hajj-contact-note a:hover { transform: translateY(-2px); filter: brightness(1.04); }
.hajj-contact-note a svg { width: 20px; height: 20px; fill: currentColor; }
.hajj-preform-modern form input {
    min-height: 49px;
    border-color: #d2dee8 !important;
    background: #fbfdff !important;
    transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.hajj-preform-modern form input:focus {
    outline: none;
    border-color: #3bb7ad !important;
    background: #fff !important;
    box-shadow: 0 0 0 4px rgba(59,183,173,.12);
}
.hajj-preform-modern button {
    min-height: 56px !important;
    background: linear-gradient(90deg, #0a5fa6, #0b78b9) !important;
    box-shadow: 0 12px 24px rgba(10,95,166,.18);
    transition: transform .2s ease, box-shadow .2s ease;
}
.hajj-preform-modern button:hover { transform: translateY(-2px); box-shadow: 0 16px 28px rgba(10,95,166,.25); }

/* Services Hajj développés avec les pictogrammes illustrés */
.hajj-included-grid article {
    min-height: 148px !important;
    align-items: flex-start !important;
    padding: 22px !important;
}
.hajj-included-grid article > .hajj-service-emoji {
    display: flex !important;
    width: 64px !important;
    height: 64px !important;
    flex: 0 0 64px !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box;
    border: 1px solid #d5e6f2;
    border-radius: 18px;
    padding: 0 !important;
    background: linear-gradient(145deg, #f4faff, #e1f1fa) !important;
    line-height: 1 !important;
}
.hajj-service-emoji i {
    display: block;
    transform: translateY(1px);
    font-family: "Segoe UI Emoji", "Apple Color Emoji", sans-serif;
    font-size: 31px;
    font-style: normal;
    line-height: 1;
}
.hajj-included-grid article > div { gap: 8px !important; }
.hajj-included-grid b { font-size: 18px !important; line-height: 1.15; }
.hajj-included-grid small { color: #66778b !important; font-size: 13px !important; line-height: 1.45; }
@media (max-width: 720px) {
    #preinscription-hajj { scroll-margin-top: 108px; }
    .call-button svg { width: 16px; height: 16px; flex-basis: 16px; }
}

/* Page À propos */
.about-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(360px, .8fr);
    gap: clamp(34px, 6vw, 90px);
    align-items: center;
    width: min(1450px, 92vw);
    margin: 0 auto;
    padding: clamp(70px, 9vw, 126px) 0 clamp(62px, 8vw, 104px);
}
.about-hero::before {
    content: '';
    position: absolute;
    top: 30px;
    left: -18vw;
    z-index: -1;
    width: 520px;
    height: 520px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(88,188,182,.15), rgba(88,188,182,0) 70%);
    pointer-events: none;
}
.about-hero-copy { max-width: 780px; }
.about-hero-copy h1 {
    max-width: 760px;
    margin: 0;
    color: var(--blue-deep);
    font-size: clamp(44px, 6.2vw, 82px);
    line-height: .98;
    letter-spacing: -.045em;
}
.about-hero-lead {
    max-width: 720px;
    margin: 28px 0 0;
    color: #435169;
    font-size: clamp(17px, 1.6vw, 21px);
    font-weight: 600;
    line-height: 1.72;
}
.about-hero-actions, .about-location-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.about-hero-actions > a, .about-location-actions > a { min-height: 52px; border-radius: 13px; padding: 0 21px; }
.about-identity-card {
    overflow: hidden;
    border: 1px solid #d9e4ee;
    border-radius: 30px;
    background: #fff;
    box-shadow: 0 28px 70px rgba(11,36,82,.13);
}
.about-logo-panel {
    display: grid;
    min-height: 260px;
    place-items: center;
    padding: 52px;
    background: linear-gradient(145deg, #063a70, #0f6ca8 68%, #48aaa8);
}
.about-logo-panel img { width: min(330px, 100%); height: auto; }
.about-identity-content { padding: 30px 34px 34px; }
.about-identity-content > span, .about-address-block > span {
    color: var(--teal);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.about-identity-content h2 { margin: 7px 0 2px; color: var(--blue-deep); font-size: 34px; }
.about-identity-content p { margin: 0 0 22px; color: #5e6b7e; font-weight: 600; }
.about-identity-content address, .about-address-block address { color: #28364c; font-style: normal; font-weight: 700; line-height: 1.65; }

.about-intro {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(460px, 1.15fr);
    gap: clamp(38px, 7vw, 100px);
    width: min(1450px, 92vw);
    margin: 0 auto;
    border-top: 1px solid #dce5ee;
    padding: clamp(66px, 8vw, 110px) 0;
}
.about-intro-copy h2, .about-section-heading h2, .about-location-copy h2 {
    margin: 0;
    color: var(--blue-deep);
    font-size: clamp(34px, 4.1vw, 56px);
    line-height: 1.06;
    letter-spacing: -.035em;
}
.about-intro-copy > p:not(.section-kicker) { color: #4d5d73; font-size: 17px; font-weight: 500; line-height: 1.8; }
.about-values { display: grid; gap: 14px; }
.about-values article {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    column-gap: 20px;
    border: 1px solid #dce7f0;
    border-radius: 20px;
    padding: 24px 26px;
    background: #fff;
    box-shadow: 0 12px 35px rgba(11,36,82,.06);
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.about-values article:hover { transform: translateY(-3px); border-color: #9ed8d4; box-shadow: 0 18px 40px rgba(11,36,82,.1); }
.about-values article > span {
    display: grid;
    grid-row: 1 / span 2;
    width: 52px;
    height: 52px;
    place-items: center;
    border-radius: 16px;
    color: var(--blue-deep);
    background: #e7f5f5;
    font-weight: 900;
}
.about-values h3 { margin: 1px 0 6px; color: #0d2340; font-size: 20px; }
.about-values p { margin: 0; color: #637086; font-size: 14px; font-weight: 500; line-height: 1.65; }

.about-expertise { padding: clamp(66px, 8vw, 100px) 4vw; background: #eaf3f9; }
.about-section-heading { width: min(820px, 92vw); margin: 0 auto 36px; text-align: center; }
.about-expertise-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; width: min(1260px, 92vw); margin: 0 auto; }
.about-expertise-grid a {
    display: flex;
    min-height: 310px;
    flex-direction: column;
    border: 1px solid #d9e4ee;
    border-radius: 24px;
    padding: 30px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(11,36,82,.07);
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.about-expertise-grid a:hover { transform: translateY(-6px); border-color: #70c7c2; box-shadow: 0 26px 55px rgba(11,36,82,.13); }
.about-expertise-grid a > span { width: fit-content; border-radius: 999px; padding: 7px 11px; color: #087c77; background: #e3f6f4; font-size: 12px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.about-expertise-grid strong { margin-top: 28px; color: var(--blue-deep); font-size: 25px; line-height: 1.18; }
.about-expertise-grid p { color: #5b687c; font-weight: 500; line-height: 1.7; }
.about-expertise-grid b { margin-top: auto; color: var(--blue); font-size: 14px; }

.about-location {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
    gap: clamp(36px, 6vw, 86px);
    align-items: center;
    width: min(1450px, 92vw);
    margin: 0 auto;
    padding: clamp(70px, 9vw, 120px) 0;
}
.about-map-card { overflow: hidden; min-height: 520px; border: 1px solid #d7e3ed; border-radius: 28px; background: #dfeaf2; box-shadow: 0 24px 60px rgba(11,36,82,.12); }
.about-map-card iframe { display: block; width: 100%; height: 520px; border: 0; }
.about-location-copy > p:not(.section-kicker) { color: #59677c; font-weight: 500; line-height: 1.75; }
.about-address-block { margin: 28px 0 22px; border-left: 4px solid var(--teal); padding: 4px 0 4px 20px; }
.about-address-block strong { display: block; margin: 7px 0 3px; color: #0d2340; font-size: 20px; }
.about-call-link { display: inline-flex; align-items: center; justify-content: center; color: var(--blue-deep); background: #e4f4f3; font-weight: 900; transition: transform .18s ease, background .18s ease; }
.about-call-link:hover { transform: translateY(-2px); background: #d7efed; }
.about-call-link svg { width: 18px; height: 18px; fill: currentColor; }

@media (max-width: 980px) {
    .about-hero, .about-intro, .about-location { grid-template-columns: 1fr; }
    .about-hero { padding-top: 64px; }
    .about-identity-card { width: min(620px, 100%); }
    .about-intro { gap: 42px; }
    .about-expertise-grid { grid-template-columns: 1fr; max-width: 700px; }
    .about-expertise-grid a { min-height: 250px; }
    .about-location-copy { grid-row: 1; }
}
@media (max-width: 600px) {
    .about-hero { width: min(90vw, 1450px); padding-top: 48px; }
    .about-hero-copy h1 { font-size: clamp(38px, 12vw, 54px); }
    .about-hero-actions > a { width: 100%; }
    .about-logo-panel { min-height: 190px; padding: 36px; }
    .about-identity-content { padding: 25px; }
    .about-intro, .about-location { width: 90vw; }
    .about-values article { grid-template-columns: 44px minmax(0, 1fr); gap: 14px; padding: 20px; }
    .about-values article > span { width: 44px; height: 44px; border-radius: 13px; }
    .about-expertise-grid { width: 90vw; }
    .about-map-card, .about-map-card iframe { min-height: 390px; height: 390px; }
    .about-location-actions > a { width: 100%; }
}

/* Politique de confidentialité */
.footer-links { display: grid; align-content: start; gap: 8px; }
.footer-links a { color: rgba(255,255,255,.88); }
.footer-links a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.form-privacy-note {
    grid-column: 1 / -1;
    margin: 2px 0 0 !important;
    color: #667085 !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
}
.form-privacy-note a, .omra-lead-form small a { color: var(--blue); text-decoration: underline; text-underline-offset: 2px; }

.privacy-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(70px, 9vw, 122px) 5vw;
    color: #fff;
    background: linear-gradient(125deg, #042b55 0%, #075b92 64%, #3aa8a4 130%);
}
.privacy-hero::after {
    content: '';
    position: absolute;
    right: -140px;
    bottom: -270px;
    width: 620px;
    height: 620px;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 50%;
    box-shadow: 0 0 0 70px rgba(255,255,255,.03), 0 0 0 140px rgba(255,255,255,.025);
}
.privacy-hero > div { position: relative; z-index: 1; width: min(1180px, 92vw); margin: 0 auto; }
.privacy-hero .section-kicker { color: #8ce1dc; }
.privacy-hero h1 { max-width: 950px; margin: 0; font-size: clamp(44px, 6.3vw, 82px); line-height: .98; letter-spacing: -.045em; }
.privacy-hero p:not(.section-kicker) { max-width: 780px; margin: 26px 0 18px; color: rgba(255,255,255,.86); font-size: clamp(17px, 1.7vw, 21px); font-weight: 500; line-height: 1.72; }
.privacy-hero span { color: rgba(255,255,255,.68); font-size: 13px; font-weight: 700; }

.privacy-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
    align-items: start;
    width: min(1120px, 92vw);
    margin: 0 auto;
    padding: clamp(62px, 8vw, 106px) 0;
}
.privacy-summary {
    position: static;
    overflow: hidden;
    border: 1px solid #d9e5ee;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 18px 44px rgba(11,36,82,.08);
}
.privacy-summary > strong { display: block; padding: 22px 24px 15px; color: var(--blue-deep); font-size: 20px; text-align: center; }
.privacy-summary nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; padding: 0 18px 20px; }
.privacy-summary nav a { border-radius: 10px; padding: 10px 12px; color: #59677b; font-size: 12px; font-weight: 650; text-align: center; transition: color .18s ease, background .18s ease; }
.privacy-summary nav a:hover { color: var(--blue-deep); background: #eef6fb; }
.privacy-summary > div { display: flex; justify-content: center; gap: 9px; border-top: 1px solid #e1e8ef; padding: 14px 24px 16px; background: #eff8f8; }
.privacy-summary > div span { color: #667085; font-size: 12px; font-weight: 700; }
.privacy-summary > div a { color: var(--blue-deep); font-size: 13px; font-weight: 900; overflow-wrap: anywhere; }
.privacy-content { display: grid; gap: 18px; }
.privacy-content > article {
    scroll-margin-top: 132px;
    border: 1px solid #dce6ee;
    border-radius: 24px;
    padding: clamp(26px, 4vw, 46px);
    background: #fff;
    box-shadow: 0 16px 44px rgba(11,36,82,.06);
}
.privacy-number { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 14px; color: var(--blue-deep); background: #e3f4f3; font-size: 13px; font-weight: 900; }
.privacy-content h2 { margin: 16px 0 18px; color: var(--blue-deep); font-size: clamp(26px, 3vw, 38px); line-height: 1.12; letter-spacing: -.025em; }
.privacy-content h3 { margin: 26px 0 7px; color: #153453; font-size: 19px; }
.privacy-content p, .privacy-content li { color: #506076; font-size: 15px; font-weight: 500; line-height: 1.78; }
.privacy-content ul { display: grid; gap: 10px; padding-left: 22px; }
.privacy-content a { color: var(--blue); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.privacy-contact-card { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(250px, 1fr); gap: 4px 34px; width: 100%; border-left: 4px solid var(--teal); border-radius: 0 16px 16px 0; padding: 22px 26px; background: #f2f8fb; }
.privacy-contact-card strong { grid-column: 1; color: #102b4b; font-size: 21px; }
.privacy-contact-card address { grid-column: 1; grid-row: 2 / span 2; margin: 4px 0; color: #44546a; font-style: normal; line-height: 1.7; }
.privacy-contact-card a { grid-column: 2; align-self: center; }
.privacy-note { margin-top: 24px; border-radius: 16px; padding: 20px 22px; background: #edf8f7; }
.privacy-note strong { color: #0b6763; }
.privacy-note p { margin: 5px 0 0; }
.privacy-table-wrap { overflow-x: auto; margin: 22px 0; border: 1px solid #dce6ee; border-radius: 16px; }
.privacy-table-wrap table { width: 100%; min-width: 620px; border-collapse: collapse; }
.privacy-table-wrap th { padding: 15px 18px; color: #fff; background: var(--blue-deep); font-size: 13px; text-align: left; }
.privacy-table-wrap td { border-top: 1px solid #e2e9ef; padding: 16px 18px; color: #536277; font-size: 14px; line-height: 1.6; vertical-align: top; }
.privacy-table-wrap td:first-child { width: 56%; color: #25374f; font-weight: 650; }
.privacy-table-wrap tbody tr:nth-child(even) { background: #f8fbfd; }

@media (max-width: 900px) {
    .privacy-summary nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .privacy-hero { padding-top: 54px; padding-bottom: 62px; }
    .privacy-hero h1 { font-size: clamp(39px, 12vw, 54px); }
    .privacy-layout { width: 90vw; padding: 48px 0 62px; }
    .privacy-summary nav { grid-template-columns: 1fr; }
    .privacy-summary > div { display: grid; justify-items: center; }
    .privacy-contact-card { grid-template-columns: 1fr; }
    .privacy-contact-card strong, .privacy-contact-card address, .privacy-contact-card a { grid-column: 1; grid-row: auto; }
    .privacy-content > article { border-radius: 19px; padding: 24px 20px; }
    .privacy-content p, .privacy-content li { font-size: 14px; }
}

/* --- Hajj Comfort detail page --- */
.comfort-detail-page {
    --comfort-ink: #15120d;
    --comfort-blue: #b58b35;
    --comfort-teal: #c7a24f;
    --comfort-pale: #f6f2e9;
    color: #243a53;
    background: #fff;
}
.comfort-detail-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(310px, .58fr);
    gap: clamp(36px, 7vw, 110px);
    min-height: 690px;
    align-items: end;
    padding: clamp(72px, 8vw, 118px) max(5vw, 32px) clamp(64px, 7vw, 96px);
    color: #fff;
    background-position: center 42%;
    background-size: cover;
}
.comfort-hero-copy { width: min(790px, 100%); }
.comfort-hero-copy .section-kicker { color: #d8b65f; }
.comfort-hero-copy h1 {
    margin: 11px 0 24px;
    color: #fff;
    font-size: clamp(52px, 6.2vw, 92px);
    line-height: .95;
    letter-spacing: -.06em;
}
.comfort-hero-copy > p:not(.section-kicker) {
    max-width: 720px;
    margin: 0;
    color: rgba(255,255,255,.84);
    font-size: clamp(18px, 1.8vw, 23px);
    font-weight: 500;
    line-height: 1.58;
}
.comfort-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.comfort-primary,
.comfort-whatsapp {
    display: inline-flex;
    min-height: 55px;
    gap: 9px;
    align-items: center;
    justify-content: center;
    border-radius: 13px;
    padding: 0 22px;
    font-weight: 780;
    transition: transform .2s ease, box-shadow .2s ease;
}
.comfort-primary { color: #17130b; background: linear-gradient(135deg, #e1c477, #b88b2d); box-shadow: 0 14px 28px rgba(0,0,0,.25); }
.comfort-whatsapp { border: 1px solid rgba(215,183,99,.55); color: #f1d58f; background: rgba(8,8,8,.62); backdrop-filter: blur(8px); }
.comfort-primary svg,
.comfort-whatsapp svg { width: 22px; height: 22px; fill: currentColor; }
.comfort-program-link { display: inline-flex; align-items: center; padding: 0 8px; color: rgba(255,255,255,.76); font-size: 13px; font-weight: 700; }
.comfort-program-link:hover { color: #e2c478; }
.comfort-primary:hover,
.comfort-whatsapp:hover { transform: translateY(-3px); box-shadow: 0 16px 30px rgba(0,0,0,.24); }
.comfort-hero-summary {
    border: 1px solid rgba(218,183,91,.38);
    border-radius: 26px;
    padding: 30px;
    background: rgba(8,8,8,.79);
    box-shadow: 0 22px 50px rgba(0,0,0,.2);
    backdrop-filter: blur(14px);
}
.comfort-hero-summary > p { margin: 0 0 18px; color: #d8b75e; font-size: 12px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.comfort-hero-summary dl { display: grid; gap: 0; margin: 0; }
.comfort-hero-summary dl div { display: flex; gap: 20px; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.14); padding: 15px 0; }
.comfort-hero-summary dt { color: rgba(255,255,255,.62); font-size: 13px; }
.comfort-hero-summary dd { margin: 0; color: #fff; font-size: 14px; font-weight: 720; text-align: right; }
.comfort-hero-summary small { display: block; margin-top: 15px; color: rgba(255,255,255,.62); line-height: 1.55; }
.comfort-page-nav {
    display: flex;
    width: min(1120px, 92vw);
    gap: 7px;
    justify-content: center;
    margin: 22px auto 0;
    border: 1px solid #dbe7ef;
    border-radius: 18px;
    padding: 8px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 14px 34px rgba(15,48,82,.08);
}
.comfort-page-nav a { border-radius: 11px; padding: 11px 16px; color: #526276; font-size: 13px; font-weight: 700; transition: color .18s ease, background-color .18s ease; }
.comfort-page-nav a:hover { color: var(--comfort-ink); background: #f4edde; }
.comfort-intro-section,
.comfort-options-section,
.comfort-included-section,
.comfort-stays-section,
.comfort-program-section,
.comfort-visits-section { width: min(1280px, 92vw); margin: clamp(72px, 8vw, 110px) auto; }
.comfort-options-section,
.comfort-included-section,
.comfort-stays-section { scroll-margin-top: 130px; }
.comfort-intro-section { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(36px, 7vw, 92px); align-items: start; }
.comfort-intro-section {
    align-items: center;
    margin-top: 44px;
    margin-bottom: 48px;
    border: 1px solid #e5dcc8;
    border-radius: 30px;
    padding: clamp(30px, 4vw, 52px);
    background: linear-gradient(135deg, #faf7f0, #fff);
    box-shadow: 0 18px 42px rgba(31,42,52,.055);
}
.comfort-intro-section h2 { font-size: clamp(32px, 3.5vw, 50px); }
.comfort-intro-section h2,
.comfort-section-heading h2,
.comfort-program-header h2,
.comfort-visits-intro h2 {
    margin: 8px 0 0;
    color: var(--comfort-ink);
    font-size: clamp(38px, 4.5vw, 62px);
    line-height: 1.03;
    letter-spacing: -.045em;
}
.comfort-intro-copy > p { margin: 3px 0 26px; color: #566579; font-size: 18px; line-height: 1.75; }
.comfort-intro-points { display: flex; flex-wrap: wrap; gap: 9px; }
.comfort-intro-points span { border-radius: 999px; padding: 10px 15px; color: #6d5018; background: #f5ecd5; font-size: 13px; font-weight: 750; }
.comfort-section-heading { max-width: 790px; margin-bottom: 38px; }
.comfort-section-heading.centered { margin-right: auto; margin-left: auto; text-align: center; }
.comfort-section-heading > p:not(.section-kicker) { max-width: 700px; margin: 18px 0 0; color: #647184; line-height: 1.65; }
.comfort-option-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.comfort-option-card {
    position: relative;
    overflow: hidden;
    border: 1px solid #d9e4ec;
    border-radius: 28px;
    padding: clamp(28px, 4vw, 44px);
    background: #fff;
    box-shadow: 0 18px 44px rgba(13,48,83,.08);
}
.comfort-option-card::before { position: absolute; top: 0; right: 0; left: 0; height: 5px; background: #87a8c0; content: ''; }
.comfort-option-card.is-featured::before { background: linear-gradient(90deg, #9c7426, #ddc176); }
.comfort-option-top { display: flex; gap: 16px; align-items: center; justify-content: space-between; }
.comfort-option-top span { color: #5f7286; font-size: 12px; font-weight: 820; letter-spacing: .08em; text-transform: uppercase; }
.comfort-option-top b { border-radius: 999px; padding: 9px 13px; color: #604713; background: #f3e8cb; font-size: 13px; }
.comfort-option-card h3 { margin: 25px 0 10px; color: var(--comfort-ink); font-size: clamp(27px, 3vw, 38px); letter-spacing: -.03em; }
.comfort-option-card > p { min-height: 53px; margin: 0 0 23px; color: #657286; line-height: 1.6; }
.comfort-option-card dl { display: grid; gap: 0; margin: 0 0 25px; }
.comfort-option-card dl div { display: grid; grid-template-columns: 98px 1fr; gap: 18px; border-top: 1px solid #e5ebf0; padding: 14px 0; }
.comfort-option-card dt { color: #8490a0; font-size: 13px; font-weight: 650; }
.comfort-option-card dd { margin: 0; color: #2e435d; font-size: 14px; font-weight: 650; line-height: 1.5; }
.comfort-option-card code { display: inline-flex; border-radius: 7px; padding: 3px 7px; color: #624912; background: #f5ecd6; font: inherit; font-weight: 800; letter-spacing: .015em; }
.comfort-option-card button { border: 0; border-radius: 12px; padding: 14px 18px; color: #fff; background: var(--comfort-blue); font: inherit; font-size: 14px; font-weight: 780; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; }
.comfort-option-card button:hover { transform: translateY(-2px); box-shadow: 0 11px 24px rgba(13,95,158,.22); }
.comfort-travel-info-grid { display: grid; gap: 14px; margin-top: 18px; }
.comfort-travel-info {
    display: grid;
    grid-template-columns: minmax(220px, .55fr) minmax(0, 1.45fr);
    gap: 18px 34px;
    align-items: center;
    margin-top: 0;
    border: 1px solid #d7bd7b;
    border-radius: 22px;
    padding: 24px 28px;
    background: linear-gradient(125deg, #17140e, #292111);
    box-shadow: 0 15px 34px rgba(29,22,10,.12);
}
.comfort-travel-info-long { border-color: #b99a50; background: linear-gradient(125deg, #17140e, #332812); }
.comfort-price { display: grid; border-right: 1px solid rgba(216,182,95,.28); padding-right: 30px; }
.comfort-price small,
.comfort-departures > span { color: #d8b65f; font-size: 11px; font-weight: 820; letter-spacing: .08em; text-transform: uppercase; }
.comfort-price strong { margin-top: 3px; color: #fff; font-size: clamp(28px, 3vw, 38px); line-height: 1.1; letter-spacing: -.03em; }
.comfort-price span { margin-top: 5px; color: rgba(255,255,255,.58); font-size: 11px; }
.comfort-departures p { margin: 7px 0 0; color: rgba(255,255,255,.78); font-size: 14px; line-height: 1.65; }
.comfort-travel-info > small { grid-column: 1 / -1; color: rgba(255,255,255,.45); font-size: 10px; line-height: 1.5; }
.comfort-lead-band {
    display: flex;
    gap: 30px;
    align-items: center;
    justify-content: space-between;
    margin-top: 22px;
    border-radius: 22px;
    padding: 24px 28px;
    color: #fff;
    background: linear-gradient(120deg, #111 0%, #211b0f 100%);
    box-shadow: 0 16px 36px rgba(20,16,9,.13);
}
.comfort-lead-band > div:first-child { max-width: 720px; }
.comfort-lead-band span { color: #d9b866; font-size: 12px; font-weight: 830; letter-spacing: .08em; text-transform: uppercase; }
.comfort-lead-band p { margin: 7px 0 0; color: rgba(255,255,255,.72); line-height: 1.55; }
.comfort-lead-band > div:last-child { display: flex; flex: 0 0 auto; gap: 9px; }
.comfort-lead-band a { display: inline-flex; min-height: 47px; gap: 8px; align-items: center; border: 1px solid rgba(210,176,86,.5); border-radius: 12px; padding: 0 16px; color: #17130b; background: #d8b65f; font-size: 13px; font-weight: 780; }
.comfort-lead-band a:last-child { color: #f0d897; background: transparent; }
.comfort-lead-band svg { width: 19px; height: 19px; fill: currentColor; }
.comfort-included-section { border-radius: 34px; padding: clamp(38px, 6vw, 72px); background: var(--comfort-pale); }
.comfort-services-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.comfort-services-grid article { display: grid; min-height: 205px; align-content: start; border: 1px solid #d9e7ee; border-radius: 20px; padding: 23px; background: #fff; transition: transform .2s ease, box-shadow .2s ease; }
.comfort-services-grid article:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(18,57,89,.09); }
.comfort-services-grid article > span { display: grid; width: 49px; height: 49px; place-items: center; border-radius: 14px; background: #f4ead1; font-size: 25px; }
.comfort-services-grid h3 { margin: 22px 0 7px; color: var(--comfort-ink); font-size: 18px; }
.comfort-services-grid p { margin: 0; color: #6d7889; font-size: 13px; line-height: 1.55; }
.comfort-hotel-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.comfort-hotel-grid article { min-height: 0; border: 1px solid #e0d9cb; border-radius: 19px; padding: 20px; background: linear-gradient(145deg, #fff, #f8f4eb); }
.comfort-hotel-grid article::before { display: block; width: 32px; height: 3px; margin-bottom: 16px; border-radius: 999px; background: var(--comfort-teal); content: ''; }
.comfort-hotel-grid .comfort-hotel-main { grid-column: auto; min-height: 0; color: #fff; background: linear-gradient(135deg, #111, #2a2112); }
.comfort-hotel-grid span { color: #977224; font-size: 10px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.comfort-hotel-grid h3 { margin: 8px 0; color: var(--comfort-ink); font-size: clamp(21px, 2.1vw, 27px); }
.comfort-hotel-grid p { max-width: 620px; margin: 0; color: #657386; line-height: 1.6; }
.comfort-hotel-grid .comfort-hotel-main span { color: #87e0d9; }
.comfort-hotel-grid .comfort-hotel-main h3 { color: #fff; }
.comfort-hotel-grid .comfort-hotel-main p { color: rgba(255,255,255,.76); }
.comfort-program-section { scroll-margin-top: 110px; border: 1px solid #332916; border-radius: 34px; padding: clamp(32px, 5.5vw, 68px); background: radial-gradient(circle at 85% 5%, rgba(180,139,54,.18), transparent 30%), #0b0b0b; }
.comfort-program-header { display: flex; gap: 30px; align-items: end; justify-content: space-between; margin-bottom: 36px; }
.comfort-program-header > div:first-child { max-width: 750px; }
.comfort-program-header h2 { color: #fff; }
.comfort-program-header > div:first-child > p:last-child { max-width: 690px; color: rgba(255,255,255,.68); line-height: 1.6; }
.comfort-program-tabs { display: flex; flex: 0 0 auto; gap: 7px; border: 1px solid rgba(255,255,255,.16); border-radius: 15px; padding: 6px; background: rgba(255,255,255,.07); }
.comfort-program-tabs button { min-height: 45px; border: 0; border-radius: 10px; padding: 0 17px; color: rgba(255,255,255,.66); background: transparent; font: inherit; font-size: 13px; font-weight: 760; cursor: pointer; }
.comfort-program-tabs button.active { color: var(--comfort-ink); background: #fff; }
.comfort-calendar { display: none; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.comfort-calendar.active { display: grid; }
.comfort-calendar article { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 18px; border: 1px solid rgba(255,255,255,.12); border-radius: 18px; padding: 20px; background: rgba(255,255,255,.07); }
.comfort-calendar article.is-rite { border-color: rgba(216,182,95,.42); background: rgba(176,132,44,.16); }
.comfort-day-number { display: grid; width: 56px; height: 62px; place-items: center; align-content: center; border-radius: 14px; color: #fff; background: rgba(255,255,255,.11); }
.comfort-day-number small { color: rgba(255,255,255,.52); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.comfort-day-number b { font-size: 20px; line-height: 1.1; }
.comfort-calendar article > div:last-child > span { color: #d8b65f; font-size: 10px; font-weight: 820; letter-spacing: .1em; text-transform: uppercase; }
.comfort-calendar h3 { margin: 5px 0 7px; color: #fff; font-size: 18px; }
.comfort-calendar p { margin: 0; color: rgba(255,255,255,.67); font-size: 13px; line-height: 1.55; }
.comfort-visits-section { display: grid; grid-template-columns: minmax(0, .85fr) repeat(2, minmax(0, .58fr)); gap: 18px; }
.comfort-visits-section > * { border-radius: 25px; padding: clamp(27px, 3vw, 38px); }
.comfort-visits-intro { background: #f6f1e6; }
.comfort-visits-intro h2 { font-size: clamp(32px, 3.5vw, 48px); }
.comfort-visits-intro > p:last-child { color: #56606f; line-height: 1.65; }
.comfort-visits-section > article { border: 1px solid #dce6ed; background: #fff; }
.comfort-visits-section > article > span { display: grid; width: 39px; height: 39px; place-items: center; border-radius: 12px; color: #654a12; background: #f2e5c3; font-size: 12px; font-weight: 850; }
.comfort-visits-section h3 { margin: 25px 0 16px; color: var(--comfort-ink); font-size: 26px; }
.comfort-visits-section ul { display: grid; gap: 11px; margin: 0; padding: 0; list-style: none; }
.comfort-visits-section li { position: relative; padding-left: 20px; color: #5f6d80; font-size: 14px; line-height: 1.45; }
.comfort-visits-section li::before { position: absolute; top: .58em; left: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--comfort-teal); content: ''; }
.comfort-gallery-section { width: min(1280px, 92vw); margin: clamp(72px, 8vw, 110px) auto; scroll-margin-top: 130px; }
.comfort-gallery-header { display: flex; gap: 24px; align-items: end; justify-content: space-between; margin-bottom: 30px; }
.comfort-gallery-header > div:first-child { max-width: 760px; }
.comfort-gallery-header h2 { margin: 8px 0 0; color: var(--comfort-ink); font-size: clamp(38px, 4.5vw, 62px); line-height: 1.03; letter-spacing: -.045em; }
.comfort-gallery-arrows { display: flex; flex: 0 0 auto; gap: 9px; }
.comfort-gallery-arrows button { display: grid; width: 50px; height: 50px; place-items: center; border: 1px solid #d9cfbb; border-radius: 50%; color: #18140d; background: #fff; font-size: 30px; cursor: pointer; transition: color .18s ease, background-color .18s ease, transform .18s ease; }
.comfort-gallery-arrows button:hover { color: #17120a; background: #d8b65f; transform: translateY(-2px); }
.comfort-gallery-carousel { overflow: hidden; }
.comfort-gallery-track { display: flex; gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.comfort-gallery-track::-webkit-scrollbar { display: none; }
.comfort-gallery-track figure { position: relative; flex: 0 0 calc((100% - 18px) / 2); min-width: 0; overflow: hidden; scroll-snap-align: start; border-radius: 25px; margin: 0; background: #111; }
.comfort-gallery-track figure::after { position: absolute; inset: 48% 0 0; background: linear-gradient(transparent, rgba(0,0,0,.84)); content: ''; pointer-events: none; }
.comfort-gallery-track img { display: block; width: 100%; height: 440px; object-fit: cover; transition: transform .5s ease; }
.comfort-gallery-track figure:hover img { transform: scale(1.035); }
.comfort-gallery-track figcaption { position: absolute; right: 0; bottom: 0; left: 0; z-index: 1; display: grid; gap: 4px; padding: 26px; color: #fff; }
.comfort-gallery-track figcaption strong { font-size: 21px; }
.comfort-gallery-track figcaption span { color: rgba(255,255,255,.7); font-size: 13px; }
.comfort-gallery-dots button.active { background: #ae832c; }
.comfort-gallery-cta { display: flex; gap: 24px; align-items: center; justify-content: space-between; margin-top: 28px; border: 1px solid #d8c498; border-radius: 21px; padding: 23px 27px; background: #f7f1e4; }
.comfort-gallery-cta p { display: grid; gap: 5px; margin: 0; }
.comfort-gallery-cta strong { color: #18140d; font-size: 18px; }
.comfort-gallery-cta span { color: #716956; font-size: 14px; }
.comfort-gallery-cta a { display: inline-flex; min-height: 48px; flex: 0 0 auto; align-items: center; border-radius: 12px; padding: 0 18px; color: #fff; background: #15120d; font-size: 13px; font-weight: 780; transition: transform .18s ease, background-color .18s ease; }
.comfort-gallery-cta a:hover { transform: translateY(-2px); background: #9b7424; }
.comfort-contact { scroll-margin-top: 110px; }
.comfort-contact > div { border-color: #352a17; color: #fff; background: radial-gradient(circle at 100% 0, rgba(185,141,48,.22), transparent 34%), #10100f; }
.comfort-contact > div .section-kicker { color: #d7b65f; }
.comfort-contact > div h2 { color: #fff; }
.comfort-contact > div > p:not(.section-kicker) { color: rgba(255,255,255,.7); }
.comfort-contact > div > a { color: #17130b; background: #d8b65f; }
.comfort-contact > div > .comfort-question-callback { margin-left: 8px; border: 1px solid rgba(216,182,95,.55); color: #efd789; background: transparent; }
.comfort-contact > div > .comfort-question-callback:hover { color: #17130b; background: #efd789; }
.comfort-contact form { border-color: #dfd4bd; }
.comfort-contact form button { background: #15120d; }
.comfort-contact form button:hover { background: #9d7728; box-shadow: 0 12px 24px rgba(157,119,40,.22); }

/* Gold Shifting detail */
.gold-shifting-detail-page { --comfort-teal: #c49a43; --comfort-pale: #f6f1e7; }
.gold-shifting-hero { background-position: 63% center; }
.gold-shifting-hero .section-kicker { color: #ddb95f; }
.gold-shifting-hero .comfort-primary { color: #15110a; background: #d9b65f; }
.gold-shifting-hero .comfort-primary:hover { background: #efd489; }
.gold-shifting-hero .comfort-hero-summary { border-color: rgba(221,185,95,.36); background: rgba(16,13,8,.86); }
.gold-shifting-hero .comfort-hero-summary > p,
.gold-shifting-hero .comfort-hero-summary dt { color: #ddb95f; }
.gold-shifting-intro {
    display: grid;
    grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr);
    gap: clamp(34px, 6vw, 78px);
    align-items: center;
    width: min(1280px, 92vw);
    margin: 54px auto 64px;
    border: 1px solid #dfd5c1;
    border-radius: 32px;
    padding: clamp(32px, 5vw, 62px);
    background: linear-gradient(135deg, #fff, #f7f1e5);
    box-shadow: 0 18px 45px rgba(28,23,14,.07);
}
.gold-shifting-intro-copy h2 { margin: 8px 0 22px; color: #17130b; font-size: clamp(35px, 4vw, 56px); line-height: 1.03; letter-spacing: -.045em; }
.gold-shifting-intro-copy > p:not(.section-kicker) { margin: 0 0 25px; color: #626a75; font-size: 17px; line-height: 1.7; }
.gold-shifting-route { display: grid; gap: 10px; }
.gold-shifting-route article { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 17px; align-items: center; border: 1px solid #e2ded4; border-radius: 17px; padding: 17px 19px; background: rgba(255,255,255,.88); }
.gold-shifting-route article b { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 13px; color: #715318; background: #f2e4bf; font-size: 13px; }
.gold-shifting-route article span { color: #9b762b; font-size: 10px; font-weight: 830; letter-spacing: .08em; text-transform: uppercase; }
.gold-shifting-route article h3 { margin: 3px 0; color: #17130b; font-size: 19px; }
.gold-shifting-route article p { margin: 0; color: #687384; font-size: 13px; line-height: 1.45; }
.gold-shifting-route article.is-rite { color: #fff; background: #17140e; border-color: #382e1d; }
.gold-shifting-route article.is-rite h3 { color: #fff; }
.gold-shifting-route article.is-rite p { color: rgba(255,255,255,.68); }
.gold-shifting-route article.is-premium { border-color: #d2b05c; box-shadow: inset 4px 0 #d2b05c; }
.gold-shifting-facts { margin-top: 0; }
.gold-shifting-facts .comfort-travel-info { border-color: #c9a958; }
.gold-program-duration { flex: 0 0 auto; border: 1px solid rgba(216,182,95,.5); border-radius: 999px; padding: 11px 16px; color: #efd689; background: rgba(216,182,95,.1); font-size: 13px; font-weight: 800; }
.gold-shifting-contact > div { background: radial-gradient(circle at 100% 0, rgba(200,157,64,.26), transparent 34%), #0c0b09; }

/* Gold and Platinum detail pages */
.premium-hajj-page { --premium-accent: #d8b65f; }
.premium-hajj-platinum { --premium-accent: #e1c77d; }
.premium-hajj-hero { background-position: 62% center; }
.premium-hajj-hero .section-kicker { color: var(--premium-accent); }
.premium-hajj-hero .comfort-primary { color: #17130b; background: var(--premium-accent); }
.premium-hajj-hero .comfort-primary:hover { background: #f1d991; }
.premium-hajj-hero .comfort-hero-summary { border-color: rgba(216,182,95,.38); background: rgba(14,12,8,.88); }
.premium-hajj-platinum .comfort-hero-summary { background: linear-gradient(145deg, rgba(14,12,8,.94), rgba(53,30,62,.91)); }
.premium-hajj-hero .comfort-hero-summary > p,
.premium-hajj-hero .comfort-hero-summary dt { color: var(--premium-accent); }
.premium-hajj-intro {
    display: grid;
    grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
    gap: clamp(34px, 6vw, 74px);
    align-items: center;
    width: min(1280px, 92vw);
    margin: 54px auto 68px;
    border: 1px solid #e2dac9;
    border-radius: 32px;
    padding: clamp(32px, 5vw, 62px);
    background: linear-gradient(135deg, #fff, #f8f3e8);
    box-shadow: 0 18px 45px rgba(29,23,13,.065);
}
.premium-hajj-platinum .premium-hajj-intro { background: radial-gradient(circle at 100% 0, rgba(91,52,105,.07), transparent 36%), linear-gradient(135deg, #fff, #f8f3e8); }
.premium-hajj-intro-copy h2 { margin: 8px 0 22px; color: #17130b; font-size: clamp(35px, 4vw, 56px); line-height: 1.03; letter-spacing: -.045em; }
.premium-hajj-intro-copy > p:not(.section-kicker) { margin: 0 0 25px; color: #626e7b; font-size: 17px; line-height: 1.7; }
.premium-hotel-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.premium-hotel-pair article { position: relative; overflow: hidden; border: 1px solid #ded5c3; border-radius: 20px; padding: 26px; background: #fff; box-shadow: 0 12px 28px rgba(29,23,13,.07); }
.premium-hotel-pair article::before { display: block; width: 36px; height: 4px; margin-bottom: 22px; border-radius: 999px; background: var(--premium-accent); content: ''; }
.premium-hotel-pair article.is-main { color: #fff; border-color: #342b1a; background: linear-gradient(145deg, #17140e, #2d2413); }
.premium-hajj-platinum .premium-hotel-pair article.is-main { background: linear-gradient(145deg, #17140e, #3c2544); }
.premium-hotel-pair span { color: #7d5f1f; font-size: 10px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.premium-hotel-pair h3 { margin: 7px 0 10px; color: #17130b; font-size: clamp(22px, 2.4vw, 31px); line-height: 1.08; }
.premium-hotel-pair p { margin: 0; color: #657183; font-size: 13px; line-height: 1.55; }
.premium-hotel-pair .is-main span { color: #efd27f; }
.premium-hotel-pair .is-main h3 { color: #fff; }
.premium-hotel-pair .is-main p { color: rgba(255,255,255,.72); }
.premium-hajj-facts { margin-top: 0; }
.premium-hajj-facts .comfort-travel-info { border-color: var(--premium-accent); }
.premium-hajj-platinum .comfort-included-section { background: linear-gradient(145deg, #f7f2e8, #f4eff6); }
.premium-hajj-contact > div { background: radial-gradient(circle at 100% 0, rgba(205,166,77,.26), transparent 34%), #0c0b09; }
.premium-hajj-platinum .premium-hajj-contact > div { background: radial-gradient(circle at 100% 0, rgba(109,58,124,.35), transparent 38%), #0c0b09; }

@media (max-width: 1050px) {
    .comfort-detail-hero { grid-template-columns: 1fr; align-items: end; }
    .comfort-hero-summary { width: min(660px, 100%); }
    .comfort-services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .comfort-visits-section { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .comfort-visits-intro { grid-column: 1 / -1; }
    .comfort-hotel-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .comfort-hotel-grid .comfort-hotel-main { grid-column: 1 / -1; }
    .gold-shifting-intro { grid-template-columns: 1fr; }
    .premium-hajj-intro { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    .comfort-detail-hero { min-height: 0; padding: 56px 5vw; background-position: 62% center; }
    .comfort-hero-copy h1 { font-size: clamp(44px, 13vw, 66px); }
    .comfort-page-nav { justify-content: flex-start; overflow-x: auto; }
    .comfort-page-nav a { flex: 0 0 auto; }
    .comfort-intro-section,
    .comfort-option-grid,
    .comfort-hotel-grid,
    .comfort-calendar,
    .comfort-visits-section { grid-template-columns: 1fr; }
    .comfort-hotel-grid .comfort-hotel-main,
    .comfort-visits-intro { grid-column: auto; }
    .comfort-program-header { align-items: stretch; flex-direction: column; }
    .comfort-program-tabs { align-self: flex-start; }
    .comfort-lead-band,
    .comfort-gallery-header,
    .comfort-gallery-cta { align-items: stretch; flex-direction: column; }
    .comfort-lead-band > div:last-child { flex-wrap: wrap; }
    .comfort-gallery-arrows { align-self: flex-start; }
    .comfort-gallery-track figure { flex-basis: 88%; }
    .comfort-gallery-track img { height: 360px; }
    .comfort-hotel-grid { grid-template-columns: 1fr; }
    .comfort-hotel-grid .comfort-hotel-main { grid-column: auto; }
    .comfort-travel-info { grid-template-columns: 1fr; gap: 20px; padding: 22px; }
    .comfort-price { border-right: 0; border-bottom: 1px solid rgba(216,182,95,.28); padding: 0 0 20px; }
    .comfort-travel-info > small { grid-column: auto; }
    .comfort-intro-section { margin-top: 30px; margin-bottom: 38px; padding: 28px; }
    .gold-shifting-intro { margin-top: 34px; margin-bottom: 46px; padding: 28px; }
    .gold-shifting-hero { background-position: 68% center; }
    .gold-program-duration { align-self: flex-start; }
    .premium-hajj-intro { margin-top: 34px; margin-bottom: 48px; padding: 28px; }
}
@media (max-width: 540px) {
    .comfort-services-grid { grid-template-columns: 1fr; }
    .comfort-services-grid article { min-height: 0; grid-template-columns: 49px 1fr; gap: 15px; }
    .comfort-services-grid h3 { margin-top: 2px; }
    .comfort-calendar article { grid-template-columns: 50px minmax(0, 1fr); gap: 13px; padding: 16px; }
    .comfort-day-number { width: 49px; height: 55px; }
    .comfort-option-card dl div { grid-template-columns: 1fr; gap: 4px; }
    .comfort-hero-actions > a { width: 100%; }
    .comfort-hero-summary { padding: 23px; }
    .comfort-lead-band > div:last-child,
    .comfort-lead-band a,
    .comfort-gallery-cta a { width: 100%; }
    .comfort-lead-band a,
    .comfort-gallery-cta a { justify-content: center; }
    .comfort-gallery-track figure { flex-basis: 100%; }
    .comfort-contact > div > a { width: 100%; justify-content: center; }
    .comfort-contact > div > .comfort-question-callback { margin-left: 0; }
    .gold-shifting-route article { grid-template-columns: 44px minmax(0, 1fr); padding: 15px; }
    .gold-shifting-route article b { width: 42px; height: 42px; }
    .premium-hotel-pair { grid-template-columns: 1fr; }
}

/* Omra packages comparison */
.omra-formulas-page { color: #10233f; background: #f5f9fc; }
.omra-formulas-page [id] { scroll-margin-top: 128px; }
.omra-formulas-hero {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(430px, .92fr); gap: clamp(30px, 5vw, 78px); align-items: center;
    width: min(1360px, 92vw); min-height: 650px; margin: 34px auto 26px; border-radius: 34px; padding: clamp(34px, 5vw, 72px);
    color: #fff; background: radial-gradient(circle at 18% 15%, rgba(91,196,190,.26), transparent 28%), linear-gradient(135deg, #061d37 0%, #073e70 58%, #0f6f8f 100%);
    box-shadow: 0 30px 80px rgba(11,45,78,.2); overflow: hidden;
}
.omra-formulas-hero-copy { position: relative; z-index: 2; }
.omra-formulas-hero-copy .section-kicker { color: #7de0d9; }
.omra-formulas-hero-copy h1 { max-width: 700px; margin: 0; font-size: clamp(48px, 5.7vw, 80px); line-height: .97; letter-spacing: -.055em; }
.omra-formulas-hero-text { max-width: 690px; margin: 26px 0 0; color: rgba(255,255,255,.8); font-size: 18px; font-weight: 550; line-height: 1.7; }
.omra-formulas-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.omra-formulas-primary, .omra-formulas-secondary, .omra-formulas-whatsapp, .omra-formulas-ghost {
    display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 52px; border-radius: 12px; padding: 12px 19px;
    font-size: 14px; font-weight: 850; transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.omra-formulas-primary { color: #073a68; background: #fff; box-shadow: 0 12px 28px rgba(0,0,0,.14); }
.omra-formulas-secondary { border: 1px solid rgba(255,255,255,.45); color: #fff; background: rgba(255,255,255,.09); }
.omra-formulas-primary:hover, .omra-formulas-secondary:hover, .omra-formulas-whatsapp:hover, .omra-formulas-ghost:hover { transform: translateY(-3px); box-shadow: 0 15px 30px rgba(2,20,40,.16); }
.omra-formulas-actions svg, .omra-formulas-lead svg, .omra-formulas-difference svg { width: 19px; height: 19px; fill: currentColor; }
.omra-formulas-promises { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; margin-top: 34px; }
.omra-formulas-promises span { display: flex; gap: 10px; align-items: center; min-height: 56px; border-top: 1px solid rgba(255,255,255,.2); padding-top: 13px; color: rgba(255,255,255,.78); font-size: 11px; font-weight: 700; line-height: 1.35; }
.omra-formulas-promises b { color: #7de0d9; font-size: 12px; }
.omra-formulas-hero-visual { position: relative; min-height: 510px; }
.omra-formulas-hero-visual::before { position: absolute; inset: 30px -80px -90px 40px; z-index: 0; border-radius: 50%; background: rgba(98,215,206,.14); content: ''; }
.omra-formulas-hero-visual > img { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; border: 1px solid rgba(255,255,255,.22); border-radius: 28px; object-fit: cover; object-position: center; box-shadow: 0 28px 65px rgba(0,0,0,.25); }
.omra-formulas-hero-card { position: absolute; right: -24px; z-index: 2; display: grid; min-width: 255px; border: 1px solid rgba(255,255,255,.23); border-radius: 18px; padding: 17px 20px; color: #fff; box-shadow: 0 18px 38px rgba(0,18,40,.24); backdrop-filter: blur(14px); }
.omra-formulas-hero-card.is-economy { bottom: 122px; background: rgba(10,77,120,.87); }
.omra-formulas-hero-card.is-comfort { right: 20px; bottom: 25px; background: rgba(29,111,105,.9); }
.omra-formulas-hero-card span { color: #99ebe5; font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.omra-formulas-hero-card strong { margin-top: 4px; font-size: 16px; }
.omra-formulas-hero-card small { margin-top: 3px; color: rgba(255,255,255,.7); font-size: 11px; font-weight: 650; }

.omra-formulas-nav { position: sticky; top: 107px; z-index: 25; display: flex; justify-content: center; gap: 5px; width: min(920px, 92vw); margin: 0 auto 18px; border: 1px solid #d7e4ed; border-radius: 16px; padding: 7px; background: rgba(255,255,255,.92); box-shadow: 0 12px 32px rgba(11,45,78,.1); backdrop-filter: blur(12px); }
.omra-formulas-nav a { border-radius: 10px; padding: 10px 18px; color: #34506d; font-size: 12px; font-weight: 800; white-space: nowrap; transition: color .18s ease, background .18s ease; }
.omra-formulas-nav a:hover { color: #063a70; background: #eaf5f8; }

.omra-formulas-compare, .omra-formulas-hotels { width: min(1280px, 92vw); margin: 0 auto; padding: 86px 0 72px; }
.omra-formulas-section-head { max-width: 800px; margin: 0 auto 36px; text-align: center; }
.omra-formulas-section-head h2 { margin: 7px 0 14px; color: #073a70; font-size: clamp(36px, 4.6vw, 58px); line-height: 1.04; letter-spacing: -.045em; }
.omra-formulas-section-head > p:last-child { margin: 0 auto; max-width: 690px; color: #55627a; font-size: 16px; font-weight: 550; line-height: 1.7; }
.omra-formulas-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 22px; }
.omra-formula-card { position: relative; display: flex; min-height: 610px; flex-direction: column; border: 1px solid #d8e5ee; border-radius: 30px; padding: clamp(27px, 3.5vw, 44px); background: #fff; box-shadow: 0 20px 50px rgba(20,54,86,.09); overflow: hidden; }
.omra-formula-card::before { position: absolute; top: 0; right: 0; left: 0; height: 7px; background: #27a6aa; content: ''; }
.omra-formula-card.is-confort::before { background: linear-gradient(90deg,#0f5f9f,#58bcb6); }
.omra-formula-card > header { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.omra-formula-card > header span { color: #318b8d; font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.omra-formula-card > header h2 { margin: 6px 0 0; color: #073a70; font-size: clamp(34px, 4vw, 48px); line-height: 1; letter-spacing: -.04em; }
.omra-formula-card > header > strong { display: grid; min-width: 76px; min-height: 76px; place-items: center; align-content: center; border-radius: 50%; color: #075478; background: #e6f5f4; font-size: 22px; line-height: 1; }
.omra-formula-card > header > strong small { margin-top: 4px; color: #537086; font-size: 8px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.omra-formula-summary { min-height: 78px; margin: 24px 0; color: #5a6a7d; font-size: 15px; font-weight: 550; line-height: 1.7; }
.omra-formula-hotels { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
.omra-formula-hotels div { min-height: 110px; border-radius: 17px; padding: 18px; background: #f2f7fa; }
.omra-formula-hotels span { display: block; margin-bottom: 7px; color: #278a8d; font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.omra-formula-hotels strong { color: #173a5d; font-size: 14px; line-height: 1.45; }
.omra-formula-card ul { display: grid; gap: 11px; margin: 25px 0 30px; padding: 0; list-style: none; }
.omra-formula-card li { position: relative; padding-left: 26px; color: #42556b; font-size: 13px; font-weight: 650; line-height: 1.45; }
.omra-formula-card li::before { position: absolute; top: 0; left: 0; display: grid; width: 18px; height: 18px; place-items: center; border-radius: 50%; color: #fff; background: #27a6aa; font-size: 10px; content: '✓'; }
.omra-formula-card footer { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; }
.omra-formula-details, .omra-formula-whatsapp { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 10px; border-radius: 11px; padding: 11px 17px; font-size: 13px; font-weight: 850; transition: transform .18s ease, box-shadow .18s ease; }
.omra-formula-details { flex: 1 1 200px; color: #fff; background: #0f5f9f; }
.omra-formula-whatsapp { color: #08772d; background: #e9f9ed; }
.omra-formula-whatsapp svg { width: 19px; height: 19px; fill: currentColor; }
.omra-formula-details:hover, .omra-formula-whatsapp:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(15,95,159,.14); }
.omra-formulas-difference { display: grid; grid-template-columns: auto 1fr auto; gap: 22px; align-items: center; margin-top: 22px; border: 1px solid #cce2e6; border-radius: 21px; padding: 22px 25px; background: linear-gradient(90deg,#eaf7f6,#f5fbff); }
.omra-formulas-difference > strong { color: #073a70; font-size: 17px; white-space: nowrap; }
.omra-formulas-difference p { margin: 0; color: #52687e; font-size: 13px; font-weight: 600; line-height: 1.55; }
.omra-formulas-difference a { display: inline-flex; align-items: center; gap: 8px; border-radius: 10px; padding: 12px 15px; color: #fff; background: #087b79; font-size: 12px; font-weight: 850; white-space: nowrap; }

.omra-formulas-services { display: grid; grid-template-columns: minmax(300px,.72fr) minmax(0,1.28fr); gap: clamp(35px,6vw,80px); width: 100%; padding: 82px max(4vw, calc((100vw - 1280px)/2)); color: #fff; background: linear-gradient(135deg,#052541,#073d69); }
.omra-formulas-services-intro { align-self: center; }
.omra-formulas-services-intro .section-kicker { color: #6ed8d2; }
.omra-formulas-services-intro h2 { max-width: 480px; margin: 8px 0 20px; font-size: clamp(38px,4.4vw,60px); line-height: 1.02; letter-spacing: -.045em; }
.omra-formulas-services-intro > p:not(.section-kicker) { max-width: 510px; margin: 0 0 27px; color: rgba(255,255,255,.72); font-size: 15px; line-height: 1.75; }
.omra-formulas-services-intro > a { display: inline-flex; align-items: center; gap: 9px; border-radius: 12px; padding: 13px 17px; color: #fff; background: #16b957; font-size: 13px; font-weight: 850; }
.omra-formulas-services-intro svg { width: 20px; height: 20px; fill: currentColor; }
.omra-formulas-service-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.omra-formulas-service-grid article { display: grid; grid-template-columns: 54px minmax(0,1fr); gap: 15px; align-items: start; min-height: 145px; border: 1px solid rgba(255,255,255,.13); border-radius: 18px; padding: 20px; background: rgba(255,255,255,.075); transition: transform .2s ease, background .2s ease; }
.omra-formulas-service-grid article:hover { transform: translateY(-3px); background: rgba(255,255,255,.11); }
.omra-formulas-service-grid article > span { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 14px; background: rgba(105,222,214,.13); font-size: 25px; }
.omra-formulas-service-grid small { color: #72d9d3; font-size: 9px; font-weight: 900; letter-spacing: .09em; }
.omra-formulas-service-grid h3 { margin: 3px 0 6px; font-size: 15px; }
.omra-formulas-service-grid p { margin: 0; color: rgba(255,255,255,.64); font-size: 11px; font-weight: 550; line-height: 1.55; }

.omra-formulas-hotels { padding-bottom: 88px; }
.omra-hotel-package { display: grid; grid-template-columns: 260px minmax(0,1fr); gap: 24px; margin-top: 20px; border: 1px solid #d9e5ed; border-radius: 27px; padding: 19px; background: #fff; box-shadow: 0 18px 44px rgba(20,54,86,.075); }
.omra-hotel-package + .omra-hotel-package { margin-top: 24px; }
.omra-hotel-package-head { display: flex; flex-direction: column; border-radius: 19px; padding: 26px; color: #fff; background: linear-gradient(145deg,#086f78,#063b70); }
.omra-hotel-package.is-confort .omra-hotel-package-head { background: linear-gradient(145deg,#0b4d83,#257f91); }
.omra-hotel-package-head span { color: #8ce6df; font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.omra-hotel-package-head h3 { margin: 6px 0 19px; font-size: 31px; line-height: 1; }
.omra-hotel-package-head p { margin: 0; color: rgba(255,255,255,.72); font-size: 12px; font-weight: 600; line-height: 1.65; }
.omra-hotel-package-head a { margin-top: auto; border: 1px solid rgba(255,255,255,.35); border-radius: 10px; padding: 11px 13px; text-align: center; font-size: 12px; font-weight: 850; }
.omra-hotel-city-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; min-width: 0; }
.omra-hotel-city-grid > section { min-width: 0; border-radius: 18px; padding: 16px; background: #f3f7fa; }
.omra-hotel-city-grid > section > header { min-height: 64px; margin-bottom: 12px; }
.omra-hotel-city-grid > section > header span { color: #073a70; font-size: 16px; font-weight: 850; }
.omra-hotel-city-grid > section > header p { margin: 4px 0 0; color: #60738a; font-size: 10px; font-weight: 650; line-height: 1.45; }
.omra-hotel-scroll { display: flex; gap: 10px; overflow-x: auto; padding: 0 0 7px; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.omra-hotel-scroll figure { position: relative; flex: 0 0 72%; margin: 0; border-radius: 14px; overflow: hidden; scroll-snap-align: start; }
.omra-hotel-scroll img { width: 100%; height: 175px; object-fit: cover; background: #dce8ef; }
.omra-hotel-scroll figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 30px 13px 11px; color: #fff; background: linear-gradient(transparent,rgba(2,19,38,.9)); font-size: 12px; font-weight: 850; }

.omra-formulas-lead { display: flex; align-items: center; justify-content: space-between; gap: 38px; width: min(1280px,92vw); margin: 0 auto 78px; border-radius: 28px; padding: clamp(28px,4vw,52px); color: #fff; background: radial-gradient(circle at 92% 10%,rgba(87,196,190,.32),transparent 30%),#073a70; box-shadow: 0 24px 55px rgba(11,45,78,.18); }
.omra-formulas-lead h2 { max-width: 760px; margin: 6px 0 11px; font-size: clamp(30px,3.6vw,47px); line-height: 1.07; letter-spacing: -.035em; }
.omra-formulas-lead p:not(.section-kicker) { margin: 0; color: rgba(255,255,255,.72); font-weight: 550; }
.omra-formulas-lead > div:last-child { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; max-width: 490px; }
.omra-formulas-lead .omra-formulas-primary { color: #073a70; }
.omra-formulas-whatsapp { color: #fff; background: #17b957; }
.omra-formulas-ghost { border: 1px solid rgba(255,255,255,.4); color: #fff; }
.omra-formulas-page .omra-faq-section { margin-top: 0; }

/* Readability and lead capture on package pages */
.hajj-formulas-section .section-title.centered > p { font-size: 18px; line-height: 1.7; }
.hajj-formula-card-head > span,
.hajj-formula-card-head > b { font-size: 14px; }
.hajj-formula-cards-four ul { font-size: 17px !important; line-height: 1.55; }
.hajj-formula-cards-four .hajj-formula-actions a { font-size: 16px; }
.hajj-trust-section h3 { font-size: 18px !important; }
.hajj-trust-section p { font-size: 14px; line-height: 1.55 !important; }
.hajj-quick-lead > div > p:not(.section-kicker),
.hajj-zones-copy > p:not(.section-kicker),
.hajj-journey-modern .section-title > p,
.hajj-included-section > div:first-child > p:not(.section-kicker),
.hajj-preform-intro > p:not(.section-kicker) { font-size: 17px; line-height: 1.7; }
.hajj-quick-lead label,
.hajj-preform-modern label { font-size: 15px; }
.hajj-included-grid b { font-size: 20px !important; }
.hajj-included-grid small { font-size: 15px !important; line-height: 1.55 !important; }
.hajj-package-detail-facts small { font-size: 13px; }
.hajj-package-detail-facts b { font-size: 17px; }
.hajj-package-checklist p,
.hajj-package-advice p,
.hajj-package-stay-grid p,
.hajj-package-journey-grid p,
.hajj-package-contact > div > p:not(.section-kicker) { font-size: 17px; }
.hajj-package-advice > span,
.hajj-package-stay-grid span,
.hajj-package-journey-grid span { font-size: 14px; }
.hajj-package-journey-grid h3 { font-size: 24px; }
.hajj-package-contact label { font-size: 16px; }
.comfort-program-link,
.comfort-page-nav a { font-size: 15px; }
.comfort-hero-summary > p,
.comfort-option-top span,
.comfort-price small,
.comfort-departures > span,
.comfort-lead-band span { font-size: 14px; }
.comfort-hero-summary dt { font-size: 15px; }
.comfort-hero-summary dd { font-size: 16px; }
.comfort-hero-summary small { font-size: 14px; }
.comfort-intro-points span { font-size: 15px; }
.comfort-section-heading > p:not(.section-kicker),
.comfort-option-card > p { font-size: 17px; }
.comfort-option-card dt { font-size: 15px; }
.comfort-option-card dd,
.comfort-departures p { font-size: 16px; }
.comfort-option-card button,
.comfort-lead-band a { font-size: 16px; }
.comfort-price span { font-size: 13px; }
.comfort-travel-info > small { font-size: 12px; }
.comfort-lead-band p { font-size: 16px; line-height: 1.6; }
.comfort-services-grid h3 { font-size: 20px; }
.comfort-services-grid p { font-size: 16px; line-height: 1.65; }
.comfort-hotel-grid span { font-size: 12px; }
.comfort-calendar article > div:last-child > span,
.gold-shifting-route article span,
.premium-hotel-pair span { font-size: 12px; }
.comfort-calendar h3 { font-size: 21px; }
.comfort-calendar p,
.gold-shifting-route article p,
.premium-hotel-pair p { font-size: 15px; line-height: 1.65; }
.comfort-visits-section li { font-size: 16px; line-height: 1.6; }
.comfort-gallery-track figcaption span,
.comfort-gallery-cta span { font-size: 15px; }
.comfort-gallery-cta a { font-size: 15px; }
.gold-shifting-route article h3 { font-size: 21px; }

.omra-formulas-promises span { font-size: 13px; }
.omra-formulas-hero-card span { font-size: 12px; }
.omra-formulas-hero-card strong { font-size: 18px; }
.omra-formulas-hero-card small { font-size: 13px; }
.omra-formulas-nav a { font-size: 14px; }
.omra-formulas-section-head > p:last-child { font-size: 18px; }
.omra-formula-card > header span { font-size: 13px; }
.omra-formula-card > header > strong small { font-size: 10px; }
.omra-formula-summary { font-size: 17px; }
.omra-formula-hotels span { font-size: 12px; }
.omra-formula-hotels strong { font-size: 16px; }
.omra-formula-card li { font-size: 16px; }
.omra-formula-details,
.omra-formula-whatsapp { font-size: 15px; }
.omra-formulas-difference p { font-size: 16px; }
.omra-formulas-difference a { font-size: 14px; }
.omra-formulas-services-intro > p:not(.section-kicker) { font-size: 18px; }
.omra-formulas-services-intro > a { font-size: 15px; }
.omra-formulas-service-grid small { font-size: 11px; }
.omra-formulas-service-grid h3 { font-size: 18px; }
.omra-formulas-service-grid p { font-size: 14px; line-height: 1.6; }
.omra-hotel-package-head span { font-size: 12px; }
.omra-hotel-package-head p { font-size: 15px; }
.omra-hotel-package-head a { font-size: 14px; }
.omra-hotel-city-grid > section > header p { font-size: 13px; }
.omra-hotel-scroll { display: grid; grid-template-columns: repeat(auto-fit, minmax(125px, 1fr)); gap: 10px; overflow: visible; padding: 0; scroll-snap-type: none; }
.omra-hotel-scroll figure { min-width: 0; margin: 0; }
.omra-hotel-scroll img { height: 170px; }
.omra-hotel-scroll figcaption { font-size: 14px; }

.omra-formulas-quick-lead {
    display: grid; grid-template-columns: minmax(0,.78fr) minmax(500px,1.22fr); gap: 42px; align-items: center;
    width: min(1280px,92vw); margin: 0 auto 82px; border: 1px solid #d7e7ec; border-radius: 28px; padding: clamp(28px,4vw,50px);
    background: linear-gradient(135deg,#eaf7f6,#f7fbfe); box-shadow: 0 20px 48px rgba(20,54,86,.08);
}
.omra-formulas-quick-lead h2 { margin: 7px 0 16px; color: #073a70; font-size: clamp(32px,3.7vw,50px); line-height: 1.05; letter-spacing: -.04em; }
.omra-formulas-quick-lead > div > p:not(.section-kicker) { margin: 0 0 20px; color: #52677c; font-size: 17px; line-height: 1.7; }
.omra-formulas-quick-lead > div > a { display: inline-flex; align-items: center; gap: 9px; color: #087c36; font-size: 15px; font-weight: 800; }
.omra-formulas-quick-lead > div > a svg { width: 21px; height: 21px; fill: currentColor; }
.omra-formulas-quick-lead form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; border: 1px solid #dae5ed; border-radius: 22px; padding: 24px; background: #fff; box-shadow: 0 14px 32px rgba(20,54,86,.07); }
.omra-formulas-quick-lead label { display: grid; gap: 7px; color: #24415d; font-size: 14px; font-weight: 750; }
.omra-formulas-quick-lead label:nth-of-type(3) { grid-column: 1 / -1; }
.omra-formulas-quick-lead input,
.omra-formulas-quick-lead select { min-height: 50px; border-radius: 11px; background: #fbfdff; }
.omra-formulas-quick-lead button { grid-column: 1 / -1; min-height: 52px; border: 0; border-radius: 11px; color: #fff; background: linear-gradient(90deg,#0a5fa6,#0a7e9e); font-size: 16px; font-weight: 850; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; }
.omra-formulas-quick-lead button:hover { transform: translateY(-2px); box-shadow: 0 12px 24px rgba(10,95,166,.2); }

@media (max-width: 1050px) {
    .omra-formulas-hero { grid-template-columns: 1fr; }
    .omra-formulas-hero-visual { min-height: 430px; }
    .omra-formulas-hero-card { right: 18px; }
    .omra-formulas-card-grid, .omra-formulas-services { grid-template-columns: 1fr; }
    .omra-formula-card { min-height: 0; }
    .omra-formulas-services-intro { display: grid; justify-items: start; }
    .omra-hotel-package { grid-template-columns: 1fr; }
    .omra-hotel-package-head { min-height: 220px; }
    .omra-hotel-package-head a { align-self: start; margin-top: 24px; }
    .omra-formulas-lead { align-items: flex-start; flex-direction: column; }
    .omra-formulas-lead > div:last-child { justify-content: flex-start; max-width: none; }
    .omra-formulas-quick-lead { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    .omra-formulas-page [id] { scroll-margin-top: 150px; }
    .omra-formulas-hero { min-height: 0; margin-top: 18px; border-radius: 24px; padding: 30px 22px 22px; }
    .omra-formulas-hero-copy h1 { font-size: clamp(36px,10.4vw,47px); overflow-wrap: break-word; }
    .omra-formulas-hero-text { font-size: 15px; }
    .omra-formulas-actions { display: grid; grid-template-columns: 1fr; }
    .omra-formulas-promises { grid-template-columns: 1fr; gap: 3px; }
    .omra-formulas-promises span { min-height: 45px; }
    .omra-formulas-hero-visual { min-height: 380px; }
    .omra-formulas-hero-card { right: 10px; left: 10px; min-width: 0; }
    .omra-formulas-hero-card.is-economy { bottom: 92px; }
    .omra-formulas-hero-card.is-comfort { right: 10px; bottom: 14px; }
    .omra-formulas-nav { top: 137px; justify-content: flex-start; overflow-x: auto; }
    .omra-formulas-nav a { flex: 0 0 auto; }
    .omra-formulas-compare, .omra-formulas-hotels { padding: 58px 0; }
    .omra-formulas-section-head { text-align: left; }
    .omra-formulas-section-head h2 { font-size: 39px; }
    .omra-formula-card { border-radius: 23px; padding: 27px 20px; }
    .omra-formula-card > header > strong { min-width: 67px; min-height: 67px; }
    .omra-formula-summary { min-height: 0; }
    .omra-formula-hotels { grid-template-columns: 1fr; }
    .omra-formula-hotels div { min-height: 0; }
    .omra-formulas-difference { grid-template-columns: 1fr; }
    .omra-formulas-difference > strong { white-space: normal; }
    .omra-formulas-difference a { justify-content: center; }
    .omra-formulas-services { padding-top: 58px; padding-bottom: 58px; }
    .omra-formulas-service-grid, .omra-hotel-city-grid { grid-template-columns: 1fr; }
    .omra-formulas-service-grid article { min-height: 0; }
    .omra-hotel-package { padding: 12px; }
    .omra-hotel-package-head { min-height: 0; }
    .omra-hotel-package-head a { width: 100%; }
    .omra-hotel-scroll { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .omra-hotel-scroll img { height: 180px; }
    .omra-formulas-lead { border-radius: 22px; }
    .omra-formulas-lead > div:last-child, .omra-formulas-lead a { width: 100%; }
    .omra-formulas-quick-lead { margin-bottom: 58px; border-radius: 22px; padding: 24px 18px; }
    .omra-formulas-quick-lead form { grid-template-columns: 1fr; padding: 19px; }
    .omra-formulas-quick-lead label:nth-of-type(3),
    .omra-formulas-quick-lead button { grid-column: auto; }
}
@media (max-width: 460px) {
    .omra-formulas-hero { width: calc(100% - 20px); }
    .omra-formulas-hero-copy h1 { font-size: 32px; }
    .omra-formulas-hero-visual { min-height: 330px; }
    .omra-formulas-hero-visual > img { border-radius: 20px; }
    .omra-formula-card > header h2 { font-size: 34px; }
    .omra-formula-card > header > strong { font-size: 18px; }
    .omra-formula-card footer > a { width: 100%; flex: 1 1 100%; }
    .omra-formulas-services-intro h2 { font-size: 38px; }
    .omra-formulas-service-grid article { grid-template-columns: 48px minmax(0,1fr); padding: 17px; }
    .omra-formulas-service-grid article > span { width: 46px; height: 46px; font-size: 21px; }
    .omra-hotel-scroll { grid-template-columns: 1fr; }
    .omra-hotel-scroll img { height: 210px; }
}

/* Hajj packages overview */
.hajj-forfaits-page { color: #1d2634; background: #f6f7f9; }
.hajj-forfaits-page [id] { scroll-margin-top: 132px; }
.hajj-forfaits-hero {
    display: grid; grid-template-columns: minmax(0,1.08fr) minmax(430px,.92fr); gap: clamp(34px,6vw,90px); align-items: center;
    width: min(1380px,92vw); min-height: 650px; margin: 34px auto 26px; border-radius: 34px; padding: clamp(36px,5vw,72px);
    color: #fff; background: radial-gradient(circle at 12% 10%,rgba(216,182,95,.18),transparent 28%),linear-gradient(135deg,#090806,#17140e 58%,#312714);
    box-shadow: 0 30px 80px rgba(19,15,8,.22); overflow: hidden;
}
.hajj-forfaits-back { display: inline-flex; margin-bottom: 34px; color: rgba(255,255,255,.68); font-size: 14px; font-weight: 700; }
.hajj-forfaits-back:hover { color: #eed384; }
.hajj-forfaits-hero-copy .section-kicker { color: #d8b65f; }
.hajj-forfaits-hero-copy h1 { max-width: 760px; margin: 10px 0 24px; color: #fff; font-size: clamp(50px,5.8vw,82px); line-height: .96; letter-spacing: -.055em; }
.hajj-forfaits-hero-copy > p:not(.section-kicker) { max-width: 720px; margin: 0; color: rgba(255,255,255,.76); font-size: 18px; font-weight: 520; line-height: 1.72; }
.hajj-forfaits-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.hajj-forfaits-hero-actions a { display: inline-flex; min-height: 54px; gap: 9px; align-items: center; justify-content: center; border-radius: 12px; padding: 0 20px; font-size: 15px; font-weight: 820; transition: transform .2s ease,box-shadow .2s ease; }
.hajj-forfaits-hero-actions a:first-child { color: #17130b; background: linear-gradient(135deg,#ecd58d,#c19a40); box-shadow: 0 13px 28px rgba(0,0,0,.24); }
.hajj-forfaits-hero-actions a:last-child { border: 1px solid rgba(216,182,95,.5); color: #efd384; background: rgba(255,255,255,.06); }
.hajj-forfaits-hero-actions a:hover { transform: translateY(-3px); box-shadow: 0 17px 30px rgba(0,0,0,.24); }
.hajj-forfaits-hero-actions svg { width: 20px; height: 20px; fill: currentColor; }
.hajj-forfaits-hero-visual { position: relative; min-height: 510px; }
.hajj-forfaits-hero-visual::before { position: absolute; inset: 35px -70px -90px 55px; border: 1px solid rgba(216,182,95,.2); border-radius: 50%; box-shadow: 0 0 0 55px rgba(216,182,95,.035); content: ''; }
.hajj-forfaits-hero-visual > img { position: absolute; inset: 0; width: 100%; height: 100%; border: 1px solid rgba(216,182,95,.28); border-radius: 27px; object-fit: cover; object-position: center; filter: saturate(.82) contrast(1.04); box-shadow: 0 25px 60px rgba(0,0,0,.36); }
.hajj-forfaits-hero-visual > div { position: absolute; right: -20px; bottom: 25px; left: 34px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.hajj-forfaits-hero-visual span { display: flex; min-height: 64px; flex-direction: column; justify-content: center; border: 1px solid rgba(255,255,255,.14); border-radius: 14px; padding: 11px 14px; background: rgba(9,8,6,.86); box-shadow: 0 10px 25px rgba(0,0,0,.25); backdrop-filter: blur(12px); }
.hajj-forfaits-hero-visual span::before { display: block; width: 28px; height: 3px; margin-bottom: 8px; border-radius: 99px; background: #d8b65f; content: ''; }
.hajj-forfaits-hero-visual span.is-comfort::before { background: #48a878; }
.hajj-forfaits-hero-visual span.is-gold-shifting::before { background: #b99c4d; }
.hajj-forfaits-hero-visual span.is-gold::before { background: #d2ae4e; }
.hajj-forfaits-hero-visual span.is-platinum::before { background: #ad7ec0; }
.hajj-forfaits-hero-visual b { color: #fff; font-size: 14px; }
.hajj-forfaits-hero-visual small { margin-top: 2px; color: rgba(255,255,255,.58); font-size: 11px; font-weight: 650; }

.hajj-forfaits-nav { display: flex; justify-content: center; gap: 5px; width: min(760px,92vw); margin: 0 auto; border: 1px solid #ded8cb; border-radius: 16px; padding: 7px; background: rgba(255,255,255,.94); box-shadow: 0 13px 32px rgba(29,23,13,.08); }
.hajj-forfaits-nav a { border-radius: 10px; padding: 11px 19px; color: #655f52; font-size: 14px; font-weight: 780; white-space: nowrap; }
.hajj-forfaits-nav a:hover { color: #17130b; background: #f5edda; }
.hajj-forfaits-compare { width: min(1320px,92vw); margin: 0 auto; padding: 86px 0 76px; }
.hajj-forfaits-heading { max-width: 880px; margin: 0 auto 38px; text-align: center; }
.hajj-forfaits-heading .section-kicker { color: #a27e2e; }
.hajj-forfaits-heading h2 { margin: 8px 0 16px; color: #17130b; font-size: clamp(38px,4.7vw,62px); line-height: 1.03; letter-spacing: -.045em; }
.hajj-forfaits-heading > p:last-child { max-width: 720px; margin: 0 auto; color: #666f7e; font-size: 18px; line-height: 1.7; }
.hajj-forfaits-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
.hajj-forfait-card { --forfait-accent:#b3913d; position: relative; display: flex; min-height: 720px; flex-direction: column; border: 1px solid #dfdfdd; border-radius: 29px; padding: clamp(27px,3.5vw,42px); background: #fff; box-shadow: 0 19px 48px rgba(31,28,22,.08); overflow: hidden; }
.hajj-forfait-card::before { position: absolute; top: 0; right: 0; left: 0; height: 7px; background: var(--forfait-accent); content: ''; }
.hajj-forfait-card.is-confort { --forfait-accent:#3e956b; }
.hajj-forfait-card.is-gold-shifting { --forfait-accent:#8a7230; }
.hajj-forfait-card.is-gold { --forfait-accent:#8c701b; }
.hajj-forfait-card.is-platinum { --forfait-accent:#885a99; }
.hajj-forfait-card > header { display: flex; gap: 20px; align-items: flex-start; justify-content: space-between; }
.hajj-forfait-card > header span { color: var(--forfait-accent); font-size: 13px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.hajj-forfait-card > header h2 { margin: 7px 0 0; color: #153b64; font-size: clamp(32px,3.5vw,45px); line-height: 1.02; letter-spacing: -.04em; }
.hajj-forfait-card > header > b { flex: 0 0 auto; border-radius: 999px; padding: 9px 13px; color: #3e4855; background: #f0f2f4; font-size: 13px; }
.hajj-forfait-card-summary { min-height: 83px; margin: 24px 0; color: #5e6877; font-size: 17px; line-height: 1.7; }
.hajj-forfait-card-focus { border-left: 4px solid var(--forfait-accent); border-radius: 0 16px 16px 0; padding: 19px 21px; background: #f6f4ef; }
.hajj-forfait-card-focus small { display: block; color: var(--forfait-accent); font-size: 12px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.hajj-forfait-card-focus strong { display: block; margin-top: 5px; color: #17130b; font-size: 21px; }
.hajj-forfait-card-focus p { margin: 8px 0 0; color: #657080; font-size: 15px; line-height: 1.6; }
.hajj-forfait-card-stays { display: grid; gap: 0; margin: 22px 0 28px; }
.hajj-forfait-card-stays p { display: grid; grid-template-columns: 92px minmax(0,1fr); gap: 14px; margin: 0; border-top: 1px solid #e3e7eb; padding: 14px 0; color: #4f5f71; font-size: 15px; line-height: 1.55; }
.hajj-forfait-card-stays span { color: #8b7450; font-size: 12px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.hajj-forfait-card footer { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; }
.hajj-forfait-detail,.hajj-forfait-whatsapp { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: 10px; border-radius: 12px; padding: 11px 18px; font-size: 15px; font-weight: 820; transition: transform .2s ease,box-shadow .2s ease; }
.hajj-forfait-detail { flex: 1 1 240px; color: #fff; background: #17140e; box-shadow: 0 11px 24px rgba(23,20,14,.18); }
.hajj-forfait-detail > span { transition: transform .2s ease; }
.hajj-forfait-detail:hover > span { transform: translateX(4px); }
.hajj-forfait-whatsapp { color: #087a36; background: #e9f8ec; }
.hajj-forfait-whatsapp svg { width: 20px; height: 20px; fill: currentColor; }
.hajj-forfait-detail:hover,.hajj-forfait-whatsapp:hover { transform: translateY(-2px); box-shadow: 0 14px 27px rgba(23,20,14,.16); }

.hajj-forfaits-lead { display: grid; grid-template-columns: minmax(0,.78fr) minmax(500px,1.22fr); gap: 48px; align-items: center; width: min(1280px,92vw); margin: 0 auto 82px; border: 1px solid #dfd5bf; border-radius: 29px; padding: clamp(30px,4vw,52px); background: linear-gradient(135deg,#f4eddd,#fff); box-shadow: 0 19px 45px rgba(31,24,11,.08); }
.hajj-forfaits-lead .section-kicker { color: #99721d; }
.hajj-forfaits-lead h2 { margin: 7px 0 16px; color: #17130b; font-size: clamp(34px,3.8vw,52px); line-height: 1.04; letter-spacing: -.045em; }
.hajj-forfaits-lead > div > p:not(.section-kicker) { margin: 0 0 20px; color: #67675f; font-size: 17px; line-height: 1.7; }
.hajj-forfaits-lead > div > a { display: inline-flex; align-items: center; gap: 9px; color: #087a36; font-size: 15px; font-weight: 820; }
.hajj-forfaits-lead > div > a svg { width: 21px; height: 21px; fill: currentColor; }
.hajj-forfaits-lead form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; border: 1px solid #e2ddd2; border-radius: 22px; padding: 24px; background: #fff; box-shadow: 0 14px 32px rgba(31,24,11,.07); }
.hajj-forfaits-lead label { display: grid; gap: 7px; color: #3e413f; font-size: 14px; font-weight: 760; }
.hajj-forfaits-lead label:nth-of-type(3) { grid-column: 1 / -1; }
.hajj-forfaits-lead input,.hajj-forfaits-lead select { min-height: 50px; border-radius: 11px; background: #fdfdfc; }
.hajj-forfaits-lead button { grid-column: 1 / -1; min-height: 53px; border: 0; border-radius: 11px; color: #17130b; background: linear-gradient(90deg,#e1c476,#c49a3b); font-size: 16px; font-weight: 850; cursor: pointer; transition: transform .2s ease,box-shadow .2s ease; }
.hajj-forfaits-lead button:hover { transform: translateY(-2px); box-shadow: 0 12px 24px rgba(126,91,19,.18); }

.hajj-forfaits-services { display: grid; grid-template-columns: minmax(300px,.72fr) minmax(0,1.28fr); gap: clamp(38px,6vw,82px); padding: 84px max(4vw,calc((100vw - 1280px)/2)); color: #fff; background: radial-gradient(circle at 8% 12%,rgba(216,182,95,.13),transparent 26%),#12100c; }
.hajj-forfaits-services > header { align-self: center; }
.hajj-forfaits-services .section-kicker { color: #d8b65f; }
.hajj-forfaits-services > header h2 { max-width: 540px; margin: 8px 0 20px; font-size: clamp(38px,4.5vw,62px); line-height: 1.03; letter-spacing: -.045em; }
.hajj-forfaits-services > header > p:last-child { max-width: 520px; margin: 0; color: rgba(255,255,255,.68); font-size: 17px; line-height: 1.75; }
.hajj-forfaits-services > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.hajj-forfaits-services article { display: grid; grid-template-columns: 57px minmax(0,1fr); gap: 16px; min-height: 150px; align-items: start; border: 1px solid rgba(216,182,95,.17); border-radius: 18px; padding: 20px; background: rgba(255,255,255,.055); }
.hajj-forfaits-services article > span { display: grid; width: 55px; height: 55px; place-items: center; border-radius: 15px; background: rgba(216,182,95,.12); font-size: 27px; }
.hajj-forfaits-services small { color: #d8b65f; font-size: 11px; font-weight: 850; letter-spacing: .09em; }
.hajj-forfaits-services h3 { margin: 4px 0 7px; font-size: 18px; }
.hajj-forfaits-services article p { margin: 0; color: rgba(255,255,255,.63); font-size: 14px; line-height: 1.6; }
.hajj-forfaits-final-cta { display: flex; gap: 38px; align-items: center; justify-content: space-between; width: min(1280px,92vw); margin: 78px auto; border-radius: 28px; padding: clamp(30px,4vw,50px); color: #fff; background: linear-gradient(135deg,#0c0b08,#2d2413); box-shadow: 0 22px 52px rgba(23,18,9,.16); }
.hajj-forfaits-final-cta .section-kicker { color: #d8b65f; }
.hajj-forfaits-final-cta h2 { margin: 6px 0 12px; font-size: clamp(31px,3.7vw,48px); line-height: 1.04; }
.hajj-forfaits-final-cta p:not(.section-kicker) { margin: 0; color: rgba(255,255,255,.7); font-size: 16px; }
.hajj-forfaits-final-cta > div:last-child { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.hajj-forfaits-final-cta > div:last-child a { display: inline-flex; min-height: 50px; gap: 9px; align-items: center; justify-content: center; border: 1px solid rgba(216,182,95,.45); border-radius: 12px; padding: 0 18px; color: #efd384; font-size: 14px; font-weight: 820; }
.hajj-forfaits-final-cta > div:last-child a:last-child { color: #17130b; background: #d8b65f; }
.hajj-forfaits-final-cta svg { width: 20px; height: 20px; fill: currentColor; }

@media (max-width: 1050px) {
    .hajj-forfaits-hero { grid-template-columns: 1fr; }
    .hajj-forfaits-hero-visual { min-height: 460px; }
    .hajj-forfaits-lead,.hajj-forfaits-services { grid-template-columns: 1fr; }
    .hajj-forfaits-final-cta { align-items: flex-start; flex-direction: column; }
    .hajj-forfaits-final-cta > div:last-child { justify-content: flex-start; }
}
@media (max-width: 760px) {
    .hajj-forfaits-page [id] { scroll-margin-top: 148px; }
    .hajj-forfaits-hero { min-height: 0; margin-top: 18px; border-radius: 24px; padding: 29px 22px 22px; }
    .hajj-forfaits-back { margin-bottom: 24px; }
    .hajj-forfaits-hero-copy h1 { font-size: clamp(38px,11.2vw,52px); }
    .hajj-forfaits-hero-copy > p:not(.section-kicker) { font-size: 16px; }
    .hajj-forfaits-hero-actions { display: grid; grid-template-columns: 1fr; }
    .hajj-forfaits-hero-visual { min-height: 410px; }
    .hajj-forfaits-hero-visual > div { right: 12px; bottom: 13px; left: 12px; grid-template-columns: 1fr; }
    .hajj-forfaits-hero-visual span { min-height: 52px; }
    .hajj-forfaits-hero-visual span::before { display: none; }
    .hajj-forfaits-nav { justify-content: flex-start; overflow-x: auto; }
    .hajj-forfaits-nav a { flex: 0 0 auto; }
    .hajj-forfaits-compare { padding: 58px 0; }
    .hajj-forfaits-heading { text-align: left; }
    .hajj-forfaits-heading h2 { font-size: 39px; }
    .hajj-forfaits-grid { grid-template-columns: 1fr; }
    .hajj-forfait-card { min-height: 0; border-radius: 23px; padding: 27px 20px; }
    .hajj-forfait-card > header { flex-direction: column; }
    .hajj-forfait-card-summary { min-height: 0; }
    .hajj-forfait-card-stays p { grid-template-columns: 1fr; gap: 5px; }
    .hajj-forfaits-lead { margin-bottom: 58px; border-radius: 22px; padding: 25px 18px; }
    .hajj-forfaits-lead form { grid-template-columns: 1fr; padding: 19px; }
    .hajj-forfaits-lead label:nth-of-type(3),.hajj-forfaits-lead button { grid-column: auto; }
    .hajj-forfaits-services { padding-top: 60px; padding-bottom: 60px; }
    .hajj-forfaits-services > div { grid-template-columns: 1fr; }
    .hajj-forfaits-services article { min-height: 0; }
    .hajj-forfaits-final-cta { border-radius: 22px; }
    .hajj-forfaits-final-cta > div:last-child,.hajj-forfaits-final-cta a { width: 100%; }
}
@media (max-width: 460px) {
    .hajj-forfaits-hero { width: calc(100% - 20px); }
    .hajj-forfaits-hero-copy h1 { font-size: 36px; }
    .hajj-forfaits-hero-visual { min-height: 370px; }
    .hajj-forfait-card footer > a { width: 100%; flex: 1 1 100%; }
    .hajj-forfaits-services > header h2 { font-size: 38px; }
    .hajj-forfaits-services article { grid-template-columns: 50px minmax(0,1fr); padding: 17px; }
    .hajj-forfaits-services article > span { width: 48px; height: 48px; font-size: 23px; }
}

/* Hajj main page: black, gold and ivory visual system */
.hajj-main-page { padding-bottom: 1px; background: #f6f4ef; }
.hajj-main-page .section-kicker,
.hajj-main-page .section-title > span { color: #a8812a; }
.hajj-main-page .hajj-landing-copy .section-kicker { color: #e4c66f; }
.hajj-main-page .hajj-landing-copy h1 { color: #fff; }
.hajj-main-page .hajj-award-line { border-left-color: #d8b65f; color: rgba(255,255,255,.9); }
.hajj-main-page .hajj-landing-actions .primary-button { color: #18140b; background: linear-gradient(135deg,#ead486,#c79c3b); box-shadow: 0 14px 30px rgba(0,0,0,.24); }
.hajj-main-page .hajj-landing-actions .ghost-button { border-color: rgba(224,192,102,.65); color: #f3d984; background: rgba(15,12,7,.34); }
.hajj-main-page .hajj-trust-section article { border-color: #e5dcc7; background: #fffdf9; }
.hajj-main-page .hajj-trust-section span { background: #f4ead1; }
.hajj-main-page .hajj-trust-section h3 { color: #211c12; }
.hajj-main-page .hajj-trust-section p { color: #645f55; }
.hajj-main-page .hajj-formulas-section { border-radius: 30px; padding: clamp(30px,4vw,50px) !important; background-color: #12100c !important; background-image: radial-gradient(circle at 100% 0,rgba(216,182,95,.15),transparent 35%) !important; box-shadow: 0 26px 58px rgba(27,21,10,.16); }
.hajj-main-page .hajj-formulas-section .section-title.centered h2 { color: #fff !important; }
.hajj-main-page .hajj-formulas-section .section-title.centered p { color: rgba(255,255,255,.7); }
.hajj-main-page .hajj-formulas-section .section-title > span { color: #d8b65f; }
.hajj-main-page .hajj-formula-cards-four { border-color: rgba(216,182,95,.2); }
.hajj-main-page .hajj-formula-cards-four article:nth-child(odd),
.hajj-main-page .hajj-formula-cards-four article:nth-child(1),
.hajj-main-page .hajj-formula-cards-four article:nth-child(2) { border-color: rgba(216,182,95,.18); }
.hajj-main-page .hajj-formula-card-head > span { color: #d8b65f; }
.hajj-main-page .hajj-formula-card-head > b { color: #201a0d; background: #e6cc82; }
.hajj-main-page .hajj-formula-cards-four li::before { color: #d8b65f; }
.hajj-main-page .hajj-formula-cards-four .hajj-formula-actions .hajj-formula-detail { color: #17130b !important; background: #d8b65f !important; box-shadow: 0 10px 22px rgba(0,0,0,.18); }
.hajj-main-page .hajj-formula-whatsapp { color: #087a36; background: #edf9ef; }
.hajj-main-page .hajj-quick-lead { border-color: #dfd1ad; background: linear-gradient(135deg,#fff,#f1e7cf); box-shadow: 0 18px 42px rgba(40,31,12,.08); }
.hajj-main-page .hajj-quick-lead h2 { color: #1c180f; }
.hajj-main-page .hajj-quick-lead button { color: #17130b; background: linear-gradient(90deg,#e2c570,#c99e3f); }
.hajj-main-page .hajj-zones-copy { border-color: #e3d9c4; background: #fffdf8; }
.hajj-main-page .hajj-zones-copy h2,
.hajj-main-page .hajj-journey-modern h2 { color: #211c12; }
.hajj-main-page .hajj-zone-list details { border-color: #e1d7c2; background: #f9f4e9; }
.hajj-main-page .hajj-zone-list summary { color: #241e12; }
.hajj-main-page .hajj-journey-modern-grid { border-color: #dfd5bf; background: #fffdf9; box-shadow: 0 18px 42px rgba(40,31,12,.07); }
.hajj-main-page .hajj-journey-modern li { color: #514b40; }
.hajj-main-page .hajj-journey-modern li span { color: #18140b; background: #d8b65f; }
.hajj-main-page .hajj-included-section { color: #fff !important; background-color: #12100c !important; background-image: radial-gradient(circle at 10% 5%,rgba(216,182,95,.15),transparent 31%) !important; }
.hajj-main-page .hajj-included-section::before { background: radial-gradient(circle,rgba(216,182,95,.14),transparent 68%); }
.hajj-main-page .hajj-included-section > div:first-child { background: linear-gradient(145deg,#0c0b08,#2d2413) !important; box-shadow: 0 18px 40px rgba(0,0,0,.25); }
.hajj-main-page .hajj-included-section .section-kicker,
.hajj-main-page .hajj-included-section > div:first-child .section-kicker { color: #d8b65f !important; }
.hajj-main-page .hajj-included-section h2 { color: #fff; }
.hajj-main-page .hajj-included-section p:not(.section-kicker) { color: rgba(255,255,255,.7); }
.hajj-main-page .hajj-included-grid article { border-color: rgba(216,182,95,.2) !important; background: rgba(255,255,255,.055) !important; box-shadow: none; }
.hajj-main-page .hajj-included-grid article:hover { border-color: rgba(216,182,95,.55) !important; background: rgba(255,255,255,.09) !important; }
.hajj-main-page .hajj-included-grid .hajj-service-emoji { background: rgba(216,182,95,.12); }
.hajj-main-page .hajj-included-grid b { color: #fff !important; }
.hajj-main-page .hajj-included-grid small { color: rgba(255,255,255,.65) !important; }
.hajj-main-page .hajj-preform-modern { border-color: #e0d6c0; }
.hajj-main-page .hajj-preform-modern .hajj-preform-intro { border-color: #3a301d; background: linear-gradient(145deg,#0c0b08,#2d2413) !important; }
.hajj-main-page .hajj-preform-modern .hajj-preform-box { border-color: #e0d6c0; background: #fffdf9 !important; }
.hajj-main-page .hajj-preform-intro .section-kicker { color: #d8b65f; }
.hajj-main-page .hajj-preform-intro h2 { color: #fff !important; }
.hajj-main-page .hajj-contact-note { border-color: rgba(216,182,95,.28); background: rgba(216,182,95,.1) !important; }
.hajj-main-page .hajj-contact-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 3px; }
.hajj-main-page .hajj-contact-note a { min-height: 45px; color: #fff !important; }
.hajj-main-page .hajj-contact-whatsapp { background: #17bf55 !important; }
.hajj-main-page .hajj-contact-callback { border: 1px solid rgba(232,204,124,.55); background: rgba(255,255,255,.07) !important; box-shadow: none; }
.hajj-main-page .hajj-contact-callback svg { width: 19px; height: 19px; fill: currentColor; }
.hajj-main-page .hajj-contact-actions a:hover { transform: translateY(-2px); filter: brightness(1.06); }
.hajj-main-page .hajj-preform-modern button { color: #17130b; background: linear-gradient(90deg,#e2c570,#c99e3f) !important; }
.hajj-main-page .hajj-faq-modern { background: #eee7d9; }
.hajj-main-page .hajj-faq-head h2 { color: #211c12; }
.hajj-main-page .hajj-faq-grid > details,
.hajj-main-page .hajj-faq-more-list > details { border-color: #dfd3ba; background: #fffdf9; }

/* The Hajj packages hero uses one uninterrupted pilgrimage photograph. */
.hajj-forfaits-hero-visual > img { object-position: 52% center; filter: saturate(.9) contrast(1.05); }
.hajj-forfaits-hero-visual::before { z-index: 0; }
.hajj-forfaits-hero-visual > img { z-index: 1; }
.header-whatsapp,
.call-button { transition: transform .2s ease,filter .2s ease,box-shadow .2s ease; }
.call-button:hover { transform: translateY(-2px); filter: brightness(1.05); box-shadow: 0 13px 25px rgba(7,47,80,.2); }
.call-button:hover svg { transform: rotate(-8deg) scale(1.06); }
.call-button svg { transition: transform .2s ease; }

/* Voyages culturels : une page de présentation avant le lancement des itinéraires. */
.culture-coming-soon { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(260px,.65fr); gap: clamp(24px,5vw,70px); align-items: center; width: min(1120px,calc(100% - 40px)); min-height: min(620px,calc(100vh - 180px)); margin: 0 auto; padding: clamp(70px,10vw,130px) 0; }
.culture-coming-soon-copy { max-width: 720px; }
.culture-coming-soon .section-kicker { margin-bottom: 13px; color: #52bdc0; }
.culture-coming-soon h1 { max-width: 680px; margin: 0; color: #0c4179; font-size: clamp(44px,6vw,82px); line-height: .98; letter-spacing: -.055em; }
.culture-coming-soon-copy > p:not(.section-kicker) { max-width: 630px; margin: 27px 0 0; color: #466181; font-size: clamp(17px,1.6vw,21px); font-weight: 600; line-height: 1.62; }
.culture-coming-soon-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.culture-coming-soon-actions a { min-height: 52px; padding: 0 23px; }
.culture-coming-soon-note { position: relative; overflow: hidden; padding: 34px 31px; border: 1px solid #d7e6ee; border-radius: 26px; color: #fff; background: linear-gradient(145deg,#073460,#0d5b85); box-shadow: 0 25px 55px rgba(16,66,107,.16); }
.culture-coming-soon-note::after { content: ''; position: absolute; right: -60px; bottom: -75px; width: 210px; height: 210px; border: 1px solid rgba(117,224,221,.34); border-radius: 50%; box-shadow: 0 0 0 28px rgba(117,224,221,.06),0 0 0 57px rgba(117,224,221,.04); }
.culture-coming-soon-note > * { position: relative; z-index: 1; }
.culture-coming-soon-note > span { display: grid; width: 46px; height: 46px; place-items: center; margin-bottom: 26px; border-radius: 15px; color: #0b496f; background: #8ae1df; font-size: 22px; }
.culture-coming-soon-note strong { display: block; max-width: 215px; font-size: 22px; line-height: 1.13; }
.culture-coming-soon-note p { max-width: 290px; margin: 13px 0 0; color: rgba(255,255,255,.78); font-size: 15px; font-weight: 600; line-height: 1.55; }

/* Avis : les contrôles restent dans la gouttière latérale, hors des cartes. */
.reviews-carousel { padding: 0 72px 34px; }
.reviews-carousel .carousel-arrow { box-shadow: 0 10px 24px rgba(16,42,90,.13); }
@media (max-width: 760px) {
    .hajj-forfaits-hero-visual { min-height: 360px; }
    .hajj-main-page .hajj-formulas-section { border-radius: 23px; }
    .hajj-main-page .hajj-contact-actions a { width: 100%; justify-content: center; }
    .culture-coming-soon { grid-template-columns: 1fr; width: min(100% - 32px,620px); min-height: 0; padding: 68px 0 78px; }
    .culture-coming-soon h1 { font-size: clamp(42px,13vw,58px); }
    .culture-coming-soon-copy > p:not(.section-kicker) { font-size: 17px; }
    .culture-coming-soon-actions a { width: 100%; justify-content: center; }
    .culture-coming-soon-note { padding: 28px 24px; }
    .reviews-carousel { width: 100%; padding: 0 64px 30px; }
}

/* Services et engagements : traitement éditorial, sans emojis ni cartes répétitives. */
.service-line-icon {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    color: currentColor;
}
.service-icon-svg { width: 27px; height: 27px; }

.hajj-main-page .hajj-trust-section {
    gap: 0;
    border-top: 1px solid #d9cfba;
    border-bottom: 1px solid #d9cfba;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    margin-top: 0 !important;
}
.hajj-main-page .hajj-trust-section article {
    display: grid;
    grid-template-columns: 42px minmax(0,1fr);
    grid-template-rows: auto 1fr;
    column-gap: 15px;
    align-content: start;
    min-height: 150px;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 28px 25px;
    background: transparent !important;
    box-shadow: none !important;
}
.hajj-main-page .hajj-trust-section article + article { border-left: 1px solid #dfd6c5 !important; }
.hajj-main-page .hajj-trust-section .service-line-icon {
    grid-row: 1 / 3;
    width: 36px;
    height: 36px;
    border-radius: 0;
    color: #a8812a;
    background: transparent !important;
}
.hajj-main-page .hajj-trust-section h3 {
    grid-column: 2;
    margin: 0 0 7px !important;
    font-size: 18px !important;
    font-weight: 720;
}
.hajj-main-page .hajj-trust-section p {
    grid-column: 2;
    font-size: 14px;
    font-weight: 480;
    line-height: 1.55 !important;
}

.hajj-main-page .hajj-trust-section { margin-bottom: 34px; }
.hajj-recognition-section {
    width: min(760px, 92vw);
    margin: 0 auto 76px;
    text-align: center;
}
.hajj-recognition-section .section-kicker { margin: 0 0 10px; color: #a8812a; }
.hajj-recognition-section h2 { margin: 0; color: #211c12; font-size: clamp(29px, 3.3vw, 44px); line-height: 1.12; }
.hajj-recognition-section p:last-child { max-width: 46ch; margin: 18px auto 0; color: #514b40; font-size: clamp(16px, 1.35vw, 19px); line-height: 1.65; }

.hajj-main-page .hajj-included-grid,
.hajj-forfaits-services > div,
.omra-formulas-service-grid { gap: 0 34px !important; }

.hajj-main-page .hajj-included-grid article,
.hajj-forfaits-services article,
.omra-formulas-service-grid article {
    display: grid;
    grid-template-columns: 38px minmax(0,1fr) !important;
    gap: 16px !important;
    align-items: start;
    min-height: 0 !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.17) !important;
    border-radius: 0 !important;
    padding: 23px 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transition: border-color .18s ease !important;
}
.hajj-main-page .hajj-included-grid article:hover,
.hajj-forfaits-services article:hover,
.omra-formulas-service-grid article:hover {
    transform: none !important;
    border-bottom-color: rgba(255,255,255,.42) !important;
    background: transparent !important;
}
.hajj-main-page .hajj-included-grid .service-line-icon,
.hajj-forfaits-services article > .service-line-icon,
.omra-formulas-service-grid article > .service-line-icon {
    width: 34px !important;
    height: 34px !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    font-size: 0 !important;
}
.hajj-main-page .hajj-included-grid .service-line-icon,
.hajj-forfaits-services article > .service-line-icon { color: #d8b65f; }
.omra-formulas-service-grid article > .service-line-icon { color: #70d8d2; }
.hajj-main-page .hajj-included-grid article > div,
.hajj-forfaits-services article > div,
.omra-formulas-service-grid article > div { display: grid; gap: 5px; }
.hajj-main-page .hajj-included-grid b,
.hajj-forfaits-services h3,
.omra-formulas-service-grid h3 {
    margin: 0 !important;
    color: #fff !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
}
.hajj-main-page .hajj-included-grid small,
.hajj-forfaits-services article p,
.omra-formulas-service-grid article p {
    margin: 0 !important;
    color: rgba(255,255,255,.68) !important;
    font-size: 14px !important;
    font-weight: 450 !important;
    line-height: 1.58 !important;
}
.hajj-forfaits-services article small,
.omra-formulas-service-grid article small {
    order: -1;
    color: rgba(216,182,95,.8);
    font-size: 10px;
    font-weight: 760;
    letter-spacing: .12em;
}
.omra-formulas-service-grid article small { color: rgba(112,216,210,.82); }

@media (max-width: 760px) {
    .hajj-main-page .hajj-trust-section { grid-template-columns: 1fr !important; }
    .hajj-main-page .hajj-trust-section article { min-height: 0; padding: 23px 4px; }
    .hajj-main-page .hajj-trust-section article + article {
        border-top: 1px solid #dfd6c5 !important;
        border-left: 0 !important;
    }
    .hajj-main-page .hajj-included-grid,
    .hajj-forfaits-services > div,
    .omra-formulas-service-grid { grid-template-columns: 1fr !important; }
    .hajj-main-page .hajj-included-grid article,
    .hajj-forfaits-services article,
    .omra-formulas-service-grid article { grid-template-columns: 34px minmax(0,1fr) !important; }
    .hajj-recognition-section { grid-template-columns: 1fr; width: min(100% - 36px, 560px); gap: 22px; margin-bottom: 58px; }
    .hajj-recognition-section h2 { font-size: clamp(29px, 7vw, 38px); }
}

/* Correctifs mobiles : topbar compacte, navigation progressive et carrousels sans débordement. */
.nav-parent-row { display: inline-flex; align-items: center; }
.nav-submenu-toggle { display: none; }
.omra-route-carousel { min-width: 0; }
.omra-route-dots { display: none; }

@media (max-width: 760px) {
    body:not(.admin-body) { padding-top: 72px !important; }
    .site-header {
        display: grid !important;
        grid-template-columns: minmax(112px, 1fr) auto 42px;
        gap: 8px !important;
        align-items: center;
        min-height: 72px !important;
        padding: 9px 14px !important;
    }
    .brand {
        grid-column: 1;
        min-width: 0 !important;
        overflow: hidden;
    }
    .brand-logo { width: 145px !important; max-width: 100%; }
    .header-actions {
        grid-column: 2;
        grid-row: 1;
        gap: 6px !important;
        margin: 0 !important;
        order: initial !important;
    }
    .header-whatsapp,
    .call-button {
        width: 40px !important;
        min-width: 40px !important;
        height: 40px;
        min-height: 40px !important;
        border-radius: 12px !important;
        padding: 0 !important;
    }
    .header-whatsapp span,
    .call-button span { display: none !important; }
    .header-whatsapp svg,
    .call-button svg {
        width: 19px !important;
        height: 19px !important;
        flex: 0 0 19px !important;
    }
    .nav-toggle {
        grid-column: 3;
        grid-row: 1;
        display: grid !important;
        width: 42px;
        height: 42px;
        margin: 0 !important;
        place-items: center;
        border-radius: 12px !important;
        padding: 0 !important;
        font-size: 23px !important;
        line-height: 1;
    }
    .main-nav {
        position: absolute;
        top: calc(100% + 8px);
        right: 14px;
        left: 14px;
        z-index: 1001;
        display: none;
        width: auto;
        max-height: calc(100vh - 92px);
        margin: 0 !important;
        overflow-y: auto;
        border-radius: 20px !important;
        padding: 12px !important;
        background: rgba(20, 105, 166, .98) !important;
        box-shadow: 0 22px 48px rgba(3, 27, 61, .3) !important;
    }
    .main-nav.open { display: grid !important; gap: 5px !important; }
    .main-nav > a,
    .main-nav .nav-parent {
        min-height: 46px;
        justify-content: flex-start;
        padding: 10px 12px !important;
    }
    .nav-item { display: grid !important; }
    .nav-parent-row {
        display: grid;
        grid-template-columns: minmax(0,1fr) 44px;
        gap: 4px;
        align-items: center;
    }
    .nav-parent::after { display: none !important; }
    .nav-submenu-toggle {
        display: grid;
        width: 42px;
        height: 42px;
        place-items: center;
        border: 1px solid rgba(255,255,255,.22);
        border-radius: 12px;
        color: #fff;
        background: rgba(255,255,255,.08);
        font-size: 22px;
        font-weight: 500;
        cursor: pointer;
    }
    .main-nav .nav-dropdown {
        position: static;
        display: none;
        min-width: 0;
        margin: 1px 0 7px 12px !important;
        border: 0 !important;
        border-left: 1px solid rgba(255,255,255,.28) !important;
        border-radius: 0 !important;
        padding: 2px 0 2px 14px !important;
        background: transparent !important;
        box-shadow: none !important;
        opacity: 1;
        visibility: visible;
        transform: none !important;
    }
    .main-nav .nav-item.submenu-open .nav-dropdown { display: grid; }
    .main-nav .nav-dropdown a {
        padding: 11px 10px !important;
        color: rgba(255,255,255,.9) !important;
        font-size: 14px !important;
    }

    .floating-contact-actions {
        height: 52px;
        bottom: calc(18px + env(safe-area-inset-bottom, 0px));
    }
    .floating-contact-actions a { bottom: 0; }

    .reviews-section { padding-right: 0 !important; padding-left: 0 !important; }
    .reviews-head { width: calc(100% - 32px); }
    .reviews-carousel {
        width: 100% !important;
        max-width: 100% !important;
        overflow: visible !important;
        contain: none !important;
        padding: 0 58px 30px !important;
    }
    .reviews-track { width: 100%; gap: 0 !important; }
    .review-card {
        flex: 0 0 100% !important;
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        padding: 22px !important;
        overflow-wrap: anywhere;
    }
    .reviews-carousel .carousel-arrow {
        top: calc(50% - 24px);
        width: 48px;
        height: 48px;
        font-size: 30px;
    }
    .reviews-carousel .carousel-prev { left: 6px; }
    .reviews-carousel .carousel-next { right: 6px; }

    .omra-route-carousel { width: 100%; overflow: hidden; }
    .omra-row-images {
        display: flex !important;
        grid-template-columns: none !important;
        gap: 0 !important;
        width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        scroll-behavior: smooth;
        scrollbar-width: none;
    }
    .omra-row-images::-webkit-scrollbar { display: none; }
    .omra-row-images figure {
        flex: 0 0 100%;
        width: 100%;
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }
    .omra-row-images img { aspect-ratio: 1.2 / 1; }
    .omra-route-dots {
        display: flex;
        justify-content: center;
        gap: 8px;
        padding: 13px 0 2px;
    }
    .omra-route-dots button {
        width: 8px;
        height: 8px;
        border: 0;
        border-radius: 999px;
        padding: 0;
        background: #c3d1df;
        cursor: pointer;
        transition: width .18s ease, background .18s ease;
    }
    .omra-route-dots button.active {
        width: 24px;
        background: var(--blue);
    }

    .omra-formulas-page [id] { scroll-margin-top: 88px !important; }
    .omra-formulas-hero { margin-top: 12px !important; }
    .omra-formulas-hero-visual {
        display: grid;
        grid-template-columns: repeat(2, minmax(0,1fr));
        gap: 9px;
        min-height: 0 !important;
        margin-top: 25px;
    }
    .omra-formulas-hero-visual::before { display: none; }
    .omra-formulas-hero-visual > img {
        position: relative;
        inset: auto;
        grid-column: 1 / -1;
        height: 260px;
        border-radius: 20px;
    }
    .omra-formulas-hero-card,
    .omra-formulas-hero-card.is-economy,
    .omra-formulas-hero-card.is-comfort {
        position: static;
        inset: auto;
        min-width: 0;
        min-height: 112px;
        border-radius: 15px;
        padding: 14px;
        box-shadow: none;
        backdrop-filter: none;
    }
    .omra-formulas-hero-card strong { font-size: 15px; line-height: 1.3; }
    .omra-formulas-hero-card small { font-size: 11px; line-height: 1.4; }
    .omra-formulas-nav { top: 78px !important; }
}

@media (max-width: 390px) {
    .brand-logo { width: 132px !important; }
    .site-header { grid-template-columns: minmax(100px,1fr) auto 40px; padding-right: 10px !important; padding-left: 10px !important; }
    .header-whatsapp,
    .call-button { width: 38px !important; min-width: 38px !important; height: 38px; min-height: 38px !important; }
    .nav-toggle { width: 40px; height: 40px; }
    .reviews-carousel { padding-right: 52px !important; padding-left: 52px !important; }
}

/* Professional and responsive refinement — 2026-09-22 */
:root {
    --surface-radius: 16px;
    --surface-shadow: 0 12px 30px rgba(11, 36, 82, .07);
}

body:not(.admin-body) :focus-visible {
    outline: 3px solid rgba(30, 181, 174, .78);
    outline-offset: 3px;
}

.section-kicker {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .075em;
}

.contact-lead {
    max-width: 760px;
    margin: 0 0 46px;
    border-left: 3px solid var(--teal);
    padding: 3px 0 3px 20px;
    color: #344054;
    font-size: clamp(17px, 1.5vw, 20px);
    font-weight: 520;
    line-height: 1.65;
}

.omra-filter-toggle,
.mobile-list-toggle,
.omra-hotels-toggle { display: none; }

.floating-contact-actions {
    transition: opacity .18s ease, transform .18s ease;
}
.floating-contact-actions.is-over-footer {
    opacity: 0;
    pointer-events: none;
    transform: translateY(12px);
}
.floating-contact-actions.is-over-footer a { pointer-events: none; }

.omra-tour-row,
.privacy-summary,
.privacy-content > article {
    box-shadow: var(--surface-shadow);
}

.privacy-layout,
.privacy-content,
.privacy-content > article,
.privacy-table-wrap,
.comfort-intro-section,
.comfort-intro-section > * {
    min-width: 0;
}

.site-footer {
    display: grid;
    grid-template-columns: minmax(260px, 1.45fr) repeat(3, minmax(150px, .72fr));
    gap: clamp(30px, 5vw, 72px);
    padding: 54px max(6vw, calc((100vw - 1320px) / 2));
    background: #172435;
}
.site-footer strong {
    display: block;
    margin-bottom: 13px;
    color: #fff;
    font-size: 15px;
}
.site-footer .footer-brand > strong {
    margin-bottom: 11px;
    font-size: 22px;
}
.site-footer p,
.site-footer address {
    margin: 5px 0;
    color: rgba(255,255,255,.7);
    font-size: 14px;
    font-style: normal;
    line-height: 1.6;
}
.footer-navigation,
.footer-contact,
.footer-links {
    display: grid;
    align-content: start;
    gap: 9px;
}
.footer-navigation a,
.footer-contact a,
.footer-links a {
    color: rgba(255,255,255,.76);
    font-size: 14px;
    line-height: 1.5;
}
.footer-navigation a:hover,
.footer-contact a:hover,
.footer-links a:hover {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.hajj-main-page .hajj-landing-copy h1 {
    max-width: 940px;
    font-size: clamp(52px, 6vw, 82px);
    letter-spacing: -.045em;
}

@media (min-width: 761px) and (max-width: 1050px) {
    body:not(.admin-body) { padding-top: 88px !important; }
    .site-header {
        display: grid !important;
        grid-template-columns: minmax(170px, 1fr) auto 46px;
        gap: 12px !important;
        min-height: 88px !important;
        padding: 12px 4vw !important;
    }
    .brand { min-width: 0 !important; }
    .brand-logo { width: 205px !important; }
    .header-actions {
        grid-column: 2;
        grid-row: 1;
        margin: 0 !important;
        order: initial !important;
    }
    .nav-toggle {
        grid-column: 3;
        grid-row: 1;
        display: grid !important;
        width: 46px;
        height: 46px;
        margin: 0 !important;
        place-items: center;
        padding: 0 !important;
        order: initial !important;
    }
    .main-nav {
        position: absolute;
        top: calc(100% + 8px);
        right: 4vw;
        left: 4vw;
        z-index: 1001;
        display: none;
        width: auto;
        max-height: calc(100vh - 112px);
        margin: 0 !important;
        overflow-y: auto;
        border-radius: 18px !important;
        padding: 12px !important;
        background: rgba(20, 105, 166, .985) !important;
        box-shadow: 0 20px 45px rgba(3, 27, 61, .28) !important;
        order: initial !important;
    }
    .main-nav.open { display: grid !important; gap: 4px !important; }
    .main-nav > a,
    .main-nav .nav-parent {
        min-height: 46px;
        justify-content: flex-start;
        padding: 10px 12px !important;
    }
    .nav-parent-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 44px;
        gap: 5px;
        align-items: center;
    }
    .nav-parent::after { display: none !important; }
    .nav-submenu-toggle {
        display: grid;
        width: 42px;
        height: 42px;
        place-items: center;
        border: 1px solid rgba(255,255,255,.22);
        border-radius: 11px;
        color: #fff;
        background: rgba(255,255,255,.08);
        font-size: 21px;
        cursor: pointer;
    }
    .main-nav .nav-dropdown {
        position: static;
        display: none;
        min-width: 0;
        margin: 0 0 7px 12px !important;
        border: 0 !important;
        border-left: 1px solid rgba(255,255,255,.28) !important;
        border-radius: 0 !important;
        padding: 2px 0 2px 14px !important;
        background: transparent !important;
        box-shadow: none !important;
        opacity: 1;
        visibility: visible;
        transform: none !important;
    }
    .main-nav .nav-item.submenu-open .nav-dropdown { display: grid; }
}

@media (max-width: 1050px) {
    .main-nav .nav-item:focus-within .nav-parent,
    .main-nav .nav-parent:hover,
    .main-nav .nav-parent.active {
        border-color: transparent !important;
        color: #fff !important;
        background: rgba(255,255,255,.1) !important;
    }
}

@media (max-width: 760px) {
    body:not(.admin-body) input,
    body:not(.admin-body) select,
    body:not(.admin-body) textarea { font-size: 16px !important; }

    .site-footer {
        grid-template-columns: 1fr 1fr;
        gap: 30px 22px;
        padding: 42px 22px calc(42px + env(safe-area-inset-bottom, 0px));
    }
    .footer-brand { grid-column: 1 / -1; }
    .footer-contact { grid-column: 1 / -1; }

    .contact-hero { min-height: 0; padding-top: 52px; }
    .contact-inner .section-kicker { font-size: 16px; font-weight: 750; }
    .contact-inner h1 { margin-bottom: 20px; }
    .contact-lead { margin-bottom: 34px; padding-left: 15px; }

    .privacy-hero h1,
    .privacy-content h2 { overflow-wrap: anywhere; }
    .privacy-table-wrap {
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
    }

    .comfort-intro-section {
        grid-template-columns: minmax(0, 1fr) !important;
        width: min(92vw, 1180px);
        padding: 24px !important;
    }
    .comfort-intro-section h2 {
        font-size: clamp(31px, 10vw, 42px);
        overflow-wrap: anywhere;
    }

    .omra-page-heading { padding-top: 38px; padding-bottom: 14px; }
    .omra-filter-toggle {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: min(92vw, 520px);
        min-height: 62px;
        margin: 0 auto 12px;
        border: 1px solid #cad9e7;
        border-radius: 14px;
        padding: 11px 14px 11px 17px;
        color: #0b315b;
        background: #fff;
        box-shadow: 0 8px 22px rgba(11,36,82,.06);
        text-align: left;
        cursor: pointer;
    }
    .omra-filter-toggle span { display: grid; gap: 2px; }
    .omra-filter-toggle b { font-size: 16px; }
    .omra-filter-toggle small { color: #5a6879; font-size: 12px; font-weight: 600; }
    .omra-filter-toggle i {
        display: grid;
        width: 38px;
        height: 38px;
        place-items: center;
        border-radius: 10px;
        color: #fff;
        background: var(--blue);
        font-size: 21px;
        font-style: normal;
    }
    .omra-filter-bar.active-filters {
        display: none;
        width: min(92vw, 520px);
        margin-bottom: 14px;
        border-radius: 14px;
        box-shadow: 0 10px 24px rgba(11,36,82,.06);
    }
    .omra-filter-bar.active-filters.filters-open { display: grid; }
    .omra-filter-bar label { min-height: 66px; padding: 11px 17px; }
    .omra-filter-reset { width: min(92vw, 520px); margin-top: 0; }

    .omra-tour-list { width: min(92vw, 520px); }
    .omra-tour-row { gap: 18px; border-radius: 16px; padding: 17px; }
    .omra-tour-row .omra-row-info { order: 1; }
    .omra-tour-row .omra-route-carousel { order: 2; }
    .omra-tour-row .omra-row-price { order: 3; }
    .omra-row-info h2 { margin-bottom: 14px; font-size: clamp(23px, 7vw, 29px); }
    .omra-row-note { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }

    .omra-route-dots { gap: 0 !important; padding: 2px 0 0 !important; }
    .omra-route-dots button {
        position: relative;
        width: 44px !important;
        height: 44px !important;
        background: transparent !important;
    }
    .omra-route-dots button::after {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        width: 8px;
        height: 8px;
        border-radius: 999px;
        background: #b8c8d8;
        transform: translate(-50%, -50%);
        transition: width .18s ease, background .18s ease;
    }
    .omra-route-dots button.active::after { width: 24px; background: var(--blue); }

    [data-mobile-list]:not(.is-expanded) > article:nth-of-type(n+5) { display: none !important; }
    .mobile-list-toggle {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        min-height: 50px;
        margin-top: 16px;
        border: 1px solid rgba(255,255,255,.28);
        border-radius: 12px;
        padding: 10px 14px;
        color: #fff;
        background: rgba(255,255,255,.08);
        font: inherit;
        font-size: 14px;
        font-weight: 750;
        cursor: pointer;
    }
    .mobile-list-toggle b { font-size: 21px; font-weight: 500; }

    .omra-hotels-toggle {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: calc(100% - 32px);
        min-height: 50px;
        margin: 0 16px 18px;
        border: 1px solid #c8dbe8;
        border-radius: 12px;
        padding: 10px 14px;
        color: #0a4974;
        background: #f4fafc;
        font: inherit;
        font-size: 14px;
        font-weight: 750;
        cursor: pointer;
    }
    .omra-hotels-toggle b { font-size: 21px; font-weight: 500; }
    .omra-hotel-city-grid:not(.is-expanded) { display: none !important; }

    .hajj-main-page .hajj-landing-copy h1 {
        font-size: clamp(42px, 12vw, 58px);
        overflow-wrap: anywhere;
    }

    .floating-contact-actions {
        bottom: calc(74px + env(safe-area-inset-bottom, 0px));
    }
    .floating-contact-actions a {
        width: 48px !important;
        height: 48px !important;
        border-width: 2px;
    }
    .floating-contact-actions svg { width: 23px; height: 23px; }
}

@media (max-width: 520px) {
    .site-footer { grid-template-columns: 1fr; }
    .footer-brand,
    .footer-contact { grid-column: auto; }
}

@media (max-width: 600px) {
    .privacy-table-wrap { border: 0; border-radius: 0; }
    .privacy-table-wrap table,
    .privacy-table-wrap tbody,
    .privacy-table-wrap tr,
    .privacy-table-wrap td { display: block; width: 100%; min-width: 0; }
    .privacy-table-wrap thead { display: none; }
    .privacy-table-wrap tbody { display: grid; gap: 12px; }
    .privacy-table-wrap tr {
        overflow: hidden;
        border: 1px solid #dce6ee;
        border-radius: 14px;
        background: #fff;
    }
    .privacy-table-wrap td {
        border: 0;
        padding: 15px 16px;
        font-size: 13px;
    }
    .privacy-table-wrap td + td { border-top: 1px solid #e2e9ef; background: #f7fafc; }
    .privacy-table-wrap td::before {
        display: block;
        margin-bottom: 6px;
        color: #0c5b93;
        font-size: 10px;
        font-weight: 850;
        letter-spacing: .08em;
        text-transform: uppercase;
    }
    .privacy-table-wrap td:first-child::before { content: 'Finalité'; }
    .privacy-table-wrap td:last-child::before { content: 'Base légale'; }
}

@media (max-width: 360px) {
    .floating-contact-actions { display: none; }
}

/* Detail pages: restrained editorial treatment for included services. */
.tour-detail-services-section .section-title.centered,
.comfort-included-section .comfort-section-heading.centered {
    max-width: 790px;
    margin-right: 0;
    margin-left: 0;
    text-align: left;
}

.tour-detail-services-section .section-title.centered > p {
    max-width: 720px;
    margin-right: 0;
    margin-left: 0;
}

.tour-detail-service-grid,
.comfort-services-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(30px, 5vw, 72px);
    row-gap: 0;
    border-top: 1px solid #cad9e4;
}

.tour-detail-service-grid article,
.comfort-services-grid article {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 16px;
    align-content: start;
    min-height: 0;
    border: 0;
    border-bottom: 1px solid #cad9e4;
    border-radius: 0;
    padding: 25px 0;
    background: transparent;
    box-shadow: none;
    transition: none;
}

.tour-detail-service-grid article:hover,
.comfort-services-grid article:hover {
    transform: none;
    box-shadow: none;
}

.tour-detail-service-grid article > .service-line-icon,
.comfort-services-grid article > .service-line-icon {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border: 0;
    border-radius: 0;
    color: #0a6098;
    background: transparent;
}

.comfort-services-grid article > .service-line-icon { color: #a77b1e; }
.premium-hajj-platinum .comfort-services-grid article > .service-line-icon { color: #6d3a7c; }

.tour-detail-service-grid .service-icon-svg,
.comfort-services-grid .service-icon-svg {
    width: 27px;
    height: 27px;
    stroke-width: 1.8;
}

.tour-detail-service-grid h3,
.comfort-services-grid h3 {
    margin: 0 0 6px;
    font-size: 19px;
    line-height: 1.3;
}

.tour-detail-service-grid p,
.comfort-services-grid p {
    margin: 0;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.6;
}

.comfort-included-section {
    border-top: 1px solid #d8c99f;
    border-bottom: 1px solid #d8c99f;
    border-radius: 0;
    padding: clamp(44px, 6vw, 72px) clamp(22px, 5vw, 64px);
    background: #f7f3ea;
}

.premium-hajj-platinum .comfort-included-section {
    background: #f7f3f7;
}

.comfort-included-section .comfort-section-heading h2 {
    max-width: 880px;
    font-size: clamp(36px, 4.5vw, 62px);
    line-height: 1.02;
}

@media (max-width: 720px) {
    .tour-detail-service-grid,
    .comfort-services-grid {
        grid-template-columns: 1fr;
    }

    .tour-detail-service-grid article,
    .comfort-services-grid article {
        grid-template-columns: 34px minmax(0, 1fr);
        gap: 13px;
        padding: 19px 0;
    }

    .tour-detail-service-grid h3,
    .comfort-services-grid h3 {
        font-size: 17px;
    }

    .tour-detail-service-grid p,
    .comfort-services-grid p {
        font-size: 14px;
        line-height: 1.55;
    }

    .comfort-included-section {
        width: 100%;
        padding: 38px 20px;
    }

    .comfort-included-section .comfort-section-heading h2 {
        font-size: clamp(32px, 10vw, 44px);
    }
}

/* iPad/tablet fixes for Omra voyage cards and header spacing. */
@media (min-width: 761px) and (max-width: 1366px) {
    .site-header {
        gap: 14px !important;
        padding-right: clamp(24px, 3vw, 40px) !important;
        padding-left: clamp(24px, 3vw, 40px) !important;
    }
    .header-actions {
        flex: 0 0 auto !important;
        gap: 10px !important;
        white-space: nowrap;
    }
    .call-button {
        width: auto !important;
        min-width: 154px !important;
        padding-right: 18px !important;
        padding-left: 18px !important;
        white-space: nowrap !important;
    }
    .call-button span { white-space: nowrap !important; }
    .header-whatsapp { flex: 0 0 auto !important; }

    .omra-tour-list,
    .omra-filter-bar,
    .omra-page-heading {
        width: min(94vw, 1200px) !important;
    }
    .omra-tour-row {
        grid-template-columns: minmax(300px, .62fr) minmax(320px, .72fr) minmax(170px, .26fr) !important;
        gap: 24px !important;
        align-items: center !important;
        padding: 22px 26px !important;
    }
    .omra-route-carousel {
        width: 100%;
        min-width: 0;
        overflow: hidden;
    }
    .omra-row-images,
    .omra-row-images.has-aqsa {
        display: flex !important;
        grid-template-columns: none !important;
        gap: 0 !important;
        width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        scroll-behavior: smooth;
        scrollbar-width: none;
    }
    .omra-row-images::-webkit-scrollbar { display: none; }
    .omra-row-images figure {
        flex: 0 0 100%;
        width: 100%;
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }
    .omra-row-images img {
        width: 100%;
        aspect-ratio: 1.42 / 1;
        object-fit: cover;
    }
    .omra-route-dots {
        display: flex !important;
        justify-content: center;
        gap: 8px;
        padding: 12px 0 0;
    }
    .omra-route-dots button {
        width: 8px;
        height: 8px;
        border: 0;
        border-radius: 999px;
        padding: 0;
        background: #c3d1df;
        cursor: pointer;
    }
    .omra-route-dots button.active {
        width: 24px;
        background: var(--blue);
    }
    .omra-row-info h2 { font-size: clamp(23px, 2.35vw, 30px); }
    .omra-row-price { padding-left: 22px; }
    .omra-row-price strong { font-size: clamp(28px, 3vw, 34px); }
}

@media (min-width: 761px) and (max-width: 1120px) {
    .omra-tour-row {
        grid-template-columns: minmax(300px, .9fr) minmax(320px, 1fr) !important;
    }
    .omra-row-price {
        grid-column: 2;
        border-left: 0 !important;
        border-top: 1px solid #e2e8f0;
        padding-top: 18px;
        padding-left: 0 !important;
    }
}

/* Package names, language flags and room occupancy use distinct visual cues. */
.omra-row-tags .category-chip {
    min-height: 36px;
    border: 0;
    border-bottom: 3px solid currentColor;
    border-radius: 0;
    padding: 7px 0 4px;
    background: transparent;
    box-shadow: none;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .045em;
    text-transform: uppercase;
}
.omra-row-tags .category-chip.package-economique {
    color: #14548a;
    background: transparent;
    box-shadow: none;
}
.omra-row-tags .category-chip.package-confort {
    color: #126c58;
    background: transparent;
    box-shadow: none;
}
.language-flag {
    display: inline-grid;
    width: 40px;
    height: 32px;
    place-items: center;
    border: 1px solid #d8e2ed;
    border-radius: 7px;
    background: #fff;
}
.language-flag svg {
    display: block;
    width: 26px;
    height: 18px;
    border-radius: 2px;
}
.detail-language-flags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.room-price-row { grid-template-columns: minmax(0, 1fr) auto; }
.tour-reference { margin: 8px 0 0; color: #627185; font-size: 12px; font-weight: 400; line-height: 1.5; }
.tour-reference span { font-weight: 500; overflow-wrap: anywhere; }
.omra-row-info .tour-heading { margin-bottom: 18px; }
.omra-row-info .tour-heading h2 { margin-bottom: 0; }
.featured-body .tour-heading { margin-bottom: 16px; }
.featured-body .tour-heading h3 { margin-bottom: 0; }
.omra-booking-head .tour-reference { margin: 0 0 12px; }
.tour-detail-hero-copy h1 {
    max-width: none;
    font-size: clamp(32px, 3vw, 42px);
}

/* Tour detail: keep nested language badges separate from the fact panels. */
.tour-detail-facts .detail-language-flags { display: flex; flex-wrap: wrap; align-items: center; width: auto; gap: 8px; padding: 0; border-radius: 0; background: transparent; }
.tour-detail-facts .language-flag { display: inline-grid; width: 40px; height: 32px; place-items: center; padding: 0; border: 1px solid #d8e2ed; border-radius: 7px; background: #fff; }
.tour-detail-facts .language-flag svg { width: 26px; height: 18px; }
.tour-callback-button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 56px; border-radius: 15px; padding: 0 18px; background: #fff; font-weight: 850; }
.tour-callback-button svg { width: 18px; height: 18px; fill: currentColor; }
.reserve-button, .price-whatsapp-button { transition: transform .18s ease, box-shadow .18s ease, filter .18s ease; }
.reserve-button:hover, .price-whatsapp-button:hover { transform: translateY(-2px); filter: brightness(1.05); }
.reserve-button:hover { box-shadow: 0 20px 40px rgba(22,102,166,.3); }
.price-whatsapp-button:hover { box-shadow: 0 20px 40px rgba(9,211,45,.32); }
.reserve-button:focus-visible, .price-whatsapp-button:focus-visible, .tour-callback-button:focus-visible { outline: 3px solid #85d6cd; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .reserve-button, .price-whatsapp-button { transition: none; } }

/* Keep the tour heading quiet; availability and languages belong with the price. */
.omra-row-price .omra-price-overline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
    width: 100%;
    margin: 0 0 3px;
}
.omra-row-price .availability-chip,
.omra-row-price .availability-chip.last,
.omra-row-price .availability-chip.full {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 0;
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
    box-shadow: none;
    font-size: 12px;
    font-weight: 850;
    line-height: 1.3;
}
.omra-row-price .availability-chip::before {
    content: '';
    display: block;
    flex: 0 0 7px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
}
.omra-row-price .omra-price-flags {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 6px;
    width: auto;
    margin: 0;
}
.omra-row-price .omra-price-flags .language-flag {
    display: inline-flex;
    width: 27px;
    height: 19px;
    border: 0;
    border-radius: 2px;
    padding: 0;
    background: transparent;
    box-shadow: 0 0 0 1px rgba(7,20,42,.12);
}
.omra-row-price .omra-price-flags .language-flag svg { width: 27px; height: 19px; }
@media (max-width: 760px) {
    .omra-row-price .omra-price-overline { justify-content: space-between; }
}
.omra-row-price .availability-chip { color: #167c3a; }
.omra-row-price .availability-chip.last { color: #94520d; }
.omra-row-price .availability-chip.full { color: #b42332; }

/* Euro-SIS can leave capacity unpublished; do not present this as a confirmed availability. */
.omra-row-price .availability-chip.unknown { color: #526477; }
.featured-image .unknown { position: absolute; top: 14px; right: 14px; max-width: calc(100% - 28px); border-radius: 5px; padding: 10px 14px; background: #526477; color: #fff; font-size: 13px; font-weight: 700; }
.tour-detail-badge-unknown { background: #526477; }

/* Hajj pre-registration is a single structured form, separate from quick enquiries. */
.hajj-registration-page { width: min(1040px, 92vw); margin: 52px auto 80px; color: #182431; }
.hajj-registration-heading { max-width: 760px; margin-bottom: 30px; }
.hajj-registration-heading > a { display: inline-block; margin-bottom: 25px; color: #14548a; font-weight: 750; }
.hajj-registration-heading h1 { margin: 5px 0 12px; color: #142338; font-size: clamp(36px, 5vw, 58px); line-height: 1.08; }
.hajj-registration-heading > p:last-child { margin: 0; color: #536276; font-size: 17px; line-height: 1.6; }
.hajj-registration-form { border: 1px solid #d8e2ec; border-radius: 18px; padding: clamp(22px, 4vw, 48px); background: #fff; box-shadow: 0 18px 42px rgba(11,36,82,.06); }
.hajj-registration-form fieldset { margin: 0; border: 0; border-bottom: 1px solid #dce5ed; padding: 0 0 34px; }
.hajj-registration-form fieldset + fieldset { padding-top: 32px; }
.hajj-registration-form legend { width: 100%; margin-bottom: 20px; color: #162a42; font-size: 21px; font-weight: 850; }
.hajj-registration-form legend span { margin-right: 12px; color: #a77b25; font-size: 13px; letter-spacing: .08em; }
.hajj-registration-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 22px; }
.hajj-registration-grid > label { display: block; min-width: 0; color: #253852; font-size: 14px; font-weight: 750; }
.hajj-registration-grid > label > span { color: #a82f3d; }
.hajj-registration-form input:not([type=radio]):not([type=checkbox]),
.hajj-registration-form select,
.hajj-registration-form textarea { width: 100%; min-height: 48px; border: 1px solid #cbd8e5; border-radius: 9px; padding: 11px 13px; color: #172a43; background: #fff; font: inherit; font-size: 16px; }
.hajj-registration-form input:disabled { color: #556474; background: #f1f5f8 !important; }
.hajj-registration-form textarea { min-height: 112px; resize: vertical; }
.hajj-registration-grid > label > input,
.hajj-registration-grid > label > select,
.hajj-registration-grid > label > textarea { display: block; margin-top: 8px; }
.hajj-registration-form input:focus-visible,
.hajj-registration-form select:focus-visible,
.hajj-registration-form textarea:focus-visible { outline: 3px solid rgba(19,119,149,.22); outline-offset: 1px; border-color: #187f9c; }
.hajj-registration-full { grid-column: 1 / -1; }
.hajj-registration-choice { display: grid; align-content: start; gap: 8px; color: #253852; font-size: 14px; font-weight: 750; }
.hajj-registration-choice > span span { color: #a82f3d; }
.hajj-registration-choice label { display: inline-flex; align-items: center; gap: 8px; width: max-content; font-weight: 600; }
.hajj-registration-choice input { width: 17px; height: 17px; accent-color: #136ca4; }
.hajj-registration-help { margin: 12px 0 0; color: #5d6a7a; font-size: 13px; line-height: 1.55; }
.hajj-registration-consent { display: flex; align-items: flex-start; gap: 11px; margin: 27px 0 20px; color: #35475e; font-size: 14px; line-height: 1.5; }
.hajj-registration-consent input { flex: 0 0 18px; width: 18px; height: 18px; margin-top: 2px; accent-color: #136ca4; }
.hajj-registration-consent a { color: #0d6498; text-decoration: underline; }
.hajj-registration-consent b { color: #a82f3d; }
.hajj-registration-form > button { min-height: 52px; border: 0; border-radius: 10px; padding: 0 24px; color: #fff; background: #145b94; font: inherit; font-weight: 800; cursor: pointer; transition: transform .18s ease, background .18s ease; }
.hajj-registration-form > button:hover { transform: translateY(-2px); background: #0b4b7d; }
.hajj-registration-errors { max-width: 1040px; margin: 0 0 22px; border-left: 4px solid #b42332; padding: 15px 20px; color: #782029; background: #fff1f2; }
.hajj-registration-errors ul { margin: 9px 0 0; padding-left: 20px; }
.hajj-preform-next { display: grid; align-content: center; gap: 18px; width: 100%; color: #344054; }
.hajj-preform-next h3 { margin: 0; color: #172d48; font-size: 26px; }
.hajj-preform-next p { margin: 0; line-height: 1.6; }
.hajj-preform-next a { display: inline-flex; align-items: center; justify-content: center; width: fit-content; min-height: 52px; border-radius: 10px; padding: 0 22px; color: #fff; background: #145b94; font-weight: 800; }
@media (max-width: 700px) {
    .hajj-registration-page { margin: 30px auto 55px; }
    .hajj-registration-grid { grid-template-columns: 1fr; }
    .hajj-registration-form fieldset { padding-bottom: 26px; }
    .hajj-registration-form fieldset + fieldset { padding-top: 27px; }
    .hajj-registration-form > button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .hajj-registration-form > button { transition: none; } }
.hajj-package-contact > div.hajj-registration-callout { display: flex; flex-direction: column; justify-content: center; gap: 17px; min-height: 220px; border: 1px solid #dfd4bd; border-radius: 22px; padding: clamp(26px, 3vw, 40px); color: #242c37; background: #fff; box-shadow: 0 18px 45px rgba(17,42,76,.08); }
.hajj-package-contact .hajj-registration-callout strong { color: #172b43; font-size: clamp(22px, 2.5vw, 30px); }
.hajj-package-contact > div.hajj-registration-callout > p { margin: 0; color: #526174; line-height: 1.6; }
.hajj-package-contact .hajj-registration-callout a { display: inline-flex; align-items: center; justify-content: center; width: fit-content; min-height: 50px; border-radius: 10px; padding: 0 20px; color: #21180c; background: #d8b65f; font-weight: 800; text-decoration: none; transition: transform .18s ease, background .18s ease; }
.hajj-package-contact .hajj-registration-callout a:hover { transform: translateY(-2px); background: #e8c875; }
@media (max-width: 700px) { .hajj-package-contact .hajj-registration-callout a { width: 100%; } }

/* Hajj next steps: one clear choice per action. */
.hajj-main-page .hajj-preform-modern { align-items: stretch; gap: 0; width: min(1280px, 94vw); margin: 68px auto; border: 1px solid #e2d7c2; border-radius: 24px; padding: 13px; background: #f4f8fb; }
.hajj-main-page .hajj-preform-modern .hajj-preform-intro { display: flex; flex-direction: column; justify-content: center; min-width: 0; border-radius: 17px 0 0 17px; padding: clamp(30px, 4vw, 58px); }
.hajj-main-page .hajj-preform-modern .hajj-preform-intro h2 { max-width: 11ch; margin: 8px 0 19px; font-size: clamp(35px, 4vw, 55px); }
.hajj-main-page .hajj-preform-modern .hajj-preform-intro > p:last-child { max-width: 48ch; margin: 0; font-size: 17px; }
.hajj-main-page .hajj-preform-modern .hajj-preform-box { display: flex; flex-direction: column; justify-content: center; gap: 13px; border: 0; border-radius: 0 17px 17px 0; padding: clamp(26px, 3.4vw, 46px); text-align: left; }
.hajj-next-eyebrow { margin: 0 0 10px; color: #6d5324; font-size: 14px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.hajj-next-option { display: grid; grid-template-columns: 44px minmax(0, 1fr) 18px; align-items: center; gap: 16px; min-height: 88px; border: 1px solid #e0d8c9; border-radius: 12px; padding: 17px; color: #1e2937; background: #fff; text-decoration: none; transition: border-color .18s ease, transform .18s ease; }
.hajj-next-option:hover { border-color: #c39e49; transform: translateY(-2px); }
.hajj-next-icon { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 50%; color: #7e612b; background: #f8f0da; font-size: 23px; }
.hajj-next-icon svg { width: 22px; height: 22px; }
.hajj-next-option strong, .hajj-next-option small { display: block; }
.hajj-next-option strong { font-size: 17px; }
.hajj-next-option small { margin-top: 4px; color: #5b6876; font-size: 13px; font-weight: 560; line-height: 1.4; }
.hajj-next-whatsapp { display: inline-flex; align-items: center; gap: 9px; width: fit-content; margin-top: 4px; color: #157746; font-weight: 750; text-decoration: none; }
.hajj-next-whatsapp svg { width: 19px; height: 19px; }
.hajj-next-note { margin: 0; color: #687481; font-size: 12px; }
@media (max-width: 760px) {
    .hajj-main-page .hajj-preform-modern { display: grid; grid-template-columns: 1fr !important; padding: 9px; }
    .hajj-main-page .hajj-preform-modern .hajj-preform-intro { border-radius: 15px 15px 0 0; padding: 28px; }
    .hajj-main-page .hajj-preform-modern .hajj-preform-box { border-radius: 0 0 15px 15px; padding: 27px 20px; }
}

/* Omra reservation page and step form. */
.omra-booking-page { width: min(980px, 92vw); margin: clamp(30px, 4vw, 56px) auto 84px; color: #172b43; }
.omra-booking-return { display: inline-block; margin-bottom: 20px; color: #165b94; font-size: 15px; font-weight: 750; text-decoration: none; }
.omra-booking-return:hover { text-decoration: underline; }
.omra-booking-panel { border: 1px solid #d5e1ec; border-radius: 20px; padding: clamp(22px, 3.5vw, 42px); background: #fff; box-shadow: 0 18px 42px rgba(11,36,82,.06); }
.omra-booking-page [hidden] { display: none !important; }
.omra-booking-head { max-width: 760px; }
.omra-booking-head h1 { margin: 4px 0 9px; color: var(--blue-deep); font-size: clamp(29px, 4vw, 44px); line-height: 1.15; }
.omra-booking-head > p:last-child { margin: 0; font-size: 15px; font-weight: 500; }
.omra-booking-progress { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 5px; margin: 26px 0 28px; padding: 0; list-style: none; }
.omra-booking-progress li { display: flex; align-items: center; gap: 7px; min-width: 0; border-top: 3px solid #dbe5ee; padding-top: 10px; color: #697888; font-size: 12px; }
.omra-booking-progress li.active { border-color: #165b94; color: #154d7d; }
.omra-booking-progress li.complete { border-color: #2f927d; color: #277b6b; }
.omra-booking-progress li span { display: grid; flex: 0 0 24px; width: 24px; height: 24px; place-items: center; border-radius: 50%; background: #edf3f8; font-size: 11px; font-weight: 800; }
.omra-booking-progress li.active span { color: #fff; background: #165b94; }
.omra-booking-progress li.complete span { color: #fff; background: #2f927d; }
.omra-booking-progress li b { overflow: hidden; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.omra-booking-count { margin: 24px 0 -14px; color: #154d7d; font-size: 15px; font-weight: 700; }
.omra-booking-step h3 { margin: 0 0 20px; color: #142b43; font-size: 23px; }
.omra-booking-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px 20px; }
.omra-booking-grid > label { min-width: 0; color: #283e53; font-size: 14px; font-weight: 720; }
.omra-booking-grid em, .omra-booking-consent em { color: #b63342; font-style: normal; }
.omra-booking-grid input:not([type=radio]), .omra-booking-grid select, .omra-booking-grid textarea { display: block; width: 100%; min-height: 48px; margin-top: 8px; border: 1px solid #cbd9e6; border-radius: 9px; padding: 10px 13px; color: #182d42; background: #fff; font: inherit; font-size: 16px; }
.omra-booking-grid textarea { min-height: 110px; resize: vertical; }
.omra-booking-grid input:focus-visible, .omra-booking-grid select:focus-visible, .omra-booking-grid textarea:focus-visible { outline: 3px solid rgba(22,91,148,.16); outline-offset: 1px; border-color: #165b94; }
.omra-booking-radios { display: flex; flex-wrap: wrap; align-content: start; gap: 8px 20px; margin: 0; border: 0; padding: 0; }
.omra-booking-radios legend { width: 100%; margin-bottom: 8px; color: #283e53; font-size: 14px; font-weight: 720; }
.omra-booking-radios label { display: inline-flex; align-items: center; gap: 6px; color: #344b62; font-size: 14px; }
.omra-booking-radios input { width: 17px; height: 17px; accent-color: #165b94; }
.omra-booking-wide { grid-column: 1 / -1; }
.omra-booking-help { margin: 15px 0 0 !important; color: #5a6c7d !important; font-size: 13px; font-weight: 500 !important; }
.omra-booking-review { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; margin: 20px 0; border-top: 1px solid #d8e3ed; }
.omra-booking-review div { border-bottom: 1px solid #d8e3ed; padding: 11px 0; }
.omra-booking-review dt { color: #627486; font-size: 12px; font-weight: 700; }
.omra-booking-review dd { margin: 3px 0 0; overflow-wrap: anywhere; color: #1a3045; font-size: 14px; font-weight: 750; }
.omra-booking-consent { display: flex; align-items: flex-start; gap: 9px; margin: 12px 0; color: #344b62; font-size: 13px; line-height: 1.45; }
.omra-booking-consent input { flex: 0 0 17px; width: 17px; height: 17px; margin-top: 1px; accent-color: #165b94; }
.omra-booking-consent a { color: #165b94; text-decoration: underline; }
.omra-booking-actions { display: flex; gap: 10px; margin-top: 28px; }
.omra-booking-actions button { min-height: 46px; border-radius: 9px; padding: 0 22px; font: inherit; font-size: 15px; font-weight: 800; cursor: pointer; }
.omra-booking-back { border: 1px solid #cbd9e6; color: #28516e; background: #fff; }
.omra-booking-next, .omra-booking-submit { border: 1px solid #165b94; color: #fff; background: #165b94; }
.omra-booking-next:hover, .omra-booking-submit:hover { background: #0d497e; }
.omra-booking-submit:disabled { opacity: .65; cursor: wait; }
.omra-booking-errors { border-left: 4px solid #b63240; margin-top: 16px; padding: 12px 16px; color: #7e2430; background: #fff0f2; }
.omra-booking-errors ul { margin: 7px 0 0; padding-left: 20px; }
@media (max-width: 650px) {
    .omra-booking-page { width: min(100% - 28px, 980px); margin: 25px auto 56px; }
    .omra-booking-panel { border-radius: 14px; padding: 23px 18px 28px; }
    .omra-booking-progress { gap: 4px; margin: 22px 0; }
    .omra-booking-progress li { justify-content: center; }
    .omra-booking-progress li b { display: none; }
    .omra-booking-grid, .omra-booking-review { grid-template-columns: 1fr; }
    .omra-booking-actions button { flex: 1; }
}

@media (max-width: 760px) {
    .tour-detail-cta { display: grid; grid-template-columns: 48px minmax(0, 1.3fr) minmax(0, 1fr); gap: 8px; }
    .tour-detail-cta .tour-whatsapp-button { width: 48px; height: 50px; border-radius: 13px; }
    .tour-detail-cta .tour-whatsapp-button svg { width: 26px; height: 26px; }
    .tour-detail-cta .tour-callback-button,
    .tour-detail-cta .reserve-button { min-width: 0; min-height: 50px; border-radius: 13px; padding: 0 8px; font-size: clamp(12px, 3.4vw, 14px); white-space: nowrap; }
    .tour-detail-cta .tour-callback-button { gap: 5px; }
    .tour-detail-cta .tour-callback-button svg { flex: 0 0 16px; width: 16px; height: 16px; }
}

/* Shorts load their YouTube players only after a visitor chooses to play. */
.shorts-section { max-width: 100%; overflow: hidden; padding: 72px 4vw; background: #fff; }
.shorts-head { width: min(980px, 92vw); margin: 0 auto 26px; text-align: center; }
.shorts-head h2 { margin: 0; color: #050914; font-size: clamp(34px, 4.8vw, 52px); line-height: 1.05; }
.shorts-carousel { width: min(1760px, 94vw); margin: 0 auto; padding: 0 58px 34px; }
.shorts-track { display: flex; gap: 20px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.shorts-track::-webkit-scrollbar { display: none; }
.short-card { flex: 0 0 calc((100% - 80px) / 5); min-width: 0; overflow: hidden; border-radius: 18px; background: #0b2238; box-shadow: var(--shadow); scroll-snap-align: start; }
.short-media { width: 100%; aspect-ratio: 9 / 16; background: #0b2238; }
.short-media iframe { display: block; width: 100%; height: 100%; border: 0; }
.short-video-trigger { position: relative; display: block; width: 100%; height: 100%; border: 0; padding: 0; overflow: hidden; color: #fff; background: #0b2238; cursor: pointer; }
.short-video-trigger::after { content: ''; position: absolute; inset: 50% 0 0; background: linear-gradient(transparent, rgba(4,17,34,.55)); pointer-events: none; }
.short-video-trigger img { width: 100%; height: 100%; object-fit: cover; }
.short-play-icon { position: absolute; z-index: 1; top: 50%; left: 50%; display: grid; width: 58px; height: 58px; place-items: center; transform: translate(-50%, -50%); border: 1px solid rgba(255,255,255,.7); border-radius: 50%; padding-left: 3px; color: #fff; background: rgba(9,42,76,.88); font-size: 23px; transition: transform .18s ease, background .18s ease; }
.short-play-icon svg { display: block; width: 27px; height: 27px; fill: currentColor; }
.short-media, .hajj-webinar-media { position: relative; }
.short-video-trigger:hover .short-play-icon { transform: translate(-50%, -50%) scale(1.07); background: var(--blue); }
.shorts-section :is(button, a, [tabindex]):focus-visible { outline: 3px solid #277dc1; outline-offset: 3px; }
@media (max-width: 1100px) {
    .short-card { flex-basis: calc((100% - 40px) / 3); }
}
@media (max-width: 700px) {
    .shorts-section { padding: 56px 4vw; }
    .shorts-carousel { width: 100%; padding: 0 46px 34px; }
    .short-card { flex-basis: min(70vw, 300px); min-width: 220px; }
}

@media (max-width: 720px) {
    .hajj-main-page .hajj-landing-copy h1 {
        max-width: 100%;
        font-size: clamp(27px, 7.7vw, 38px) !important;
        overflow-wrap: normal;
        word-break: normal;
        hyphens: none;
    }
}

.footer-socials { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 20px; }
.footer-socials a { display: inline-flex; align-items: center; gap: 8px; min-height: 39px; border: 1px solid rgba(255,255,255,.22); border-radius: 8px; padding: 8px 11px; color: #fff; font-size: 13px; font-weight: 650; line-height: 1.2; transition: border-color .18s ease, background .18s ease; }
.footer-socials a:hover { border-color: rgba(255,255,255,.6); background: rgba(255,255,255,.08); }
.footer-socials a:focus-visible { outline: 3px solid #8bd8d5; outline-offset: 3px; }
.footer-socials svg { flex: 0 0 auto; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.footer-socials .social-icon-dot { fill: currentColor; stroke: none; }

.home-categories a:nth-child(1) img { object-position: center 68%; }
.home-categories a:nth-child(2) img { object-position: center 80%; }
.home-categories a:nth-child(3) img { object-position: center 52%; }
.omra-row-images img[src*="photo-medina-dome"] { object-position: center 58%; }
.omra-row-images img[src*="photo-makkah-night"] { object-position: center 70%; }

/* Hajj webinars use the same click-to-play reader as Shorts, in their native landscape format. */
.hajj-webinars-page { width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding: 64px 0 100px; }
.hajj-webinars-intro { max-width: 760px; margin-bottom: 42px; }
.hajj-webinars-intro h1 { margin: 7px 0 15px; color: #103e70; font-size: clamp(36px, 5vw, 60px); line-height: 1.07; letter-spacing: -.035em; }
.hajj-webinars-intro > p:last-child { margin: 0; color: #526377; font-size: clamp(15px, 1.7vw, 18px); line-height: 1.65; }
.hajj-webinars-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 44px 28px; }
.hajj-webinar { min-width: 0; }
.hajj-webinar-media { width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 12px; background: #0b2238; }
.hajj-webinar-media iframe { display: block; width: 100%; height: 100%; border: 0; }
.hajj-webinar-media .short-play-icon { width: 68px; height: 68px; }
.hajj-webinar-caption { display: flex; align-items: baseline; gap: 15px; border-bottom: 1px solid #d5e0eb; padding: 18px 1px 16px; }
.hajj-webinar-caption > span { flex: 0 0 auto; color: #21717a; font-size: 13px; font-weight: 800; }
.hajj-webinar-caption h2 { margin: 0; color: #173c62; font-size: clamp(17px, 1.7vw, 21px); line-height: 1.35; }
.hajj-webinars-empty { border-top: 1px solid #d5e0eb; padding-top: 22px; color: #526377; }
.hajj-webinars-page button:focus-visible, .hajj-webinars-link a:focus-visible { outline: 3px solid #277dc1; outline-offset: 4px; }
.hajj-webinars-link { display: flex; align-items: center; justify-content: space-between; gap: 30px; width: min(1180px, calc(100% - 48px)); margin: 0 auto 72px; border-top: 1px solid #d5e0eb; border-bottom: 1px solid #d5e0eb; padding: 27px 0; }
.hajj-webinars-link h2 { margin: 4px 0 5px; color: #103e70; font-size: clamp(23px, 2.7vw, 31px); line-height: 1.2; }
.hajj-webinars-link p:last-child { margin: 0; color: #526377; font-size: 15px; }
.hajj-webinars-link a { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 12px; min-height: 46px; border-radius: 8px; padding: 10px 18px; color: #fff; background: #15568e; font-weight: 750; transition: background .18s ease; }
.hajj-webinars-link a:hover { background: #0a3f70; }
@media (max-width: 700px) {
    .hajj-webinars-page { width: min(100% - 32px, 540px); padding: 36px 0 68px; }
    .hajj-webinars-intro { margin-bottom: 30px; }
    .hajj-webinars-grid { grid-template-columns: 1fr; gap: 34px; }
    .hajj-webinar-media { border-radius: 10px; }
    .hajj-webinar-caption { padding-top: 13px; }
    .hajj-webinars-link { display: block; width: min(100% - 32px, 540px); margin-bottom: 56px; }
    .hajj-webinars-link a { margin-top: 20px; }
}

/* Short reviews near the booking buttons (tour, Omra and Hajj pages). */
.reviews-strip { width: min(1100px, 90vw); margin: clamp(40px, 6vw, 72px) auto; }
.tour-main .reviews-strip { width: auto; margin: 0; border: 1px solid var(--tour-line, #e4d9c5); border-radius: 24px; padding: clamp(22px, 3vw, 32px); background: var(--tour-card, #fff); }
.reviews-strip-head { margin-bottom: 20px; text-align: center; }
.tour-main .reviews-strip-head { text-align: left; }
.reviews-strip-head h2 { margin: 6px 0 0; font-size: clamp(26px, 3vw, 36px); line-height: 1.15; }
.reviews-strip-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.tour-main .reviews-strip-list { grid-template-columns: 1fr; gap: 12px; }
.reviews-strip-item { display: grid; align-content: start; gap: 10px; margin: 0; border: 1px solid #e4e9ef; border-radius: 18px; padding: 20px 22px; background: #fff; }
.reviews-strip-stars { color: #d49a2a; font-size: 17px; letter-spacing: 2px; }
.reviews-strip-item blockquote { margin: 0; }
.reviews-strip-item blockquote p { display: -webkit-box; margin: 0; overflow: hidden; color: #2c3a4a; font-size: 16px; line-height: 1.6; -webkit-line-clamp: 5; -webkit-box-orient: vertical; }
.reviews-strip-item figcaption { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.reviews-strip-item figcaption strong { color: #10263f; font-size: 15px; }
.reviews-strip-item figcaption small { color: #6b7786; font-size: 13px; }
.reviews-strip-link { margin: 18px 0 0; text-align: center; }
.tour-main .reviews-strip-link { text-align: left; }
.reviews-strip-link a { color: #0d6498; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 860px) { .reviews-strip-list { grid-template-columns: 1fr; } }
/* Two reviews are enough on a phone: the page stays short before the booking form. */
@media (max-width: 760px) { .reviews-strip-item:nth-child(3) { display: none; } }

/* Hajj prices: euro equivalent under the riyal price, and why prices are in riyals. */
.hajj-price-eur { display: block; margin-top: 2px; font-size: 15px; font-weight: 600; opacity: .8; }
dd .hajj-price-eur { font-size: 13px; }
.hajj-currency-note { max-width: 760px; margin: 14px 0 0; font-size: 14px; line-height: 1.55; }
.hajj-currency-note summary { cursor: pointer; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.hajj-currency-note p { margin: 8px 0 0; opacity: .85; }
.hajj-formulas-notes { max-width: 900px; margin: 22px auto 0; color: rgba(255,255,255,.72); }
.hajj-formulas-notes .hajj-currency-note { margin: 0 auto; text-align: center; }
.hajj-formulas-caveat { margin: 10px auto 0; font-size: 13px; text-align: center; opacity: .8; }
.premium-hajj-facts .hajj-currency-note, .gold-shifting-facts .hajj-currency-note { align-self: center; margin: 0; color: rgba(255,255,255,.78); }
.premium-hajj-facts .hajj-currency-note summary, .gold-shifting-facts .hajj-currency-note summary { color: #d8b65f; }

/* Readability: fine print, notes and captions stay at 13-14 px with a darker grey; many travellers read on a phone
   or wear reading glasses. Section kickers and badges keep their size. */
.form-privacy-note, .form-privacy-note a { color: #556070 !important; font-size: 13px !important; }
.route-step-endpoint { color: #4f5d6e; font-size: 14px; }
.hajj-next-note { color: #56616e; font-size: 13.5px; }
.hajj-registration-help { color: #4f5b6a; font-size: 14px; }
.comfort-price span { color: rgba(255,255,255,.74); font-size: 14px; }
.comfort-travel-info > small { color: rgba(255,255,255,.66); font-size: 13px; }
.comfort-services-grid p { color: #556172; }
.home-city-card small, .home-city-card small a { color: #4f5b6a; }
.hajj-formulas-caveat { font-size: 14px; }
/* Examples in empty fields stay light, so they are not mistaken for a value already typed. */
main :is(input, textarea)::placeholder { color: #98a2ae; opacity: 1; }
/* A slightly larger logo keeps "TRAVEL" readable; the header height does not change. */
@media (min-width: 1280px) { .brand-logo { width: 272px; } }
@media (max-width: 760px) { .brand-logo { width: 158px !important; } }

/* "Pourquoi Hisar Europe": four reasons, on the homepage and the About page. */
.why-hisar { padding: clamp(56px, 7vw, 92px) 5vw; background: #fff; }
body:has(.about-hero) .why-hisar { background: transparent; }
.why-hisar-head, .booking-steps-head { max-width: 680px; margin: 0 auto 34px; text-align: center; }
.why-hisar-head h2, .booking-steps-head h2 { margin: 8px 0 0; color: #16283a; font-size: clamp(30px, 3.6vw, 44px); line-height: 1.12; }
.why-hisar-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; max-width: 1180px; margin: 0 auto; padding: 0; list-style: none; }
.why-hisar-list li { display: grid; align-content: start; gap: 10px; border: 1px solid #e8e1d3; border-radius: 22px; padding: 26px 24px 28px; background: #fffdf9; }
.why-hisar-icon { display: grid; width: 50px; height: 50px; place-items: center; border-radius: 15px; color: #80602f; background: #f4ead1; }
.why-hisar-icon svg { width: 25px; height: 25px; }
.why-hisar-list h3 { margin: 8px 0 0; color: #16283a; font-size: 19px; line-height: 1.3; }
.why-hisar-list p { margin: 0; color: #556172; font-size: 16px; line-height: 1.6; }
@media (max-width: 1080px) { .why-hisar-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) {
    .why-hisar-list { grid-template-columns: 1fr; gap: 12px; }
    .why-hisar-list li { grid-template-columns: 50px 1fr; column-gap: 16px; padding: 20px; }
    .why-hisar-icon { grid-row: span 2; }
    .why-hisar-list h3 { margin: 0; align-self: center; }
}

/* "Comment ça se passe": the five steps from the request to the departure, on the Omra page. */
.booking-steps { padding: clamp(56px, 7vw, 88px) 5vw; background: #f3f8fd; }
.booking-steps-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; max-width: 1240px; margin: 0 auto; padding: 0; list-style: none; counter-reset: none; }
.booking-steps-list li { position: relative; display: grid; align-content: start; gap: 14px; border: 1px solid #d5e3f0; border-radius: 22px; padding: 24px 22px 26px; background: #fff; }
.booking-steps-list li:not(:last-child)::after { content: ''; position: absolute; top: 44px; right: -15px; width: 16px; height: 2px; background: #9fc0de; }
.booking-steps-number { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 50%; color: #fff; background: #0b3a66; font-size: 17px; font-weight: 700; }
.booking-steps-list h3 { margin: 0 0 6px; color: #0b2a4a; font-size: 18px; line-height: 1.3; }
.booking-steps-list p { margin: 0; color: #4f5d6e; font-size: 15.5px; line-height: 1.6; }
.booking-steps-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px 22px; margin: 30px 0 0; }
.booking-steps-actions a { display: inline-flex; align-items: center; gap: 8px; color: #0b3a66; font-weight: 600; }
.booking-steps-actions a svg { width: 17px; height: 17px; fill: currentColor; }
.booking-steps-actions .booking-steps-primary { border-radius: 999px; padding: 13px 26px; color: #fff; background: #1170c2; }
@media (max-width: 1080px) {
    .booking-steps-list { grid-template-columns: 1fr; max-width: 640px; gap: 10px; }
    .booking-steps-list li { grid-template-columns: 40px 1fr; column-gap: 16px; padding: 18px 20px; }
    .booking-steps-list li:not(:last-child)::after { top: auto; right: auto; bottom: -11px; left: 39px; width: 2px; height: 12px; }
}

/* Header menu: larger words for older readers, the phone number in full on wide screens,
   and the Hajj pre-registration shown as a small gold button in its submenu. */
body .site-header .main-nav :is(.main-nav > a, .nav-parent) { font-size: 16px; }
body .site-header .nav-dropdown a { font-size: 15.5px; }
body .site-header .nav-dropdown a.nav-dropdown-cta { margin: 8px 14px 10px; border-radius: 10px; padding: 11px 16px; color: #1c1a14 !important; background: #dcc393; text-align: center; }
body .site-header .nav-dropdown a.nav-dropdown-cta:hover, body .site-header .nav-dropdown a.nav-dropdown-cta:focus-visible { background: #e8d2a6; }
.header-phone { display: none; align-items: center; gap: 8px; color: #fff; font-size: 16px; font-weight: 600; white-space: nowrap; }
.header-phone svg { width: 17px; height: 17px; fill: #dcc393; }
.header-phone:hover span { text-decoration: underline; text-underline-offset: 4px; }
@media (min-width: 1500px) { .header-phone { display: inline-flex; margin-right: 6px; } }
@media (max-width: 1050px) {
    body .site-header .main-nav :is(.main-nav > a, .nav-parent) { font-size: 18px; font-weight: 600; }
    body .site-header .main-nav .nav-dropdown a { font-size: 17px !important; }
    body .site-header .nav-dropdown a.nav-dropdown-cta { display: inline-block; margin: 6px 0 8px 14px; }
}

/* "Omra au départ de …" city pages. */
.omra-city-lead { max-width: 720px; margin: 12px auto 0; color: #3f4d5c; font-size: 18px; line-height: 1.6; }
.omra-city-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px 22px; margin: 24px 0 0; }
.omra-city-actions a { display: inline-flex; align-items: center; gap: 8px; color: #0b3a66; font-weight: 600; }
.omra-city-actions a svg { width: 18px; height: 18px; }
.omra-city-actions .booking-steps-primary { border-radius: 999px; padding: 13px 26px; color: #fff; background: #1170c2; }
.omra-city-others { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px; margin: 28px 0 0; }
.omra-city-others > span { color: #3f4d5c; font-weight: 600; }
/* Confirmation shown after a callback request on the package pages. */
.lead-form-flash { margin: 18px 0 0; border-radius: 14px; padding: 14px 18px; color: #166534 !important; background: #e9f9ee; font-size: 16px; font-weight: 600; }
/* Small labels inside number badges stay readable. */
.omra-formula-card > header > strong small { font-size: 12px; }
.comfort-day-number small { font-size: 12px !important; }
.omra-formulas-service-grid article small, .hajj-forfaits-services article small { font-size: 12px !important; }

/* Hajj formulas on phones: compact cards (name, length, price, buttons); the hotels open with "Voir ce qui est inclus".
   The WhatsApp button stays on every card so the message names the formula. */
.hajj-formulas-compare { margin: 16px 0 0; text-align: center; }
.hajj-formulas-compare a { color: #e2c27a; font-weight: 650; text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 760px) {
    .hajj-formulas-section.is-compact .hajj-formula-cards-four { gap: 12px !important; }
    .hajj-formulas-section.is-compact .hajj-formula-cards-four article { min-height: 0 !important; padding: 20px 18px 18px !important; border-radius: 20px !important; }
    .hajj-formulas-section.is-compact .hajj-formula-cards-four article:hover { transform: none; }
    .hajj-formulas-section.is-compact .hajj-formula-card-head { margin-bottom: 6px; }
    .hajj-formulas-section.is-compact .hajj-formula-card-head > span { font-size: 12px; }
    .hajj-formulas-section.is-compact .hajj-formula-cards-four h3 { margin: 0 0 6px !important; font-size: 26px !important; }
    .hajj-formulas-section.is-compact .hajj-formula-cards-four ul { display: none; margin: 4px 0 6px; }
    .hajj-formulas-section.is-compact .hajj-formula-cards-four article.is-open ul { display: grid; }
    .hajj-formula-toggle { display: inline-flex; align-items: center; gap: 8px; width: fit-content; margin: 0 0 4px; border: 0; padding: 8px 0; color: #0b5fa6; background: none; font: inherit; font-size: 15px; font-weight: 650; cursor: pointer; }
    .hajj-formula-toggle[hidden] { display: none; }
    .hajj-formula-toggle span { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; color: #fff; background: #0b5fa6; font-size: 16px; line-height: 1; }
    .hajj-formulas-section.is-compact .hajj-formula-price { margin: 4px 0 14px; padding-top: 12px; }
    .hajj-formulas-section.is-compact .hajj-formula-price > small:first-child { display: none; }
    .hajj-formulas-section.is-compact .hajj-formula-price strong { font-size: 25px; }
    .hajj-formulas-section.is-compact .hajj-formula-actions { flex-direction: row !important; align-items: stretch; }
    .hajj-formulas-section.is-compact .hajj-formula-cards-four .hajj-formula-actions a { min-height: 50px; padding: 0 12px; white-space: nowrap; }
    .hajj-formulas-section.is-compact .hajj-formula-cards-four .hajj-formula-detail { flex: 1 1 0; gap: 8px; width: auto !important; min-width: 0; }
    .hajj-formulas-section.is-compact .hajj-formula-cards-four .hajj-formula-whatsapp { flex: 0 0 56px; width: 56px !important; padding: 0; color: #fff !important; background: #1e9e52 !important; }
    .hajj-formulas-section.is-compact .hajj-formula-whatsapp svg { width: 27px; height: 27px; }
    .hajj-formulas-section.is-compact .hajj-formula-whatsapp span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

/* "Je m'en occupe" page opened from an alert e-mail. */
.lead-claim { width: min(640px, 90vw); margin: 0 auto; padding: 80px 0 100px; display: grid; gap: 14px; }
.lead-claim h1 { margin: 0; font-size: clamp(28px, 4vw, 38px); line-height: 1.15; }
.lead-claim p { margin: 0; color: #3f4d5c; font-size: 17px; }
.lead-claim form { margin-top: 8px; }

/* "Réserver": confirmation before the Euro-SIS booking site opens in a new tab. */
.booking-leave { width: min(440px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); border: 0; border-radius: 24px; padding: 0; color: #0b2a4a; background: #fff; box-shadow: 0 30px 80px rgba(6, 20, 40, .35); }
.booking-leave[open] { animation: booking-leave-in .22s ease-out; }
@keyframes booking-leave-in { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
.booking-leave::backdrop { background: rgba(6, 20, 40, .55); backdrop-filter: blur(3px); }
.booking-leave form { position: relative; display: grid; gap: 14px; padding: 30px 26px 22px; text-align: center; }
.booking-leave-close { position: absolute; top: 12px; right: 12px; width: 38px; height: 38px; border: 0; border-radius: 50%; color: #4f5d6e; background: #f1f4f8; font-size: 22px; line-height: 1; cursor: pointer; }
.booking-leave-icon { justify-self: center; display: grid; width: 56px; height: 56px; place-items: center; border-radius: 50%; background: #e8f1fb; }
.booking-leave-icon svg { width: 26px; height: 26px; fill: none; stroke: #0b5fa6; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.booking-leave h2 { margin: 0; font-size: 26px; line-height: 1.2; }
.booking-leave p { margin: 0; color: #3f4d5c; font-size: 16px; line-height: 1.55; }
.booking-leave-trip { display: grid; gap: 3px; border: 1px solid #e3eaf2; border-radius: 14px; padding: 12px 14px; background: #f7fafd; text-align: left; }
.booking-leave-trip strong { font-size: 16px; }
.booking-leave-trip span { color: #4f5d6e; font-size: 14px; }
.booking-leave-points { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 16px; margin: 0; padding: 0; list-style: none; color: #3f4d5c; font-size: 14px; }
.booking-leave-points li::before { content: '✓'; margin-right: 6px; color: #1e9e52; font-weight: 700; }
.booking-leave-go { display: flex; min-height: 54px; align-items: center; justify-content: center; gap: 8px; border-radius: 14px; padding: 0 18px; color: #fff !important; background: #0b5fa6; font-size: 17px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.booking-leave-go:hover { background: #094f8a; }
.booking-leave-go:focus { outline: none; }
.booking-leave-go:focus-visible { outline: 3px solid #9cc4ea; outline-offset: 2px; }
.booking-leave-cancel { border: 0; padding: 4px; color: #4f5d6e; background: none; font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; }
.booking-leave-cancel:hover { color: #0b2a4a; text-decoration: underline; }
.booking-leave-help { font-size: 14px !important; }
.booking-leave-help a { color: #0b5fa6; font-weight: 600; }
@media (prefers-reduced-motion: reduce) { .booking-leave[open] { animation: none; } }
/* Pre-registration page: the form itself is on hisareurope.com. */
.hajj-preinscription-out { width: min(680px, 90vw); margin: 0 auto; padding: 60px 0 90px; display: grid; gap: 14px; }
.hajj-preinscription-out h1 { margin: 0; font-size: clamp(30px, 4.6vw, 44px); line-height: 1.1; }
.hajj-preinscription-out p { margin: 0; color: #3f4d5c; font-size: 17px; line-height: 1.6; }
.hajj-preinscription-out .booking-leave-go { display: inline-flex; margin-top: 8px; }
.hajj-preinscription-help { font-size: 15px !important; }
.hajj-preinscription-help a { color: #0b5fa6; font-weight: 600; }

/* Hajj 2027: programmes and dates are provisional until the official one is published. */
.hajj-provisional { display: flex; gap: 12px 16px; align-items: baseline; flex-wrap: wrap; max-width: 1180px; margin: 22px auto; padding: 14px 18px; border: 1px solid #e6c873; border-left: 4px solid #c9a227; border-radius: 10px; background: #fff8e3; color: #4a3b0c; font-size: 15px; line-height: 1.5; }
.hajj-provisional strong { flex: none; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: #8a6a0e; }
.hajj-provisional p { flex: 1 1 320px; margin: 0; }
@media (max-width: 760px) { .hajj-provisional { margin: 16px; font-size: 14px; } }

/* Readability and touch: contrast, focus and target sizes checked with axe (WCAG 2.2 AA). */
.comfort-option-card button { background: #8f6b22; }
.hajj-preinscription-out .hajj-back-link { margin-bottom: 8px; color: #1f4f7a; }
.hajj-preinscription-out .hajj-back-link:hover { color: #0e2f4d; }
.form-privacy-note a, .home-city-card small a, .hajj-preinscription-out a:not([class]) { text-decoration: underline; text-underline-offset: 2px; }
.carousel-dots button, .carousel-dots button.active { box-sizing: content-box; padding: 9px; background-clip: content-box !important; }
.carousel-dots { gap: 0; }
[data-carousel-track]:focus-visible { outline: 3px solid #1f6fb2; outline-offset: 4px; }
.detail-language-flags { display: inline-flex; align-items: center; gap: 8px; }
.detail-language-flags > span { display: inline-flex; gap: 4px; }
.detail-language-flags b { font-weight: 650; }
.tour-back, .tour-booking-children, .hajj-forfaits-back, .comfort-program-link, .home-review-more { min-height: 24px; display: inline-flex; align-items: center; }
details > summary { min-height: 24px; }
.site-footer a, .footer-contact a, .footer-links a { min-height: 24px; display: inline-flex; align-items: center; }
/* Hidden from people, filled only by robots. */
.form-trap { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
/* A form that needs correcting. */
.flash.is-error, .lead-form-flash.is-error, .home-cities-flash.is-error { color: #8a1c1c !important; background: #fdecec; border: 1px solid #f3c2c2; }
.gold-shifting-route .is-rite span { color: #d6b25e; }
@media (max-width: 860px) {
    /* The fixed booking bar must not leave a pale strip under the footer. */
    body:has(.tour-mobile-bar) { padding-bottom: 0; }
    body:has(.tour-mobile-bar) .site-footer { padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px)); }
}
.hajj-preinscription-out .booking-leave-go { max-width: 100%; white-space: normal; text-align: center; justify-content: center; }
.omra-filter-bar select { min-height: 32px; }
.omra-filter-bar select:focus-visible { outline: 3px solid #1f6fb2; outline-offset: 3px; }

/* Mentions légales: label / value rows under each heading. */
.legal-facts { display: grid; gap: 0; margin: 18px 0 0; padding: 0; list-style: none; border-top: 1px solid #e3e8ef; }
.legal-facts li { display: grid; grid-template-columns: minmax(150px, 34%) 1fr; gap: 6px 18px; padding: 12px 0; border-bottom: 1px solid #e3e8ef; color: #1d2b3c; line-height: 1.5; }
.legal-facts li > span { color: #56606f; font-size: 14px; font-weight: 600; }
.privacy-content article p a { text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 600px) { .legal-facts li { grid-template-columns: 1fr; gap: 2px; } }
