/* ===========================================================
   CHAMBERS REAL ESTATE — component & page styles
=========================================================== */

/* ---------- HERO ---------- */
.hero{
  position:relative; min-height:88vh; display:flex; align-items:flex-end;
  overflow:hidden; color:var(--paper);
}
.hero-media{ position:absolute; inset:0; }
.hero-media img{ width:100%; height:100%; object-fit:cover; animation:hero-kenburns 22s ease-in-out infinite alternate; }
@keyframes hero-kenburns{
  from{ transform:scale(1) translate(0,0); }
  to{ transform:scale(1.09) translate(-1%,-1%); }
}
@media (prefers-reduced-motion: reduce){
  .hero-media img{ animation:none; }
}
.hero-media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,.04) 46%, rgba(0,0,0,.22) 100%);
}
.hero-inner{ position:relative; z-index:2; width:100%; padding-bottom:clamp(48px,7vw,84px); }
@keyframes hero-rise{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
.hero-label{
  display:inline-flex; align-items:center; gap:8px;
  text-transform:none; letter-spacing:.02em; font-size:.82rem;
  color:var(--paper); font-weight:600; margin-bottom:22px;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(6px); padding:9px 16px 9px 12px; border-radius:999px;
  animation:hero-rise .8s var(--ease) both;
}
.hero-label::before{
  content:""; width:7px; height:7px; border-radius:50%; background:var(--brand-orange); flex:none;
}
.hero h1{
  color:var(--paper); font-size:var(--step-5); max-width:14ch; font-weight:440;
  animation:hero-rise .8s var(--ease) .08s both;
}
.hero h1::after{
  content:""; display:block; width:64px; height:4px; margin-top:22px;
  background:var(--brand-orange); border-radius:2px;
}
.hero-sub{
  color:rgba(255,255,255,.82); max-width:46ch; margin-top:20px; font-size:1.08rem;
  animation:hero-rise .8s var(--ease) .16s both;
}
.hero-actions{ display:flex; gap:16px; margin-top:34px; flex-wrap:wrap; animation:hero-rise .8s var(--ease) .24s both; }
@media (prefers-reduced-motion: reduce){
  .hero-label,.hero h1,.hero-sub,.hero-actions{ animation:none; }
}

/* ---------- SEARCH PANEL ---------- */
.search-panel{
  position:relative; z-index:3;
  background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius-l); box-shadow:var(--shadow-2);
  padding:28px; margin-top:-64px;
  display:grid; grid-template-columns:repeat(4,1fr) auto; gap:0;
  min-width:0;
}
.search-panel .field{
  padding:6px 20px; border-right:1px solid var(--line);
  display:flex; flex-direction:column; gap:6px; min-width:0;
}
.search-panel .field:first-child{ padding-left:4px; }
.search-panel .field label{ font-size:.72rem; color:var(--charcoal-60); font-weight:600; }
.search-panel select,.search-panel input{
  border:0; background:transparent; font-size:.95rem; color:var(--ink); padding:2px 0; font-weight:500;
  width:100%; min-width:0; max-width:100%;
}
.search-panel select:focus,.search-panel input:focus{ outline:0; }
.search-submit{ display:flex; align-items:center; padding-left:20px; }
.search-submit .btn{ border-radius:10px; padding-block:16px; }
.search-title-row{ max-width:820px; margin-bottom:28px; }

@media (max-width:980px){
  .search-panel{ grid-template-columns:1fr 1fr; row-gap:18px; margin-top:-40px; }
  .search-panel .field{ border-right:0; border-bottom:1px solid var(--line); padding-bottom:14px; }
  .search-submit{ grid-column:1/-1; padding-left:4px; }
}
@media (max-width:600px){
  .search-panel{ grid-template-columns:1fr; padding:22px; margin-top:-32px; }
  .search-panel .field{ padding-left:4px; padding-right:4px; }
  .search-panel .field:first-child{ padding-left:4px; }
}

