/* Refined niche theme */
:root {
  --bg: #f5f1e8;
  --surface: #ffffff;
  --text: #1f2933;
  --muted: color-mix(in srgb, #1f2933 70%, white 30%);
  --accent: #e1a12c;
  --accent-strong: color-mix(in srgb, #e1a12c 82%, #000000 18%);
  --line: color-mix(in srgb, #1f2933 14%, white 86%);
  --soft: color-mix(in srgb, #0f172a 22%, white 78%);
  --shadow: 0 18px 44px rgba(15, 23, 42, 0.10);
  --radius: 20px;
  --max: 1120px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; font-family: Inter, Arial, sans-serif; background: linear-gradient(180deg, var(--bg), #ffffff 55%); color: var(--text); line-height:1.6; }
a { color: inherit; text-decoration: none; }
button,input,textarea,select { font: inherit; }
img { max-width:100%; display:block; }
:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.container { width:min(calc(100% - 2rem), var(--max)); margin:0 auto; }
.site-header { position:sticky; top:0; z-index:20; backdrop-filter: blur(10px); background: color-mix(in srgb, white 82%, var(--bg) 18%); border-bottom:1px solid var(--line); }
.header-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:0.95rem 0; }
.brand { font-weight:800; letter-spacing:0.03em; }
.nav-toggle { border:1px solid var(--line); background:white; border-radius:999px; padding:0.65rem 0.9rem; }
.site-nav { display:none; flex-direction:column; gap:0.75rem; padding:0 0 1rem; }
.site-nav.open { display:flex; }
.site-nav a { font-weight:700; }
.hero { padding:4.5rem 0 2.5rem; }
.hero-grid,.grid-2,.services-grid,.stats-grid,.faq-list { display:grid; gap:1rem; }
.hero-copy h1, h2, h3 { line-height:1.1; margin:0 0 0.85rem; }
h1 { font-size:clamp(2.3rem, 6vw, 4rem); max-width:12ch; }
h2 { font-size:clamp(1.8rem, 4vw, 2.8rem); }
p { margin:0 0 1rem; }
.eyebrow,.badge,.mini-label { display:inline-flex; padding:0.35rem 0.75rem; border-radius:999px; font-weight:700; }
.eyebrow,.badge { background: color-mix(in srgb, var(--accent) 16%, white 84%); }
.mini-label { background: color-mix(in srgb, var(--soft) 40%, white 60%); margin-bottom:0.8rem; }
.button-row { display:flex; flex-wrap:wrap; gap:0.85rem; margin:1.5rem 0; }
.button { display:inline-flex; align-items:center; justify-content:center; padding:0.95rem 1.2rem; border-radius:999px; border:1px solid transparent; font-weight:800; }
.button-primary { background:var(--accent); color:white; }
.button-secondary { background:white; border-color:var(--line); }
.hero-list,.list { padding-left:1.1rem; margin:0; }
.hero-list li,.list li { margin-bottom:0.45rem; }
.hero-card,.panel,.service-card,.stat-card,.faq-item { background: color-mix(in srgb, var(--surface) 88%, var(--bg) 12%); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.hero-card,.panel { padding:1.3rem; }
.accent-panel,.wood-card,.calm-card,.build-card,.dental-card,.fence-card,.music-card { background: linear-gradient(180deg, color-mix(in srgb, var(--soft) 24%, white 76%), white); }
section { padding:1.2rem 0 0; }
.section-pad { padding-top:1.5rem; }
.services-grid { grid-template-columns:1fr; }
.service-card,.stat-card,.faq-item { padding:1.1rem; }
.stats-grid { grid-template-columns:repeat(2,1fr); }
.compact-stats .stat-card strong { display:block; margin-bottom:0.3rem; }
.timeline { display:grid; gap:0.9rem; }
.timeline div { padding:0 0 0.9rem; border-bottom:1px solid var(--line); }
.timeline div:last-child { border-bottom:0; padding-bottom:0; }
.contact-box label { display:block; font-weight:700; margin:0.9rem 0 0.35rem; }
input,textarea { width:100%; border:1px solid var(--line); border-radius:14px; padding:0.9rem 1rem; background:white; }
textarea { min-height:140px; resize:vertical; }
.form-note,.faq-answer,.site-footer { color:var(--muted); }
.faq-answer { display:none; padding-top:0.6rem; }
.faq-item.open .faq-answer { display:block; }
.faq-question { width:100%; text-align:left; border:0; background:transparent; padding:0; font-weight:800; color:var(--text); }
.reveal { opacity:0; transform:translateY(18px); transition:opacity .45s ease, transform .45s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }
.site-footer { padding:3rem 0; }
@media (min-width:760px) {
  .nav-toggle { display:none; }
  .site-nav { display:flex; flex-direction:row; align-items:center; padding:0; }
  .hero-grid,.grid-2 { grid-template-columns:repeat(2, minmax(0,1fr)); align-items:start; }
  .services-grid,.faq-list-single { grid-template-columns:repeat(3, minmax(0,1fr)); }
  .stats-grid { grid-template-columns:repeat(4, minmax(0,1fr)); }
}

.portfolio-return-wrap{padding:1rem 0 0}.portfolio-return-wrap .container{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}.portfolio-return{display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1rem;border-radius:999px;background:#fff;border:1px solid var(--line,#dbe1ea);box-shadow:var(--shadow,0 8px 24px rgba(15,23,42,.08));font-weight:700}.portfolio-site-label{font-size:.88rem;color:var(--muted,#55657f)}
