/* =====================================================
   Stone Gate Contracting — style.css
   Built Tough. Finished Right.
   ===================================================== */

/* ─── CSS Variables ──────────────────────────────────── */
:root {
  --slate:     #1c2b38;
  --slate-mid: #243446;
  --blue:      #2e6a8a;
  --blue-dark: #235578;
  --teal:      #7ec8e3;
  --stone:     #8a7560;
  --stone-lt:  #a8917a;
  --white:     #f7f5f2;
  --offwhite:  #eef2f5;
  --text:      #2c2c2c;
  --text-mid:  #4a5568;
  --border:    #d8dee4;
  --shadow:    rgba(0,0,0,0.12);

  --font: 'Segoe UI', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --radius: 6px;
  --radius-lg: 12px;
  --transition: 0.22s ease;
  --max-width: 1140px;
  --header-h: 72px;
}

/* ─── Reset & Base ───────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  font-family: var(--font);
  color: var(--text);
  background: #fff;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: var(--blue); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--teal); }
ul { list-style: none; }
.container { width: 92%; max-width: var(--max-width); margin: 0 auto; }

/* ─── Typography ─────────────────────────────────────── */
h1,h2,h3,h4,h5 { font-weight:700; line-height:1.2; letter-spacing:-0.02em; }
h1 { font-size: clamp(2rem, 5vw, 3.2rem); }
h2 { font-size: clamp(1.6rem, 3.5vw, 2.4rem); }
h3 { font-size: clamp(1.2rem, 2.5vw, 1.6rem); }
h4 { font-size: 1.1rem; }
p { margin-bottom: 1rem; }
p:last-child { margin-bottom: 0; }
.eyebrow {
  font-size:0.78rem; font-weight:700; text-transform:uppercase;
  letter-spacing:0.12em; color:var(--teal); display:block; margin-bottom:0.6rem;
}

