
@import url('https://fonts.googleapis.com/css2?family=Archivo:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,400&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Alegreya:ital,wght@1,500;1,600&display=swap');
:root{
  --paper:#F5F5F3; --paper-2:#FFFFFF; --card:#FFFFFF;
  --ink:#191919; --ink-soft:#585855; --ink-faint:#8C8C87;
  --line:#E7E7E2; --line-strong:#D7D7D1;
  --wood:#473221; --wood-2:#6B4A30; --charcoal:#1C1714; --charcoal-2:#2A231D;
  --accent:#BC3122; --accent-deep:color-mix(in srgb, var(--accent) 76%, #000); --accent-ink:#FFFFFF; --ochre:#C28A38;
  --maxw:1200px; --r:14px; --r-sm:10px;
  --shadow:0 1px 2px rgba(40,28,16,.05), 0 18px 40px -22px rgba(40,28,16,.35);
  --shadow-sm:0 1px 2px rgba(40,28,16,.06), 0 8px 22px -16px rgba(40,28,16,.3);
  --serif:'Archivo', system-ui, sans-serif; --sans:'Archivo', system-ui, sans-serif;
  --display:var(--sans); --display-spacing:-0.02em; --display-transform:none; --display-weight:800;
}
[data-headline="sans"]{ --display:var(--sans); --display-spacing:-0.02em; --display-transform:none; --display-weight:800; }
[data-bg="white"]{ --paper:#FFFFFF; --paper-2:#FFFFFF; }
*{ box-sizing:border-box; }
html,body{ margin:0; }
body{ font-family:var(--sans); background:var(--paper); color:var(--ink); font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 32px; }
.display{ font-family:var(--display); font-weight:var(--display-weight); letter-spacing:var(--display-spacing); text-transform:var(--display-transform); line-height:1.1; }
.eyebrow{ font-family:var(--sans); font-weight:700; font-size:13px; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); margin:0; }
.section{ padding:96px 0; }
.section-head{ max-width:680px; }
.section-head .display{ font-size:clamp(34px,4.4vw,52px); margin:14px 0 0; }
.section-lead{ color:var(--ink-soft); font-size:19px; margin:18px 0 0; max-width:60ch; text-wrap:pretty; }
.btn{ display:inline-flex; align-items:center; gap:10px; font-family:var(--sans); font-weight:700; font-size:15px; letter-spacing:.01em; line-height:1; padding:16px 24px; border-radius:999px; border:1.5px solid transparent; cursor:pointer; transition:transform .15s ease, background .15s ease, box-shadow .15s ease, color .15s ease; white-space:nowrap; }
.btn svg{ width:18px; height:18px; }
.btn-primary{ background:var(--accent); color:var(--accent-ink); box-shadow:0 10px 24px -12px var(--accent); }
.btn-primary:hover{ background:var(--accent-deep); transform:translateY(-2px); }
.btn-ghost{ background:transparent; border-color:currentColor; color:var(--ink); }
.btn-ghost:hover{ background:var(--ink); color:var(--paper); transform:translateY(-2px); }
.btn-on-dark{ color:#fff; border-color:rgba(255,255,255,.5); }
.btn-on-dark:hover{ background:#fff; color:var(--charcoal); }
.btn-lg{ padding:18px 30px; font-size:16px; }
.utility{ background:var(--charcoal); color:#E9E0D2; font-size:13px; border-bottom:1px solid rgba(255,255,255,.06); }
.utility .wrap{ display:flex; align-items:center; justify-content:space-between; height:42px; gap:18px; }
.utility .u-left{ display:flex; align-items:center; gap:18px; letter-spacing:.02em; }
.utility .u-left .dot{ width:5px; height:5px; border-radius:50%; background:var(--ochre); }
.utility .u-left span{ display:inline-flex; align-items:center; gap:9px; }
.utility .u-phone{ display:inline-flex; align-items:center; gap:9px; font-weight:700; color:#fff; }
.utility .u-phone .live{ width:7px; height:7px; border-radius:50%; background:#56d68a; box-shadow:0 0 0 0 rgba(86,214,138,.6); animation:pulse 2s infinite; }
@keyframes pulse{ 0%{box-shadow:0 0 0 0 rgba(86,214,138,.55)} 70%{box-shadow:0 0 0 7px rgba(86,214,138,0)} 100%{box-shadow:0 0 0 0 rgba(86,214,138,0)} }
@media (max-width:760px){ .utility .u-left span.hide-sm{ display:none; } }
.site-header{ position:sticky; top:0; z-index:40; background:color-mix(in srgb, var(--paper) 88%, transparent); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.site-header .wrap{ display:flex; align-items:center; gap:28px; height:84px; }
[data-header="dark"] .site-header{ background:color-mix(in srgb, var(--charcoal) 90%, transparent); border-bottom-color:rgba(255,255,255,.08); }
[data-header="dark"] .nav a{ color:#E9E0D2; }
[data-header="dark"] .nav a:hover{ color:#fff; }
[data-header="dark"] .lockup .ln-1{ color:#fff; }
[data-header="dark"] .lockup .ln-2{ color:var(--ochre); }
[data-header="dark"] .btn-ghost{ color:#E9E0D2; }
.nav{ display:flex; align-items:center; gap:30px; margin-left:auto; }
.nav a{ font-size:15px; font-weight:600; color:var(--ink); position:relative; padding:4px 0; }
.nav a:hover{ color:var(--accent); }
.nav a.active{ color:var(--accent); }
.nav a.active::after{ content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px; background:var(--accent); border-radius:2px; }
.header-cta{ margin-left:6px; }
@media (max-width:920px){ .nav{ display:none; } }
.lockup{ display:flex; align-items:center; gap:14px; }
.lockup .medallion{ width:46px; height:46px; flex:none; }
.lockup .ln{ line-height:1; }
.lockup .ln-1{ font-family:var(--serif); font-size:27px; color:var(--ink); letter-spacing:.01em; }
.lockup .ln-2{ font-family:var(--sans); font-weight:800; font-size:11.5px; letter-spacing:.42em; color:var(--accent); margin-top:5px; }
.hero{ position:relative; }
.hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; }
.photo-grain::after{ content:""; position:absolute; inset:0; pointer-events:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E"); mix-blend-mode:overlay; opacity:.5; }
[data-hero="split"] .hero-grid{ min-height:min(78vh,640px); }
[data-hero="split"] .hero-copy{ background:var(--paper-2); padding:clamp(40px,5vw,72px); display:flex; flex-direction:column; justify-content:center; border-right:1px solid var(--line); }
[data-hero="split"] .hero-photo{ position:relative; }
[data-hero="split"] .hero-photo img{ width:100%; height:100%; object-fit:cover; }
[data-hero="split"] .hero-photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(28,23,20,.12), rgba(28,23,20,.34)); }
[data-hero="split"] .hero-overlay-copy{ display:none; }
[data-hero="overlay"] .hero-grid{ display:block; }
[data-hero="overlay"] .hero-copy{ display:none; }
[data-hero="overlay"] .hero-photo{ position:relative; height:min(82vh,680px); min-height:520px; }
[data-hero="overlay"] .hero-photo img{ width:100%; height:100%; object-fit:cover; }
[data-hero="overlay"] .hero-scrim{ position:absolute; inset:0; z-index:1; background:linear-gradient(90deg, rgba(18,13,10,.94) 0%, rgba(18,13,10,.86) 30%, rgba(18,13,10,.5) 60%, rgba(18,13,10,.15) 100%), linear-gradient(0deg, rgba(18,13,10,.6), rgba(18,13,10,0) 50%); }
[data-hero="split"] .hero-scrim{ display:none; }
[data-hero="overlay"] .hero-overlay-copy{ position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; justify-content:center; color:#fff; }
[data-hero="overlay"] .hero-overlay-copy .wrap{ width:100%; }
[data-hero="overlay"] .hero-inner{ max-width:620px; }
[data-hero="overlay"] .hero-inner .eyebrow{ color:#F4C77A; }
[data-hero="overlay"] .hero-inner h1{ color:#fff; }
[data-hero="overlay"] .hero-inner .hero-sub{ color:rgba(255,255,255,.85); }
[data-hero="overlay"] .hero-inner .btn-ghost{ color:#fff; }
.hero-inner h1{ font-size:clamp(36px,4.4vw,54px); line-height:1.1; margin:16px 0 0; }
[data-headline="sans"] .hero-inner h1{ line-height:1.04; font-size:clamp(34px,4.3vw,52px); }
.hero-inner .hero-sub{ font-size:20px; color:var(--ink-soft); margin:22px 0 0; max-width:46ch; text-wrap:pretty; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }
.hero-badge{ display:inline-flex; align-items:center; gap:10px; margin-top:30px; font-size:14px; font-weight:600; color:inherit; opacity:.92; }
.hero-badge .pill{ background:var(--accent); color:#fff; font-weight:800; font-size:12px; letter-spacing:.08em; padding:5px 11px; border-radius:999px; }
@media (max-width:880px){ [data-hero="split"] .hero-grid{ grid-template-columns:1fr; } [data-hero="split"] .hero-photo{ min-height:320px; } }
.trust{ background:var(--charcoal); color:#EBE2D4; }
.trust .wrap{ display:grid; grid-template-columns:repeat(4,1fr); }
.trust-item{ padding:26px 24px; display:flex; align-items:center; gap:15px; border-left:1px solid rgba(255,255,255,.08); }
.trust-item:first-child{ border-left:0; }
.trust-item .ic{ width:34px; height:34px; color:var(--ochre); flex:none; }
.trust-item b{ display:block; font-size:15px; line-height:1.2; color:#fff; font-weight:700; white-space:nowrap; }
.trust-item span{ display:block; margin-top:3px; font-size:13px; color:rgba(235,226,212,.7); }
@media (max-width:780px){ .trust .wrap{ grid-template-columns:repeat(2,1fr); } .trust-item:nth-child(odd){ border-left:0; } }
.services-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:54px; }
.svc{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:36px 32px; box-shadow:var(--shadow-sm); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; position:relative; overflow:hidden; }
.svc:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--line-strong); }
.svc .svc-ic{ width:62px; height:62px; border-radius:14px; display:grid; place-items:center; color:#fff; margin-bottom:22px; background:linear-gradient(150deg, var(--wood-2), var(--wood)); }
.svc[data-kind="fire"] .svc-ic{ background:linear-gradient(150deg, #D9542B, #A32A16); }
.svc[data-kind="water"] .svc-ic{ background:linear-gradient(150deg, #2E7CA8, #1B4E73); }
.svc[data-kind="mold"] .svc-ic{ background:linear-gradient(150deg, #6E8C46, #415827); }
.svc .svc-ic svg{ width:30px; height:30px; }
.svc h3{ font-family:var(--serif); font-size:25px; margin:0 0 8px; font-weight:400; letter-spacing:.01em; }
[data-headline="sans"] .svc h3{ font-family:var(--sans); font-weight:800; text-transform:none; letter-spacing:-.01em; }
.svc p{ margin:0; color:var(--ink-soft); font-size:15.5px; }
.svc .svc-more{ margin-top:18px; font-weight:700; font-size:14px; color:var(--accent); display:inline-flex; gap:7px; align-items:center; }
.svc:hover .svc-more svg{ transform:translateX(3px); }
.svc .svc-more svg{ width:15px; height:15px; transition:transform .15s ease; }
@media (max-width:820px){ .services-grid{ grid-template-columns:1fr; } }
.story{ background:var(--paper-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.story-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.story-photos{ position:relative; }
.story-photos .p-main{ border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow); aspect-ratio:3/2; }
.story-photos .p-main img{ width:100%; height:100%; object-fit:cover; }
.story-photos .p-badge{ position:absolute; right:-18px; bottom:-22px; background:var(--wood); color:#F4E9D6; border-radius:var(--r-sm); padding:18px 22px; box-shadow:var(--shadow); max-width:215px; border:1px solid rgba(255,255,255,.08); }
.story-photos .p-badge .n{ font-family:var(--serif); font-size:34px; line-height:1; color:#fff; }
.story-photos .p-badge .l{ font-size:12.5px; letter-spacing:.04em; color:rgba(244,233,214,.78); margin-top:6px; }
.story-copy blockquote{ margin:24px 0 0; font-family:var(--serif); font-size:24px; line-height:1.45; color:var(--ink); border-left:3px solid var(--accent); padding-left:22px; text-wrap:pretty; }
.story-copy .commit{ margin-top:26px; }
.story-copy .commit h4{ font-size:15px; letter-spacing:.04em; margin:0 0 8px; }
.story-copy .commit p{ margin:0; color:var(--ink-soft); font-size:16px; max-width:46ch; }
.story-copy .story-actions{ margin-top:30px; }
@media (max-width:880px){ .story-grid{ grid-template-columns:1fr; gap:48px; } .story-photos .p-badge{ right:18px; } }
.proj-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:54px; }
.proj{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .18s ease, box-shadow .18s ease; }
.proj:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.proj .ba{ position:relative; overflow:hidden; }
.proj .ba img{ width:100%; aspect-ratio:282/120; object-fit:cover; display:block; }
.proj .p-cap{ padding:20px 22px; display:flex; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid var(--line); }
.proj .p-cap .t{ font-weight:700; font-size:16px; }
.proj .p-cap .k{ font-size:13px; color:var(--ink-faint); }
@media (max-width:820px){ .proj-grid{ grid-template-columns:1fr; max-width:480px; margin-left:auto; margin-right:auto; } }
.emergency{ background:var(--charcoal); color:#F1E8DA; position:relative; overflow:hidden; }
.emergency::before{ content:""; position:absolute; inset:0; background:radial-gradient(900px 400px at 12% -10%, rgba(188,49,34,.28), transparent 60%); }
.emergency .wrap{ position:relative; }
.emergency .em-top{ display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center; }
.emergency .eyebrow{ color:#F4C77A; }
.emergency h2{ font-size:clamp(34px,4.4vw,54px); margin:14px 0 0; color:#fff; }
.emergency .em-sub{ color:rgba(241,232,218,.8); font-size:19px; margin:16px 0 0; max-width:42ch; }
.emergency .em-call{ display:flex; flex-direction:column; gap:14px; align-items:flex-start; }
.emergency .em-phone{ display:inline-flex; align-items:center; gap:14px; font-family:var(--serif); font-size:clamp(30px,3.6vw,44px); color:#fff; }
[data-headline="sans"] .emergency .em-phone{ font-family:var(--sans); font-weight:800; }
.emergency .em-phone .ring{ width:54px; height:54px; border-radius:50%; background:var(--accent); display:grid; place-items:center; flex:none; }
.emergency .em-phone .ring svg{ width:24px; height:24px; color:#fff; }
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:60px; }
.step{ position:relative; padding:26px 22px; border:1px solid rgba(255,255,255,.12); border-radius:var(--r); background:rgba(255,255,255,.03); }
.step .num{ width:40px; height:40px; border-radius:50%; background:var(--accent); color:#fff; font-weight:800; display:grid; place-items:center; font-size:17px; margin-bottom:16px; }
.step h4{ margin:0 0 6px; font-size:17px; color:#fff; }
.step p{ margin:0; font-size:14px; color:rgba(241,232,218,.66); }
.step:not(:last-child)::after{ content:""; position:absolute; top:46px; right:-12px; width:24px; height:2px; background:rgba(255,255,255,.18); }
@media (max-width:900px){ .emergency .em-top{ grid-template-columns:1fr; gap:28px; } .steps{ grid-template-columns:repeat(2,1fr); } .step:nth-child(2)::after{ display:none; } }
.careers-grid{ display:grid; grid-template-columns:.95fr 1.05fr; gap:64px; align-items:center; }
.careers-photo{ border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow); aspect-ratio:4/3; position:relative; }
.careers-photo img{ width:100%; height:100%; object-fit:cover; }
.careers-copy .chips{ display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.chip{ font-size:13px; font-weight:600; padding:8px 14px; border-radius:999px; border:1px solid var(--line-strong); background:var(--card); color:var(--ink-soft); white-space:nowrap; }
.careers-copy .progs{ margin-top:30px; display:grid; gap:14px; }
.prog{ display:flex; align-items:center; gap:14px; }
.prog .pic{ width:40px; height:40px; border-radius:10px; background:var(--paper); border:1px solid var(--line); display:grid; place-items:center; color:var(--wood-2); flex:none; }
.prog .pic svg{ width:20px; height:20px; }
.prog b{ display:block; font-size:16px; white-space:nowrap; }
.prog span{ display:block; margin-top:1px; font-size:13.5px; color:var(--ink-soft); white-space:nowrap; }
@media (max-width:880px){ .careers-grid{ grid-template-columns:1fr; gap:40px; } }
.site-footer{ background:var(--charcoal-2); color:#D8CCBA; padding:72px 0 30px; }
.footer-grid{ display:grid; grid-template-columns:1.5fr .85fr .85fr 1.35fr; gap:40px; }
.site-footer .lockup .ln-1{ color:#fff; }
.site-footer .foot-about{ color:rgba(216,204,186,.66); font-size:15px; margin:20px 0 0; max-width:30ch; }
.site-footer h5{ font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:var(--ochre); margin:0 0 18px; font-weight:700; }
.site-footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:11px; }
.site-footer ul a, .site-footer ul li{ color:rgba(216,204,186,.82); font-size:15px; }
.site-footer ul a:hover{ color:#fff; }
.foot-contact li{ display:flex; gap:11px; align-items:center; }
.foot-contact svg{ width:17px; height:17px; color:var(--ochre); flex:none; }
.foot-contact a[href^="tel"]{ white-space:nowrap; }
.foot-contact a[href^="mailto"]{ word-break:break-word; }
.socials{ display:flex; gap:10px; margin-top:18px; }
.socials a{ width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.14); display:grid; place-items:center; color:#D8CCBA; transition:all .15s ease; }
.socials a:hover{ background:var(--accent); border-color:var(--accent); color:#fff; }
.socials svg{ width:17px; height:17px; }
.foot-bottom{ margin-top:54px; padding-top:24px; border-top:1px solid rgba(255,255,255,.1); display:flex; justify-content:space-between; gap:16px; font-size:13px; color:rgba(216,204,186,.5); flex-wrap:wrap; }
.foot-bottom .medal-mini{ display:flex; align-items:center; gap:9px; }
.foot-bottom .medal-mini svg{ width:18px; height:18px; }
@media (max-width:880px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .footer-grid{ grid-template-columns:1fr; } }
.reveal{ opacity:1; transform:none; }

/* ============================================================
   SUB-PAGE COMPONENTS (multi-page)
   ============================================================ */
.page-hero{ background:var(--paper-2); border-bottom:1px solid var(--line); padding:62px 0 56px; }
.page-hero .crumbs{ font-size:13px; color:var(--ink-faint); letter-spacing:.02em; }
.page-hero .crumbs a:hover{ color:var(--accent); }
.page-hero h1{ font-family:var(--display); font-weight:var(--display-weight); letter-spacing:var(--display-spacing); text-transform:var(--display-transform); line-height:1.08; font-size:clamp(40px,5vw,62px); margin:14px 0 0; }
.page-hero .lead{ color:var(--ink-soft); font-size:20px; margin:20px 0 0; max-width:58ch; text-wrap:pretty; }
.page-hero .ph-actions{ margin-top:30px; display:flex; flex-wrap:wrap; gap:14px; }

.rich-2{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
@media (max-width:880px){ .rich-2{ grid-template-columns:1fr; gap:40px; } .rich-2 .rich-media{ order:-1; } }
.rich-media{ border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow); position:relative; aspect-ratio:3/2; }
.rich-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.rich-text h2{ font-family:var(--display); font-weight:var(--display-weight); letter-spacing:var(--display-spacing); text-transform:var(--display-transform); line-height:1.16; font-size:clamp(30px,3.6vw,42px); margin:12px 0 0; }
.rich-text p{ color:var(--ink-soft); font-size:17px; margin:18px 0 0; max-width:52ch; text-wrap:pretty; }
.rich-text .btn{ margin-top:26px; }

.values{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:54px; }
.value{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:32px 28px; box-shadow:var(--shadow-sm); }
.value .vic{ width:54px; height:54px; border-radius:13px; background:var(--paper); border:1px solid var(--line); display:grid; place-items:center; color:var(--wood-2); margin-bottom:18px; }
.value .vic svg{ width:26px; height:26px; }
.value h3{ font-family:var(--serif); font-weight:400; font-size:21px; line-height:1.25; margin:0 0 8px; letter-spacing:.01em; }
[data-headline="sans"] .value h3{ font-family:var(--sans); font-weight:800; }
.value p{ margin:0; color:var(--ink-soft); font-size:15.5px; }
@media (max-width:820px){ .values{ grid-template-columns:1fr; } }

.openings{ margin-top:48px; display:grid; gap:14px; }
.opening{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:22px 28px; display:grid; grid-template-columns:1.4fr auto auto auto; gap:22px; align-items:center; box-shadow:var(--shadow-sm); transition:transform .15s ease, box-shadow .15s ease; }
.opening:hover{ transform:translateY(-2px); box-shadow:var(--shadow); }
.opening .role{ font-weight:700; font-size:18px; }
.opening .role small{ display:block; font-weight:500; font-size:13.5px; color:var(--ink-faint); margin-top:3px; }
.opening .meta{ font-size:14px; color:var(--ink-soft); display:inline-flex; align-items:center; gap:8px; white-space:nowrap; }
.opening .meta svg{ width:15px; height:15px; color:var(--ink-faint); flex:none; }
.opening .apply{ font-weight:700; font-size:14px; color:var(--accent); display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.opening .apply svg{ width:15px; height:15px; }
.opening:hover .apply svg{ transform:translateX(3px); transition:transform .15s ease; }
@media (max-width:780px){ .opening{ grid-template-columns:1fr; gap:10px; align-items:flex-start; } }

.prog-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:50px; }
.prog-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:30px 28px; box-shadow:var(--shadow-sm); }
.prog-card .pic{ width:56px; height:56px; border-radius:13px; background:linear-gradient(150deg, var(--wood-2), var(--wood)); display:grid; place-items:center; color:#fff; margin-bottom:18px; }
.prog-card .pic svg{ width:26px; height:26px; }
.prog-card h3{ font-size:19px; line-height:1.25; margin:0 0 8px; font-weight:700; }
.prog-card p{ margin:0; font-size:15px; color:var(--ink-soft); }
@media (max-width:820px){ .prog-cards{ grid-template-columns:1fr; } }

.feature-list{ list-style:none; padding:0; display:grid; gap:14px; margin:26px 0 0; }
.feature-list li{ display:flex; gap:12px; align-items:flex-start; font-size:17px; }
.feature-list svg{ width:22px; height:22px; color:#56d68a; flex:none; margin-top:2px; }
.emergency .feature-list li{ color:#F1E8DA; }

.contact-card{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.14); border-radius:var(--r); padding:34px; }
.contact-card h3{ margin:0 0 4px; font-size:22px; color:#fff; }
.contact-card .sub{ margin:0 0 22px; font-size:14.5px; color:rgba(241,232,218,.7); }
.form{ display:grid; gap:15px; }
.form .row2{ display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.field{ display:flex; flex-direction:column; gap:7px; }
.field label{ font-size:13px; font-weight:600; letter-spacing:.02em; color:#EBE2D4; }
.field input, .field textarea, .field select{ font-family:var(--sans); font-size:15px; padding:13px 15px; border-radius:10px; border:1.5px solid rgba(255,255,255,.18); background:rgba(255,255,255,.06); color:#fff; outline:none; transition:border-color .15s ease, box-shadow .15s ease; }
.field input::placeholder, .field textarea::placeholder{ color:rgba(241,232,218,.4); }
.field input:focus, .field textarea:focus, .field select:focus{ border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 30%, transparent); }
.field textarea{ resize:vertical; min-height:120px; }
.form .btn{ width:100%; justify-content:center; margin-top:4px; }
@media (max-width:600px){ .form .row2{ grid-template-columns:1fr; } }

.emhero{ padding-top:80px; padding-bottom:80px; }
.emhero .em-top{ grid-template-columns:1fr 1fr; }
.emhero .form-wrap{ grid-row:span 2; }
@media (max-width:900px){ .emhero .em-top{ grid-template-columns:1fr; } }

.section.tint{ background:var(--paper-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.center-head{ margin-left:auto; margin-right:auto; text-align:center; }
.center-head .section-lead{ margin-left:auto; margin-right:auto; }
.proj-grid.big{ grid-template-columns:repeat(2,1fr); }
.proj-grid.big .ba img{ aspect-ratio:282/130; }
@media (max-width:820px){ .proj-grid.big{ grid-template-columns:1fr; } }
.filters{ display:flex; flex-wrap:wrap; gap:10px; margin-top:32px; }
.filters .chip{ cursor:pointer; }
.filters .chip.on{ background:var(--accent); color:#fff; border-color:var(--accent); }

/* ============================================================
   REBOOT v2 — BP-driven components
   ============================================================ */
/* tighten nav for 6 items */
.nav{ gap:26px; }
.nav a{ font-size:14.5px; }
@media (max-width:1080px){ .nav{ gap:18px; } .site-header .wrap{ gap:18px; } }

/* logo image mark (white medallion on dark, dark on light handled by file) */
.lockup .medallion-img{ width:46px; height:46px; flex:none; object-fit:contain; }

/* ---------- INSURANCE BAND ---------- */
.insurance{ background:var(--paper-2); color:var(--ink); padding:78px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); position:relative; overflow:hidden; }
.insurance::before{ display:none; }
.insurance .wrap{ position:relative; text-align:center; }
.insurance h2{ font-family:var(--sans); font-weight:800; letter-spacing:.06em; text-transform:uppercase; font-size:clamp(22px,2.6vw,30px); margin:0; color:var(--ink); }
.insurance .sub{ color:var(--ink-soft); font-size:17px; margin:14px 0 0; letter-spacing:.01em; }
.ins-logos{ margin-top:52px; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:38px 76px; }
.ins-logos .chip-logo{ background:transparent; border:0; box-shadow:none; padding:0; height:78px; min-width:auto; display:grid; place-items:center; transition:opacity .15s ease; opacity:.95; }
.ins-logos .chip-logo:hover{ transform:none; opacity:1; }
.ins-logos img{ max-height:56px; max-width:210px; width:auto; object-fit:contain; }
.ins-logos .chip-logo:nth-child(1) img{ max-height:50px; }
.ins-logos .chip-logo:nth-child(2) img{ max-height:48px; }
.ins-logos .chip-logo:nth-child(3) img{ max-height:88px; }
.ins-logos .chip-logo:nth-child(4) img{ max-height:44px; }
.ins-logos .chip-logo:nth-child(5) img{ max-height:70px; }
@media (max-width:680px){ .ins-logos{ gap:30px 48px; } }

/* ---------- MANAGEMENT ---------- */
.mgmt-grid{ display:grid; grid-template-columns:1fr 1fr; gap:30px; margin-top:54px; }
.mgmt{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow-sm); display:grid; grid-template-columns:200px 1fr; transition:transform .18s ease, box-shadow .18s ease; }
.mgmt:hover{ transform:translateY(-3px); box-shadow:var(--shadow); }
.mgmt .ph{ position:relative; background:var(--wood); }
.mgmt .ph img{ width:100%; height:100%; object-fit:cover; object-position:top center; }
.mgmt .bd{ padding:26px 26px 28px; display:flex; flex-direction:column; }
.mgmt .name{ font-family:var(--serif); font-weight:400; font-size:23px; letter-spacing:.01em; margin:0; line-height:1.15; }
[data-headline="sans"] .mgmt .name{ font-family:var(--sans); font-weight:800; }
.mgmt .role{ color:var(--accent); font-weight:700; font-size:13px; letter-spacing:.08em; text-transform:uppercase; margin:7px 0 0; }
.mgmt .band{ display:inline-flex; align-items:center; gap:7px; font-size:12.5px; color:var(--ink-faint); margin:9px 0 0; }
.mgmt .band svg{ width:13px; height:13px; color:var(--ochre); flex:none; }
.mgmt p.bio{ color:var(--ink-soft); font-size:14.5px; margin:16px 0 0; line-height:1.55; }
@media (max-width:1000px){ .mgmt-grid{ grid-template-columns:1fr; } }
@media (max-width:560px){ .mgmt{ grid-template-columns:1fr; } .mgmt .ph{ height:300px; } }

/* ---------- MISSION / VISION ---------- */
.mv-grid{ display:grid; grid-template-columns:1fr 1fr; gap:26px; margin-top:54px; }
.mv{ border-radius:var(--r); padding:42px 40px; position:relative; overflow:hidden; }
.mv.mission{ background:var(--card); border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.mv.vision{ background:linear-gradient(155deg, var(--wood-2), var(--wood)); color:#F4E9D6; }
.mv .mv-ic{ width:58px; height:58px; border-radius:14px; display:grid; place-items:center; margin-bottom:22px; }
.mv.mission .mv-ic{ background:color-mix(in srgb, var(--accent) 12%, transparent); color:var(--accent); }
.mv.vision .mv-ic{ background:rgba(255,255,255,.14); color:#fff; }
.mv .mv-ic svg{ width:28px; height:28px; }
.mv h3{ font-family:var(--serif); font-weight:400; font-size:27px; margin:0 0 14px; letter-spacing:.01em; }
[data-headline="sans"] .mv h3{ font-family:var(--sans); font-weight:800; text-transform:uppercase; }
.mv.vision h3{ color:#fff; }
.mv p{ margin:0; font-size:17px; line-height:1.62; }
.mv.mission p{ color:var(--ink-soft); }
.mv.vision p{ color:rgba(244,233,214,.9); }
@media (max-width:860px){ .mv-grid{ grid-template-columns:1fr; } .mv{ padding:34px 30px; } }

/* core values list */
.values.v6{ grid-template-columns:repeat(3,1fr); }
@media (max-width:900px){ .values.v6{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .values.v6{ grid-template-columns:1fr; } }
.value p{ line-height:1.55; }

/* ---------- CONTACT ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:30px; margin-top:54px; align-items:stretch; }
.contact-info{ display:grid; gap:16px; align-content:start; }
.ci{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:24px 26px; display:flex; gap:18px; align-items:flex-start; box-shadow:var(--shadow-sm); }
.ci .ci-ic{ width:48px; height:48px; border-radius:12px; background:var(--paper); border:1px solid var(--line); display:grid; place-items:center; color:var(--accent); flex:none; }
.ci .ci-ic svg{ width:22px; height:22px; }
.ci h4{ margin:0 0 4px; font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); font-weight:700; }
.ci .v{ font-size:18px; font-weight:600; color:var(--ink); line-height:1.4; }
.ci .v a:hover{ color:var(--accent); }
.contact-map{ border-radius:var(--r); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-sm); min-height:340px; background:var(--paper-2); position:relative; }
.contact-map iframe{ width:100%; height:100%; border:0; display:block; }
@media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; } .contact-map{ min-height:300px; } }

/* hours strip */
.hours{ display:flex; flex-wrap:wrap; gap:14px; margin-top:18px; }
.hours .hr{ background:var(--paper); border:1px solid var(--line); border-radius:999px; padding:10px 18px; font-size:14px; color:var(--ink-soft); display:inline-flex; gap:9px; align-items:center; }
.hours .hr svg{ width:15px; height:15px; color:var(--accent); }
.hours .hr b{ color:var(--ink); }

/* ===== REBOOT v3 — all-sans, de-cream, real-photo hero ===== */
.eyebrow{ display:none !important; }
.lockup .ln-1{ font-family:var(--sans); font-weight:800; letter-spacing:-.01em; }
.svc h3,.mv h3,.mgmt .name,.value h3,.prog-card h3,.rich-text h2,.page-hero h1,.section-head .display,.emergency h2,.mv h3{ font-family:var(--sans); font-weight:800; letter-spacing:-.02em; text-transform:none; }
.story-copy blockquote{ font-family:var(--sans); font-weight:600; font-style:normal; }

/* Home hero v2 — bright real photo, no scrim */
.hero2{ padding:56px 0 0; }
.hero2-text{ max-width:920px; }
.hero2-text h1{ font-family:var(--sans); font-weight:800; font-size:clamp(40px,6vw,72px); line-height:1.03; letter-spacing:-.028em; margin:0; color:var(--ink); }
.hero2-sub{ font-size:21px; line-height:1.55; color:var(--ink-soft); margin:22px 0 0; max-width:62ch; text-wrap:pretty; }
.hero2 .hero-actions{ margin-top:30px; }
.hero2 .hero-badge{ margin-top:28px; color:var(--ink); font-weight:600; }
.hero2-photo{ margin-top:46px; border-radius:16px; overflow:hidden; border:1px solid var(--line); box-shadow:0 34px 70px -46px rgba(20,15,10,.55); aspect-ratio:1503/656; background:var(--charcoal); }
.hero2-photo img{ width:100%; height:100%; object-fit:cover; }
.hero2-caption{ margin:16px 4px 0; font-size:14px; color:var(--ink-faint); display:flex; align-items:center; gap:9px; }
.hero2-caption svg{ width:15px; height:15px; color:var(--accent); flex:none; }
@media (max-width:680px){ .hero2-photo{ aspect-ratio:4/3; } }

/* ===== REBOOT v4 — real logo image + Alegreya tagline ===== */
.lockup{ display:flex; flex-direction:column; align-items:center; gap:6px; max-width:100%; }
.lockup .ln{ display:none; }            /* hide old text wordmark */
.lockup .medallion, .lockup .medallion-img{ display:none; }
.brand-logo{ height:85px; width:auto; display:block; flex:none; object-fit:contain; }
.brand-tag{ font-family:'Alegreya', Georgia, serif; font-style:italic; font-weight:600; font-size:17px; line-height:1; color:var(--ink-soft); letter-spacing:.01em; text-align:center; white-space:nowrap; }
[data-header="dark"] .brand-logo{ background:#fff; border-radius:8px; padding:6px 10px; }
[data-header="dark"] .brand-tag{ color:#E9E0D2; }
.site-header .wrap{ height:auto; min-height:104px; padding-top:14px; padding-bottom:14px; }

/* footer logo on dark */
.site-footer .lockup{ align-items:flex-start; }
.site-footer .brand-logo{ height:80px; background:#fff; border-radius:8px; padding:7px 12px; }
.site-footer .brand-tag{ color:rgba(216,204,186,.82); text-align:left; }
@media (max-width:920px){ .brand-logo{ height:80px; } }