.trust-strip{
  display:flex; flex-wrap:wrap; gap:14px 32px; justify-content:center;
  padding:22px 0 4px; font-size:.8rem; font-weight:600; color:var(--charcoal-60);
}
.trust-strip span{ display:flex; align-items:center; gap:8px; }
.trust-strip span::before{
  content:""; width:5px; height:5px; border-radius:50%; background:var(--brand-orange); flex:none;
}
@media (max-width:600px){ .trust-strip{ gap:10px 20px; font-size:.76rem; } }

/* ---------- PROPERTY CARDS ---------- */
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.section-foot{ display:flex; justify-content:center; margin-top:clamp(32px,5vw,48px); }
.grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.dev-grid-2col{ grid-template-columns:repeat(2,1fr); }
@media (max-width:980px){ .grid-3,.grid-4{ grid-template-columns:1fr 1fr; } }
@media (max-width:620px){ .grid-3,.grid-4{ grid-template-columns:1fr; } .dev-grid-2col{ grid-template-columns:1fr; } }

.p-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-l);
  overflow:hidden; box-shadow:var(--shadow-1);
  transition:box-shadow .35s var(--ease), transform .35s var(--ease);
  display:flex; flex-direction:column; height:100%;
}
.p-card:hover{ box-shadow:var(--shadow-2); transform:translateY(-4px); }
.p-media{ position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--paper-2); border-radius:var(--radius-l) var(--radius-l) 0 0; box-shadow:inset 0 0 0 3px var(--brand-orange); }
.p-media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.p-card:hover .p-media img{ transform:scale(1.05); }
.p-badges{ position:absolute; top:14px; left:14px; display:flex; gap:8px; }
.p-price-tag{
  position:absolute; bottom:14px; left:14px; background:rgba(92,42,32,.88); color:var(--paper);
  padding:7px 13px; border-radius:2px; font-size:.86rem; font-weight:600;
}
.p-body{ padding:20px; display:flex; flex-direction:column; flex:1; }
.p-type{ font-size:.76rem; color:var(--charcoal-40); font-weight:600; text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px; }
.p-loc{ font-size:.82rem; color:var(--charcoal-60); margin-bottom:10px; display:flex; align-items:center; gap:6px; }
.p-name{ font-family:var(--serif); font-size:1.18rem; color:var(--ink); margin-bottom:4px; }
.p-meta{ display:flex; gap:9px; font-size:.72rem; color:var(--charcoal-60); padding-top:13px; margin-top:13px; border-top:1px solid var(--line); flex-wrap:wrap; }
.p-meta span{ display:flex; align-items:center; gap:4px; white-space:nowrap; }
.p-meta svg{ color:var(--clay); flex:none; }
.p-actions{ display:flex; gap:10px; margin-top:18px; padding-top:0; }
.p-actions .btn{ flex:1; }
.p-card .p-actions{ margin-top:auto; }

/* ---------- CATEGORY CARDS (browse by type) ---------- */
.cat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.cat-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-l);
  padding:32px 28px; display:flex; flex-direction:column; gap:18px; position:relative;
  box-shadow:var(--shadow-1);
  transition:box-shadow .3s var(--ease), transform .3s var(--ease), border-color .3s;
}
.cat-card:hover{ box-shadow:var(--shadow-2); transform:translateY(-4px); border-color:rgba(204,85,0,.25); }
.cat-icon{
  width:58px; height:58px; border-radius:50%;
  background:linear-gradient(145deg, rgba(255,117,4,.14), rgba(92,42,32,.08)); color:var(--brand-orange);
  display:flex; align-items:center; justify-content:center;
  transition:transform .35s var(--ease), background .35s;
}
.cat-card:hover .cat-icon{ transform:scale(1.08) rotate(-4deg); background:linear-gradient(145deg, rgba(255,117,4,.24), rgba(92,42,32,.14)); }
.cat-name{ font-family:var(--serif); font-size:1.15rem; color:var(--ink); }
.cat-count{ font-size:.84rem; color:var(--charcoal-60); }
.cat-arrow{
  position:absolute; right:22px; bottom:24px; color:var(--charcoal-40);
  transition:transform .3s var(--ease), color .3s;
}
.cat-card:hover .cat-arrow{ transform:translateX(4px); color:var(--clay); }
@media (max-width:880px){ .cat-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .cat-grid{ grid-template-columns:1fr; } }

