/* Blossom theme: home page, header and footer. Built from the approved prototype; every class is prefixed gs- so it cannot clash with the template CSS. */
:root {
  --gs-navy: #3d3027;
  --gs-navy-9: #2a201a;
  --gs-royal: #d42a66;
  --gs-cyan: #ff8868;
  --gs-cyan-d: #f56f4e;
  --gs-cyan-50: #fff0eb;
  --gs-royal-50: #fdebf1;
  --gs-text: #5a4e46;
  --gs-muted: #776f69;
  --gs-line: #efe5da;
  --gs-bg: #fff7ec;
  --gs-cream: #fffcf5; /* page ground; cards stay white on it */
  --gs-star: #f2a900;
  --gs-ok: #0a7a55;
  --gs-err: #b42318;
  --f-display: "Montserrat", "Cairo", system-ui, sans-serif;
  --f-body: "Figtree", "Cairo", system-ui, sans-serif;
  --hdr: 76px; --gutter: clamp(16px, 4.2vw, 40px); --overlap: 56px;
}
/* ---------- Site base ---------- */
html[lang^="ar"] { --band: to left; --band-r: to right; }
html[lang^="en"] { --band: to right; --band-r: to left; }
.gs-hdr, .gs-main, .gs-ftr, .gs-drawer { color: var(--gs-text); font: 400 16px/1.55 var(--f-body); }
html[dir="rtl"] { --dir: -1; } html[dir="ltr"] { --dir: 1; }
html[lang^="ar"] :where(.gs-hdr, .gs-main, .gs-ftr, .gs-drawer) * { letter-spacing: 0 !important; text-transform: none !important; }
:where(.gs-hdr, .gs-main, .gs-ftr, .gs-drawer) a { text-decoration: none; }
/* doubled :is() = specificity 0,0,2: beats the shared stylesheets' bare h1-h6 rules (colour, 55px h2, uppercase h3), loses to any class rule */
:where(.gs-hdr, .gs-main, .gs-ftr, .gs-drawer) :is(h1, h2, h3, h4, h5, h6):is(h1, h2, h3, h4, h5, h6) { margin: 0; font: inherit; color: inherit; text-transform: none; }
:where(.gs-hdr, .gs-main, .gs-ftr, .gs-drawer) p { margin: 0; }
:where(.gs-hdr, .gs-main, .gs-ftr, .gs-drawer) button { background: none; border: 0; padding: 0; text-align: inherit; }
:where(.gs-hdr, .gs-main, .gs-ftr, .gs-drawer) :is(img, svg) { max-width: 100%; }
.gs-ic { width: 1.3em; height: 1.3em; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.gs-ic.gs-sm { width: 1.05em; height: 1.05em; }
.gs-ic.gs-fill { fill: currentColor; stroke: none; }
html[dir="rtl"] .gs-flip { transform: scaleX(-1); }
.gs-wrap { width: min(1200px, calc(100% - 2 * var(--gutter))); margin-inline: auto; }
.gs-skip { position: absolute; inset-inline-start: 12px; inset-block-start: -60px; background: var(--gs-navy); color: #fff; padding: 10px 14px; border-radius: 10px; z-index: 200; font-weight: 700; }
.gs-skip:focus { inset-block-start: 12px; }
.gs-pip { display: inline-block; width: 8px; height: 8px; background: var(--gs-cyan); flex: none; }

/* ---------- Header ---------- */
.gs-hdr { position: sticky; top: 0; z-index: 60; height: var(--hdr); margin-bottom: calc(var(--hdr) * -1); color: #fff;
  transition: background-color .25s, box-shadow .25s, color .25s; }
.gs-hdr-in { height: 100%; display: flex; align-items: center; gap: 28px; }
.gs-brand { display: block; position: relative; height: 44px; flex: none; }
.gs-brand .gs-logo { height: 44px; width: auto; display: block; }
.gs-brand .gs-logo-dark { position: absolute; inset: 0; opacity: 0; transition: opacity .2s; }
.gs-brand .gs-logo-light { transition: opacity .2s; }
.gs-nav { display: flex; gap: 6px; margin-inline-start: 8px; }
.gs-nav a { position: relative; padding: 10px 14px; border-radius: 10px; font: 600 15px var(--f-body); color: rgba(255, 255, 255, .88); min-height: 44px; display: inline-flex; align-items: center; }
.gs-nav a:hover { color: #fff; background: rgba(255, 255, 255, .1); }
.gs-nav a.gs-on { color: #fff; }
.gs-nav a.gs-on::before { content: ""; position: absolute; inset-inline-start: 14px; inset-block-end: 4px; width: 8px; height: 8px; background: var(--gs-cyan); }
.gs-hdr-end { margin-inline-start: auto; display: flex; align-items: center; gap: 10px; }
.gs-pill { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .3); color: #fff; font: 600 14px var(--f-body); transition: border-color .2s, color .2s, background-color .2s; }
.gs-pill:hover { background: rgba(255, 255, 255, .12); }
.gs-txt-btn { min-height: 44px; padding: 0 12px; border-radius: 10px; font: 700 15px var(--f-body); color: #fff; }
.gs-txt-btn:hover { background: rgba(255, 255, 255, .12); }
.gs-cta-sm { min-height: 44px; padding: 0 20px; border-radius: 999px; background: var(--gs-cyan); color: var(--gs-navy); font: 700 15px var(--f-body); transition: background-color .15s; }
.gs-cta-sm:hover { background: #ff9f85; }
.gs-burger { display: none; width: 44px; height: 44px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, .3); color: #fff; place-items: center; }
.gs-menu-wrap { position: relative; }
.gs-pop { position: absolute; inset-block-start: calc(100% + 10px); inset-inline-end: 0; width: 280px; background: #fff; color: var(--gs-text); border-radius: 16px; padding: 14px; box-shadow: 0 24px 60px -16px rgba(61, 48, 39, .45), 0 0 0 1px var(--gs-line); animation: pop .16s ease-out; z-index: 70; }
.gs-pop h5 { font: 700 11px var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: var(--gs-muted); margin: 4px 6px 8px; }
.gs-pop .gs-row { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-bottom: 12px; }
.gs-pop .gs-row :is(button, a) { display: grid; place-items: center; min-height: 44px; border-radius: 10px; border: 1px solid var(--gs-line); font: 600 14px var(--f-body); color: var(--gs-navy); text-align: center; }
.gs-pop .gs-row :is(button[aria-pressed="true"], a[aria-current="true"]) { background: var(--gs-navy); color: #fff; border-color: var(--gs-navy); }
.gs-hdr.gs-is-solid { background: rgba(255, 255, 255, .96); backdrop-filter: blur(10px); box-shadow: 0 1px 0 var(--gs-line), 0 10px 30px -18px rgba(61, 48, 39, .35); color: var(--gs-navy); }
.gs-hdr.gs-is-solid .gs-logo-light { opacity: 0; } .gs-hdr.gs-is-solid .gs-logo-dark { opacity: 1; }
.gs-hdr.gs-is-solid .gs-nav a { color: var(--gs-text); } .gs-hdr.gs-is-solid .gs-nav a:hover { background: var(--gs-bg); color: var(--gs-navy); } .gs-hdr.gs-is-solid .gs-nav a.gs-on { color: var(--gs-navy); }
.gs-hdr.gs-is-solid .gs-pill, .gs-hdr.gs-is-solid .gs-burger { border-color: var(--gs-line); color: var(--gs-navy); } .gs-hdr.gs-is-solid .gs-pill:hover { background: var(--gs-bg); }
.gs-hdr.gs-is-solid .gs-txt-btn { color: var(--gs-navy); } .gs-hdr.gs-is-solid .gs-txt-btn:hover { background: var(--gs-bg); }

/* ---------- Hero ---------- */
.gs-hero { position: relative; color: #fff; padding-top: calc(var(--hdr) + clamp(20px, 3.2vw, 44px));
  background: radial-gradient(900px 520px at 88% 0%, rgba(255, 136, 104, .22), transparent 62%), linear-gradient(158deg, #5e1031 0%, #a3184b 55%, #d42a66 120%); }
.gs-hero-bg { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.gs-hero-bg::after { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, .09) 1px, transparent 1.4px); background-size: 28px 28px; mask-image: linear-gradient(180deg, #000 0%, transparent 70%); -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 70%); }
.gs-g-big { position: absolute; inset-block-start: calc(var(--hdr) + 8px); inset-inline-end: max(var(--gutter), calc((100% - 1200px) / 2)); width: min(34%, 400px); height: auto; }
.gs-hero-in { position: relative; z-index: 2; }
.gs-hero-in > * { max-width: 660px; }
.gs-chip { display: inline-flex; align-items: center; gap: 10px; padding: 7px 14px 7px 12px; border-radius: 999px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .18);
  font: 700 12px var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: #fad3e1; }
.gs-hero h1 { margin-top: 20px; font: 800 clamp(2.5rem, 1.3rem + 3.4vw, 3.9rem)/1.05 var(--f-display); letter-spacing: -.025em; text-wrap: balance; color: #fff; }
html[lang^="ar"] .gs-hero h1 { line-height: 1.28; }
.gs-hero h1 .gs-dot { display: inline-block; width: .17em; height: .17em; background: var(--gs-cyan); margin-inline-start: .08em; }
.gs-lede { margin-top: 20px; font-size: clamp(1rem, .92rem + .45vw, 1.2rem); line-height: 1.6; color: #f2c9d7; max-width: 56ch; }
.gs-popular { display: flex; align-items: center; gap: 12px 14px; flex-wrap: wrap; margin-top: 22px; }
.gs-popular .gs-pl { font: 600 13px var(--f-body); color: #e6aec2; }
.gs-pchips { display: flex; gap: 8px; flex-wrap: wrap; }
.gs-pchip { min-height: 40px; padding: 0 15px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .26); background: rgba(255, 255, 255, .06); color: #fff; font: 600 14px var(--f-body); transition: background-color .15s, border-color .15s; display: inline-flex; align-items: center; }
.gs-pchip:hover { background: rgba(255, 255, 255, .15); border-color: rgba(255, 255, 255, .5); }

.gs-slot { position: relative; margin-top: 34px; margin-bottom: calc(var(--overlap) * -1); }
.gs-search { position: relative; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.2fr) auto; align-items: stretch; gap: 2px;
  background: #fff; border-radius: 24px; padding: 8px; box-shadow: 0 34px 80px -26px rgba(61, 48, 39, .6), 0 0 0 1px rgba(255, 255, 255, .5); color: var(--gs-text); }
.gs-field { position: relative; display: flex; align-items: center; gap: 12px; min-height: 76px; padding: 10px 18px; border-radius: 16px; cursor: pointer; text-align: start; width: 100%; transition: background-color .15s, box-shadow .15s; }
.gs-field + .gs-field::before { content: ""; position: absolute; inset-block: 20px; inset-inline-start: -1px; width: 1px; background: var(--gs-line); }
.gs-field:hover { background: var(--gs-bg); }
.gs-field:focus-within, .gs-field.gs-is-open { background: var(--gs-royal-50); box-shadow: inset 0 0 0 2px var(--gs-royal); }
.gs-field:focus-within::before, .gs-field.gs-is-open::before, .gs-field:hover::before, .gs-field:focus-within + .gs-field::before, .gs-field.gs-is-open + .gs-field::before, .gs-field:hover + .gs-field::before { opacity: 0; }
.gs-field.gs-has-err { box-shadow: inset 0 0 0 2px var(--gs-err); background: #fff4f2; }
.gs-field > .gs-ic { color: var(--gs-royal); width: 24px; height: 24px; }
.gs-field .gs-col { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.gs-field .gs-lbl, .gs-field label { font: 700 11px/1.2 var(--f-body); letter-spacing: .09em; text-transform: uppercase; color: var(--gs-muted); margin-bottom: 4px; display: block; }
.gs-field .gs-val, .gs-field input { font: 700 16px/1.3 var(--f-body); color: var(--gs-navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gs-field .gs-val.gs-empty { color: var(--gs-muted); font-weight: 600; }
.gs-field input { border: 0; background: transparent; padding: 0; outline: 0; width: 100%; min-width: 0; }
.gs-field input::placeholder { color: var(--gs-muted); font-weight: 600; opacity: 1; }
.gs-field .gs-chev { color: var(--gs-muted); }
.gs-field .gs-clr { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; color: var(--gs-muted); flex: none; }
.gs-field .gs-clr:hover { background: var(--gs-line); color: var(--gs-navy); }
.gs-nights { position: absolute; inset-block-start: 10px; inset-inline-end: 12px; padding: 3px 9px; border-radius: 999px; background: var(--gs-navy); color: var(--gs-cyan); font: 700 12px var(--f-body); }
.gs-go { display: flex; align-items: center; justify-content: center; gap: 10px; min-width: 176px; margin-inline-start: 6px; padding: 0 28px; border-radius: 18px; background: var(--gs-cyan); color: var(--gs-navy); font: 800 16px var(--f-display); transition: background-color .15s, transform .1s; }
.gs-go:hover { background: #ff9f85; } .gs-go:active { transform: translateY(1px); }
.gs-go:focus-visible { outline-color: var(--gs-navy); }
.gs-go .gs-ic { width: 22px; height: 22px; stroke-width: 2.4; }
.gs-go.gs-busy { pointer-events: none; opacity: .85; }
.gs-go.gs-busy .gs-ic { animation: spin .8s linear infinite; }
.gs-ferr { grid-column: 1 / -1; margin: 2px 2px 6px; display: flex; align-items: center; gap: 8px; color: var(--gs-err); background: #fff4f2; border: 1px solid #f8d0ca; padding: 10px 14px; border-radius: 12px; font: 600 14px var(--f-body); }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes pop { from { opacity: 0; transform: translateY(-6px) scale(.985); } to { opacity: 1; transform: none; } }

/* Panels */
.gs-panel { position: absolute; z-index: 40; inset-block-start: calc(100% + 10px); background: #fff; border-radius: 22px; padding: 14px;
  box-shadow: 0 30px 70px -20px rgba(61, 48, 39, .5), 0 0 0 1px var(--gs-line); color: var(--gs-text); animation: pop .16s ease-out; max-height: 640px; overflow: auto; }
.gs-p-dest { width: min(540px, 100%); } .gs-p-date { width: min(724px, 100%); padding: 18px 22px 16px; } .gs-p-guests { width: min(392px, 100%); padding: 18px; }
.gs-sheet-h { display: none; }
.gs-grp h5 { font: 700 11px var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: var(--gs-muted); margin: 10px 10px 4px; }
.gs-opt { display: flex; align-items: center; gap: 12px; padding: 9px 10px; border-radius: 14px; cursor: pointer; min-height: 56px; }
.gs-opt[aria-selected="true"], .gs-opt:hover { background: var(--gs-royal-50); }
.gs-opt .gs-ico { width: 40px; height: 40px; border-radius: 12px; background: var(--gs-cyan-50); color: var(--gs-royal); display: grid; place-items: center; flex: none; }
.gs-opt.gs-hotel .gs-ico { background: var(--gs-royal-50); }
.gs-opt .gs-tx { min-width: 0; flex: 1; }
.gs-opt .gs-t { display: block; font: 700 15px/1.3 var(--f-body); color: var(--gs-navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gs-opt .gs-s { display: block; font-size: 13px; color: var(--gs-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gs-opt mark { padding: 0; background: transparent; color: var(--gs-royal); box-shadow: inset 0 -2px 0 var(--gs-cyan); }
.gs-opt .gs-bd { flex: none; font: 700 12px var(--f-body); color: var(--gs-royal); background: var(--gs-royal-50); padding: 3px 8px; border-radius: 6px; }
.gs-opt .gs-thumb { width: 40px; height: 40px; border-radius: 12px; overflow: hidden; flex: none; }
.gs-opt .gs-thumb :is(svg, img) { width: 100%; height: 100%; display: block; object-fit: cover; }
.gs-none { padding: 22px 14px; text-align: center; }
.gs-none b { display: block; color: var(--gs-navy); font: 700 15px var(--f-body); } .gs-none span { font-size: 14px; color: var(--gs-muted); }
.gs-hint { padding: 10px 12px 4px; font-size: 13px; color: var(--gs-muted); }

.gs-quick { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.gs-qchip { text-align: center; min-height: 38px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--gs-line); font: 600 14px var(--f-body); color: var(--gs-navy); background: #fff; }
.gs-qchip:hover { border-color: var(--gs-royal); background: var(--gs-royal-50); }
.gs-cal { display: flex; gap: 28px; justify-content: center; }
.gs-month { width: 306px; flex: 0 1 306px; }
.gs-mh { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; min-height: 40px; }
.gs-mh h4 { font: 700 15px var(--f-display); color: var(--gs-navy); text-align: center; flex: 1; }
.gs-mh button, .gs-mh .gs-sp { width: 40px; height: 40px; flex: none; }
.gs-mh button { border-radius: 50%; border: 1px solid var(--gs-line); color: var(--gs-navy); display: grid; place-items: center; background: #fff; }
.gs-mh button:hover:not([disabled]) { background: var(--gs-royal-50); border-color: var(--gs-royal); }
.gs-mh button[disabled] { opacity: .35; cursor: not-allowed; }
.gs-dow, .gs-days { display: grid; grid-template-columns: repeat(7, 1fr); }
.gs-dow span { font: 700 12px var(--f-body); color: var(--gs-muted); text-align: center; padding: 6px 0; }
.gs-day { height: 42px; position: relative; font: 600 14px var(--f-body); color: var(--gs-navy); display: grid; place-items: center; }
.gs-day .gs-d { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; transition: background-color .1s; }
.gs-day.gs-out { visibility: hidden; }
.gs-day[disabled] { color: #cea9b6; cursor: not-allowed; }
.gs-day:not([disabled]):hover .gs-d { background: var(--gs-royal-50); box-shadow: inset 0 0 0 1.5px var(--gs-royal); }
.gs-day.gs-today .gs-d { box-shadow: inset 0 0 0 1.5px var(--gs-cyan); }
.gs-day.gs-in-range { background: var(--gs-royal-50); }
.gs-day.gs-start { background: linear-gradient(var(--band), transparent 50%, var(--gs-royal-50) 50%); }
.gs-day.gs-end { background: linear-gradient(var(--band-r), transparent 50%, var(--gs-royal-50) 50%); }
.gs-day.gs-start.gs-end, .gs-day.gs-solo { background: none; }
.gs-day.gs-start .gs-d, .gs-day.gs-end .gs-d { background: var(--gs-navy); color: #fff; box-shadow: none; }
.gs-cal-foot, .gs-g-foot { display: flex; align-items: center; gap: 12px; justify-content: space-between; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--gs-line); flex-wrap: wrap; }
.gs-cal-foot .gs-sum { font: 600 14px var(--f-body); color: var(--gs-navy); }
.gs-link { font: 700 14px var(--f-body); color: var(--gs-royal); min-height: 40px; padding: 0 8px; border-radius: 8px; } .gs-link:hover { background: var(--gs-royal-50); }
.gs-btn-s { min-height: 44px; padding: 0 22px; border-radius: 12px; background: var(--gs-navy); color: #fff; font: 700 15px var(--f-body); } .gs-btn-s:hover { background: var(--gs-royal); }
.gs-qs h5 { font: 700 11px var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: var(--gs-muted); margin-bottom: 8px; }
.gs-qs .gs-quick { margin-bottom: 12px; }
.gs-room { border: 1px solid var(--gs-line); border-radius: 16px; padding: 12px 14px; margin-bottom: 10px; }
.gs-room-h { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.gs-room-h b { font: 700 14px var(--f-body); color: var(--gs-navy); }
.gs-room-h button { font: 600 13px var(--f-body); color: var(--gs-err); min-height: 32px; padding: 0 8px; border-radius: 8px; } .gs-room-h button:hover { background: #fff4f2; }
.gs-line { display: flex; align-items: center; justify-content: space-between; min-height: 52px; gap: 12px; }
.gs-line .gs-k { font: 600 15px var(--f-body); color: var(--gs-navy); }
.gs-line .gs-k small { display: block; font-weight: 500; font-size: 12.5px; color: var(--gs-muted); }
.gs-step { display: inline-flex; align-items: center; gap: 4px; }
.gs-step button { width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid var(--gs-royal); color: var(--gs-royal); display: grid; place-items: center; }
.gs-step button:hover:not([disabled]) { background: var(--gs-royal-50); } .gs-step button[disabled] { opacity: .35; cursor: not-allowed; border-color: var(--gs-line); color: var(--gs-muted); }
.gs-step output { min-width: 32px; text-align: center; font: 800 16px var(--f-display); color: var(--gs-navy); }
.gs-ages { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 4px 0 6px; }
.gs-ages label { font: 600 12.5px var(--f-body); color: var(--gs-muted); display: grid; gap: 4px; }
.gs-ages select { min-height: 44px; border-radius: 10px; border: 1px solid var(--gs-line); background: #fff; color: var(--gs-navy); font: 600 14px var(--f-body); padding: 0 10px; }
.gs-add { width: 100%; min-height: 44px; border-radius: 12px; border: 1.5px dashed var(--gs-royal); color: var(--gs-royal); font: 700 14px var(--f-body); display: flex; align-items: center; justify-content: center; gap: 8px; }
.gs-add:hover { background: var(--gs-royal-50); }

.gs-sq { flex: 1; display: flex; align-items: center; gap: 10px; height: 48px; border-radius: 14px; background: var(--gs-bg); padding: 0 14px; min-width: 0; margin-inline-end: 10px; box-shadow: inset 0 0 0 2px var(--gs-royal); }
.gs-sq .gs-ic { color: var(--gs-royal); }
.gs-sq input { flex: 1; min-width: 0; border: 0; background: transparent; outline: 0; font: 700 16px var(--f-body); color: var(--gs-navy); }
.gs-sq input::placeholder { color: var(--gs-muted); font-weight: 600; opacity: 1; }

/* ---------- Sections ---------- */
.gs-sec { padding-block: clamp(56px, 7vw, 96px); background: var(--gs-cream); } /* explicit: the shared stylesheet gives every <section> the admin's section colour */
.gs-app + .gs-sec { padding-block-start: 0; } /* the app panel already carries the gap, but without it the next section needs its own */
.gs-trust { padding-block: calc(var(--overlap) + 36px) 28px; background: var(--gs-cream); }
.gs-trust-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
.gs-ti { display: flex; gap: 14px; align-items: flex-start; }
.gs-tic { width: 46px; height: 46px; border-radius: 14px; background: var(--gs-cyan-50); color: var(--gs-royal); display: grid; place-items: center; flex: none; }
.gs-tic .gs-ic { width: 24px; height: 24px; }
.gs-ti h3 { font: 700 15.5px/1.3 var(--f-display); color: var(--gs-navy); }
.gs-ti p { font-size: 14px; line-height: 1.5; color: var(--gs-muted); margin-top: 4px; }
.gs-eyebrow { display: inline-flex; align-items: center; gap: 10px; font: 700 12px var(--f-body); letter-spacing: .14em; text-transform: uppercase; color: var(--gs-royal); }
.gs-eyebrow::before { content: ""; width: 8px; height: 8px; background: var(--gs-cyan); }
.gs-eyebrow.gs-on-dark { color: #ffc4d9; }
.gs-sec-h { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px 32px; flex-wrap: wrap; margin-bottom: 32px; }
.gs-sec-h h2, .gs-h2 { font: 800 clamp(1.75rem, 1.15rem + 1.8vw, 2.55rem)/1.12 var(--f-display); letter-spacing: -.018em; color: var(--gs-navy); margin: 12px 0 10px; text-wrap: balance; }
html[lang^="ar"] .gs-sec-h h2, html[lang^="ar"] .gs-h2 { line-height: 1.3; }
.gs-sec-h .gs-sub { max-width: 52ch; color: var(--gs-text); }
.gs-tabs { display: flex; gap: 4px; padding: 4px; background: var(--gs-bg); border: 1px solid var(--gs-line); border-radius: 999px; overflow-x: auto; scrollbar-width: none; max-width: 100%; }
.gs-tabs::-webkit-scrollbar { display: none; }
.gs-tab { min-height: 44px; padding: 0 18px; border-radius: 999px; font: 700 14px var(--f-body); color: var(--gs-text); white-space: nowrap; transition: background-color .15s, color .15s; }
.gs-tab:hover { background: #fbe4ec; }
.gs-tab[aria-selected="true"] { background: var(--gs-navy); color: #fff; }

/* Destinations bento */
.gs-bento { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: repeat(2, 252px); gap: 16px; transition: opacity .16s; }
.gs-bento.gs-swap { opacity: 0; }
.gs-tile { position: relative; display: flex; align-items: flex-end; border-radius: 22px; overflow: hidden; isolation: isolate; color: #fff; min-width: 0; background: var(--gs-navy); }
.gs-tile:first-child { grid-column: span 2; grid-row: span 2; border-end-end-radius: 112px; }
.gs-tile .gs-art { position: absolute; inset: 0; z-index: -2; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.gs-tile .gs-art :is(svg, img) { width: 100%; height: 100%; display: block; object-fit: cover; max-width: none; }
.gs-tile::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(61, 48, 39, 0) 38%, rgba(61, 48, 39, .86) 100%); }
.gs-tile .gs-rank { position: absolute; inset-block-start: 16px; inset-inline-start: 16px; display: flex; gap: 8px; align-items: center; }
.gs-tile .gs-rk { min-width: 34px; height: 34px; padding: 0 8px; background: var(--gs-cyan); color: var(--gs-navy); font: 800 14px var(--f-display); display: grid; place-items: center; border-radius: 4px 12px 4px 12px; }
.gs-tile .gs-tr { display: inline-flex; gap: 6px; align-items: center; min-height: 30px; padding: 0 11px; border-radius: 999px; background: rgba(255, 255, 255, .94); color: var(--gs-navy); font: 700 12.5px var(--f-body); }
.gs-tile .gs-tr .gs-ic { color: var(--gs-royal); width: 15px; height: 15px; stroke-width: 2.2; }
.gs-tile .gs-meta { padding: 20px 22px; display: grid; gap: 3px; width: 100%; padding-inline-end: 72px; }
.gs-tile h3 { font: 800 clamp(1.15rem, .95rem + .55vw, 1.5rem)/1.2 var(--f-display); }
.gs-tile:first-child h3 { font-size: clamp(1.7rem, 1.1rem + 1.5vw, 2.6rem); }
.gs-tile .gs-cn { font-size: 14px; opacity: .9; }
.gs-tile .gs-st { margin-top: 6px; display: inline-flex; align-items: center; gap: 8px; font: 700 13px var(--f-body); }
.gs-tile .gs-go-ic { position: absolute; inset-block-end: 20px; inset-inline-end: 20px; width: 42px; height: 42px; border-radius: 50%; background: #fff; color: var(--gs-navy); display: grid; place-items: center; transition: background-color .2s, transform .2s; }
.gs-tile:first-child .gs-go-ic { inset-block-end: 28px; inset-inline-end: 28px; width: 48px; height: 48px; }
.gs-more { display: flex; align-items: center; gap: 12px 16px; flex-wrap: wrap; margin-top: 24px; }
.gs-more .gs-ml { font: 700 13px var(--f-body); color: var(--gs-muted); }
.gs-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.gs-mchip { min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--gs-line); background: #fff; color: var(--gs-navy); font: 600 14.5px var(--f-body); display: inline-flex; align-items: center; gap: 8px; transition: border-color .15s, background-color .15s; }
.gs-mchip .gs-ic { color: var(--gs-royal); width: 16px; height: 16px; }
.gs-mchip:hover { border-color: var(--gs-royal); background: var(--gs-royal-50); }

/* Hotels */
.gs-hotels { background: var(--gs-bg); }
.gs-h-ctl { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.gs-arrows { display: flex; gap: 8px; }
.gs-nav-btn { width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--gs-line); background: #fff; color: var(--gs-navy); display: grid; place-items: center; transition: border-color .15s, background-color .15s; }
.gs-nav-btn:hover:not([disabled]) { border-color: var(--gs-royal); background: var(--gs-royal-50); } .gs-nav-btn[disabled] { opacity: .4; cursor: not-allowed; }
.gs-track { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 6px var(--gutter) 30px; margin-inline: calc(var(--gutter) * -1); scroll-padding-inline: var(--gutter); }
.gs-track::-webkit-scrollbar { display: none; }
.gs-hcard { flex: 0 0 282px; scroll-snap-align: start; background: #fff; border-radius: 22px; overflow: hidden; box-shadow: 0 1px 2px rgba(61, 48, 39, .06), 0 10px 28px -14px rgba(61, 48, 39, .22); display: flex; flex-direction: column; transition: transform .25s, box-shadow .25s; }
.gs-hcard .gs-img { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--gs-navy); }
.gs-hcard .gs-img :is(svg, img) { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .5s cubic-bezier(.2, .7, .2, 1); }
.gs-hbadge { position: absolute; inset-block-start: 12px; inset-inline-start: 12px; display: inline-flex; align-items: center; gap: 6px; min-height: 28px; padding: 0 10px; background: var(--gs-navy); color: #fff; font: 700 12px var(--f-body); border-radius: 4px 12px 4px 12px; }
.gs-hbadge .gs-pip { width: 7px; height: 7px; }
.gs-hbadge.gs-pick { background: var(--gs-cyan); color: var(--gs-navy); }
.gs-fav { position: absolute; inset-block-start: 8px; inset-inline-end: 8px; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; color: var(--gs-navy); }
.gs-fav::before { content: ""; position: absolute; width: 36px; height: 36px; border-radius: 50%; background: rgba(255, 255, 255, .95); box-shadow: 0 2px 8px rgba(61, 48, 39, .25); z-index: 0; }
.gs-fav .gs-ic { position: relative; z-index: 1; width: 20px; height: 20px; }
.gs-fav[aria-pressed="true"] { color: #d81b60; } .gs-fav[aria-pressed="true"] .gs-ic { fill: currentColor; }
.gs-hbody { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.gs-stars { display: flex; gap: 2px; color: var(--gs-star); } .gs-stars .gs-ic { width: 15px; height: 15px; fill: currentColor; stroke: none; }
.gs-hcard h3 { font: 700 17px/1.3 var(--f-display); color: var(--gs-navy); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.6em; }
html[lang^="ar"] .gs-hcard h3 { line-height: 1.5; }
.gs-loc { display: flex; align-items: center; gap: 6px; color: var(--gs-muted); font-size: 14px; } .gs-loc .gs-ic { width: 16px; height: 16px; color: var(--gs-royal); }
.gs-score { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--gs-text); min-height: 28px; }
.gs-score b { background: var(--gs-royal); color: #fff; border-radius: 8px 8px 8px 2px; padding: 3px 8px; font: 800 14px var(--f-display); }
.gs-hfoot { margin-top: auto; padding-top: 12px; border-top: 1px solid var(--gs-line); display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.gs-proof { font-size: 13px; color: var(--gs-text); display: inline-flex; align-items: center; gap: 6px; } .gs-proof .gs-ic { width: 16px; height: 16px; color: var(--gs-royal); }
.gs-hview { font: 700 14px var(--f-body); color: var(--gs-royal); display: inline-flex; align-items: center; gap: 6px; min-height: 44px; }
.gs-hview .gs-ic { width: 16px; height: 16px; }

/* Stats */
.gs-stats { position: relative; background: var(--gs-navy); color: #fff; overflow: hidden; padding-block: clamp(48px, 6vw, 80px); }
.gs-stats-g { position: absolute; inset-block-start: -22%; inset-inline-end: -3%; width: 400px; opacity: .8; pointer-events: none; }
.gs-stats-grid { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gs-stat { padding-inline: clamp(12px, 3vw, 40px); display: grid; gap: 6px; }
.gs-stat + .gs-stat { border-inline-start: 1px solid rgba(255, 255, 255, .16); }
.gs-num { font: 800 clamp(2rem, 1.2rem + 3vw, 3.8rem)/1 var(--f-display); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.gs-num .gs-plus { color: var(--gs-cyan); }
.gs-stat span.gs-lb { color: #eec0d0; font-size: clamp(.8rem, .7rem + .4vw, 1rem); }

/* App */
.gs-app { background: var(--gs-cream); }
.gs-app-panel { position: relative; overflow: hidden; border-radius: 28px; border-end-end-radius: 140px; background: linear-gradient(130deg, #7a1439 0%, #d42a66 100%); color: #fff;
  display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 24px; padding: clamp(28px, 5vw, 64px); padding-block-end: 0; }
.gs-app-panel::before { content: ""; position: absolute; inset-inline-end: -8%; inset-block-start: -30%; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(closest-side, rgba(255, 136, 104, .32), transparent); pointer-events: none; }
.gs-app-copy { position: relative; padding-block-end: clamp(28px, 5vw, 64px); align-self: center; }
.gs-app-copy h2 { font: 800 clamp(1.8rem, 1.2rem + 1.8vw, 2.7rem)/1.12 var(--f-display); letter-spacing: -.018em; margin: 14px 0 22px; max-width: 18ch; text-wrap: balance; }
html[lang^="ar"] .gs-app-copy h2 { line-height: 1.3; }
.gs-ticks { list-style: none; padding: 0; margin: 0 0 28px; display: grid; gap: 12px; }
.gs-ticks li { display: flex; align-items: center; gap: 12px; color: #fbdce7; }
.gs-ticks .gs-ic { width: 22px; height: 22px; padding: 4px; border-radius: 50%; background: var(--gs-cyan); color: var(--gs-navy); stroke-width: 2.6; }
.gs-stores { display: flex; gap: 12px; flex-wrap: wrap; }
.gs-store { display: inline-flex; align-items: center; gap: 12px; min-height: 56px; padding: 0 20px; border-radius: 14px; background: #fff; color: var(--gs-navy); transition: background-color .15s, transform .15s; }
.gs-store:hover { background: var(--gs-cyan); }
.gs-store .gs-ic { width: 26px; height: 26px; }
.gs-store small { display: block; font: 600 11px/1.1 var(--f-body); color: var(--gs-muted); } .gs-store b { display: block; font: 800 16px/1.2 var(--f-display); }
.gs-phone-wrap { position: relative; display: flex; justify-content: center; align-items: flex-end; min-height: 320px; }
.gs-phone { width: min(250px, 100%); aspect-ratio: 9 / 18; background: var(--gs-navy-9); border-radius: 38px 38px 0 0; padding: 10px 10px 0; box-shadow: 0 40px 80px -20px rgba(0, 0, 0, .55), inset 0 0 0 2px rgba(255, 255, 255, .12); transform: translateY(16px); }
.gs-ph-screen { height: 100%; background: #fff; border-radius: 30px 30px 0 0; overflow: hidden; padding: 14px 12px; display: grid; align-content: start; gap: 10px; color: var(--gs-navy); }
.gs-ph-top { display: flex; align-items: center; justify-content: space-between; } .gs-ph-top img { height: 22px; width: auto; }
.gs-ph-top i { width: 22px; height: 22px; border-radius: 50%; background: var(--gs-bg); }
.gs-ph-q { background: var(--gs-bg); border-radius: 12px; padding: 10px; display: grid; gap: 6px; }
.gs-ph-q i { display: block; height: 8px; border-radius: 4px; background: #f3d5e0; } .gs-ph-q i:nth-child(2) { width: 70%; } .gs-ph-q b { display: block; height: 28px; border-radius: 8px; background: var(--gs-cyan); }
.gs-ph-card { border-radius: 14px; overflow: hidden; background: #fff; box-shadow: 0 6px 16px -8px rgba(61, 48, 39, .35); }
.gs-ph-card .gs-ph-art { aspect-ratio: 16 / 9; } .gs-ph-card .gs-ph-art :is(svg, img) { width: 100%; height: 100%; display: block; object-fit: cover; }
.gs-ph-card i { display: block; height: 7px; border-radius: 4px; background: #f3d5e0; margin: 8px 8px 0; } .gs-ph-card i:last-child { width: 50%; margin-bottom: 8px; }

/* FAQ */
.gs-faq-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 80px); align-items: start; }
.gs-faq-intro .gs-sub { color: var(--gs-text); max-width: 40ch; }
.gs-outline { display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 24px; border-radius: 14px; border: 1.5px solid var(--gs-navy); color: var(--gs-navy); font: 700 15px var(--f-body); margin-top: 24px; transition: background-color .15s, color .15s; }
.gs-outline:hover { background: var(--gs-navy); color: #fff; }
.gs-contact-lines { margin-top: 20px; display: grid; gap: 8px; font-size: 14.5px; color: var(--gs-text); }
.gs-contact-lines span { display: inline-flex; align-items: center; gap: 10px; } .gs-contact-lines .gs-ic { color: var(--gs-royal); width: 18px; height: 18px; }
.gs-q { border-bottom: 1px solid var(--gs-line); }
.gs-q:first-child { border-top: 1px solid var(--gs-line); }
.gs-q h3 { font: inherit; }
.gs-q button { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; padding-block: 14px; font: 700 17px/1.35 var(--f-display); color: var(--gs-navy); text-align: start; }
html[lang^="ar"] .gs-q button { line-height: 1.6; }
.gs-q .gs-pm { width: 36px; height: 36px; border-radius: 50%; border: 1.5px solid var(--gs-line); display: grid; place-items: center; flex: none; color: var(--gs-royal); transition: background-color .2s, transform .25s; }
.gs-q .gs-pm .gs-i-minus { display: none; }
.gs-q.gs-open .gs-pm .gs-i-minus { display: block; } .gs-q.gs-open .gs-pm .gs-i-plus { display: none; }
.gs-q button[aria-expanded="true"] .gs-pm { background: var(--gs-navy); color: #fff; border-color: var(--gs-navy); }
.gs-q .gs-a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .3s ease; }
.gs-q .gs-a > div { overflow: hidden; }
.gs-q .gs-a p { padding: 0 52px 22px 0; color: var(--gs-text); max-width: 62ch; }
html[dir="rtl"] .gs-q .gs-a p { padding: 0 0 22px 52px; }
.gs-q button[aria-expanded="true"] + .gs-a, .gs-q.gs-open .gs-a { grid-template-rows: 1fr; }

/* Footer */
.gs-ftr { background: var(--gs-navy-9); color: #cfc3b8; padding-block: clamp(40px, 5vw, 72px) 28px; }
.gs-ftr-top { display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); gap: 40px; padding-bottom: 36px; }
.gs-ftr-brand img { height: 48px; width: auto; display: block; }
.gs-ftr-brand p { margin-top: 16px; max-width: 34ch; font-size: 15px; }
.gs-soc { display: flex; gap: 10px; margin-top: 20px; }
.gs-soc a { width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .22); display: grid; place-items: center; color: #fff; transition: background-color .15s, color .15s; }
.gs-soc a:hover { background: var(--gs-cyan); color: var(--gs-navy); border-color: var(--gs-cyan); }
.gs-soc .gs-ic { width: 20px; height: 20px; }
.gs-fcol h4 { font: 700 12px var(--f-body); letter-spacing: .12em; text-transform: uppercase; color: #fff; margin-bottom: 14px; }
.gs-fcol a { display: flex; align-items: center; min-height: 40px; color: #cfc3b8; font-size: 15px; } .gs-fcol a:hover { color: #fff; }
.gs-legal { border-top: 1px solid rgba(255, 255, 255, .12); padding-block: 22px; display: flex; gap: 16px 40px; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; }
.gs-legal dl { display: flex; gap: 12px 36px; flex-wrap: wrap; margin: 0; }
.gs-legal dt { font: 700 11px var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: #a8988b; } .gs-legal dd { margin: 2px 0 0; color: #fff; font-weight: 600; font-size: 15px; }
.gs-tawasul { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, .22); color: #fff; font-weight: 600; font-size: 14px; }
.gs-tawasul:hover { background: rgba(255, 255, 255, .08); }
.gs-ftr-bot { border-top: 1px solid rgba(255, 255, 255, .12); padding-top: 20px; display: flex; gap: 12px 24px; flex-wrap: wrap; justify-content: space-between; align-items: center; font-size: 14px; }
.gs-ftr-bot .gs-lnk { display: flex; gap: 6px 22px; flex-wrap: wrap; } .gs-ftr-bot a, .gs-ftr-bot button { color: #cfc3b8; min-height: 40px; display: inline-flex; align-items: center; font-size: 14px; } .gs-ftr-bot a:hover, .gs-ftr-bot button:hover { color: #fff; }

/* Overlays */
.gs-scrim { position: fixed; inset: 0; background: rgba(42, 32, 26, .55); z-index: 80; animation: fade .2s; }
.gs-drawer { position: fixed; inset-block: 0; inset-inline-end: 0; width: min(86%, 340px); background: #fff; z-index: 90; padding: 16px 18px 24px; display: flex; flex-direction: column; gap: 6px; box-shadow: -20px 0 60px -20px rgba(61, 48, 39, .5); animation: slide .24s cubic-bezier(.2, .7, .2, 1); overflow: auto; }
html[dir="rtl"] .gs-drawer { box-shadow: 20px 0 60px -20px rgba(61, 48, 39, .5); }
.gs-drawer-h { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; } .gs-drawer-h img { height: 40px; width: auto; }
.gs-x-btn { width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--gs-line); display: grid; place-items: center; color: var(--gs-navy); }
.gs-drawer nav a { display: flex; align-items: center; min-height: 52px; padding: 0 8px; font: 700 18px var(--f-display); color: var(--gs-navy); border-bottom: 1px solid var(--gs-line); }
.gs-drawer .gs-seg2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 14px 0 4px; } .gs-drawer .gs-seg2 :is(button, a) { display: grid; place-items: center; min-height: 48px; border-radius: 12px; border: 1px solid var(--gs-line); font: 700 15px var(--f-body); color: var(--gs-navy); text-align: center; }
.gs-drawer .gs-seg2 :is(button[aria-pressed="true"], a[aria-current="true"]) { background: var(--gs-navy); color: #fff; border-color: var(--gs-navy); }
.gs-drawer .gs-cta-row { display: grid; gap: 10px; margin-top: 8px; padding-top: 14px; }
.gs-drawer .gs-cta-row .gs-cta-sm { min-height: 52px; } .gs-drawer .gs-cta-row .gs-o { min-height: 52px; border-radius: 999px; border: 1.5px solid var(--gs-navy); color: var(--gs-navy); font: 700 15px var(--f-body); text-align: center; }
.gs-mbar { position: fixed; inset-inline: 0; inset-block-end: 0; z-index: 70; padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px)); background: rgba(255, 255, 255, .96); backdrop-filter: blur(10px); box-shadow: 0 -10px 30px -12px rgba(61, 48, 39, .35); animation: rise .25s; }
.gs-mbar button { width: 100%; min-height: 54px; border-radius: 16px; background: var(--gs-cyan); color: var(--gs-navy); font: 800 16px var(--f-display); display: flex; align-items: center; justify-content: center; gap: 10px; }
.gs-toast { position: fixed; inset-inline: 16px; inset-block-end: 20px; margin-inline: auto; max-width: 560px; z-index: 120; background: var(--gs-navy); color: #fff; border-radius: 16px; padding: 14px 16px; box-shadow: 0 24px 60px -16px rgba(61, 48, 39, .7); display: flex; gap: 12px; align-items: flex-start; animation: rise .25s; font-size: 14px; }
.gs-toast .gs-ic { color: var(--gs-cyan); margin-top: 2px; } .gs-toast b { display: block; font-weight: 700; margin-bottom: 2px; }
.gs-toast code { display: block; margin-top: 6px; font: 12px/1.5 ui-monospace, Consolas, monospace; color: #ffc2b0; word-break: break-all; }
@keyframes fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes slide { from { transform: translateX(calc(var(--dir, 1) * 100%)); } to { transform: none; } }

@media (hover: hover) {
  .gs-tile:hover .gs-art { transform: scale(1.06); } .gs-tile:hover .gs-go-ic { background: var(--gs-cyan); transform: translateX(calc(var(--dir, 1) * 3px)); }
  .gs-hcard:hover { transform: translateY(-4px); box-shadow: 0 2px 4px rgba(61, 48, 39, .06), 0 24px 44px -16px rgba(61, 48, 39, .34); } .gs-hcard:hover .gs-img :is(svg, img) { transform: scale(1.05); }
  .gs-store:hover { transform: translateY(-2px); }
}
@media (prefers-reduced-motion: reduce) {
  .gs-site *, .gs-site *::before, .gs-site *::after, .gs-device { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}

/* ---------- Responsive (container queries on the device frame) ---------- */
@media (max-width: 1099px) {
  .gs-nav { display: none; } .gs-burger { display: grid; } .gs-hdr-end .gs-login, .gs-hdr-end .gs-signup { display: none; }
  .gs-trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gs-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 300px repeat(2, 210px); }
  .gs-tile:first-child { grid-column: span 2; grid-row: span 1; border-end-end-radius: 96px; }
  .gs-ftr-top { grid-template-columns: repeat(3, minmax(0, 1fr)); } .gs-ftr-brand { grid-column: 1 / -1; }
  .gs-faq-grid { grid-template-columns: 1fr; }
  .gs-search { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 4px; }
  .gs-f-dest { grid-column: 1 / -1; } .gs-field + .gs-field::before { display: none; }
  .gs-go { grid-column: span 1; margin-inline-start: 0; min-height: 76px; min-width: 0; }
  .gs-g-big { width: 270px; inset-inline-end: -34px; inset-block-start: calc(var(--hdr) + 6px); }
}
@media (max-width: 699px) {
  .gs-site { --hdr: 64px; --overlap: 40px; }
  .gs-brand, .gs-brand .gs-logo { height: 38px; }
  .gs-hdr-in { gap: 12px; }
  .gs-hero { padding-top: calc(var(--hdr) + 24px); }
  .gs-hero h1 { font-size: clamp(2.1rem, 9.5vw, 2.8rem); margin-top: 18px; }
  .gs-lede { margin-top: 14px; font-size: 1rem; }
  .gs-popular { margin-top: 20px; } .gs-popular .gs-pl { width: 100%; }
  .gs-pchips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); width: calc(100% + 2 * var(--gutter)); }
  .gs-pchips::-webkit-scrollbar { display: none; } .gs-pchip { flex: none; }
  .gs-g-big { width: 190px; inset-inline-end: -46px; inset-block-start: calc(var(--hdr) - 2px); opacity: .55; }
  .gs-slot { margin-top: 28px; }
  .gs-search { grid-template-columns: 1fr 1fr; border-radius: 22px; padding: 6px; }
  .gs-field { min-height: 68px; padding: 8px 14px; } .gs-field > .gs-ic { width: 22px; height: 22px; }
  .gs-f-guests { grid-column: 1 / -1; } .gs-go { grid-column: 1 / -1; min-height: 58px; margin-top: 4px; border-radius: 16px; }
  .gs-nights { inset-block-start: 6px; inset-inline-end: 8px; }
  .gs-field .gs-val, .gs-field input { font-size: 15px; }
  .gs-panel { position: fixed; inset-inline: 0; inset-block: auto 0; width: auto !important; max-height: 88%; border-radius: 24px 24px 0 0; z-index: 90; padding: 8px 16px 20px; animation: rise .25s; }
  .gs-sheet-h { display: flex; align-items: center; justify-content: space-between; position: sticky; top: -8px; background: #fff; padding: 12px 0 10px; z-index: 2; margin-bottom: 4px; }
  .gs-sheet-h b { font: 800 17px var(--f-display); color: var(--gs-navy); } .gs-sheet-h .gs-x-btn { width: 40px; height: 40px; }
  .gs-cal { gap: 0; } .gs-month { width: 100%; flex: 1 1 auto; } .gs-p-date { padding: 8px 16px 20px; }
  .gs-trust { padding-block-end: 8px; } .gs-trust-grid { grid-template-columns: 1fr; gap: 20px; }
  .gs-sec-h { margin-bottom: 22px; } .gs-sec-h .gs-tabs { width: calc(100% + 2 * var(--gutter)); margin-inline: calc(var(--gutter) * -1); border-radius: 0; border-inline: 0; padding-inline: var(--gutter); }
  .gs-bento { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; gap: 12px; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scroll-padding-inline: var(--gutter); }
  .gs-bento::-webkit-scrollbar { display: none; }
  .gs-tile, .gs-tile:first-child { flex: 0 0 76%; aspect-ratio: 4 / 5; scroll-snap-align: start; border-end-end-radius: 72px; }
  .gs-tile:first-child h3 { font-size: 1.5rem; } .gs-tile:first-child .gs-go-ic { inset-block-end: 20px; inset-inline-end: 20px; width: 42px; height: 42px; }
  .gs-h-ctl { width: 100%; } .gs-h-ctl .gs-tabs { flex: 1 1 100%; } .gs-arrows { display: none; }
  .gs-hcard { flex-basis: 78%; }
  .gs-stats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .gs-stat { padding-inline: 10px; } .gs-stat:first-child { padding-inline-start: 0; }
  .gs-num { font-size: clamp(1.45rem, 6.6vw, 1.9rem); } .gs-stats-g { width: 240px; inset-block-start: -10%; }
  .gs-app-panel { grid-template-columns: 1fr; border-end-end-radius: 96px; padding-inline: 22px; } .gs-phone-wrap { min-height: 260px; overflow: hidden; } .gs-phone { width: 220px; }
  .gs-ftr-top { grid-template-columns: 1fr 1fr; gap: 28px 20px; } .gs-legal dl { gap: 14px 28px; }
  .gs-q button { font-size: 16px; } .gs-q .gs-a p { padding-inline-end: 8px; } html[dir="rtl"] .gs-q .gs-a p { padding-inline: 0 8px; padding-block: 0 20px; }
  .gs-toast { inset-block-end: 84px; }
}

/* Production additions */
.gs-hdr--flow { margin-bottom: 0; }
.gs-main { display: block; }
.gs-main a, .gs-hdr a, .gs-ftr a { text-decoration: none; }
html[dir="rtl"] body, html[dir="rtl"] input, html[dir="rtl"] select, html[dir="rtl"] button, html[dir="rtl"] textarea { font-family: "Cairo", "Noto Kufi Arabic", sans-serif !important; }
@media (max-width: 699px) { body:has(.cookie-bar.is-visible) .gs-mbar { display: none; } }
/* cookie bar (base-theme markup): stock Bootstrap btn-secondary is the same grey as a disabled button, so Accept read as disabled */
#cookieBar .btn-secondary { background: var(--gs-royal); border-color: var(--gs-royal); color: #fff; }
#cookieBar .btn-secondary:hover, #cookieBar .btn-secondary:active { background: var(--gs-navy); border-color: var(--gs-navy); color: #fff; }
/* the settings stylesheet (stubs/theme-template.css) gives every .btn the button colour */
#cookieBar :is(.btn-outline-primary, .btn-outline-secondary) { background: transparent; }
#cookieBar .btn-outline-primary { border-color: var(--gs-royal); color: var(--gs-royal); }
#cookieBar .btn-outline-primary:hover, #cookieBar .btn-outline-primary:active { background: var(--gs-royal-50); border-color: var(--gs-royal); color: var(--gs-royal); }
#cookieBar .btn-outline-secondary { border-color: var(--gs-muted); color: var(--gs-muted); }
#cookieBar .btn-outline-secondary:hover, #cookieBar .btn-outline-secondary:active { background: var(--gs-bg); border-color: var(--gs-navy); color: var(--gs-navy); }
#cookieBar .btn:focus-visible { outline: 2px solid var(--gs-cyan); outline-offset: 2px; box-shadow: none; }

/* ---------- Production blocks (not in the prototype) ---------- */
/* currency list inside the language menu */
.gs-pop .gs-cur-search { width: 100%; min-height: 44px; margin-bottom: 8px; padding: 0 12px; border: 1px solid var(--gs-line); border-radius: 10px; background: #fff; color: var(--gs-navy); font: 500 14px var(--f-body); }
.gs-pop .gs-cur-search:focus { outline: 2px solid var(--gs-royal); outline-offset: 1px; border-color: var(--gs-royal); }
.gs-pop .gs-cur-list { display: grid; gap: 2px; max-height: 232px; overflow-y: auto; overscroll-behavior: contain; margin-inline: -4px; padding-inline: 4px; }
.gs-pop .gs-cur { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 0 10px; border-radius: 10px; color: var(--gs-navy); font: 600 14px var(--f-body); text-align: start; }
.gs-pop .gs-cur:hover { background: var(--gs-bg); }
.gs-pop .gs-cur[aria-pressed="true"] { background: var(--gs-navy); color: #fff; }
.gs-pop .gs-cur-sym { min-width: 36px; color: var(--gs-royal); font: 800 13px var(--f-display); }
.gs-pop .gs-cur[aria-pressed="true"] .gs-cur-sym { color: var(--gs-cyan); }

/* store badges are uploaded images */
.gs-store-badge { display: inline-flex; border-radius: 10px; transition: transform .15s; }
.gs-store-badge img { display: block; height: 48px; width: auto; max-width: none; }
.gs-store-badge:hover { transform: translateY(-2px); }
.gs-store-badge:focus-visible { outline: 2px solid var(--gs-cyan); outline-offset: 3px; }

/* footer: payment methods (logos are drawn for light backgrounds, so each sits on a white chip) and legal links */
.gs-pay-row { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 18px; padding-block: 20px; border-top: 1px solid rgba(255, 255, 255, .12); }
.gs-pay-l { color: #a8988b; font: 700 12px var(--f-body); letter-spacing: .1em; text-transform: uppercase; }
.gs-pay { display: flex; flex-wrap: wrap; gap: 8px; }
.gs-pay img { display: block; height: 34px; width: auto; max-width: none; padding: 5px 9px; border-radius: 8px; background: #fff; object-fit: contain; }
.gs-legal-links { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* content pages (terms, privacy, ...): the page template wraps the CMS html in .gs-prose */
.gs-page-sec { background: var(--gs-bg); padding-block: clamp(40px, 6vw, 88px); }
.gs-narrow { width: min(820px, calc(100% - 2 * var(--gutter))); margin-inline: auto; }
.gs-page-h { margin: 0 0 24px; color: var(--gs-navy); font: 800 clamp(1.9rem, 1.3rem + 2vw, 2.8rem)/1.15 var(--f-display); letter-spacing: -.02em; text-wrap: balance; }
html[lang^="ar"] .gs-page-h { line-height: 1.4; letter-spacing: 0; }
.gs-prose { color: var(--gs-text); font: 400 16.5px/1.75 var(--f-body); }
.gs-prose > * { margin-block: 0; }
.gs-prose > * + * { margin-top: 16px; }
.gs-prose h2 { margin-top: 40px; color: var(--gs-navy); font: 800 1.45rem/1.3 var(--f-display); text-transform: none; }
.gs-prose h3 { margin-top: 28px; color: var(--gs-navy); font: 700 1.15rem/1.35 var(--f-display); text-transform: none; }
.gs-prose h4 { margin-top: 24px; color: var(--gs-navy); font: 700 1rem/1.4 var(--f-body); text-transform: none; }
.gs-prose p, .gs-prose li { max-width: 72ch; }
.gs-prose ul, .gs-prose ol { padding-inline-start: 1.4em; }
.gs-prose ul { list-style: disc; } .gs-prose ol { list-style: decimal; } .gs-prose li::marker { color: var(--gs-royal); }
.gs-prose li + li { margin-top: 6px; }
.gs-prose a { color: var(--gs-royal); text-decoration: underline; text-underline-offset: 3px; }
.gs-prose a:hover { color: var(--gs-navy); }
.gs-prose table { width: 100%; border-collapse: collapse; font-size: 15px; display: block; overflow-x: auto; }
.gs-prose th, .gs-prose td { padding: 10px 12px; border: 1px solid var(--gs-line); text-align: start; }
.gs-prose th { background: #fff; color: var(--gs-navy); }

/* "use my current location" row of the empty destination box */
.gs-opt.gs-locate .gs-ico { background: var(--gs-royal); color: #fff; }
.gs-opt.gs-locate .gs-t { color: var(--gs-royal); }
.gs-opt.gs-locate[aria-busy="true"] .gs-ico svg { animation: spin .9s linear infinite; }
.gs-near-off { margin: 6px 10px 2px; padding: 10px 12px; border-radius: 12px; background: var(--gs-bg); color: var(--gs-text); }

/* ---------- Embed mode (src/Branding.php): no header, footer, menus or cookie bar, a thin "Powered by" line stays ---------- */
html.gs-embedded, html.gs-embedded .gs-site { --hdr: 0px; }
html.gs-embedded :is(#gs-hdr, .gs-ftr, .gs-drawer, .gs-skip, #back-to-top, #cookieBar, #preloader) { display: none !important; }
.gs-embed-credit { display: none; }
html.gs-embedded .gs-embed-credit { display: block; margin: 0; padding: 10px var(--gutter); text-align: center; font: 500 12px/1.5 var(--f-body); color: var(--gs-muted); background: var(--gs-bg); border-top: 1px solid var(--gs-line); }
