/* =========================================================
   Construction CMS — public site styles
   All colors driven by --brand-primary / --brand-secondary
   so re-branding from admin reflects everywhere.
   ========================================================= */

:root{
  --brand-primary: #D97706;
  --brand-secondary: #1F2937;
  --bg: #ffffff;
  --bg-alt: #f8f5f1;
  --text: #1f2937;
  --text-muted: #64748b;
  --border: #e5e7eb;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  color:var(--text);
  font-size:16px;
  line-height:1.6;
  background:var(--bg);
}
h1,h2,h3,h4,h5,h6{font-family:'Playfair Display',Georgia,serif;font-weight:700;color:var(--brand-secondary);line-height:1.2}
h1{font-size:clamp(2.2rem,4.5vw,3.6rem)}
h2{font-size:clamp(1.8rem,3vw,2.6rem);margin-bottom:1rem}
h3{font-size:1.4rem}
a{color:var(--brand-primary);text-decoration:none;transition:.2s}
a:hover{color:var(--brand-secondary)}
img{max-width:100%;height:auto}

/* ---------- Buttons ---------- */
.btn{font-weight:600;border-radius:8px;padding:.75rem 1.6rem;transition:all .25s}
.btn-brand{background:var(--brand-primary);color:#fff;border:2px solid var(--brand-primary)}
.btn-brand:hover{background:var(--brand-secondary);border-color:var(--brand-secondary);color:#fff}
.btn-outline-light{border:2px solid #fff;color:#fff;background:transparent}
.btn-outline-light:hover{background:#fff;color:var(--brand-secondary)}
.btn-outline-dark{border:2px solid var(--brand-secondary);color:var(--brand-secondary);background:transparent}
.btn-outline-dark:hover{background:var(--brand-secondary);color:#fff}
.eyebrow{display:inline-block;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--brand-primary);margin-bottom:.6rem}

/* ---------- Header / Nav ---------- */
.site-header{background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;box-shadow:0 1px 0 rgba(0,0,0,.02)}
.navbar{padding:.85rem 0}
.navbar-brand img{display:block}
.brand-text{font-family:'Playfair Display',serif;font-size:1.6rem;font-weight:700;color:var(--brand-secondary)}
.navbar-nav .nav-link{color:var(--text)!important;font-weight:500;padding:.5rem 1rem!important;position:relative}
.navbar-nav .nav-link:hover{color:var(--brand-primary)!important}
.navbar-nav .nav-link.active{color:var(--brand-primary)!important}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:620px;display:flex;align-items:center;background:#1a1a1a;color:#fff;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background-image:var(--hero-bg,linear-gradient(135deg,#1F2937,#111827));background-size:cover;background-position:center;opacity:.55}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.4) 0%,rgba(0,0,0,.7) 100%)}
.hero-inner{position:relative;z-index:2;padding:80px 0;color:#fff}
.hero-title{color:#fff;max-width:780px;margin-bottom:1.2rem}
.hero-sub{font-size:1.2rem;color:#e5e7eb;max-width:680px;margin-bottom:2rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:3rem}
.hero-stats{display:flex;gap:48px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.2);padding-top:24px;max-width:680px}
.hero-stats div{display:flex;flex-direction:column}
.hero-stats strong{color:var(--brand-primary);font-size:2.2rem;font-weight:700;font-family:'Playfair Display',serif;line-height:1}
.hero-stats span{font-size:.85rem;color:#cbd5e1;text-transform:uppercase;letter-spacing:.08em;margin-top:6px}

/* ---------- Page hero (sub-pages) ---------- */
.page-hero{position:relative;background:var(--brand-secondary);color:#fff;padding:90px 0 70px;overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;background-image:var(--hero-bg,none);background-size:cover;background-position:center;opacity:.35}
.page-hero .container{position:relative;z-index:2}
.page-hero h1{color:#fff;margin-bottom:.5rem}
.page-hero p{color:#cbd5e1;font-size:1.1rem;max-width:680px}

/* ---------- Sections ---------- */
.section{padding:90px 0}
.section-alt{background:var(--bg-alt)}
.section-head{text-align:center;max-width:680px;margin:0 auto 60px}
.section-head p{color:var(--text-muted);font-size:1.1rem}

/* ---------- Cards ---------- */
.service-card{display:block;padding:36px 28px;background:#fff;border:1px solid var(--border);border-radius:16px;height:100%;transition:.3s;color:inherit}
.service-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(0,0,0,.08);border-color:var(--brand-primary);color:inherit}
.service-card .icon{width:64px;height:64px;border-radius:14px;background:linear-gradient(135deg,var(--brand-primary),#b45309);color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;margin-bottom:20px}
.service-card h3{margin-bottom:.6rem}
.service-card p{color:var(--text-muted);margin-bottom:1.2rem}
.service-card .link{color:var(--brand-primary);font-weight:600;font-size:.95rem}

.project-card{display:block;background:#fff;border-radius:16px;overflow:hidden;border:1px solid var(--border);transition:.3s;height:100%;color:inherit}
.project-card:hover{transform:translateY(-4px);box-shadow:0 18px 48px rgba(0,0,0,.1);color:inherit}
.project-card .img{height:300px;background:#e5e7eb center/cover no-repeat}
.project-card .body{padding:28px}
.project-card .tag{display:inline-block;background:var(--brand-primary);color:#fff;padding:4px 12px;border-radius:999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}
.project-card h3{margin-bottom:.5rem}
.project-card p{color:var(--text-muted);margin-bottom:.5rem}

.blog-card{display:block;background:#fff;border-radius:14px;overflow:hidden;border:1px solid var(--border);transition:.25s;height:100%;color:inherit}
.blog-card:hover{transform:translateY(-4px);box-shadow:0 12px 36px rgba(0,0,0,.08);color:inherit}
.blog-card .img{height:200px;background:#e5e7eb center/cover no-repeat}
.blog-card .body{padding:22px}
.blog-card h3{font-size:1.2rem;margin:8px 0}

/* ---------- Filter tabs ---------- */
.filter-tabs{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.filter-tabs a{padding:8px 18px;border-radius:999px;background:#fff;border:1px solid var(--border);color:var(--text);font-weight:500;font-size:.9rem}
.filter-tabs a:hover,.filter-tabs a.active{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff}

/* ---------- Stats / Lists ---------- */
.stat-box{padding:30px 16px;background:#fff;border:1px solid var(--border);border-radius:14px}
.stat-box strong{display:block;color:var(--brand-primary);font-size:2.4rem;font-family:'Playfair Display',serif;line-height:1}
.stat-box span{color:var(--text-muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;margin-top:8px;display:block}

.checklist{list-style:none;padding:0;margin:1.5rem 0}
.checklist li{padding:8px 0;font-size:1.05rem}
.checklist i{color:var(--brand-primary);margin-right:10px;font-size:1.2rem}

/* ---------- Forms ---------- */
.form-card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:36px}
.form-control,.form-select{padding:.85rem 1rem;border-radius:10px;border:1.5px solid var(--border)}
.form-control:focus,.form-select:focus{border-color:var(--brand-primary);box-shadow:0 0 0 .2rem rgba(217,119,6,.15)}
.form-label{font-weight:600;color:var(--brand-secondary);margin-bottom:.4rem}

.aside-card{background:var(--brand-secondary);color:#fff;padding:32px;border-radius:18px}
.aside-card h3{color:#fff}
.aside-card p{color:#cbd5e1}
.aside-card .kv{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:.95rem}
.aside-card .kv span{color:#cbd5e1}
.aside-card .kv strong{color:#fff}

.contact-info-card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:28px;margin-top:24px}
.ci-row{display:flex;gap:16px;padding:14px 0;border-bottom:1px solid var(--border)}
.ci-row:last-child{border-bottom:none}
.ci-icon{width:44px;height:44px;border-radius:10px;background:rgba(217,119,6,.1);color:var(--brand-primary);display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex:0 0 44px}
.ci-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:2px}

.map-wrap iframe{width:100%;height:280px;border:0;border-radius:14px}

/* ---------- Prose (rich text) ---------- */
.prose h2{margin:2rem 0 1rem}
.prose h3{margin:1.5rem 0 .8rem}
.prose p{margin-bottom:1rem;font-size:1.05rem;line-height:1.8}
.prose ul,.prose ol{margin-bottom:1rem;padding-left:1.4rem}
.prose img{border-radius:12px;margin:1.5rem 0}

/* ---------- CTA strip ---------- */
.cta-strip{padding:60px 0;background:var(--bg-alt)}
.cta-card{background:linear-gradient(135deg,var(--brand-secondary),#0f172a);color:#fff;border-radius:24px;padding:50px;display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}
.cta-card h2{color:#fff;margin:.4rem 0 .6rem}
.cta-card p{color:#cbd5e1;margin:0}
.cta-eyebrow{font-size:.75rem;font-weight:700;color:var(--brand-primary);text-transform:uppercase;letter-spacing:.15em}

/* ---------- Footer ---------- */
.site-footer{background:#0f172a;color:#cbd5e1;padding:70px 0 30px}
.footer-top{padding-bottom:40px;border-bottom:1px solid #1e293b}
.footer-heading{color:#fff;font-family:'Inter',sans-serif;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;margin-bottom:1.2rem}
.footer-about{color:#94a3b8;font-size:.95rem;line-height:1.7}
.footer-menu,.footer-legal-menu{list-style:none;padding:0;margin:0}
.footer-menu li{margin-bottom:.5rem}
.footer-menu a{color:#cbd5e1;font-size:.95rem}
.footer-menu a:hover{color:var(--brand-primary)}
.footer-contact{margin-bottom:1rem;font-size:.95rem}
.footer-contact .label{display:block;color:#64748b;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}
.footer-contact a{color:#fff;font-weight:500}
.footer-contact a:hover{color:var(--brand-primary)}
.social-links{display:flex;gap:10px;margin-top:18px}
.social-links a{width:40px;height:40px;border-radius:10px;background:#1e293b;color:#cbd5e1;display:flex;align-items:center;justify-content:center;font-size:1.05rem}
.social-links a:hover{background:var(--brand-primary);color:#fff}
.footer-bottom{padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.85rem;color:#94a3b8}
.footer-legal-menu{display:flex;gap:18px}
.footer-legal-menu li{display:inline}
.footer-legal-menu a{color:#94a3b8}

/* ---------- Responsive ---------- */
@media (max-width: 991.98px){
  .navbar-nav{padding:1rem 0}
  .hero-stats{gap:24px}
  .hero-stats strong{font-size:1.8rem}
  .cta-card{padding:36px;text-align:center;justify-content:center}
  .footer-bottom{justify-content:center;text-align:center}
}
@media (max-width: 575.98px){
  .section{padding:60px 0}
  .form-card{padding:24px}
  .project-card .img{height:220px}
}
