/* =====================================================================
   PSR Infra — Modern Luxury Real-Estate Design Layer
   Sits on top of Bootstrap. Brand: deep green + gold.
   ===================================================================== */

:root {
    /* ---- Brand palette derived from the PSR Infra logo ---- */
    --psr-navy: #16356b;       /* INFRA navy — primary */
    --psr-navy-2: #1e4a91;     /* lighter navy */
    --psr-green: #16356b;      /* alias kept so existing rules read as navy primary */
    --psr-green-2: #1e4a91;
    --psr-leaf: #3aa935;       /* PSR ring green — secondary */
    --psr-leaf-2: #57c14f;
    --psr-orange: #f47b20;     /* accent — buttons / highlights */
    --psr-orange-2: #ff9a4d;
    --psr-gold: #f47b20;       /* alias: previous "gold" rules now render orange */
    --psr-gold-2: #ff9a4d;

    --psr-ink: #1b2333;
    --psr-muted: #6b7280;
    --psr-cream: #f4f7fb;      /* cool light tint to suit navy */
    --psr-line: #e4e9f0;
    --psr-radius: 16px;
    --psr-shadow: 0 18px 50px rgba(22, 53, 107, 0.14);
    --psr-shadow-sm: 0 8px 24px rgba(22, 53, 107, 0.10);
    --psr-serif: "Times New Roman", Georgia, serif;
    --psr-sans: "Open Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
.psr .text-leaf { color: var(--psr-leaf) !important; }
.psr .bg-navy { background: var(--psr-navy) !important; }

/* ---------- Base ---------- */
body.psr {
    font-family: var(--psr-sans);
    color: var(--psr-ink);
    background: #fff;
    overflow-x: hidden;
}
.psr h1, .psr h2, .psr h3, .psr h4, .psr h5 { font-family: "Teko", var(--psr-sans); letter-spacing: .5px; color: var(--psr-ink); }
/* Legibility safety net: default body text + section copy stays dark on light bg */
.psr .section p, .psr .section li, .psr .section-sm p { color: var(--psr-muted); }
.psr .section-title { color: var(--psr-navy) !important; }
.psr .eyebrow { color: var(--psr-orange) !important; }
/* …but white where the section is dark */
.psr .stats *, .psr .psr-footer *, .psr .mega-feature *, .psr .hero *, .psr .page-hero * { }
.psr .text-white, .psr .text-white * { color:#fff !important; }
.psr .text-white-50 { color: rgba(255,255,255,.7) !important; }
.psr .display-serif { font-family: var(--psr-serif); }
.psr a { text-decoration: none; }
.psr .text-gold { color: var(--psr-gold) !important; }
.psr .bg-green { background: var(--psr-green) !important; }
.psr .section { padding: 90px 0; }
.psr .section-sm { padding: 60px 0; }

/* ---------- Buttons ---------- */
.psr .btn-gold {
    background: linear-gradient(135deg, var(--psr-gold), var(--psr-gold-2));
    color: #1c1500; border: none; font-weight: 700;
    padding: 13px 30px; border-radius: 999px;
    box-shadow: 0 10px 24px rgba(201, 162, 39, .35);
    transition: transform .25s ease, box-shadow .25s ease;
    letter-spacing: .4px;
}
.psr .btn-gold:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(201, 162, 39, .45); color:#1c1500; }
.psr .btn-ghost {
    background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.6);
    padding: 12px 28px; border-radius: 999px; font-weight: 600; transition: all .25s ease;
}
.psr .btn-ghost:hover { background:#fff; color: var(--psr-green); border-color:#fff; }
.psr .btn-outline-green {
    border: 1.5px solid var(--psr-green); color: var(--psr-green);
    border-radius: 999px; padding: 11px 26px; font-weight: 600; transition: all .25s ease;
}
.psr .btn-outline-green:hover { background: var(--psr-green); color:#fff; }

/* ---------- Section eyebrow + title ---------- */
.psr .eyebrow {
    display:inline-block; color: var(--psr-gold); font-weight: 700;
    letter-spacing: 3px; text-transform: uppercase; font-size: .8rem; margin-bottom: 10px;
    font-family: var(--psr-sans);
}
.psr .section-title { font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1.05; color: var(--psr-green); margin-bottom: 18px; }
.psr .section-lead { color: var(--psr-muted); max-width: 640px; margin: 0 auto; }
.psr .divider-gold { width: 70px; height: 4px; background: var(--psr-gold); border-radius: 4px; }

/* ---------- Navbar ---------- */
.psr .psr-nav {
    background: rgba(20, 59, 46, .96);
    backdrop-filter: blur(10px);
    transition: background .3s ease, box-shadow .3s ease;
}
.psr .psr-nav.scrolled { box-shadow: 0 6px 30px rgba(0,0,0,.25); }
.psr .psr-nav .nav-link { color: rgba(255,255,255,.85) !important; font-weight: 600; padding: 22px 16px !important; position: relative; }
.psr .psr-nav .nav-link:hover, .psr .psr-nav .nav-link.active { color: #fff !important; }
.psr .psr-nav .nav-link::after {
    content:""; position:absolute; left:16px; right:16px; bottom:14px; height:2px;
    background: var(--psr-gold); transform: scaleX(0); transform-origin:left; transition: transform .25s ease;
}
.psr .psr-nav .nav-link:hover::after, .psr .psr-nav .nav-link.active::after { transform: scaleX(1); }
.psr .psr-nav .dropdown-menu { background: var(--psr-green-2); border:none; border-radius: 12px; box-shadow: var(--psr-shadow); padding: 8px; }
.psr .psr-nav .dropdown-item { color: rgba(255,255,255,.85); border-radius: 8px; padding: 9px 14px; font-weight:500; }
.psr .psr-nav .dropdown-item:hover { background: var(--psr-gold); color:#1c1500; }
.psr .psr-nav .navbar-brand img { height: 56px; }
.psr .nav-social a { color: #fff; width: 38px; height: 38px; display:inline-flex; align-items:center; justify-content:center;
    border:1px solid rgba(255,255,255,.3); border-radius: 50%; margin-left:6px; transition: all .25s ease; }
.psr .nav-social a:hover { background: var(--psr-gold); color:#fff; border-color: var(--psr-gold); }

/* ---------- Mega menu ---------- */
.psr .psr-nav .dropdown-toggle::after { vertical-align: middle; margin-left: 6px; }
.psr .mega { position: static; }
.psr .mega .dropdown-menu {
    width: min(920px, 94vw); left: 50%; transform: translateX(-50%);
    padding: 22px; border-radius: 14px; background: #fff; box-shadow: var(--psr-shadow);
    border-top: 3px solid var(--psr-orange); margin-top: 0;
}
.psr .mega-col-title { color: var(--psr-orange); font-family: var(--psr-sans); font-weight:700;
    letter-spacing:1.5px; text-transform:uppercase; font-size:.72rem; margin-bottom:10px; }
.psr .mega-link { display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:10px;
    color: var(--psr-ink); font-weight:600; transition: all .2s ease; }
.psr .mega-link:hover { background: var(--psr-cream); color: var(--psr-navy); }
.psr .mega-link i { color: var(--psr-leaf); width:20px; text-align:center; }
.psr .mega-link small { display:block; color: var(--psr-muted); font-weight:400; font-size:.78rem; }
.psr .mega-feature { background: linear-gradient(135deg, var(--psr-navy), var(--psr-navy-2));
    border-radius: 12px; padding: 22px; color:#fff; height:100%; }
.psr .mega-feature h5 { color:#fff; } .psr .mega-feature p { color: rgba(255,255,255,.8); font-size:.88rem; }
.psr .mega-thumb { border-radius:10px; overflow:hidden; aspect-ratio: 16/10; }
.psr .mega-thumb img { width:100%; height:100%; object-fit:cover; }

/* Simple two-link dropdown styling reuse */
.psr .psr-nav .dropdown-menu .dropdown-item i { color: var(--psr-leaf); margin-right:8px; }

/* Open mega/dropdown on hover for desktop */
@media (min-width: 992px) {
    .psr .psr-nav .nav-item.dropdown:hover > .dropdown-menu { display:block; }
}

/* gradient buttons should read orange now */
.psr .btn-gold { color:#fff; }
.psr .btn-gold:hover { color:#fff; }

/* ---------- Hero ---------- */
.psr .hero { position: relative; min-height: 92vh; display:flex; align-items:center; color:#fff; overflow:hidden; }
.psr .hero video, .psr .hero .hero-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.psr .hero::after { content:""; position:absolute; inset:0; z-index:1;
    background: linear-gradient(120deg, rgba(8,20,46,.90) 0%, rgba(8,20,46,.66) 50%, rgba(8,20,46,.40) 100%); }
.psr .hero .container { position:relative; z-index:2; }
.psr .hero h1, .psr .hero h1 * { color:#fff !important; }
.psr .hero h1 { font-size: clamp(2.8rem, 6vw, 5.5rem); line-height: 1; margin-bottom: 18px; text-shadow: 0 2px 18px rgba(0,0,0,.45); }
.psr .hero h1 .text-gold { color: var(--psr-orange) !important; }
.psr .hero p { font-size: 1.15rem; max-width: 560px; color: #fff !important; text-shadow: 0 1px 10px rgba(0,0,0,.5); }
.psr .hero .badge-gold { background: rgba(201,162,39,.2); border:1px solid var(--psr-gold);
    color: var(--psr-gold-2); border-radius:999px; padding:7px 18px; font-weight:600; letter-spacing:1px; font-size:.8rem; }

/* ---------- Stats strip ---------- */
.psr .stats { background: var(--psr-green); color:#fff; }
.psr .stat-num { font-family:"Teko"; font-size: 3.4rem; line-height:1; color: var(--psr-gold-2); }
.psr .stat-label { color: rgba(255,255,255,.8); letter-spacing:1px; text-transform:uppercase; font-size:.85rem; }

/* ---------- Project cards ---------- */
.psr .project-card {
    position:relative; border-radius: var(--psr-radius); overflow:hidden; box-shadow: var(--psr-shadow-sm);
    background:#fff; height: 100%; transition: transform .35s ease, box-shadow .35s ease;
}
.psr .project-card:hover { transform: translateY(-8px); box-shadow: var(--psr-shadow); }
.psr .project-card .pc-media { position:relative; height: 260px; overflow:hidden; }
.psr .project-card .pc-media img, .psr .project-card .pc-media video { width:100%; height:100%; object-fit:cover; transition: transform .6s ease; }
.psr .project-card:hover .pc-media img { transform: scale(1.08); }
.psr .project-card .pc-status {
    position:absolute; top:14px; left:14px; z-index:2; padding:6px 14px; border-radius:999px;
    font-weight:700; font-size:.72rem; letter-spacing:1px; text-transform:uppercase; color:#fff;
}
.psr .pc-status.ongoing { background: var(--psr-gold); color:#1c1500; }
.psr .pc-status.coming  { background: #4b5563; }
.psr .pc-status.sold    { background: #b91c1c; }
.psr .project-card .pc-body { padding: 22px 24px 26px; }
.psr .project-card .pc-body h3 { color: var(--psr-green); font-size: 1.7rem; margin-bottom: 6px; }
.psr .project-card .pc-tags { display:flex; gap:8px; flex-wrap:wrap; margin: 10px 0 16px; }
.psr .pc-tag { background: var(--psr-cream); color: var(--psr-green-2); border-radius:999px; padding:4px 12px; font-size:.75rem; font-weight:600; }

/* ---------- Project detail ---------- */
.psr .page-hero { position:relative; padding: 150px 0 70px; color:#fff; background-size:cover; background-position:center; }
.psr .page-hero::after { content:""; position:absolute; inset:0; background: linear-gradient(0deg, rgba(10,30,22,.9), rgba(10,30,22,.55)); }
.psr .page-hero .container { position:relative; z-index:2; }
.psr .page-hero h1, .psr .page-hero h1 * { color:#fff !important; }
.psr .page-hero h1 { font-size: clamp(2.4rem,5vw,4rem); text-shadow: 0 2px 16px rgba(0,0,0,.4); }
.psr .page-hero p { color:#fff !important; }
.psr .breadcrumb-psr a { color: var(--psr-gold-2); }
.psr .breadcrumb-psr { color: rgba(255,255,255,.7); letter-spacing:1px; font-size:.85rem; text-transform:uppercase; }

.psr .feature-pill { display:flex; align-items:center; gap:12px; background:#fff; border:1px solid var(--psr-line);
    border-radius: 14px; padding: 16px 18px; box-shadow: var(--psr-shadow-sm); height:100%; }
.psr .feature-pill i { color: var(--psr-gold); font-size: 1.4rem; }

/* ---------- Brochures ---------- */
.psr .brochure-card {
    border-radius: var(--psr-radius); border:1px solid var(--psr-line); background:#fff; overflow:hidden;
    box-shadow: var(--psr-shadow-sm); transition: transform .3s ease, box-shadow .3s ease; height:100%;
}
.psr .brochure-card:hover { transform: translateY(-6px); box-shadow: var(--psr-shadow); }
.psr .brochure-card .bc-top { background: linear-gradient(135deg, var(--psr-green), var(--psr-green-2)); color:#fff; padding: 26px; text-align:center; }
.psr .brochure-card .bc-top i { font-size: 2.4rem; color: var(--psr-gold-2); }
.psr .brochure-card .bc-body { padding: 20px 22px 24px; }
.psr .brochure-card h4 { color: var(--psr-green); margin-bottom: 4px; }
.psr .brochure-card .bc-actions { display:flex; gap:10px; margin-top:16px; }

/* ---------- Gallery ---------- */
.psr .gallery-grid { columns: 3; column-gap: 16px; }
.psr .gallery-grid .g-item { break-inside: avoid; margin-bottom:16px; border-radius: 14px; overflow:hidden; position:relative; box-shadow: var(--psr-shadow-sm); }
.psr .gallery-grid .g-item img { width:100%; display:block; transition: transform .5s ease; }
.psr .gallery-grid .g-item:hover img { transform: scale(1.06); }
@media (max-width: 992px){ .psr .gallery-grid { columns: 2; } }
@media (max-width: 576px){ .psr .gallery-grid { columns: 1; } }

/* ---------- Leadership ---------- */
.psr .leader-card { background:#fff; border-radius: var(--psr-radius); box-shadow: var(--psr-shadow-sm); overflow:hidden; }
.psr .leader-card .lc-photo { background: var(--psr-cream); padding: 30px; text-align:center; }
.psr .leader-card .lc-photo img { max-width: 180px; border-radius: 50%; border: 4px solid var(--psr-gold); }
.psr .leader-card .lc-body { padding: 26px 30px; }
.psr .leader-card .lc-name { color: var(--psr-green); font-size: 1.6rem; }
.psr .leader-card .lc-role { color: var(--psr-gold); font-weight:700; letter-spacing:1px; text-transform:uppercase; font-size:.8rem; }
.psr .leader-card blockquote { font-family: var(--psr-serif); color:#333; line-height:1.7; font-size:1.02rem; }

/* ---------- Contact ---------- */
.psr .contact-card { background:#fff; border-radius: var(--psr-radius); box-shadow: var(--psr-shadow); padding: 34px; }
.psr .contact-info-item { display:flex; gap:16px; align-items:flex-start; padding: 16px 0; border-bottom:1px solid var(--psr-line); }
.psr .contact-info-item:last-child { border-bottom:none; }
.psr .contact-info-item .ci-icon { width:48px; height:48px; flex:0 0 48px; border-radius:12px; background: var(--psr-green); color: var(--psr-gold-2); display:flex; align-items:center; justify-content:center; font-size:1.2rem; }
.psr .form-control.psr-input { border-radius: 12px; border:1px solid var(--psr-line); padding: 14px 16px; }
.psr .form-control.psr-input:focus { border-color: var(--psr-gold); box-shadow: 0 0 0 .2rem rgba(201,162,39,.15); }
.psr .alert-psr-ok { background:#e9f6ef; border:1px solid #b7e3c9; color:#14653a; border-radius:12px; }
.psr .alert-psr-err{ background:#fdecec; border:1px solid #f5c2c2; color:#9b1c1c; border-radius:12px; }

/* ---------- Footer ---------- */
.psr .psr-footer { background: var(--psr-green); color: rgba(255,255,255,.78); padding-top: 70px; }
.psr .psr-footer h5 { color:#fff; margin-bottom:20px; }
.psr .psr-footer a { color: rgba(255,255,255,.78); transition: color .2s ease; }
.psr .psr-footer a:hover { color: var(--psr-gold-2); }
.psr .psr-footer .foot-social a { width:40px; height:40px; border-radius:50%; border:1px solid rgba(255,255,255,.25);
    display:inline-flex; align-items:center; justify-content:center; margin-right:8px; }
.psr .psr-footer .foot-social a:hover { background: var(--psr-gold); color:#1c1500; border-color: var(--psr-gold); }
.psr .footer-bottom { border-top:1px solid rgba(255,255,255,.12); margin-top:50px; padding: 22px 0; font-size:.88rem; }

/* ---------- Reveal on scroll ---------- */
.psr .reveal { opacity:0; transform: translateY(28px); transition: opacity .7s ease, transform .7s ease; }
.psr .reveal.in { opacity:1; transform:none; }

/* ---------- Back to top / WhatsApp float ---------- */
.psr .to-top { position:fixed; right:24px; bottom:24px; z-index:50; width:48px; height:48px; border-radius:50%;
    background: var(--psr-green); color:#fff; display:none; align-items:center; justify-content:center; box-shadow: var(--psr-shadow-sm); }
.psr .wa-float { position:fixed; left:24px; bottom:24px; z-index:50; width:56px; height:56px; border-radius:50%;
    background:#25d366; color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.6rem; box-shadow: 0 10px 30px rgba(37,211,102,.5); }

@media (max-width: 991px){
    .psr .psr-nav .nav-link { padding: 10px 0 !important; }
    .psr .hero { min-height: 80vh; }
}
