/*
Theme Name: Theme6 Master
Author: ProForge
Description: ProForge theme for local trade businesses. Cream, burgundy and mustard; serif headline, split hero with a rounded photo, icon service cards. Home quote form, service area map, and ProForge package sections (reviews, projects).
Version: 1.2.2
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: theme6
Tags: one-column, custom-menu, custom-logo, featured-images, theme-options, blog
*/

/* =========================================================
   1. Tokens
   ========================================================= */
:root {
  --ink: #3a2e30;
  --ink-soft: #5e4b4e;
  --paper: #faf5ec;
  --card: #ffffff;
  --oak: #e0a526;
  --oak-deep: #8a5a0b;
  --espresso: #6b1e2e;
  --line: #eadfcb;
  --radius: 10px;
  --shadow-card: 0 1px 2px rgba(58,46,48,0.06), 0 8px 24px rgba(58,46,48,0.07);
  --shadow-lift: 0 2px 4px rgba(58,46,48,0.08), 0 16px 40px rgba(58,46,48,0.14);
  --font-display: "Lora", Georgia, "Times New Roman", serif;
  --font-body: "Source Sans 3", "Segoe UI", -apple-system, sans-serif;
  --wrap: 1160px;
}

/* =========================================================
   2. Base
   ========================================================= */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.65;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--oak-deep); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--oak); }

h1, h2, h3, h4, h5 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.12;
  margin: 0 0 0.5em;
  letter-spacing: -0.01em;
}
h1 { font-size: clamp(2.4rem, 5.2vw, 4rem); }
h2 { font-size: clamp(1.9rem, 3.6vw, 2.75rem); }
h3 { font-size: 1.35rem; }

.wrap { max-width: var(--wrap); margin-inline: auto; padding-inline: 24px; }

.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute !important;
  height: 1px; width: 1px; overflow: hidden;
}
.skip-link:focus {
  clip: auto; height: auto; width: auto;
  left: 12px; top: 12px; z-index: 9999;
  background: var(--ink); color: #ffffff; padding: 10px 16px; border-radius: 6px;
}

:focus-visible { outline: 3px solid var(--oak); outline-offset: 2px; }

/* =========================================================
   3. Buttons & badges
   ========================================================= */
