/* =====================================================
   SERVICE + LOCATION LANDING PAGES — Shared Styles
   Matches the design system from /loft-conversions/
   ===================================================== */
:root {
  --ink: #1a1a2e;
  --ink-light: #2d2d44;
  --warm: #8b7355;
  --warm-light: #c4a97d;
  --warm-glow: #e8ddd0;
  --stone: #f4f1ec;
  --slate: #64748b;
  --chalk: #ffffff;
  --navy: #1e3a5f;
  --navy-deep: #162d4a;
  --font-display: 'Playfair Display', Georgia, serif;
  --font-body: 'Inter', system-ui, sans-serif;
}
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-font-smoothing:antialiased; }
body { font-family:var(--font-body); color:var(--ink); background:var(--chalk); line-height:1.7; padding-top:70px; }
img { max-width:100%; display:block; }

/* ===== HERO ===== */
.hero-service {
  display:grid; grid-template-columns:1fr 1fr;
  min-height:calc(100vh - 70px);
}
@media(max-width:900px) { .hero-service { grid-template-columns:1fr; min-height:auto; } }
.hero-text {
  display:flex; flex-direction:column; justify-content:center;
  padding:4rem 3rem 4rem 5%; background:var(--navy-deep); color:var(--chalk);
}
@media(max-width:900px) { .hero-text { padding:3rem 1.5rem; } }
.hero-text .eyebrow {
  font-size:0.75rem; font-weight:600; letter-spacing:3px;
  text-transform:uppercase; color:var(--warm-light); margin-bottom:1.5rem;
}
.hero-text h1 {
  font-family:var(--font-display); font-size:clamp(2rem, 4vw, 3rem);
  font-weight:400; line-height:1.2; margin-bottom:1.5rem;
}
.hero-text h1 strong { font-weight:700; }
.hero-text h1 em { font-style:italic; color:var(--warm-light); }
.hero-desc {
  font-size:1.0625rem; color:rgba(255,255,255,0.7);
  line-height:1.9; max-width:520px; margin-bottom:2.5rem;
}
.hero-actions { display:flex; flex-wrap:wrap; gap:0.875rem; }
.btn-warm {
  display:inline-flex; align-items:center; gap:8px;
  padding:0.875rem 1.75rem; background:var(--warm); color:#fff;
  font-weight:600; font-size:0.875rem; border-radius:4px;
  text-decoration:none; transition:all 0.25s; border:none; cursor:pointer;
}
.btn-warm:hover { background:var(--warm-light); }
.btn-ghost {
  display:inline-flex; align-items:center; gap:8px;
  padding:0.875rem 1.75rem; border:1.5px solid rgba(255,255,255,0.25);
  color:rgba(255,255,255,0.85); font-weight:500; font-size:0.875rem;
  border-radius:4px; text-decoration:none; transition:all 0.25s;
  background:transparent; cursor:pointer;
}
.btn-ghost:hover { border-color:var(--warm-light); color:var(--warm-light); }
.hero-photo {
  position:relative; overflow:hidden; min-height:400px; background:var(--navy-deep);
}
.hero-photo img { width:100%; height:100%; object-fit:cover; }
.hero-photo .photo-cap {
  position:absolute; bottom:0; left:0; right:0;
  padding:1.5rem 2rem;
  background:linear-gradient(transparent, rgba(0,0,0,0.75));
  color:#fff; font-size:0.8125rem;
}
.photo-cap strong { display:block; font-size:0.9375rem; margin-bottom:0.25rem; }

