/* Fire & Hearth Solutions — Shared Stylesheet */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --slate: #1c2128; --slate-mid: #2d3441; --slate-light: #3d4654;
  --ember: #c4622d; --ember-light: #d4783e; --ember-dim: #8a3f1a;
  --gold: #b8965a; --gold-light: #d4b07a;
  --cream: #f4ede0; --cream-mid: #e8ddd0; --cream-dark: #d4c4b0;
  --text-light: #f0e8da; --text-muted: #a09080; --white: #ffffff;
}
html { scroll-behavior: smooth; }
body { font-family: 'Jost', sans-serif; background: var(--slate); color: var(--text-light); line-height: 1.6; font-weight: 300; }

/* NAV */
nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: 1rem 2.5rem; background: rgba(28,33,40,0.97); border-bottom: 1px solid rgba(196,98,45,0.2); }
.nav-logo { font-family: 'Cormorant Garamond', serif; font-size: 1.3rem; font-weight: 500; color: var(--gold-light); letter-spacing: 0.04em; line-height: 1.2; text-decoration: none; display: block; }
.nav-logo span { display: block; font-size: 0.62rem; font-family: 'Jost', sans-serif; font-weight: 400; letter-spacing: 0.2em; text-transform: uppercase; color: var(--text-muted); }
.nav-links { display: flex; gap: 1.8rem; list-style: none; }
.nav-links a { font-size: 0.73rem; font-weight: 400; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cream-mid); text-decoration: none; transition: color 0.2s; }
.nav-links a:hover { color: var(--gold-light); }
.nav-cta { font-size: 0.73rem; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ember-light); text-decoration: none; border: 1px solid var(--ember); padding: 0.5rem 1.2rem; transition: all 0.2s; white-space: nowrap; }
.nav-cta:hover { background: var(--ember); color: var(--white); }

/* TRUST BAR */
.trust-bar { background: var(--ember-dim); padding: 0.9rem 2.5rem; }
.trust-bar-inner { max-width: 1100px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.8rem; }
.trust-bar-item { display: flex; align-items: center; gap: 0.5rem; font-size: 0.74rem; font-weight: 400; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(244,237,224,0.9); }
.trust-bar-item::before { content: '✦'; font-size: 0.5rem; color: var(--gold-light); }

/* HERO */
.hero { padding: 5.5rem 2.5rem 3.5rem; position: relative; overflow: hidden; }
.hero-bg { position: absolute; inset: 0; z-index: 0; background-color: #1a1008; background-image: url('img-gas-fireplace-living-room.png'); background-size: cover; background-position: center; filter: brightness(0.28); }
.hero-bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(105deg, rgba(28,33,40,0.92) 40%, rgba(196,98,45,0.08) 100%); }
.hero-inner { max-width: 1100px; margin: 0 auto; position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.breadcrumb { font-size: 0.72rem; color: var(--text-muted); margin-bottom: 1rem; display: flex; align-items: center; gap: 0.4rem; }
.breadcrumb a { color: var(--text-muted); text-decoration: none; transition: color 0.2s; }
.breadcrumb a:hover { color: var(--gold-light); }
.breadcrumb span { color: var(--ember-light); }
.hero-eyebrow { font-size: 0.7rem; font-weight: 500; letter-spacing: 0.26em; text-transform: uppercase; color: var(--ember-light); margin-bottom: 1rem; display: flex; align-items: center; gap: 0.7rem; }
.hero-eyebrow::before { content: ''; display: block; width: 28px; height: 1px; background: var(--ember); }
.hero h1 { font-family: 'Cormorant Garamond', serif; font-size: clamp(2.2rem, 3.8vw, 3.8rem); font-weight: 500; line-height: 1.06; color: var(--cream); margin-bottom: 1.2rem; }
.hero h1 em { font-style: italic; color: var(--gold-light); }
.hero-desc { font-size: 0.95rem; font-weight: 300; color: var(--cream-mid); line-height: 1.75; max-width: 420px; margin-bottom: 2rem; }
.hero-actions { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.hero-right { display: flex; flex-direction: column; gap: 1rem; }
.hero-badge-card { background: rgba(45,52,65,0.88); border: 1px solid rgba(196,98,45,0.3); padding: 1.5rem 1.8rem; position: relative; }
.hero-badge-card::before { content: ''; position: absolute; top: 0; left: 0; width: 3px; height: 100%; background: var(--ember); }
.hero-badge-card h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.25rem; font-weight: 500; color: var(--cream); margin-bottom: 0.4rem; }
.hero-badge-card p { font-size: 0.83rem; color: var(--cream-mid); line-height: 1.6; }
.trust-row { display: flex; gap: 0.8rem; }
.trust-chip { flex: 1; background: rgba(28,33,40,0.8); border: 1px solid rgba(184,150,90,0.3); padding: 0.8rem; text-align: center; }
.trust-chip .num { font-family: 'Cormorant Garamond', serif; font-size: 1.4rem; font-weight: 600; color: var(--gold-light); display: block; line-height: 1.1; }
.trust-chip .label { font-size: 0.62rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cream-mid); }