/* ---------- FILTER BAR (properties listing) ---------- */
.filter-bar{
  display:flex; gap:14px; flex-wrap:wrap; align-items:center; padding:22px 24px;
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-l); box-shadow:var(--shadow-1); margin-bottom:36px;
}
.filter-bar select,.filter-bar input{
  border:1px solid var(--line); background:var(--paper); padding:11px 14px; border-radius:var(--radius-s); font-size:.88rem; color:var(--ink);
}
.filter-count{ margin-left:auto; font-size:.86rem; color:var(--charcoal-60); }

/* ---------- SPLIT SECTION ---------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.split img{ border-radius:var(--radius-l); width:100%; aspect-ratio:4/5; object-fit:cover; border:3px solid var(--brand-orange); box-shadow:0 0 0 6px rgba(255,117,4,.1); }
.split-copy p{ color:var(--charcoal-60); margin-top:18px; line-height:1.75; }
.stat-row{ display:flex; gap:40px; margin-top:32px; }
.stat-row .stat b{ display:block; font-family:var(--serif); font-size:1.7rem; color:var(--ink); }
.stat-row .stat span{ font-size:.82rem; color:var(--charcoal-60); }
@media (max-width:880px){ .split{ grid-template-columns:1fr; gap:32px; } }

/* ---------- SERVICES ---------- */
.svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.svc{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-l);
  padding:38px 32px; box-shadow:var(--shadow-1);
  transition:box-shadow .3s var(--ease), transform .3s var(--ease), border-color .3s;
}
.svc:hover{ box-shadow:var(--shadow-2); transform:translateY(-4px); border-color:rgba(204,85,0,.25); }
.svc-icon{
  width:60px; height:60px; border-radius:50%;
  background:linear-gradient(145deg, rgba(255,117,4,.14), rgba(92,42,32,.08)); color:var(--brand-orange);
  display:flex; align-items:center; justify-content:center; margin-bottom:24px;
  transition:transform .35s var(--ease), background .35s;
}
.svc:hover .svc-icon{ transform:scale(1.08) rotate(-4deg); background:linear-gradient(145deg, rgba(255,117,4,.24), rgba(92,42,32,.14)); }
.svc h3{ font-size:1.32rem; margin-bottom:14px; }
.svc p{ color:var(--charcoal-60); line-height:1.7; }
@media (max-width:880px){ .svc-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:640px){ .svc-grid{ grid-template-columns:1fr; } }

/* ---------- WHY CHAMBERS ---------- */
.why-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:8px; }
.mv-grid{ grid-template-columns:repeat(3,1fr); background:transparent; border:0; gap:20px; }
@media (max-width:880px){ .mv-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .mv-grid{ grid-template-columns:1fr; } }
.why-item{ background:var(--paper); padding:32px; display:flex; gap:18px; }
.mv-item{ border-radius:var(--radius-l); box-shadow:var(--shadow-1); transition:box-shadow .3s var(--ease), transform .3s var(--ease); }
.mv-item:hover{ box-shadow:var(--shadow-2); transform:translateY(-4px); }
.why-item .mark{ width:34px; height:34px; flex:none; border-radius:50%; border:1px solid var(--clay); display:flex; align-items:center; justify-content:center; color:var(--clay); }
.why-item h4{ font-family:var(--sans); font-weight:600; font-size:1rem; color:var(--ink); margin-bottom:6px; }
.why-item p{ color:var(--charcoal-60); font-size:.92rem; }
@media (max-width:700px){ .why-grid{ grid-template-columns:1fr; } }

/* ---------- PILLARS (dark 4-up feature band) ---------- */
.pillars-band{ background:var(--paper-2); padding-block:clamp(48px,6vw,72px); }
.pillars-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:20px; }
.pillar{
  display:flex; align-items:flex-start; gap:16px; text-align:left;
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-l);
  padding:26px; box-shadow:var(--shadow-1);
  transition:box-shadow .3s var(--ease), transform .3s var(--ease), border-color .3s;
}
.pillar:hover{ box-shadow:var(--shadow-2); transform:translateY(-4px); border-color:rgba(204,85,0,.25); }
.pillar-icon{
  flex:none; width:52px; height:52px; border-radius:50%;
  background:linear-gradient(145deg, rgba(255,117,4,.14), rgba(92,42,32,.08));
  display:flex; align-items:center; justify-content:center; color:var(--brand-orange);
  transition:transform .35s var(--ease), background .35s;
}
.pillar:hover .pillar-icon{ transform:scale(1.08) rotate(-4deg); background:linear-gradient(145deg, rgba(255,117,4,.24), rgba(92,42,32,.14)); }
.pillar-icon svg{ width:24px; height:24px; }
.pillar-text{ min-width:0; }
.pillar h4{
  font-family:var(--sans); font-weight:700; font-size:1rem;
  color:var(--ink); margin-bottom:5px;
}
.pillar p{ color:var(--charcoal-60); font-size:.86rem; line-height:1.55; }
@media (max-width:640px){
  .pillars-grid{ grid-template-columns:1fr; }
}

/* ---------- DEVELOPMENTS ---------- */
.dev-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-l); overflow:hidden; box-shadow:var(--shadow-1); transition:box-shadow .35s var(--ease), transform .35s var(--ease); display:flex; flex-direction:column; height:100%; }
.dev-card:hover{ box-shadow:var(--shadow-2); transform:translateY(-4px); }
.dev-media{ position:relative; aspect-ratio:16/11; overflow:hidden; background:var(--paper-2); border-radius:var(--radius-l) var(--radius-l) 0 0; box-shadow:inset 0 0 0 3px var(--brand-orange); }
.dev-media img{ width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.dev-card:hover .dev-media img{ transform:scale(1.05); }
.dev-info{ padding:20px; display:flex; flex-direction:column; flex:1; }
.dev-status{ font-size:.74rem; font-weight:600; color:var(--brand-orange); margin-bottom:8px; display:block; text-transform:uppercase; letter-spacing:.04em; }
.dev-info h3{ font-family:var(--serif); color:var(--ink); font-size:1.2rem; margin-bottom:6px; }
.dev-info .loc{ font-size:.86rem; color:var(--charcoal-60); margin-bottom:14px; }

/* ---------- SOCIAL ---------- */
.social-band{ background:var(--ink); color:var(--paper); }
.social-inner{ display:flex; justify-content:space-between; align-items:center; gap:32px; flex-wrap:wrap; }
.social-inner p{ color:rgba(255,255,255,.7); margin-top:10px; max-width:44ch; }
.ig-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin-top:30px; }
.ig-grid img{ aspect-ratio:1; object-fit:cover; border-radius:2px; }

/* ---------- ABOUT ---------- */
.about-hero{ display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:end; }
.about-hero img{ border-radius:var(--radius-l); width:100%; aspect-ratio:4/5; object-fit:cover; border:3px solid var(--brand-orange); box-shadow:0 0 0 6px rgba(255,117,4,.1); transition:transform .5s var(--ease); }
.about-hero:hover img{ transform:scale(1.02); }
.mission-vision-card{ display:flex; flex-direction:column; gap:24px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-l); box-shadow:var(--shadow-1); padding:28px; }
.mission-vision-card p{ margin-top:10px; color:var(--charcoal-60); font-size:.92rem; line-height:1.65; }
.team-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px 20px; margin-top:8px; }
.team-card{ text-align:center; }
.team-photo{ width:100%; aspect-ratio:1/1; border-radius:50%; overflow:hidden; background:var(--paper-2); border:3px solid var(--brand-orange); box-shadow:0 0 0 5px rgba(255,117,4,.12); transition:box-shadow .3s var(--ease), transform .3s var(--ease); }
.team-card:hover .team-photo{ box-shadow:0 0 0 5px rgba(255,117,4,.22); transform:translateY(-3px); }
.team-photo img{ width:100%; height:100%; object-fit:cover; }
.team-name{ font-weight:600; color:var(--ink); font-size:.92rem; margin-top:14px; }
.team-role{ color:var(--clay); font-weight:600; font-size:.78rem; letter-spacing:.03em; text-transform:uppercase; margin-top:3px; }
@media (max-width:880px){ .team-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:560px){ .team-grid{ grid-template-columns:repeat(2,1fr); gap:22px 16px; } }
.timeline{ margin-top:56px; border-top:1px solid var(--line); }
.timeline-row{ display:grid; grid-template-columns:120px 1fr; gap:24px; padding:26px 0; border-bottom:1px solid var(--line); }
.timeline-row b{ font-family:var(--serif); font-size:1.15rem; color:var(--ink); }
.timeline-row p{ color:var(--charcoal-60); }
.about-hero-stretch{ align-items:stretch; }
@media (max-width:880px){ .about-hero{ grid-template-columns:1fr; } }

