:root {
  --ink: #092f40;
  --ink-deep: #062431;
  --paper: #f3efe8;
  --paper-light: #fbf9f5;
  --sand: #d9c6ab;
  --sand-light: #eadfce;
  --muted: #66757a;
  --line: rgba(9, 47, 64, 0.18);
  --white: #fff;
  --serif: "Italiana", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
  --header-height: 88px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper-light); color: var(--ink); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; }
button, input, select, textarea { font: inherit; }
::selection { background: var(--sand); color: var(--ink-deep); }

.page-noise { position: fixed; inset: 0; z-index: 1000; pointer-events: none; opacity: .035; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E"); }

.site-header { height: var(--header-height); position: fixed; top: 0; left: 0; right: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: 0 4.5vw; color: var(--white); border-bottom: 1px solid rgba(255,255,255,.15); transition: background .35s, color .35s, height .35s, box-shadow .35s; }
.site-header.scrolled { height: 72px; background: rgba(251,249,245,.94); color: var(--ink); backdrop-filter: blur(18px); box-shadow: 0 8px 30px rgba(6,36,49,.07); border-color: var(--line); }
.brand { display: inline-flex; align-items: center; gap: 13px; min-width: 240px; }
.brand-mark { width: 44px; height: 44px; border: 1px solid currentColor; display: grid; place-items: center; font-family: var(--serif); font-size: 28px; line-height: 1; position: relative; }
.brand-mark::after { content: ""; position: absolute; inset: 5px; border: 1px solid currentColor; opacity: .35; }
.brand-copy { display: flex; flex-direction: column; gap: 2px; }
.brand-copy strong { text-transform: uppercase; font-size: 12px; letter-spacing: .18em; }
.brand-copy small { font-size: 10px; letter-spacing: .22em; opacity: .72; text-transform: uppercase; }
.main-nav { display: flex; align-items: center; gap: 2.2vw; font-size: 12px; letter-spacing: .07em; text-transform: uppercase; }
.main-nav > a:not(.nav-cta) { position: relative; }
.main-nav > a:not(.nav-cta)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -7px; height: 1px; background: currentColor; transition: right .25s; }
.main-nav > a:hover::after { right: 0; }
.nav-cta { border: 1px solid currentColor; padding: 13px 18px; transition: background .25s, color .25s; }
.nav-cta:hover { background: var(--sand); color: var(--ink-deep); border-color: var(--sand); }
.menu-toggle { display: none; border: 0; background: transparent; width: 46px; height: 46px; padding: 12px; }
.menu-toggle span { display: block; height: 1px; background: currentColor; margin: 6px 0; transition: .25s; }

