:root{
  --ink:#14171A; --ink-2:#1E2320; --marsh:#333E30; --reed:#8C8259;
  --blaze:#C1502E; --fog:#EDEAE1; --white:#F7F5EE;
  --line: rgba(20,23,20,0.14); --radius:2px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Work Sans', sans-serif; background:var(--fog); color:var(--ink); line-height:1.55; -webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{font-family:'Anton', sans-serif; font-weight:400; text-transform:uppercase; line-height:1.05; letter-spacing:0.01em; color:var(--ink);}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
.eyebrow{font-family:'IBM Plex Mono', monospace; font-size:12.5px; letter-spacing:0.14em; text-transform:uppercase; color:var(--blaze); display:flex; align-items:center; gap:10px;}
.eyebrow::before{content:''; width:22px; height:1px; background:var(--blaze);}
@media(prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{animation:none !important; transition:none !important;} }

/* ---- skein divider: the signature element (a flock in flight) ---- */
.skein{width:100%; overflow:hidden; padding:14px 0; line-height:0; text-align:center;}
.skein span{display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:13px; letter-spacing:22px; color:var(--reed); opacity:0.55;}
.skein.dark span{color:var(--fog); opacity:0.3;}

header{position:sticky; top:0; z-index:50; background:rgba(237,234,225,0.94); backdrop-filter:blur(6px); border-bottom:1px solid var(--line);}
.nav{display:flex; align-items:center; justify-content:space-between; padding:16px 28px; max-width:1180px; margin:0 auto;}
.logo{font-family:'Anton', sans-serif; font-size:21px; letter-spacing:0.02em; text-transform:uppercase;}
.logo span{color:var(--blaze);}
.navlinks{display:flex; gap:26px; align-items:center; font-size:13.5px; font-weight:600; text-transform:uppercase; letter-spacing:0.03em; position:relative;}
.navlinks > a:hover{color:var(--blaze);}
.has-drop{position:relative;}
.has-drop > span{cursor:default;}
.dropdown{display:none; position:absolute; top:100%; left:0; background:var(--white); border:1px solid var(--line); min-width:220px; padding:8px; box-shadow:0 12px 28px -8px rgba(0,0,0,0.2);}
.has-drop:hover .dropdown{display:block;}
.dropdown a{display:block; padding:9px 12px; font-size:13px; text-transform:none; font-weight:500; border-radius:2px;}
.dropdown a:hover{background:var(--fog); color:var(--blaze);}
.navcta{background:var(--blaze); color:var(--white); padding:10px 18px; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; border-radius:var(--radius); min-height:44px; display:inline-flex; align-items:center;}
.navlinks a{min-height:44px; display:flex; align-items:center;}
.navcta:hover{background:#a3421f;}
.menu-btn{display:none; background:none; border:none; font-size:24px; cursor:pointer;}

.breadcrumb{font-family:'IBM Plex Mono', monospace; font-size:11.5px; color:rgba(247,245,238,0.55); letter-spacing:0.04em; margin-bottom:16px; text-transform:uppercase;}
.breadcrumb a{color:rgba(247,245,238,0.75);}
.breadcrumb a:hover{color:var(--reed);}

.page-hero{background:linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%); color:var(--white); padding:56px 0 60px;}
.page-hero h1{font-size:clamp(34px,4.8vw,54px); color:var(--white); max-width:820px;}
.page-hero p.lede{font-family:'Work Sans',sans-serif; text-transform:none; font-size:17px; color:rgba(247,245,238,0.75); max-width:600px; margin-top:16px;}
.page-hero .hero-ctas{display:flex; gap:14px; margin-top:28px; flex-wrap:wrap;}

.btn-primary{background:var(--blaze); color:var(--white); padding:14px 24px; font-weight:700; font-size:13.5px; text-transform:uppercase; letter-spacing:0.04em; border-radius:var(--radius); border:1px solid var(--blaze); display:inline-block;}
.btn-primary:hover{background:#a3421f;}
.btn-ghost{border:1px solid rgba(247,245,238,0.35); color:var(--white); padding:14px 24px; font-weight:700; font-size:13.5px; text-transform:uppercase; letter-spacing:0.04em; border-radius:var(--radius); display:inline-block;}
.btn-ghost:hover{border-color:var(--reed); color:var(--reed);}
.btn-dark{border:1px solid var(--ink); color:var(--ink); padding:13px 22px; font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:0.04em; border-radius:var(--radius); display:inline-block;}
.btn-dark:hover{background:var(--ink); color:var(--white);}

section{padding:76px 0;}
.section-head{max-width:640px; margin-bottom:44px;}
.section-head h2{font-size:clamp(26px,3.2vw,38px); margin-top:12px;}
.section-head p{color:#4b4f46; font-size:16px; margin-top:12px; font-family:'Work Sans',sans-serif;}

.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start;}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.card{background:var(--white); border:1px solid var(--line); padding:26px 24px; border-radius:var(--radius);}
.card h3{font-size:19px; margin-bottom:8px;}
.card p{color:#4b4f46; font-size:14.5px; font-family:'Work Sans',sans-serif;}
.checklist{list-style:none;}
.checklist li{padding:9px 0 9px 24px; position:relative; border-bottom:1px solid var(--line); font-size:15px; color:#2c2f29;}
.checklist li::before{content:'—'; position:absolute; left:0; color:var(--blaze); font-weight:700;}

.fact-strip{background:var(--reed); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.fact-strip .wrap{display:flex; justify-content:space-between; padding:20px 28px; flex-wrap:wrap; gap:16px;}
.fact{font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.04em; color:var(--ink);}
.fact b{display:block; font-family:'Anton',sans-serif; font-size:23px; font-weight:400;}

.area-chip-row{display:flex; flex-wrap:wrap; gap:10px;}
.area-chip-row a{border:1px solid var(--ink); padding:8px 15px; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:0.03em; border-radius:var(--radius);}
.area-chip-row a:hover{background:var(--ink); color:var(--white);}
.area-chip-row a.current{background:var(--blaze); border-color:var(--blaze); color:var(--white);}

.faq-item{border-bottom:1px solid var(--line); padding:22px 0;}
.faq-item summary{cursor:pointer; font-family:'Anton',sans-serif; text-transform:uppercase; font-size:17px; font-weight:400; list-style:none; display:flex; justify-content:space-between; align-items:center;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+'; font-size:22px; color:var(--blaze); font-family:'Work Sans',sans-serif;}
.faq-item[open] summary::after{content:'–';}
.faq-item p{margin-top:12px; color:#4b4f46; font-size:15px; max-width:740px; font-family:'Work Sans',sans-serif;}

.cta-band{background:var(--blaze); color:var(--white); text-align:center; padding:64px 0;}
.cta-band h2{color:var(--white); font-size:clamp(26px,3.4vw,38px);}
.cta-band p{color:rgba(247,245,238,0.85); margin:14px 0 26px; font-size:16px; font-family:'Work Sans',sans-serif;}

.related-row{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.related-card{border:1px solid var(--line); background:var(--white); padding:20px; border-radius:var(--radius);}
.related-card .eyebrow{font-size:11px;}
.related-card h4{font-size:16px; margin:8px 0 6px;}
.related-card p{font-size:13.5px; color:#6b6e63; margin-bottom:10px; font-family:'Work Sans',sans-serif;}
.related-card a{font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:0.03em; color:var(--blaze); border-bottom:1px solid var(--blaze);}

footer{background:#0E100D; color:rgba(247,245,238,0.55); padding:44px 0 30px; font-size:13.5px;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px; padding-bottom:30px; border-bottom:1px solid rgba(247,245,238,0.1); margin-bottom:22px;}
.foot-grid h5{color:var(--reed); font-size:12px; text-transform:uppercase; letter-spacing:0.06em; margin-bottom:14px; font-family:'IBM Plex Mono',monospace;}
.foot-grid a{display:block; color:rgba(247,245,238,0.65); margin-bottom:9px;}
.foot-grid a:hover{color:var(--white);}
.foot-logo{font-family:'Anton',sans-serif; text-transform:uppercase; color:var(--white); font-size:19px; margin-bottom:10px;}
.foot-row{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;}

.media-block{background:linear-gradient(135deg,#3a4a35,#1a1d18); border-radius:var(--radius); display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden;}
.media-block::after{content:'📷 Photo/video placeholder — swap in real media'; position:absolute; bottom:10px; left:10px; right:10px; font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:rgba(247,245,238,0.5); text-transform:none; letter-spacing:0;}

.hero-badge{position:absolute; top:28px; right:28px; width:130px; height:130px; border-radius:50%; box-shadow:0 8px 30px rgba(0,0,0,0.45); z-index:2;}

/* ---- mobile nav drawer ---- */
.nav-scrim{position:fixed; inset:0; background:rgba(20,23,20,0.55); z-index:150; display:none;}
.nav-scrim.open{display:block;}
.nav-drawer{position:fixed; top:0; right:-300px; width:min(82vw,300px); height:100%; height:100dvh; background:var(--ink); z-index:200; transition:right 0.28s ease; padding:76px 26px 26px; overflow-y:auto;}
.nav-drawer.open{right:0;}
.nav-drawer a{display:block; padding:13px 2px; color:var(--white); font-size:14.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.03em; border-bottom:1px solid rgba(247,245,238,0.12); min-height:44px; display:flex; align-items:center;}
.nav-drawer a.drawer-cta{color:var(--blaze); margin-top:14px; border-bottom:none;}
.nav-drawer .drawer-close{position:absolute; top:22px; right:22px; background:none; border:none; color:var(--white); font-size:26px; min-width:44px; min-height:44px;}
.nav-drawer .drawer-group-label{color:var(--reed); font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:0.1em; margin:16px 0 4px; text-transform:uppercase;}
.nav-drawer .drawer-group-label:first-child{margin-top:0;}

/* ---- uniform media tile system (gallery, and anywhere images/video mix) ---- */
.media-tile{background:var(--white); border:1px solid var(--line); border-radius:2px; overflow:hidden; display:flex; flex-direction:column; height:100%;}
.media-tile .media-frame{aspect-ratio:4/3; overflow:hidden; position:relative; background:#0E100D; flex-shrink:0;}
.media-tile .media-frame img{width:100%; height:100%; object-fit:cover; display:block;}
.media-tile .media-frame video{width:100%; height:100%; object-fit:contain; background:#14171A; display:block;}
.media-tile .media-caption{padding:10px 12px; font-size:12.5px; color:#4b4f46; font-family:'Work Sans',sans-serif; line-height:1.4;}
.media-grid-uniform{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}

@media(max-width:880px){
  .media-grid-uniform{grid-template-columns:repeat(2,1fr);}
  .hero-badge{width:80px; height:80px; top:18px; right:18px;}
  .navlinks{display:none;}
  .menu-btn{display:block; min-width:44px; min-height:44px;}
  .grid-2, .grid-3, .related-row{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  section{padding:52px 0;}
  .btn-primary, .btn-ghost, .btn-dark, .navcta{min-height:44px; display:inline-flex; align-items:center; justify-content:center;}
  .area-chip-row a, .loc-chip{min-height:40px; display:inline-flex; align-items:center;}
}

@media(max-width:420px){
  .wrap{padding:0 18px;}
  .media-grid-uniform{grid-template-columns:1fr 1fr; gap:10px;}
  .fact-strip .wrap{gap:12px 20px;}
  .hero-badge{width:64px; height:64px; top:14px; right:14px;}
}

/* prevent any accidental horizontal overflow on narrow viewports */
html, body{overflow-x:hidden; max-width:100%;}
img, video{max-width:100%;}
