/* ── TopWash ──────────────────────────────────────────────────────────────
   Type: Alexandria for display (the Arabic companion to Montserrat — geometric,
   closest to the TopWash wordmark) and Zain for text (Boutros, drawn so the
   Arabic and Latin sit together at the same optical weight). */
:root{
  --blue:#0075FF;
  --blue-d:#0060d8;
  --mint:#00E1C3;
  --ink:#1E1E1E;
  --stage:#0C0F14;
  --paper:#F5F9FC;
  --paper-2:#E9F0F8;
  --line:rgba(30,30,30,.11);
  --line-d:rgba(255,255,255,.13);
  --muted:rgba(30,30,30,.58);
  --muted-d:rgba(255,255,255,.64);
  --r:20px;
  --pad:clamp(20px,5vw,86px);
  --display:"Alexandria",system-ui,"Segoe UI",sans-serif;
  --body:"Zain","Alexandria",system-ui,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overflow-x:clip}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--body);
  font-size:18px;line-height:1.6;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul,ol{margin:0;padding:0;list-style:none}
.sp{width:1em;height:1em;fill:var(--mint);flex:none}
.sp--ink{fill:var(--blue)}

/* ── type ─────────────────────────────────────────────────────────────── */
.h1,.h2,h3,h4,.stat b,.price-list b{font-family:var(--display)}
.h1{
  font-size:clamp(2.4rem,5.8vw,4.9rem);
  line-height:1.04;letter-spacing:-.035em;font-weight:700;margin:0 0 14px;
}
.h1 span{display:block}
.h2{
  font-size:clamp(1.8rem,3.8vw,3.15rem);
  line-height:1.14;letter-spacing:-.03em;font-weight:700;margin:0 0 16px;
}
.eyebrow{
  display:flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:.74rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--blue);font-weight:500;margin:0 0 14px;
}
.eyebrow--mint{color:var(--mint)}
.eyebrow .num{padding:2px 8px;border-radius:6px;background:rgba(0,117,255,.1)}
.lead{font-size:clamp(1rem,1.3vw,1.14rem);color:var(--muted);max-width:62ch;margin:0}

