@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');

:root { color-scheme: light; --forest:#252525; --deep:#171817; --ink:#292b29; --muted:#566057; --paper:#f3f2ed; --white:#fffefa; --line:#d8dcd4; --gold:#c7591a; --sage:#656f57; --burnt:#a94712; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--white); color:var(--ink); font-family:'DM Sans',Arial,sans-serif; font-size:1rem; line-height:1.6; }
a { color:inherit; }
img { max-width:100%; display:block; }
.wrap { width:min(100% - 3rem, 1200px); margin-inline:auto; }
.skip-link { position:absolute; left:1rem; top:-4rem; z-index:10; background:var(--white); color:var(--deep); padding:.6rem 1rem; }
.skip-link:focus { top:1rem; }
:focus-visible { outline:3px solid #a77631; outline-offset:4px; }
.topline { background:#343d35; color:#eef1e9; font-size:.83rem; font-weight:600; letter-spacing:.035em; padding:.45rem 0; }
.topline span { padding:0 .6rem; color:#f3a06b; }
.site-header { background:#050505; border-bottom:1px solid #252525; }
.header-inner { min-height:108px; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.brand { display:inline-flex; align-items:center; gap:.7rem; text-decoration:none; line-height:1; white-space:nowrap; }
.brand-logo { width:106px; height:106px; object-fit:contain; }
nav { display:flex; align-items:center; gap:2rem; font-weight:700; font-size:.91rem; color:#f5f5f0; }
nav a { text-decoration:none; }
nav a:hover, .text-link:hover, .site-footer a:hover { text-decoration:underline; text-underline-offset:.3em; }
.header-contact { background:var(--gold); color:#151515; padding:.7rem 1rem; border-radius:.2rem; }
.header-contact:hover { background:#ee8645; text-decoration:none; }
.hero { background:var(--paper); padding:clamp(3.5rem,7vw,7rem) 0 4.5rem; overflow:hidden; }
.hero-grid { display:grid; grid-template-columns:minmax(0, .95fr) minmax(0, 1.05fr); gap:clamp(2.5rem,5vw,5rem); align-items:center; }
.eyebrow { margin:0 0 1.4rem; text-transform:uppercase; letter-spacing:.14em; color:var(--burnt); font-size:.78rem; font-weight:800; line-height:1.4; }
.hero .eyebrow { display:flex; align-items:center; gap:.7rem; }
.rule { width:1.8rem; height:2px; background:var(--sage); }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family:Manrope,Arial,sans-serif; line-height:1.12; }
h1 { max-width:11ch; font-size:clamp(3rem,5.25vw,5.4rem); letter-spacing:-.06em; color:var(--deep); margin-bottom:1.6rem; }
.hero-lead { max-width:34rem; color:#4c544c; font-size:clamp(1.07rem,1.45vw,1.22rem); line-height:1.6; margin-bottom:2rem; }
.hero-actions { display:flex; flex-wrap:wrap; gap:1.5rem; align-items:center; }
.button { display:inline-flex; justify-content:center; align-items:center; gap:1.4rem; border-radius:.18rem; text-decoration:none; font-weight:800; padding:.95rem 1.25rem; }
.button-primary { background:var(--burnt); color:var(--white); }
.button-primary:hover { background:#87390f; }
.text-link { color:var(--burnt); font-weight:800; text-underline-offset:.3em; }
.availability { margin:2.1rem 0 0; color:#687267; font-size:.86rem; font-weight:600; }
.availability span { padding:0 .35rem; }
.hero-photo { position:relative; margin:0; align-self:stretch; min-height:480px; }
.hero-photo img { width:100%; height:100%; min-height:480px; object-fit:cover; border-radius:.25rem; box-shadow:18px 18px 0 rgba(138,151,131,.3); }
.hero-photo figcaption { position:absolute; bottom:1.3rem; left:1.3rem; max-width:17rem; background:var(--white); color:var(--deep); padding:1rem 1.1rem; border-left:4px solid var(--gold); font-size:.93rem; font-weight:700; line-height:1.35; box-shadow:0 6px 26px rgba(0,0,0,.12); }
.section { padding:clamp(4.5rem,8vw,8rem) 0; scroll-margin-top:2rem; }
h2 { font-size:clamp(2.2rem,3.6vw,3.7rem); letter-spacing:-.05em; margin-bottom:1.5rem; }
.services-grid { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); gap:clamp(3rem,8vw,8rem); }
.section-intro h2 { max-width:13ch; color:var(--deep); }
.section-intro > p:last-child { color:var(--muted); max-width:26rem; font-size:1.08rem; }
.service-list { border-top:1px solid var(--line); }
.service-item { border-bottom:1px solid var(--line); display:grid; grid-template-columns:3rem 1fr; gap:1.2rem; padding:1.7rem 0; }
.service-number { color:var(--burnt); font-size:.84rem; font-weight:800; padding-top:.2rem; }
.service-item h3 { font-size:1.4rem; letter-spacing:-.025em; margin:0 0 .5rem; color:var(--deep); }
.service-item p { color:var(--muted); margin:0; max-width:32rem; }
.about { background:#e6ebe3; }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(3rem,9vw,9rem); align-items:start; }
.about h2 { max-width:14ch; color:var(--deep); }
.about-copy { font-size:1.15rem; color:#4c574d; padding-top:2.8rem; }
.about-copy p:last-child { margin-bottom:0; }
.contact { background:var(--forest); color:var(--white); }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(3rem,8vw,8rem); align-items:center; }
.eyebrow-light { color:#f3a46f; }
.contact h2 { max-width:13ch; }
.contact p:not(.eyebrow) { color:#e1e5df; max-width:30rem; font-size:1.08rem; margin-bottom:0; }
.contact-actions { border-top:1px solid rgba(255,255,255,.35); }
.contact-link { display:grid; grid-template-columns:1fr auto; align-items:center; column-gap:1rem; border-bottom:1px solid rgba(255,255,255,.35); padding:1.4rem 0; text-decoration:none; }
.contact-link span:first-child { grid-column:1; font-size:.81rem; text-transform:uppercase; letter-spacing:.12em; color:#f3a46f; font-weight:800; }
.contact-link strong { grid-column:1; font-family:Manrope,Arial,sans-serif; font-size:clamp(1.14rem,2vw,1.5rem); overflow-wrap:anywhere; }
.contact-link span:last-child { grid-column:2; grid-row:1 / span 2; font-size:1.5rem; }
.contact-link:hover strong { text-decoration:underline; text-underline-offset:.25em; }
.site-footer { background:#080908; color:#e7eae5; font-size:.86rem; }
.footer-inner { min-height:85px; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.site-footer a { text-decoration:none; }
@media (max-width: 900px) {
  .hero-grid,.services-grid,.about-grid,.contact-grid { grid-template-columns:1fr; }
  .hero { padding-top:4.5rem; }
  .hero h1 { max-width:14ch; }
  .hero-photo { min-height:0; }
  .hero-photo img { max-height:540px; min-height:360px; }
  .about-copy { padding-top:0; }
}
@media (max-width: 620px) {
  .wrap { width:min(100% - 2rem, 1200px); }
  .topline { font-size:.72rem; }
  .header-inner { min-height:82px; }
  nav { gap:.85rem; font-size:.8rem; }
  nav a:not(.header-contact) { display:none; }
  .header-contact { padding:.6rem .7rem; }
  .brand-logo { width:78px; height:78px; }
  .hero { padding:3.5rem 0 4rem; }
  h1 { font-size:clamp(2.7rem,12vw,4rem); }
  .hero-actions { align-items:stretch; flex-direction:column; gap:1.25rem; }
  .button { width:100%; justify-content:space-between; }
  .hero-photo img { min-height:300px; }
  .hero-photo figcaption { position:static; box-shadow:none; border-left:0; border-top:4px solid var(--gold); max-width:none; }
  .service-item { grid-template-columns:2.1rem 1fr; gap:.8rem; }
  .footer-inner { padding:1.5rem 0; flex-wrap:wrap; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } }
