/* ==========================================================================
   Mynnt property portal — public pages (/properties/, /properties/<slug>, /properties/sell)
   Loaded AFTER /kinetic.css. Brand = real-estate.html: its :root override and its page-local
   p-* rules (copied below, they live in that page's inline <style>), plus the portal's own
   pp-* components (listing cards, filters, gallery, lightbox, key facts, enquiry aside).
   Property photos are shown as they are: no duotone (filter:none) — kinetic.css's .kx-photo
   treatment is for brand photography only.
   Mobile floors from kinetic.css hold: 11px tracked labels, 44px touch targets, nothing sideways.
   ========================================================================== */

:root{
  --ink:#2B2B2B; --ink-deep:#1C1B19; --paper:#F5F1E8;
  --accent:#B4894E; --accent-hi:#E8C784; --accent-lo:#7F5E32;
  --support:#23372E;
  --font-display:'Montserrat',system-ui,sans-serif;
  --font-body:'Inter',system-ui,sans-serif;
  --font-label:'Jost',system-ui,sans-serif;
  --font-accent:'Cormorant Garamond',Georgia,serif;
  --radius:2px; --ease:cubic-bezier(.2,.7,.2,1);
  --pp-card:#FCFAF5;
  --pp-ok:#2F5A45;
  --pp-ok-hi:#BFD8C8;
  --pp-err:#F2B8A2;
  --pp-err-lo:#9C3D22;
}
/* scroll-padding: anchors land below the fixed header, and keyboard focus is scrolled clear of the floating
   WhatsApp button (bottom 80px) and, up to 1000px, the listing page's action dock (D4, WCAG 2.4.11) */
html{scroll-behavior:smooth;scroll-padding-top:84px;scroll-padding-bottom:80px}
@media (max-width:1000px){html{scroll-padding-bottom:96px}}
@media (max-width:700px){html{scroll-padding-top:112px}}   /* the header has two rows here (D15: 44px links) */
body.pp{background:var(--ink-deep)}

/* D2: kinetic's header scrim fades to nothing, which is fine over the hero photo but leaves the links
   unreadable over the paper sections (the listings, the key facts). Once the page has scrolled (pp.js sets
   html.pp-scrolled) — or without JavaScript at all — the header gets a solid ink ground. */
body.pp .kx-nav::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:rgba(28,27,25,.94);opacity:0;transition:opacity .35s ease;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
}
html.pp-scrolled body.pp .kx-nav::before,html:not(.kx-js) body.pp .kx-nav::before{opacity:1}
@media (max-width:700px){body.pp .kx-nav__links a{min-height:44px}}   /* D15: 44px tap targets (kinetic has 38px here) */

/* ------------------------------------------------------------------ utilities */
.pp-vh{position:absolute !important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;margin:-1px;padding:0;border:0}
.pp-skip{
  position:fixed;left:12px;top:-80px;z-index:500;
  background:var(--accent);color:var(--ink-deep);padding:12px 18px;border-radius:var(--radius);
  font-family:var(--font-label);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;
}
.pp-skip:focus{top:12px}
html.kx-js .pp-nojs{display:none}
.pp-link{
  color:var(--kx-on-accent);text-decoration:underline;text-underline-offset:.22em;text-decoration-thickness:1px;
  transition:color .25s ease;
}
.pp-link:hover{color:var(--kx-on-solid)}
.kx-on-paper a:focus-visible,.kx-on-paper button:focus-visible,.kx-on-paper summary:focus-visible,
.kx-on-paper input:focus-visible,.kx-on-paper select:focus-visible{outline-color:var(--accent-lo)}
img{filter:none}

/* ------------------------------------------------------------------ real-estate.html page rules (copied) */
.p-h2{font-size:clamp(1.9rem,5.6vw,4.2rem)}
.p-head{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;
  gap:14px clamp(18px,3vw,40px);
  margin-bottom:clamp(26px,4.5vw,56px);
}
.p-two{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(26px,5vw,76px);align-items:start;
}
@media (max-width:920px){.p-two{grid-template-columns:minmax(0,1fr)}}
.p-copy{color:var(--kx-on-body);max-width:56ch}
.p-copy p + p{margin-top:1.1em}

.p-steps{display:grid;gap:0;list-style:none;margin:0;padding:0}
.p-steps > li{
  border-top:1px solid var(--kx-rule);
  padding:clamp(13px,1.8vw,20px) 0;
  display:grid;grid-template-columns:auto minmax(0,1fr);
  column-gap:clamp(14px,2vw,24px);row-gap:6px;align-items:baseline;
}
.p-steps .kx-label{grid-column:2}
.p-steps .p-d{grid-column:2;margin:0;color:var(--kx-on-body);font-size:clamp(14px,1vw,17px);line-height:1.66}
.p-steps .p-n{
  grid-row:1 / span 2;
  font-family:var(--font-accent);font-style:italic;
  font-size:clamp(22px,2.4vw,32px);line-height:1;color:var(--accent-hi);
}

.p-frame{
  aspect-ratio:4/5;border:1px solid var(--kx-rule-ink);border-radius:var(--radius);
  overflow:hidden;max-width:300px;
}
.p-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 22%;display:block}

.p-reach{display:grid;gap:0;border-top:1px solid var(--kx-rule)}
.p-reach > div{
  border-bottom:1px solid var(--kx-rule);
  padding:clamp(14px,2vw,20px) 0;display:grid;gap:7px;
}
.p-reach dt{margin:0}
.p-reach dd{margin:0;color:var(--kx-on-body);font-size:clamp(15px,1.05vw,17px);line-height:1.66}
.p-reach dd a{color:var(--paper);border-bottom:1px solid var(--kx-rule);
  display:inline-flex;align-items:center;min-height:44px}
.p-reach dd a:hover{color:var(--kx-on-accent);border-bottom-color:var(--accent)}
.p-reach dd .plain{display:block;min-height:0}