/* BUTTONS */
.btn-primary { display: inline-block; background: var(--ember); color: var(--white); padding: 0.8rem 2rem; font-size: 0.76rem; font-weight: 500; letter-spacing: 0.13em; text-transform: uppercase; text-decoration: none; transition: background 0.2s; }
.btn-primary:hover { background: var(--ember-light); }
.btn-ghost { display: inline-flex; align-items: center; gap: 0.4rem; color: var(--gold-light); font-size: 0.76rem; font-weight: 400; letter-spacing: 0.11em; text-transform: uppercase; text-decoration: none; transition: color 0.2s; }
.btn-ghost:hover { color: var(--cream); }
.btn-ghost::after { content: '→'; }
.btn-outline { display: inline-block; border: 1px solid rgba(184,150,90,0.4); color: var(--gold-light); padding: 0.8rem 2rem; font-size: 0.76rem; font-weight: 400; letter-spacing: 0.13em; text-transform: uppercase; text-decoration: none; transition: all 0.2s; }
.btn-outline:hover { border-color: var(--gold-light); color: var(--cream); }

/* SECTIONS */
section { padding: 4rem 2.5rem; }
.section-inner { max-width: 1100px; margin: 0 auto; }
.section-label { font-size: 0.7rem; font-weight: 500; letter-spacing: 0.26em; text-transform: uppercase; color: var(--ember-light); margin-bottom: 0.7rem; display: flex; align-items: center; gap: 0.7rem; }
.section-label::before { content: ''; display: block; width: 22px; height: 1px; background: var(--ember); }
.section-heading { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.8rem, 3vw, 2.8rem); font-weight: 500; color: var(--cream); line-height: 1.1; margin-bottom: 0.8rem; }
.section-subhead { font-size: 0.93rem; color: var(--text-muted); font-weight: 300; max-width: 580px; line-height: 1.75; margin-bottom: 2.5rem; }

/* SERVICES GRID */
.services-section { background: var(--slate-mid); }
.services-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5px; background: rgba(196,98,45,0.15); }
.service-card { background: var(--slate-mid); padding: 1.8rem 1.6rem; transition: background 0.25s; }
.service-card:hover { background: var(--slate-light); }
.service-icon { font-size: 1.8rem; margin-bottom: 0.9rem; }
.service-card h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.3rem; font-weight: 500; color: var(--cream); margin-bottom: 0.5rem; }
.service-card p { font-size: 0.83rem; color: var(--text-muted); line-height: 1.75; margin-bottom: 1rem; }
.service-list { list-style: none; display: flex; flex-direction: column; gap: 0.32rem; }
.service-list li { font-size: 0.78rem; color: var(--cream-dark); display: flex; align-items: center; gap: 0.5rem; }
.service-list li::before { content: '—'; color: var(--ember); font-size: 0.65rem; flex-shrink: 0; }

/* WHY */
.why-section { background: var(--slate); }
.why-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 4.5rem; align-items: start; }
.why-intro p { font-size: 0.92rem; color: var(--text-muted); line-height: 1.85; margin-bottom: 1.1rem; }
.why-intro p strong { color: var(--cream-mid); font-weight: 500; }
.why-pillars { display: flex; flex-direction: column; }
.why-pillar { display: flex; gap: 1.2rem; align-items: flex-start; padding: 1.3rem 0; border-bottom: 1px solid rgba(255,255,255,0.06); }
.why-pillar:first-child { padding-top: 0; }
.why-pillar:last-child { border-bottom: none; }
.pillar-icon { width: 40px; height: 40px; flex-shrink: 0; background: rgba(196,98,45,0.1); border: 1px solid rgba(196,98,45,0.25); display: flex; align-items: center; justify-content: center; font-size: 1.1rem; }
.pillar-body h4 { font-family: 'Cormorant Garamond', serif; font-size: 1.05rem; font-weight: 500; color: var(--cream); margin-bottom: 0.25rem; }
.pillar-body p { font-size: 0.82rem; color: var(--text-muted); line-height: 1.7; }

