:root {
  --sans: "DM Sans", Arial, sans-serif;
  --pp-navy: #1e2d54;
  --pp-navy-deep: #172442;
  --pp-gold: #b89a57;
  --pp-gold-soft: #d1bd89;
  --pp-white: #ffffff;
  --pp-cloud: #f5f6f8;
  --ink: var(--pp-navy-deep);
  --cream: var(--pp-white);
  --soft: var(--pp-cloud);
  --coral: var(--pp-gold);
  --moss: var(--pp-navy);
  --line: #dbe0e9;
}

.utility, .dark-panel, .button-dark, .nav-cta, .areas { background: var(--pp-navy); }
.brand-mark { background: var(--pp-navy); color: var(--pp-gold-soft); }
.button-coral { background: var(--pp-navy); color: #fff; }
.button-coral:hover, .nav-cta:hover, .button-dark:hover { background: #2c416f; }
.hero-overlay { background: linear-gradient(90deg, rgba(23,36,66,.91) 0%, rgba(23,36,66,.68) 36%, rgba(23,36,66,.08) 76%), linear-gradient(0deg, rgba(23,36,66,.45), transparent 45%); }
.eyebrow, .service-number, .service-card a span, .seo-links b, summary span { color: var(--pp-gold); }
.eyebrow.light { color: var(--pp-gold-soft); }
h1 em { color: var(--pp-gold-soft); }
.stars { color: var(--pp-gold-soft); }
.service-card.featured { background: var(--pp-navy); }
.tint, .quote-form { background: var(--pp-cloud); }
.project-1 .image-placeholder { background: linear-gradient(135deg,#c8d1de,#edf0f4); }
.project-2 .image-placeholder { background: linear-gradient(135deg,#a6b6c9,#e8e1d5); }
.project-3 .image-placeholder { background: linear-gradient(135deg,#d5dbe2,#687b9e); }
.project { overflow: hidden; }
.project > img { display: block; width: 100%; height: 350px; object-fit: cover; object-position: center; transition: transform .45s ease; }
.project:hover > img { transform: scale(1.035); }
.project-1 > img { height: 350px; object-position: center 25%; transform: none; background: #edf0f5; }
.project-2 > img { object-position: center; }
.project-3 > img { object-position: center; }
.map-section { display: grid; grid-template-columns: .85fr 1.15fr; background: var(--pp-cloud); min-height: 430px; }
.map-copy { padding: 76px max(24px, calc((100vw - 1160px) / 2)); padding-right: 50px; background: var(--pp-navy); color: #fff; }
.map-copy h2 { margin: 0 0 18px; font: 600 clamp(2.45rem, 4vw, 4rem)/1.04 var(--serif); letter-spacing: -.04em; }
.map-copy p:not(.eyebrow) { font-size: 14px; line-height: 1.8; opacity: .9; }
.map-copy a { color: var(--pp-gold-soft); font-weight: 700; text-decoration: none; }
.map-section iframe { width: 100%; height: 100%; min-height: 430px; border: 0; filter: saturate(.8) contrast(.95); }
.upload-icon { background: var(--pp-navy); }
.form-success { color: #2c5961; }
footer { background: #edf0f5; }
.utility a:first-of-type { font: 600 13px/1 "DM Sans", Arial, sans-serif; letter-spacing: .08em; }
.hero-phone { display: inline-flex; flex-direction: column; color: #fff; text-decoration: none; font-size: 19px; font-weight: 700; line-height: 1.15; letter-spacing: .01em; padding-left: 20px; border-left: 1px solid rgba(255,255,255,.45); }
.hero-phone small { color: var(--pp-gold-soft); font: 600 9px/1 "DM Sans", Arial, sans-serif; text-transform: uppercase; letter-spacing: .13em; margin-bottom: 5px; }
.quote-contact a:first-child { font-family: "DM Sans", Arial, sans-serif; font-size: 31px; font-weight: 700; letter-spacing: .01em; }
.quote-form button:disabled { opacity: .7; cursor: wait; transform: none; }
.brand-logo img { display: block; width: 166px; height: 58px; object-fit: contain; object-position: left center; }
.brand-logo.brand-footer img { width: 178px; height: 62px; }
@media(max-width:760px) { .hero-overlay { background: linear-gradient(90deg,rgba(23,36,66,.87),rgba(23,36,66,.25)),linear-gradient(0deg,rgba(23,36,66,.58),transparent 55%); } .hero-actions { gap: 18px; } .hero-phone { font-size: 18px; padding-left: 0; border-left: 0; } .project > img,.project-1 > img { height: 350px; } .map-section { grid-template-columns: 1fr; } .map-copy { padding: 60px 24px; } .map-section iframe { min-height: 340px; } }