.p-form{margin-top:clamp(18px,2.5vw,28px)}
.p-form fieldset{border:0;margin:0;padding:0;min-width:0}
.p-form legend{padding:0}
.p-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));
  gap:clamp(14px,2vw,22px);
}
.p-field{display:flex;flex-direction:column;gap:8px;margin:0;min-width:0}
.p-field--wide{grid-column:1/-1}
.p-field > label > span{color:var(--kx-on-accent)}
.p-form input,.p-form select,.p-form textarea{
  font-family:var(--font-body);font-weight:500;font-size:16px;line-height:1.4;
  color:var(--paper);background:var(--ink-deep);
  border:1px solid var(--kx-rule);border-radius:var(--radius);
  padding:14px 15px;min-height:52px;width:100%;
  transition:border-color .3s ease;
  -webkit-appearance:none;appearance:none;
}
.p-form select{
  padding-right:42px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23E8C784' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;background-size:12px 8px;
}
.p-form select option,.p-form select optgroup{background:var(--ink-deep);color:var(--paper)}
.p-form textarea{min-height:118px;resize:vertical}
.p-form input:hover,.p-form select:hover,.p-form textarea:hover{border-color:var(--accent)}
.p-form input:focus,.p-form select:focus,.p-form textarea:focus{border-color:var(--accent-hi);outline:none}
.p-form input:focus-visible,.p-form select:focus-visible,.p-form textarea:focus-visible{
  outline:2px solid var(--accent-hi);outline-offset:3px;
}
.p-form ::placeholder{color:var(--kx-paper-dim);opacity:1}
.p-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}

.p-consent{
  grid-column:1/-1;display:flex;align-items:flex-start;gap:14px;margin:0;
  padding:clamp(13px,1.8vw,18px) 0;
}
.p-consent input[type=checkbox]{
  width:24px;height:24px;flex:none;margin:0;accent-color:var(--accent);cursor:pointer;
  min-height:0;padding:0;align-self:center;
}
.p-consent label{
  flex:1;cursor:pointer;color:var(--kx-on-body);
  font-size:clamp(14px,1vw,15.5px);line-height:1.66;
  display:flex;align-items:center;min-height:44px;
}
/* D3: an ordinary inline link (display:contents made it unfocusable); the label text sits in one <span>, so the
   flex label does not collapse the spaces around it */
.p-consent label a{color:var(--kx-on-accent);text-decoration:underline;text-underline-offset:.22em}
.p-consent label a:hover{color:var(--paper)}
.p-consent label a:focus-visible{outline:2px solid var(--accent-hi);outline-offset:2px;border-radius:1px}

.p-hint{color:var(--kx-paper-dim);font-size:clamp(13px,.95vw,15px);line-height:1.6}
.p-actions{
  display:flex;flex-wrap:wrap;gap:clamp(12px,2vw,20px);align-items:center;
  margin-top:clamp(20px,3vw,32px);
}
.p-status{
  margin-top:18px;padding:14px 17px;
  border:1px solid rgba(232,199,132,.4);border-radius:var(--radius);
  background:rgba(232,199,132,.1);color:var(--kx-on-accent);
  font-size:clamp(14px,1vw,16px);line-height:1.66;font-weight:400;max-width:64ch;
}
.p-status:empty{margin:0;padding:0;border:0}
.p-status a{color:var(--paper);text-decoration:underline;text-underline-offset:.22em}
.p-status.is-err{border-color:rgba(242,184,162,.55);background:rgba(242,184,162,.1);color:var(--pp-err)}

.p-close{text-align:center;display:grid;justify-items:center}
.p-close .kx-lead{max-width:52ch;color:var(--kx-on-body);margin-top:clamp(20px,3vw,32px)}
.p-close .p-actions{justify-content:center}

/* ------------------------------------------------------------------ hero (shorter than the site's) */
.pp-hero{min-height:0;padding-top:clamp(124px,17vh,190px);padding-bottom:clamp(44px,7vh,80px)}
.pp-hero .kx-mask{font-size:clamp(2.5rem,7.8vw,7.6rem)}
.pp-hero .kx-hero__kick{flex-wrap:wrap}
.pp-hero__go{
  display:inline-flex;align-items:center;gap:12px;white-space:nowrap;min-height:44px;
  color:var(--kx-on-accent);transition:color .3s ease;
}
.pp-hero__go:hover{color:var(--paper)}
.pp-line{display:block;width:56px;height:1px;background:var(--kx-rule);position:relative;overflow:hidden;flex:none}
.pp-line::after{
  content:"";position:absolute;inset:0;background:var(--accent-hi);transform:translateX(-100%);
  animation:kx-swipe 2.5s cubic-bezier(.7,0,.3,1) infinite;
}

/* ------------------------------------------------------------------ the listings section */
.pp-list .p-head{margin-bottom:clamp(20px,3vw,34px)}
.pp-h2-where{
  display:block;margin-top:.18em;
  font-family:var(--font-accent);font-style:italic;font-weight:400;text-transform:none;
  letter-spacing:0;font-size:.5em;line-height:1.1;color:var(--kx-on-accent);
}

/* browse chips */
.pp-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 clamp(18px,2.4vw,26px)}
.pp-chip{
  gap:9px;color:var(--ink);border-color:var(--kx-rule-firm);background:transparent;
  transition:background-color .3s ease,color .3s ease,border-color .3s ease;white-space:nowrap;
}
.pp-chip:hover{border-color:var(--accent-lo);color:var(--accent-lo)}
.pp-chip.is-on{background:var(--ink-deep);border-color:var(--ink-deep);color:var(--paper)}
.pp-chip__n{font-family:var(--font-body);font-weight:500;letter-spacing:0;font-size:12px;opacity:.72}
@media (max-width:700px){
  .pp-chips{
    flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
    margin-right:calc(-1 * var(--kx-gut));padding-right:var(--kx-gut);
  }
  .pp-chips::-webkit-scrollbar{display:none}
  .pp-chip{flex:0 0 auto}
}