/* ─── Buttons ────────────────────────────────────────── */
.btn {
  display:inline-flex; align-items:center; gap:0.5rem;
  padding:0.75rem 1.6rem; border-radius:var(--radius);
  font-weight:700; font-size:0.95rem; cursor:pointer;
  border:2px solid transparent; transition:all var(--transition);
  text-decoration:none; line-height:1;
}
.btn-primary { background:var(--blue); color:#fff; border-color:var(--blue); }
.btn-primary:hover {
  background:var(--blue-dark); border-color:var(--blue-dark); color:#fff;
  transform:translateY(-1px); box-shadow:0 4px 16px rgba(46,106,138,0.35);
}
.btn-secondary { background:transparent; color:var(--white); border-color:var(--white); }
.btn-secondary:hover { background:var(--white); color:var(--slate); }
.btn-outline { background:transparent; color:var(--blue); border-color:var(--blue); }
.btn-outline:hover { background:var(--blue); color:#fff; }
.btn-lg { padding:1rem 2rem; font-size:1.05rem; }

/* ─── Header ─────────────────────────────────────────── */
.site-header {
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:var(--slate); height:var(--header-h);
  border-bottom:2px solid var(--blue); transition:box-shadow var(--transition);
}
.site-header.scrolled { box-shadow:0 4px 24px rgba(0,0,0,0.28); }
.header-inner {
  display:flex; align-items:center; justify-content:space-between;
  height:var(--header-h); gap:1.5rem;
}
.logo { display:flex; align-items:center; gap:0.5rem; color:var(--white); text-decoration:none; flex-shrink:0; }
.logo:hover { color:var(--teal); }
.logo-mark { font-size:1.6rem; color:var(--teal); line-height:1; }
.logo-text {
  font-size:1.1rem; font-weight:800; letter-spacing:-0.02em;
  display:flex; flex-direction:column; line-height:1.1;
}
.logo-sub { font-size:0.72rem; font-weight:400; letter-spacing:0.08em; color:var(--teal); text-transform:uppercase; display:block; }
.main-nav ul { display:flex; align-items:center; gap:0.2rem; }
.main-nav a {
  color:rgba(247,245,242,0.85); font-size:0.88rem; font-weight:600;
  padding:0.4rem 0.7rem; border-radius:var(--radius); transition:all var(--transition); white-space:nowrap;
}
.main-nav a:hover, .main-nav a.active { color:var(--teal); background:rgba(126,200,227,0.08); }
.main-nav .nav-cta { background:var(--blue); color:#fff !important; padding:0.45rem 1rem; border-radius:var(--radius); margin-left:0.4rem; }
.main-nav .nav-cta:hover { background:var(--blue-dark); color:#fff; }
.header-phone a { color:var(--teal); font-weight:700; font-size:0.9rem; white-space:nowrap; display:flex; align-items:center; gap:0.35rem; }
.header-phone a::before { content:'📞'; font-size:0.8rem; }
.header-phone a:hover { color:var(--white); }
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:6px; background:none; border:none; flex-shrink:0; }
.hamburger span { display:block; width:24px; height:2px; background:var(--white); border-radius:2px; transition:all var(--transition); }
.hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ─── Page Wrapper ───────────────────────────────────── */
.page-body { padding-top:var(--header-h); }

/* ─── Hero ───────────────────────────────────────────── */
.hero {
  position:relative; background:var(--slate); color:var(--white);
  padding:6rem 0 5rem; overflow:hidden;
}
.hero::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(135deg,rgba(28,43,56,0.96) 0%,rgba(28,43,56,0.85) 60%,rgba(46,106,138,0.4) 100%);
  z-index:1;
}
.hero-bg {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse at 70% 50%,rgba(46,106,138,0.25) 0%,transparent 65%),
    repeating-linear-gradient(-45deg,rgba(126,200,227,0.03) 0px,rgba(126,200,227,0.03) 1px,transparent 1px,transparent 40px);
  z-index:0;
}
.hero-content { position:relative; z-index:2; max-width:780px; }
.hero h1 { color:var(--white); margin-bottom:1rem; }
.hero h1 em { font-style:normal; color:var(--teal); }
.hero .hero-sub { font-size:clamp(1.05rem,2.2vw,1.25rem); color:rgba(247,245,242,0.85); margin-bottom:2rem; max-width:600px; line-height:1.55; }
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; align-items:center; }

.page-hero {
  background:var(--slate); color:var(--white);
  padding:4rem 0 3.5rem; position:relative; overflow:hidden;
}
.page-hero::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse at 80% 50%,rgba(46,106,138,0.3) 0%,transparent 60%);
}
.page-hero .container { position:relative; z-index:1; }
.page-hero h1 { color:var(--white); margin-bottom:0.75rem; }
.page-hero .page-hero-sub { font-size:1.1rem; color:rgba(247,245,242,0.8); max-width:560px; }

