:root { --rouge:#a70f2b; --rouge-dark:#77091d; --ink:#1d1b1a; --ivory:#f5efe4; --paper:#fbf8f2; --line:#d8cebf; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"DM Sans",sans-serif; }
a { color:inherit; }
.site-header { position:absolute; inset:0 0 auto; z-index:2; display:flex; align-items:center; justify-content:space-between; padding:32px clamp(24px,5vw,72px); }
.brand img { width:178px; display:block; }
.contact-link { font-size:14px; font-weight:600; text-decoration:none; border-bottom:1px solid var(--ink); padding-bottom:5px; }
.hero { min-height:94vh; position:relative; overflow:hidden; padding:190px clamp(24px,8vw,132px) 100px; background:radial-gradient(circle at 83% 24%,#fff 0,rgba(255,255,255,.7) 17%,transparent 42%),var(--ivory); }
.eyebrow,.section-label { text-transform:uppercase; letter-spacing:.18em; font-size:12px; font-weight:600; color:var(--rouge); }
.eyebrow { display:flex; align-items:center; gap:12px; }
.eyebrow span { width:36px; height:1px; background:var(--rouge); }
h1,h2 { font-family:"Libre Caslon Display",Georgia,serif; font-weight:400; margin:0; letter-spacing:-.035em; }
h1 { max-width:970px; margin-top:30px; font-size:clamp(58px,8.4vw,126px); line-height:.88; }
h1 em { color:var(--rouge); font-weight:400; }
.intro { max-width:595px; font-size:clamp(18px,2vw,24px); line-height:1.55; margin:45px 0 36px; }
.hero-actions { display:flex; align-items:center; gap:35px; }
.primary-button { display:inline-flex; background:var(--rouge); color:white; padding:17px 24px; text-decoration:none; font-size:14px; font-weight:600; transition:.2s ease; }
.primary-button:hover { background:var(--rouge-dark); transform:translateY(-2px); }
.hero-actions p { color:#6f6861; font-size:12px; line-height:1.55; }
.bridge-line { position:absolute; right:-4vw; bottom:0; width:48vw; height:46%; border-top:8px solid rgba(167,15,43,.12); transform:skewY(-10deg); transform-origin:right top; display:flex; justify-content:space-around; }
.bridge-line span { display:block; height:100%; width:7px; background:rgba(167,15,43,.09); }
.about { padding:110px clamp(24px,8vw,132px); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:7vw; margin-top:28px; }
.about h2,.closing h2 { font-size:clamp(45px,5.6vw,82px); line-height:1; }
.about-copy { border-top:1px solid var(--line); padding-top:25px; }
.about-copy p { font-size:19px; line-height:1.65; margin:0 0 22px; }
.focus { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin:0 clamp(24px,5vw,72px) 120px; }
.focus article { padding:32px 28px 40px; min-height:235px; border-right:1px solid var(--line); }
.focus article:last-child { border-right:0; }
.focus span { color:var(--rouge); font-size:12px; }
.focus h3 { font-family:"Libre Caslon Display",Georgia,serif; font-size:29px; font-weight:400; margin:48px 0 10px; }
.focus p { color:#6f6861; line-height:1.55; font-size:14px; }
.closing { text-align:center; background:var(--rouge); color:white; padding:100px 24px 110px; }
.section-label.light { color:#f0c7ce; }
.closing h2 { margin:28px auto; }
.closing p:not(.section-label) { opacity:.78; }
.closing a { display:inline-block; margin-top:20px; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.7); padding-bottom:6px; }
footer { display:flex; align-items:center; justify-content:space-between; gap:25px; padding:32px clamp(24px,5vw,72px); font-size:12px; color:#6f6861; }
footer img { width:140px; }
@media (max-width:800px) {
  .site-header { padding-top:24px; } .brand img { width:145px; } .contact-link { font-size:12px; }
  .hero { padding-top:160px; min-height:auto; } h1 { font-size:clamp(52px,16vw,82px); }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:10px; }
  .bridge-line { opacity:.55; width:70vw; }
  .about-grid { grid-template-columns:1fr; gap:35px; }
  .focus { grid-template-columns:1fr 1fr; }
  .focus article:nth-child(2) { border-right:0; } .focus article:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  footer { align-items:flex-start; flex-direction:column; }
}
@media (max-width:480px) { .focus { grid-template-columns:1fr; } .focus article { border-right:0; border-bottom:1px solid var(--line); } }
