/* =====================================================================
   AVENTRIX REALTY — PROPERTY INTELLIGENCE CENTRE (Property Tools pages)
   Loaded only by the seven Property Tools pages (body.pt-page), after
   style.css and before css/site-fixes.css — the same order every other
   page-specific stylesheet uses.

   Replaces the earlier assets/style.css, which styled bare element
   selectors (header, nav, footer, body, h1, select, .hero, .card …)
   globally. Those rules restyled the shared site header, collided with
   the site's own .hero component and changed body typography. Every
   rule below is either scoped to body.pt-page or uses a pt- prefixed
   class, so nothing here can reach the shared header, footer or any
   other page.

   Visual language reused from the EMI Calculator (css/emi-calculator.css):
   white 12px-radius cards with a hairline border, the 38px icon tile with
   a gold top edge, the deep-green result header, palette #0F3B2E green /
   #D4AF37 gold / #111827 text, Montserrat (inherited from style.css).
   ===================================================================== */

/* ---------- Hero: the site's shared .list-hero + a per-page photo ---------- */
.pt-page .pt-hero{
    position:relative;
    overflow:hidden;
    background:none;
}
.pt-page .pt-hero::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(rgba(10,10,12,0.52), rgba(10,10,12,0.64));
}
.pt-page .pt-hero-media{
    position:absolute;
    inset:0;
    z-index:0;
    background:url("../images/properties-hero.jpg") center center/cover no-repeat;
}
.pt-page .pt-hero .container{
    position:relative;
    z-index:2;
}
.pt-page .pt-hero-media.is-valuation{ background-image:url("../images/valuation-bg.png"); }
.pt-page .pt-hero-media.is-checklists{ background-image:url("../images/faq-bg.jpg"); }
.pt-page .pt-hero-media.is-jv{ background-image:url("../images/jv-calculator-hero.jpg"); }
.pt-page .pt-hero-media.is-commercial{ background-image:url("../images/commercial-rental.jpg"); }
.pt-page .pt-hero-media.is-government{ background-image:url("../images/insight-3.jpg"); }
.pt-page .pt-hero-media.is-seller{ background-image:url("../images/list-property-banner.jpg"); }
.pt-page .pt-hero .pt-hero-note{
    font-size:13px;
    opacity:.85;
    margin-top:18px;
}

