
:root{
  --bg:#f6f3ed;
  --surface:#fbfaf7;
  --surface-alt:#eee9e1;
  --ink:#171512;
  --muted:#655d54;
  --line:#d8d0c5;
  --accent:#8d7259;
  --accent-dark:#715a45;
  --max:1180px;
  --serif:Baskerville,"Baskerville Old Face","Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.6;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%}
a{color:inherit}
a:focus-visible,button:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:4px;
}
.skip-link{
  position:absolute;left:-9999px;top:10px;z-index:999;
  background:var(--ink);color:#fff;padding:10px 14px;text-decoration:none
}
.skip-link:focus{left:10px}
.container{width:min(calc(100% - 48px),var(--max));margin:0 auto}

.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(246,243,237,.94);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(216,208,197,.72);
}
.nav-wrap{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:32px}
.brand{display:inline-flex;align-items:center;text-decoration:none}
.brand img{width:190px;height:auto}
.nav{display:flex;gap:36px;align-items:center}
.nav a{
  text-decoration:none;
  color:var(--muted);
  font-family:var(--serif);
  font-size:1.02rem;
  transition:color .18s ease;
}
.nav a:hover{color:var(--ink)}

.hero{border-bottom:1px solid var(--line)}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;min-height:610px}
.hero-copy{padding:72px 58px 44px 0;display:flex;flex-direction:column;justify-content:center}
.hero-visual{min-height:610px;overflow:hidden;background:#d9d0c4}
.hero-visual img{width:100%;height:100%;object-fit:cover;object-position:center}
.mini-line{width:42px;height:1px;background:var(--accent);margin:0 0 24px}
.eyebrow{
  margin:0 0 15px;
  color:var(--accent);
  font-size:.71rem;
  font-weight:600;
  letter-spacing:.29em;
  text-transform:uppercase
}
h1,h2,h3{
  margin:0;
  font-family:var(--serif);
  font-weight:400;
  color:var(--ink)
}
h1{font-size:clamp(3.35rem,5.5vw,5.75rem);line-height:1.01;letter-spacing:-.035em}
h2{font-size:clamp(2.45rem,4vw,4.05rem);line-height:1.03;letter-spacing:-.025em}
h3{font-size:1.55rem;line-height:1.15}
.lead{
  max-width:620px;
  margin:25px 0 0;
  color:var(--muted);
  font-size:1.12rem;
  line-height:1.7
}
.hero-actions{display:flex;gap:14px;margin-top:30px}
.button{
  min-height:48px;
  padding:0 24px;
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--accent);
  text-decoration:none;
  font-size:.9rem;
  transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease
}
.button:hover{transform:translateY(-1px)}
.button-accent{background:var(--accent);border-color:var(--accent);color:white}
.button-accent:hover{background:var(--accent-dark);border-color:var(--accent-dark)}
.button-secondary{background:transparent;color:var(--ink)}
.button-secondary:hover{background:rgba(141,114,89,.08)}
.hero-kicker{
  margin-top:46px;
  display:grid;
  gap:2px;
  color:var(--accent);
  font-size:.68rem;
  letter-spacing:.31em
}