.btn {
  display: inline-block;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.95rem;
  padding: 14px 26px;
  border-radius: 8px;
  border: 2px solid var(--ink);
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-lift); }
.btn-solid { background: var(--ink); color: #ffffff; }
.btn-solid:hover { color: #ffffff; background: #5a2a33; }
.btn-oak { background: var(--oak); border-color: var(--oak); color: #ffffff; }
.btn-oak:hover { background: var(--oak-deep); border-color: var(--oak-deep); color: #ffffff; }
.btn-ghost { background: transparent; color: var(--ink); }
.btn-ghost:hover { background: rgba(58,46,48,0.06); color: var(--ink); }

/* Section eyebrow, styled like a lumber grade stamp */
.stamp {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--oak-deep);
  border: 1.5px solid var(--oak);
  border-radius: 4px;
  padding: 5px 12px;
  margin-bottom: 18px;
  background: rgba(224,165,38,0.06);
}

/* =========================================================
   4. Header
   ========================================================= */
.site-header {
  position: sticky; top: 0; z-index: 500;
  background: rgba(247,244,238,0.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.header-inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; padding-block: 14px;
}
.site-branding a {
  font-family: var(--font-display);
  font-size: 1.45rem; font-weight: 700;
  color: var(--ink); text-decoration: none; letter-spacing: -0.01em;
}
.site-branding .custom-logo { max-height: 52px; width: auto; }

.main-nav ul { list-style: none; display: flex; gap: 26px; margin: 0; padding: 0; }
.main-nav a {
  font-weight: 600; font-size: 0.95rem;
  color: var(--ink-soft); text-decoration: none;
}
.main-nav a:hover { color: var(--oak-deep); }
.main-nav li.menu-item-has-children { position: relative; }
.main-nav li.menu-item-has-children > a::after { content: " \25BE"; font-size: 0.7em; }
.main-nav .sub-menu {
  display: none; position: absolute; top: 100%; left: -14px;
  flex-direction: column; gap: 0; min-width: 230px;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow-lift); padding: 8px;
}
.main-nav li:hover > .sub-menu,
.main-nav li:focus-within > .sub-menu { display: flex; }
.main-nav .sub-menu a { display: block; padding: 9px 12px; border-radius: 6px; }
.main-nav .sub-menu a:hover { background: var(--paper); }

.header-cta { display: flex; gap: 10px; align-items: center; }
.header-cta .btn { padding: 10px 18px; }

.nav-toggle {
  display: none; background: none; border: 2px solid var(--ink);
  border-radius: 8px; padding: 8px 12px; cursor: pointer;
  font-weight: 700; font-family: var(--font-body); color: var(--ink);
}

@media (max-width: 900px) {
  .nav-toggle { display: inline-block; }
  .main-nav { display: none; position: absolute; top: 100%; left: 0; right: 0;
    background: var(--paper); border-bottom: 1px solid var(--line); padding: 16px 24px 24px; }
  .main-nav.open { display: block; }
  .main-nav ul { flex-direction: column; gap: 4px; }
  .main-nav a { display: block; padding: 10px 4px; font-size: 1.05rem; }
  .main-nav .sub-menu { display: block; position: static; box-shadow: none; border: none;
    background: transparent; padding-left: 16px; }
  .header-cta .btn-ghost { display: none; }
}

/* =========================================================
   5. Hero
   ========================================================= */
.hero { padding: 72px 0 40px; }
.hero-grid {
  display: grid; grid-template-columns: 1.05fr 0.95fr;
  gap: 56px; align-items: center;
}
.hero-badge {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 0.82rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--espresso); margin-bottom: 20px;
}
.hero-badge::before {
  content: ""; width: 9px; height: 9px; border-radius: 50%;
  background: var(--oak); box-shadow: 0 0 0 4px rgba(224,165,38,0.18);
}
.hero p.lede { font-size: 1.15rem; color: var(--ink-soft); max-width: 34em; }
.hero-actions { display: flex; gap: 14px; margin-top: 28px; flex-wrap: wrap; }
.hero-media { position: relative; }
.hero-media img, .hero-media svg {
  width: 100%; border-radius: 14px;
  box-shadow: var(--shadow-lift);
}
.hero-media .media-tag {
  position: absolute; bottom: 16px; left: 16px;
  background: rgba(58,46,48,0.85); color: #ffffff;
  font-size: 0.8rem; font-weight: 600;
  padding: 7px 14px; border-radius: 6px;
}


@media (max-width: 900px) {
  .hero { padding-top: 48px; }
  .hero-grid { grid-template-columns: 1fr; gap: 36px; }
}

/* =========================================================
   6. Sections & cards
   ========================================================= */
.section { padding: 84px 0; }
.section-head { max-width: 640px; margin-bottom: 44px; }
.section-head p { color: var(--ink-soft); font-size: 1.05rem; }

.services-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
}
.service-card {
  display: block; background: var(--card);
  border: 1px solid var(--line); border-radius: var(--radius);
  padding: 26px 24px; text-decoration: none; color: var(--ink);
  box-shadow: var(--shadow-card);
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.service-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lift);
  border-color: var(--oak);
  color: var(--ink);
}
.service-card h3 { margin-bottom: 8px; }
.service-card h3::after {
  content: "→"; float: right; color: var(--oak);
  transition: transform 0.18s ease;
}
.service-card:hover h3::after { transform: translateX(4px); }
.service-card p { margin: 0; color: var(--ink-soft); font-size: 0.95rem; }

@media (max-width: 900px) { .services-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .services-grid { grid-template-columns: 1fr; } }

/* =========================================================
   7. Reviews
   ========================================================= */