/* ── buttons ──────────────────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:var(--blue);color:#fff;padding:14px 30px;border-radius:999px;
  font-family:var(--display);font-weight:600;font-size:.98rem;
  border:1px solid transparent;white-space:nowrap;
  transition:transform .3s cubic-bezier(.2,.7,.3,1),background .25s,color .25s,border-color .25s;
}
.btn:hover{transform:translateY(-2px);background:var(--blue-d)}
.btn--line{background:transparent;color:#fff;border-color:var(--line-d)}
.btn--line:hover{background:rgba(255,255,255,.08)}
.btn--mint{background:var(--mint);color:#04322b}
.btn--mint:hover{background:#00cbaf}
.btn--sm{padding:10px 22px;font-size:.9rem}

/* ── nav ──────────────────────────────────────────────────────────────── */
.nav{
  position:fixed;inset:0 0 auto 0;z-index:60;
  display:flex;align-items:center;gap:24px;padding:18px var(--pad);
  transition:background .35s,box-shadow .35s,padding .35s,color .35s;
}
.nav__logo{display:block;height:26px}
.nav__logo .l{height:26px;width:auto}
.nav__logo .l--dark{display:none}
.nav__links{
  display:flex;gap:24px;margin-inline-start:auto;
  font-family:var(--display);font-size:.92rem;font-weight:500;
}
.nav__links a{position:relative;color:var(--muted-d);transition:color .2s}
.nav__links a::after{
  content:"";position:absolute;inset-inline-start:0;bottom:-5px;
  width:100%;height:1px;background:currentColor;transform:scaleX(0);
  transform-origin:100% 50%;transition:transform .35s cubic-bezier(.2,.7,.3,1);
}
.nav__links a:hover{color:#fff}
.nav__links a:hover::after{transform:scaleX(1)}

.lang{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--mono);font-size:.76rem;letter-spacing:.1em;
  padding:7px 12px;border:1px solid var(--line-d);border-radius:999px;
  color:rgba(255,255,255,.78);transition:background .25s,color .25s,border-color .25s;
}
.lang:hover{background:rgba(255,255,255,.1);color:#fff}

.nav--light{color:var(--ink)}
.nav--light .nav__logo .l--light{display:none}
.nav--light .nav__logo .l--dark{display:block}
.nav--light .nav__links a{color:var(--muted)}
.nav--light .nav__links a:hover{color:var(--ink)}
.nav--light .lang{border-color:var(--line);color:var(--muted)}
.nav--light .lang:hover{background:rgba(30,30,30,.06);color:var(--ink)}
.nav--stuck{
  background:rgba(245,249,252,.86);backdrop-filter:blur(16px);
  box-shadow:0 1px 0 var(--line);padding-top:12px;padding-bottom:12px;
}

/* ── hero ─────────────────────────────────────────────────────────────── */
.hero{
  position:relative;overflow:hidden;
  min-height:100svh;display:grid;place-items:center;
  background:var(--stage);color:#fff;text-align:center;
}
.hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__scrim{
  position:absolute;inset:0;
  background:
    radial-gradient(58% 52% at 50% 46%, rgba(8,10,14,.52) 0%, rgba(8,10,14,.18) 62%, transparent 100%),
    linear-gradient(180deg, rgba(8,10,14,.68) 0%, rgba(8,10,14,.06) 24%,
                            rgba(8,10,14,.10) 58%, rgba(8,10,14,.90) 100%);
}
.hero__in{position:relative;padding:96px var(--pad) 0;max-width:960px}
.hero__logo{width:clamp(190px,25vw,360px);height:auto;margin:0 auto clamp(24px,3.2vw,40px)}
.hero .eyebrow{justify-content:center}
.hero .h1{font-size:clamp(2rem,4.3vw,3.6rem);margin-bottom:12px}
.hero__sub{
  margin:0 0 clamp(24px,2.8vw,34px);color:var(--mint);font-family:var(--display);
  font-weight:600;font-size:clamp(1.1rem,2.1vw,1.75rem);letter-spacing:-.02em;line-height:1.2;
}
.hero__cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.hero__hint{
  position:absolute;left:50%;transform:translateX(-50%);bottom:28px;z-index:4;
  font-family:var(--mono);font-size:.7rem;letter-spacing:.24em;color:rgba(255,255,255,.72);
  animation:bob 2.6s ease-in-out infinite;
}
@keyframes bob{
  0%,100%{transform:translateX(-50%) translateY(0)}
  50%{transform:translateX(-50%) translateY(7px)}
}
html.is-flat .hero{min-height:820px;height:820px}

/* ── marquee ──────────────────────────────────────────────────────────── */
.strip{background:var(--stage);color:#fff;overflow:hidden;padding:18px 0;border-top:1px solid var(--line-d)}
.strip__track{
  display:flex;align-items:center;gap:30px;width:max-content;
  animation:slide 36s linear infinite;white-space:nowrap;
  font-family:var(--display);font-size:.94rem;font-weight:500;
}
.strip .sp{width:11px;height:11px}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(50%)}}

/* ── stats ────────────────────────────────────────────────────────────── */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line);background:var(--paper)}
.stat{padding:clamp(26px,3.2vw,42px) var(--pad);border-inline-start:1px solid var(--line)}
.stat:first-child{border-inline-start:0}
.stat b{display:block;font-size:clamp(1.9rem,3.4vw,2.9rem);font-weight:700;letter-spacing:-.04em;line-height:1;margin-bottom:6px}
.stat span{font-size:.9rem;color:var(--muted)}

/* ── sections ─────────────────────────────────────────────────────────── */
.sect{padding:clamp(56px,7vw,104px) var(--pad)}
.sect--tint{background:linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 100%)}
.sect__head{max-width:820px;margin:0 0 clamp(26px,3.4vw,44px)}
.sect--split{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(28px,4vw,64px);align-items:center}
.split__media{margin:0}
.split__media img{border-radius:var(--r)}
.split__media figcaption{margin-top:12px;font-size:.88rem;color:var(--muted);display:flex;align-items:center;gap:8px}
.ticks{margin-top:24px;display:grid;gap:11px}
.ticks li{position:relative;padding-inline-start:26px;color:var(--muted)}
.ticks li::before{content:"";position:absolute;inset-inline-start:0;top:.62em;width:9px;height:9px;border-radius:50%;background:var(--mint)}