.section{padding:84px 0;border-bottom:1px solid var(--line)}
.about-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:76px;align-items:center}
.body-text{max-width:650px;margin:19px 0 0;color:var(--muted);font-size:1.06rem}
.quote-panel{
  padding:22px 0 22px 54px;
  border-left:1px solid var(--line)
}
blockquote{
  margin:0 0 22px;
  font-family:var(--serif);
  font-style:italic;
  font-size:1.9rem;
  line-height:1.22;
  color:#544b43
}
.approach-section{background:var(--bg)}
.section-head .intro{margin-top:8px}
.service-grid{margin-top:36px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.service-card{min-height:238px;padding:32px 28px 10px 0}
.service-card + .service-card{border-left:1px solid var(--line);padding-left:28px}
.service-icon{
  width:31px;height:31px;margin-bottom:18px;
  fill:none;stroke:var(--accent);stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round
}
.service-card p{margin:10px 0 0;color:var(--muted);font-size:.96rem}

.contact-row{display:flex;align-items:flex-end;justify-content:space-between;gap:52px}
.contact-items{
  min-width:420px;
  padding-top:18px;
  border-top:1px solid var(--line);
  display:flex;justify-content:flex-end;gap:42px;flex-wrap:wrap
}
.contact-items a{text-decoration:none}
.contact-items a:hover{text-decoration:underline;text-underline-offset:4px}
.contact-items span{color:var(--muted)}

.footer{padding:24px 0 30px}
.footer-wrap{display:flex;align-items:center;justify-content:space-between;gap:28px;color:var(--muted);font-size:.8rem}
.footer-brand{display:flex;align-items:center;gap:13px}
.footer-brand img{width:26px;height:40px;object-fit:contain;opacity:.8}
.footer-links{display:flex;gap:22px}
.footer-links a{text-decoration:none}
.footer-links a:hover{text-decoration:underline;text-underline-offset:4px}

.page-hero{padding:82px 0 52px;border-bottom:1px solid var(--line)}
.page-hero-inner{max-width:760px;margin-left:auto;margin-right:auto;text-align:center}
.page-hero h1{font-size:clamp(3.2rem,5vw,5.15rem)}
.page-hero .lead{margin-left:auto;margin-right:auto}
.brands-section{padding-top:64px}
.brand-card{
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  background:var(--surface);
  border:1px solid var(--line);
  overflow:hidden
}
.brand-card-copy{padding:50px;display:flex;flex-direction:column;justify-content:center}
.brand-card-copy h2{font-size:3.5rem}
.brand-card-image{min-height:345px;background:#302a25;display:flex;align-items:center}
.brand-card-image img{width:100%;height:100%;min-height:345px;object-fit:cover}
.coming-soon{
  align-self:flex-start;
  margin-bottom:22px;
  padding:7px 10px;
  border:1px solid var(--line);
  color:var(--accent);
  font-size:.66rem;
  letter-spacing:.19em;
  text-transform:uppercase
}
.brand-note{margin:17px 0 0;color:var(--accent);font-size:.83rem;letter-spacing:.12em;text-transform:uppercase}

.legal-page{padding:84px 0 96px}
.legal-container{max-width:780px}
.legal-page h1{font-size:clamp(3.2rem,5vw,5.1rem);margin-bottom:8px}
.legal-page h2{font-size:1.75rem;margin-top:42px}
.legal-page p{color:var(--muted);font-size:1rem}
.legal-updated{margin:0 0 46px!important;font-size:.85rem!important;color:var(--accent)!important}
.legal-page a{color:var(--ink)}

.error-page{min-height:65vh;display:grid;align-items:center;padding:88px 0}
.error-inner{max-width:760px}
.error-inner .button{margin-top:28px}

@media(max-width:900px){
  .hero-grid,.about-grid,.brand-card{grid-template-columns:1fr}
  .hero-copy{padding:64px 0 38px}
  .hero-visual{min-height:430px}
  .about-grid{gap:46px}
  .quote-panel{padding:0;border-left:0}
  .service-grid{grid-template-columns:1fr}
  .service-card{min-height:auto;padding:30px 0}
  .service-card + .service-card{border-left:0;border-top:1px solid var(--line);padding-left:0}
  .contact-row{align-items:flex-start;flex-direction:column}
  .contact-items{min-width:0;width:100%;justify-content:flex-start}
  .brand-card-image{min-height:260px}
  .brand-card-image img{min-height:260px}
}
@media(max-width:640px){
  .container{width:min(calc(100% - 30px),var(--max))}
  .nav-wrap{min-height:68px;gap:14px}
  .brand img{width:145px}
  .nav{gap:15px}
  .nav a{font-size:.87rem}
  .hero-copy{padding-top:54px}
  .hero-visual{min-height:330px}
  h1{font-size:clamp(2.75rem,13vw,4.1rem)}
  .section{padding:68px 0}
  .hero-actions{flex-direction:column;align-items:stretch}
  .button{width:100%}
  .hero-kicker{margin-top:34px;letter-spacing:.22em}
  .contact-items{gap:12px;flex-direction:column}
  .footer-wrap{align-items:flex-start;flex-direction:column}
  .brand-card-copy{padding:34px 28px}
  .brand-card-copy h2{font-size:2.9rem}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}

/* Dedicated pages retain the original Highspire visual language. */
body{min-height:100svh;display:flex;flex-direction:column}
main{flex:1}
.nav a{display:inline-flex;align-items:center;min-height:44px}
.nav a[aria-current="page"]{color:var(--ink);text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:1px}
.eyebrow{font-size:.75rem;color:var(--accent-dark)}
.hero-kicker{font-size:.75rem;color:var(--accent-dark)}
.button-accent{background:var(--accent-dark);border-color:var(--accent-dark)}
.footer-wrap{font-size:.875rem}
.coming-soon{font-size:.875rem;color:var(--accent-dark)}
.service-card p{font-size:1rem}
.about-section h1{font-size:clamp(3rem,5vw,5rem)}
.contact-page{min-height:65svh;display:grid;align-items:center}
.contact-page-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:center}
.contact-page h1{font-size:clamp(3rem,5vw,5rem)}
.contact-details{border-left:1px solid var(--line);padding:25px 0 25px 45px}
.contact-details p{margin-top:0}
.contact-details .location-label{margin-top:45px}
.email-link{font-family:var(--serif);font-size:clamp(1.2rem,2.1vw,1.65rem);text-underline-offset:6px;overflow-wrap:anywhere}
@media(max-width:900px){.contact-page-grid{grid-template-columns:1fr;gap:40px}.contact-details{border-left:0;border-top:1px solid var(--line);padding:30px 0 0}.hero-visual{height:430px;min-height:0}}
@media(max-width:640px){.nav-wrap{flex-wrap:wrap;justify-content:center;gap:0;padding:12px 0 4px}.brand{justify-content:center;width:100%}.nav{gap:30px}.nav a{font-size:1rem}.hero-visual{height:330px}.hero-copy{padding-top:38px}.footer-links a{display:inline-flex;align-items:center;min-height:44px}}