/* ---------- FOUNDER ---------- */
.founder-band{ background:var(--ink); padding-block:clamp(56px,8vw,96px); }
.founder-band-inner{
  display:grid; grid-template-columns:340px 1fr; gap:56px; align-items:center;
}
.founder-avatar-wrap{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:16px; }
.founder-avatar{
  width:100%; aspect-ratio:4/5; border-radius:6px; overflow:hidden;
  background:var(--ink-2); border:3px solid var(--brand-orange);
  box-shadow:0 0 0 6px rgba(255,255,255,.1);
  display:flex; align-items:center; justify-content:center;
}
.founder-avatar img{ width:100%; height:100%; object-fit:cover; }
.founder-initials{ font-family:var(--serif); font-size:2.3rem; color:var(--brand-orange); }
.founder-eyebrow-sm{ font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.55); font-weight:600; }
.founder-role-pill{
  font-size:.78rem; font-weight:600; color:var(--sand); background:rgba(255,255,255,.06);
  border:1px solid var(--line-dark); padding:6px 16px; border-radius:20px;
}
.founder-eyebrow{ display:block; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--brand-orange); font-weight:700; margin-bottom:16px; }
.founder-heading{ color:var(--paper); font-size:var(--step-3); max-width:18ch; margin-bottom:20px; }
.founder-quote-mark{ font-family:var(--serif); font-size:3rem; color:var(--brand-orange); line-height:.4; margin-bottom:10px; }
.founder-quote{ font-size:1.05rem; line-height:1.75; color:rgba(255,255,255,.78); max-width:62ch; }
.founder-name{ font-weight:600; color:var(--paper); margin-top:22px; font-size:.95rem; }
.founder-title{ color:rgba(255,255,255,.55); font-size:.85rem; margin-top:2px; }
@media (max-width:800px){
  .founder-band-inner{ grid-template-columns:1fr; text-align:center; }
  .founder-avatar-wrap{ max-width:280px; margin-inline:auto; }
  .founder-heading{ max-width:none; margin-inline:auto; }
  .founder-quote{ margin-inline:auto; text-align:left; }
}