/* ── cards ────────────────────────────────────────────────────────────── */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.card{
  position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:26px 24px 24px;overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.7,.3,1),border-color .35s;
}
.card::after{
  content:"";position:absolute;inset:auto 0 0 0;height:2px;background:var(--blue);
  transform:scaleX(0);transform-origin:100% 50%;transition:transform .45s cubic-bezier(.2,.7,.3,1);
}
.card:hover{transform:translateY(-5px);border-color:rgba(0,117,255,.3)}
.card:hover::after{transform:scaleX(1)}
.card__i{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:rgba(0,225,195,.14);margin-bottom:16px}
.card__i .sp{width:16px;height:16px}
.card h3{margin:0 0 6px;font-size:1.18rem;letter-spacing:-.015em;font-weight:600}
.card p{margin:0 0 14px;color:var(--muted);font-size:.95rem}
.card__p{font-family:var(--mono);font-size:.76rem;letter-spacing:.1em;color:var(--blue)}

/* ── pricing ──────────────────────────────────────────────────────────── */
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:26px}
.price-col{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px 24px}
.price-col__t{margin:0 0 12px;font-size:.76rem;font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--blue);font-weight:500}
.price-list li{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}
.price-list li:last-child{border-bottom:0}
.price-list span{font-size:.95rem}
.price-list em{display:block;font-style:normal;font-size:.78rem;color:var(--muted)}
.price-list b{font-size:1.26rem;font-weight:700;letter-spacing:-.03em;white-space:nowrap}
.price-list b::after{content:attr(data-cur);font-size:.7rem;font-weight:500;color:var(--muted);margin-inline-start:5px;font-family:var(--body)}
.price-list b.b--soft{font-size:.86rem;font-weight:600;color:var(--muted)}
.price-list b.b--soft::after{content:""}
.price-note{margin-top:20px;padding-top:18px;border-top:1px solid var(--line);display:grid;gap:10px}
.price-note p{margin:0;display:flex;align-items:baseline;gap:10px;font-size:.88rem;color:var(--muted)}
.price-note b{font-family:var(--display);font-size:.92rem;color:var(--ink);white-space:nowrap}
.price-cta{display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap}
.price-cta p{margin:0;color:var(--muted);font-size:.93rem;max-width:48ch}

/* ── steps ────────────────────────────────────────────────────────────── */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.steps li{border-top:1px solid var(--ink);padding-top:18px}
.steps__n{font-family:var(--mono);font-size:.74rem;color:var(--blue);letter-spacing:.14em}
.steps h3{margin:9px 0 5px;font-size:1.05rem;letter-spacing:-.01em;font-weight:600}
.steps p{margin:0;color:var(--muted);font-size:.91rem}

/* ── video bands ──────────────────────────────────────────────────────── */
.band{position:relative;overflow:hidden;color:#fff;min-height:min(62vh,560px);display:grid;align-items:end}
.band__v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.band__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,13,18,.30) 0%,rgba(10,13,18,.12) 40%,rgba(10,13,18,.86) 100%)}
.band__copy{position:relative;padding:0 var(--pad) clamp(36px,4.6vw,64px);max-width:900px}
.band__copy .h2{margin:0}

/* ── quote ────────────────────────────────────────────────────────────── */
.quote{position:relative;overflow:hidden;background:var(--stage);color:#fff;text-align:center;padding:clamp(56px,7vw,110px) var(--pad)}
.quote__v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.42}
.quote__scrim{position:absolute;inset:0;background:radial-gradient(80% 70% at 50% 50%,rgba(12,15,20,.72) 0%,rgba(12,15,20,.94) 70%)}
.quote__in{position:relative}
.sp--big{width:26px;height:26px;margin:0 auto 22px}
.quote blockquote{margin:0 auto;max-width:22ch;font-family:var(--display);font-size:clamp(1.45rem,3.2vw,2.6rem);line-height:1.24;letter-spacing:-.03em;font-weight:600}

