:root {
  --ink: #151311;
  --ink-2: #211e1b;
  --charcoal: #423e3d;
  --paper: #f5f1e9;
  --paper-2: #ebe4d8;
  --white: #fffdf8;
  --gold: #c5a43c;
  --gold-light: #e7d37d;
  --gold-dark: #8d711e;
  --muted: #726b63;
  --line: rgba(30, 26, 22, .14);
  --line-dark: rgba(255, 255, 255, .11);
  --green: #1f9d55;
  --container: 1180px;
  --radius: 2px;
  --font-display: "Playfair Display", Georgia, serif;
  --font-body: "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
::selection { background: var(--gold); color: var(--ink); }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
svg { display: block; }

.container {
  width: min(calc(100% - 48px), var(--container));
  margin-inline: auto;
}

.skip-link {
  position: fixed; top: -100px; left: 12px; z-index: 9999;
  background: var(--gold); color: var(--ink); padding: 12px 16px; font-weight: 700;
}
.skip-link:focus { top: 12px; }

.scroll-progress {
  position: fixed; top: 0; left: 0; width: 100%; height: 2px;
  z-index: 1001; background: transparent;
}
.scroll-progress span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--gold-dark), var(--gold-light)); }

.site-header {
  position: fixed; inset: 0 0 auto; z-index: 1000;
  border-bottom: 1px solid transparent;
  transition: background .35s ease, border-color .35s ease, backdrop-filter .35s ease;
}
.site-header.scrolled {
  background: rgba(21, 19, 17, .91);
  border-color: var(--line-dark);
  backdrop-filter: blur(18px);
}
.header-inner { min-height: 96px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display:flex; align-items:center; justify-content:flex-start; width:auto; height:auto; flex:0 0 auto; overflow:visible; padding:8px 0; }
.brand img { display:block; width:auto; height:78px; object-fit:contain; object-position:center; filter: drop-shadow(0 4px 18px rgba(0,0,0,.1)); }
.desktop-nav { display: flex; align-items: center; gap: clamp(18px, 2.5vw, 38px); margin-left: auto; }
.desktop-nav a {
  position: relative; color: rgba(255,255,255,.72); font-size: 13px; font-weight: 500; letter-spacing: .04em;
  transition: color .25s ease;
}
.desktop-nav a::after { content:""; position:absolute; left:0; bottom:-9px; width:0; height:1px; background:var(--gold); transition:width .25s ease; }
.desktop-nav a:hover { color: var(--white); }
.desktop-nav a:hover::after { width:100%; }
.header-cta {
  display: inline-flex; align-items: center; gap: 9px; border: 1px solid rgba(197,164,60,.75); color: var(--white);
  padding: 12px 15px; font-size: 12px; font-weight: 600; letter-spacing: .02em; transition: .25s ease;
}
.header-cta:hover { background: var(--gold); color: var(--ink); }
.header-cta svg { width: 17px; height: 17px; fill: currentColor; }
.menu-toggle { display:none; width:44px; height:44px; border:0; background:transparent; position:relative; cursor:pointer; }
.menu-toggle span { position:absolute; width:24px; height:1px; background:var(--white); left:10px; transition:.3s ease; }
.menu-toggle span:first-child { top:17px; }
.menu-toggle span:last-child { top:26px; }
.menu-toggle[aria-expanded="true"] span:first-child { top:22px; transform:rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { top:22px; transform:rotate(-45deg); }
.mobile-menu { display:none; }

.hero {
  min-height: 100svh;
  background:
    radial-gradient(circle at 18% 8%, rgba(197,164,60,.08), transparent 29%),
    linear-gradient(135deg, #12100f 0%, #1b1816 48%, #100f0e 100%);
  color: var(--white); position: relative; isolation:isolate; overflow:hidden; padding: 148px 0 76px;
}
.hero::before { content:""; position:absolute; inset:0; z-index:-1; opacity:.11; pointer-events:none; background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(to bottom, rgba(0,0,0,.55), transparent 80%); }
.hero-glow { position:absolute; border-radius:50%; filter:blur(20px); pointer-events:none; z-index:-1; }
.hero-glow-one { width:340px; height:340px; background:rgba(197,164,60,.05); top:25%; left:-180px; }
.hero-glow-two { width:420px; height:420px; background:rgba(255,255,255,.025); right:-210px; bottom:-180px; }
.hero-grid { display:grid; grid-template-columns: 1.02fr .98fr; gap:clamp(50px, 6vw, 88px); align-items:center; min-height:calc(100svh - 224px); }
.hero-copy { max-width:640px; position:relative; z-index:2; }
.eyebrow { display:flex; align-items:center; gap:14px; color:var(--gold-light); font-size:11px; letter-spacing:.18em; font-weight:600; margin-bottom:28px; }
.eyebrow span { width:48px; height:1px; background:rgba(231,211,125,.55); }
.hero h1 { font-family:var(--font-display); font-size:clamp(48px, 5.4vw, 78px); line-height:.99; letter-spacing:-.035em; font-weight:500; margin:0; max-width:720px; }
h1 em, h2 em { color:var(--gold-light); font-weight:500; }
.hero-lead { max-width:590px; color:rgba(255,255,255,.67); font-size:17px; line-height:1.72; margin:28px 0 0; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:36px; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:11px; min-height:52px; padding:0 20px; font-size:13px; font-weight:700; letter-spacing:.015em; transition:transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease; }
.btn:hover { transform:translateY(-2px); }
.btn svg { width:20px; height:20px; }
.btn-gold { background:linear-gradient(135deg, var(--gold-light), var(--gold)); color:#18140b; box-shadow:0 14px 34px rgba(197,164,60,.14); }
.btn-gold svg { fill:currentColor; }
.btn-link { color:rgba(255,255,255,.82); padding-inline:2px; min-height:auto; }
.btn-link span { color:var(--gold-light); font-size:16px; }
.hero-trust { display:grid; grid-template-columns:1fr 1fr; max-width:590px; margin-top:48px; border-top:1px solid var(--line-dark); }
.hero-trust > div { padding:20px 20px 0 0; }
.hero-trust > div + div { border-left:1px solid var(--line-dark); padding-left:24px; }
.hero-trust strong { display:block; font-family:var(--font-display); font-size:21px; font-weight:500; color:var(--white); margin-bottom:5px; }
.hero-trust span { display:block; color:rgba(255,255,255,.47); font-size:11px; line-height:1.45; }
.hero-visual { position:relative; max-width:540px; justify-self:end; width:100%; }
.hero-image-frame { position:relative; aspect-ratio:4/5.2; overflow:hidden; background:#2e2925; border:1px solid rgba(255,255,255,.08); }
.hero-image-frame::before { content:""; position:absolute; inset:18px; border:1px solid rgba(231,211,125,.35); z-index:2; pointer-events:none; }
.hero-image-frame img { width:100%; height:100%; object-fit:cover; object-position:48% center; transform:scale(1.035); transition:transform 1s cubic-bezier(.2,.7,.2,1); }
.hero-image-frame:hover img { transform:scale(1.075); }
.image-shade { position:absolute; inset:0; background:linear-gradient(to top, rgba(12,10,9,.72), transparent 45%); }
.hero-image-label { position:absolute; z-index:3; left:34px; right:34px; bottom:32px; display:flex; align-items:flex-start; gap:12px; color:rgba(255,255,255,.72); font-size:11px; line-height:1.5; letter-spacing:.02em; }
.hero-image-label span { color:var(--gold-light); font-family:var(--font-display); font-size:18px; line-height:1; }
.hero-monogram { position:absolute; width:108px; height:108px; right:-28px; top:14%; border-radius:50%; background:var(--paper); color:var(--gold-dark); border:8px solid var(--ink); display:grid; place-items:center; font-family:var(--font-display); font-size:35px; font-style:italic; box-shadow:0 18px 50px rgba(0,0,0,.32); }
.scroll-cue { position:absolute; left:50%; bottom:24px; transform:translateX(-50%); color:rgba(255,255,255,.38); font-size:9px; letter-spacing:.14em; text-transform:uppercase; display:flex; align-items:center; gap:9px; }
.scroll-cue span { display:block; width:24px; height:1px; background:var(--gold); animation:cue 1.8s ease-in-out infinite; transform-origin:left; }
@keyframes cue { 0%,100%{transform:scaleX(.45);opacity:.4} 50%{transform:scaleX(1);opacity:1} }

.section { padding:120px 0; }
.section-light { background:var(--paper); }
.section-dark { background:var(--ink); color:var(--white); }
.section-kicker { color:var(--gold-dark); font-size:10px; letter-spacing:.18em; font-weight:700; display:flex; align-items:center; gap:13px; }
.section-kicker span { font-family:var(--font-display); font-size:16px; font-weight:500; color:var(--muted); letter-spacing:0; }
.section-kicker-dark { color:var(--gold-light); }
.section-kicker-dark span { color:rgba(255,255,255,.38); }
.section h2 { font-family:var(--font-display); font-weight:500; font-size:clamp(38px,4.3vw,61px); line-height:1.06; letter-spacing:-.025em; margin:0; }
.section-light h2 em, .profile-section h2 em { color:var(--gold-dark); }

.intro-grid { display:grid; grid-template-columns: .34fr 1fr; gap:72px; align-items:start; }
.intro-copy { max-width:860px; }
.intro-copy p { color:#5f5851; font-size:16px; line-height:1.82; max-width:760px; }
.intro-copy p:first-of-type { margin-top:30px; }
.office-feature { margin-top:72px; display:grid; grid-template-columns:1.2fr .8fr; min-height:480px; background:var(--ink); }
.office-photo { overflow:hidden; min-height:480px; }
.office-photo img { width:100%; height:100%; object-fit:cover; object-position:center; transition:transform 1s ease; }
.office-feature:hover .office-photo img { transform:scale(1.025); }
.office-quote { padding:58px 52px; color:var(--white); display:flex; flex-direction:column; justify-content:center; position:relative; overflow:hidden; }
.office-quote::after { content:"JL"; position:absolute; right:-20px; bottom:-72px; font-family:var(--font-display); font-size:190px; color:rgba(255,255,255,.025); font-style:italic; }
.quote-mark { font-family:var(--font-display); font-size:76px; color:var(--gold); line-height:.6; }
.office-quote blockquote { font-family:var(--font-display); font-size:clamp(26px,3vw,39px); line-height:1.22; font-weight:500; margin:26px 0 34px; }
.quote-signature { font-size:10px; letter-spacing:.16em; color:rgba(255,255,255,.45); text-transform:uppercase; }

.heading-row { display:grid; grid-template-columns:1fr .58fr; gap:70px; align-items:end; }
.heading-row h2 { margin-top:22px; max-width:720px; }
.heading-side { color:rgba(255,255,255,.5); font-size:15px; line-height:1.75; margin:0 0 6px; max-width:450px; }
.practice-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,.10); margin-top:66px; border:1px solid rgba(255,255,255,.10); }
.practice-card { position:relative; min-height:420px; background:#1a1816; padding:30px 28px; display:flex; flex-direction:column; transition:background .35s ease, transform .35s ease; overflow:hidden; }
.practice-card::before { content:""; position:absolute; inset:auto 0 0; height:2px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .35s ease; }
.practice-card:hover { background:#211e1b; transform:translateY(-4px); z-index:2; }
.practice-card:hover::before { transform:scaleX(1); }
.practice-number { color:rgba(255,255,255,.28); font-size:10px; letter-spacing:.1em; }
.practice-icon { width:52px; height:52px; border:1px solid rgba(197,164,60,.4); display:grid; place-items:center; margin:56px 0 30px; }
.practice-icon svg { width:28px; height:28px; fill:none; stroke:var(--gold-light); stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round; }
.practice-card h3 { font-family:var(--font-display); font-size:25px; font-weight:500; margin:0 0 15px; }
.practice-card p { color:rgba(255,255,255,.49); font-size:13px; line-height:1.7; margin:0 0 26px; }
.practice-card a { margin-top:auto; display:flex; justify-content:space-between; align-items:center; color:var(--gold-light); font-size:11px; font-weight:600; border-top:1px solid var(--line-dark); padding-top:18px; }
.practice-card a span { font-size:16px; }
.practice-card-accent { background:linear-gradient(150deg, #2b251a, #1d1a17); }

.profile-section { background:#eee8dd; }
.profile-grid { display:grid; grid-template-columns:.78fr 1fr; gap:clamp(58px,7vw,105px); align-items:center; }
.profile-photo-wrap { position:relative; }
.profile-photo { position:relative; overflow:hidden; aspect-ratio: .81/1; background:#18222a; }
.profile-photo::after { content:""; position:absolute; inset:18px; border:1px solid rgba(231,211,125,.45); pointer-events:none; }
.profile-photo img { width:100%; height:100%; object-fit:cover; object-position:center top; transition:transform .8s ease; }
.profile-photo:hover img { transform:scale(1.025); }
.profile-caption { position:absolute; left:-30px; bottom:34px; background:var(--ink); color:var(--white); padding:15px 22px; font-family:var(--font-display); font-size:18px; box-shadow:0 18px 45px rgba(24,20,16,.18); }
.profile-caption span { display:block; color:var(--gold-light); font-family:var(--font-body); font-size:8px; letter-spacing:.16em; text-transform:uppercase; margin-bottom:4px; }
.profile-copy h2 { margin-top:22px; }
.profile-lead { font-size:17px !important; color:#554f49 !important; }
.profile-copy > p { color:#6d655e; font-size:14px; line-height:1.76; margin:22px 0 0; max-width:650px; }
.credentials { margin-top:34px; border-top:1px solid var(--line); }
.credentials > div { display:grid; grid-template-columns:40px 1fr; gap:16px; align-items:start; border-bottom:1px solid var(--line); padding:17px 0; }
.credentials span { color:var(--gold-dark); font-family:var(--font-display); font-size:16px; }
.credentials p { margin:0; color:#625b54; font-size:13px; line-height:1.5; }
.credentials strong { color:var(--ink); font-weight:600; }
.instagram-link { display:inline-grid; grid-template-columns:22px auto; grid-template-rows:auto auto; column-gap:11px; margin-top:30px; color:var(--ink); font-size:12px; font-weight:700; }
.instagram-link svg { width:21px; height:21px; grid-row:1/3; fill:none; stroke:currentColor; stroke-width:1.6; }
.instagram-link svg .fill-dot { fill:currentColor; stroke:none; }
.instagram-link span { color:var(--muted); font-size:10px; font-weight:400; margin-top:3px; }

.values-section { background:var(--charcoal); color:var(--white); }
.values-top { display:grid; grid-template-columns:.4fr 1fr; gap:80px; align-items:start; }
.values-top h2 { max-width:820px; }
.values-layout { display:grid; grid-template-columns:.78fr 1fr; gap:85px; margin-top:72px; }
.mission-card { background:rgba(255,255,255,.055); border:1px solid var(--line-dark); padding:42px; position:relative; min-height:330px; }
.mission-label { color:var(--gold-light); font-size:10px; letter-spacing:.2em; }
.mission-card p { font-family:var(--font-display); font-size:clamp(25px,2.5vw,34px); line-height:1.28; margin:34px 0 0; color:rgba(255,255,255,.9); }
.mission-line { position:absolute; left:42px; bottom:42px; width:72px; height:1px; background:var(--gold); }
.values-list { border-top:1px solid var(--line-dark); }
.value-item { display:grid; grid-template-columns:54px 1fr; gap:28px; border-bottom:1px solid var(--line-dark); padding:27px 0; }
.value-item > span { color:var(--gold-light); font-family:var(--font-display); font-size:17px; }
.value-item h3 { font-family:var(--font-display); font-size:24px; font-weight:500; margin:0 0 8px; }
.value-item p { color:rgba(255,255,255,.48); font-size:13px; line-height:1.65; margin:0; max-width:580px; }

.contact-section { position:relative; background:#11100f; color:var(--white); overflow:hidden; }
.contact-bg { position:absolute; inset:0; background:linear-gradient(90deg, rgba(16,15,14,.98) 0%, rgba(16,15,14,.94) 52%, rgba(16,15,14,.78) 72%, rgba(16,15,14,.72) 100%), url("https://mcusercontent.com/5e633794a846da421b437d4a3/images/e615757f-c0d1-ce15-39f6-7c104e57c778.jpg") center/cover no-repeat; filter:saturate(.75); }
.contact-inner { position:relative; z-index:1; min-height:610px; display:grid; grid-template-columns:.35fr 1fr; gap:76px; align-items:center; padding-block:92px; }
.contact-logo img { width:240px; opacity:.35; }
.contact-copy { max-width:760px; }
.contact-copy h2 { font-family:var(--font-display); font-size:clamp(40px,4.8vw,68px); line-height:1.05; letter-spacing:-.03em; font-weight:500; margin:23px 0 0; }
.contact-copy h2 em { color:var(--gold-light); }
.contact-copy > p { color:rgba(255,255,255,.58); font-size:15px; line-height:1.75; max-width:620px; margin:25px 0 0; }
.contact-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:34px; }
.btn-large { min-height:58px; padding-inline:24px; }
.btn-instagram { border:1px solid rgba(255,255,255,.24); color:var(--white); }
.btn-instagram:hover { border-color:var(--gold); color:var(--gold-light); }
.btn-instagram svg { fill:none; stroke:currentColor; stroke-width:1.6; }
.btn-instagram svg .fill-dot { fill:currentColor; stroke:none; }

.site-footer { background:#0d0c0b; color:rgba(255,255,255,.48); border-top:1px solid rgba(255,255,255,.06); padding:65px 0 24px; }
.footer-grid { display:grid; grid-template-columns:1.3fr .7fr 1fr; gap:70px; }
.footer-brand img { width:200px; opacity:.72; }
.footer-brand p { font-family:var(--font-display); font-size:18px; color:rgba(255,255,255,.6); margin:18px 0 0; }
.footer-nav, .footer-contact { display:flex; flex-direction:column; align-items:flex-start; gap:11px; }
.footer-nav span, .footer-contact span { color:var(--gold-light); font-size:8px; letter-spacing:.18em; margin-bottom:7px; }
.footer-nav a, .footer-contact a { font-size:12px; transition:color .2s ease; }
.footer-nav a:hover, .footer-contact a:hover { color:var(--white); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.06); display:flex; justify-content:space-between; gap:30px; margin-top:48px; padding-top:20px; font-size:9px; line-height:1.6; }
.footer-bottom p { margin:0; }

.floating-whatsapp { position:fixed; right:22px; bottom:22px; z-index:900; display:flex; align-items:center; gap:8px; background:#1c9d55; color:white; min-height:48px; padding:0 15px 0 13px; border-radius:999px; font-size:11px; font-weight:700; box-shadow:0 12px 35px rgba(0,0,0,.26); transform:translateY(90px); opacity:0; transition:transform .4s ease, opacity .4s ease, filter .2s ease; }
.floating-whatsapp.visible { transform:translateY(0); opacity:1; }
.floating-whatsapp:hover { filter:brightness(1.06); }
.floating-whatsapp svg { width:22px; height:22px; fill:currentColor; }

.reveal { opacity:0; transform:translateY(28px); transition:opacity .75s cubic-bezier(.2,.7,.2,1), transform .75s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity:1; transform:none; }
.reveal-delay-1 { transition-delay:.08s; }
.reveal-delay-2 { transition-delay:.16s; }
.reveal-delay-3 { transition-delay:.24s; }
.reveal-delay-4 { transition-delay:.32s; }

@media (max-width: 1080px) {
  .desktop-nav { display:none; }
  .menu-toggle { display:block; }
  .header-cta { margin-left:auto; }
  .mobile-menu { display:block; position:fixed; left:0; right:0; top:96px; height:0; overflow:hidden; background:rgba(21,19,17,.98); border-top:1px solid var(--line-dark); transition:height .4s cubic-bezier(.2,.7,.2,1); }
  .mobile-menu.open { height:calc(100svh - 96px); }
  .mobile-menu-inner { padding-top:36px; display:flex; flex-direction:column; }
  .mobile-menu-inner > a { color:var(--white); font-family:var(--font-display); font-size:32px; border-bottom:1px solid var(--line-dark); padding:15px 0; }
  .mobile-socials { display:flex; gap:28px; margin-top:30px; }
  .mobile-socials a { color:var(--gold-light); font-size:12px; font-weight:600; }
  .hero-grid { grid-template-columns:1.06fr .94fr; gap:38px; }
  .hero-monogram { right:-10px; width:86px; height:86px; font-size:29px; }
  .practice-grid { grid-template-columns:1fr 1fr; }
  .practice-card { min-height:360px; }
}

@media (max-width: 820px) {
  .container { width:min(calc(100% - 36px), var(--container)); }
  .header-inner { min-height:80px; }
  .brand { padding:6px 0; }
  .brand img { height:64px; width:auto; }
  .header-cta { display:none; }
  .mobile-menu { top:80px; }
  .mobile-menu.open { height:calc(100svh - 80px); }

  .hero { padding:118px 0 62px; min-height:auto; }
  .hero-grid { grid-template-columns:1fr; min-height:auto; }
  .hero h1 { font-size:clamp(48px,13.2vw,67px); max-width:650px; }
  .hero-lead { font-size:15px; }
  .hero-visual { justify-self:stretch; max-width:none; margin-top:24px; }
  .hero-image-frame { aspect-ratio:1.12/1; }
  .hero-image-frame img { object-position:center 52%; }
  .hero-monogram { right:18px; top:-28px; width:78px; height:78px; border-width:6px; }
  .scroll-cue { display:none; }

  .section { padding:88px 0; }
  .intro-grid { grid-template-columns:1fr; gap:27px; }
  .office-feature { grid-template-columns:1fr; margin-top:52px; }
  .office-photo { min-height:410px; }
  .office-quote { padding:44px 34px; }
  .heading-row { grid-template-columns:1fr; gap:25px; }
  .heading-side { max-width:650px; }
  .practice-grid { margin-top:46px; }
  .profile-grid { grid-template-columns:1fr; }
  .profile-photo-wrap { max-width:580px; }
  .profile-caption { left:16px; bottom:16px; }
  .values-top { grid-template-columns:1fr; gap:26px; }
  .values-layout { grid-template-columns:1fr; gap:42px; margin-top:52px; }
  .contact-inner { grid-template-columns:1fr; gap:28px; min-height:580px; }
  .contact-logo { display:none; }
  .contact-bg { background:linear-gradient(90deg, rgba(16,15,14,.96) 0%, rgba(16,15,14,.88) 100%), url("https://mcusercontent.com/5e633794a846da421b437d4a3/images/e615757f-c0d1-ce15-39f6-7c104e57c778.jpg") center/cover no-repeat; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/-1; }
}

@media (max-width: 560px) {
  .container { width:min(calc(100% - 28px), var(--container)); }
  .hero { padding-top:104px; }
  .eyebrow { font-size:9px; gap:9px; letter-spacing:.14em; margin-bottom:20px; }
  .eyebrow span { width:28px; }
  .hero h1 { font-size:clamp(44px,14vw,58px); line-height:1.01; }
  .hero-lead { margin-top:22px; line-height:1.65; }
  .hero-actions { align-items:stretch; flex-direction:column; margin-top:29px; gap:8px; }
  .btn { width:100%; }
  .btn-link { width:auto; justify-content:flex-start; padding:14px 0; }
  .hero-trust { margin-top:28px; }
  .hero-trust > div { padding-top:15px; }
  .hero-trust > div + div { padding-left:15px; }
  .hero-trust strong { font-size:18px; }
  .hero-image-frame { aspect-ratio:.96/1; }
  .hero-image-frame::before { inset:12px; }
  .hero-image-label { left:25px; right:25px; bottom:24px; }
  .hero-monogram { width:68px; height:68px; right:13px; font-size:25px; }

  .section { padding:72px 0; }
  .section h2, .contact-copy h2 { font-size:clamp(36px,11vw,48px); }
  .intro-copy p { font-size:14px; line-height:1.72; }
  .office-photo { min-height:310px; }
  .office-quote { padding:38px 25px; }
  .quote-mark { font-size:65px; }
  .office-quote blockquote { font-size:27px; }
  .practice-grid { grid-template-columns:1fr; }
  .practice-card { min-height:330px; padding:27px 24px; }
  .practice-icon { margin:40px 0 26px; }
  .profile-grid { gap:47px; }
  .profile-photo { aspect-ratio:.84/1; }
  .profile-caption { font-size:16px; }
  .profile-lead { font-size:15px !important; }
  .credentials > div { grid-template-columns:34px 1fr; }
  .values-layout { gap:34px; }
  .mission-card { padding:30px 25px; min-height:300px; }
  .mission-line { left:25px; bottom:30px; }
  .value-item { gap:18px; grid-template-columns:35px 1fr; }
  .contact-inner { min-height:auto; padding-block:75px; }
  .contact-actions { flex-direction:column; }
  .footer-grid { grid-template-columns:1fr; gap:38px; }
  .footer-brand { grid-column:auto; }
  .footer-bottom { flex-direction:column; gap:8px; }
  .floating-whatsapp { right:14px; bottom:14px; width:50px; height:50px; min-height:50px; padding:0; justify-content:center; }
  .floating-whatsapp span { display:none; }
  .floating-whatsapp svg { width:24px; height:24px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal { opacity:1; transform:none; }
}
