/*
Theme Name: Living Stone
Theme URI: https://livingstonedesignandfinishing.com
Author: Tim Mobley
Description: Custom theme for Living Stone Design & Finishing — interior painting and specialty finishes in Central Illinois.
Version: 1.0
*/

@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600;700&family=Source+Serif+4:ital,opsz,wght@0,8..60,300..600;1,8..60,400&family=Raleway:wght@300..700&display=swap');

/* ─── Design tokens ────────────────────────────────────── */
:root {
  --ls-deep-stone:    #2B3240;
  --ls-warm-gold:     #C8922A;
  --ls-cream-ivory:   #F2E5CC;
  --ls-slate-blue:    #4A7FA5;
  --ls-burnt-orange:  #B8542E;
  --ls-stone-gray:    #6B7280;
  --ls-pearl-white:   #E8E2D8;
  --ls-deep-stone-90: #3a4252;
  --ls-gold-90:       #d8a649;
  --ls-gold-strong:   #a8771e;
  --ls-cream-20:      #fcf8ee;
  --ls-cream-50:      #f9f1e0;
  --ls-bg:            var(--ls-cream-20);
  --ls-bg-warm:       var(--ls-cream-ivory);
  --ls-surface-1:     #ffffff;
  --ls-surface-dark:  var(--ls-deep-stone);
  --ls-fg-1:          var(--ls-deep-stone);
  --ls-fg-2:          #424b5c;
  --ls-fg-3:          var(--ls-stone-gray);
  --ls-fg-4:          #9ca3af;
  --ls-fg-on-dark:    var(--ls-cream-ivory);
  --ls-border-1:      #e2dbcb;
  --ls-border-2:      #cbc2af;
  --ls-font-display:  'Cinzel', 'Trajan Pro', Georgia, serif;
  --ls-font-body:     'Source Serif 4', Georgia, serif;
  --ls-font-ui:       'Raleway', system-ui, sans-serif;
  --ls-section-y:     112px;
  --ls-section-y-tight: 72px;
  --ls-container-w:   1200px;
  --ls-container-px:  32px;
  --ls-ease-out:      cubic-bezier(.22,.61,.36,1);
  --ls-dur-2:         220ms;
  --ls-dur-3:         380ms;
}
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { background: var(--ls-bg); color: var(--ls-fg-2); font-family: var(--ls-font-body); font-size: 18px; line-height: 1.6; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--ls-slate-blue); text-decoration: none; transition: color var(--ls-dur-2) var(--ls-ease-out); }
a:hover { color: var(--ls-burnt-orange); }
button { font: inherit; }
.ls-container { width: 100%; max-width: var(--ls-container-w); margin: 0 auto; padding: 0 var(--ls-container-px); }
.ls-section { padding: var(--ls-section-y) 0; }
.ls-section--tight { padding: var(--ls-section-y-tight) 0; }
.ls-section.dark { background: var(--ls-deep-stone); color: var(--ls-fg-on-dark); }
.ls-section.cream { background: var(--ls-cream-ivory); }
.ls-eyebrow { display: inline-flex; align-items: center; gap: 14px; font-family: var(--ls-font-ui); font-weight: 600; font-size: 12px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--ls-warm-gold); }
.ls-eyebrow::before { content:''; width: 28px; height: 1px; background: var(--ls-warm-gold); }
.dark .ls-eyebrow { color: var(--ls-warm-gold); }
.ls-h1 { font-family: var(--ls-font-display); font-weight: 500; font-size: clamp(2.75rem, 5vw + 1rem, 5.25rem); line-height: 1.04; letter-spacing: -0.012em; color: var(--ls-fg-1); margin: 0; text-wrap: balance; }
.ls-h2 { font-family: var(--ls-font-display); font-weight: 500; font-size: clamp(2.125rem, 3vw + 1rem, 3.25rem); line-height: 1.08; letter-spacing: -0.005em; color: var(--ls-fg-1); margin: 0; text-wrap: balance; }
.ls-h3 { font-family: var(--ls-font-display); font-weight: 500; font-size: 1.625rem; line-height: 1.15; color: var(--ls-fg-1); margin: 0; }
.dark .ls-h1, .dark .ls-h2, .dark .ls-h3 { color: var(--ls-cream-ivory); }
.ls-lede { font-family: var(--ls-font-body); font-style: italic; font-size: 1.375rem; line-height: 1.5; color: var(--ls-fg-2); margin: 0; text-wrap: pretty; max-width: 720px; }
.dark .ls-lede { color: rgba(242,229,204,0.78); }
.ls-body-lg { font-family: var(--ls-font-body); font-size: 1.125rem; line-height: 1.65; color: var(--ls-fg-2); margin: 0; }
.dark .ls-body-lg { color: rgba(242,229,204,0.75); }
.ls-wave { display: inline-block; padding-bottom: 12px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 6' fill='none' stroke='%23C8922A' stroke-width='1.4'%3E%3Cpath d='M0 3 Q3 0 6 3 T12 3 T18 3 T24 3'/%3E%3C/svg%3E"); background-repeat: repeat-x; background-position: 0 100%; background-size: 20px 7px; }
.ls-header { position: fixed; top: 0; left: 0; right: 0; z-index: 50; transition: background var(--ls-dur-3) var(--ls-ease-out), backdrop-filter var(--ls-dur-3); padding: 14px 0; }
.ls-header.scrolled, .ls-header.solid { background: rgba(43,50,64,0.92); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.ls-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.ls-brand { display: flex; align-items: center; gap: 14px; text-decoration: none; border: 0; }
.ls-brand-mark { width: 52px; height: 52px; border-radius: 50%; background: url('assets/logo-mark.jpg') center/cover; box-shadow: 0 0 0 1.5px rgba(200,146,42,0.55); flex-shrink: 0; }
.ls-brand-text { display: flex; flex-direction: column; gap: 4px; }
.ls-brand-name { font-family: var(--ls-font-display); font-weight: 600; letter-spacing: 0.20em; font-size: 16px; color: var(--ls-cream-ivory); line-height: 1; }
.ls-brand-tagline { font-family: var(--ls-font-ui); font-weight: 500; letter-spacing: 0.30em; font-size: 9px; color: var(--ls-warm-gold); line-height: 1; text-transform: uppercase; }
.ls-nav { display: flex; align-items: center; gap: 28px; }
.ls-nav a:not(.ls-btn), .ls-nav button:not(.ls-btn) { font-family: var(--ls-font-ui); font-weight: 500; font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ls-cream-ivory); text-decoration: none; background: none; border: none; padding: 6px 0; position: relative; cursor: pointer; border-bottom: 0; transition: color var(--ls-dur-2) var(--ls-ease-out); }
.ls-nav a:not(.ls-btn)::after { content:''; position: absolute; bottom: -2px; left: 0; right: 0; height: 1px; background: var(--ls-warm-gold); transform: scaleX(0); transform-origin: left; transition: transform var(--ls-dur-2) var(--ls-ease-out); }
.ls-nav a:not(.ls-btn):hover, .ls-nav a:not(.ls-btn).active { color: var(--ls-warm-gold); }
.ls-nav a:not(.ls-btn):hover::after, .ls-nav a:not(.ls-btn).active::after { transform: scaleX(1); }
.ls-nav-toggle {
  display: flex;
  flex-direction: column; justify-content: center; align-items: center;
  gap: 5px; width: 40px; height: 40px;
  background: none; border: none; cursor: pointer; padding: 4px; z-index: 60;
}
@media (min-width: 961px) {
  .ls-nav-toggle { display: none; }
}
.ls-nav-toggle span {
  display: block; width: 24px; height: 2px;
  background: var(--ls-cream-ivory);
  transition: transform 0.25s ease, opacity 0.25s ease;
  transform-origin: center;
}
.ls-nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.ls-nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.ls-nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.ls-btn { display: inline-flex; align-items: center; gap: 10px; font-family: var(--ls-font-ui); font-weight: 600; font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; padding: 14px 26px; border-radius: 8px; cursor: pointer; border: none; text-decoration: none; transition: all var(--ls-dur-2) var(--ls-ease-out); }
.ls-btn:active { transform: scale(0.98); }
.ls-btn-primary { background: var(--ls-warm-gold); color: var(--ls-deep-stone); }
.ls-btn-primary:hover { background: var(--ls-gold-90); color: var(--ls-deep-stone); box-shadow: 0 10px 24px -10px rgba(200,146,42,0.6); }
.ls-btn-ghost-light { background: transparent; color: var(--ls-cream-ivory); border: 1px solid rgba(242,229,204,0.4); }
.ls-btn-ghost-light:hover { border-color: var(--ls-warm-gold); color: var(--ls-warm-gold); }
.ls-btn-ghost-dark { background: transparent; color: var(--ls-deep-stone); border: 1px solid var(--ls-border-2); }
.ls-btn-ghost-dark:hover { border-color: var(--ls-deep-stone); }
.ls-btn .arr { transition: transform var(--ls-dur-2) var(--ls-ease-out); }
.ls-btn:hover .arr { transform: translateX(4px); }
.ls-hero { position: relative; overflow: hidden; background: radial-gradient(ellipse at 50% 30%, rgba(200,146,42,0.18) 0%, transparent 55%), radial-gradient(ellipse at 80% 70%, rgba(74,127,165,0.14) 0%, transparent 60%), linear-gradient(180deg, #1a1f29 0%, #2B3240 60%); color: var(--ls-cream-ivory); min-height: 100vh; display: flex; align-items: center; padding: 130px 0 110px; }
.ls-hero::before { content:''; position: absolute; inset: 0; background: url('assets/logo-mark.jpg') center/cover no-repeat; opacity: 0.18; filter: blur(0.5px); }
.ls-hero::after { content:''; position: absolute; inset: 0; background: radial-gradient(circle at 50% 45%, transparent 30%, rgba(14,18,24,0.78) 80%); }
.ls-hero-inner { position: relative; z-index: 2; max-width: 760px; }
.ls-hero .ls-h1 { color: var(--ls-cream-ivory); font-size: clamp(3rem, 6vw + 1rem, 6rem); margin: 18px 0 22px; }
.ls-hero .ls-lede { color: rgba(242,229,204,0.85); font-size: 1.5rem; max-width: 600px; }
.ls-hero-ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 40px; }
.ls-hero-tagrow { margin-top: 32px; display: flex; align-items: center; gap: 12px; font-family: var(--ls-font-ui); font-size: 13px; letter-spacing: 0.04em; color: rgba(242,229,204,0.7); }
.ls-hero-tagrow .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--ls-warm-gold); }
.ls-pagehero { position: relative; background: var(--ls-cream-ivory); padding: 156px 0 80px; }
.ls-pagehero-inner { max-width: 820px; display: flex; flex-direction: column; gap: 22px; }
.ls-problem { background: var(--ls-cream-ivory); padding: var(--ls-section-y-tight) 0; }
.ls-problem-inner { max-width: 780px; margin: 0 auto; text-align: center; display: flex; flex-direction: column; gap: 22px; align-items: center; }
.ls-problem-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 32px; }
.ls-problem-list .item { display: flex; flex-direction: column; gap: 8px; text-align: left; }
.ls-problem-list .item span { font-family: var(--ls-font-ui); font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--ls-warm-gold); font-weight: 600; }
.ls-problem-list .item p { font-family: var(--ls-font-body); font-size: 1rem; line-height: 1.55; color: var(--ls-fg-2); margin: 0; }
.ls-services-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
.ls-svc-card { background: #fff; border-radius: 14px; padding: 40px 36px; min-height: 360px; display: flex; flex-direction: column; gap: 16px; box-shadow: 0 4px 14px rgba(43,50,64,0.08); transition: transform var(--ls-dur-2) var(--ls-ease-out), box-shadow var(--ls-dur-2); text-decoration: none; border-bottom: 0; cursor: pointer; color: var(--ls-fg-1); }
.ls-svc-card:hover { transform: translateY(-3px); box-shadow: 0 14px 38px -8px rgba(43,50,64,0.18); }
.ls-svc-card-num { font-family: var(--ls-font-display); font-size: 13px; letter-spacing: 0.3em; color: var(--ls-warm-gold); font-weight: 500; }
.ls-svc-card p { font-family: var(--ls-font-body); font-size: 1rem; line-height: 1.55; color: var(--ls-fg-2); margin: 0; }
.ls-svc-card ul { list-style: none; padding: 0; margin: auto 0 0; display: flex; flex-direction: column; gap: 6px; }
.ls-svc-card li { font-family: var(--ls-font-ui); font-size: 12px; letter-spacing: 0.06em; color: var(--ls-fg-3); padding-left: 20px; position: relative; }
.ls-svc-card li::before { content:''; position: absolute; left: 0; top: 9px; width: 10px; height: 1px; background: var(--ls-warm-gold); }
.ls-svc-card .read-more { font-family: var(--ls-font-ui); font-weight: 600; font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ls-warm-gold); display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; }
.ls-plan-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 56px; border-top: 1px solid var(--ls-border-1); }
.ls-plan-step { padding: 36px 24px 32px; border-right: 1px solid var(--ls-border-1); }
.ls-plan-step:last-child { border-right: 0; }
.ls-plan-step .num { font-family: var(--ls-font-display); font-weight: 500; font-size: 64px; line-height: 1; color: var(--ls-warm-gold); margin-bottom: 14px; }
.ls-plan-step h3 { font-family: var(--ls-font-display); font-size: 1.5rem; margin: 0 0 8px; }
.ls-plan-step p { font-family: var(--ls-font-body); font-size: 1rem; color: var(--ls-fg-2); margin: 0; line-height: 1.55; }
.ls-portfolio-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 18px; }
.ls-portfolio-tile { position: relative; overflow: hidden; border-radius: 6px; cursor: pointer; aspect-ratio: 4/5; }
.ls-portfolio-tile.wide { grid-column: span 8; aspect-ratio: 16/10; }
.ls-portfolio-tile.col4 { grid-column: span 4; }
.ls-portfolio-tile.col6 { grid-column: span 6; }
.ls-portfolio-tile .img { position: absolute; inset: 0; transition: transform 700ms var(--ls-ease-out); }
.ls-portfolio-tile:hover .img { transform: scale(1.04); }
.ls-portfolio-tile .img::after { content:''; position: absolute; inset: 0; background: url('assets/stone-texture.svg') center/cover; mix-blend-mode: multiply; opacity: 0.55; }
.ls-portfolio-tile .overlay { position: absolute; inset: auto 0 0 0; padding: 22px 24px; background: linear-gradient(180deg, transparent 30%, rgba(14,18,24,0.85) 100%); }
.ls-portfolio-tile .cat { font-family: var(--ls-font-ui); font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--ls-warm-gold); margin-bottom: 6px; display: block; }
.ls-portfolio-tile .name { font-family: var(--ls-font-display); font-size: 1.375rem; font-weight: 500; color: var(--ls-cream-ivory); line-height: 1.1; }
.ph-1 { background: linear-gradient(135deg, #B8542E 0%, #C8922A 50%, #6B7280 100%); }
.ph-2 { background: linear-gradient(135deg, #4A7FA5 0%, #6B7280 60%, #2B3240 100%); }
.ph-3 { background: linear-gradient(135deg, #E8E2D8 0%, #C8922A 80%); }
.ph-4 { background: linear-gradient(135deg, #2B3240 0%, #4A7FA5 70%, #C8922A 100%); }
.ph-5 { background: linear-gradient(135deg, #F2E5CC 0%, #B8542E 90%); }
.ph-6 { background: linear-gradient(135deg, #6B7280 0%, #4A7FA5 60%, #2B3240 100%); }
.ph-7 { background: linear-gradient(135deg, #C8922A 0%, #B8542E 100%); }
.ph-8 { background: linear-gradient(135deg, #4A7FA5 0%, #E8E2D8 100%); }
.ls-testimonial { background: var(--ls-cream-ivory); padding: var(--ls-section-y) 0; }
.ls-testimonial-inner { max-width: 880px; margin: 0 auto; text-align: center; display: flex; flex-direction: column; gap: 28px; align-items: center; }
.ls-testimonial .mark { font-family: var(--ls-font-display); font-size: 80px; color: var(--ls-warm-gold); line-height: 0.4; }
.ls-testimonial blockquote { font-family: var(--ls-font-body); font-style: italic; font-size: clamp(1.5rem, 2vw + 0.5rem, 2.125rem); line-height: 1.35; color: var(--ls-deep-stone); text-wrap: balance; margin: 0; }
.ls-testimonial .attr { font-family: var(--ls-font-ui); font-size: 11px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--ls-stone-gray); display: inline-flex; align-items: center; gap: 14px; }
.ls-testimonial .attr::before, .ls-testimonial .attr::after { content:''; width: 20px; height: 1px; background: var(--ls-warm-gold); }
.ls-testimonial.placeholder blockquote { color: var(--ls-fg-3); }
.ls-testimonial.placeholder .attr { color: var(--ls-fg-4); }
.ls-cta-strip { background: var(--ls-deep-stone); color: var(--ls-cream-ivory); padding: var(--ls-section-y-tight) 0; }
.ls-cta-strip .inner { display: flex; justify-content: space-between; align-items: center; gap: 32px; flex-wrap: wrap; }
.ls-cta-strip .ls-h2 { max-width: 640px; }
.ls-footer { background: #1a1f29; color: rgba(242,229,204,0.7); padding: 80px 0 32px; }
.ls-footer-top { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 48px; padding-bottom: 48px; border-bottom: 1px solid rgba(242,229,204,0.1); }
.ls-footer-brand { display: flex; flex-direction: column; gap: 16px; }
.ls-footer-brand-row { display: flex; align-items: center; gap: 14px; }
.ls-footer-mark { width: 56px; height: 56px; border-radius: 50%; background: url('assets/logo-mark.jpg') center/cover; box-shadow: 0 0 0 1.5px rgba(200,146,42,0.45); }
.ls-footer-name { font-family: var(--ls-font-display); font-size: 17px; font-weight: 600; letter-spacing: 0.18em; color: var(--ls-cream-ivory); }
.ls-footer-tag { font-family: var(--ls-font-body); font-style: italic; font-size: 14px; color: rgba(242,229,204,0.55); max-width: 320px; }
.ls-footer-col h4 { font-family: var(--ls-font-ui); font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ls-warm-gold); font-weight: 600; margin: 0 0 16px; }
.ls-footer-col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.ls-footer-col a, .ls-footer-col li { font-family: var(--ls-font-body); font-size: 14px; color: rgba(242,229,204,0.7); text-decoration: none; border-bottom: 0; }
.ls-footer-col a:hover { color: var(--ls-warm-gold); }
.ls-footer-scripture { padding: 36px 0 24px; display: flex; justify-content: center; }
.ls-footer-scripture-inner { max-width: 620px; text-align: center; display: flex; flex-direction: column; gap: 10px; }
.ls-footer-scripture-text { font-family: var(--ls-font-body); font-style: italic; font-size: 14px; color: rgba(242,229,204,0.5); line-height: 1.55; }
.ls-footer-scripture-cite { font-family: var(--ls-font-display); font-size: 11px; letter-spacing: 0.32em; color: var(--ls-warm-gold); }
.ls-footer-bottom { display: flex; justify-content: space-between; padding-top: 24px; border-top: 1px solid rgba(242,229,204,0.1); font-family: var(--ls-font-ui); font-size: 11px; letter-spacing: 0.14em; color: rgba(242,229,204,0.4); text-transform: uppercase; }
.ls-form { display: flex; flex-direction: column; gap: 18px; }
.ls-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ls-form-field { display: flex; flex-direction: column; gap: 6px; }
.ls-form-field label { font-family: var(--ls-font-ui); font-weight: 600; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ls-fg-1); }
.ls-form-field input, .ls-form-field textarea { font-family: var(--ls-font-body); font-size: 16px; color: var(--ls-fg-1); padding: 12px 14px; border: 1px solid var(--ls-border-2); background: #fff; border-radius: 4px; }
.ls-form-field textarea { min-height: 130px; resize: vertical; }
.ls-form-field input:focus, .ls-form-field textarea:focus { outline: none; border-color: var(--ls-warm-gold); box-shadow: 0 0 0 3px rgba(200,146,42,0.18); }
.ls-form-help { font-family: var(--ls-font-ui); font-size: 11px; color: var(--ls-fg-3); letter-spacing: 0.04em; }
.ls-faq-list { display: flex; flex-direction: column; max-width: 880px; margin: 0 auto; gap: 0; }
.ls-faq-item { border-bottom: 1px solid var(--ls-border-1); }
.ls-faq-item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 32px; padding: 28px 0; font-family: var(--ls-font-display); font-weight: 500; font-size: 1.375rem; color: var(--ls-fg-1); }
.ls-faq-item summary::-webkit-details-marker { display: none; }
.ls-faq-item summary::after { content:'+'; font-family: var(--ls-font-ui); font-weight: 300; font-size: 28px; color: var(--ls-warm-gold); transition: transform var(--ls-dur-2) var(--ls-ease-out); }
.ls-faq-item[open] summary::after { content:'–'; }
.ls-faq-item .answer { padding: 0 0 28px; font-family: var(--ls-font-body); font-size: 1.0625rem; line-height: 1.65; color: var(--ls-fg-2); max-width: 720px; }
.ls-towns { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px 28px; margin-top: 32px; }
.ls-towns .town { font-family: var(--ls-font-display); font-size: 1.125rem; color: var(--ls-fg-1); padding: 14px 0; border-bottom: 1px solid var(--ls-border-1); display: flex; justify-content: space-between; align-items: center; }
.ls-towns .town small { font-family: var(--ls-font-ui); font-size: 11px; color: var(--ls-fg-3); letter-spacing: 0.04em; }
.ls-guide-grid { display: grid; grid-template-columns: 5fr 6fr; gap: 80px; align-items: center; }
.ls-detail-grid { display: grid; grid-template-columns: 5fr 6fr; gap: 64px; padding: var(--ls-section-y-tight) 0; border-bottom: 1px solid var(--ls-border-1); align-items: start; }
.ls-detail-grid:last-child { border-bottom: 0; }
.ls-detail-img { aspect-ratio: 4/3; border-radius: 12px; overflow: hidden; box-shadow: 0 14px 38px -8px rgba(43,50,64,0.18); position: relative; }
.ls-detail-img::after { content:''; position: absolute; inset: 0; background: url('assets/stone-texture.svg') center/cover; mix-blend-mode: multiply; opacity: 0.4; }
.ls-detail-body p { font-family: var(--ls-font-body); font-size: 1.125rem; line-height: 1.65; color: var(--ls-fg-2); margin: 0 0 18px; }
.ls-detail-body ul { list-style: none; padding: 0; margin: 24px 0; display: flex; flex-direction: column; gap: 12px; }
.ls-detail-body li { font-family: var(--ls-font-body); font-size: 1rem; line-height: 1.5; color: var(--ls-fg-2); padding-left: 28px; position: relative; }
.ls-detail-body li::before { content:''; position: absolute; left: 0; top: 11px; width: 16px; height: 1px; background: var(--ls-warm-gold); }
.ls-detail-grid.reverse { grid-template-columns: 6fr 5fr; }
.ls-detail-grid.reverse > .ls-detail-img { order: 2; }
.ls-detail-grid.reverse > .ls-detail-body { order: 1; }
.ls-final-cta { background: radial-gradient(ellipse at 30% 60%, rgba(200,146,42,0.18), transparent 55%), linear-gradient(180deg, #1a1f29, #2B3240); color: var(--ls-cream-ivory); padding: var(--ls-section-y) 0; position: relative; overflow: hidden; }
.ls-final-cta::before { content:''; position: absolute; inset: 0; background: url('assets/logo-mark.jpg') center right -160px/cover no-repeat; opacity: 0.22; }
.ls-final-cta-inner { position: relative; z-index: 2; max-width: 760px; display: flex; flex-direction: column; gap: 24px; }
.ls-final-cta .ls-h1 { color: var(--ls-cream-ivory); font-size: clamp(2.5rem, 5vw + 1rem, 4.5rem); }
@media (max-width: 960px) {
  :root { --ls-section-y: 80px; --ls-section-y-tight: 56px; }
  .ls-guide-grid, .ls-services-grid, .ls-plan-grid, .ls-problem-list, .ls-detail-grid, .ls-detail-grid.reverse, .ls-footer-top { grid-template-columns: 1fr; gap: 32px; }
  .ls-detail-grid.reverse > .ls-detail-img, .ls-detail-grid.reverse > .ls-detail-body { order: initial; }
  .ls-plan-step { border-right: 0; border-bottom: 1px solid var(--ls-border-1); }
  .ls-plan-step:last-child { border-bottom: 0; }
  .ls-portfolio-tile, .ls-portfolio-tile.wide, .ls-portfolio-tile.col4, .ls-portfolio-tile.col6 { grid-column: span 12; }
  .ls-towns { grid-template-columns: repeat(2, 1fr); }
  .ls-nav {
    display: none;
    position: fixed; top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(27,33,43,0.98);
    flex-direction: column; align-items: center; justify-content: center;
    gap: 32px; z-index: 55;
  }
  .ls-nav.open { display: flex; }
  .ls-nav a:not(.ls-btn) { font-size: 18px; letter-spacing: 0.18em; }
  .ls-nav .ls-btn { margin-top: 8px; }
  .ls-form-row { grid-template-columns: 1fr; }
}
