/* =====================================================================
   Basera — public / customer pages (WP1): home, explore, detail, saved,
   enquiries, report. Values transcribed from the prototypes; everything
   shared lives in basera.css — this file only adds page layout.
   ===================================================================== */

/* ---------- card wrapper (heart is a form OUTSIDE the <a> card) ---------- */
.pub-card{position:relative}
.pub-card .bs-listing-card{transition:none}
.pub-heart{border:none;background:transparent;padding:0;margin:0;width:100%;height:100%;display:grid;place-items:center;cursor:pointer;color:var(--ink2);font:inherit}
.pub-heart .bs-heart{fill:none;stroke:var(--ink2);transition:fill .15s ease,stroke .15s ease}
.pub-heart.is-saved .bs-heart{fill:var(--coral);stroke:var(--coral)}
.pub-heart.is-busy{opacity:.6}
.pub-row{position:relative;display:flex}
.pub-row .bs-listing-row{flex:1;min-width:0}
.pub-row__save{position:absolute;right:0;top:0;bottom:0;display:grid;place-items:center;width:46px;padding:0}
.pub-row .bs-listing-row__body{padding-right:52px}
.pub-row .pub-heart .bs-heart{fill:var(--coral);stroke:var(--coral)}
@media (hover:hover) and (min-width:760px){
  .pub-card{transition:transform .22s cubic-bezier(.2,.7,.3,1)}
  .pub-card:hover{transform:translateY(-5px)}
  .pub-card:hover .bs-listing-card{transform:none;box-shadow:var(--shadow-hover)}
}

/* ---------- home (mobile) ---------- */
.pub-home-m{padding-bottom:84px}
.pub-home-m__hero{padding:20px 18px 0}
.pub-home-m__chips{padding:14px 18px 0}
.pub-home-m__head{padding:24px 18px 0}
/* The launch's focus localities, under the intent chips (BASERA_FOCUS_LOCALITIES). */
.pub-home-m__areas{display:block;padding:20px 18px 0}
.pub-home-m__areas-row{margin-top:10px}
.pub-home-m__list{padding:12px 18px 0}
.pub-home-m .bs-avatar--btn{cursor:pointer}

/* ---------- home (desktop) ---------- */
.pub-hero__h1{margin-top:14px}
.pub-hero__sub{font-size:17px;color:var(--ink2);margin-top:16px;max-width:540px}
/* Launch-city line under the hero copy (bs-citynote in basera.css). Inline-sized
   so it hugs the sentence instead of stretching across the 760px hero column. */
.pub-hero__citynote{margin-top:18px;display:inline-flex;max-width:540px}
.pub-hero__box{margin-top:32px;background:var(--card);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow-card);padding:18px;max-width:860px}
.pub-hero__tabs{display:flex;gap:6px;flex-wrap:wrap}
.pub-hero__row{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.pub-hero__search{flex:1;min-width:220px}
.pub-hero__popular{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;align-items:center}
.pub-hero__points{display:flex;gap:26px;margin-top:30px;flex-wrap:wrap}
.pub-hero__point{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--ink2)}
/* Wide screens: search on the left, a real home on the right (the column was empty). */
.pub-hero__grid{display:block}
.pub-hero__main{min-width:0}
@media (min-width:1020px){
  .pub-hero__grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:56px;align-items:center}
}
.pub-hero__art{position:relative;margin:0;align-self:stretch;display:flex;align-items:center}
.pub-hero__img{display:block;width:100%;height:auto;max-height:560px;aspect-ratio:5/6;object-fit:cover;border-radius:32px;box-shadow:0 30px 70px rgba(28,22,38,.18);background:var(--soft)}
.pub-hero__tag{position:absolute;display:inline-flex;align-items:center;gap:8px;background:var(--card);color:var(--ink);font-size:13.5px;font-weight:600;padding:10px 14px;border-radius:14px;box-shadow:0 14px 34px rgba(28,22,38,.16);white-space:nowrap}
.pub-hero__tag--top{top:28px;left:-22px}
.pub-hero__tag--bottom{bottom:32px;right:18px}
@media (min-width:1320px){.pub-hero__tag--bottom{right:-18px}}
.pub-home-d__list{max-width:1240px;margin:0 auto;padding:48px 28px 24px}
.pub-home-d__head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.pub-home-d__grid{margin-top:26px}
.pub-home-d__grid .bs-listing-card__price{font-size:21px}
.pub-home-d__grid .bs-listing-card__title{font-size:15.5px}
.pub-steps-pad{max-width:1240px;margin:0 auto;padding:40px 28px 64px}
.pub-steps{background:var(--soft);border-radius:36px;padding:44px 40px}
.pub-steps__h2{margin-top:8px;max-width:520px}
.pub-steps__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px;margin-top:30px}
.pub-step{padding:22px}
.pub-step__n{font-family:var(--font-display);font-weight:800;font-size:28px;color:var(--coral)}
.pub-step__title{font-weight:700;font-size:16px;margin-top:8px}
.pub-step__body{font-size:14px;color:var(--ink2);margin-top:6px}
@media (max-width:1019.98px){
  .pub-home-d__list{padding:40px 28px 20px}
  .pub-steps-pad{padding:32px 28px 48px}
  .pub-steps{border-radius:24px;padding:28px 20px}
}