/* the filter form (paper ground), folded away on a phone (pp.js closes it there when no filter is in use) */
.pp-fbox__s{display:none}
@media (max-width:700px){
  .pp-fbox__s{
    display:flex;align-items:center;gap:12px;min-height:52px;padding:0 16px;cursor:pointer;list-style:none;
    border:1px solid var(--kx-rule-firm);border-radius:var(--radius);background:var(--pp-card);
    font-family:var(--font-label);font-weight:500;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-deep);
  }
  .pp-fbox__s::-webkit-details-marker{display:none}
  .pp-fbox[open] .pp-fbox__s{border-bottom-color:transparent;border-radius:var(--radius) var(--radius) 0 0}
  .pp-fbox[open] .pp-filter{border-top:0;border-radius:0 0 var(--radius) var(--radius)}
  .pp-fbox__n{padding:4px 8px;background:var(--ink-deep);color:var(--paper);border-radius:var(--radius);letter-spacing:.1em}
  .pp-fbox__x{position:relative;width:14px;height:14px;margin-left:auto;flex:none}
  .pp-fbox__x::before,.pp-fbox__x::after{content:"";position:absolute;left:0;right:0;top:50%;height:1.5px;margin-top:-.75px;background:var(--accent-lo);transition:transform .3s var(--ease)}
  .pp-fbox__x::after{transform:rotate(90deg)}
  .pp-fbox[open] .pp-fbox__x::after{transform:rotate(0)}
}
.pp-filter{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:16px 16px;align-items:end;
  padding:clamp(16px,2vw,24px);background:var(--pp-card);
  border:1px solid var(--kx-rule-ink);border-radius:var(--radius);
}
.pp-filter .pp-seg{grid-column:1/-1}
.pp-f{display:flex;flex-direction:column;gap:8px;margin:0;min-width:0}
.pp-filter__go{display:flex;align-items:center;gap:18px;margin:0}
.pp-filter__clear{display:inline-flex;align-items:center;min-height:44px;font-size:14px;white-space:nowrap}
.pp-filter select,.pp-filter input,.pp-sort select{
  font-family:var(--font-body);font-weight:400;font-size:15px;line-height:1.3;
  color:var(--ink-deep);background-color:#fff;
  border:1px solid rgba(43,43,43,.32);border-radius:var(--radius);
  min-height:48px;padding:11px 13px;width:100%;
  -webkit-appearance:none;appearance:none;transition:border-color .25s ease;
}
.pp-filter select,.pp-sort select{
  padding-right:38px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%237F5E32' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:12px 8px;
}
.pp-filter select:hover,.pp-filter input:hover,.pp-sort select:hover{border-color:var(--accent-lo)}
.pp-filter select:focus,.pp-filter input:focus,.pp-sort select:focus{border-color:var(--accent-lo);outline:2px solid var(--accent-lo);outline-offset:1px}
.pp-filter ::placeholder{color:rgba(43,43,43,.7);opacity:1}   /* D19: about 5:1 on white */
.pp-btn-solid{background:var(--ink-deep);border-color:var(--ink-deep);color:var(--paper);white-space:nowrap}
.pp-btn-solid:hover{background:var(--accent);border-color:var(--accent);color:var(--ink-deep)}
.kx-on-paper .pp-btn-solid{border-color:var(--ink-deep)}
@media (max-width:1100px){
  .pp-filter{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pp-filter__go{grid-column:1/-1}
}
@media (max-width:560px){
  .pp-filter{grid-template-columns:minmax(0,1fr)}
  .pp-filter__go{flex-direction:column;align-items:stretch;gap:4px}
  .pp-filter__clear{justify-content:center}
}

/* segmented radio control (deal) */
.pp-seg{border:0;margin:0;padding:0;min-width:0}
.pp-seg legend{padding:0;margin-bottom:9px}
.pp-seg__opts{display:flex;flex-wrap:wrap;gap:6px}
.pp-seg__o{position:relative;display:inline-flex;cursor:pointer}
.pp-seg__o input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.pp-seg__o span{
  display:inline-flex;align-items:center;min-height:44px;padding:0 18px;
  border:1px solid var(--kx-rule-firm);border-radius:var(--radius);
  font-family:var(--font-label);font-weight:500;font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink);background:transparent;transition:background-color .25s ease,color .25s ease,border-color .25s ease;
}
.pp-seg__o:hover span{border-color:var(--accent-lo)}
.pp-seg__o input:checked + span{background:var(--ink-deep);border-color:var(--ink-deep);color:var(--paper)}
.pp-seg__o input:focus-visible + span{outline:2px solid var(--accent-lo);outline-offset:2px}
/* the same control on the dark ground (sell form) */
.pp-seg--ink .pp-seg__o span{border-color:var(--kx-rule);color:var(--kx-paper-soft)}
.pp-seg--ink .pp-seg__o:hover span{border-color:var(--accent)}
.pp-seg--ink .pp-seg__o input:checked + span{background:var(--accent);border-color:var(--accent);color:var(--ink-deep)}
.pp-seg--ink .pp-seg__o input:focus-visible + span{outline-color:var(--accent-hi)}
@media (max-width:560px){
  .pp-seg__opts{display:grid;grid-template-columns:1fr 1fr}
  .pp-seg__o span{width:100%;justify-content:center;padding:0 10px;text-align:center;letter-spacing:.12em}
  .pp-seg__o:last-child:nth-child(odd){grid-column:1/-1}   /* D17: an odd last option takes the whole row */
}

/* the line above the cards: count, filters in use, sort */
.pp-results-head{
  display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;
  margin:clamp(24px,3vw,36px) 0 clamp(18px,2.2vw,26px);
  padding-bottom:14px;border-bottom:1px solid var(--kx-rule-ink);
}
.pp-count{font-size:15px;color:var(--kx-ink-soft)}
.pp-count b{font-family:var(--font-display);font-weight:700;font-size:24px;letter-spacing:-.02em;color:var(--ink-deep);margin-right:4px}
.pp-count__of{white-space:nowrap}
.pp-tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0;flex:1 1 auto;min-width:0}
.pp-ftag{
  display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:0 13px;
  border:1px solid var(--kx-rule-firm);border-radius:var(--radius);
  font-size:14px;color:var(--ink);background:var(--pp-card);transition:border-color .25s ease,color .25s ease;
}
.pp-ftag span{font-size:18px;line-height:1;color:var(--accent-lo)}
.pp-ftag:hover{border-color:var(--accent-lo);color:var(--accent-lo)}
.pp-sort{display:flex;align-items:center;gap:12px;margin:0 0 0 auto}
.pp-sort select{width:auto;min-width:200px}
.pp-sort__go{min-height:44px;padding:0 16px;border:1px solid var(--ink-deep);background:var(--ink-deep);color:var(--paper);font-family:var(--font-label);letter-spacing:.16em;text-transform:uppercase;font-size:12px;cursor:pointer;border-radius:var(--radius)}
@media (max-width:640px){
  .pp-sort{margin-left:0;width:100%}
  .pp-sort select{flex:1;min-width:0}
}