.hero { min-height: 100svh; background: var(--ink-deep); color: var(--white); display: grid; grid-template-columns: 1.12fr .88fr; padding: calc(var(--header-height) + 7vh) 4.5vw 7vh; position: relative; overflow: hidden; }
.hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 80% 35%, rgba(59,119,139,.28), transparent 35%), linear-gradient(110deg, transparent 30%, rgba(255,255,255,.025)); }
.hero-lines { position: absolute; inset: 0; background: linear-gradient(90deg, transparent calc(50% - .5px), rgba(255,255,255,.08) 50%, transparent calc(50% + .5px)); pointer-events: none; }
.hero-content { align-self: center; max-width: 760px; position: relative; z-index: 2; padding-right: 6vw; }
.eyebrow { margin: 0 0 24px; font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #a4825a; }
.eyebrow.light { color: var(--sand); }
.hero h1, .section-heading h2, .leadership-copy h2, .contact-copy h2, .statement h2, .final-cta h2 { font-family: var(--serif); font-weight: 400; margin: 0; letter-spacing: -.025em; }
.hero h1 { font-size: clamp(3.2rem, 5.65vw, 6.8rem); line-height: .97; max-width: 980px; }
em { font-style: italic; color: var(--sand); }
.hero-lead { max-width: 680px; margin: 30px 0 0; color: rgba(255,255,255,.72); font-size: clamp(1rem, 1.2vw, 1.18rem); line-height: 1.75; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 38px; }
.button { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 20px; padding: 0 24px; border: 1px solid transparent; text-transform: uppercase; letter-spacing: .12em; font-size: 11px; font-weight: 700; transition: transform .22s, background .22s, color .22s, border-color .22s; cursor: pointer; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--sand); color: var(--ink-deep); }
.button-primary:hover { background: #e8d7be; }
.button-ghost { border-color: rgba(255,255,255,.42); color: var(--white); }
.button-ghost:hover { border-color: var(--white); }
.hero-trust { margin-top: 52px; border-top: 1px solid rgba(255,255,255,.17); display: grid; grid-template-columns: repeat(3, 1fr); max-width: 680px; }
.hero-trust > * { padding: 20px 18px 0 0; display: flex; flex-direction: column; gap: 5px; border-right: 1px solid rgba(255,255,255,.12); }
.hero-trust > *:not(:first-child) { padding-left: 18px; }
.hero-trust > *:last-child { border: 0; }
.hero-trust strong { font-family: var(--serif); font-size: 24px; font-weight: 400; }
.hero-trust span { color: rgba(255,255,255,.55); font-size: 10px; letter-spacing: .07em; text-transform: uppercase; line-height: 1.45; }
.hero-visual { align-self: stretch; min-height: 610px; position: relative; display: flex; align-items: flex-end; justify-content: center; z-index: 1; }
.hero-year { position: absolute; font-family: var(--serif); font-size: clamp(8rem, 17vw, 20rem); color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.11); top: 3%; left: -18%; line-height: .8; writing-mode: vertical-rl; transform: rotate(180deg); }
.portrait-main { width: min(88%, 590px); margin: 0; height: 79vh; max-height: 760px; min-height: 540px; position: relative; overflow: hidden; box-shadow: -28px 30px 80px rgba(0,0,0,.28); }
.portrait-main::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(6,36,49,.92), transparent 38%); }
.portrait-main img { height: 100%; object-fit: cover; object-position: center top; filter: saturate(.72) contrast(1.04); }
.portrait-main figcaption { position: absolute; left: 30px; bottom: 28px; z-index: 2; display: flex; flex-direction: column; gap: 7px; }
.portrait-main figcaption span, .image-caption span, .team-card span { font-size: 10px; text-transform: uppercase; letter-spacing: .18em; color: var(--sand); }
.portrait-main figcaption strong { font-family: var(--serif); font-size: 27px; font-weight: 400; }
.hero-seal { position: absolute; right: -25px; top: 22%; width: 150px; aspect-ratio: 1; border-radius: 50%; border: 1px solid rgba(255,255,255,.35); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; background: rgba(6,36,49,.78); backdrop-filter: blur(10px); font-size: 8px; letter-spacing: .16em; text-transform: uppercase; transform: rotate(8deg); }
.hero-seal i { width: 18px; height: 1px; background: var(--sand); }

.prestige-band { background: var(--sand); color: var(--ink-deep); min-height: 88px; display: grid; place-items: center; padding: 20px 5vw; text-align: center; }
.prestige-band p { margin: 0; font-family: var(--serif); font-size: clamp(1.35rem, 2.2vw, 2.2rem); }

.section { padding: 130px 7vw; }
.section-heading { max-width: 1000px; margin-bottom: 70px; }
.section-heading h2 { font-size: clamp(2.8rem, 5vw, 5.6rem); line-height: 1.06; }
.split-heading { max-width: none; display: grid; grid-template-columns: 1.3fr .7fr; gap: 8vw; align-items: end; }
.split-heading > p { margin: 0 0 10px; color: var(--muted); font-size: 1rem; line-height: 1.8; max-width: 470px; }
.legacy { background: var(--paper-light); }
.legacy-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 10vw; align-items: start; }
.legacy-copy { max-width: 620px; }
.legacy-copy p { color: var(--muted); line-height: 1.85; margin: 0 0 22px; }
.legacy-copy .large-copy { font-family: var(--serif); color: var(--ink); font-size: clamp(1.7rem, 2.8vw, 2.8rem); line-height: 1.3; }
.signature-line { display: flex; align-items: center; gap: 18px; margin-top: 40px; }
.signature-line span { width: 75px; height: 1px; background: var(--sand); }
.signature-line p { margin: 0; color: var(--ink); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; }
.legacy-cards { border-top: 1px solid var(--line); }
.legacy-cards article { display: grid; grid-template-columns: 70px 1fr 1fr; gap: 25px; padding: 32px 0; border-bottom: 1px solid var(--line); align-items: start; }
.legacy-cards article > span { color: #a4825a; font-size: 11px; letter-spacing: .12em; }
.legacy-cards h3 { font-family: var(--serif); font-size: 27px; line-height: 1.2; font-weight: 400; margin: 0; }
.legacy-cards p { margin: 0; color: var(--muted); line-height: 1.7; font-size: 14px; }

.section-dark { background: var(--ink-deep); color: var(--white); }
.statement { min-height: 640px; display: grid; grid-template-columns: .75fr 1.25fr; align-items: center; padding: 100px 7vw; overflow: hidden; }
.statement-number { font-family: var(--serif); font-size: clamp(10rem, 24vw, 27rem); line-height: .8; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.22); margin-left: -12vw; }
.statement-copy { max-width: 780px; }
.statement-copy > p { margin: 0 0 22px; color: var(--sand); font-size: 11px; letter-spacing: .22em; text-transform: uppercase; }
.statement h2 { font-size: clamp(2.7rem, 4.6vw, 5.2rem); line-height: 1.08; }

