:root {
  --navy: #0b2e55;
  --blue: #165a9e;
  --sky: #dff2ff;
  --gold: #e9b45e;
  --cream: #fffaf0;
  --ink: #142132;
  --muted: #64748b;
  --line: #dce6ef;
  --green: #1fa855;
  --white: #fff;
  --shadow: 0 22px 60px rgba(8, 38, 69, .12);
  --radius: 28px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: #f7fafc;
  font-family: Arial, "Noto Sans Hebrew", sans-serif;
  line-height: 1.6;
}
body.modal-open { overflow: hidden; }
a { color: inherit; }
button, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

.skip-link { position: fixed; top: -100px; right: 16px; z-index: 1000; background: #fff; padding: 10px 16px; border-radius: 8px; }
.skip-link:focus { top: 16px; }

.topbar {
  position: absolute;
  inset: 0 0 auto;
  z-index: 10;
  max-width: 1180px;
  margin: auto;
  padding: 26px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #fff;
}
.brand { display: inline-flex; gap: 10px; align-items: center; text-decoration: none; line-height: 1.05; }
.brand-mark { display: grid; place-items: center; width: 43px; height: 43px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; font-weight: 800; font-size: 13px; letter-spacing: -.5px; }
.brand b { display: block; font-size: 17px; letter-spacing: 1px; }
.brand small { display: block; margin-top: 5px; font-size: 11px; opacity: .72; }
.top-cta { padding: 9px 18px; border: 1px solid rgba(255,255,255,.5); border-radius: 999px; text-decoration: none; font-size: 14px; transition: .2s ease; }
.top-cta:hover { background: #fff; color: var(--navy); }

.hero {
  position: relative;
  min-height: 760px;
  overflow: hidden;
  display: grid;
  align-items: center;
  background: radial-gradient(circle at 20% 18%, #367bb9 0, #143f70 38%, #082846 100%);
  color: #fff;
}
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 0 38%, rgba(4, 26, 47, .22) 68%, rgba(4, 24, 43, .7) 100%); pointer-events: none; }
.hero-art { position: absolute; inset: 0; overflow: hidden; }
.hero-art::before, .hero-art::after { content:""; position:absolute; width:4px; height:4px; border-radius:50%; background:#fff; opacity:.6; box-shadow: 80px 30px #fff, 160px 110px #fff, 290px 40px #fff, 440px 140px #fff, 610px 55px #fff, 760px 130px #fff, 910px 70px #fff, 1030px 160px #fff; animation: snow 11s linear infinite; }
.hero-art::before { top: 10%; left: 2%; }
.hero-art::after { top: -10%; left: 10%; animation-delay: -5s; opacity: .35; transform: scale(.65); }
@keyframes snow { to { transform: translateY(470px); } }
.moon { position: absolute; top: 120px; left: 18%; width: 125px; height: 125px; border-radius: 50%; background: #fff4c7; box-shadow: 0 0 70px rgba(255, 244, 199, .35); opacity:.9; }
.mountains { position:absolute; inset:auto -5% 180px; height:320px; clip-path: polygon(0 100%, 0 62%, 11% 34%, 20% 67%, 32% 17%, 46% 72%, 58% 27%, 66% 56%, 78% 8%, 88% 60%, 100% 31%, 100% 100%); }
.mountains-back { background: #34678f; opacity:.55; transform: translateY(-38px) scale(1.05); }
.mountains-front { background: linear-gradient(180deg, #d5eaf7 0 8%, #739cba 9% 42%, #244e70 100%); opacity:.72; }
.skyline { position:absolute; left:0; bottom:0; width:65%; min-width:720px; height:335px; fill:#061d33; opacity:.96; filter: drop-shadow(0 -20px 45px rgba(5,32,53,.25)); }
.skyline circle { fill: #f2c068; opacity: .85; }
.hero-photo { position:absolute; inset:0 auto 0 0; width:46%; margin:0; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,#000 0 70%,transparent 100%); mask-image:linear-gradient(90deg,#000 0 70%,transparent 100%); }
.hero-photo img { width:100%; height:100%; object-fit:cover; object-position:center 64%; filter:saturate(.85) contrast(1.03); opacity:.88; }

.hero-content { position: relative; z-index: 2; width: min(1180px, 100%); margin: 0 auto; padding: 120px 28px 90px; }
.hero-content > * { max-width: 585px; }
.eyebrow { display:inline-flex; gap:8px; align-items:center; padding:7px 13px; background:rgba(255,255,255,.11); border:1px solid rgba(255,255,255,.24); border-radius:999px; font-size:14px; }
.hero h1 { margin: 20px 0 16px; font-size: clamp(46px, 7vw, 86px); line-height: .98; letter-spacing: -3px; }
.hero h1 span { color: #f2c36e; }
.hero-lead { font-size: 20px; line-height: 1.7; color: rgba(255,255,255,.84); }
.quick-facts { display:flex; margin: 28px 0 32px; border-block: 1px solid rgba(255,255,255,.17); padding:18px 0; }
.quick-facts span { min-width: 132px; padding-inline: 15px; border-inline-end: 1px solid rgba(255,255,255,.17); }
.quick-facts span:first-child { padding-inline-start: 0; }
.quick-facts span:last-child { border:0; }
.quick-facts b, .quick-facts small { display:block; }
.quick-facts b { font-size:15px; }
.quick-facts small { font-size:12px; opacity:.65; }
.primary-button { display:inline-flex; align-items:center; justify-content:center; gap:14px; padding:15px 24px; background:var(--gold); color:#082846; border-radius:14px; font-weight:800; text-decoration:none; box-shadow:0 12px 30px rgba(0,0,0,.2); transition:.2s ease; }
.primary-button:hover { transform:translateY(-2px); background:#f4ca80; }

.plans-section { max-width: 1180px; margin: auto; padding: 95px 28px; }
.section-heading { text-align:center; max-width:680px; margin:0 auto 38px; }
.kicker { margin:0 0 6px; color:var(--blue); font-size:14px; font-weight:800; letter-spacing:.04em; }
.section-heading h2, .hotel-copy h2 { margin:0; font-size:clamp(32px, 5vw, 48px); letter-spacing:-1.4px; color:var(--navy); }
.section-heading > p:last-child { color:var(--muted); }
.plan-tabs { display:grid; grid-template-columns:1fr 1fr; gap:18px; max-width:820px; margin:0 auto -28px; position:relative; z-index:2; }
.plan-tab { position:relative; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:13px; text-align:right; min-height:108px; padding:22px; border:2px solid var(--line); border-radius:20px; background:#fff; color:var(--ink); cursor:pointer; box-shadow:0 8px 25px rgba(18,63,116,.06); transition:.2s ease; }
.plan-tab:hover { border-color:#8fb4d6; transform:translateY(-2px); }
.plan-tab.is-active { border-color:var(--blue); box-shadow:0 12px 34px rgba(22,90,158,.16); }
.tab-icon { display:grid; place-items:center; width:48px; height:48px; background:#eef6fc; border-radius:15px; font-size:24px; }
.plan-tab b, .plan-tab small { display:block; }
.plan-tab b { font-size:18px; }
.plan-tab small { color:var(--muted); }
.check { display:none; place-items:center; width:26px; height:26px; background:var(--blue); color:#fff; border-radius:50%; font-weight:800; }
.plan-tab.is-active .check { display:grid; }
.popular { position:absolute; top:-11px; left:18px; padding:3px 10px; border-radius:99px; background:var(--gold); color:#493311; font-size:11px; font-weight:800; }

.vacation-choices { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; max-width:1120px; margin:0 auto; }
.vacation-choice { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:16px; min-height:122px; padding:22px; border:2px solid var(--line); border-radius:22px; background:#fff; color:var(--ink); text-align:right; cursor:pointer; box-shadow:0 10px 30px rgba(18,63,116,.07); transition:.2s ease; }
.vacation-choice:hover { border-color:#8fb4d6; transform:translateY(-3px); box-shadow:0 16px 36px rgba(18,63,116,.12); }
.vacation-choice.is-active { border-color:var(--blue); background:#f8fbfe; box-shadow:0 16px 38px rgba(22,90,158,.16); }
.vacation-choice b, .vacation-choice small { display:block; }
.vacation-choice b { color:var(--navy); font-size:20px; }
.vacation-choice small { margin-top:4px; color:var(--muted); font-size:13px; }
.vacation-choice-icon { display:grid; place-items:center; width:58px; height:58px; border-radius:18px; background:#eaf3fa; color:var(--blue); font-size:26px; }
.kosher-choice .vacation-choice-icon { background:#fff2d7; color:#85601d; }
.organized-choice .vacation-choice-icon { background:#e7f6ee; color:#167b4b; }
.choice-arrow { color:var(--blue); font-size:24px; }
.choice-hint { margin:18px auto 0; color:var(--muted); text-align:center; font-size:13px; }
.choice-hint.is-complete { color:var(--blue); font-weight:800; }
.kosher-flow { margin-top:52px; }
.flow-heading, .weekend-flow { display:flex; align-items:center; gap:14px; max-width:820px; margin:0 auto 30px; padding:18px 22px; border-radius:17px; background:#fff8e9; color:#5b4217; border:1px solid #efd39e; }
.flow-heading > span, .weekend-flow > span { font-size:28px; }
.flow-heading b, .flow-heading small { display:block; }
.flow-heading small { color:#8b7040; font-size:12px; }
.weekend-flow { margin-top:52px; margin-bottom:0; background:#edf6fc; border-color:#bcd7ea; color:var(--navy); }
.weekend-flow b { display:block; font-size:19px; }
.weekend-flow p { margin:2px 0 0; color:#587189; font-size:13px; }
.organized-flow { max-width:920px; margin:52px auto 0; }
.organized-tour-card { padding:38px; border:2px solid #7ebc9c; border-radius:24px; background:linear-gradient(145deg,#fbfffd,#eef9f3); box-shadow:0 18px 48px rgba(20,105,67,.1); }
.organized-tour-card h3 { margin:8px 0; color:var(--navy); font-size:28px; }
.organized-tour-card > p { margin:0; color:var(--muted); line-height:1.7; }
.organized-tour-facts { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:24px; }
.organized-tour-facts span { padding:16px; border:1px solid #cce5d8; border-radius:15px; background:#fff; }
.organized-tour-facts b, .organized-tour-facts small { display:block; }
.organized-tour-facts small { margin-top:4px; color:var(--muted); font-size:12px; }
.organized-tour-sections { display:grid; gap:18px; margin-top:26px; }
.organized-tour-section { padding:24px; border:1px solid #d9e6df; border-radius:18px; background:#fff; }
.organized-tour-section h4 { margin:0 0 16px; color:var(--navy); font-size:20px; }
.organized-tour-section ul { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:0; padding:0; list-style:none; }
.organized-tour-section li { display:flex; gap:9px; align-items:flex-start; color:var(--ink); line-height:1.55; }
.organized-tour-section li span { flex:0 0 auto; }
.tour-highlights { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.tour-highlights span, .bonus-grid span { padding:11px 13px; border-radius:12px; background:#f3f8f5; color:var(--ink); font-size:14px; line-height:1.45; }
.bonus-section { border-color:#eed49d; background:#fffaf0; }
.bonus-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.bonus-grid span { background:#fff; border:1px solid #f0dfbb; }
.weekend-details { max-width:920px; margin:52px auto 0; }
.weekend-card { padding:36px; border:2px solid #9bc6e2; border-radius:24px; background:linear-gradient(145deg,#fbfdff,#edf6fc); box-shadow:0 18px 48px rgba(22,90,158,.1); }
.weekend-card h3 { margin:8px 0; color:var(--navy); font-size:28px; }
.weekend-card > p { color:var(--muted); line-height:1.7; }
.weekend-facts { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:22px; }
.weekend-facts span { padding:16px; border:1px solid #c8ddeb; border-radius:15px; background:#fff; }
.weekend-facts b, .weekend-facts small { display:block; }
.weekend-facts small { margin-top:4px; color:var(--muted); font-size:12px; }
.weekend-card .weekend-kosher-note { margin:18px 0 0; padding:12px 15px; border-radius:12px; background:#fff4e8; color:#874b15; font-weight:700; }
.organized-price { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px 14px; margin-top:24px; padding:20px; border-radius:17px; background:var(--navy); color:#fff; text-align:center; }
.organized-price > span { color:#f2c36e; font-weight:800; }
.organized-price strong { display:inline-flex; align-items:baseline; gap:7px; font-size:24px; line-height:1.2; }
.organized-price strong b { font-family:Arial,Helvetica,sans-serif; font-size:34px; font-weight:800; letter-spacing:0; }
.organized-price small { color:rgba(255,255,255,.72); }
.organized-contact-actions { display:grid; grid-template-columns:1.25fr .75fr; gap:12px; margin-top:20px; }
.organized-contact-actions .whatsapp-button { margin:0; }
.organized-phone { display:flex; align-items:center; justify-content:center; flex-direction:column; min-height:52px; padding:10px 16px; border:2px solid var(--blue); border-radius:13px; background:#fff; color:var(--navy); text-decoration:none; }
.organized-phone span { font-size:12px; color:var(--muted); }
.organized-phone b { margin-top:2px; font-family:Arial,Helvetica,sans-serif; font-size:20px; }
.kosher-product-choices { display:grid; grid-template-columns:1fr 1fr; gap:14px; max-width:820px; margin:0 auto 44px; }
.kosher-product-choice { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:13px; min-height:92px; padding:18px; border:2px solid var(--line); border-radius:18px; background:#fff; color:var(--ink); text-align:right; cursor:pointer; transition:.2s ease; }
.kosher-product-choice:hover { border-color:#91b5d2; transform:translateY(-2px); }
.kosher-product-choice.is-active { border-color:var(--blue); box-shadow:0 12px 30px rgba(22,90,158,.13); }
.kosher-product-choice > span:first-child { display:grid; place-items:center; width:44px; height:44px; border-radius:13px; background:#edf5fa; color:var(--blue); font-size:20px; }
.kosher-product-choice b, .kosher-product-choice small { display:block; }
.kosher-product-choice b { color:var(--navy); font-size:17px; }
.kosher-product-choice small { color:var(--muted); font-size:12px; }
.kosher-product-choice .check { display:none; }
.kosher-product-choice.is-active .check { display:grid; }

.comparison { display:grid; grid-template-columns:1fr .9fr; gap:50px; padding:72px 58px 48px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; box-shadow:var(--shadow); }
.full-package-details { padding-top:48px; }
.selected-label { color:var(--blue); font-size:12px; font-weight:800; }
.comparison-copy h3 { margin:8px 0 8px; font-size:28px; line-height:1.25; color:var(--navy); }
.comparison-copy > p { color:var(--muted); }
.feature-list { list-style:none; padding:0; margin:26px 0 0; }
.feature-list li { display:flex; gap:10px; align-items:center; min-height:48px; border-bottom:1px solid #edf2f7; }
.feature-list li span { color:var(--green); font-weight:900; }
.feature-list li.is-muted { color:#9aa7b5; text-decoration:line-through; }
.feature-list li.is-muted span { color:#a8b3bf; }
.trip-builder { align-self:start; padding:26px; border-radius:20px; background:#f3f8fc; }
.trip-builder h3 { margin:0; font-size:22px; color:var(--navy); }
.trip-builder > p { margin:3px 0 20px; color:var(--muted); font-size:14px; }
.trip-builder label { display:block; margin:12px 0 6px; font-size:13px; font-weight:800; }
.trip-builder select { width:100%; height:49px; padding:0 13px; border:1px solid #c9d8e5; border-radius:11px; background:#fff; color:var(--ink); outline:none; }
.trip-builder select:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(22,90,158,.12); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.continue-button { display:flex; align-items:center; justify-content:center; gap:10px; min-height:52px; margin-top:20px; padding:13px 18px; border-radius:13px; background:var(--blue); color:#fff; text-decoration:none; font-weight:800; box-shadow:0 10px 24px rgba(22,90,158,.2); transition:.2s ease; }
.continue-button:hover { background:#0f4b87; transform:translateY(-1px); }
.whatsapp-button { display:flex; align-items:center; justify-content:center; gap:9px; width:100%; margin-top:20px; min-height:52px; padding:13px 18px; border:0; border-radius:13px; background:var(--green); color:#fff; font-weight:800; text-decoration:none; cursor:pointer; box-shadow:0 10px 22px rgba(31,168,85,.2); transition:.2s ease; }
.whatsapp-button:hover { background:#178b45; transform:translateY(-1px); }
.wa-icon { display:grid; place-items:center; width:22px; height:22px; border:2px solid currentColor; border-radius:50%; }
.privacy-note { text-align:center; margin:9px 0 0 !important; font-size:11px !important; }
.form-error { min-height:20px; color:#ba1a1a !important; font-weight:700; }

.hotel-only-flow { max-width:920px; margin:0 auto; }
.hotel-only-card { padding:34px; border:2px solid #d3aa5c; border-radius:24px; background:linear-gradient(145deg,#fffdf7,#fff6e3); box-shadow:0 18px 48px rgba(90,62,15,.1); }
.hotel-only-card h3 { margin:7px 0; color:var(--navy); font-size:28px; }
.hotel-only-card p { margin:0; color:var(--muted); }
.hotel-meal-options { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:24px 0 16px; }
.hotel-meal-options > span { padding:16px; border:1px solid #ebd8af; border-radius:15px; background:#fff; }
.hotel-meal-options b, .hotel-meal-options small { display:block; }
.hotel-meal-options b { color:var(--navy); }
.hotel-meal-options small { color:var(--muted); font-size:12px; }
.not-included { display:flex; flex-wrap:wrap; gap:12px 20px; align-items:center; padding:14px 16px; border-radius:14px; background:#fff1ee; color:#8b2d20; }
.not-included b { margin-inline-end:auto; }
.not-included span { font-weight:800; }

.next-step { margin-top:68px; padding:48px; border:2px solid #2b6ca9; border-radius:var(--radius); background:linear-gradient(145deg,#0b2e55,#174f82); color:#fff; box-shadow:0 24px 65px rgba(8,38,69,.22); }
.next-step-heading { max-width:680px; margin:0 auto 28px; text-align:center; }
.next-step-heading .kicker { color:#f2c36e; }
.next-step-heading h2 { margin:0; color:#fff; font-size:clamp(32px,4vw,46px); letter-spacing:-1px; }
.next-step-heading > p:last-child { margin:7px 0 0; color:rgba(255,255,255,.72); }
.service-options { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.service-option { overflow:hidden; border:2px solid rgba(255,255,255,.35); border-radius:22px; background:#fff; color:var(--ink); box-shadow:0 15px 38px rgba(0,0,0,.2); }
.service-option[open] { border-color:#9cbdd8; box-shadow:0 16px 38px rgba(18,63,116,.12); }
.service-option summary { display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:center; min-height:122px; padding:24px; cursor:pointer; list-style:none; }
.service-option summary::-webkit-details-marker { display:none; }
.service-option summary:focus-visible { outline:3px solid rgba(22,90,158,.28); outline-offset:-3px; }
.service-option summary b, .service-option summary small { display:block; }
.service-option summary b { color:var(--navy); font-size:22px; }
.service-option summary small { margin-top:2px; color:var(--muted); font-size:13px; }
.service-icon { display:grid; place-items:center; width:58px; height:58px; border-radius:18px; background:#eaf3fa; color:var(--blue); font-size:28px; font-weight:900; }
.human-option .service-icon { background:#def6e8; color:var(--green); }
.summary-arrow { font-size:24px; color:#789; transition:transform .2s ease; }
.service-option[open] .summary-arrow { transform:rotate(180deg); }
.service-content { padding:0 20px 22px; border-top:1px solid #edf2f6; }
.service-content > p { margin:17px 0 12px; color:var(--muted); font-size:14px; }
.contact-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; align-items:stretch; }
.direct-whatsapp { margin:0; min-height:62px; }
.office-phone { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:62px; padding:8px 14px; border:1px solid #bed0df; border-radius:13px; background:#f6f9fb; color:var(--navy); text-decoration:none; }
.office-phone span { color:var(--muted); font-size:11px; }
.office-phone b { font-size:19px; }
.accuracy-alert { display:flex; gap:10px; align-items:flex-start; margin:17px 0 14px; padding:12px; border:1px solid #f0d19b; border-radius:13px; background:#fff8e8; color:#5c4318; }
.accuracy-alert > span { display:grid; flex:0 0 auto; place-items:center; width:24px; height:24px; border-radius:50%; background:var(--gold); color:#4c340c; font-weight:900; }
.accuracy-alert p { margin:0; font-size:13px; line-height:1.55; }
.self-booking-links { display:grid; gap:9px; }
.self-booking-links a[hidden] { display:none !important; }
.self-booking-links a { display:grid; grid-template-columns:auto 1fr auto; gap:11px; align-items:center; min-height:64px; padding:11px 13px; border:1px solid #d7e2eb; border-radius:13px; color:var(--navy); text-decoration:none; transition:.2s ease; }
.self-booking-links a:hover { border-color:var(--blue); background:#f3f8fc; transform:translateX(-2px); }
.self-booking-links b, .self-booking-links small { display:block; }
.self-booking-links small { color:var(--muted); font-size:11px; }
.booking-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:11px; background:#edf5fa; color:var(--blue); font-size:18px; }

.hotel-section { padding:40px 28px 0; background:#0b2e55; color:#fff; }
.hotel-card { display:grid; grid-template-columns:1fr 1.05fr; max-width:1180px; margin:auto; background:#fff; color:var(--ink); border-radius:var(--radius); overflow:hidden; box-shadow:0 25px 80px rgba(2,20,38,.35); transform:translateY(-2px); }
.hotel-gallery { min-height:500px; display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; gap:5px; background:#0b2e55; }
.hotel-gallery figure { position:relative; min-height:0; margin:0; overflow:hidden; }
.hotel-gallery .gallery-main { grid-row:1 / 3; }
.hotel-gallery img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .45s ease; }
.hotel-gallery .gallery-main img { object-position:center 62%; }
.hotel-gallery figure:hover img { transform:scale(1.035); }
.hotel-gallery figcaption { position:absolute; inset:auto 10px 10px; width:max-content; max-width:calc(100% - 20px); padding:5px 9px; border-radius:8px; background:rgba(4,28,50,.76); color:#fff; font-size:11px; backdrop-filter:blur(4px); }
.hotel-copy { padding:58px; align-self:center; }
.hotel-copy > p:not(.kicker):not(.fineprint) { font-size:18px; color:#4f6173; }
.amenities { display:flex; flex-wrap:wrap; gap:10px; margin:28px 0; }
.amenities span { padding:8px 12px; border-radius:10px; background:#edf5fa; color:var(--navy); font-size:13px; }
.photo-credit { margin:0 0 16px; color:#8794a1; font-size:11px; }
.photo-credit a { color:var(--blue); }
.fineprint { padding-top:18px; border-top:1px solid var(--line); color:#788695; font-size:11px; }
footer { display:flex; align-items:center; justify-content:space-between; gap:24px; max-width:1180px; margin:auto; padding:42px 0; }
footer b, footer span { display:block; }
footer span { opacity:.62; font-size:13px; }
.footer-contact { display:flex; gap:22px; direction:ltr; }
.footer-contact a { text-decoration:none; font-weight:700; }

.modal[hidden] { display:none; }
.modal { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:20px; }
.modal-backdrop { position:absolute; inset:0; background:rgba(3,20,37,.74); backdrop-filter:blur(5px); }
.modal-card { position:relative; z-index:1; width:min(500px,100%); max-height:calc(100vh - 40px); overflow:auto; padding:34px; border-radius:24px; background:#fff; box-shadow:0 30px 100px rgba(0,0,0,.35); animation:pop .18s ease-out; }
@keyframes pop { from { opacity:0; transform:translateY(12px) scale(.98); } }
.modal-close { position:absolute; top:14px; left:14px; width:38px; height:38px; border:0; border-radius:50%; background:#eef3f7; color:var(--ink); font-size:25px; cursor:pointer; }
.modal-icon { display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:#def6e8; color:var(--green); font-size:25px; font-weight:900; }
.modal-card h2 { margin:16px 0 6px; color:var(--navy); font-size:25px; }
.modal-card > p { color:var(--muted); font-size:14px; }
.summary-list { margin:22px 0; padding:5px 18px; border-radius:16px; background:#f4f8fb; }
.summary-list div { display:flex; justify-content:space-between; gap:20px; padding:12px 0; border-bottom:1px solid #dfe8ef; }
.summary-list div:last-child { border:0; }
.summary-list dt { color:var(--muted); }
.summary-list dd { margin:0; font-weight:800; text-align:left; }
.edit-button { display:block; margin:12px auto 0; border:0; background:transparent; color:var(--blue); cursor:pointer; font-weight:700; }

@media (max-width: 850px) {
  .hero { min-height:720px; align-items:end; }
  .hero::after { background:linear-gradient(0deg,rgba(4,24,43,.85) 0,rgba(4,26,47,.26) 65%,rgba(4,26,47,.2)); }
  .hero-content { padding-top:130px; padding-bottom:85px; }
  .hero-content > * { max-width:100%; }
  .moon { left:12%; top:120px; width:100px; height:100px; }
  .skyline { width:100%; opacity:.78; }
  .mountains { bottom:190px; }
  .comparison { grid-template-columns:1fr; padding:70px 28px 28px; gap:30px; }
  .full-package-details { padding-top:36px; }
  .vacation-choices { grid-template-columns:1fr; }
  .kosher-product-choices { grid-template-columns:1fr; }
  .service-options { grid-template-columns:1fr; }
  .hotel-card { grid-template-columns:1fr; }
  .hotel-gallery { min-height:420px; }
  .hotel-copy { padding:38px; }
}

@media (max-width: 620px) {
  .topbar { padding:18px; }
  .top-cta { padding:8px 12px; font-size:12px; }
  .hero { min-height:760px; }
  .hero-content { padding-inline:20px; }
  .hero h1 { letter-spacing:-2px; }
  .hero-lead { font-size:17px; }
  .quick-facts { display:grid; grid-template-columns:1fr 1fr; }
  .quick-facts span { min-width:0; padding:9px 10px; border-bottom:1px solid rgba(255,255,255,.17); }
  .quick-facts span:nth-child(2) { border-inline-end:0; }
  .quick-facts span:nth-last-child(-n+2) { border-bottom:0; }
  .quick-facts b { font-size:12px; }
  .quick-facts small { font-size:10px; }
  .primary-button { width:100%; }
  .plans-section { padding:70px 16px; }
  .plan-tabs { grid-template-columns:1fr; gap:10px; margin-bottom:-24px; }
  .plan-tab { min-height:88px; padding:16px; }
  .vacation-choice { min-height:104px; padding:17px; }
  .vacation-choice-icon { width:48px; height:48px; border-radius:14px; font-size:22px; }
  .vacation-choice b { font-size:17px; }
  .flow-heading, .weekend-flow { align-items:flex-start; padding:15px; }
  .comparison { padding:54px 18px 18px; border-radius:20px; }
  .full-package-details { padding-top:28px; }
  .comparison-copy h3 { font-size:24px; }
  .trip-builder { padding:19px; }
  .next-step { margin-top:48px; padding:26px 16px; border-radius:20px; }
  .service-option summary { min-height:104px; padding:17px; }
  .service-content { padding:0 16px 18px; }
  .contact-actions { grid-template-columns:1fr; }
  .hotel-only-card { padding:24px 18px; }
  .hotel-only-card h3 { font-size:23px; }
  .hotel-meal-options { grid-template-columns:1fr; }
  .organized-tour-card { padding:24px 18px; }
  .organized-tour-card h3 { font-size:23px; }
  .organized-tour-facts { grid-template-columns:1fr; }
  .organized-tour-section { padding:18px; }
  .organized-tour-section ul, .tour-highlights, .bonus-grid { grid-template-columns:1fr; }
  .weekend-card { padding:24px 18px; }
  .weekend-card h3 { font-size:23px; }
  .weekend-facts { grid-template-columns:1fr; }
  .organized-price { align-items:center; flex-direction:column; gap:3px; }
  .organized-contact-actions { grid-template-columns:1fr; }
  .hotel-section { padding-inline:16px; }
  .hotel-gallery { min-height:390px; }
  .hotel-copy { padding:30px 22px; }
  .hotel-copy > p:not(.kicker):not(.fineprint) { font-size:16px; }
  footer { align-items:flex-start; flex-direction:column; padding:34px 4px; }
  .footer-contact { flex-direction:column; gap:5px; }
  .modal-card { padding:28px 20px 22px; }
}

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