/* Buy Propertee Theme — layout & component styles */

:root{
	--bpt-primary: #0f3d3e;
	--bpt-accent: #d4a437;
	--bpt-text: #232b2a;
	--bpt-muted: #6b7573;
	--bpt-bg-alt: #f6f7f5;
	--bpt-radius: 10px;
	--bpt-maxw: 1240px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ margin:0; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; color:var(--bpt-text); line-height:1.6; background:#fff; }
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }
h1,h2,h3,h4{ font-weight:800; line-height:1.25; margin:0 0 12px; }
.bpt-container{ max-width:var(--bpt-maxw); margin:0 auto; padding:0 20px; }
.bpt-section{ padding:56px 0; }
.bpt-alt-bg{ background:var(--bpt-bg-alt); }
.bpt-section-title{ font-size:30px; margin-bottom:8px; }
.bpt-section-subtitle{ color:var(--bpt-muted); margin-bottom:28px; }
.bpt-section-header-row{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:26px; gap:16px; flex-wrap:wrap; }

/* ---------------- Top bar ---------------- */
.bpt-topbar{ background:var(--bpt-primary); color:rgba(255,255,255,.85); font-size:13px; }
.bpt-topbar-inner{ display:flex; justify-content:space-between; align-items:center; padding:8px 20px; }
.bpt-topbar-left a{ margin-right:18px; text-decoration:none; color:inherit; }
.bpt-topbar-right a{ margin-left:12px; color:inherit; }
.bpt-topbar .bpt-nav-icon{ width:16px; height:16px; }
.bpt-topbar .bpt-nav-icon::before{ font-size:12px; }