.practice { background: var(--paper); }
.practice-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.practice-card { min-height: 330px; padding: 32px 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; flex-direction: column; transition: background .3s, color .3s, transform .3s; }
.practice-card:hover { background: var(--ink); color: var(--white); transform: translateY(-5px); }
.practice-card > span { color: #a4825a; font-size: 10px; letter-spacing: .15em; }
.practice-card h3 { font-family: var(--serif); font-size: 31px; font-weight: 400; margin: 38px 0 15px; }
.practice-card p { margin: 0; color: var(--muted); line-height: 1.7; font-size: 14px; transition: color .3s; }
.practice-card:hover p { color: rgba(255,255,255,.65); }
.practice-card a { margin-top: auto; padding-top: 35px; font-size: 10px; text-transform: uppercase; letter-spacing: .14em; }

.leadership { display: grid; grid-template-columns: 1fr 1fr; min-height: 760px; padding-top: 0; padding-bottom: 0; padding-left: 0; background: var(--paper-light); }
.leadership-visual { position: relative; min-height: 760px; overflow: hidden; }
.leadership-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(6,36,49,.65), transparent 38%); }
.leadership-visual img { height: 100%; object-fit: cover; object-position: center top; filter: saturate(.75); }
.image-caption { position: absolute; left: 7vw; bottom: 55px; z-index: 2; color: var(--white); display: flex; flex-direction: column; gap: 7px; }
.image-caption strong { font-family: var(--serif); font-size: 28px; font-weight: 400; }
.leadership-copy { align-self: center; padding: 80px 7vw; max-width: 780px; }
.leadership-copy h2 { font-size: clamp(2.8rem, 4.5vw, 5rem); line-height: 1.08; }
.leadership-copy > p:not(.eyebrow) { color: var(--muted); line-height: 1.8; font-size: 1rem; margin: 30px 0; }
.leadership-copy blockquote { margin: 45px 0; padding: 25px 0 25px 30px; border-left: 1px solid var(--sand); font-family: var(--serif); font-size: clamp(1.6rem, 2.4vw, 2.5rem); line-height: 1.4; }
.text-link { display: inline-flex; gap: 30px; text-transform: uppercase; letter-spacing: .14em; font-size: 10px; border-bottom: 1px solid var(--ink); padding-bottom: 8px; }

.team { background: var(--paper-light); }
.team-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; }
.team-card { margin: 0; overflow: hidden; position: relative; min-height: 480px; background: var(--ink); }
.team-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(6,36,49,.95), transparent 48%); }
.team-card img { height: 100%; object-fit: cover; object-position: center top; filter: saturate(.6); transition: transform .6s, filter .4s; }
.team-card:hover img { transform: scale(1.035); filter: saturate(.85); }
.team-card div { position: absolute; left: 24px; right: 20px; bottom: 24px; z-index: 2; color: var(--white); }
.team-card h3 { font-family: var(--serif); font-size: 25px; font-weight: 400; line-height: 1.2; margin: 8px 0 0; }
.team-note { color: var(--muted); max-width: 720px; font-size: 12px; line-height: 1.7; margin: 28px 0 0; }

.process { padding: 125px 7vw; }
.process .split-heading > p { color: rgba(255,255,255,.55); }
.process-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.2); }
.process-grid article { padding: 38px 40px 15px 0; border-right: 1px solid rgba(255,255,255,.14); min-height: 250px; }
.process-grid article:not(:first-child) { padding-left: 40px; }
.process-grid article:last-child { border: 0; }
.process-grid span { color: var(--sand); font-size: 10px; letter-spacing: .18em; }
.process-grid h3 { font-family: var(--serif); font-size: 32px; font-weight: 400; margin: 35px 0 15px; }
.process-grid p { color: rgba(255,255,255,.58); line-height: 1.75; margin: 0; }

.contact { display: grid; grid-template-columns: 1.05fr .95fr; gap: 10vw; align-items: start; background: var(--paper); }
.contact-copy h2 { font-size: clamp(2.8rem, 4.7vw, 5.3rem); line-height: 1.06; }
.contact-copy > p:not(.eyebrow) { color: var(--muted); line-height: 1.8; max-width: 660px; margin: 30px 0 45px; }
.contact-details { border-top: 1px solid var(--line); }
.contact-details a { display: grid; grid-template-columns: 120px 1fr; gap: 25px; padding: 20px 0; border-bottom: 1px solid var(--line); transition: padding-left .25s; }
.contact-details a:hover { padding-left: 10px; }
.contact-details span { font-size: 10px; text-transform: uppercase; letter-spacing: .15em; color: #a4825a; }
.contact-details strong { font-weight: 500; font-size: 14px; line-height: 1.5; }
.contact-form { background: var(--ink-deep); color: var(--white); padding: 48px; box-shadow: 0 30px 70px rgba(6,36,49,.16); }
.form-kicker { font-family: var(--serif); font-size: 35px; margin-bottom: 35px; }
.contact-form label { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .14em; color: rgba(255,255,255,.65); margin-bottom: 22px; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; margin-top: 9px; border: 0; border-bottom: 1px solid rgba(255,255,255,.28); background: transparent; color: var(--white); padding: 12px 0; outline: none; border-radius: 0; text-transform: none; letter-spacing: normal; transition: border-color .2s; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--sand); }
.contact-form select option { color: var(--ink); }
.contact-form textarea { resize: vertical; }
.contact-form ::placeholder { color: rgba(255,255,255,.3); }
.form-button { width: 100%; border: 0; margin-top: 8px; }
.contact-form small { display: block; color: rgba(255,255,255,.38); line-height: 1.5; font-size: 9px; margin-top: 15px; text-transform: none; letter-spacing: normal; }

.final-cta { min-height: 540px; padding: 90px 7vw; background: var(--ink); color: var(--white); position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.final-pattern { position: absolute; inset: -30%; opacity: .08; background-image: url("https://static.wixstatic.com/media/59edca_8dd15a5bca7e4ad4ab0c89e4cc8ecbc2~mv2.jpg/v1/fill/w_980%2Ch_551%2Cal_c%2Cq_85%2Cusm_0.66_1.00_0.01%2Cenc_avif%2Cquality_auto/pattern_home_edited.jpg"); background-size: 560px; transform: rotate(-6deg); }
.final-cta > *:not(.final-pattern) { position: relative; z-index: 1; }
.final-cta > p { margin: 0 0 12px; color: var(--sand); letter-spacing: .18em; text-transform: uppercase; font-size: 10px; }
.final-cta h2 { font-size: clamp(5rem, 12vw, 13rem); line-height: .9; }
.final-cta h2 span { color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.4); }
.final-cta a { margin-top: 40px; border-bottom: 1px solid var(--sand); padding-bottom: 9px; font-size: 11px; letter-spacing: .15em; text-transform: uppercase; }

.site-footer { background: #041c26; color: rgba(255,255,255,.7); padding: 55px 5vw 30px; display: grid; grid-template-columns: 1fr 1fr; gap: 55px; }
.footer-brand { display: flex; align-items: center; gap: 15px; color: var(--white); }
.footer-brand div { display: flex; flex-direction: column; gap: 4px; }
.footer-brand strong { text-transform: uppercase; font-size: 12px; letter-spacing: .16em; }
.footer-brand small { font-size: 9px; letter-spacing: .16em; text-transform: uppercase; opacity: .6; }
.footer-links { display: flex; justify-content: flex-end; align-items: center; gap: 28px; text-transform: uppercase; font-size: 9px; letter-spacing: .15em; }
.footer-legal { grid-column: 1 / -1; border-top: 1px solid rgba(255,255,255,.11); padding-top: 24px; display: flex; justify-content: space-between; gap: 40px; color: rgba(255,255,255,.38); font-size: 9px; line-height: 1.6; }
.footer-legal p { margin: 0; max-width: 750px; }

.floating-whatsapp { position: fixed; right: 24px; bottom: 24px; z-index: 90; height: 54px; border-radius: 30px; display: flex; align-items: center; gap: 10px; padding: 0 18px 0 14px; background: var(--sand); color: var(--ink-deep); box-shadow: 0 14px 35px rgba(6,36,49,.2); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; transition: transform .25s; }
.floating-whatsapp:hover { transform: translateY(-3px); }
.floating-whatsapp svg { width: 25px; height: 25px; fill: currentColor; }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s cubic-bezier(.2,.65,.3,1), transform .8s cubic-bezier(.2,.65,.3,1); }
.reveal-delay { transition-delay: .14s; }
.reveal.visible { opacity: 1; transform: none; }

@media (max-width: 1120px) {
  .main-nav { gap: 15px; }
  .main-nav > a:not(.nav-cta) { display: none; }
  .hero { grid-template-columns: 1fr .8fr; }
  .practice-grid { grid-template-columns: repeat(2, 1fr); }
  .team-grid { grid-template-columns: repeat(2, 1fr); }
  .legacy-grid { gap: 6vw; }
  .legacy-cards article { grid-template-columns: 45px 1fr; }
  .legacy-cards p { grid-column: 2; }
}

@media (max-width: 820px) {
  :root { --header-height: 72px; }
  .site-header { padding: 0 20px; }
  .brand { min-width: 0; }
  .brand-mark { width: 39px; height: 39px; font-size: 24px; }
  .brand-copy strong { font-size: 10px; }
  .brand-copy small { font-size: 8px; }
  .menu-toggle { display: block; color: inherit; }
  .main-nav { position: fixed; inset: 0; background: var(--ink-deep); color: var(--white); padding: 120px 28px 40px; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 0; transform: translateX(100%); transition: transform .35s ease; z-index: -1; }
  .main-nav.open { transform: translateX(0); }
  .main-nav > a:not(.nav-cta) { display: block; font-family: var(--serif); font-size: 34px; text-transform: none; letter-spacing: 0; padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.12); }
  .nav-cta { margin-top: 30px; text-align: center; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }

  .hero { grid-template-columns: 1fr; padding: 130px 20px 50px; min-height: auto; }
  .hero-lines { display: none; }
  .hero-content { padding-right: 0; }
  .hero h1 { font-size: clamp(3.1rem, 14vw, 5.6rem); }
  .hero-lead { font-size: 15px; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-trust { grid-template-columns: 1fr; }
  .hero-trust > * { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.13); padding: 16px 0; }
  .hero-trust > *:not(:first-child) { padding-left: 0; }
  .hero-visual { margin-top: 60px; min-height: 530px; }
  .portrait-main { width: 88%; height: 68vh; min-height: 500px; }
  .hero-seal { width: 120px; right: 0; }
  .hero-year { left: -10%; font-size: 10rem; }

  .section { padding: 90px 20px; }
  .section-heading { margin-bottom: 50px; }
  .section-heading h2 { font-size: clamp(2.5rem, 12vw, 4.2rem); }
  .split-heading { grid-template-columns: 1fr; gap: 25px; }
  .legacy-grid { grid-template-columns: 1fr; gap: 55px; }
  .legacy-cards article { grid-template-columns: 40px 1fr; }
  .statement { grid-template-columns: 1fr; min-height: 620px; padding: 80px 20px; }
  .statement-number { margin-left: -20px; font-size: 12rem; }
  .statement h2 { font-size: clamp(2.7rem, 11vw, 4.5rem); }
  .practice-grid { grid-template-columns: 1fr; }
  .practice-card { min-height: 280px; }
  .leadership { grid-template-columns: 1fr; padding: 0; }
  .leadership-visual { min-height: 620px; }
  .leadership-copy { padding: 80px 20px; }
  .team-grid { grid-template-columns: 1fr; }
  .team-card { min-height: 580px; }
  .process { padding: 90px 20px; }
  .process-grid { grid-template-columns: 1fr; }
  .process-grid article, .process-grid article:not(:first-child) { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.14); padding: 32px 0; min-height: 0; }
  .contact { grid-template-columns: 1fr; gap: 65px; }
  .contact-form { padding: 35px 25px; }
  .contact-details a { grid-template-columns: 95px 1fr; }
  .final-cta { min-height: 470px; padding: 70px 20px; }
  .site-footer { grid-template-columns: 1fr; padding: 45px 20px 95px; }
  .footer-links { justify-content: flex-start; flex-wrap: wrap; }
  .footer-legal { grid-column: 1; flex-direction: column; }
  .floating-whatsapp { right: 14px; bottom: 14px; width: 54px; padding: 0; justify-content: center; }
  .floating-whatsapp span { display: none; }
}

@media (max-width: 420px) {
  .brand-copy strong { letter-spacing: .1em; }
  .portrait-main { width: 94%; }
  .team-card { min-height: 500px; }
  .contact-details a { grid-template-columns: 1fr; gap: 7px; }
}

@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; }
}