/* ------------------------------------------------------------------ listing cards */
.pp-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));
  gap:clamp(18px,2.4vw,32px);
}
.pp-card{
  position:relative;display:flex;flex-direction:column;min-width:0;
  background:var(--pp-card);border:1px solid var(--kx-rule-ink);border-radius:var(--radius);
  overflow:hidden;color:var(--ink);
  transition:border-color .35s ease,box-shadow .45s var(--ease),transform .45s var(--ease);
}
html.kx-js .pp-card[data-reveal].kx-in{transition:opacity .85s var(--ease),transform .85s var(--ease),border-color .35s ease,box-shadow .45s var(--ease)}
.pp-card__media{position:relative;aspect-ratio:4/3;background:#24221F;overflow:hidden}
.pp-card__media img{width:100%;height:100%;object-fit:cover;filter:none;transition:transform .9s var(--ease)}
@media (hover:hover){
  .pp-card:hover{border-color:var(--accent);box-shadow:0 22px 44px -22px rgba(28,27,25,.42)}
  .pp-card:hover .pp-card__media img{transform:scale(1.045)}
  .pp-card:hover .pp-card__title a{color:var(--accent-lo)}
}
.pp-card:focus-within{border-color:var(--accent-lo)}
.pp-badges{position:absolute;top:12px;left:12px;right:12px;display:flex;flex-wrap:wrap;gap:6px;z-index:2;pointer-events:none}
.pp-badge{
  font-family:var(--font-label);font-weight:500;font-size:11px;line-height:1;letter-spacing:.16em;text-transform:uppercase;
  padding:7px 9px;border-radius:var(--radius);background:rgba(28,27,25,.84);color:var(--paper);
}
.pp-badge--accent{background:var(--accent);color:var(--ink-deep)}
.pp-badge--line{background:rgba(28,27,25,.45);box-shadow:inset 0 0 0 1px rgba(245,241,232,.55)}
.pp-card__count{
  position:absolute;right:12px;bottom:12px;z-index:2;pointer-events:none;
  font-family:var(--font-label);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  padding:6px 9px;border-radius:var(--radius);background:rgba(28,27,25,.72);color:var(--paper);
}
.pp-card__body{display:flex;flex-direction:column;gap:9px;padding:18px 18px 16px;flex:1 1 auto}
.pp-card__price{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.pp-price{font-family:var(--font-display);font-weight:700;font-size:clamp(20px,1.6vw,24px);letter-spacing:-.025em;line-height:1.1;color:var(--ink-deep)}
/* D10: "₹3.2 Lakh" and its "a month" never break apart; the unit is set small, as a label */
.pp-amt,.pp-unit{white-space:nowrap}
.pp-unit{font-family:var(--font-label);font-weight:500;font-size:11px;letter-spacing:.14em;text-transform:uppercase;line-height:1.2}
.pp-price .pp-unit{color:var(--kx-ink-soft)}
.pp-ppu{font-size:13.5px;color:var(--kx-ink-soft);font-weight:400}
.pp-card__title{font-family:var(--font-body);font-weight:500;font-size:16.5px;line-height:1.38;letter-spacing:-.005em;margin:0}
.pp-card__title a{color:var(--ink-deep);transition:color .3s ease}
.pp-card__title a::after{content:"";position:absolute;inset:0;z-index:1}
.pp-card__title a:focus-visible{outline:none}
.pp-card__title a:focus-visible::after{outline:2px solid var(--accent-lo);outline-offset:-3px}
.pp-card__place{
  font-family:var(--font-label);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-lo);line-height:1.45;
}
/* D11: every fact carries its dot in front (23px: 9 + 4 + 10); the list starts 23px to the left and is clipped
   there, so the dot of whichever fact begins a line is never seen — no stray dot at the start of a wrapped line */
.pp-card__facts{
  display:flex;flex-wrap:wrap;align-items:center;list-style:none;margin:2px 0 0 -23px;padding:0;
  font-size:14px;line-height:1.6;color:var(--kx-ink-soft);clip-path:inset(0 0 0 23px);
}
.pp-card__facts li::before{
  content:"";display:inline-block;width:4px;height:4px;border-radius:50%;
  background:var(--accent);margin:0 10px 0 9px;vertical-align:middle;
}
.pp-card__foot{
  display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:flex-end;gap:10px;
  margin-top:auto;padding-top:13px;border-top:1px solid var(--kx-rule-ink);
}
.pp-card__tags{display:flex;flex-wrap:wrap;gap:6px;flex:1 1 auto;min-width:0}
.pp-card__ref{flex:none;white-space:nowrap;padding-bottom:6px;font-family:var(--font-label);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--kx-ink-soft)}

/* small tags: type, deal, "Papers checked" */
.pp-tag{
  display:inline-flex;align-items:center;gap:7px;min-height:28px;padding:4px 10px;
  border:1px solid var(--kx-rule-ink);border-radius:var(--radius);
  font-family:var(--font-label);font-weight:500;font-size:11px;line-height:1.2;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink);background:transparent;
}
.pp-tag--ok{border-color:rgba(47,90,69,.45);color:var(--pp-ok);background:rgba(47,90,69,.07)}
.pp-tag--ok::before{
  content:"";width:9px;height:5px;border-left:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(-45deg) translate(1px,-1px);flex:none;
}
.pp-tag--ink{border-color:var(--kx-rule);color:var(--kx-on-accent)}
.pp-tag--ink.pp-tag--ok{border-color:rgba(191,216,200,.42);color:var(--pp-ok-hi);background:rgba(47,90,69,.35)}
.pp-tag--link{position:relative;transition:border-color .25s ease,color .25s ease}
.pp-tag--link::after{content:"";position:absolute;left:-2px;right:-2px;top:-9px;bottom:-9px}   /* a 44px target */
.pp-tag--link:hover{border-color:var(--accent);color:var(--paper)}

/* nothing found */
.pp-empty{
  padding:clamp(28px,4vw,52px);border:1px solid var(--kx-rule-ink);border-radius:var(--radius);
  background:var(--pp-card);display:grid;gap:12px;justify-items:start;max-width:880px;
}
.pp-empty__t{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:-.02em;font-size:clamp(1.3rem,2.4vw,2rem);line-height:1.05;color:var(--ink-deep)}
.pp-empty__d{color:var(--kx-ink-soft);max-width:60ch;line-height:1.7}
.pp-empty .p-actions{margin-top:10px}

/* pagination */
.pp-pages{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center;margin-top:clamp(30px,4vw,52px)}
.pp-pages__n,.pp-pages__step{
  display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 14px;
  border:1px solid var(--kx-rule-firm);border-radius:var(--radius);color:var(--ink);
  font-family:var(--font-label);font-size:13px;letter-spacing:.1em;transition:border-color .25s ease,color .25s ease;
}
.pp-pages__step{letter-spacing:.18em;text-transform:uppercase;font-size:12px}
a.pp-pages__n:hover,.pp-pages__step:hover{border-color:var(--accent-lo);color:var(--accent-lo)}
.pp-pages__n.is-on{background:var(--ink-deep);border-color:var(--ink-deep);color:var(--paper)}
.pp-pages__gap{color:var(--kx-ink-soft);padding:0 4px}