/* REAL ESTATE */
.realestate-section { background: var(--slate-mid); }
.realestate-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: start; }
.realestate-content p { font-size: 0.92rem; color: var(--text-muted); line-height: 1.85; margin-bottom: 1.1rem; }
.realestate-content p strong { color: var(--cream-mid); font-weight: 500; }
.realestate-cards { display: flex; flex-direction: column; gap: 1rem; }
.realestate-card { background: var(--slate-light); border: 1px solid rgba(184,150,90,0.18); border-left: 3px solid var(--ember); padding: 1.3rem 1.5rem; }
.realestate-card h4 { font-family: 'Cormorant Garamond', serif; font-size: 1.1rem; font-weight: 500; color: var(--cream); margin-bottom: 0.35rem; }
.realestate-card p { font-size: 0.82rem; color: var(--text-muted); line-height: 1.7; margin: 0; }
.realestate-cta { margin-top: 1.5rem; display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.76rem; font-weight: 500; letter-spacing: 0.13em; text-transform: uppercase; color: var(--ember-light); text-decoration: none; border-bottom: 1px solid rgba(196,98,45,0.35); padding-bottom: 0.2rem; transition: color 0.2s, border-color 0.2s; }
.realestate-cta:hover { color: var(--gold-light); border-color: var(--gold-light); }
.realestate-cta::after { content: '→'; }

/* MOOD PHOTO */
.mood-photo { height: 300px; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; background: #1a1008; }
.mood-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(0.4); }
.mood-photo-content { position: relative; z-index: 1; text-align: center; max-width: 640px; padding: 2rem; }
.mood-photo-content h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.8rem, 3vw, 3rem); font-style: italic; font-weight: 400; color: var(--cream); line-height: 1.15; margin-bottom: 0.7rem; }
.mood-photo-content p { font-size: 0.9rem; color: var(--cream-mid); font-weight: 300; line-height: 1.75; }

/* SERVICE AREA */
.area-section { background: var(--slate); }
.county-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; margin-bottom: 2rem; }
.county-card { border: 1px solid rgba(184,150,90,0.2); padding: 1.8rem 2rem; position: relative; }
.county-card::before { content: ''; position: absolute; top: 0; left: 0; width: 3px; height: 100%; background: var(--gold); }
.county-card h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.3rem; font-weight: 500; color: var(--cream); margin-bottom: 0.5rem; }
.county-card p { font-size: 0.84rem; color: var(--text-muted); line-height: 1.75; margin-bottom: 1rem; }
.towns { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.town-pill { font-size: 0.72rem; font-weight: 400; letter-spacing: 0.1em; color: var(--cream-mid); background: rgba(184,150,90,0.08); border: 1px solid rgba(184,150,90,0.2); padding: 0.25rem 0.7rem; }

/* CTA */
.cta-section { background: var(--slate-mid); padding: 4rem 2.5rem; text-align: center; }
.cta-inner { max-width: 580px; margin: 0 auto; }
.cta-inner p { color: var(--text-muted); font-size: 0.93rem; line-height: 1.8; margin-bottom: 2rem; }
.cta-actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
.contact-details { display: flex; justify-content: center; gap: 2.5rem; margin-top: 2rem; flex-wrap: wrap; }
.contact-item { text-align: center; }
.contact-item .c-label { font-size: 0.65rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ember-light); margin-bottom: 0.3rem; }
.contact-item a { font-size: 0.9rem; color: var(--cream-mid); text-decoration: none; font-weight: 300; }
.contact-item a:hover { color: var(--gold-light); }

/* CONTACT FORM */
.form-section { background: var(--slate); }
.form-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; }
.form-info p { font-size: 0.92rem; color: var(--text-muted); line-height: 1.85; margin-bottom: 1.2rem; }
.form-info p strong { color: var(--cream-mid); font-weight: 500; }
.contact-blocks { display: flex; flex-direction: column; gap: 1rem; margin-top: 1.5rem; }
.contact-block { display: flex; gap: 1rem; align-items: flex-start; padding: 1.2rem 1.4rem; border: 1px solid rgba(184,150,90,0.15); border-left: 3px solid var(--gold); }
.contact-block-icon { font-size: 1.3rem; flex-shrink: 0; margin-top: 0.1rem; }
.contact-block h4 { font-family: 'Cormorant Garamond', serif; font-size: 1rem; font-weight: 500; color: var(--cream); margin-bottom: 0.2rem; }
.contact-block a, .contact-block p { font-size: 0.85rem; color: var(--text-muted); text-decoration: none; line-height: 1.6; }
.contact-block a:hover { color: var(--gold-light); }
.form-wrap { background: var(--slate-mid); padding: 2.5rem; }
.form-wrap h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.6rem; font-weight: 500; color: var(--cream); margin-bottom: 0.4rem; }
.form-wrap .form-sub { font-size: 0.83rem; color: var(--text-muted); margin-bottom: 2rem; }
.form-group { margin-bottom: 1.2rem; }
.form-group label { display: block; font-size: 0.72rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cream-mid); margin-bottom: 0.4rem; }
.form-group input, .form-group select, .form-group textarea {
  width: 100%; background: var(--slate); border: 1px solid rgba(184,150,90,0.2);
  color: var(--cream-mid); font-family: 'Jost', sans-serif; font-size: 0.88rem;
  font-weight: 300; padding: 0.75rem 1rem; transition: border-color 0.2s; outline: none;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color: rgba(196,98,45,0.6); }
.form-group select { appearance: none; cursor: pointer; }
.form-group textarea { resize: vertical; min-height: 120px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.form-submit { width: 100%; margin-top: 0.5rem; cursor: pointer; font-family: 'Jost', sans-serif; }
.form-success { display: none; text-align: center; padding: 2rem; }
.form-success h4 { font-family: 'Cormorant Garamond', serif; font-size: 1.5rem; color: var(--cream); margin-bottom: 0.5rem; }
.form-success p { font-size: 0.88rem; color: var(--text-muted); }

/* FOOTER */
footer { background: var(--slate); border-top: 1px solid rgba(196,98,45,0.2); padding: 2.5rem; }
.footer-inner { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 2.5rem; }
.footer-logo { font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; font-weight: 500; color: var(--gold-light); margin-bottom: 0.6rem; }
.footer-tagline { font-size: 0.8rem; color: var(--text-muted); line-height: 1.7; max-width: 270px; }
.footer-col h4 { font-size: 0.68rem; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ember-light); margin-bottom: 1rem; }
.footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 0.55rem; }
.footer-col ul li a { font-size: 0.82rem; color: var(--text-muted); text-decoration: none; transition: color 0.2s; }
.footer-col ul li a:hover { color: var(--gold-light); }
.footer-col ul li { font-size: 0.82rem; color: var(--text-muted); }
.footer-bottom { max-width: 1100px; margin: 2rem auto 0; padding-top: 1.2rem; border-top: 1px solid rgba(255,255,255,0.06); display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 0.8rem; }
.footer-bottom p { font-size: 0.75rem; color: var(--text-muted); }
.footer-contact { display: flex; gap: 1.8rem; }
.footer-contact a { font-size: 0.8rem; color: var(--gold-light); text-decoration: none; transition: color 0.2s; }
.footer-contact a:hover { color: var(--cream); }

/* CHAT WIDGET */
.chat-bubble { position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 999; }
.chat-toggle { width: 56px; height: 56px; border-radius: 50%; background: var(--ember); border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 1.4rem; box-shadow: 0 4px 20px rgba(196,98,45,0.4); transition: background 0.2s, transform 0.2s; }
.chat-toggle:hover { background: var(--ember-light); transform: scale(1.05); }
.chat-window { display: none; position: absolute; bottom: 70px; right: 0; width: 340px; background: var(--slate-mid); border: 1px solid rgba(196,98,45,0.25); flex-direction: column; overflow: hidden; }
.chat-window.open { display: flex; }
.chat-header { background: var(--ember-dim); padding: 1rem 1.2rem; display: flex; align-items: center; justify-content: space-between; }
.chat-header-info h4 { font-family: 'Cormorant Garamond', serif; font-size: 1rem; font-weight: 500; color: var(--cream); }
.chat-header-info p { font-size: 0.72rem; color: rgba(244,237,224,0.65); }
.chat-close { background: none; border: none; color: var(--cream-mid); cursor: pointer; font-size: 1.1rem; padding: 0.2rem; }
.chat-messages { flex: 1; overflow-y: auto; padding: 1rem; display: flex; flex-direction: column; gap: 0.8rem; max-height: 320px; min-height: 200px; }
.chat-msg { max-width: 85%; padding: 0.65rem 0.9rem; font-size: 0.83rem; line-height: 1.55; }
.chat-msg.bot { background: var(--slate-light); color: var(--cream-mid); align-self: flex-start; border-left: 2px solid var(--ember); }
.chat-msg.user { background: var(--ember-dim); color: var(--cream); align-self: flex-end; }
.chat-msg.bot.typing { color: var(--text-muted); font-style: italic; }
.chat-input-row { display: flex; gap: 0; border-top: 1px solid rgba(196,98,45,0.2); }
.chat-input-row input { flex: 1; background: var(--slate); border: none; color: var(--cream-mid); font-family: 'Jost', sans-serif; font-size: 0.83rem; font-weight: 300; padding: 0.75rem 1rem; outline: none; }
.chat-input-row input::placeholder { color: var(--text-muted); }
.chat-send { background: var(--ember); border: none; color: var(--white); padding: 0 1rem; cursor: pointer; font-size: 1rem; transition: background 0.2s; }
.chat-send:hover { background: var(--ember-light); }

/* RESPONSIVE */
@media (max-width: 860px) {
  nav { padding: 0.9rem 1.2rem; }
  .nav-links { display: none; }
  .hero { padding: 5rem 1.2rem 2.5rem; }
  .hero-inner, .why-layout, .realestate-layout, .county-grid, .form-layout { grid-template-columns: 1fr; gap: 2rem; }
  section { padding: 3rem 1.2rem; }
  .services-grid { grid-template-columns: 1fr 1fr; }
  .footer-inner { grid-template-columns: 1fr; gap: 1.8rem; }
  .trust-bar { padding: 0.9rem 1.2rem; }
  .mood-photo { height: 240px; }
  .form-row { grid-template-columns: 1fr; }
  .chat-window { width: 300px; }
}

/* HOME PAGE SPECIFIC */
.hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; max-width: 1100px; margin: 0 auto; position: relative; z-index: 1; }
.hero-visual { display: flex; flex-direction: column; gap: 1rem; }
.hero-eyebrow { font-size: 0.7rem; font-weight: 500; letter-spacing: 0.26em; text-transform: uppercase; color: var(--ember-light); margin-bottom: 1.1rem; display: flex; align-items: center; gap: 0.7rem; }
.hero-eyebrow::before { content: ''; display: block; width: 28px; height: 1px; background: var(--ember); }
.hero h1 { font-family: 'Cormorant Garamond', serif; font-size: clamp(2.4rem, 4vw, 4.2rem); font-weight: 500; line-height: 1.06; color: var(--cream); margin-bottom: 1.2rem; }
.hero h1 em { font-style: italic; color: var(--gold-light); }
.hero-desc { font-size: 0.95rem; font-weight: 300; color: var(--cream-mid); line-height: 1.75; max-width: 420px; margin-bottom: 2rem; }

/* PHOTO STRIP */
.photo-strip { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 3px; height: 320px; }
.photo-strip-item { overflow: hidden; position: relative; }
.ps-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease, filter 0.3s; filter: brightness(0.75); }
.photo-strip-item:hover .ps-img { transform: scale(1.04); filter: brightness(0.95); }
.ps-fallback { position: absolute; inset: 0; }
.ps-1 .ps-fallback { background: linear-gradient(135deg, #2a1a10 0%, #3d2415 100%); }
.ps-2 .ps-fallback { background: linear-gradient(135deg, #1c2410 0%, #2a3418 100%); }
.ps-3 .ps-fallback { background: linear-gradient(135deg, #10181c 0%, #1c2a30 100%); }
.photo-label { position: absolute; bottom: 0; left: 0; right: 0; padding: 1.2rem 1rem 0.8rem; background: linear-gradient(to top, rgba(28,33,40,0.92) 0%, transparent 100%); font-size: 0.72rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cream-mid); z-index: 1; }

/* INSPECTION SECTION */
.inspection-section { background: var(--slate-mid); }
.inspection-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: start; }
.inspection-intro p { font-size: 0.92rem; color: var(--text-muted); line-height: 1.85; margin-bottom: 1.2rem; }
.inspection-intro p strong { color: var(--cream-mid); font-weight: 500; }
.nfpa-badge { display: inline-flex; align-items: center; gap: 0.8rem; border: 1px solid rgba(196,98,45,0.4); padding: 1rem 1.4rem; margin-top: 0.5rem; }
.nfpa-badge .nfpa-code { font-family: 'Cormorant Garamond', serif; font-size: 1.8rem; font-weight: 600; color: var(--ember-light); line-height: 1; }
.nfpa-badge .nfpa-text { font-size: 0.75rem; color: var(--cream-mid); line-height: 1.5; }
.nfpa-badge .nfpa-text strong { display: block; font-weight: 500; font-size: 0.78rem; color: var(--cream); }
.inspection-pillars { display: flex; flex-direction: column; }
.inspection-pillar { display: flex; gap: 1.2rem; align-items: flex-start; padding: 1.4rem 0; border-bottom: 1px solid rgba(255,255,255,0.06); }
.inspection-pillar:first-child { padding-top: 0; }
.inspection-pillar:last-child { border-bottom: none; }
.pillar-icon { width: 42px; height: 42px; flex-shrink: 0; background: rgba(196,98,45,0.1); border: 1px solid rgba(196,98,45,0.25); display: flex; align-items: center; justify-content: center; font-size: 1.2rem; }
.pillar-body h4 { font-family: 'Cormorant Garamond', serif; font-size: 1.1rem; font-weight: 500; color: var(--cream); margin-bottom: 0.3rem; }
.pillar-body p { font-size: 0.82rem; color: var(--text-muted); line-height: 1.7; }

/* ABOUT */
.about-section { background: var(--slate-mid); }
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; }
.about-left { padding-top: 0.3rem; }
.about-body { display: flex; flex-direction: column; gap: 1rem; margin-bottom: 2rem; }
.about-body p { font-size: 0.92rem; color: var(--text-muted); line-height: 1.85; }
.about-body p strong { color: var(--cream-mid); font-weight: 500; }
.about-right { display: flex; flex-direction: column; gap: 1.2rem; padding-top: 4rem; }
.about-stat { padding: 1.4rem 1.8rem; border: 1px solid rgba(184,150,90,0.15); border-left: 3px solid var(--gold); background: rgba(184,150,90,0.04); }
.about-stat .stat-num { font-family: 'Cormorant Garamond', serif; font-size: 2.6rem; font-weight: 600; color: var(--gold-light); line-height: 1; display: block; margin-bottom: 0.3rem; }
.about-stat .stat-label { font-size: 0.78rem; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--cream-mid); display: block; margin-bottom: 0.4rem; }
.about-stat p { font-size: 0.82rem; color: var(--text-muted); line-height: 1.65; }
.about-certs { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 0.5rem; }
.cert-pill { font-size: 0.72rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-light); background: rgba(184,150,90,0.08); border: 1px solid rgba(184,150,90,0.25); padding: 0.4rem 1rem; }

/* SERVE */
.serve-section { background: var(--slate); }
.serve-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.serve-card { border: 1px solid rgba(184,150,90,0.2); padding: 2rem; position: relative; overflow: hidden; transition: border-color 0.25s; }
.serve-card:hover { border-color: rgba(184,150,90,0.5); }
.serve-card::after { content: ''; position: absolute; bottom: 0; right: 0; width: 60px; height: 60px; border-top: 1px solid rgba(196,98,45,0.15); border-left: 1px solid rgba(196,98,45,0.15); }
.serve-card .tag { font-size: 0.65rem; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold-light); background: rgba(184,150,90,0.1); border: 1px solid rgba(184,150,90,0.2); padding: 0.25rem 0.7rem; display: inline-block; margin-bottom: 1rem; }
.serve-card h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.6rem; font-weight: 500; color: var(--cream); margin-bottom: 0.6rem; }
.serve-card p { font-size: 0.85rem; color: var(--text-muted); line-height: 1.75; }

/* AREA BAND */
.area-band { background: var(--slate-mid); border-top: 1px solid rgba(196,98,45,0.2); border-bottom: 1px solid rgba(196,98,45,0.2); padding: 1.5rem 2.5rem; }
.area-band-inner { max-width: 1100px; margin: 0 auto; display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.area-label { font-size: 0.7rem; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ember-light); flex-shrink: 0; }
.area-divider { width: 1px; height: 1.2rem; background: rgba(196,98,45,0.3); flex-shrink: 0; }
.area-locations { display: flex; flex-wrap: wrap; gap: 0.4rem 1.8rem; }
.area-loc { font-size: 0.85rem; color: var(--cream-mid); display: flex; align-items: center; gap: 0.4rem; }
.area-loc::before { content: '\25C6'; font-size: 0.4rem; color: var(--gold); }

/* WHY GRID (home page version) */
.why-section { background: var(--slate); }
.why-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.8rem; margin-top: 0.5rem; }
.why-item { padding-top: 1.2rem; border-top: 1px solid rgba(196,98,45,0.3); }
.why-item h4 { font-family: 'Cormorant Garamond', serif; font-size: 1.1rem; font-weight: 500; color: var(--cream); margin-bottom: 0.5rem; }
.why-item p { font-size: 0.82rem; color: var(--text-muted); line-height: 1.75; }

/* TESTIMONIAL */
.testimonial-section { background: var(--ember-dim); padding: 3.5rem 2.5rem; }
.testimonial-inner { max-width: 860px; margin: 0 auto; text-align: center; }
.testimonial-inner blockquote { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.35rem, 2.2vw, 2rem); font-style: italic; font-weight: 400; color: var(--cream); line-height: 1.5; margin-bottom: 1.5rem; }
.testimonial-inner blockquote::before { content: '\201C'; color: var(--gold-light); }
.testimonial-inner blockquote::after { content: '\201D'; color: var(--gold-light); }
.testimonial-attr { font-size: 0.76rem; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(244,237,224,0.55); }