/* ===== TRUST BAR ===== */
.trust-bar { background:var(--stone); padding:1.25rem 1.5rem; text-align:center; }
.trust-bar-inner {
  max-width:900px; margin:0 auto;
  display:flex; flex-wrap:wrap; justify-content:center; gap:1.5rem 2.5rem;
  font-size:0.8125rem; font-weight:600; color:var(--ink);
}
.trust-bar-inner span { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.trust-bar-inner span::before {
  content:'✓'; display:inline-flex; align-items:center; justify-content:center;
  width:18px; height:18px; background:var(--warm); color:#fff;
  border-radius:50%; font-size:0.6rem; flex-shrink:0;
}

/* ===== EDITORIAL ===== */
.editorial { max-width:780px; margin:0 auto; padding:5rem 1.5rem; }
.editorial h2 {
  font-family:var(--font-display); font-size:clamp(1.5rem, 3vw, 2rem);
  font-weight:400; line-height:1.35; margin-bottom:1.5rem;
}
.editorial h2 strong { font-weight:700; }
.editorial p { font-size:1rem; color:var(--slate); line-height:1.9; margin-bottom:1.25rem; }
.editorial p strong { color:var(--ink); }
.editorial-divider { width:60px; height:2px; background:var(--warm); margin:2.5rem 0; }

/* ===== LOCAL INFO ===== */
.local-info { background:var(--stone); padding:5rem 1.5rem; }
.local-info-inner { max-width:1000px; margin:0 auto; }
.local-info .eyebrow {
  font-size:0.75rem; font-weight:600; letter-spacing:3px;
  text-transform:uppercase; color:var(--warm); margin-bottom:1rem; text-align:center;
}
.local-info h2 {
  font-family:var(--font-display); font-size:clamp(1.5rem,3vw,2rem);
  font-weight:400; text-align:center; margin-bottom:0.75rem;
}
.local-info h2 strong { font-weight:700; }
.local-info-sub {
  text-align:center; color:var(--slate); font-size:0.9375rem;
  max-width:620px; margin:0 auto 3rem;
}
.info-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
@media(max-width:768px) { .info-grid { grid-template-columns:1fr; } }
.info-card {
  background:var(--chalk); border-radius:8px; padding:2rem;
  border-left:3px solid var(--warm); box-shadow:0 4px 20px rgba(0,0,0,0.04);
}
.info-card h3 { font-size:0.9375rem; font-weight:700; color:var(--ink); margin-bottom:0.5rem; }
.info-card p { font-size:0.875rem; color:var(--slate); line-height:1.75; }

/* ===== TYPES ===== */
.types { background:var(--stone); padding:5rem 1.5rem; }
.types-inner { max-width:1100px; margin:0 auto; }
.types .eyebrow {
  font-size:0.75rem; font-weight:600; letter-spacing:3px;
  text-transform:uppercase; color:var(--warm); margin-bottom:1rem; text-align:center;
}
.types h2 {
  font-family:var(--font-display); font-size:clamp(1.5rem,3vw,2rem);
  font-weight:400; text-align:center; margin-bottom:0.75rem;
}
.types h2 strong { font-weight:700; }
.types-sub {
  text-align:center; color:var(--slate); font-size:0.9375rem;
  max-width:620px; margin:0 auto 3rem;
}
.type-card {
  display:grid; grid-template-columns:1fr 1fr; gap:0;
  background:var(--chalk); border-radius:10px; overflow:hidden;
  box-shadow:0 4px 20px rgba(0,0,0,0.06); margin-bottom:2rem;
}
.type-card:nth-child(even) { direction:rtl; }
.type-card:nth-child(even) > * { direction:ltr; }
@media(max-width:768px) {
  .type-card { grid-template-columns:1fr; }
  .type-card:nth-child(even) { direction:ltr; }
}
.type-img { overflow:hidden; min-height:320px; }
.type-img img { width:100%; height:100%; object-fit:cover; }
.type-body { padding:2.5rem; display:flex; flex-direction:column; justify-content:center; }
.type-label {
  font-size:0.6875rem; font-weight:700; letter-spacing:2px;
  text-transform:uppercase; color:var(--warm); margin-bottom:0.75rem;
}
.type-body h3 {
  font-family:var(--font-display); font-size:1.375rem; font-weight:600;
  color:var(--ink); margin-bottom:0.75rem; line-height:1.3;
}
.type-body p { font-size:0.9375rem; color:var(--slate); line-height:1.8; margin-bottom:1rem; }
.type-facts {
  display:flex; flex-wrap:wrap; gap:1.25rem;
  padding-top:1rem; border-top:1px solid #eee;
}
.type-fact { font-size:0.8125rem; }
.type-fact strong {
  display:block; font-size:0.6875rem; letter-spacing:1px;
  text-transform:uppercase; color:var(--warm); margin-bottom:0.125rem;
}
.type-fact span { color:var(--ink); font-weight:500; }

/* ===== BUILD PROCESS ===== */
.anatomy { background:var(--navy-deep); color:#fff; padding:5rem 1.5rem; }
.anatomy-inner { max-width:900px; margin:0 auto; }
.anatomy .eyebrow {
  font-size:0.75rem; font-weight:600; letter-spacing:3px;
  text-transform:uppercase; color:var(--warm-light); margin-bottom:1rem;
}
.anatomy h2 {
  font-family:var(--font-display); font-size:clamp(1.5rem,3vw,2rem);
  font-weight:400; margin-bottom:0.75rem;
}
.anatomy h2 strong { font-weight:700; }
.anatomy-intro { color:rgba(255,255,255,0.65); font-size:1rem; margin-bottom:3rem; max-width:660px; }
.step { display:grid; grid-template-columns:80px 1fr; gap:0 1.5rem; }
@media(max-width:640px) { .step { grid-template-columns:56px 1fr; } }
.step-marker { display:flex; flex-direction:column; align-items:center; }
.step-dot {
  width:40px; height:40px; background:var(--warm); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-family:var(--font-display); font-weight:700; font-size:0.875rem;
}
.step-line { width:2px; flex:1; background:rgba(255,255,255,0.12); margin-top:4px; }
.step:last-child .step-line { display:none; }
.step-body { padding-bottom:2.5rem; }
.step-body h3 { font-size:1rem; font-weight:700; color:#fff; margin-bottom:0.375rem; }
.step-body p { font-size:0.9375rem; color:rgba(255,255,255,0.7); line-height:1.75; }

/* ===== WHAT YOU GET ===== */
.included { padding:5rem 1.5rem; }
.included-inner { max-width:1000px; margin:0 auto; }
.included .eyebrow {
  font-size:0.75rem; font-weight:600; letter-spacing:3px;
  text-transform:uppercase; color:var(--warm); margin-bottom:1rem; text-align:center;
}
.included h2 {
  font-family:var(--font-display); font-size:clamp(1.5rem,3vw,2rem);
  font-weight:400; text-align:center; margin-bottom:0.75rem;
}
.included h2 strong { font-weight:700; }
.included-sub {
  text-align:center; color:var(--slate); font-size:0.9375rem;
  max-width:600px; margin:0 auto 3rem;
}
.inc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
@media(max-width:768px) { .inc-grid { grid-template-columns:1fr; } }
.inc-card {
  background:var(--stone); border-radius:8px; padding:2rem;
  border-left:3px solid var(--warm);
}
.inc-card h3 { font-size:0.9375rem; font-weight:700; color:var(--ink); margin-bottom:0.5rem; }
.inc-card p { font-size:0.875rem; color:var(--slate); line-height:1.75; }

/* ===== QUOTE STRIP ===== */
.quote-strip { background:var(--ink); padding:4rem 1.5rem; text-align:center; color:#fff; }
.quote-strip blockquote {
  max-width:700px; margin:0 auto;
  font-family:var(--font-display); font-size:clamp(1.125rem, 2.5vw, 1.5rem);
  font-style:italic; font-weight:400; line-height:1.7;
  color:rgba(255,255,255,0.9); margin-bottom:1.5rem;
}
.quote-strip cite {
  font-style:normal; font-family:var(--font-body); font-size:0.875rem; color:var(--warm-light);
}
.quote-strip cite strong { display:block; font-size:1rem; color:#fff; margin-bottom:0.25rem; }

/* ===== PRICING ===== */
.pricing { padding:5rem 1.5rem; }
.pricing-inner { max-width:900px; margin:0 auto; }
.pricing .eyebrow {
  font-size:0.75rem; font-weight:600; letter-spacing:3px;
  text-transform:uppercase; color:var(--warm); margin-bottom:1rem; text-align:center;
}
.pricing h2 {
  font-family:var(--font-display); font-size:clamp(1.5rem,3vw,2rem);
  font-weight:400; text-align:center; margin-bottom:0.75rem;
}
.pricing h2 strong { font-weight:700; }
.pricing-sub {
  text-align:center; color:var(--slate); font-size:0.9375rem;
  margin-bottom:3rem; max-width:600px; margin-left:auto; margin-right:auto;
}
.price-table {
  width:100%; border-collapse:collapse; background:var(--chalk);
  border-radius:8px; overflow:hidden; box-shadow:0 4px 20px rgba(0,0,0,0.06);
}
.price-table th {
  background:var(--navy-deep); color:#fff; padding:1rem 1.5rem;
  text-align:left; font-size:0.8125rem; font-weight:600;
  letter-spacing:0.5px; text-transform:uppercase;
}
.price-table td { padding:1rem 1.5rem; border-bottom:1px solid #f0ede8; font-size:0.9375rem; }
.price-table tr:last-child td { border-bottom:none; }
.price-table tr:hover td { background:var(--stone); }
.price-table td:last-child { font-weight:600; color:var(--warm); white-space:nowrap; }
.pricing-note {
  margin-top:1.5rem; font-size:0.8125rem; color:var(--slate);
  text-align:center; font-style:italic;
}

/* ===== FAQ ===== */
.faq { padding:5rem 1.5rem; background:var(--stone); }
.faq-inner { max-width:780px; margin:0 auto; }
.faq .eyebrow {
  font-size:0.75rem; font-weight:600; letter-spacing:3px;
  text-transform:uppercase; color:var(--warm); margin-bottom:1rem;
}
.faq h2 {
  font-family:var(--font-display); font-size:clamp(1.5rem,3vw,2rem);
  font-weight:400; margin-bottom:2.5rem;
}
.faq h2 strong { font-weight:700; }
.faq-item { border-bottom:1px solid #ddd; padding:1.25rem 0; }
.faq-q {
  font-weight:600; font-size:1rem; color:var(--ink); cursor:pointer;
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
}
.faq-q::after {
  content:'+'; font-size:1.25rem; color:var(--warm); flex-shrink:0;
  transition:transform 0.3s;
}
.faq-item.open .faq-q::after { transform:rotate(45deg); }
.faq-a { max-height:0; overflow:hidden; transition:max-height 0.4s ease, padding 0.3s ease; }
.faq-item.open .faq-a { max-height:400px; padding-top:1rem; }
.faq-a p { font-size:0.9375rem; color:var(--slate); line-height:1.8; }

/* ===== INTERNAL LINKS ===== */
.related-pages { padding:4rem 1.5rem; }
.related-pages-inner { max-width:900px; margin:0 auto; text-align:center; }
.related-pages .eyebrow {
  font-size:0.75rem; font-weight:600; letter-spacing:3px;
  text-transform:uppercase; color:var(--warm); margin-bottom:1rem;
}
.related-pages h2 {
  font-family:var(--font-display); font-size:clamp(1.25rem,2.5vw,1.75rem);
  font-weight:400; margin-bottom:2rem;
}
.related-pages h2 strong { font-weight:700; }
.related-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:1rem; }
.related-link {
  display:block; padding:1.25rem; background:var(--stone); border-radius:8px;
  text-decoration:none; color:var(--ink); font-weight:600; font-size:0.9375rem;
  transition:all 0.25s; border:1px solid transparent;
}
.related-link:hover { border-color:var(--warm); color:var(--warm); transform:translateY(-2px); box-shadow:0 4px 12px rgba(0,0,0,0.06); }
.related-link small { display:block; font-weight:400; color:var(--slate); font-size:0.8125rem; margin-top:0.25rem; }

/* ===== CONTACT ===== */
.contact-end { background:var(--chalk); padding:5rem 1.5rem; }
.contact-end-inner { max-width:700px; margin:0 auto; text-align:center; }
.contact-end h2 {
  font-family:var(--font-display); font-size:clamp(1.5rem,3vw,2.25rem);
  font-weight:400; margin-bottom:1rem;
}
.contact-end h2 strong { font-weight:700; }
.contact-end-inner > p { color:var(--slate); font-size:1rem; margin-bottom:2.5rem; line-height:1.8; }
.contact-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-bottom:2.5rem; }
@media(max-width:640px) { .contact-cards { grid-template-columns:1fr; } }
.cc {
  background:var(--stone); padding:1.5rem; border-radius:8px;
  box-shadow:0 2px 12px rgba(0,0,0,0.04); text-align:center;
}
.cc-label { font-size:0.6875rem; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--warm); margin-bottom:0.5rem; }
.cc a { font-size:1.125rem; font-weight:600; color:var(--ink); text-decoration:none; }
.cc a:hover { color:var(--warm); }
.cc small { display:block; font-size:0.75rem; color:var(--slate); margin-top:0.25rem; }
.contact-addr { font-size:0.9375rem; color:var(--slate); line-height:1.8; margin-bottom:2rem; }
.contact-addr strong { color:var(--ink); }

/* ===== FOOTER ===== */
.site-footer {
  background:var(--ink); color:rgba(255,255,255,0.5);
  padding:2.5rem 1.5rem; text-align:center; font-size:0.8125rem;
}
.site-footer a { color:rgba(255,255,255,0.5); text-decoration:none; }
.site-footer a:hover { color:var(--warm-light); }
.footer-links-row { display:flex; flex-wrap:wrap; justify-content:center; gap:0.5rem 1.5rem; margin-bottom:1rem; }

/* ===== NAVIGATION (inline in each page but shared rules) ===== */
.skip-nav {
  position:absolute; top:-40px; left:0; background:#2c3e50; color:white;
  padding:8px 16px; z-index:10000; text-decoration:none; transition:top 0.3s;
}
.skip-nav:focus { top:0; }
.site-nav {
  position:fixed; top:0; left:0; right:0;
  background:rgba(255,255,255,0.98); backdrop-filter:blur(10px);
  box-shadow:0 2px 20px rgba(0,0,0,0.08); z-index:9999;
}
.nav-container {
  max-width:1400px; margin:0 auto; padding:12px 20px;
  display:flex; justify-content:space-between; align-items:center;
}
.nav-logo { text-decoration:none; display:flex; align-items:center; gap:12px; }
.nav-logo-text { font-size:1.4rem; font-weight:700; color:#2c3e50; letter-spacing:-0.5px; }
.nav-tagline { font-size:0.75rem; color:#8b7355; text-transform:uppercase; letter-spacing:1px; }
.mobile-toggle {
  display:none; background:none; border:none; font-size:1.8rem;
  cursor:pointer; color:#2c3e50; padding:8px;
}
.nav-menu {
  display:flex; list-style:none; margin:0; padding:0; gap:8px; align-items:center;
}
.nav-item { position:relative; }
.nav-link {
  display:block; padding:10px 16px; color:#2c3e50; text-decoration:none;
  font-weight:500; font-size:0.95rem; border-radius:6px; transition:all 0.3s ease;
}
.nav-link:hover, .nav-link.active { background:#f5f7f9; color:#8b7355; }
.nav-cta {
  display:inline-flex; align-items:center; gap:8px;
  padding:12px 20px; background:#8b7355; color:white !important;
  text-decoration:none; border-radius:6px; font-weight:600;
  font-size:0.95rem; transition:all 0.3s ease;
}
.nav-cta:hover { background:#a0896d; transform:translateY(-2px); }
.nav-dropdown .dropdown-menu {
  position:absolute; top:100%; left:0; background:white;
  min-width:250px; box-shadow:0 10px 40px rgba(0,0,0,0.12);
  border-radius:8px; padding:12px 0; opacity:0; visibility:hidden;
  transform:translateY(10px); transition:all 0.3s ease; z-index:1000;
}
@media (min-width:1025px) {
  .nav-dropdown:nth-child(2) .dropdown-menu {
    display:grid !important; grid-template-columns:repeat(2,1fr) !important;
    gap:0; padding:20px !important; min-width:500px !important; max-width:600px;
  }
}
.nav-dropdown:hover .dropdown-menu { opacity:1; visibility:visible; transform:translateY(0); }
.dropdown-link {
  display:block; padding:10px 20px; color:#2c3e50; text-decoration:none;
  font-size:0.9rem; transition:all 0.2s ease;
}
.dropdown-link:hover { background:#f5f7f9; color:#8b7355; padding-left:25px; }
@media (max-width:1024px) {
  .mobile-toggle { display:block; }
  .nav-menu {
    position:fixed; top:70px; left:0; right:0; background:white;
    flex-direction:column; padding:20px; gap:0;
    box-shadow:0 10px 40px rgba(0,0,0,0.1);
    transform:translateY(-120%); transition:transform 0.3s ease;
    max-height:calc(100vh - 70px); overflow-y:auto;
  }
  .nav-menu.active { transform:translateY(0); }
  .nav-item { width:100%; }
  .nav-link { padding:15px 20px; border-bottom:1px solid #f0f0f0; }
  .nav-dropdown .dropdown-menu {
    position:static; box-shadow:none; opacity:1; visibility:visible;
    transform:none; max-height:0; overflow:hidden; padding:0;
    transition:max-height 0.3s ease;
  }
  .nav-dropdown.active .dropdown-menu { max-height:500px; padding:10px 0; }
  .dropdown-link { padding-left:40px; }
  .nav-cta { margin-top:15px; justify-content:center; width:100%; }
}
