/* ============================================================
   BEDW homepage — supplemental sections
   Curated Collections · Guest Reviews · How It Works · App Banner
   ============================================================ */

/* shared section header */
.hp-head{text-align:center;max-width:640px;margin:0 auto 34px;}
.hp-eyebrow{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-primary);margin:0 0 10px;}
.hp-title{font-family:var(--font-display);font-size:32px;font-weight:800;letter-spacing:-.02em;line-height:1.1;margin:0;}
.hp-sub{margin:10px 0 0;font-size:15px;line-height:1.5;color:var(--color-text-secondary);}

/* ── CURATED COLLECTIONS ─────────────────────────────────── */
.collections-sec{max-width:1160px;margin:0 auto;padding:52px 40px 56px;}
/* One column per category (`--coll-n`, set by the component), so the set keeps
   its single row at every width. auto-fit used to derive the count from the
   available space and broke three cards into 2 + 1 — and a lone card under a
   full row reads as a fourth one that failed to load, not as the third of
   three. minmax(0,…) rather than 1fr: a column whose min-content is its widest
   label would otherwise push the row past the screen instead of sharing it. */
.collections{display:grid;grid-template-columns:repeat(var(--coll-n,3),minmax(0,1fr));gap:20px;}
@media (max-width:760px){.collections-sec{padding:40px 22px;}}

.coll{
  appearance:none;border:1px solid var(--color-border);
  background:var(--color-surface);border-radius:20px;
  padding:28px 22px;text-align:center;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:16px;
  box-shadow:0 6px 22px rgba(58,30,14,.06);
  transition:transform .18s,box-shadow .18s,border-color .18s;
  font-family:inherit;
  /* The card is an <a> to /listings?category=… — keep it looking like the card
     it always was rather than like body copy with a link in it. */
  text-decoration:none;color:inherit;
}
.coll:hover{transform:translateY(-4px);box-shadow:0 16px 38px rgba(58,30,14,.13);border-color:var(--color-border-strong);}
.coll-ico{width:60px;height:60px;border-radius:17px;background:var(--color-surface-alt);color:var(--color-primary);display:grid;place-items:center;font-size:27px;}
.coll-t{font-family:var(--font-display);font-size:19px;font-weight:700;letter-spacing:-.015em;line-height:1.15;}

/* Narrow phones: the tile shrinks to hold that single row — a ~100px column has
   no room for a 60px icon inside 28px of padding. Declared after the base card
   so it wins the cascade. */
@media (max-width:560px){
  .collections{gap:10px;}
  .coll{padding:18px 8px;gap:10px;border-radius:16px;}
  .coll-ico{width:46px;height:46px;border-radius:14px;font-size:21px;}
  .coll-t{font-size:15px;}
}
/* Tightest phones. */
@media (max-width:400px){
  .coll{padding:16px 6px;}
  .coll-t{font-size:14px;}
}

