@font-face { font-family:Montserrat; font-style:normal; font-weight:400; font-display:swap; src:url('fonts/Montserrat-Regular.ttf') format('truetype'); }
@font-face { font-family:Montserrat; font-style:normal; font-weight:500 750; font-display:swap; src:url('fonts/Montserrat-Bold.ttf') format('truetype'); }
@font-face { font-family:Montserrat; font-style:normal; font-weight:800 900; font-display:swap; src:url('fonts/Montserrat-ExtraBold.ttf') format('truetype'); }
:root { --body-muted:#4c595a; }
html { scroll-padding-top:110px; }
figure { margin:0; }
a:focus-visible, summary:focus-visible { outline:3px solid var(--ema); outline-offset:5px; }
.skip-link { position:fixed; top:8px; left:8px; z-index:50; padding:12px; background:var(--paper); transform:translateY(-180%); }
.skip-link:focus { transform:translateY(0); }
.nav { min-height:86px; }
.brand img { width:250px; }
.nav__links { gap:20px; }
.hero__inner { padding:64px 0 56px; }
.hero__grid { grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.hero h1 { font-size:clamp(2.25rem,4.3vw,3.85rem); line-height:1.03; letter-spacing:-.035em; font-weight:800; }
.kicker { color:var(--ema-dark); letter-spacing:.10em; }
.hero__intro { margin:24px 0; font-size:1rem; max-width:46ch; }
.hero-actions { display:grid; gap:12px; max-width:430px; }
.hero-actions .button { min-height:54px; font-size:.88rem; }
.button-number { margin-left:auto; font-size:.85rem; white-space:nowrap; }
.hero-identity { color:var(--body-muted); font-size:.78rem; margin:16px 0 0; }
.hero-project { background:var(--white); border:1px solid var(--line); }
.hero-project img { width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.hero-project figcaption { padding:16px 20px; display:grid; gap:5px; font-size:.85rem; }
.hero-project figcaption span { color:var(--body-muted); font-size:.75rem; }
.button { transition:background-color .16s ease-out,color .16s ease-out; }
.button:hover { background:var(--ema-ink); color:var(--paper); }
.button--light:hover { background:var(--paper-soft); color:var(--ema-dark); }
.section { padding:64px 0; }
.section__head h2 { font-size:clamp(1.9rem,3.2vw,3rem); font-weight:800; }
.section__head p { color:var(--body-muted); }
.service-index { box-shadow:none; grid-template-columns:1fr 1fr; }
.service-row { grid-template-columns:46px 1fr auto; padding:22px; gap:16px; min-height:135px; }
.service-row:nth-child(odd) { border-right:1px solid var(--line); }
.service-row:nth-child(3) { border-bottom:0; }
.service-row__icon { width:44px; height:44px; }
.service-row h3 { font-size:1rem; text-transform:uppercase; font-weight:800; }
.service-row p { color:var(--body-muted); }
.service-row:hover { background:var(--paper-soft); }
.proof-grid { grid-template-columns:1fr 1fr 1fr; gap:20px; align-items:start; }
.proof-card, .proof-card:nth-child(2) { min-height:0; background:transparent; }
.proof-card img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
.proof-card:first-child img { object-position:center 40%; }
.proof-card figcaption { padding:14px 0; font-size:.84rem; font-weight:700; color:var(--ema-dark); }
.step p, .legal p { color:var(--body-muted); }
.dark-cta img { opacity:.18; }
.dark-cta .kicker { color:var(--paper); }
.dark-cta h2 { font-size:clamp(2rem,4vw,3.7rem); }
.dark-cta__content { padding:72px 0; }
.button--outline { background:transparent; color:var(--paper); border-color:var(--paper); }
.legal a { text-decoration:underline; text-underline-offset:3px; }
.legal summary { min-height:44px; }
.mobile-contact { border-radius:4px; grid-template-columns:1.45fr 1fr; bottom:calc(10px + env(safe-area-inset-bottom)); }
.mobile-contact a:first-child { background:var(--ema-dark); color:var(--paper); }
.mobile-contact a:last-child { background:var(--paper); color:var(--ema-dark); }
@media(max-width:1000px) and (min-width:901px) { .nav__links { gap:12px; } .brand img { width:210px; } }
@media(max-width:900px) {
  html { scroll-padding-top:90px; }
  .nav { min-height:74px; }
  .hero__inner { padding:32px 0 36px; }
  .hero__grid { grid-template-columns:1fr; gap:28px; }
  .hero h1 { font-size:clamp(2.1rem,7.7vw,3.4rem); }
  .hero-copy { max-width:580px; }
  .hero-actions { max-width:none; }
  .hero-project { max-width:680px; }
  .hero-project img { max-height:380px; }
  .hero__intro { margin:18px 0; }
  .section { padding:48px 0; }
  .service-index { grid-template-columns:1fr; margin-top:0; }
  .service-row { min-height:106px; padding:20px 16px; }
  .service-row:nth-child(odd) { border-right:0; }
  .service-row:nth-child(3) { border-bottom:1px solid var(--line); }
  .proof-grid { grid-template-columns:1fr; gap:24px; }
  .proof-card img { max-height:340px; }
  .step { padding:24px; }
  .step b { margin-bottom:12px; }
  .footer__inner { padding-bottom:calc(102px + env(safe-area-inset-bottom)); }
  .dark-cta__content { padding:48px 0; }
  .mobile-contact a { min-height:56px; font-size:.88rem; }
}
@media(max-width:520px) {
  .nav,.section,.footer__inner,.hero__inner,.dark-cta__content { width:calc(100% - 40px); }
  .brand img { width:230px; max-width:100%; }
  .hero .kicker { font-size:.62rem; letter-spacing:.08em; margin-bottom:12px; }
  .hero h1 { font-size:clamp(1.95rem,8.8vw,2.6rem); }
  .hero__intro { font-size:.92rem; line-height:1.65; }
  .hero-actions .button { padding:0 14px; font-size:.78rem; }
  .button-number { font-size:.76rem; }
  .hero-identity { font-size:.72rem; }
  .hero-project figcaption { padding:13px 14px; }
  .hero-project img { aspect-ratio:3/2; }
  .section__head { gap:18px; }
  .service-row { gap:12px; grid-template-columns:40px 1fr auto; padding:18px 12px; }
  .service-row__icon { width:40px; height:40px; }
  .service-row h3 { font-size:.89rem; }
  .service-row p { font-size:.84rem; }
  .cta-actions .button { font-size:.78rem; min-height:54px; padding:0 12px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .button { transition:none; } }