/* REALESTATE SECTION HOME */
.realestate-section { background: var(--slate); }
.realestate-layout { display: grid; grid-template-columns: 1.1fr 1fr; gap: 4.5rem; align-items: start; }
.realestate-content p { font-size: 0.92rem; color: var(--text-muted); line-height: 1.85; margin-bottom: 1.1rem; }
.realestate-content p strong { color: var(--cream-mid); font-weight: 500; }
.realestate-cards { display: flex; flex-direction: column; gap: 1rem; }
.realestate-card { background: var(--slate-mid); border: 1px solid rgba(184,150,90,0.18); border-left: 3px solid var(--ember); padding: 1.4rem 1.6rem; transition: border-color 0.2s; }
.realestate-card:hover { border-color: rgba(184,150,90,0.45); border-left-color: var(--ember-light); }
.realestate-card h4 { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; font-weight: 500; color: var(--cream); margin-bottom: 0.4rem; }
.realestate-card p { font-size: 0.83rem; color: var(--text-muted); line-height: 1.7; margin: 0; }
.realestate-cta { margin-top: 1.5rem; display: inline-flex; align-items: center; gap: 0.6rem; font-size: 0.76rem; font-weight: 500; letter-spacing: 0.13em; text-transform: uppercase; color: var(--ember-light); text-decoration: none; border-bottom: 1px solid rgba(196,98,45,0.35); padding-bottom: 0.2rem; transition: color 0.2s, border-color 0.2s; }
.realestate-cta:hover { color: var(--gold-light); border-color: var(--gold-light); }
.realestate-cta::after { content: '\2192'; }

/* RESPONSIVE additions */
@media (max-width: 860px) {
  .hero-grid, .about-grid, .inspection-layout, .realestate-layout, .serve-grid { grid-template-columns: 1fr; gap: 2rem; }
  .photo-strip { grid-template-columns: 1fr; height: auto; }
  .photo-strip-item { height: 200px; }
  .why-grid { grid-template-columns: 1fr 1fr; }
  .about-right { padding-top: 0; }
  .area-band { padding: 0.9rem 1.2rem; }
}

/* SERVICE CARD LINKS */
.service-link {
  display: inline-flex; align-items: center; gap: 0.4rem;
  margin-top: 1.2rem; font-size: 0.76rem; font-weight: 500;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ember-light); text-decoration: none;
  border-bottom: 1px solid rgba(196,98,45,0.3);
  padding-bottom: 0.15rem; transition: color 0.2s, border-color 0.2s;
}
.service-link:hover { color: var(--gold-light); border-color: var(--gold-light); }

/* LOCATION CARDS */
.locations-section { background: var(--slate-mid); }
.location-cards-grid {
  display: grid; grid-template-columns: repeat(6, 1fr); gap: 1rem;
}
.location-card {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; text-align: center; text-decoration: none;
  padding: 1.6rem 1rem; background: var(--slate);
  border: 1px solid rgba(184,150,90,0.18);
  transition: border-color 0.2s, background 0.2s;
  gap: 0.2rem;
}
.location-card:hover { border-color: rgba(196,98,45,0.5); background: var(--slate-light); }
.location-card-state {
  font-size: 0.65rem; font-weight: 500; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--ember-light);
}
.location-card-city {
  font-family: 'Cormorant Garamond', serif; font-size: 1.4rem;
  font-weight: 500; color: var(--cream); line-height: 1.1;
}
.location-card-arrow {
  font-size: 0.85rem; color: var(--gold); margin-top: 0.4rem;
  transition: transform 0.2s;
}
.location-card:hover .location-card-arrow { transform: translateX(3px); }

@media (max-width: 860px) {
  .location-cards-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 480px) {
  .location-cards-grid { grid-template-columns: repeat(2, 1fr); }
}