/* ── GUEST REVIEWS (dark story slider) ───────────────────── */
.reviews-sec{padding:0;}
.stories{background:var(--color-neutral-900);border-radius:0;padding:64px 40px 56px;text-align:center;color:#fff;}
@media (max-width:760px){.stories{padding:48px 22px 44px;}}
.st-eyebrow{display:inline-block;padding:7px 16px;border-radius:99px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.72);margin:0 0 18px;}
.st-title{font-family:var(--font-display);font-size:38px;font-weight:800;letter-spacing:-.02em;line-height:1.05;margin:0;color:#fff;}
.st-sub{margin:12px auto 0;max-width:46ch;font-size:15px;line-height:1.5;color:rgba(255,255,255,.6);}
.st-avatars{display:flex;align-items:center;justify-content:center;gap:14px;margin:34px 0 30px;min-height:84px;flex-wrap:nowrap;}
.st-av{flex:0 0 auto;width:54px;height:54px;border-radius:50%;border:none;cursor:pointer;padding:0;background-size:cover;background-position:center;background-repeat:no-repeat;opacity:.5;filter:saturate(.7);transition:width .24s,height .24s,opacity .2s,box-shadow .2s,filter .2s;}
.st-av:hover{opacity:.85;}
.st-av.on{width:76px;height:76px;opacity:1;filter:none;box-shadow:0 0 0 3px var(--color-neutral-900),0 0 0 6px var(--color-primary);}
/* The card is the one left-aligned thing in a centred section, so the quote,
   the name and the date read as a block. `start`, not `left`: in Arabic the
   whole section is RTL and a hard left pinned the Arabic quote, the guest's
   name and the date to the wrong edge of their own card. The flex rows inside
   (.st-bhead, .st-rate) already mirror on their own. */
.st-box{max-width:600px;margin:0 auto;background:var(--color-neutral-800);border:1px solid rgba(255,255,255,.09);border-radius:20px;padding:28px 30px;text-align:start;box-shadow:0 18px 50px rgba(0,0,0,.35);transition:opacity .25s;}
.st-bhead{display:flex;align-items:center;gap:13px;margin-bottom:18px;}
.st-bav{flex:0 0 auto;width:50px;height:50px;border-radius:50%;background-size:cover;background-position:center;background-repeat:no-repeat;}
.st-name{font-size:17px;font-weight:700;letter-spacing:-.01em;line-height:1.2;color:#fff;}
.st-loc{font-size:13px;color:rgba(255,255,255,.6);display:flex;align-items:center;gap:6px;margin-top:2px;}
.st-loc i{font-size:12px;color:var(--color-primary-300);}
.st-rate{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.st-stars{display:flex;gap:2px;color:#E0A526;font-size:17px;line-height:1;}
.st-stars .off{color:rgba(255,255,255,.22);}
.st-score{font-size:14px;font-weight:700;color:#fff;}
.st-text{font-size:17px;line-height:1.6;color:rgba(255,255,255,.9);margin:0 0 18px;}
.st-date{font-size:13px;color:rgba(255,255,255,.5);}
.st-nav{display:flex;justify-content:center;gap:12px;margin-top:26px;}
.st-arrow{width:46px;height:46px;border-radius:13px;cursor:pointer;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:#fff;font-size:16px;display:grid;place-items:center;transition:background .15s,transform .1s;}
.st-arrow:hover{background:rgba(255,255,255,.12);}
.st-arrow:active{transform:scale(.92);}

/* ── HOW IT WORKS ────────────────────────────────────────── */
.how-sec{max-width:1000px;margin:0 auto;padding:72px 40px 72px;}
.steps{display:flex;align-items:flex-start;gap:8px;}
@media (max-width:680px){.steps{flex-direction:column;gap:26px;align-items:center;}.how-sec{padding:16px 22px 56px;}}
.step{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:0 10px;}
.step-ico{position:relative;width:78px;height:78px;border-radius:22px;background:var(--color-surface-alt);color:var(--color-primary);display:grid;place-items:center;font-size:30px;}
.step-num{position:absolute;top:-8px;right:-8px;width:28px;height:28px;border-radius:50%;background:var(--color-primary);color:#fff;display:grid;place-items:center;font-family:var(--font-display);font-size:14px;font-weight:700;border:3px solid var(--color-background);}
.step-t{font-family:var(--font-display);font-size:21px;font-weight:700;letter-spacing:-.015em;line-height:1.15;}
.step-s{font-size:14px;line-height:1.5;color:var(--color-text-secondary);max-width:26ch;}
.connector{flex:0 0 auto;align-self:flex-start;margin-top:38px;color:var(--color-border-strong);font-size:18px;}
@media (max-width:680px){.connector{display:none;}}

/* ── APP DOWNLOAD BANNER ─────────────────────────────────── */
.appbanner-sec{background:var(--color-neutral-800);padding:0;}
/* Copy on the start side, CTA on the end side, both vertically centred. */
.banner{position:relative;overflow:hidden;background:transparent;border-radius:0;max-width:1160px;margin:0 auto;display:grid;grid-template-columns:1fr auto;align-items:center;gap:28px;padding:56px 40px;}
.b-glyph{position:absolute;inset-inline-end:340px;bottom:-40px;font-size:200px;color:#fff;opacity:.07;pointer-events:none;line-height:1;z-index:0;transform:rotate(-8deg);}
.b-copy{position:relative;z-index:2;max-width:46ch;}
.b-eyebrow{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.78);margin:0 0 10px;}
.b-title{font-family:var(--font-display);font-size:32px;font-weight:800;letter-spacing:-.02em;line-height:1.12;color:#fff;margin:0;}
/* White pill CTA on the dark banner. line-height/padding leave room for
   Arabic descenders — the copy is long enough to wrap on narrow screens. */
.b-cta{position:relative;z-index:2;display:inline-flex;align-items:center;gap:11px;background:#fff;color:var(--color-neutral-900);border-radius:var(--radius-pill);padding:12px 22px;font-size:15px;font-weight:700;line-height:1.5;text-decoration:none;transition:transform .15s,box-shadow .15s;}
.b-cta:hover{transform:translateY(-2px);box-shadow:0 10px 24px -12px rgba(0,0,0,.55);}
.b-cta i{flex:0 0 auto;font-size:18px;color:var(--color-primary);}
/* Label direction follows the copy itself, not the page — keeps the "!" on the
   right end when the English fallback renders inside the RTL layout. */
.b-cta span{unicode-bidi:plaintext;}
/* Narrow: stack, CTA back under the copy, and pull the watermark clear of it. */
@media (max-width:760px){.banner{grid-template-columns:1fr;gap:24px;padding:48px 22px;}.b-cta{justify-self:start;}.b-glyph{inset-inline-end:-30px;}}