/* ------------------------------------------------------------------ why buy through Mynnt */
.pp-points{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 clamp(20px,3vw,44px);
  list-style:none;margin:0;padding:0;
}
.pp-point{border-top:1px solid var(--kx-rule);padding:clamp(18px,2.4vw,28px) 0 0;display:grid;gap:12px;align-content:start}
.pp-point__n{font-family:var(--font-accent);font-style:italic;font-size:clamp(28px,3vw,42px);line-height:1;color:var(--kx-on-accent)}
.pp-point__t{
  font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:-.02em;
  font-size:clamp(1.05rem,1.45vw,1.4rem);line-height:1.12;margin:0;color:var(--kx-on-solid);
}
.pp-point__d{color:var(--kx-on-body);line-height:1.68;font-size:clamp(14.5px,1vw,16.5px);max-width:42ch}
.pp-points--compact .pp-point__t{font-size:clamp(.98rem,1.2vw,1.18rem)}
.pp-points--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pp-points--2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:900px}
@media (max-width:1000px){.pp-points{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:clamp(26px,4vw,40px)}}
@media (max-width:560px){.pp-points{grid-template-columns:minmax(0,1fr);row-gap:22px}}
.pp-terms{
  margin-top:clamp(30px,4vw,52px);max-width:84ch;
  padding-left:18px;border-left:2px solid var(--accent);
  font-size:clamp(13.5px,.95vw,15px);line-height:1.7;color:var(--kx-on-body);
}
.pp-terms .kx-label{display:block;margin-bottom:6px}
.pp-why--compact{padding-top:clamp(52px,7vw,96px);padding-bottom:clamp(52px,7vw,96px)}
.pp-why--compact .p-head{align-items:center}
.pp-why--compact .p-h2{font-size:clamp(1.7rem,4vw,3.2rem)}

/* the sell band and the close */
.pp-sellband .p-two{align-items:end}
.pp-sellband .p-h2{font-size:clamp(1.8rem,3.7vw,3.1rem);margin-top:12px}
.pp-sellband .kx-lead{color:var(--ink-deep)}
.pp-close .p-close{padding:clamp(10px,2vw,24px) 0}

/* ------------------------------------------------------------------ the team */
.pp-team{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(30px,5vw,80px)}
.pp-person{display:grid;grid-template-columns:clamp(132px,15vw,212px) minmax(0,1fr);gap:clamp(18px,2.6vw,34px);align-items:start}
.pp-person__frame{border-color:var(--kx-rule);max-width:none}
.pp-person__name{
  font-family:var(--font-display);font-weight:var(--kx-display-weight);
  letter-spacing:var(--kx-display-track);text-transform:var(--kx-display-case);
  font-size:clamp(1.5rem,3vw,2.4rem);line-height:1;margin:10px 0 14px;color:var(--kx-on-solid);
}
.pp-person__bio{color:var(--kx-on-body);max-width:52ch;line-height:1.7}
.pp-person__bio + .pp-person__bio{margin-top:.9em}
.pp-person__lede{font-family:var(--font-accent);font-style:italic;font-size:clamp(19px,1.5vw,22px);line-height:1.4;color:var(--kx-on-accent)}
@media (max-width:960px){.pp-team{grid-template-columns:minmax(0,1fr)}}
@media (max-width:480px){.pp-person{grid-template-columns:104px minmax(0,1fr);gap:16px}}

/* ------------------------------------------------------------------ FAQ */
.pp-faq{display:grid;max-width:1000px;border-top:1px solid var(--kx-rule-firm)}
.pp-faq__i{border-bottom:1px solid var(--kx-rule-ink)}
.pp-faq__i summary{
  list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;
  min-height:44px;padding:clamp(16px,2vw,22px) 0;cursor:pointer;
  font-family:var(--font-display);font-weight:600;font-size:clamp(1.02rem,1.45vw,1.28rem);
  letter-spacing:-.01em;line-height:1.35;color:var(--kx-on-solid);transition:color .25s ease;
}
.pp-faq__i summary::-webkit-details-marker{display:none}
.pp-faq__i summary:hover{color:var(--kx-on-accent)}
.pp-faq__x{position:relative;width:16px;height:16px;flex:none}
.pp-faq__x::before,.pp-faq__x::after{content:"";position:absolute;left:0;right:0;top:50%;height:1.5px;margin-top:-.75px;background:var(--kx-on-accent);transition:transform .35s var(--ease)}
.pp-faq__x::after{transform:rotate(90deg)}
.pp-faq__i[open] .pp-faq__x::after{transform:rotate(0)}
.pp-faq__a{display:grid;gap:.9em;padding:0 0 clamp(18px,2.4vw,28px);max-width:74ch;color:var(--kx-on-body);line-height:1.72}

/* ------------------------------------------------------------------ enquiry section (index, 404) */
.pp-enq-h{margin-top:clamp(14px,2.4vw,24px)}
.pp-reach-intro{margin:clamp(14px,2vw,20px) 0 clamp(20px,3vw,30px)}
.pp-form__note{margin-top:16px;max-width:60ch}
.pp-form__note a{color:var(--kx-on-accent);text-decoration:underline;text-underline-offset:.22em}
.p-form [aria-invalid="true"]{border-color:var(--pp-err)}
.pp-err{color:var(--pp-err);font-size:13.5px;line-height:1.5}
.pp-done{display:grid;gap:12px;padding:clamp(20px,3vw,30px);border:1px solid rgba(232,199,132,.45);border-radius:var(--radius);background:rgba(232,199,132,.08);margin-top:clamp(18px,2.5vw,28px)}
.pp-done__t{font-family:var(--font-accent);font-style:italic;font-size:clamp(26px,2.6vw,34px);line-height:1.1;color:var(--kx-on-accent)}
.pp-done p:not(.pp-done__t){color:var(--kx-on-body);line-height:1.66}
.pp-done__ref{font-family:var(--font-label);letter-spacing:.12em;color:var(--paper)}
.pp-done__ref b{color:var(--accent-hi);font-weight:500}

