:root { --red:#e0110c; --ink:#0e0e0e; --paper:#f8f7f4; --muted:#696969; --line:rgba(14,14,14,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"DM Sans", Arial, sans-serif; font-size:16px; line-height:1.55; }
a { color:inherit; text-decoration:none; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.site-header { height:96px; max-width:1440px; margin:auto; padding:0 5.5vw; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:12px; font-size:13px; letter-spacing:.16em; font-weight:700; }
.brand img { width:44px; height:44px; object-fit:contain; }
nav { display:flex; align-items:center; gap:30px; font-size:14px; }
nav > a:not(.button) { transition:color .2s ease; } nav > a:not(.button):hover { color:var(--red); }
.button { display:inline-flex; justify-content:center; align-items:center; gap:15px; background:var(--red); color:#fff; padding:15px 22px; border:1px solid var(--red); font-size:13px; font-weight:700; letter-spacing:.03em; transition:all .2s ease; }
.button:hover { background:transparent; color:var(--red); }.button span,.text-link span { font-size:18px; line-height:0; }.button--small { padding:11px 16px; }.button--light { background:#fff; border-color:#fff; color:var(--ink); }.button--light:hover { background:transparent; color:#fff; }
.menu-toggle { display:none; background:none; border:0; padding:8px; }.menu-toggle span:not(.sr-only) { display:block; width:24px; height:2px; margin:5px; background:var(--ink); }
.section,.hero { padding:124px 5.5vw; }.hero { max-width:1440px; min-height:720px; margin:auto; display:grid; grid-template-columns:1.15fr .85fr; align-items:center; gap:70px; overflow:hidden; }
.eyebrow { margin:0 0 22px; color:var(--red); font-size:12px; letter-spacing:.15em; font-weight:700; text-transform:uppercase; }
h1,h2,h3,p { margin-top:0; } h1,h2 { font-family:"Playfair Display", Georgia, serif; font-weight:500; line-height:1.07; letter-spacing:-.035em; }h1 { max-width:780px; margin-bottom:28px; font-size:clamp(48px,6.2vw,92px); }h2 { font-size:clamp(36px,4.15vw,62px); }em { color:var(--red); font-style:italic; }.hero__lead { max-width:580px; font-size:20px; color:#343434; }.hero__actions { display:flex; align-items:center; flex-wrap:wrap; gap:26px; margin-top:38px; }.text-link { display:inline-flex; align-items:center; gap:11px; font-weight:700; font-size:14px; border-bottom:1px solid currentColor; padding-bottom:4px; }
.hero__art { position:relative; min-height:450px; background:var(--ink); color:#fff; overflow:hidden; }.hero__art p { position:absolute; z-index:2; left:10%; bottom:8%; margin:0; font-size:clamp(38px,4vw,61px); line-height:.94; font-weight:700; letter-spacing:-.07em; }.hero__circle { position:absolute; display:block; border-radius:50%; border:1px solid rgba(255,255,255,.46); }.hero__circle--one { width:460px; height:460px; right:-145px; top:-105px; }.hero__circle--two { width:300px; height:300px; left:-150px; bottom:-135px; background:var(--red); border:none; }.hero__line { position:absolute; height:1px; width:130%; background:var(--red); transform:rotate(-36deg); top:47%; left:-16%; }
.intro { border-top:1px solid var(--line); }.intro__grid,.situations__grid,.approach__grid { display:grid; grid-template-columns:1fr 1fr; gap:9vw; }.intro h2 { margin:0; }.intro__grid p { font-size:19px; color:#3d3d3d; }.section--dark { background:var(--ink); color:#fff; }.section--dark .eyebrow { color:#ed504c; }.section-heading { margin-bottom:60px; }.section-heading h2 { margin:0; }.expertise-list { border-top:1px solid rgba(255,255,255,.26); }.expertise-list article { display:grid; grid-template-columns:80px 1fr; gap:25px; padding:30px 0 27px; border-bottom:1px solid rgba(255,255,255,.26); }.expertise-list span { color:#ef5a56; font-size:13px; font-weight:700; }.expertise-list h3 { margin:0 0 8px; font-size:24px; line-height:1.2; }.expertise-list p { max-width:650px; margin:0; color:#c8c8c8; font-size:16px; }
.situations { background:#fff; }.situations h2 { margin:0; }.situations ul { margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }.situations li { padding:18px 0 18px 28px; border-bottom:1px solid var(--line); position:relative; font-size:17px; }.situations li:before { content:"/"; position:absolute; left:0; color:var(--red); font-weight:700; }.section--red { background:var(--red); color:#fff; }.section--red .eyebrow { color:#fff; }.section--red em { color:var(--ink); }.approach__grid h2 { margin:0; }.principles { border-top:1px solid rgba(255,255,255,.45); }.principles > div { display:grid; grid-template-columns:50px 1fr; border-bottom:1px solid rgba(255,255,255,.45); padding:18px 0; }.principles span { font-weight:700; font-size:13px; }.principles p { margin:0; font-size:18px; }
.about { display:grid; grid-template-columns:minmax(320px,.9fr) minmax(460px,1.1fr); gap:clamp(70px,10vw,150px); align-items:center; max-width:1360px; margin:auto; padding-top:120px; padding-bottom:145px; }
.about__visual { position:relative; width:min(42vw,520px); margin-left:clamp(0px,2vw,30px); padding:0 0 34px 32px; transform:translateY(-16px); }
.about__accent { position:absolute; z-index:0; left:0; bottom:0; width:62%; height:54%; background:var(--red); }
.about__portrait { position:relative; z-index:1; width:100%; aspect-ratio:1.065 / 1; overflow:hidden; background:#d7d0c4; }
.about__portrait img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 90%; transform:scale(1.2); transform-origin:50% 7%; }
.about__signature { position:absolute; z-index:2; right:-28px; bottom:5px; margin:0; padding:8px 13px; background:var(--ink); color:#fff; font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.about__copy { transform:translateY(36px); }
.about__copy h2 { margin-bottom:22px; }.about__copy p { max-width:650px; color:#3d3d3d; font-size:18px; }.about__copy .about__story { padding-left:18px; border-left:2px solid var(--red); font-family:"Playfair Display", Georgia, serif; font-size:20px; line-height:1.4; color:var(--ink); }.about__copy .text-link { margin-top:15px; }.contact { background:var(--ink); color:#fff; text-align:center; padding:135px 20px; }.contact .eyebrow { color:#ef5a56; }.contact h2 { margin:0 auto 18px; }.contact h2 em { color:#ef5a56; }.contact__lead { max-width:510px; margin:0 auto 34px; color:#c8c8c8; font-size:18px; }footer { padding:35px 5.5vw; background:#0a0a0a; color:#fff; display:flex; align-items:center; justify-content:space-between; gap:20px; font-size:13px; }footer .brand img { background:#fff; border-radius:50%; }footer p { margin:0; color:#b8b8b8; }.footer__links { display:flex; align-items:center; gap:22px; }.footer__links a { border-bottom:1px solid #fff; }
@media (max-width:760px) { .site-header { height:76px; padding:0 24px; }.brand img { width:38px; height:38px; }.brand span { font-size:11px; }.menu-toggle { display:block; }nav { display:none; position:absolute; z-index:4; top:76px; left:0; right:0; padding:24px; flex-direction:column; align-items:flex-start; background:var(--paper); border-bottom:1px solid var(--line); }nav.is-open { display:flex; }.hero,.intro__grid,.situations__grid,.approach__grid,.about { grid-template-columns:1fr; }.section,.hero { padding:78px 24px; }.hero { min-height:0; gap:52px; }.hero__lead { font-size:18px; }.hero__art { min-height:330px; }.intro__grid,.situations__grid,.approach__grid { gap:35px; }.expertise-list article { grid-template-columns:45px 1fr; gap:12px; }.expertise-list h3 { font-size:20px; }.about { padding:82px 24px 78px; gap:44px; }.about__visual { width:calc(100% - 22px); max-width:400px; margin:0; padding:0 0 25px 22px; transform:none; }.about__portrait img { transform:scale(1.16); }.about__signature { right:-16px; bottom:0; font-size:8px; }.about__copy { transform:none; }.contact { padding:90px 24px; }footer { padding:30px 24px; flex-wrap:wrap; }.hero__actions { gap:20px; } }
