:root {
  --purple: #7c4889;
  --purple-dark: #61376d;
  --ink: #222;
  --muted: #5e5e5e;
  --line: #ddd7df;
  --bg: #ffffff;
  --soft: #f7f3f9;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: 'Lato', Arial, sans-serif; font-size: 18px; color: var(--ink); background: #fff; line-height: 1.6; text-align: left; }
a { color: var(--purple-dark); text-decoration: none; }
a:hover { text-decoration: underline; }
.wrap { width: min(1120px, calc(100% - 2rem)); margin: 0 auto; }
.narrow { max-width: 760px; }
.center { text-align: center; }
.site-header { position: absolute; top: 0; left: 0; right: 0; z-index: 20; background: rgba(124,72,137,.55); border-bottom: 1px solid rgba(255,255,255,.18); }
.nav { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 0; }
.brand { font-family: 'Cabin', sans-serif; font-size: 1.55rem; font-weight: 700; color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.35); }
.nav nav { display: flex; gap: 1.25rem; flex-wrap: wrap; }
.nav nav a { color: #fff; font-size: .98rem; text-shadow: 0 1px 2px rgba(0,0,0,.35); }
.hero-image { min-height: 560px; background-position: center 18%; background-size: cover; background-repeat: no-repeat; transform: translateY(0); will-change: transform; }
.hero-band, .page-title-band { position: relative; z-index: 2; background: rgba(124,72,137,.88); color: #fff; }
.hero-band-inner, .page-title-band .wrap { padding: 3rem 0 3.25rem; text-align: center; }
.mini-kicker { margin: 0 0 .35rem; font-size: .95rem; opacity: .95; }
h1, h2, h3, h4 { font-family: 'Cabin', sans-serif; margin: 0 0 .75rem; line-height: 1.1; }
h1 { font-size: clamp(2.6rem, 6vw, 4.2rem); }
.page-title { text-transform: none; }
h2 { font-size: clamp(2rem, 4vw, 3rem); }
h3 { font-size: clamp(1.5rem, 3vw, 2rem); }
h4 { font-size: 1.15rem; }
.phone-row { margin: 0; font-size: 1.2rem; font-weight: 700; }
.phone-row a,.contact-phone { color: inherit; }
.content-section { padding: 2.75rem 0 1rem; background: #fff; }
.feature-section, .content-section { padding: 2.5rem 0; }
.feature-light { background: #f4eef6; }
.feature-white { background: #fff; }
.feature-grid, .contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: center; }
.feature-copy p, .contact-grid p { margin: 0 0 1rem; }
.subhead { font-weight: 700; color: #444; }
.embed-box iframe { width: 100%; min-height: 280px; border: 0; }
.contact-section { background: #f7f7f7; padding: 3rem 0; }
.mock-form { display: grid; gap: .85rem; }
.mock-form .form-field { display: grid; gap: .35rem; }
.mock-form label { display:block; font-size: .92rem; font-weight: 700; }
.mock-form input { width:100%; padding: .8rem .9rem; border: 1px solid #cfcfcf; border-radius: 2px; font: inherit; }
.mock-form button { margin-top: .6rem; padding: .85rem 1rem; background: var(--purple); color: #fff; border: 0; font: inherit; font-weight: 700; }
.site-footer { background: var(--purple); border-top: 1px solid rgba(255,255,255,.12); padding: 1.25rem 0 2rem; color: rgba(255,255,255,.9); text-align: center; font-size: .95rem; }
.gallery-grid { display:grid; grid-template-columns: repeat(2,1fr); gap:1rem; margin-top:1.5rem; align-items:start; }
.gallery-card { border:1px solid var(--line); background:#fff; padding:.75rem; }
.gallery-card img { width:100%; height:auto; display:block; background:#fff; }
.gallery-card figcaption { padding-top:.6rem; color:var(--muted); font-size:.95rem; }
@media (max-width: 860px) {  .nav, .feature-grid, .contact-grid, .gallery-grid, .slider { grid-template-columns: 1fr; } .nav { justify-content: center; text-align: center; } .nav nav { justify-content: center; } .hero-image { min-height: 280px; } .slider { gap:.75rem; } .slider-nav { width:48px; height:48px; margin:0 auto; } }

.slider { display:grid; grid-template-columns: 54px minmax(0,1fr) 54px; gap: 1rem; align-items:center; margin-top:1.5rem; }
.slider-stage { min-width:0; }
.slide { display:none; margin:0; }
.slide.active { display:block; }
.slide img { width:100%; max-height:720px; object-fit:contain; background:#fff; border:1px solid var(--line); }
.slide figcaption { padding-top:.75rem; color:var(--muted); font-size:1rem; }
.slider-nav { border:1px solid var(--line); background:#fff; color:var(--purple-dark); font-size:2rem; line-height:1; width:54px; height:54px; border-radius:999px; cursor:pointer; }
.slider-count { margin-top: .75rem; color: var(--muted); font-size: .95rem; }

.page-summary { color:#f3eaf6; max-width: 760px; margin: .5rem auto 0; }
.horn-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:1rem; }
.horn-card, .horn-detail-card { border:1px solid var(--line); background:#fff; padding:1.1rem; }
.horn-card h3 { margin-bottom:.75rem; }
.horn-meta { list-style:none; padding:0; margin:0; display:grid; gap:.45rem; }
.horn-meta li { color:var(--muted); }
.horn-link { color:var(--purple-dark); font-weight:700; }
.horn-note { margin-top:1rem; color:var(--muted); }
@media (max-width: 860px) {  .horn-grid { grid-template-columns:1fr; } }

.models-prose h2 { margin-top: 2.5rem; }
.models-prose h2:first-child { margin-top: 0; }
.models-prose p, .models-prose ul { color: var(--muted); }
.models-prose ul { padding-left: 1.2rem; }

.contact-tile { border:1px solid var(--line); background:#fff; padding:1.25rem; }
.mock-form textarea { width:100%; min-height: 160px; padding: .8rem .9rem; border: 1px solid #cfcfcf; border-radius: 2px; font: inherit; }

.button-solid { display:inline-flex; padding:.85rem 1rem; background: var(--purple); color:#fff; font-weight:700; border-radius:4px; }
.button-solid:hover { text-decoration:none; background: var(--purple-dark); }

.custom-hero-section { position:relative; min-height: 360px; display:grid; align-items:center; overflow:hidden; }
.custom-hero-image { position:absolute; inset:0; background:url('https://img1.wsimg.com/isteam/ip/8190ec70-bc59-47f4-a2e5-cfeda04999d0/68a6deff-3843-4571-adb7-d8c1c7f84249.jpeg') center center / cover no-repeat; }
.custom-hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg, rgba(32,17,15,.68), rgba(124,72,137,.48)); }
.custom-hero-inner { position:relative; z-index:1; max-width: 860px; color:#fff; padding:3.5rem 0; }
.custom-hero-inner h2 { color:#fff; }
.custom-kicker { color:#f3e5f8; }
.custom-hero-copy { font-size: 1.2rem; color: rgba(255,255,255,.92); margin: 0 auto; }

.horn-list-rows { display:grid; gap:1rem; }
.horn-row { display:grid; grid-template-columns: 220px minmax(0,1fr); gap:1.25rem; align-items:start; border:1px solid var(--line); background:#fff; padding:1rem; }
.horn-thumb img, .horn-detail-media img { width:100%; height:auto; display:block; border:1px solid var(--line); background:#fff; }
.horn-row-body h3 { margin-top:0; }
.horn-detail-card { display:grid; grid-template-columns: 260px minmax(0,1fr); gap:1.25rem; align-items:start; }
@media (max-width: 860px) {  .horn-row, .horn-detail-card { grid-template-columns:1fr; } .horn-thumb { max-width:260px; } }

.contact-page-grid { display:grid; grid-template-columns: .95fr 1.05fr; gap:1.25rem; margin-bottom:1.5rem; align-items:stretch; }
.contact-quote-card, .contact-map-card { border:1px solid var(--line); background:#fff; padding:1.25rem; }
.contact-quote-card { border-left: 6px solid var(--purple); }
.map-embed { width:100%; min-height:320px; border:0; display:block; }
@media (max-width: 860px) {  .contact-page-grid { grid-template-columns:1fr; } }

.hero { position: relative; overflow: hidden; }

.gallery-card a { display:block; }
.lightbox-open { overflow: hidden; }
.lightbox { position: fixed; inset: 0; z-index: 100; background: rgba(20, 12, 10, .92); display: grid; grid-template-columns: 72px minmax(0, 1fr) 72px; align-items: center; gap: 1rem; padding: 2rem; }
.lightbox[hidden] { display: none; }
.lightbox-figure { margin: 0; display: grid; gap: .85rem; justify-items: center; }
.lightbox-image { max-width: min(1200px, 92vw); max-height: 82vh; width: auto; height: auto; border-radius: 18px; box-shadow: 0 25px 60px rgba(0,0,0,.45); background: #111; }
.lightbox-caption { color: rgba(255,255,255,.82); text-align: center; }
.lightbox-close, .lightbox-nav { border: 0; cursor: pointer; color: #fff; background: rgba(255,255,255,.12); width: 56px; height: 56px; border-radius: 999px; font-size: 2rem; line-height: 1; display: inline-flex; align-items: center; justify-content: center; }
.lightbox-close { position: absolute; top: 1.25rem; right: 1.25rem; width: 52px; height: 52px; font-size: 2.2rem; }
@media (max-width: 860px) {  .lightbox { grid-template-columns: 1fr; padding: 1rem; } .lightbox-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; } .lightbox-prev { left: .75rem; } .lightbox-next { right: .75rem; } }


.page-hero .page-image { min-height: 520px; }
.page-content-section { background:#fff; position: relative; z-index: 1; }

.unified-hero { position: relative; overflow: hidden; min-height: 680px; display: flex; flex-direction: column; justify-content: flex-end; }
.page-hero-bg { position: absolute; inset: 0; background-position: center 18%; background-size: cover; background-repeat: no-repeat; transform: translateY(0); will-change: transform; z-index: 0; }
.page-title-band { position: relative; z-index: 2; margin-top: 0; }
.page-content-section { background:#fff; position: relative; z-index: 1; }
@media (max-width: 860px) { .unified-hero { min-height: 560px; } }

.unified-home-hero { min-height: 840px; display:flex; flex-direction:column; justify-content:flex-end; }
.home-hero-bg { position:absolute; inset:0; }