/* ------------------------------------------------------------------ listing page: top band */
.pp-top{background:var(--ink-deep);padding:clamp(100px,13vh,132px) var(--kx-gut) clamp(30px,4vw,52px)}
/* D11: as with the card facts, each crumb carries its "/" in front (32px: 12 + 8 + 12) and the list starts 32px
   to the left, clipped by the nav — a wrapped line never begins with a "/". The nav's 4px padding keeps the
   focus ring of the first link visible. */
.pp-crumbs{overflow:hidden;padding:4px;margin:-4px}
.pp-crumbs ol{
  display:flex;flex-wrap:wrap;align-items:center;list-style:none;margin:0 0 clamp(12px,2vw,20px) -32px;padding:0;
  font-family:var(--font-label);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--kx-paper-dim);
}
.pp-crumbs li{display:inline-flex;align-items:center}
.pp-crumbs li::before{content:"/";display:inline-block;width:8px;margin:0 12px;text-align:center;letter-spacing:0;color:var(--accent)}
.pp-crumbs a{display:inline-flex;align-items:center;min-height:44px;color:var(--kx-on-accent);transition:color .25s ease}
.pp-crumbs a:hover{color:var(--paper)}
.pp-banner{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0 0 clamp(18px,2.6vw,28px);
  padding:14px 18px;border:1px solid var(--accent);border-radius:var(--radius);
  background:rgba(180,137,78,.13);color:var(--kx-paper-soft);line-height:1.6;
}
.pp-banner b{color:var(--accent-hi)}
.pp-banner--closed{border-color:var(--accent-hi);background:rgba(232,199,132,.16)}
.pp-banner .pp-link{margin-left:auto;display:inline-flex;align-items:center;min-height:44px}   /* D15 */
.pp-top__head{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px clamp(24px,4vw,64px);
  align-items:end;margin-bottom:clamp(22px,3vw,34px);
}
.pp-h1{margin:0;display:grid;gap:12px}
.pp-h1__kick{display:block;color:var(--kx-on-accent)}
.pp-h1__t{
  display:block;max-width:26ch;
  font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:-.03em;
  font-size:clamp(1.6rem,3.3vw,3.1rem);line-height:1.02;color:var(--paper);
}
/* D11: the same clipped leading dot (28px: 12 + 4 + 12) */
.pp-top__meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 0;margin:16px 0 0 -28px;color:var(--kx-paper-soft);font-size:15.5px;clip-path:inset(0 0 0 28px)}
.pp-top__meta span::before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--accent);margin:0 12px;vertical-align:middle}
.pp-top__tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:14px}
.pp-top__price{display:grid;gap:8px;justify-items:end;text-align:right;max-width:440px}
.pp-bigprice{font-family:var(--font-display);font-weight:700;letter-spacing:-.035em;font-size:clamp(2.1rem,4.2vw,3.7rem);line-height:1;color:var(--accent-hi)}
.pp-bigprice .pp-unit{display:inline-block;font-size:max(12px,.3em);letter-spacing:.16em;color:var(--kx-on-accent);vertical-align:.35em;margin-left:.15em}   /* D10 */
.pp-enq__price .pp-unit{color:var(--kx-on-accent);vertical-align:.2em}
.pp-top__ppu{color:var(--kx-paper-soft);font-size:15px}
.pp-top__brk{font-size:13.5px;line-height:1.6;color:var(--kx-paper-dim);max-width:44ch}
.pp-top__brk .kx-label{display:block;margin-bottom:2px}
@media (max-width:860px){
  .pp-top__head{grid-template-columns:minmax(0,1fr);align-items:start}
  .pp-top__price{justify-items:start;text-align:left;border-top:1px solid var(--kx-rule);padding-top:16px}
}

/* gallery: main photo + thumbs */
.pp-gallery{display:grid;gap:10px;min-width:0}
.pp-gallery__main{
  position:relative;display:block;aspect-ratio:16/9;max-height:76vh;width:100%;
  overflow:hidden;background:#141312;border-radius:var(--radius);cursor:zoom-in;
}
.pp-gallery__main img{width:100%;height:100%;object-fit:cover;filter:none;transition:transform 1.1s var(--ease),opacity .3s ease}
@media (hover:hover){.pp-gallery__main:hover img{transform:scale(1.02)}}
.pp-gallery__n,.pp-gallery__all{
  position:absolute;bottom:14px;z-index:2;pointer-events:none;
  font-family:var(--font-label);font-weight:500;font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  padding:10px 14px;border-radius:var(--radius);
}
.pp-gallery__n{left:14px;background:rgba(28,27,25,.78);color:var(--paper)}
.pp-gallery__all{right:14px;background:var(--paper);color:var(--ink-deep)}
.pp-thumbs{display:flex;gap:8px;list-style:none;margin:0;padding:2px 2px 6px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--accent) transparent}
.pp-thumbs li{flex:0 0 auto}
.pp-thumb{
  display:block;width:clamp(88px,9vw,128px);aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius);
  opacity:.58;box-shadow:0 0 0 1px transparent;transition:opacity .25s ease,box-shadow .25s ease;
}
.pp-thumb img{width:100%;height:100%;object-fit:cover;filter:none}
.pp-thumb:hover,.pp-thumb.is-on{opacity:1}
.pp-thumb.is-on{box-shadow:0 0 0 2px var(--accent)}
.pp-gallery--none .pp-gallery__img{width:100%;max-height:60vh;object-fit:cover}
@media (max-width:700px){
  .pp-gallery__main{aspect-ratio:4/3;width:auto;margin:0 calc(-1 * var(--kx-gut));border-radius:0}
  .pp-gallery__all{display:none}
  .pp-thumbs{margin-right:calc(-1 * var(--kx-gut));padding-right:var(--kx-gut)}
}

/* ------------------------------------------------------------------ listing page: details + aside */
.pp-detail{padding:clamp(36px,5vw,72px) var(--kx-gut) clamp(56px,7vw,100px)}
.pp-detail__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,410px);gap:clamp(30px,4.5vw,76px);align-items:start}
.pp-detail__main{min-width:0}
/* D6: the enquiry card is sticky only while all of it fits the window — it never scrolls inside itself, so its
   button is never hidden. pp.js measures the card and sets is-sticky / is-static; without it, short windows
   (860px or less) get a card that simply scrolls with the page. */