/* ─── Sections ───────────────────────────────────────── */
.section { padding:5rem 0; }
.section-sm { padding:3rem 0; }
.section-dark { background:var(--slate); color:var(--white); }
.section-mid { background:var(--slate-mid); color:var(--white); }
.section-light { background:var(--offwhite); color:var(--text); }
.section-white { background:#fff; color:var(--text); }
.section-header { text-align:center; margin-bottom:3.5rem; }
.section-header h2 { margin-bottom:0.75rem; }
.section-header p { font-size:1.05rem; color:var(--text-mid); max-width:580px; margin:0 auto; }
.section-dark .section-header p, .section-mid .section-header p { color:rgba(247,245,242,0.75); }

/* ─── Cards ──────────────────────────────────────────── */
.card { background:#fff; border:1px solid var(--border); border-radius:var(--radius-lg); padding:2rem; transition:all var(--transition); }
.card:hover { transform:translateY(-4px); box-shadow:0 12px 40px rgba(0,0,0,0.1); border-color:var(--blue); }
.card-dark { background:var(--slate-mid); border-color:rgba(126,200,227,0.15); color:var(--white); }
.card-dark:hover { border-color:var(--teal); box-shadow:0 12px 40px rgba(0,0,0,0.3); }
.card-icon { font-size:2.4rem; margin-bottom:1rem; display:block; }
.card h3 { margin-bottom:0.6rem; }

/* ─── Grids ──────────────────────────────────────────── */
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; }

/* ─── Service Feature ────────────────────────────────── */
.service-feature { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
.service-feature.reverse { direction:rtl; }
.service-feature.reverse > * { direction:ltr; }
.service-feature-content h2 { margin-bottom:1rem; }
.service-feature-content p { color:var(--text-mid); margin-bottom:1.25rem; }
.section-dark .service-feature-content p { color:rgba(247,245,242,0.8); }

/* ─── Photo Placeholders ─────────────────────────────── */
.photo-placeholder {
  background:linear-gradient(135deg,var(--slate-mid) 0%,#1a3245 100%);
  border:1px solid rgba(126,200,227,0.2); border-radius:var(--radius-lg);
  aspect-ratio:4/3; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:0.75rem;
  color:rgba(247,245,242,0.5); font-size:0.85rem; text-align:center; padding:1.5rem;
  position:relative; overflow:hidden;
}
.photo-placeholder::before {
  content:''; position:absolute; inset:0;
  background:repeating-linear-gradient(45deg,rgba(126,200,227,0.03) 0px,rgba(126,200,227,0.03) 1px,transparent 1px,transparent 20px);
}
.photo-placeholder-icon { font-size:2.5rem; opacity:0.4; }
.photo-placeholder span { position:relative; font-weight:600; color:rgba(126,200,227,0.6); }

/* ─── Trust Bar ──────────────────────────────────────── */
.trust-bar { background:var(--slate-mid); border-top:1px solid rgba(126,200,227,0.15); border-bottom:1px solid rgba(126,200,227,0.15); padding:2rem 0; }
.trust-items { display:flex; align-items:center; justify-content:center; gap:3rem; flex-wrap:wrap; }
.trust-item { display:flex; align-items:center; gap:0.75rem; color:var(--white); }
.trust-item-icon { font-size:1.8rem; color:var(--teal); }
.trust-item-text strong { display:block; font-size:0.95rem; color:var(--white); }
.trust-item-text span { font-size:0.78rem; color:rgba(247,245,242,0.6); }

/* ─── Benefit Lists ──────────────────────────────────── */
.benefit-list { list-style:none; display:flex; flex-direction:column; gap:0.75rem; }
.benefit-list li { display:flex; align-items:flex-start; gap:0.75rem; font-size:0.95rem; }
.benefit-list li::before {
  content:'✓'; display:inline-flex; align-items:center; justify-content:center;
  width:20px; height:20px; background:var(--teal); color:var(--slate);
  border-radius:50%; font-size:0.7rem; font-weight:900; flex-shrink:0; margin-top:2px;
}

/* ─── Process Steps ──────────────────────────────────── */
.process-steps { display:flex; flex-direction:column; gap:0; }
.process-step { display:flex; gap:1.5rem; position:relative; padding-bottom:2rem; }
.process-step:last-child { padding-bottom:0; }
.process-step:not(:last-child)::after {
  content:''; position:absolute; left:22px; top:48px; bottom:0; width:2px;
  background:linear-gradient(to bottom,var(--teal),rgba(126,200,227,0.2));
}
.step-num {
  display:flex; align-items:center; justify-content:center;
  width:46px; height:46px; background:var(--blue); color:#fff;
  border-radius:50%; font-weight:900; font-size:1rem; flex-shrink:0; position:relative; z-index:1;
}
.step-content h4 { margin-bottom:0.35rem; }
.step-content p { font-size:0.9rem; color:rgba(247,245,242,0.75); margin:0; }

/* ─── CTA Banner ─────────────────────────────────────── */
.cta-banner { background:linear-gradient(135deg,var(--blue) 0%,var(--blue-dark) 100%); color:#fff; padding:4.5rem 0; text-align:center; }
.cta-banner h2 { color:#fff; margin-bottom:0.75rem; }
.cta-banner p { font-size:1.1rem; color:rgba(255,255,255,0.85); margin-bottom:2rem; }
.cta-actions { display:flex; align-items:center; justify-content:center; gap:1rem; flex-wrap:wrap; }

/* ─── Review Placeholder ─────────────────────────────── */
.review-placeholder { background:var(--offwhite); border:2px dashed var(--border); border-radius:var(--radius-lg); padding:2.5rem; text-align:center; color:var(--text-mid); }
.review-placeholder strong { display:block; margin-bottom:0.4rem; color:var(--text); }

/* ─── Service Area ───────────────────────────────────── */
.area-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:1rem; }
.area-tag {
  background:#fff; border:1px solid var(--border); border-radius:var(--radius);
  padding:0.85rem 1rem; text-align:center; font-weight:600; font-size:0.92rem;
  color:var(--text); transition:all var(--transition); display:flex; align-items:center; justify-content:center; gap:0.4rem;
}
.area-tag::before { content:'📍'; font-size:0.85rem; }
.area-tag:hover { border-color:var(--blue); color:var(--blue); box-shadow:0 4px 12px var(--shadow); }
.area-tag.primary { background:var(--blue); border-color:var(--blue); color:#fff; }

/* ─── Gallery Grid ───────────────────────────────────── */
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.gallery-item { border-radius:var(--radius-lg); overflow:hidden; position:relative; }
.gallery-item .photo-placeholder { border-radius:0; aspect-ratio:1; }

/* ─── Gallery category header ────────────────────────── */
.gallery-section-label {
  font-size:0.78rem; font-weight:700; text-transform:uppercase; letter-spacing:0.12em;
  color:var(--blue); border-left:3px solid var(--teal); padding-left:0.75rem;
  margin-bottom:1.5rem; display:block;
}

/* ─── Contact Form ───────────────────────────────────── */
.contact-form { background:#fff; border:1px solid var(--border); border-radius:var(--radius-lg); padding:2.5rem; box-shadow:0 4px 24px var(--shadow); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
.form-group { margin-bottom:1.25rem; }
.form-group:last-child { margin-bottom:0; }
label { display:block; font-size:0.85rem; font-weight:700; color:var(--text); margin-bottom:0.4rem; letter-spacing:0.02em; }
input[type="text"],input[type="email"],input[type="tel"],select,textarea {
  width:100%; padding:0.75rem 1rem; border:1px solid var(--border); border-radius:var(--radius);
  font-family:var(--font); font-size:0.95rem; color:var(--text); background:#fff;
  transition:border-color var(--transition),box-shadow var(--transition); appearance:none; -webkit-appearance:none;
}
input:focus,select:focus,textarea:focus { outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(46,106,138,0.12); }
textarea { resize:vertical; min-height:120px; }
select {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234a5568' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 0.8rem center; padding-right:2.5rem;
}

/* ─── Contact Info Card ──────────────────────────────── */
.contact-info-card { background:var(--slate); border-radius:var(--radius-lg); padding:2rem; color:var(--white); height:fit-content; }
.contact-info-card h3 { color:var(--white); margin-bottom:1.5rem; padding-bottom:1rem; border-bottom:1px solid rgba(126,200,227,0.2); }
.contact-info-item { display:flex; gap:1rem; margin-bottom:1.5rem; align-items:flex-start; }
.contact-info-item:last-child { margin-bottom:0; }
.contact-info-icon { font-size:1.4rem; flex-shrink:0; color:var(--teal); margin-top:1px; }
.contact-info-item strong { display:block; font-size:0.82rem; text-transform:uppercase; letter-spacing:0.08em; color:rgba(247,245,242,0.6); margin-bottom:0.25rem; }
.contact-info-item a, .contact-info-item p { color:var(--white); font-weight:600; font-size:0.95rem; margin:0; }
.contact-info-item a:hover { color:var(--teal); }

/* ─── System Cards ───────────────────────────────────── */
.system-card { background:var(--offwhite); border:1px solid var(--border); border-radius:var(--radius-lg); padding:1.75rem; transition:all var(--transition); position:relative; }
.system-card.featured { background:var(--blue); border-color:var(--blue); color:#fff; }
.system-card.featured h3, .system-card.featured p { color:#fff; }
.system-badge { position:absolute; top:-10px; right:1.5rem; background:var(--teal); color:var(--slate); font-size:0.7rem; font-weight:900; text-transform:uppercase; letter-spacing:0.08em; padding:0.2rem 0.6rem; border-radius:20px; }
.system-card:hover { transform:translateY(-3px); box-shadow:0 8px 30px var(--shadow); }

/* ─── Footer ─────────────────────────────────────────── */
.site-footer { background:var(--slate); color:rgba(247,245,242,0.7); padding:4rem 0 0; border-top:2px solid var(--blue); }
.footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1.2fr; gap:3rem; padding-bottom:3rem; }
.footer-logo { font-size:1.2rem; font-weight:800; color:var(--white); letter-spacing:-0.02em; margin-bottom:0.5rem; }
.footer-logo-mark { color:var(--teal); margin-right:0.3rem; }
.footer-tagline { color:var(--teal); font-size:0.88rem; font-weight:700; text-transform:uppercase; letter-spacing:0.1em; margin-bottom:0.75rem; }
.footer-brand p { font-size:0.88rem; color:rgba(247,245,242,0.6); margin-bottom:0.4rem; }
.footer-links h4, .footer-contact h4 { color:var(--white); font-size:0.88rem; text-transform:uppercase; letter-spacing:0.1em; margin-bottom:1.2rem; }
.footer-links ul { display:flex; flex-direction:column; gap:0.5rem; }
.footer-links a { color:rgba(247,245,242,0.65); font-size:0.88rem; transition:color var(--transition); }
.footer-links a:hover { color:var(--teal); }
.footer-contact p, .footer-contact a { color:rgba(247,245,242,0.65); font-size:0.88rem; display:block; margin-bottom:0.5rem; }
.footer-contact a:hover { color:var(--teal); }
.footer-contact strong { color:rgba(247,245,242,0.45); display:block; font-size:0.78rem; text-transform:uppercase; letter-spacing:0.08em; margin-top:0.75rem; margin-bottom:0.2rem; }
.footer-contact strong:first-child { margin-top:0; }
.footer-bottom { border-top:1px solid rgba(247,245,242,0.1); padding:1.25rem 0; text-align:center; font-size:0.8rem; color:rgba(247,245,242,0.4); }

/* ─── Sticky Phone (Mobile) ──────────────────────────── */
.sticky-phone {
  display:none; position:fixed; bottom:1.25rem; left:50%; transform:translateX(-50%);
  z-index:200; background:var(--blue); color:#fff; padding:0.9rem 2rem; border-radius:50px;
  font-weight:800; font-size:1rem; white-space:nowrap; box-shadow:0 6px 28px rgba(46,106,138,0.5);
  text-decoration:none; gap:0.5rem; align-items:center; transition:all var(--transition);
}
.sticky-phone:hover { background:var(--blue-dark); color:#fff; box-shadow:0 8px 36px rgba(46,106,138,0.6); }

/* ─── Callout Boxes ──────────────────────────────────── */
.callout {
  background:linear-gradient(135deg,rgba(46,106,138,0.1) 0%,rgba(126,200,227,0.07) 100%);
  border:1px solid rgba(46,106,138,0.25); border-left:4px solid var(--blue);
  border-radius:var(--radius); padding:1.25rem 1.5rem; margin-bottom:1.5rem;
}
.callout.fire {
  background:linear-gradient(135deg,rgba(180,50,30,0.08) 0%,rgba(220,90,50,0.06) 100%);
  border-color:rgba(180,50,30,0.2); border-left-color:#c0392b;
}
.callout strong { display:block; margin-bottom:0.35rem; font-size:0.95rem; }

/* ─── Map Placeholder ────────────────────────────────── */
.map-placeholder {
  background:linear-gradient(135deg,var(--slate-mid) 0%,#1a3245 100%);
  border:1px solid rgba(126,200,227,0.15); border-radius:var(--radius-lg);
  min-height:320px; display:flex; align-items:center; justify-content:center;
  flex-direction:column; gap:0.75rem; color:rgba(247,245,242,0.5); font-size:0.9rem; text-align:center; position:relative; overflow:hidden;
}
.map-placeholder::before {
  content:''; position:absolute; inset:0;
  background:
    repeating-linear-gradient(0deg,rgba(126,200,227,0.04) 0px,rgba(126,200,227,0.04) 1px,transparent 1px,transparent 30px),
    repeating-linear-gradient(90deg,rgba(126,200,227,0.04) 0px,rgba(126,200,227,0.04) 1px,transparent 1px,transparent 30px);
}
.map-placeholder-icon { font-size:3rem; opacity:0.5; position:relative; }
.map-placeholder span { position:relative; color:rgba(126,200,227,0.7); font-weight:600; }

/* ─── About ──────────────────────────────────────────── */
.about-story { font-size:1.05rem; line-height:1.75; }
.about-story p { margin-bottom:1.25rem; }
.about-photo-block { position:relative; }
.about-photo-block .photo-placeholder { aspect-ratio:3/4; }
.about-credential { background:var(--blue); color:#fff; padding:1rem 1.25rem; border-radius:var(--radius); font-size:0.82rem; text-align:center; box-shadow:0 6px 20px rgba(0,0,0,0.25); margin-top:1rem; }
.about-credential strong { display:block; font-size:1rem; margin-bottom:0.2rem; }

/* ─── Responsive ─────────────────────────────────────── */
@media (max-width:1024px) {
  .grid-4 { grid-template-columns:1fr 1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1 / -1; }
}

@media (max-width:860px) {
  .service-feature { grid-template-columns:1fr; gap:2.5rem; }
  .service-feature.reverse { direction:ltr; }
  .grid-3 { grid-template-columns:1fr 1fr; }
  .gallery-grid { grid-template-columns:1fr 1fr; }
  .main-nav { display:none; }
  .header-phone { display:none; }
  .hamburger { display:flex; }
  .sticky-phone { display:flex; }
  .main-nav.open {
    display:flex; position:fixed; top:var(--header-h); left:0; right:0;
    background:var(--slate); border-top:1px solid rgba(126,200,227,0.15);
    flex-direction:column; padding:1.5rem 1.25rem 2rem; box-shadow:0 12px 40px rgba(0,0,0,0.4);
  }
  .main-nav.open ul { flex-direction:column; gap:0; }
  .main-nav.open a { display:block; padding:0.9rem 1rem; font-size:1rem; border-bottom:1px solid rgba(247,245,242,0.07); }
  .main-nav.open .nav-cta { margin:1rem 0 0; text-align:center; font-size:1rem; padding:0.9rem 1rem; }
  .form-row { grid-template-columns:1fr; }
  .hero { padding:4rem 0; }
  .page-body { padding-bottom:5rem; }
}

@media (max-width:580px) {
  .grid-2 { grid-template-columns:1fr; }
  .grid-3 { grid-template-columns:1fr; }
  .gallery-grid { grid-template-columns:1fr 1fr; }
  .footer-grid { grid-template-columns:1fr; }
  .trust-items { gap:1.75rem; }
  .section { padding:3.5rem 0; }
  .cta-banner { padding:3rem 0; }
  .hero-actions { flex-direction:column; align-items:flex-start; }
  .contact-form { padding:1.5rem; }
}

/* ─── Utilities ──────────────────────────────────────── */
.text-center { text-align:center; }
.text-teal { color:var(--teal); }
.text-stone { color:var(--stone-lt); }
.mt-1 { margin-top:0.5rem; }
.mt-2 { margin-top:1rem; }
.mt-3 { margin-top:1.5rem; }
.mt-4 { margin-top:2rem; }
.mb-2 { margin-bottom:1rem; }
.mb-3 { margin-bottom:1.5rem; }
.mb-4 { margin-bottom:2rem; }
.divider { height:1px; background:rgba(247,245,242,0.12); margin:2rem 0; }
.divider-dark { height:1px; background:var(--border); margin:2rem 0; }