/* ---------------- Header ---------------- */
.bpt-site-header{ background:#fff; border-bottom:1px solid #eee; position:relative; z-index:900; }
.bpt-site-header.bpt-header-stuck{ position:sticky; top:0; box-shadow:0 4px 16px rgba(0,0,0,.08); }
.bpt-header-inner{ display:flex; align-items:center; justify-content:space-between; padding:14px 20px; gap:20px; }
.bpt-header-logo a{ display:flex; flex-direction:column; text-decoration:none; }
.bpt-logo-text{ font-size:22px; font-weight:900; color:var(--bpt-primary); }
.bpt-logo-tagline{ font-size:11px; color:var(--bpt-muted); }
.bpt-header-menu{ flex:1; display:flex; justify-content:center; }
.bpt-primary-menu{ list-style:none; display:flex; gap:26px; margin:0; padding:0; }
.bpt-primary-menu a{ text-decoration:none; font-weight:700; font-size:14.5px; color:var(--bpt-text); }
.bpt-primary-menu a:hover{ color:var(--bpt-accent); }
.bpt-primary-menu li.menu-item-has-children{ position:relative; }
.bpt-primary-menu .sub-menu{ list-style:none; position:absolute; top:100%; left:0; background:#fff; padding:8px 0; min-width:200px; box-shadow:0 8px 24px rgba(0,0,0,.12); border-radius:8px; display:none; }
.bpt-primary-menu li.menu-item-has-children:hover .sub-menu{ display:block; }
.bpt-primary-menu .sub-menu a{ display:block; padding:9px 16px; }
.bpt-header-actions{ display:flex; align-items:center; gap:14px; }
.bpt-header-icon-btn{ background:none; border:none; cursor:pointer; width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; }
.bpt-header-icon-btn:hover{ background:var(--bpt-bg-alt); }
.bpt-account-guest-trigger{ width:auto; padding:0 12px; gap:6px; border-radius:20px; }
.bpt-account-guest-trigger:hover{ background:var(--bpt-bg-alt); }
.bpt-account-guest-label{ font-size:14px; font-weight:700; color:var(--bpt-text); }
.bpt-header-cta{ white-space:nowrap; }
.bpt-hamburger-toggle{ display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px; }
.bpt-hamburger-toggle span{ width:24px; height:2px; background:var(--bpt-primary); display:block; }

/* Breadcrumbs */
.bpt-breadcrumb-strip{ background:var(--bpt-bg-alt); padding:12px 0; font-size:13px; }
.bpt-breadcrumbs a{ text-decoration:none; color:var(--bpt-primary); font-weight:600; }
.bpt-breadcrumbs span{ color:var(--bpt-muted); margin:0 6px; }

/* ---------------- Hero ---------------- */
.bpt-hero{ position:relative; background:linear-gradient(135deg,var(--bpt-primary),#0a2b2c); background-size:cover; background-position:center; padding:90px 0 110px; color:#fff; }
.bpt-hero-overlay{ position:absolute; inset:0; background:rgba(10,30,30,.35); }
.bpt-hero-inner{ position:relative; text-align:center; }
.bpt-hero-title{ font-size:clamp(28px,4vw,46px); max-width:820px; margin:0 auto 16px; }
.bpt-hero-subtitle{ font-size:17px; opacity:.9; max-width:640px; margin:0 auto 34px; }
.bpt-hero-search{ max-width:1000px; margin:0 auto; text-align:left; }

.bpt-page-hero{ background:var(--bpt-primary); color:#fff; padding:46px 0; text-align:center; }
.bpt-page-hero h1{ margin:0; font-size:32px; }

/* ---------------- Why Choose ---------------- */
.bpt-why-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.bpt-why-item{ background:#fff; border-radius:var(--bpt-radius); padding:28px 20px; text-align:center; box-shadow:0 2px 12px rgba(0,0,0,.06); }
.bpt-why-icon{ display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:50%; background:var(--bpt-primary); color:#fff; font-size:22px; margin-bottom:14px; }
.bpt-why-item h3{ font-size:17px; margin-bottom:8px; }
.bpt-why-item p{ color:var(--bpt-muted); font-size:14px; margin:0; }

/* ---------------- CTA ---------------- */
.bpt-cta-section{ background:linear-gradient(135deg,var(--bpt-primary),#0a2b2c); color:#fff; padding:60px 0; text-align:center; }
.bpt-cta-inner h2{ font-size:28px; }
.bpt-cta-inner p{ opacity:.9; max-width:560px; margin:0 auto 24px; }

/* ---------------- Footer ---------------- */
.bpt-site-footer{ background:#0a2223; color:rgba(255,255,255,.8); }
.bpt-footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:34px; padding:56px 20px 36px; }
.bpt-footer-cols-3{ grid-template-columns:1.4fr 1fr 1.2fr; }
.bpt-footer-brand{ color:#fff; font-size:22px; }
.bpt-footer-logo{ max-width:160px; margin-bottom:12px; }
.bpt-footer-col h4{ color:#fff; font-size:15px; text-transform:uppercase; letter-spacing:.04em; margin-bottom:16px; }
.bpt-footer-links{ list-style:none; margin:0; padding:0; }
.bpt-footer-links li{ margin-bottom:10px; }
.bpt-footer-links a{ text-decoration:none; color:rgba(255,255,255,.75); font-size:14px; }
.bpt-footer-links a:hover{ color:var(--bpt-accent); }
.bpt-footer-contact-list{ list-style:none; margin:0 0 16px; padding:0; font-size:14px; }
.bpt-footer-contact-list li{ margin-bottom:10px; display:flex; gap:8px; align-items:flex-start; }
.bpt-footer-contact-list a{ text-decoration:none; color:rgba(255,255,255,.8); }
.bpt-footer-social{ display:flex; gap:10px; margin-top:16px; }
.bpt-footer-social a{ width:32px; height:32px; display:flex; align-items:center; justify-content:center; font-size:32px; transition:transform .15s ease; }
.bpt-footer-social a:hover{ transform:translateY(-2px); }
.bpt-footer-bottom{ border-top:1px solid rgba(255,255,255,.1); padding:18px 0; }
.bpt-footer-bottom-inner{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; font-size:13px; }
.bpt-footer-bottom-links{ display:flex; gap:14px; }
.bpt-footer-bottom-links a{ color:rgba(255,255,255,.7); text-decoration:none; font-size:12px; }
.bpt-footer-bottom-links a:hover{ color:var(--bpt-accent); }
.bpt-footer-menu{ list-style:none; display:flex; gap:16px; margin:0; padding:0; }
.bpt-footer-menu a{ color:rgba(255,255,255,.7); text-decoration:none; }

/* ---------------- Floating action buttons ---------------- */
.bpt-floating-actions{ position:fixed; right:22px; bottom:22px; display:flex; flex-direction:column; gap:12px; z-index:9990; }
.bpt-fab{ width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 18px rgba(0,0,0,.25); text-decoration:none; color:#fff; font-size:24px; }
.bpt-fab-whatsapp{ background:transparent; }
.bpt-fab-call{ background:var(--bpt-primary); }

/* ---------------- Single property ---------------- */
.bpt-single-property-wrap{ padding-top:36px; }
.bpt-gallery-main img{ width:100%; border-radius:var(--bpt-radius); max-height:520px; object-fit:cover; }
.bpt-gallery-thumbs{ display:flex; gap:10px; margin-top:10px; overflow-x:auto; }
.bpt-gallery-thumb img{ width:90px; height:70px; object-fit:cover; border-radius:6px; }
.bpt-single-layout{ display:grid; grid-template-columns:2fr 1fr; gap:40px; margin-top:32px; }
.bpt-single-title{ font-size:28px; margin-bottom:6px; }
.bpt-single-address{ color:var(--bpt-muted); margin-bottom:14px; }
.bpt-single-badges{ display:flex; gap:8px; margin-bottom:14px; }
.bpt-single-price{ font-size:26px; font-weight:900; color:var(--bpt-primary); margin-bottom:14px; }
.bpt-single-specs-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin:26px 0; }
.bpt-spec-box{ background:var(--bpt-bg-alt); border-radius:8px; padding:16px 10px; text-align:center; }
.bpt-spec-box strong{ display:block; font-size:17px; color:var(--bpt-primary); }
.bpt-spec-box span{ font-size:12px; color:var(--bpt-muted); }
.bpt-single-description{ margin-top:30px; }
.bpt-single-map{ margin-top:30px; }
.bpt-map-embed iframe{ width:100%; height:340px; border:0; border-radius:var(--bpt-radius); }
.bpt-agent-card{ background:#fff; border-radius:var(--bpt-radius); padding:18px; box-shadow:0 2px 12px rgba(0,0,0,.08); margin-bottom:24px; }
.bpt-agent-card .bpt-team-card{ box-shadow:none; }
.bpt-enquiry-box{ background:#fff; border-radius:var(--bpt-radius); padding:20px; box-shadow:0 2px 12px rgba(0,0,0,.08); }
.bpt-emi-box{ margin-top:24px; }
.bpt-related-properties{ margin-top:60px; }

/* ---------------- Single expert ---------------- */
.bpt-single-expert-layout{ display:grid; grid-template-columns:320px 1fr; gap:36px; align-items:start; }
.bpt-single-expert-photo img{ border-radius:var(--bpt-radius); }
.bpt-expert-listings{ margin-top:50px; }

/* ---------------- Contact page ---------------- */
.bpt-contact-layout{ display:grid; grid-template-columns:1fr 1.2fr; gap:40px; }
.bpt-contact-map{ margin-top:40px; }
.bpt-contact-map iframe{ width:100%; height:360px; border:0; border-radius:var(--bpt-radius); }

/* ---------------- Blog ---------------- */
.bpt-blog-layout{ display:grid; grid-template-columns:2.4fr 1fr; gap:36px; }
.bpt-blog-card{ margin-bottom:36px; }
.bpt-blog-title a{ text-decoration:none; color:var(--bpt-text); }
.bpt-blog-meta{ color:var(--bpt-muted); font-size:13px; margin:6px 0; }

/* ---------------- WP core search form ---------------- */
.bpt-wp-search-form{ display:flex; }
.bpt-wp-search-field{ flex:1; padding:10px 14px; border:1px solid #ddd; border-radius:6px 0 0 6px; }
.bpt-wp-search-submit{ border:none; background:var(--bpt-primary); color:#fff; padding:0 16px; border-radius:0 6px 6px 0; cursor:pointer; }

/* ---------------- 404 ---------------- */
.bpt-404{ text-align:center; padding:90px 20px; }
.bpt-404 h1{ font-size:90px; color:var(--bpt-primary); margin-bottom:0; }
.bpt-404-search{ max-width:600px; margin:30px auto 0; }

/* ================= RESPONSIVE ================= */
@media (max-width:1100px){
	.bpt-why-grid{ grid-template-columns:repeat(2,1fr); }
	.bpt-footer-top{ grid-template-columns:1fr 1fr; }
	.bpt-single-layout{ grid-template-columns:1fr; }
	.bpt-contact-layout{ grid-template-columns:1fr; }
	.bpt-blog-layout{ grid-template-columns:1fr; }
}
@media (max-width:992px){
	.bpt-hamburger-toggle{ display:flex; }
	.bpt-header-cta{ display:none; }
	.bpt-single-expert-layout{ grid-template-columns:1fr; }
	.bpt-single-specs-grid{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:768px){
	.bpt-section{ padding:38px 0; }
	.bpt-why-grid{ grid-template-columns:1fr 1fr; gap:14px; }
	.bpt-footer-top{ grid-template-columns:1fr; padding:36px 20px 20px; }
	.bpt-hero{ padding:56px 0 130px; }
	.bpt-section-header-row{ flex-direction:column; align-items:flex-start; }
	.bpt-floating-actions{ display:none; } /* mobile relies on bottom nav instead */
	.bpt-single-specs-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:576px){
	.bpt-hero-title{ font-size:24px; }
	.bpt-page-hero h1{ font-size:24px; }
	.bpt-404 h1{ font-size:60px; }
	.bpt-footer-reduced-mobile .bpt-footer-hide-mobile{ display:none; }
	.bpt-footer-reduced-mobile .bpt-footer-top{ padding-bottom:20px; }
	.bpt-footer-bottom-links{ display:flex; gap:14px; }
	.bpt-footer-bottom-links a{ color:rgba(255,255,255,.7); text-decoration:none; font-size:12px; }
	.bpt-app-badges{ justify-content:center; }
}