.pp-detail__aside{position:sticky;top:78px;min-width:0}
@media (max-height:860px){.pp-detail__aside{position:static}}
.pp-detail__aside.is-static{position:static}
.pp-detail__aside.is-sticky{position:sticky}
@media (max-width:1000px){
  .pp-detail__grid{grid-template-columns:minmax(0,1fr)}
  .pp-detail__aside,.pp-detail__aside.is-sticky{position:static}
}
.pp-block{padding:clamp(24px,3vw,36px) 0;border-top:1px solid var(--kx-rule-ink)}
.pp-block:first-child{border-top:0;padding-top:0}
.pp-h3{
  font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:-.02em;
  font-size:clamp(1.12rem,1.6vw,1.45rem);line-height:1.1;margin:0 0 18px;color:var(--ink-deep);
}
.pp-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(18px,2.4vw,34px);margin:0}
.pp-facts > div{border-top:1px solid var(--kx-rule-ink);padding:12px 0 14px;display:grid;gap:4px;align-content:start;min-width:0}
.pp-facts dt{font-family:var(--font-label);font-weight:500;font-size:11px;line-height:1.4;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-lo)}
.pp-facts dd{margin:0;font-weight:500;font-size:15.5px;line-height:1.45;color:var(--ink-deep);overflow-wrap:anywhere}
@media (max-width:1240px){.pp-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pp-about p{max-width:70ch;line-height:1.78;color:var(--kx-ink-soft);font-size:clamp(15.5px,1.05vw,17px)}
.pp-about p + p{margin-top:1em}
.pp-ticks{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.pp-ticks li{position:relative;padding-left:30px;line-height:1.6;color:var(--ink)}
.pp-ticks li::before{
  content:"";position:absolute;left:3px;top:.42em;width:12px;height:6px;
  border-left:2px solid var(--accent-lo);border-bottom:2px solid var(--accent-lo);transform:rotate(-45deg);
}
.pp-amen{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.pp-amen li{padding:9px 13px;border:1px solid var(--kx-rule-ink);border-radius:var(--radius);background:var(--pp-card);font-size:14.5px;line-height:1.3}
.pp-loc__place{font-family:var(--font-display);font-weight:600;font-size:clamp(1.05rem,1.4vw,1.25rem);color:var(--ink-deep)}
.pp-loc__note{margin-top:6px;font-family:var(--font-accent);font-style:italic;font-size:clamp(18px,1.4vw,21px);color:var(--accent-lo)}
.pp-near{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:8px}
.pp-near li{position:relative;padding-left:18px;color:var(--kx-ink-soft);line-height:1.6}
.pp-near li::before{content:"";position:absolute;left:2px;top:.68em;width:5px;height:5px;border-radius:50%;background:var(--accent)}
.pp-loc__links{display:flex;flex-wrap:wrap;gap:4px 26px;margin-top:14px}
.pp-loc__links .pp-link,.pp-small .pp-link{display:inline-flex;align-items:center;min-height:44px}
.pp-legal__status{padding:16px 18px;border-left:3px solid var(--kx-rule-firm);background:rgba(43,43,43,.04);display:grid;gap:5px}
.pp-legal__status p{line-height:1.66;color:var(--kx-ink-soft)}
.pp-legal__status .pp-legal__k{font-weight:600;color:var(--ink-deep)}
.pp-legal__status--vetted{border-left-color:var(--pp-ok);background:rgba(47,90,69,.07)}
.pp-legal__status--vetted .pp-legal__k{color:var(--pp-ok)}
.pp-legal__status--own_lawyer{border-left-color:var(--accent-lo);background:rgba(180,137,78,.09)}
.pp-legal__line{margin-top:12px;color:var(--kx-ink-soft);line-height:1.6}
.pp-legal__line--first{margin-top:0}
.pp-cover{margin-top:16px;padding:16px 18px;border:1px solid rgba(127,94,50,.32);border-radius:var(--radius);background:var(--pp-card);display:grid;gap:6px}
.pp-cover__k{font-family:var(--font-display);font-weight:600;color:var(--ink-deep)}
.pp-cover p:not(.pp-cover__k){font-size:14.5px;line-height:1.66;color:var(--kx-ink-soft)}
.pp-note{margin-top:10px;font-size:13.5px;color:var(--kx-ink-soft)}
.pp-small{margin-top:clamp(20px,3vw,30px);padding-top:18px;border-top:1px solid var(--kx-rule-ink);font-size:13.5px;line-height:1.65;color:var(--kx-ink-soft);max-width:76ch}

/* the enquiry card (dark, on the paper ground) */
.pp-enq{
  background:var(--ink-deep);color:var(--paper);
  border:1px solid rgba(180,137,78,.38);border-radius:var(--radius);
  padding:clamp(18px,1.8vw,24px);box-shadow:0 34px 60px -36px rgba(28,27,25,.6);
}
/* D6: spacing kept tight so the whole card fits a 1440×900 window and can stay in view (pp.js asideFit) */
.pp-enq__ref{color:var(--kx-on-accent)}
.pp-enq__t{
  font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:-.025em;
  font-size:clamp(1.35rem,1.9vw,1.75rem);line-height:1.02;margin:8px 0 4px;color:var(--paper);
}
.pp-enq__price{font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:-.02em;color:var(--accent-hi)}
.pp-enq__lede{margin-top:12px;padding-top:12px;border-top:1px solid var(--kx-rule);font-size:14px;line-height:1.55;color:var(--kx-paper-soft)}
.pp-enq .p-form{margin-top:10px}
.pp-enq .p-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pp-enq .p-field--wide{grid-column:1/-1}
.pp-enq .p-form input,.pp-enq .p-form select,.pp-enq .p-form textarea{background-color:#24221F;min-height:46px;padding:11px 13px;font-size:15.5px}
.pp-enq .p-form select{padding-right:36px;background-position:right 13px center}
.pp-enq .p-form textarea{min-height:62px}
.pp-enq .p-field{gap:5px}
.pp-enq .p-actions{margin-top:14px}
.pp-enq .p-actions .kx-btn{width:100%;background:var(--accent);color:var(--ink-deep);border-color:var(--accent)}
.pp-enq .p-actions .kx-btn:hover{background:var(--accent-hi);border-color:var(--accent-hi)}
.pp-enq .pp-form__note{font-size:13px;margin-top:10px}
.pp-enq__direct{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.pp-enq__direct .kx-btn{width:100%;padding:10px 8px;letter-spacing:.14em;min-height:46px}
@media (max-width:420px){
  .pp-enq .p-grid{grid-template-columns:minmax(0,1fr)}
}

/* mobile action dock (listing page) */
.pp-dock{display:none}
@media (max-width:1000px){
  .pp-dock{
    position:fixed;left:0;right:0;bottom:0;z-index:330;
    display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:8px;
    padding:10px var(--kx-gut) calc(10px + env(safe-area-inset-bottom,0px));
    background:rgba(28,27,25,.96);border-top:1px solid var(--kx-rule);
    transition:transform .35s var(--ease);
  }
  .pp-dock.is-hidden{transform:translateY(115%)}
  .pp-dock__b{
    display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 8px;
    border:1px solid var(--kx-rule);border-radius:var(--radius);color:var(--paper);
    font-family:var(--font-label);font-weight:500;font-size:11px;letter-spacing:.14em;text-transform:uppercase;text-align:center;
  }
  .pp-dock__b--solid{background:var(--accent);border-color:var(--accent);color:var(--ink-deep)}
  body.pp-listing .kx-foot{padding-bottom:120px}
}
/* On a listing the aside and the dock carry WhatsApp with the ref already; the site's floating button
   would sit on top of the enquiry form, so it steps aside here. */
body.pp-listing .wa{display:none}

/* ------------------------------------------------------------------ the lightbox */
.pp-lb{
  position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;
  background:rgba(14,13,12,.97);color:var(--paper);overflow:hidden;
}
.pp-lb[open]{display:grid;grid-template-rows:auto minmax(0,1fr)}
.pp-lb::backdrop{background:rgba(14,13,12,.92)}
.pp-lb__top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px clamp(12px,2vw,24px)}
.pp-lb__n{font-family:var(--font-label);font-size:13px;letter-spacing:.18em;color:var(--accent-hi)}
.pp-lb__x{
  min-width:48px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;
  background:none;border:1px solid transparent;border-radius:var(--radius);color:var(--paper);font-size:32px;line-height:1;cursor:pointer;
}
.pp-lb__x:hover{border-color:var(--kx-rule);color:var(--accent-hi)}
.pp-lb__fig{
  margin:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;justify-items:center;align-items:center;gap:10px;
  padding:0 clamp(8px,7vw,104px) clamp(14px,3vh,30px);
}
.pp-lb__img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;filter:none;user-select:none;-webkit-user-drag:none;touch-action:pan-y pinch-zoom}
.pp-lb__cap{font-size:14px;color:var(--kx-paper-soft);text-align:center;min-height:1.4em}
.pp-lb__nav{
  position:absolute;top:50%;transform:translateY(-50%);
  width:52px;height:52px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid rgba(245,241,232,.3);border-radius:var(--radius);background:rgba(28,27,25,.62);
  color:var(--paper);font-size:22px;cursor:pointer;transition:background-color .25s ease,border-color .25s ease;
}
.pp-lb__nav:hover{background:var(--accent);border-color:var(--accent);color:var(--ink-deep)}
.pp-lb__nav--prev{left:clamp(8px,2vw,28px)}
.pp-lb__nav--next{right:clamp(8px,2vw,28px)}
.pp-lb button:focus-visible{outline:2px solid var(--accent-hi);outline-offset:3px}
html.pp-lb-open{overflow:hidden}
@media (max-width:700px){
  .pp-lb__fig{padding:0 0 76px}
  .pp-lb__nav{top:auto;bottom:16px;transform:none;width:56px;height:48px}
  .pp-lb__nav--prev{left:calc(50% - 64px)}
  .pp-lb__nav--next{right:calc(50% - 64px)}
}

/* ------------------------------------------------------------------ click-to-load YouTube (media-approach §6.2) */
.yt-lite{position:relative;display:block;width:100%;aspect-ratio:16/9;padding:0;border:0;background:#1C1B19;cursor:pointer;overflow:hidden;border-radius:var(--radius)}
.yt-lite--vertical{aspect-ratio:9/16;max-width:360px;margin-inline:auto}
.yt-lite img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:none}
.yt-lite__play{position:absolute;left:50%;top:50%;width:68px;height:48px;transform:translate(-50%,-50%);border-radius:14px;background:rgba(28,27,25,.85);transition:background .15s}
.yt-lite__play::before{content:"";position:absolute;left:27px;top:14px;border-style:solid;border-width:10px 0 10px 18px;border-color:transparent transparent transparent #fff}
.yt-lite:hover .yt-lite__play,.yt-lite:focus-visible .yt-lite__play{background:#B4894E}
.yt-lite iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ------------------------------------------------------------------ sell page */
.pp-hero--sell .kx-mask{font-size:clamp(2.6rem,9vw,8.4rem)}
.pp-sellform .p-form{margin-top:clamp(20px,2.8vw,30px)}
.pp-size__row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,10rem);gap:8px}
.pp-next{padding-top:clamp(0px,4vw,52px)}
.pp-next__steps{margin-top:clamp(14px,2vw,20px)}
.pp-assure{
  margin-top:clamp(24px,3.4vw,40px);padding:clamp(18px,2.4vw,26px);
  border:1px solid var(--kx-rule);border-radius:var(--radius);background:rgba(180,137,78,.08);display:grid;gap:8px;
}
.pp-assure__t{font-family:var(--font-accent);font-style:italic;font-size:clamp(22px,2vw,28px);line-height:1.2;color:var(--kx-on-accent)}
.pp-assure p:last-child{color:var(--kx-on-body);line-height:1.66}
.pp-why--paper .pp-terms{border-left-color:var(--accent-lo)}

/* ------------------------------------------------------------------ the 404 page */
.pp-404__top{padding-top:clamp(120px,18vh,180px)}
.pp-404__top .pp-h1{margin-top:14px}
.pp-404__lead{margin-top:clamp(16px,2.4vw,24px);max-width:56ch;color:var(--kx-on-body)}

/* ------------------------------------------------------------------ mobile floors (kinetic.css §20) */
@media (max-width:768px){
  .pp-badge,.pp-card__count,.pp-tag,.pp-card__place,.pp-card__ref,.pp-facts dt,.pp-crumbs ol,.pp-seg__o span,
  .pp-gallery__n,.pp-pages__step,.pp-dock__b{font-size:11px}
  .pp-card__body{padding:16px 16px 14px}
  .pp-h1__t{max-width:none}
  .pp-enq__direct .kx-btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
  .pp-line::after{animation:none}
  .pp-card,.pp-card__media img,.pp-gallery__main img,.pp-dock{transition:none}
  html{scroll-behavior:auto}
}
@media print{
  .kx-nav,.kx-progress,.pp-dock,.pp-enq form,.pp-filter,.pp-lb{display:none !important}
  body.pp,.pp-top{background:#fff;color:#000}
}
