:root {
  color-scheme: light;
  --ink:#251e1a; --black:#241b18; --paper:#fbf7ee; --accent:#efd39b;
  --rust:#782c24; --line:#dccfc0;
  font: 16px/1.55 "DM Sans",Arial,sans-serif;
  color:var(--ink); background:var(--paper);
}
* { box-sizing:border-box; }
html { scroll-padding-top:1rem; }
body,figure,blockquote { margin:0; }
a { color:inherit; }
a:focus-visible,summary:focus-visible { outline:3px solid #699fdb; outline-offset:4px; }
.skip { position:absolute; left:1rem; top:-6rem; background:white; padding:1rem; z-index:2; }
.skip:focus { top:1rem; }
.wrap { width:min(1160px,calc(100% - 64px)); margin-inline:auto; }
.top { background:var(--black); color:var(--paper); border-bottom:1px solid #51392f; }
.nav,.footer { display:flex; align-items:center; justify-content:space-between; gap:1.2rem; min-height:82px; }
.brand { display:flex; align-items:center; gap:.7rem; text-decoration:none; font:700 1.25rem/.89 "Barlow Condensed","Arial Narrow",sans-serif; letter-spacing:.045em; }

nav { display:flex; gap:clamp(1rem,4vw,2.6rem); }
nav a,.button { text-decoration:none; font-weight:700; }
nav a:hover,.text-link:hover,.info a:hover { text-decoration-thickness:2px; text-decoration:underline; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:.75rem; min-height:50px; padding:.65rem 1.1rem; background:var(--accent); color:var(--ink); border:1px solid var(--accent); border-radius:3px; }
.button:hover { background:#ffe3af; border-color:#ffe3af; }
.button.small { min-height:42px; }
.outline { background:transparent; border-color:#777b6d; color:var(--paper); }
.outline:hover { background:#4c352d; border-color:var(--paper); }
.hero { background:var(--black); color:var(--paper); }
.hero-grid { display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.hero-copy { padding:clamp(2.8rem,7vw,6rem) 1.6rem clamp(3rem,8vw,6rem) 0; }
.eyebrow,.label { font-size:.76rem; letter-spacing:.16em; font-weight:700; color:var(--rust); }
.eyebrow span { display:inline-block; width:20px; height:2px; margin-right:.5rem; vertical-align:middle; background:currentColor; }
.hero .eyebrow,.hero em { color:var(--accent); }
h1,h2,h3 { font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif; line-height:1; margin:0; }
h1 { font-size:clamp(3.8rem,8vw,7.6rem); letter-spacing:-.025em; line-height:.87; font-weight:800; }
h1 em { font-style:normal; }
.hero-copy > p:not(.eyebrow) { max-width:32ch; color:#e0dfd5; font-size:1.14rem; margin:1.6rem 0; }
.actions { display:flex; gap:.75rem 1.15rem; align-items:center; flex-wrap:wrap; }
.hero-art { position:relative; min-height:290px; background:#34372f; overflow:hidden; }
.hero-art img { position:absolute; width:100%; height:100%; object-fit:cover; object-position:center; }

.info { background:#f1e5d5; border-bottom:1px solid var(--line); }
.info-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr; }
.info-grid div { padding:1rem 1.1rem 1rem 0; }
.info-grid div + div { padding-left:1.15rem; border-left:1px solid #d9c7b3; }
.label { display:block; }
.info a { font-weight:700; text-decoration:none; }
.section { padding-block:clamp(3rem,7vw,5.4rem); }
h2 { font-size:clamp(2.75rem,6vw,4.6rem); }
h3 { font-size:1.85rem; }
.services { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:2rem; }
.services article { border-top:3px solid var(--rust); padding-top:1rem; }
.services p { margin-bottom:0; }
.review-band { background:#f1e5d5; }
.review,.visit { display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.6rem,5vw,5rem); }
.review { padding-block:3rem; align-items:center; }
blockquote { font:600 clamp(2rem,4vw,3.4rem)/1.05 "Barlow Condensed","Arial Narrow",sans-serif; }
.attribution { margin:.8rem 0 0; }
.text-link { font-weight:700; text-underline-offset:4px; }
.review .text-link { display:inline-block; margin-top:1rem; }
address { font-style:normal; margin:1.2rem 0; }
.questions { padding:1.35rem; border:1px solid var(--line); }
.questions h3 { margin-bottom:.7rem; }
details { border-top:1px solid var(--line); padding:.7rem 0; }
summary { cursor:pointer; font-weight:700; }
details p { margin:.55rem 0 0; }
footer { background:var(--black); color:var(--paper); }
@media(max-width:820px) {
  .wrap { width:calc(100% - 40px); }
  .services { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:620px) {
  .wrap { width:calc(100% - 32px); }
  .nav { flex-wrap:wrap; padding-block:.75rem; gap:.8rem; }
  nav { order:3; width:100%; justify-content:space-between; border-top:1px solid #51392f; padding-top:.65rem; }
  .hero-grid,.visit,.review { grid-template-columns:1fr; }
  .hero-copy { padding-right:0; }
  .hero-art { min-height:230px; }
  .hero { padding-bottom:16px; }
  .info-grid { grid-template-columns:1fr; }
  .info-grid div { padding:.65rem 0; }
  .info-grid div + div { padding-left:0; border-left:0; border-top:1px solid #d9c7b3; }
  .footer { flex-wrap:wrap; padding-block:1rem; }
}

.brand img { display:block; width:clamp(145px,24vw,290px); height:auto; }
.tow-band { background:#61241d; color:var(--paper); }
.tow { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; padding-block:2.5rem; }
.tow .eyebrow { color:var(--accent); }
.tow p:last-child { margin-bottom:0; }
@media(min-width:621px) and (max-width:900px) {
  .nav { flex-wrap:wrap; gap:.85rem; padding-block:.75rem; }
  nav { gap:1.1rem; }
}
@media(max-width:620px) {
  .hero-art { min-height:0; aspect-ratio:16/9; }
}