.section-reviews { background: var(--espresso); color: #f0ede6; }
.section-reviews .section-head h2 { color: #ffffff; }
.section-reviews .section-head p { color: #cfd6cb; }
.reviews-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.review-card {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: var(--radius); padding: 28px;
}
.review-card blockquote { margin: 0 0 18px; font-size: 1.02rem; line-height: 1.6; }
.review-card blockquote::before { content: "“"; font-family: var(--font-display);
  font-size: 2.2rem; color: var(--oak); display: block; line-height: 0.6; margin-bottom: 12px; }
.review-meta { display: flex; align-items: center; gap: 12px; }
.review-meta .avatar {
  width: 42px; height: 42px; border-radius: 50%;
  background: var(--oak); color: #ffffff; display: grid; place-items: center;
  font-weight: 700; font-family: var(--font-display); font-size: 1.05rem;
}
.review-meta .who strong { display: block; color: #ffffff; }
.review-meta .who span { font-size: 0.85rem; color: #cfd6cb; }
.review-stars { color: #f0c766; letter-spacing: 2px; margin-bottom: 10px; }

@media (max-width: 760px) { .reviews-grid { grid-template-columns: 1fr; } }

/* =========================================================
   8. Commitments
   ========================================================= */
.commit-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 40px; }
.commit-card {
  background: var(--card); border-top: 4px solid var(--oak);
  border-radius: 0 0 var(--radius) var(--radius);
  padding: 26px 22px; box-shadow: var(--shadow-card);
}
.commit-card h3 { font-size: 1.15rem; }
.commit-card p { margin: 0; font-size: 0.93rem; color: var(--ink-soft); }
@media (max-width: 900px) { .commit-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .commit-grid { grid-template-columns: 1fr; } }

/* =========================================================
   9. Owner / about split
   ========================================================= */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.split-media img, .split-media svg { border-radius: 14px; box-shadow: var(--shadow-lift); width: 100%; }
.split-media figcaption { font-size: 0.85rem; color: var(--ink-soft); margin-top: 10px; }
@media (max-width: 860px) { .split { grid-template-columns: 1fr; gap: 32px; } }

/* =========================================================
   10. Process
   ========================================================= */
.process-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 40px; }
.process-step {
  background: var(--card); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 30px 26px; box-shadow: var(--shadow-card);
  position: relative;
}
.process-step .step-num {
  font-family: var(--font-display); font-weight: 700; font-size: 2.6rem;
  color: var(--oak); opacity: 0.35; position: absolute; top: 14px; right: 20px;
}
.process-step p { margin: 0; color: var(--ink-soft); font-size: 0.95rem; }
@media (max-width: 820px) { .process-grid { grid-template-columns: 1fr; } }

/* =========================================================
   11. CTA band
   ========================================================= */
.cta-band { background: var(--espresso); color: #f0ede6; text-align: center; padding: 76px 0; }
.cta-band h2 { color: #ffffff; }
.cta-band p { color: #e3d6c3; max-width: 34em; margin-inline: auto; }
.cta-band .hero-actions { justify-content: center; }
.cta-band .btn-ghost { color: #f0ede6; border-color: #f0ede6; }
.cta-band .btn-ghost:hover { background: rgba(255,255,255,0.08); color: #ffffff; }

/* =========================================================
   12. Quote modal (multi-step)
   ========================================================= */
.quote-overlay {
  position: fixed; inset: 0; z-index: 900;
  background: rgba(28,25,20,0.62);
  display: none; align-items: center; justify-content: center; padding: 20px;
}
.quote-overlay.open { display: flex; }
.quote-modal {
  background: var(--paper); border-radius: 14px; width: 100%; max-width: 560px;
  box-shadow: var(--shadow-lift); padding: 36px; position: relative;
  max-height: 92vh; overflow-y: auto;
}
.quote-close {
  position: absolute; top: 14px; right: 14px;
  background: none; border: none; font-size: 1.5rem; cursor: pointer;
  color: var(--ink-soft); line-height: 1; padding: 6px;
}
.quote-progress { display: flex; gap: 8px; margin-bottom: 26px; }
.quote-progress span {
  flex: 1; height: 5px; border-radius: 99px; background: var(--line);
}
.quote-progress span.done { background: var(--oak); }
.quote-step { display: none; }
.quote-step.active { display: block; }
.quote-step h3 { font-size: 1.5rem; }
.quote-form label { display: block; font-weight: 600; font-size: 0.9rem; margin: 16px 0 6px; }
.quote-form input[type="text"],
.quote-form input[type="email"],
.quote-form input[type="tel"],
.quote-form select,
.quote-form textarea {
  width: 100%; padding: 12px 14px; font: inherit;
  border: 1.5px solid var(--line); border-radius: 8px; background: #ffffff; color: var(--ink);
}
.quote-form input:focus, .quote-form select:focus, .quote-form textarea:focus {
  border-color: var(--oak); outline: none;
}
.quote-options { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.quote-options label {
  border: 1.5px solid var(--line); border-radius: 8px; background: #ffffff;
  padding: 12px 14px; margin: 0; cursor: pointer; font-weight: 600;
  display: flex; gap: 10px; align-items: center; transition: border-color 0.12s ease;
}
.quote-options label:hover { border-color: var(--oak); }
.quote-options input { accent-color: var(--oak); }
.quote-nav { display: flex; justify-content: space-between; margin-top: 26px; gap: 12px; }
.quote-consent { display: flex; gap: 10px; align-items: flex-start; margin-top: 16px; font-size: 0.85rem; color: var(--ink-soft); }
.quote-consent input { margin-top: 4px; accent-color: var(--oak); }
.quote-success { text-align: center; padding: 20px 0; }
.quote-error { color: #a03a2a; font-size: 0.88rem; margin-top: 10px; display: none; }

@media (max-width: 520px) { .quote-options { grid-template-columns: 1fr; } .quote-modal { padding: 26px 20px; } }

/* =========================================================
   13. Footer
   ========================================================= */
.site-footer { background: #4f1522; color: #d3c4ae; padding: 64px 0 28px; }
.footer-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 44px; margin-bottom: 44px; }
.site-footer h4, .site-footer .footer-title { color: #ffffff; font-size: 1.05rem; font-family: var(--font-display); margin: 0 0 12px; }
.site-footer a { color: #d8d1c4; text-decoration: none; }
.site-footer a:hover { color: #f0c766; text-decoration: underline; }
.footer-brand { font-family: var(--font-display); font-size: 1.4rem; font-weight: 700; color: #ffffff; }
.footer-contact p { margin: 6px 0; }
.footer-nav ul { list-style: none; margin: 0; padding: 0; }
.footer-nav li { margin-bottom: 8px; }
.footer-legal {
  border-top: 1px solid rgba(255,255,255,0.12); padding-top: 22px;
  display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  font-size: 0.85rem;
}
@media (max-width: 820px) { .footer-grid { grid-template-columns: 1fr; gap: 28px; } }

/* =========================================================
   14. Blog / inner pages
   ========================================================= */
.page-shell { padding: 64px 0 90px; }
.entry-content { max-width: 720px; }
.entry-content img { border-radius: 10px; }
.post-list { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 20px; }
.post-card {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  overflow: hidden; box-shadow: var(--shadow-card);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.post-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lift); }
.post-card .thumb img { aspect-ratio: 16/10; object-fit: cover; width: 100%; }
.post-card .body { padding: 20px 22px 24px; }
.post-card h3 a { color: var(--ink); text-decoration: none; }
.post-card .meta { font-size: 0.82rem; color: var(--ink-soft); margin-bottom: 8px; }
@media (max-width: 900px) { .post-list { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .post-list { grid-template-columns: 1fr; } }

.pagination { margin-top: 40px; display: flex; gap: 8px; flex-wrap: wrap; }
.pagination .page-numbers {
  padding: 8px 14px; border: 1px solid var(--line); border-radius: 8px;
  text-decoration: none; color: var(--ink); background: var(--card);
}
.pagination .page-numbers.current { background: var(--ink); color: #ffffff; border-color: var(--ink); }

/* =========================================================
   15. Reveal on scroll
   ========================================================= */

.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; } }

/* WordPress core alignment classes */
.alignwide { max-width: var(--wrap); }
.alignfull { width: 100%; max-width: 100%; }
.wp-caption { max-width: 100%; }
.sticky, .bypostauthor, .gallery-caption, .alignleft, .alignright, .aligncenter, .wp-caption-text { display: block; }
.alignleft { float: left; margin: 0 20px 12px 0; }
.alignright { float: right; margin: 0 0 12px 20px; }
.aligncenter { margin-inline: auto; }


/* Theme6 image and section refinements */
.hero-media {
  overflow: hidden;
  border-radius: 14px;
}
.hero-media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center 24%;
}
.services-section {
  position: relative;
  background: #ffffff;
  border-top: 0;
  border-bottom: 1px solid var(--line);
}
.services-section::before {
  content: none;
  display: none;
}
#about {
  background: #ffffff;
}
.split-media {
  overflow: hidden;
  border-radius: 14px;
}
.split-media img {
  width: 100%;
  aspect-ratio: 13 / 10;
  object-fit: cover;
  object-position: center;
}
.split-media figcaption {
  padding-inline: 2px;
}

/* ProForge additions (Demeter, Oct 31, 2026): hero facts, quote form section, footer details, package sections. */
.hero-badge { color: var(--oak-deep); }
.hero-facts { list-style: none; margin: 26px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 28px; color: var(--ink-soft); font-size: 0.95rem; }
.hero-facts strong { color: var(--ink); }
.service-card h3::after { color: var(--oak-deep); }
.service-card__ask { display: inline-block; margin-top: 14px; font-weight: 700; font-size: 0.9rem; color: var(--oak-deep); }
.process-step .step-num { color: var(--oak); opacity: 1; }
.btn-oak { color: #ffffff; }
.btn-oak:hover, .btn-oak:focus-visible { background: var(--oak-deep); border-color: var(--oak-deep); color: #ffffff; }
.pf-quote, .pf-area, #contact, #services, #about, #request-quote { scroll-margin-top: 90px; }
.pf-quote h2, .pf-area h2 { font-family: var(--font-display); }
.pf-quote__button:hover, .pf-quote__button:focus-visible, .pf-area__cta:hover, .pf-area__cta:focus-visible { background: #8a5a0b; color: #ffffff; }
.pf-area__towns .pf-area__cta { color: var(--pf-on-accent); }
.contact-section { background: #ffffff; border-top: 1px solid var(--line); }
.contact-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 32px; align-items: start; }
.contact-grid--details { grid-template-columns: minmax(0, 1fr); max-width: 640px; }
.contact-details { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 28px; }
.contact-details h3 { margin-top: 0; }
.lead-form-wrap .pf-quote { margin: 0; }
.footer-license { font-weight: 600; }
.footer-legal a.footer-privacy { text-decoration: underline; }
body .pfr-stars { color: #e0a526; }
body .pfl .opt, body .pfl .pfl-fine, body .pfl-fine { color: #5e4b4e; }
body .pfl button { background: var(--oak); color: #ffffff; }
body .pfl button:hover, body .pfl button:focus-visible { background: #8a5a0b; }
@media (max-width: 860px) { .contact-grid { grid-template-columns: minmax(0, 1fr); } }

/* Hero trust line (ProForge, Nov 1, 2026) */
.pf-hero-trust { margin: 16px 0 0; font-size: .95rem; font-weight: 600; opacity: .9; }

/* Theme 6 skin (Nov 1, 2026): burgundy bands, mustard buttons with dark labels, four-step process. */
.btn-oak, .btn-oak:visited { color: #2a1a1d; }
.btn-oak:hover, .btn-oak:focus-visible { background: #c98f12; border-color: #c98f12; color: #2a1a1d; }
body .pfl button { color: #2a1a1d; }
.process-grid { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 980px) { .process-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .process-grid { grid-template-columns: 1fr; } }
.process-step .step-num { color: #8a5a0b; }
.cta-band .btn-ghost { color: #fff; border-color: rgba(255,255,255,.6); }

/* Six-item menu on one line at desktop widths (ProForge menus, Nov 1, 2026) */
@media (min-width: 901px) { .header-inner { gap: 18px; } .main-nav ul { gap: 18px; } .main-nav a, .header-cta .btn { white-space: nowrap; } .site-branding a { font-size: 1.3rem; line-height: 1.1; } }
@media (min-width: 901px) and (max-width: 1100px) { .header-inner { gap: 12px; } .main-nav ul { gap: 12px; } .main-nav a { font-size: .88rem; } .site-branding a { font-size: 1.1rem; } .header-cta .btn { padding: 9px 12px; } }

/* =========================================================
   Mockup layout (ProForge, Nov 1, 2026): serif burgundy headline, split hero with a rounded photo,
   three icon service cards under the hero, burgundy buttons.
   ========================================================= */
.site-header { background: #faf5ec; }
.pfm-brand { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.pfm-brand__mark { flex: none; width: 40px; height: 44px; color: #6b1e2e; }
.pfm-brand__mark svg { width: 100%; height: 100%; stroke-width: 2; }
.pfm-brand__name { display: flex; flex-direction: column; line-height: 1.05; }
.pfm-brand__l1 { font-family: var(--font-display); font-weight: 700; font-size: 1.45rem; color: #6b1e2e; white-space: nowrap; }
.pfm-brand__l2 { margin-top: 4px; font-family: var(--font-body); font-weight: 700; font-size: .76rem; letter-spacing: .2em; text-transform: uppercase; color: #6b1e2e; white-space: nowrap; }
.main-nav a { color: #3a2e30; }
.main-nav .current-menu-item > a { color: #8a5a0b; box-shadow: inset 0 -2px 0 #e0a526; padding-bottom: 6px; }
.btn-oak, .btn-oak:visited { background: #6b1e2e; border-color: #6b1e2e; color: #fff; }
.btn-oak:hover, .btn-oak:focus-visible { background: #561623; border-color: #561623; color: #fff; }
.pfm-btn { display: inline-flex; align-items: center; gap: 8px; }
.pfm-btn svg { width: 16px; height: 16px; }
.cta-band .btn-oak, .cta-band .btn-oak:visited { background: #e0a526; border-color: #e0a526; color: #2a1a1d; }
.cta-band .btn-oak:hover { background: #c98f12; border-color: #c98f12; color: #2a1a1d; }
body .pfl button { background: #6b1e2e; color: #fff; }

.pfm-hero { padding: 40px 0 60px; background: #faf5ec; }
.pfm-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: center; }
.pfm-kicker { display: block; margin-bottom: 14px; color: #8a5a0b; font-weight: 700; font-size: .85rem; letter-spacing: .16em; text-transform: uppercase; }
.pfm-hero h1 { margin: 0 0 18px; font-family: var(--font-display); font-weight: 700; font-size: clamp(2.2rem, 3.6vw, 3.2rem); line-height: 1.12; color: #6b1e2e; letter-spacing: -.01em; }
.pfm-lede { max-width: 32em; margin: 0 0 26px; font-size: 1.1rem; line-height: 1.55; color: #4a3b3d; }
.pfm-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.pfm-button { display: inline-flex; align-items: center; gap: 10px; padding: 13px 20px; border: 1.5px solid #6b1e2e; border-radius: 6px; font-weight: 700; font-size: 1rem; text-decoration: none; }
.pfm-button svg { width: 18px; height: 18px; }
.pfm-button--solid, .pfm-button--solid:visited { background: #6b1e2e; color: #fff; }
.pfm-button--solid:hover { background: #561623; border-color: #561623; color: #fff; }
.pfm-button--line, .pfm-button--line:visited { background: transparent; color: #6b1e2e; }
.pfm-button--line:hover { background: #6b1e2e; color: #fff; }
.pfm-trust { display: flex; align-items: center; gap: 8px; margin-top: 20px; color: #4a3b3d; font-weight: 600; opacity: 1; }
.pfm-trust svg { width: 22px; height: 22px; color: #6b1e2e; }
.pfm-hero__media img { display: block; width: 100%; height: auto; aspect-ratio: 1200 / 820; object-fit: cover; border-radius: 14px; box-shadow: 0 14px 34px rgba(58, 46, 48, .14); }
.pfm-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: 44px; }
.pfm-card { display: flex; align-items: flex-start; gap: 18px; padding: 26px 24px; background: #fbf6ee; border: 1px solid #eadfcb; border-radius: 10px; color: inherit; text-decoration: none; box-shadow: 0 1px 2px rgba(58, 46, 48, .05); }
.pfm-card:hover { border-color: #e0a526; }
.pfm-card__icon { flex: none; display: grid; place-items: center; width: 62px; height: 62px; border-radius: 50%; background: #e0a526; color: #fff; }
.pfm-card__icon svg { width: 34px; height: 34px; stroke-width: 1.8; }
.pfm-card__title { display: block; margin: 2px 0 8px; font-family: var(--font-display); font-weight: 700; font-size: 1.4rem; color: #6b1e2e; }
.pfm-card__text { display: block; font-size: .98rem; line-height: 1.5; color: #4a3b3d; }
.pfm-card__more { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; font-weight: 700; color: #6b1e2e; }
.pfm-card__more svg { width: 16px; height: 16px; }
@media (max-width: 900px) {
  .pfm-hero__grid, .pfm-cards { grid-template-columns: 1fr; }
  .pfm-brand__l1 { font-size: 1.2rem; }
}
@media (max-width: 600px) {
  .header-cta .pfm-btn { display: none; }
  .pfm-brand__mark { width: 32px; height: 36px; }
  .pfm-brand__l1 { font-size: 1.1rem; }
  .pfm-brand__l2 { font-size: .66rem; letter-spacing: .14em; }
}

/* r5 (Nov 1, 2026): match theme6-mockup.jpg at 1280. Measured there: content 42-1236, copy column 574px, gap 43px,
   photo 577x395 (48% of the content width), corner radius 13px, photo top 12px under the header, its bottom level with the
   trust line, card row 26px below it (3 cards, 22px gaps). Hero is white; the cards keep a cream tint and a border. */
.pfm-hero { padding: 12px 0 56px; background: #ffffff; }
.pfm-hero > .wrap { max-width: 1244px; }
.pfm-hero__grid { grid-template-columns: minmax(0, 574fr) minmax(0, 577fr); gap: 43px; align-items: stretch; }
.pfm-hero__copy { display: flex; flex-direction: column; justify-content: center; padding: 6px 0; }
.pfm-hero h1 { font-size: clamp(2.1rem, 3.1vw, 2.5rem); line-height: 1.14; }
.pfm-lede { font-size: 1.05rem; margin-bottom: 22px; }
.pfm-hero__media img { height: 395px; aspect-ratio: auto; border-radius: 13px; object-position: 50% 55%; box-shadow: 0 10px 26px rgba(58, 46, 48, .12); }
.pfm-cards { margin-top: 26px; }
.pfm-card { background: #faf4ec; border-color: #e6d8c2; box-shadow: 0 2px 8px rgba(58, 46, 48, .06); }
@media (max-width: 900px) {
  .pfm-hero__media img { height: auto; aspect-ratio: 1200 / 820; }
}

/* Theme6 1.2.1 (Nov 10, 2026, ProForge theme standard): Lucide icons on Our Services cards, click-to-call header, About checkmarks, FAQ, demo before/after gallery. */
.service-card__icon{display:grid;place-items:center;width:50px;height:50px;margin-bottom:16px;border-radius:50%;background:#e0a526;color:#fff}
.service-card__icon svg{width:26px;height:26px}
.pfm-card__icon svg.pf-lucide{stroke-width:1.9}
.pfm-call{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:#6b1e2e;text-decoration:none;white-space:nowrap}
.pfm-call svg{width:18px;height:18px;flex:none}
.pfm-call:hover{color:#561623}
.pfm-call--solid{padding:9px 18px;border:2px solid #6b1e2e;border-radius:var(--radius,8px);background:#6b1e2e;color:#fff}
.pfm-call--solid:hover{background:#561623;border-color:#561623;color:#fff}
@media (min-width:901px) and (max-width:1100px){.pfm-call:not(.pfm-call--solid) span{display:none}}
@media (max-width:600px){.pfm-call span{display:none}.pfm-call{display:grid;place-items:center;width:42px;height:42px;padding:0;border:2px solid #6b1e2e;border-radius:50%}.pfm-call--solid{color:#fff}}
.about-checks{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px}
.about-checks li{display:flex;align-items:center;gap:10px;font-weight:600;color:#3a2e30}
.about-checks svg{width:22px;height:22px;flex:none;color:#6b1e2e}
.faq-list{display:grid;gap:12px;max-width:860px}
.faq-item{background:var(--card,#fff);border:1px solid var(--line,#e6d8c2);border-radius:10px;padding:0 22px}
.faq-item summary{cursor:pointer;padding:18px 0;font-weight:700;color:#6b1e2e;list-style-position:outside}
.faq-item p{margin:0 0 18px;color:var(--ink-soft,#4a3b3d)}
.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.work-card{background:#faf4ec;border:1px solid #e6d8c2;border-radius:10px;overflow:hidden}
.work-pair{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.work-pair figure{position:relative;margin:0}
.work-pair img{display:block;width:100%;height:170px;object-fit:cover}
.work-tag{position:absolute;left:8px;top:8px;padding:3px 8px;border-radius:4px;background:rgba(42,26,29,.78);color:#fff;font-size:.75rem;font-weight:700}
.work-card h3{margin:0;padding:14px 16px;font-size:1.1rem;color:#6b1e2e}
@media (max-width:900px){.work-grid{grid-template-columns:1fr;max-width:620px}}
/* Theme6 1.2.1: hero stacks on phones (the r5 desktop grid rule came after the 900px rule and kept two columns on mobile). */
@media (max-width:900px){.pfm-hero__grid{grid-template-columns:minmax(0,1fr);gap:28px}}
/* Cullen, Nov 10, 2026 9:38 PM CT: commitments heading on one line at desktop; white Recent Work and lead form sections. */
@media (min-width: 981px) { #commitments .section-head { max-width: none; } #commitments .section-head p { max-width: 640px; } #commitments .section-head h2 { white-space: nowrap; } }
#recent-work { background: #ffffff; }
.pfl { background: #ffffff; box-shadow: 0 0 0 100vmax #ffffff; clip-path: inset(0 -100vmax); }

/* Header fit (ProForge, Nov 1, 2026): long business names stay on at most 2 lines next to the six-item menu. */
@media (min-width: 981px) {
  .site-header__inner { grid-template-columns: minmax(270px, 1.25fr) auto minmax(170px, .75fr); gap: 22px; }
  .brand { width: auto; min-width: 0; }
  .brand__name { font-size: 23px; line-height: 1.05; letter-spacing: -.03em; }
  .mainnav .menu a { white-space: nowrap; }
}

/* ProForge sample reviews (template demos only, Builder and Master): Theme 6 card style, mustard stars. */
.pf-sample-reviews.section{background:#faf5ec}
.quotes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.quotes-grid blockquote{display:flex;flex-direction:column;margin:0;padding:28px 26px;background:#fff;border:1px solid #e6d8c2;border-radius:10px;box-shadow:0 2px 8px rgba(58,46,48,.06)}
.quotes-grid .stars{color:#e0a526;font-size:18px;letter-spacing:.15em}
.quotes-grid p{margin:12px 0 18px;color:#4a3b3d;font-size:.98rem;line-height:1.6}
.quotes-grid cite{margin-top:auto;color:#6b1e2e;font-size:.8rem;font-style:normal;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
@media(max-width:900px){.quotes-grid{grid-template-columns:1fr;max-width:620px}}