/* BEFORE / AFTER SECTION */
.ba-section { background: var(--slate-mid); }
.ba-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-bottom: 2.5rem; }
.ba-card { background: var(--slate); border: 1px solid rgba(196,98,45,0.2); overflow: hidden; }
.ba-label-row { padding: 1rem 1.4rem 0.8rem; border-bottom: 1px solid rgba(196,98,45,0.15); }
.ba-type-tag { font-size: 0.72rem; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-light); }
.ba-img-wrap { width: 100%; overflow: hidden; }
.ba-img { width: 100%; height: auto; display: block; transition: transform 0.4s ease; }
.ba-card:hover .ba-img { transform: scale(1.02); }
.ba-caption { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.ba-caption-item { padding: 1rem 1.2rem; border-top: 1px solid rgba(196,98,45,0.15); }
.ba-caption-item:first-child { border-right: 1px solid rgba(196,98,45,0.15); }
.ba-badge { display: inline-block; font-size: 0.65rem; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; padding: 0.2rem 0.6rem; margin-bottom: 0.5rem; }
.ba-badge.before { background: rgba(100,100,100,0.2); color: var(--text-muted); border: 1px solid rgba(150,150,150,0.2); }
.ba-badge.after { background: rgba(196,98,45,0.15); color: var(--ember-light); border: 1px solid rgba(196,98,45,0.3); }
.ba-caption-item p { font-size: 0.8rem; color: var(--text-muted); line-height: 1.7; }
.ba-note { background: rgba(196,98,45,0.07); border: 1px solid rgba(196,98,45,0.25); border-left: 3px solid var(--ember); padding: 1.4rem 1.8rem; }
.ba-note p { font-size: 0.88rem; color: var(--cream-mid); line-height: 1.75; }
.ba-note p strong { color: var(--cream); font-weight: 500; }

@media (max-width: 860px) {
  .ba-grid { grid-template-columns: 1fr; }
  .ba-caption { grid-template-columns: 1fr; }
  .ba-caption-item:first-child { border-right: none; border-bottom: 1px solid rgba(196,98,45,0.15); }
}

/* OUR WORK SECTION */
.ourwork-section { background: var(--slate); }
.ourwork-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-bottom: 1.5rem; }
.ourwork-card { background: var(--slate-mid); border: 1px solid rgba(184,150,90,0.15); overflow: hidden; }
.ourwork-img-wrap { position: relative; overflow: hidden; aspect-ratio: 4/3; }
.ourwork-img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; transition: transform 0.5s ease; display: block; }
.ourwork-card:hover .ourwork-img { transform: scale(1.03); }
.ourwork-tag {
  position: absolute; top: 1rem; left: 1rem;
  font-size: 0.68rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase;
  background: rgba(28,33,40,0.85); color: var(--text-muted);
  border: 1px solid rgba(150,150,150,0.25); padding: 0.25rem 0.7rem;
}
.ourwork-tag-after {
  background: rgba(139,63,26,0.85); color: var(--cream-mid);
  border-color: rgba(196,98,45,0.4);
}
.ourwork-caption { padding: 1.4rem 1.6rem; }
.ourwork-caption h4 { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; font-weight: 500; color: var(--cream); margin-bottom: 0.5rem; }
.ourwork-caption p { font-size: 0.83rem; color: var(--text-muted); line-height: 1.75; }
.ourwork-note { font-size: 0.8rem; color: var(--text-muted); font-style: italic; text-align: center; }

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

/* FAQ PAGE */
.faq-section { padding: 4rem 2.5rem; background: var(--slate); }
.faq-inner { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: 260px 1fr; gap: 4rem; align-items: start; }

/* Sticky sidebar */
.faq-sidebar { position: sticky; top: 5.5rem; }
.faq-nav-label { font-size: 0.68rem; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ember-light); margin-bottom: 0.8rem; }
.faq-nav { list-style: none; display: flex; flex-direction: column; gap: 0; border-left: 1px solid rgba(196,98,45,0.2); }
.faq-nav li a { display: block; padding: 0.55rem 1rem; font-size: 0.82rem; color: var(--text-muted); text-decoration: none; border-left: 2px solid transparent; margin-left: -1px; transition: color 0.2s, border-color 0.2s; }
.faq-nav li a:hover { color: var(--gold-light); border-left-color: var(--ember); }
.faq-sidebar-cta { margin-top: 2rem; padding: 1.4rem; background: var(--slate-mid); border: 1px solid rgba(196,98,45,0.2); }
.faq-sidebar-cta p { font-size: 0.82rem; color: var(--text-muted); margin-bottom: 0; }

/* FAQ categories and items */
.faq-content { display: flex; flex-direction: column; gap: 2.5rem; }
.faq-category { display: flex; flex-direction: column; gap: 0; }
.faq-category-label { font-size: 0.7rem; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ember-light); padding-bottom: 0.8rem; margin-bottom: 0.5rem; border-bottom: 1px solid rgba(196,98,45,0.2); display: flex; align-items: center; gap: 0.6rem; }
.faq-category-label::before { content: ''; display: block; width: 18px; height: 1px; background: var(--ember); }

.faq-item { border-bottom: 1px solid rgba(255,255,255,0.06); }
.faq-item:first-of-type { border-top: none; }
.faq-question { width: 100%; background: none; border: none; cursor: pointer; display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; padding: 1.2rem 0; text-align: left; transition: color 0.2s; }
.faq-question span:first-child { font-family: 'Cormorant Garamond', serif; font-size: 1.1rem; font-weight: 500; color: var(--cream); line-height: 1.35; transition: color 0.2s; }
.faq-question:hover span:first-child { color: var(--gold-light); }
.faq-icon { font-size: 1.3rem; color: var(--ember); flex-shrink: 0; line-height: 1; margin-top: 0.1rem; transition: transform 0.2s; font-weight: 300; }
.faq-item.open .faq-icon { transform: rotate(0deg); }

.faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.35s ease; }
.faq-answer p { font-size: 0.88rem; color: var(--text-muted); line-height: 1.85; padding: 0 0 1.4rem 0; }
.faq-answer p strong { color: var(--cream-mid); font-weight: 500; }

@media (max-width: 860px) {
  .faq-inner { grid-template-columns: 1fr; gap: 2rem; }
  .faq-sidebar { position: static; }
  .faq-section { padding: 3rem 1.2rem; }
}