/* ── gallery ──────────────────────────────────────────────────────────── */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.gallery figure{margin:0;position:relative;border-radius:var(--r);overflow:hidden;background:#dce6f0}
.gallery img{width:100%;height:100%;object-fit:cover;aspect-ratio:1;transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.gallery figure:hover img{transform:scale(1.05)}
.gallery figcaption{position:absolute;inset-inline-start:14px;bottom:13px;background:rgba(245,249,252,.92);backdrop-filter:blur(8px);padding:6px 14px;border-radius:999px;font-size:.79rem;font-weight:500;color:var(--ink)}
.g--tall{grid-row:span 2}
.g--tall img{aspect-ratio:1/2.06}
.g--wide{grid-column:span 2}
.g--wide img{aspect-ratio:2.06/1}

/* ── booking ──────────────────────────────────────────────────────────── */
.bk{background:#fff;border:1px solid var(--line);border-radius:calc(var(--r) + 6px);overflow:hidden}
.bk__steps{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line)}
.bk__steps li{
  display:flex;align-items:center;gap:9px;padding:16px 18px;
  border-inline-start:1px solid var(--line);color:var(--muted);
  font-size:.88rem;transition:color .3s,background .3s;
}
.bk__steps li:first-child{border-inline-start:0}
.bk__steps li b{font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;color:var(--muted);transition:color .3s}
.bk__steps li.is-on{color:var(--ink);background:rgba(0,117,255,.04)}
.bk__steps li.is-on b{color:var(--blue)}
.bk__panel{padding:clamp(20px,2.6vw,32px)}

.bk__items{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.bk-item{
  display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;
  padding:12px 14px;border:1px solid var(--line);border-radius:14px;
  transition:border-color .25s,background .25s;
}
.bk-item.is-on{border-color:rgba(0,117,255,.45);background:rgba(0,117,255,.04)}
.bk-item__l{font-size:.94rem}
.bk-item__p{font-family:var(--mono);font-size:.76rem;color:var(--muted);white-space:nowrap}
.bk-qty{display:inline-flex;align-items:center;gap:2px}
.bk-qty button{
  width:30px;height:30px;border-radius:9px;border:1px solid var(--line);
  background:#fff;color:var(--ink);font-size:1.05rem;line-height:1;cursor:pointer;
  transition:background .2s,border-color .2s;
}
.bk-qty button:hover{background:rgba(0,117,255,.08);border-color:rgba(0,117,255,.4)}
.bk-qty b{min-width:24px;text-align:center;font-family:var(--mono);font-size:.9rem}

.bk__field{display:grid;gap:7px;margin-bottom:18px}
.bk__field:last-child{margin-bottom:0}
.bk__field label,.bk__lbl{font-size:.88rem;font-weight:500;color:var(--ink)}
.bk__hint{margin:0;font-size:.85rem;color:var(--muted)}
.bk__field input,.bk__field select,.bk__field textarea{
  font:inherit;font-size:.95rem;color:var(--ink);background:#fff;
  padding:11px 14px;border:1px solid var(--line);border-radius:12px;width:100%;
  transition:border-color .25s;
}
.bk__field input:focus,.bk__field select:focus,.bk__field textarea:focus{
  outline:none;border-color:var(--blue);
}
.bk__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 16px}
.bk__field--wide{grid-column:1 / -1}

.bk__slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.bk-slot{
  font:inherit;font-size:.88rem;padding:11px 10px;cursor:pointer;
  border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--muted);
  transition:border-color .25s,color .25s,background .25s;
}
.bk-slot:hover{border-color:rgba(0,117,255,.4)}
.bk-slot.is-on{border-color:var(--blue);color:var(--ink);background:rgba(0,117,255,.06)}

.bk__thumbs{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.bk-thumb{margin:0;position:relative;width:96px;height:96px;border-radius:12px;overflow:hidden;background:var(--paper-2)}
.bk-thumb img{width:100%;height:100%;object-fit:cover}
.bk-thumb button{
  position:absolute;inset-inline-end:5px;top:5px;width:22px;height:22px;
  border:0;border-radius:50%;background:rgba(12,15,20,.72);color:#fff;
  font-size:.9rem;line-height:1;cursor:pointer;
}

.bk__err{margin:0;padding:0 clamp(20px,2.6vw,32px) 4px;color:#c0392b;font-size:.9rem}

.bk__bar{
  display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  padding:18px clamp(20px,2.6vw,32px);border-top:1px solid var(--line);
  background:var(--paper);
}
.bk__total{display:grid;gap:2px}
.bk__total span{font-size:.8rem;color:var(--muted)}
.bk__total b{font-family:var(--display);font-size:1.5rem;letter-spacing:-.03em}
.bk__nav{display:flex;gap:10px}
.btn--ink{color:var(--ink);border-color:var(--line)}
.btn--ink:hover{background:rgba(30,30,30,.05)}

.bk__done{padding:clamp(32px,5vw,60px) clamp(20px,2.6vw,32px);text-align:center}
.bk__done .sp--big{fill:var(--blue)}
.bk__done h3{margin:0 0 8px;font-size:1.5rem;letter-spacing:-.02em}
.bk__done p{margin:0 auto 8px;color:var(--muted);max-width:46ch}
.bk__ref{font-family:var(--mono);font-size:.9rem}
.bk__ref b{color:var(--ink)}
.bk__doneCta{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:20px}

@media (max-width:820px){
  .bk__steps{grid-template-columns:repeat(2,1fr)}
  .bk__steps li:nth-child(3){border-inline-start:0}
  .bk__steps li:nth-child(n+3){border-top:1px solid var(--line)}
  .bk__items,.bk__grid{grid-template-columns:1fr}
  .bk__slots{grid-template-columns:repeat(2,1fr)}
  .bk__bar{flex-direction:column;align-items:stretch}
  .bk__nav .btn{flex:1}
}

/* ── faq ──────────────────────────────────────────────────────────────── */
.faq{max-width:880px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:19px 0;font-family:var(--display);font-size:1.03rem;font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.5rem;font-weight:400;color:var(--blue);transition:transform .35s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{margin:0 0 20px;color:var(--muted);max-width:68ch}

/* ── cta ──────────────────────────────────────────────────────────────── */
.cta{position:relative;overflow:hidden;background:var(--stage);color:#fff;text-align:center;padding:clamp(64px,8vw,124px) var(--pad)}
.cta__glow{position:absolute;width:70vmax;height:70vmax;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;filter:blur(100px);background:radial-gradient(circle,rgba(0,117,255,.26) 0%,rgba(0,225,195,.10) 42%,transparent 68%)}
.cta > *{position:relative}
.cta__logo{height:30px;width:auto;margin:0 auto 26px}
.cta .h2{margin-bottom:28px}

/* ── footer ───────────────────────────────────────────────────────────── */
.foot{padding:52px var(--pad) 34px;display:grid;gap:36px}
.foot__brand img{height:24px;width:auto;margin-bottom:10px}
.foot__brand p{margin:0;color:var(--muted);font-size:.92rem}
.foot__cols{display:grid;grid-template-columns:repeat(3,minmax(0,220px));gap:26px}
.foot__cols h4{margin:0 0 10px;font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:500}
.foot__cols a{display:block;padding:4px 0;font-size:.93rem;transition:color .2s}
.foot__cols a:hover{color:var(--blue)}
.foot__copy{margin:0;padding-top:20px;border-top:1px solid var(--line);font-size:.84rem;color:var(--muted)}

/* ── floating whatsapp ────────────────────────────────────────────────── */
.wa-float{
  position:fixed;inset-inline-end:22px;bottom:22px;z-index:70;
  width:54px;height:54px;border-radius:50%;display:grid;place-items:center;
  background:#25D366;color:#fff;box-shadow:0 12px 26px -14px rgba(0,0,0,.6);
  transition:transform .3s cubic-bezier(.2,.7,.3,1);
}
.wa-float:hover{transform:scale(1.08)}

/* ── motion primitives ────────────────────────────────────────────────── */
.word{display:inline-block;overflow:hidden;vertical-align:top}
.word i{display:inline-block;font-style:normal}

/* ── responsive ───────────────────────────────────────────────────────── */
@media (max-width:1080px){
  .cards,.price-grid{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .sect--split{grid-template-columns:1fr}
  .nav__links{display:none}
  .lang{margin-inline-start:auto}
  .stats{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(3){border-inline-start:0}
  .stat:nth-child(n+3){border-top:1px solid var(--line)}
}
@media (max-width:640px){
  body{font-size:17px}
  .cards,.price-grid,.steps,.foot__cols,.stats{grid-template-columns:1fr}
  .stat{border-inline-start:0;border-top:1px solid var(--line)}
  .stat:first-child{border-top:0}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .g--tall{grid-row:auto}.g--tall img{aspect-ratio:1}
  .g--wide{grid-column:span 2}
  .hero__hint{display:none}
  .hero__cta .btn{flex:1 1 100%}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}