/* ---------- Breadcrumb ---------- */
.pt-breadcrumb{
    width:90%;
    max-width:1100px;
    margin:0 auto;
    padding:18px 0 0;
    font-size:13px;
    color:#6b7280;
}
.pt-breadcrumb ol{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px; }
.pt-breadcrumb li + li::before{ content:"/"; margin-right:6px; color:#c5c2b8; }
.pt-breadcrumb a{ font-size:inherit; color:#0F3B2E; text-decoration:underline; text-underline-offset:3px; }

/* ---------- Sections ---------- */
.pt-section{ padding:40px 0 56px; }
.pt-section + .pt-section{ padding-top:0; }
.pt-section.pt-alt{ background:#faf9f7; padding-top:48px; }
.pt-container{ width:90%; max-width:1100px; margin:0 auto; }

/* Desktop windows 769–1279px: keep the floating WhatsApp / Back-to-top
   buttons (56px at right:24px) clear of the content — same rule as the
   EMI calculator. */
@media (min-width:769px) and (max-width:1279px){
    html:not(.is-mobile) .pt-container{
        width:auto;
        max-width:calc(100vw - 2 * (24px + 56px + 12px));
    }
}

.pt-section-head{ margin:0 0 22px; }
.pt-section-head h2{
    font-family:'Montserrat',sans-serif;
    font-size:24px;
    font-weight:600;
    line-height:1.25;
    color:#0F3B2E;
    margin:0 0 6px;
}
.pt-section-head p{ margin:0; color:#4b5563; font-size:15px; line-height:1.65; max-width:820px; }
.pt-eyebrow{
    display:block;
    font-size:12px;
    letter-spacing:3px;
    text-transform:uppercase;
    color:#9a7b1f;
    font-weight:600;
    margin:0 0 8px;
}

/* ---------- Cards ---------- */
.pt-card{
    background:#ffffff;
    border:1px solid rgba(17,24,39,.08);
    border-radius:12px;
    padding:24px;
    min-width:0;
}
.pt-card-head{ display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.pt-card-head h2,
.pt-card-head h3{
    font-family:'Montserrat',sans-serif;
    font-size:19px;
    font-weight:700;
    color:#111827;
    margin:0;
    letter-spacing:.2px;
}
.pt-icon{
    width:38px;
    height:38px;
    flex:0 0 38px;
    border-radius:10px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:rgba(15,59,46,.07);
    color:#0F3B2E;
    font-size:16px;
    border-top:2px solid #D4AF37;
}

/* Link cards (hub, seller centre, JV guide) */
.pt-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(min(100%, 250px), 1fr));
    gap:18px;
}
.pt-grid-3{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
.pt-link-card{
    display:flex;
    flex-direction:column;
    gap:10px;
    height:100%;
    text-decoration:none;
    color:#111827;
    transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.pt-link-card h3{
    font-family:'Montserrat',sans-serif;
    font-size:17px;
    font-weight:700;
    line-height:1.35;
    margin:4px 0 0;
    color:#111827;
}
.pt-link-card p{ margin:0; font-size:14px; line-height:1.6; color:#4b5563; }
.pt-link-card .pt-link-cta{
    margin-top:auto;
    padding-top:6px;
    font-size:14px;
    font-weight:600;
    color:#0F3B2E;
}
.pt-link-card:hover{
    border-color:#0F3B2E;
    box-shadow:0 6px 18px rgba(15,59,46,.08);
    transform:translateY(-2px);
}
.pt-link-card:focus-visible{
    outline:2px solid #D4AF37;
    outline-offset:3px;
}
.pt-tag{
    display:inline-block;
    align-self:flex-start;
    font-size:11px;
    font-weight:600;
    letter-spacing:.6px;
    text-transform:uppercase;
    padding:3px 9px;
    border-radius:999px;
    background:#f3f1ea;
    color:#5b5340;
}
.pt-tag.is-ok{ background:#e8f3ec; color:#185c3c; }
.pt-tag.is-warn{ background:#fdf3dc; color:#7a5a07; }

/* ---------- Notices ---------- */
.pt-notice{
    display:flex;
    gap:12px;
    align-items:flex-start;
    margin:22px 0;
    padding:15px 18px;
    background:#fffaf0;
    border:1px solid #efe1b6;
    border-left:4px solid #D4AF37;
    border-radius:10px;
    font-size:14px;
    line-height:1.65;
    color:#374151;
}
.pt-notice > i{ color:#9a7b1f; margin-top:4px; }
.pt-notice p{ margin:0; }
.pt-notice p + p{ margin-top:8px; }
.pt-notice.is-info{ background:#f3f8f5; border-color:#d3e6da; border-left-color:#0F3B2E; }
.pt-notice.is-info > i{ color:#0F3B2E; }

/* ---------- Forms ---------- */
.pt-fields{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:16px 20px;
}
.pt-field{ display:flex; flex-direction:column; gap:6px; min-width:0; }
.pt-field.is-wide{ grid-column:1 / -1; }
.pt-field label,
.pt-field .pt-label{ font-size:14px; font-weight:600; color:#111827; }
.pt-field input:not([type="radio"]):not([type="checkbox"]),
.pt-field select{
    width:100%;
    min-height:46px;
    padding:10px 14px;
    border:1px solid rgba(17,24,39,.16);
    border-radius:10px;
    background:#f8f9fb;
    color:#111827;
    font-family:inherit;
    font-size:15px;
}
.pt-field input:not([type="radio"]):not([type="checkbox"]):focus,
.pt-field select:focus{
    outline:none;
    border-color:#0F3B2E;
    box-shadow:0 0 0 3px rgba(15,59,46,.15);
    background:#fff;
}
.pt-field input[aria-invalid="true"]{ border-color:#b42318; background:#fff6f5; }
.pt-hint{ font-size:12.5px; color:#6b7280; line-height:1.5; margin:0; }
.pt-error{ font-size:13px; color:#b42318; margin:0; }
.pt-error:empty{ display:none; }
.pt-inline{ display:flex; gap:10px; }
.pt-inline > *{ flex:1 1 0; min-width:0; }
.pt-inline > select{ flex:0 0 132px; }

.pt-choice{ display:flex; flex-wrap:wrap; gap:10px; }
.pt-choice label{
    display:flex;
    align-items:flex-start;
    gap:10px;
    flex:1 1 240px;
    padding:12px 14px;
    border:1px solid rgba(17,24,39,.14);
    border-radius:10px;
    background:#fff;
    font-size:14px;
    font-weight:600;
    color:#111827;
    cursor:pointer;
}
.pt-choice label small{ display:block; font-weight:500; color:#6b7280; margin-top:3px; line-height:1.45; }
.pt-choice input{ width:18px; height:18px; flex:0 0 18px; margin:2px 0 0; accent-color:#0F3B2E; }
.pt-choice label > span{ flex:1 1 auto; min-width:0; }
.pt-choice label:has(input:checked){ border-color:#0F3B2E; box-shadow:0 0 0 1px #0F3B2E inset; }
.pt-choice label:has(input:disabled){ opacity:.6; cursor:not-allowed; }

/* ---------- Buttons ---------- */
.pt-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:22px; }
.pt-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:46px;
    padding:11px 22px;
    border:1px solid #0F3B2E;
    border-radius:40px;
    background:#0F3B2E;
    color:#fff;
    font-family:'Montserrat',sans-serif;
    font-size:14px;
    font-weight:600;
    text-decoration:none;
    cursor:pointer;
    transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.pt-btn:hover{ background:#0b2c22; }
.pt-btn.is-outline{ background:#fff; color:#0F3B2E; }
.pt-btn.is-outline:hover{ background:#f3f8f5; }
.pt-btn.is-gold{ background:#D4AF37; border-color:#D4AF37; color:#1b1404; }
.pt-btn.is-gold:hover{ background:#c39f2c; }
.pt-btn:focus-visible{ outline:2px solid #D4AF37; outline-offset:3px; }

/* ---------- Two-column calculator layout ---------- */
.pt-calc{
    display:grid;
    grid-template-columns:minmax(0, 1.15fr) minmax(0, 1fr);
    gap:24px;
    align-items:start;
}

/* ---------- Results ---------- */
.pt-result{ padding:0; overflow:hidden; }
.pt-result-head{
    background:#0F3B2E;
    color:#fff;
    padding:22px 24px;
}
.pt-result-label{
    display:block;
    font-size:12px;
    letter-spacing:3px;
    text-transform:uppercase;
    color:#D4AF37;
    font-weight:600;
    margin-bottom:8px;
}
.pt-result-value{
    display:block;
    font-size:30px;
    font-weight:700;
    line-height:1.2;
    color:#fff;
    overflow-wrap:anywhere;
}
.pt-result-sub{ display:block; margin-top:8px; font-size:13px; color:rgba(255,255,255,.8); line-height:1.5; }
.pt-rows{ margin:0; padding:4px 24px 10px; }
.pt-row{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:14px;
    padding:14px 0;
    border-bottom:1px solid rgba(17,24,39,.06);
}
.pt-row:last-child{ border-bottom:0; }
.pt-row dt{ font-size:14px; font-weight:600; color:#111827; margin:0; }
.pt-row dt small{ display:block; font-size:12px; font-weight:500; color:#6b7280; margin-top:3px; line-height:1.45; }
.pt-row dd{ margin:0; font-size:16px; font-weight:700; color:#111827; text-align:right; overflow-wrap:anywhere; }
.pt-row dd.is-negative{ color:#b42318; }
.pt-result-foot{ padding:0 24px 20px; font-size:13px; color:#4b5563; line-height:1.6; }
.pt-result-foot p{ margin:0 0 8px; }

/* ---------- Rate table (valuation) ---------- */
.pt-table-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid rgba(17,24,39,.08); border-radius:10px; }
.pt-table{ width:100%; border-collapse:collapse; font-size:14px; min-width:560px; }
.pt-table th,
.pt-table td{ padding:11px 14px; text-align:left; border-bottom:1px solid rgba(17,24,39,.06); vertical-align:top; }
.pt-table th{ background:#f8f9fb; font-weight:600; color:#374151; font-size:13px; }
.pt-table tr:last-child td{ border-bottom:0; }
.pt-empty{ padding:18px; text-align:center; color:#6b7280; font-size:14px; }

/* ---------- Definition list (rate bases, formulas) ---------- */
.pt-deflist{ margin:0; display:grid; gap:14px; }
.pt-deflist > div{ padding:16px 18px; border:1px solid rgba(17,24,39,.08); border-radius:10px; background:#fff; }
.pt-deflist dt{ font-weight:700; color:#0F3B2E; margin:0 0 4px; font-size:15px; }
.pt-deflist dd{ margin:0; font-size:14px; line-height:1.65; color:#374151; }
.pt-formula{ font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size:13px; background:#f8f9fb; border-radius:6px; padding:2px 6px; color:#111827; overflow-wrap:anywhere; }

/* ---------- Lists ---------- */
.pt-list{ margin:0; padding-left:20px; color:#374151; font-size:15px; line-height:1.7; }
.pt-list li + li{ margin-top:6px; }

/* ---------- Checklist ---------- */
.pt-toolbar{
    display:flex;
    flex-wrap:wrap;
    align-items:flex-end;
    gap:12px;
    margin:0 0 18px;
}
.pt-toolbar .pt-field{ flex:1 1 260px; }
.pt-progress{ font-size:14px; color:#374151; margin:0 0 12px; }
.pt-progress-bar{
    height:8px;
    border-radius:8px;
    background:#eceae2;
    overflow:hidden;
    margin:0 0 18px;
}
.pt-progress-bar span{ display:block; height:100%; width:0; background:#0F3B2E; transition:width .25s ease; }
.pt-checklist h2{
    font-family:'Montserrat',sans-serif;
    font-size:19px;
    font-weight:700;
    color:#111827;
    margin:0 0 6px;
}
.pt-check-item{
    display:flex;
    gap:12px;
    align-items:flex-start;
    padding:13px 0;
    border-bottom:1px solid rgba(17,24,39,.06);
    font-size:15px;
    line-height:1.6;
    color:#374151;
    cursor:pointer;
}
.pt-check-item:last-child{ border-bottom:0; }
.pt-check-item input{
    width:20px;
    height:20px;
    flex:0 0 20px;
    margin-top:2px;
    accent-color:#0F3B2E;
}
.pt-check-item input:checked + span{ color:#6b7280; text-decoration:line-through; text-decoration-color:rgba(107,114,128,.5); }
.pt-print-only{ display:none; }

/* ---------- Responsive ---------- */
@media (max-width:1000px){
    html:not(.is-mobile) .pt-calc{ grid-template-columns:1fr; }
    html:not(.is-mobile) .pt-grid-3{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
html.is-mobile .pt-calc{ grid-template-columns:1fr; gap:18px; }
html.is-mobile .pt-grid-3{ grid-template-columns:1fr; }
@media (min-width:700px){
    html.is-mobile .pt-grid-3{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width:768px){
    .pt-calc{ grid-template-columns:1fr; gap:18px; }
    .pt-grid-3{ grid-template-columns:1fr; }
}
@media (max-width:600px){
    .pt-fields{ grid-template-columns:1fr; }
    .pt-section{ padding:28px 0 40px; }
    .pt-container,
    .pt-breadcrumb{ width:auto; margin:0 16px; }
    .pt-card{ padding:18px; }
    .pt-result-head{ padding:20px 18px; }
    .pt-rows{ padding:4px 18px 8px; }
    .pt-result-foot{ padding:0 18px 18px; }
    .pt-result-value{ font-size:26px; }
    .pt-row dd{ font-size:15px; }
    .pt-section-head h2{ font-size:21px; }
    .pt-actions .pt-btn{ flex:1 1 100%; }
    .pt-inline > select{ flex-basis:118px; }
}

/* ---------- Print (checklists, calculators) ---------- */
@media print{
    .pt-page .header,
    .pt-page .premium-footer,
    .pt-page .whatsapp-float,
    .pt-page .back-to-top,
    .pt-page .pt-hero,
    .pt-page .pt-breadcrumb,
    .pt-page .pt-toolbar,
    .pt-page .pt-actions,
    .pt-page .pt-no-print,
    .pt-page .menu-overlay,
    .pt-page .home-app-bottom-nav{ display:none !important; }
    .pt-page{ background:#fff; }
    .pt-page .pt-print-only{ display:block; }
    .pt-page .pt-section{ padding:0; }
    .pt-page .pt-container{ width:auto; max-width:none; margin:0; }
    .pt-page .pt-card{ border:0; padding:0; }
    .pt-page .pt-check-item{ break-inside:avoid; }
    .pt-page .pt-check-item input:checked + span{ text-decoration:none; color:#111827; }
}

/* [hidden] must win over the component display rules above
   (.pt-row / .pt-field are display:flex). */
.pt-page [hidden]{ display:none !important; }
.pt-page .pt-card.pt-result{ padding:0; }

/* ---------- Published-rate panel (valuation) ---------- */
.pt-published-panel{ margin-top:10px; }
.pt-published-panel p{ margin:0 0 6px; }
.pt-rate-card{
    padding:14px 16px;
    border:1px solid #d3e6da;
    border-left:4px solid #0F3B2E;
    border-radius:10px;
    background:#f3f8f5;
}
.pt-rate-figure{ font-size:18px; color:#0F3B2E; }
.pt-sources{ margin-top:6px; font-size:13px; color:#374151; }
.pt-sources summary{ cursor:pointer; font-weight:600; color:#0F3B2E; }
.pt-sources ul{ margin:8px 0 0; padding-left:18px; line-height:1.55; }
.pt-sources li + li{ margin-top:6px; }
.pt-sources a, .pt-table a{ color:#0F3B2E; text-decoration:underline; text-underline-offset:2px; }