/* ---------- explore (mobile) ---------- */
.pub-explore{padding-bottom:84px}
.pub-explore .bs-mhead .bs-search-box{background:#fff}
.pub-filter-btn{display:flex;align-items:center;gap:5px;justify-content:center;min-width:44px;height:44px;border-radius:12px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;padding:0 12px;font-family:inherit;flex:none}
.pub-filter-btn.is-active{border-color:var(--ink);background:var(--ink);color:var(--paper)}
.pub-filter-btn__n{font-size:11px;font-weight:800}
.pub-explore__chips{margin-top:10px}
.pub-sheet__toggles{gap:8px}
.pub-explore__count{padding:14px 18px 0;font-size:13px;color:var(--ink2);font-weight:600}
.pub-explore__list{padding:10px 18px 0}
.pub-explore__more{padding:18px 18px 0;text-align:center}
.pub-explore .bs-empty{padding:56px 24px}

/* ---------- filter sheet ---------- */
.pub-sheet__title{margin-top:12px;margin-bottom:8px}
.pub-chip-input{position:relative}
.pub-chip-input input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.pub-sheet__apply{margin-top:22px;font-size:15.5px;padding:15px}

/* ---------- search (desktop) ---------- */
.pub-results__head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.pub-filters{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px;display:block}
.pub-filters__search{margin-bottom:18px}
.pub-filters__title{margin-bottom:10px}
.pub-filters .bs-chip-row{gap:6px}
.pub-filters .bs-chip{margin-top:0}
.pub-filters > .bs-chip{display:inline-flex}
.pub-pager{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:28px}

/* ---------- detail ---------- */
.pub-detail{padding-top:0}
.pub-galwrap{position:relative}
.pub-gal{overflow:hidden}
.pub-gal__slide{position:absolute;inset:0;background-position:center;background-size:cover;background-repeat:no-repeat;opacity:0;transition:opacity .25s ease;pointer-events:none}
.pub-gal__slide.is-active{opacity:1}
.pub-galwrap .bs-gal__save{z-index:2}
.pub-galwrap .bs-back{z-index:2}
.pub-detail__grid{margin-top:0;padding:16px 18px 0}
.pub-detail__pricerow{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:12px}
.pub-detail__price{font-size:28px}
.pub-detail__rate{font-size:12.5px;font-weight:600;color:var(--muted)}
.pub-detail__title{margin-top:6px}
.pub-detail__loc{font-size:13.5px;color:var(--ink2);margin-top:3px}
.pub-detail__emi{margin-top:14px;padding:12px 14px}
.pub-detail__facts{margin-top:16px}
.pub-detail__h3{margin-top:24px}
.pub-detail__desc{margin-top:8px}
.pub-detail__nearby{margin-top:6px}
/* The property's own RERA answer — shown at every width, never abbreviated. */
.pub-detail__rera{margin-top:20px;padding:14px 16px;border-radius:16px}
.pub-detail__rera .bs-bold{margin-top:4px;font-size:14.5px}
.pub-detail__rera .bs-small{margin-top:4px;line-height:1.5}
.pub-detail__lister{margin-top:20px}
.pub-detail__ddcard{margin-top:10px;padding:14px 16px;border-radius:16px}
.pub-detail__report{margin-top:22px;text-align:center}
.pub-detail__services{display:flex;flex-direction:column;gap:3px;margin-top:16px;text-decoration:none;color:inherit}
.pub-detail__backlink{display:none}
/* §33 related lists under a property: the lister's other homes, then similar ones. */
.pub-detail__related{padding:0 16px}
.pub-related{margin-top:30px}
.pub-related__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.pub-related__title{font-size:18px;font-weight:700;color:var(--ink);margin:0;min-width:0}
.pub-related__all{flex:none;font-size:13.5px;padding:0}
.pub-related__grid{margin-top:12px}
.pub-related__empty{margin-top:8px;padding:14px 16px;border:1px dashed var(--line);border-radius:14px;background:var(--card)}
.pub-related__more{display:flex;justify-content:center;align-items:center;min-height:44px;margin-top:16px}
.pub-spinner{width:26px;height:26px;border-radius:50%;border:3px solid var(--soft);border-top-color:var(--coral);animation:pub-spin .8s linear infinite}
.pub-spinner[hidden]{display:none}
@keyframes pub-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.pub-spinner{animation-duration:2.4s}}
.pub-related-page__h1{margin-top:10px}
/* Phone home: the way to pricing and the policy pages (no top bar, no footer under 760px). */
.pub-home-m__list-cta{display:flex;flex-direction:column;gap:3px;margin:22px 18px 0;padding:14px 16px;text-decoration:none;color:inherit}
.pub-home-m__links{display:flex;flex-wrap:wrap;gap:8px 16px;margin:16px 18px 8px;font-size:13px}
.pub-home-m__links a{color:var(--ink2);text-decoration:none;font-weight:600}
/* §34 Loans & documents */
.pub-services{max-width:760px}
.pub-services__h1{margin-top:8px}
.pub-services__intro{margin-top:8px;line-height:1.55}
.pub-services__about{margin-top:14px}
.pub-services__grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:18px}
.pub-services__kind{display:flex;flex-direction:column;gap:4px;padding:16px 18px;text-decoration:none;color:inherit;transition:border-color .15s}
.pub-services__kind:hover,.pub-services__kind:focus-visible{border-color:var(--coral)}
.pub-services__kind-name{font-weight:700;font-size:16px;color:var(--ink)}
.pub-services__form{margin-top:18px;padding:18px}
.pub-services__done{margin-top:18px}
@media (min-width:760px){.pub-services__grid{grid-template-columns:1fr 1fr}}
/* side column: on mobile only the fixed action bar is visible */
.pub-side{gap:16px}
.pub-actions .pub-actions__phone{flex:1;display:flex}
.pub-actions .pub-actions__contact{flex:1.4;display:flex}
.pub-actions form .bs-btn{width:100%}
.pub-actions .bs-btn--outline-teal{background:var(--card)}
@media (max-width:759.98px){
  .pub-actions .pub-actions__phone .bs-btn{border-color:var(--line);color:var(--ink);background:var(--card)}
  .pub-galwrap .bs-gal{height:300px}
  .pub-contact__info{display:none !important}
}
@media (min-width:760px){
  .pub-detail{padding:24px 28px 64px}
  .pub-detail__backlink{display:inline-flex}
  .pub-galwrap{margin-top:18px}
  .pub-galwrap .bs-gal{margin-top:0}
  .pub-detail__grid{padding:0;margin-top:26px}
  .pub-detail__loc{font-size:15px;margin-top:6px}
  .pub-detail__facts{margin-top:24px}
  .pub-detail__h3{margin-top:32px}
  .pub-detail__desc{margin-top:10px;max-width:640px}
  .pub-detail__nearby{margin-top:12px;max-width:520px}
  .pub-detail__report{text-align:left;margin-top:28px}
  .pub-detail__related{padding:0}
  .pub-related{margin-top:40px}
  .pub-related__title{font-size:21px}
  .pub-contact{background:var(--card);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow-card);padding:24px}
  .pub-contact__price{font-size:32px}
  .pub-contact__area{margin-top:2px;font-size:13.5px;font-variant-numeric:tabular-nums}
  .pub-contact__note{font-size:12px;margin-top:10px}
  .pub-contact .bs-alert{border-radius:12px;padding:12px 14px;margin-top:14px}
  .pub-actions{margin-top:18px;flex-direction:column;gap:10px}
  .pub-actions .pub-actions__contact{order:1}
  .pub-actions .pub-actions__phone{order:2}
  .pub-actions form .bs-btn{font-size:16px;padding:15px 22px}
  .pub-actions .pub-actions__phone .bs-btn{font-size:14.5px;padding:12px 22px;border-color:var(--line);color:var(--ink);background:transparent}
  .pub-actions .pub-actions__phone .bs-btn:hover{border-color:var(--ink)}
}

/* ---------- saved / enquiries / report ---------- */
.pub-saved__h1{margin-top:0}
.pub-saved__list{margin-top:16px}
.pub-saved__grid{margin-top:26px}
.pub-enq__card{margin-top:16px;padding:6px 16px}
.pub-enq__row{padding:14px 0}
.pub-enq__row:last-child{border-bottom:none}
.pub-enq__row .bs-pill{margin-top:6px;padding:4px 10px}
.pub-report__card{margin-top:18px}
.pub-report__row{box-shadow:none}
.pub-report__form{margin-top:4px}
.pub-report__done{margin-top:16px}
@media (min-width:760px){
  .pub-saved__h1{margin-top:6px}
  .pub-enq__card{margin-top:24px;padding:10px 24px}
  .pub-enq__row{padding:16px 0}
  .pub-enq__row .bs-pill{margin-top:0;font-size:12px;padding:5px 11px}
}
