
:root{
  --ink:#171816;
  --muted:#666a63;
  --paper:#f5f3ee;
  --dark:#20221f;
  --line:rgba(23,24,22,.14);
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--paper);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.6}
img{display:block;width:100%;height:auto}
a{color:inherit;text-decoration:none}
.container{width:min(calc(100% - 40px),var(--max));margin:auto}
.site-header{position:absolute;z-index:10;top:0;left:0;right:0;color:#fff;padding:22px 0}
.nav{display:flex;align-items:center;justify-content:space-between;gap:30px}
.brand{font-size:15px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.nav-links{display:flex;gap:26px;font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.nav-links a{opacity:.9}
.nav-links a:hover{opacity:1}
.hero{min-height:88vh;display:flex;align-items:flex-end;position:relative;color:#fff;overflow:hidden;background:#222}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 58%}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.60),rgba(0,0,0,.08) 75%),linear-gradient(0deg,rgba(0,0,0,.55),transparent 55%)}
.hero-content{position:relative;z-index:1;padding:0 0 82px;max-width:790px}
.eyebrow,.section-kicker{font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.eyebrow{margin:0 0 18px}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;line-height:1.08}
h1{font-size:clamp(52px,8vw,105px);margin:0 0 25px;letter-spacing:-.035em}
.hero-lead{font-size:clamp(19px,2vw,25px);max-width:700px;margin:0 0 18px;color:rgba(255,255,255,.96)}
.hero-copy{font-size:19px;max-width:720px;margin:0;color:rgba(255,255,255,.94)}
.section{padding:105px 0}
.section-head{display:grid;grid-template-columns:360px 1fr;gap:42px;margin-bottom:38px}
.section-kicker{color:var(--muted);font-size:17px;font-weight:500;letter-spacing:.15em;white-space:nowrap}
.section h2{font-size:clamp(40px,5vw,65px);margin:0}
.section-intro{font-size:19px;max-width:760px;color:#41443f;margin:0}
.services{padding-top:5px}
.service{display:grid;grid-template-columns:55px 1fr;gap:15px;padding:43px 0;border-top:1px solid var(--line)}
.service:last-child{border-bottom:1px solid var(--line)}
.service-num{font-size:12px;color:var(--muted);letter-spacing:.12em;padding-top:8px}
.service-content{max-width:820px}
.service h3{font-size:34px;margin:0 0 18px}
.service p{margin:0 0 17px;color:#50544e;font-size:17px}
.service ul{margin:0;padding-left:20px;color:#50544e}
.service li{margin:4px 0}
.photo-wide{height:570px;overflow:hidden}
.photo-wide img{height:100%;object-fit:cover;object-position:center 48%}
.image-pair{display:grid;grid-template-columns:1.3fr .7fr;height:520px}
.image-pair img{height:100%;object-fit:cover}
.image-pair .right{display:grid;grid-template-rows:1fr 1fr}
.rates{background:var(--dark);color:#f5f3ee}
.rates .section-kicker{color:#bfc1ba}
.rates .section-intro{color:#d7d8d3}
.rate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.18);margin-top:48px}
.rate{padding:35px;background:var(--dark);min-height:225px}
.rate h3{font-size:24px;margin:0 0 22px}
.rate strong{display:block;font-family:Georgia,serif;font-size:31px;font-weight:400;margin-bottom:13px}
.rate p{color:#c7c9c2;margin:0;font-size:15px}
.rate-note{font-size:13px;color:#bfc1ba;margin:28px 0 0}
.statement{padding:115px 0}
.statement blockquote{margin:0;max-width:900px;font-family:Georgia,serif;font-size:clamp(40px,6vw,78px);line-height:1.04;letter-spacing:-.025em}
.statement p{max-width:760px;font-size:19px;color:#4e514c;margin:32px 0 0}
.statement .languages{margin-top:26px;font-size:13px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.cta{background:#dedbd2;padding:90px 0}
.cta-inner{display:flex;justify-content:space-between;gap:55px;align-items:end}
.cta h2{font-size:clamp(44px,6vw,72px);margin:0 0 18px}
.cta p{max-width:650px;margin:0;color:#555851}
.buttons{display:flex;gap:12px;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:center;padding:15px 23px;border:1px solid var(--ink);font-size:12px;letter-spacing:.13em;text-transform:uppercase;white-space:nowrap}
.button:hover{background:var(--ink);color:#fff}
footer{padding:30px 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.footer-inner{display:flex;justify-content:space-between;gap:20px}
.page-hero{padding:175px 0 90px;background:var(--dark);color:#fff}
.page-hero h1{font-size:clamp(52px,7vw,90px);margin:0;max-width:950px}
.page-hero .eyebrow{margin-bottom:22px}
.prose{max-width:850px}
.prose h2{font-size:42px;margin:0 0 25px}
.prose h3{font-size:32px;margin:55px 0 18px}
.prose p{font-size:18px;color:#4e514c;margin:0 0 20px}
.prose strong{color:var(--ink)}
.about-image{margin-top:70px}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}
.contact-card{border-top:1px solid var(--line);padding:25px 0 28px}
.contact-card h3{font-size:32px;margin:0 0 10px}
.contact-card p{margin:0 0 18px;color:#555851}
.note{font-size:13px;color:var(--muted)}
@media(max-width:800px){
  .container{width:min(calc(100% - 28px),var(--max))}
  .site-header{padding:18px 0}
  .nav-links{gap:13px;font-size:10px}
  .brand{font-size:12px}
  .hero{min-height:83vh}
  .hero-content{padding-bottom:55px}
  .section{padding:72px 0}
  .section-head{grid-template-columns:1fr;gap:10px;margin-bottom:32px}
  .service{grid-template-columns:40px 1fr;gap:10px;padding:35px 0}
  .service h3{font-size:29px}
  .photo-wide{height:55vw;min-height:280px}
  .image-pair{grid-template-columns:1fr;height:auto}
  .image-pair>img{height:55vw;min-height:260px}
  .image-pair .right{grid-template-columns:1fr 1fr;grid-template-rows:none}
  .image-pair .right img{height:42vw;min-height:210px}
  .rate-grid{grid-template-columns:1fr}
  .rate{min-height:0}
  .statement{padding:78px 0}
  .cta-inner{display:block}
  .cta .buttons{margin-top:30px}
  .contact-grid{grid-template-columns:1fr;gap:45px}
  .page-hero{padding:130px 0 65px}
  .footer-inner{display:block}
  .footer-inner span{display:block;margin-top:8px}
}

/* About hero: keep the title comfortably below the header on desktop and mobile. */
.page-hero h1, .hero .hero-content h1 { max-width: 820px; }
@media (min-width:801px){
  .hero .hero-content h1 { max-width: 760px; }
}

/* V14 — About hero: natural title wrapping and compact spacing */
.about-hero .hero-content {
  padding-top: 75px;
}
.about-hero .hero-content h1 {
  max-width: 900px;
  line-height: 0.95;
}
@media (max-width: 800px) {
  .about-hero .hero-content {
    padding-top: 60px;
  }
  .about-hero .hero-content h1 {
    max-width: 100%;
    line-height: 1.0;
  }
}


@media (max-width: 760px){
  .hero{
    padding-top:72px;
    padding-bottom:72px;
  }

  .hero-copy{
    font-size:19px;
    line-height:1.55;
    margin-top:22px;
  }

  .hero-lead{
    margin-top:18px;
    margin-bottom:0;
  }

  .section-kicker{
    white-space:normal;
    letter-spacing:.08em;
    line-height:1.2;
  }
}