/* ---------- CONTACT ---------- */
.contact-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:64px; }
.contact-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-l); box-shadow:var(--shadow-1); padding:36px; }
@media (max-width:600px){ .contact-card{ padding:22px; } }
.payment-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:700px){ .payment-grid{ grid-template-columns:1fr; } }
.badge-note{ background:var(--white); border-left:3px solid var(--brand-orange); border-radius:6px; box-shadow:var(--shadow-1); padding:18px 22px; color:var(--charcoal); max-width:560px; }
.contact-row{ display:flex; gap:16px; padding:18px 0; border-bottom:1px solid var(--line); }
.contact-row:last-child{ border-bottom:0; }
.contact-row .ic{ width:38px; height:38px; border-radius:50%; background:rgba(255,117,4,.12); display:flex; align-items:center; justify-content:center; flex:none; color:var(--brand-orange); }
.contact-row .ic-wa{ background:rgba(255,117,4,.12); color:var(--brand-orange); }
.contact-row b{ display:block; font-size:.95rem; color:var(--ink); margin-bottom:3px; }
.contact-row span,.contact-row a{ font-size:.9rem; color:var(--charcoal-60); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.form-field{ display:flex; flex-direction:column; gap:7px; }
.form-field.full{ grid-column:1/-1; }
.form-field label{ font-size:.82rem; font-weight:600; color:var(--ink); }
.form-field input,.form-field select,.form-field textarea{
  border:1px solid var(--line); border-radius:var(--radius-s); padding:13px 14px; background:var(--white);
}
.map-box{ margin-top:0; border-radius:var(--radius-m); overflow:hidden; border:1px solid var(--line); aspect-ratio:16/8; }
.map-box iframe{ width:100%; height:100%; border:0; filter:grayscale(.25) contrast(1.05); }
@media (max-width:980px){ .contact-grid{ grid-template-columns:1fr; } .form-row{ grid-template-columns:1fr; } }

/* ---------- PAGE HEADER (interior pages) ---------- */
.page-head{ background:var(--ink); color:var(--paper); padding:clamp(56px,8vw,96px) 0 clamp(40px,6vw,64px); }
.page-head .eyebrow{ color:var(--brand-orange); }
.page-head h1{ color:var(--paper); font-size:var(--step-4); margin-top:14px; max-width:20ch; }
.page-head p{ color:rgba(255,255,255,.72); margin-top:16px; max-width:52ch; }
.breadcrumb{ font-size:.82rem; color:rgba(255,255,255,.55); }
.breadcrumb a:hover{ color:var(--sand); }

/* ---------- PROPERTY DETAIL ---------- */
.gallery{ position:relative; display:grid; grid-template-columns:1.6fr 1fr; gap:10px; height:520px; }
.gallery.gallery-single{ grid-template-columns:1fr; }
.gallery.gallery-pair .g-side{ grid-template-rows:1fr; }
.gallery .g-main{ border-radius:var(--radius-m); overflow:hidden; cursor:pointer; }
.gallery .g-side{ display:grid; grid-template-rows:1fr 1fr; gap:10px; }
.gallery .g-side > div{ border-radius:var(--radius-m); overflow:hidden; position:relative; cursor:pointer; }
.gallery img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.gallery .g-main:hover img,.gallery .g-side > div:hover img{ transform:scale(1.04); }
.g-more{
  position:absolute; inset:0; background:rgba(92,42,32,.6); color:var(--paper);
  display:flex; align-items:center; justify-content:center; font-weight:600; font-size:.92rem;
}
.gallery-count{
  position:absolute; right:26px; bottom:26px; z-index:3; background:rgba(92,42,32,.82); color:var(--paper);
  padding:9px 16px; border-radius:4px; font-size:.82rem; font-weight:600; display:flex; align-items:center; gap:8px;
  cursor:pointer; transition:background .2s;
}
.gallery-count:hover{ background:var(--ink); }
@media (max-width:820px){
  .gallery{ grid-template-columns:1fr; height:auto; }
  .gallery .g-main{ aspect-ratio:4/3; }
  .gallery .g-side{ grid-template-columns:1fr 1fr; grid-template-rows:1fr; height:180px; }
  .gallery.gallery-pair .g-side{ grid-template-columns:1fr; }
  .gallery-count{ right:16px; bottom:16px; padding:7px 12px; }
}

/* Lightbox */
.lightbox{
  position:fixed; inset:0; background:rgba(10,14,22,.96); z-index:300;
  display:none; align-items:center; justify-content:center; padding:40px;
}
.lightbox.open{ display:flex; }
.lightbox img{ max-width:92vw; max-height:82vh; object-fit:contain; border-radius:4px; }
.lightbox-close{
  position:absolute; top:20px; right:24px; background:none; border:0; color:var(--paper);
  font-size:2rem; line-height:1; cursor:pointer; opacity:.85;
}
.lightbox-close:hover{ opacity:1; }
.lightbox-nav{
  position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.1); border:1px solid var(--line-dark);
  color:var(--paper); width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:1.2rem; cursor:pointer; transition:background .2s;
}
.lightbox-nav:hover{ background:rgba(255,255,255,.2); }
.lightbox-prev{ left:20px; }
.lightbox-next{ right:20px; }
.lightbox-count{
  position:absolute; bottom:26px; left:50%; transform:translateX(-50%); color:rgba(255,255,255,.75); font-size:.86rem;
}
@media (max-width:600px){
  .lightbox{ padding:16px; }
  .lightbox-nav{ width:38px; height:38px; }
  .lightbox-prev{ left:8px; } .lightbox-next{ right:8px; }
}

.detail-layout{ display:grid; grid-template-columns:1.6fr .9fr; gap:64px; align-items:start; margin-top:48px; }
.detail-title-row{ display:flex; justify-content:space-between; align-items:flex-start; gap:24px; flex-wrap:wrap; padding-bottom:28px; border-bottom:1px solid var(--line); }
.detail-title-row h1{ font-size:var(--step-3); color:var(--ink); max-width:22ch; }
.detail-price{ font-family:var(--serif); font-size:1.7rem; color:var(--ink); white-space:nowrap; }
.spec-tiles{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; padding:28px 0; border-bottom:1px solid var(--line); }
.spec-tile{
  background:var(--paper-2); border-radius:16px;
  padding:22px 20px; display:flex; flex-direction:column; gap:14px;
}
.spec-tile-icon{ color:var(--clay); }
.spec-tile-icon svg{ width:26px; height:26px; }
.spec-tile-value{ font-family:var(--sans); font-weight:700; font-size:1.05rem; color:var(--ink); line-height:1.3; }
@media (max-width:560px){ .spec-tiles{ grid-template-columns:1fr 1fr; gap:10px; } .spec-tile{ padding:18px 16px; } }

.specs-list{ margin-top:14px; }
.specs-row{ display:flex; justify-content:space-between; align-items:center; padding:15px 0; border-bottom:1px solid var(--line); }
.specs-row:last-child{ border-bottom:0; }
.specs-label{ display:flex; align-items:center; gap:9px; font-size:.9rem; color:var(--charcoal-60); }
.specs-row-icon{ color:var(--clay); display:flex; }
.specs-value{ font-weight:600; color:var(--ink); font-size:.92rem; }
.block{ padding:32px 0; border-bottom:1px solid var(--line); }
.block h3{ font-size:1.3rem; margin-bottom:16px; }
.block p{ color:var(--charcoal-60); line-height:1.8; overflow-wrap:break-word; word-break:break-word; }
.feature-list{ display:grid; grid-template-columns:1fr 1fr; gap:14px; list-style:none; padding:0; margin:0; }
.feature-list li{ display:flex; align-items:center; gap:10px; font-size:.92rem; color:var(--charcoal); }
.feature-list li::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--clay); flex:none; }

.enquiry-box{ position:relative; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-l); box-shadow:var(--shadow-2); padding:28px; }
.enquiry-box .price{ font-family:var(--serif); font-size:1.8rem; color:var(--ink); }
.enquiry-box .price-sub{ font-size:.82rem; color:var(--charcoal-60); margin-top:4px; }
.enquiry-box .btn{ margin-top:12px; }
.enquiry-agent{ display:flex; gap:14px; align-items:center; margin-top:24px; padding-top:24px; border-top:1px solid var(--line); }
.enquiry-agent img{ width:46px; height:46px; border-radius:50%; object-fit:cover; border:2px solid var(--brand-orange); box-shadow:0 0 0 3px rgba(255,117,4,.12); }
.enquiry-agent b{ display:block; font-size:.9rem; color:var(--ink); }
.enquiry-agent span{ font-size:.8rem; color:var(--charcoal-60); }
@media (max-width:980px){ .detail-layout{ grid-template-columns:1fr; } .enquiry-box{ position:static; } }

/* Similar page CTA banner */
.cta-band{ background:var(--ink); color:var(--paper); border-radius:var(--radius-m); padding:clamp(40px,6vw,72px); display:flex; justify-content:space-between; align-items:center; gap:32px; flex-wrap:wrap; }
.cta-band h2{ color:var(--paper); max-width:16ch; }
.cta-band p{ color:rgba(255,255,255,.7); margin-top:10px; max-width:40ch; }

/* Empty state */
.empty-state{ text-align:center; padding:64px 20px; color:var(--charcoal-60); }
