/* Self-hosted fonts (SIL Open Font License) */
@font-face { font-family: 'Source Serif 4'; font-style: normal; font-weight: 300; font-display: swap; src: url(../fonts/source-serif-4-latin-300-normal.woff2) format('woff2'); }
@font-face { font-family: 'Source Serif 4'; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/source-serif-4-latin-400-normal.woff2) format('woff2'); }
@font-face { font-family: 'Source Serif 4'; font-style: italic; font-weight: 400; font-display: swap; src: url(../fonts/source-serif-4-latin-400-italic.woff2) format('woff2'); }
@font-face { font-family: 'Source Serif 4'; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/source-serif-4-latin-600-normal.woff2) format('woff2'); }

@font-face { font-family: 'Google Sans'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(../fonts/google-sans-latin-opsz-normal.woff2) format('woff2-variations'), url(../fonts/google-sans-latin-opsz-normal.woff2) format('woff2'); }
@font-face { font-family: 'Google Sans Flex'; font-style: normal; font-weight: 1 1000; font-stretch: 25% 151%; font-display: swap; src: url(../fonts/google-sans-flex-latin-wdth-normal.woff2) format('woff2-variations'), url(../fonts/google-sans-flex-latin-wdth-normal.woff2) format('woff2'); }
/* Layout: 1200px container on 12 columns, asymmetric 5/7 splits, generous 128px section rhythm,
   photos cut at the logo's slash angle (15.3°). One light theme by choice: the design system's "Claro" theme is the web theme. */
:root {
  color-scheme: light;
  --navy-900: #02044f;
  --navy-700: #014077;
  --accent: #0f8fff;
  --stone-200: #d8cdbc;
  --paper: #faf7f2;     /* warm paper white: a faint sand/stone tint, clean rather than grey */
  --paper-deep: #f3ede4; /* one step warmer, for the services band */
  --paper-line: #e2d9cc; /* hairline on paper */
  --white: #ffffff;
  --blue-gradient: linear-gradient(200deg, #2d51f2 0%, #2343cc 42%, #10286f 100%); /* blue modules: bright royal top-right to deep navy at the bottom */
  --navy-gradient: linear-gradient(200deg, #16208a 0%, #0a0f66 45%, #02044f 100%); /* footer: darker, ending in the navy of the Contacto button */
  --on-blue-muted: #e1e5f8; /* secondary text on the blue gradient (≥6:1 where text sits) */
  --garnet-700: #6b2a2e; /* brown garnet: warm counterpoint to the navy, for key figures and section eyebrows on light grounds */
  --slate-600: #4a4c6b;
  --slate-400: #7c7e98;
  --slate-300: #b9bbd6;

  --canvas: var(--paper);
  --surface: var(--paper-deep);
  --surface-brand: var(--navy-900);
  --ink: var(--navy-900);
  --ink-muted: var(--slate-600);
  --link: var(--navy-700);
  --line: var(--paper-line);
  --line-strong: var(--slate-400);

  --font-sans: "Public Sans", "Helvetica Neue", Arial, sans-serif;
  --font-serif: "Newsreader", Georgia, "Times New Roman", serif; /* closest Google Fonts match to Gambetta */

  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-6: 24px;
  --space-8: 32px; --space-12: 48px; --space-16: 64px; --space-24: 96px; --space-32: 128px;
  --radius-sm: 2px;
  --container-max: clamp(1200px, 76vw, 1520px); /* grows on wide screens */
  --measure: 40em; /* ~600px at 15px, scales with the text */
  --nav-height: clamp(80px, 5.5556vw, 96.0px);
  --slash-angle: 15.3deg;
  --focus-ring: 0 0 0 2px var(--canvas), 0 0 0 4px var(--navy-700);
  --gutter: var(--space-8);
  --section: clamp(78px, 5.4167vw, 93.6px); /* vertical padding of each module */
}
@media (max-width: 860px) { :root { --gutter: var(--space-4); --section: 40px; } }

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--nav-height) + var(--space-4)); }
body { margin: 0; background: var(--canvas); color: var(--ink); font-family: var(--font-sans); font-size: clamp(15px, 1.0417vw, 15.6px); line-height: 1.7333; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; }
h1, h2, h3, p, ul, figure { margin: 0; }

.ch-container { box-sizing: border-box; width: 100%; max-width: calc(var(--container-max) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }
.ch-section { padding-block: var(--section); }

/* ── Type: medium-weight Plex Sans headings with tight tracking; quiet 15px body in ink-muted; Plex Serif caps for details ── */
.ch-eyebrow { display: flex; align-items: center; gap: var(--space-3); font-family: var(--font-serif); font-weight: 500; font-size: clamp(14px, 0.9722vw, 16.8px); line-height: 1.3333; letter-spacing: 0.1em; text-transform: uppercase; color: var(--garnet-700); }
.ch-eyebrow::before { content: ""; flex: none; width: 2px; height: 1.1667em; background: var(--accent); transform: skewX(calc(var(--slash-angle) * -1)); }
.ch-eyebrow--center { justify-content: center; }
.ch-eyebrow--plain::before { display: none; }
/* Eyebrow sits 30% closer to its headline than the block's own gap: 28px → 19.6px, 24px → 16.8px */
:is(.ch-hero__text, .ch-herofull__text, .ch-split__text, .ch-intro__head, .ch-profile__body) > .ch-eyebrow + * { margin-top: -8.4px; }
:is(.ch-about__head, .ch-services-block__head, .ch-pair-block__head, .ch-cta__inner) > .ch-eyebrow + * { margin-top: -7.2px; }
.ch-h1 { font-weight: 600; font-size: clamp(62px, 4.3056vw, 74.4px); line-height: 1.0667; letter-spacing: -0.022em; text-wrap: balance; }
.ch-h2 { font-weight: 600; font-size: clamp(46px, 3.1944vw, 55.2px); line-height: 1.1364; letter-spacing: -0.02em; text-wrap: balance; }
.ch-h3 { font-weight: 600; font-size: clamp(32px, 2.2222vw, 38.4px); line-height: 1.2667; letter-spacing: -0.015em; text-wrap: balance; }
.ch-lead { max-width: 34em; font-weight: 500; font-size: clamp(20px, 1.3889vw, 24px); line-height: 1.6667; color: var(--ink); }
.ch-prose { display: grid; gap: 14px; max-width: var(--measure); color: var(--ink); }
.ch-prose a { color: var(--link); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }

/* ── Actions ── */
.ch-btn { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; gap: var(--space-3); min-height: 3.65em; padding: 0 1.9em; border: 1px solid var(--navy-900); border-radius: var(--radius-sm); background: var(--navy-900); color: var(--white); font: 500 clamp(13.5px, 0.9375vw, 16.2px)/1.39 var(--font-sans); letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; white-space: nowrap; cursor: pointer; transition: background-color .25s ease, border-color .25s ease, color .25s ease; }
.ch-btn:hover { background: var(--navy-700); border-color: var(--navy-700); }
.ch-btn--secondary { background: transparent; border-color: var(--line-strong); color: var(--ink); }
.ch-btn--secondary:hover { background: transparent; border-color: var(--ink); }
.ch-btn--outline { background: transparent; border-color: var(--navy-900); color: var(--navy-900); }
.ch-btn--outline:hover { background: var(--navy-900); border-color: var(--navy-900); color: var(--white); }
.ch-btn--sm { min-height: 36px; padding: 0 14px; font-size: 13px; }
.ch-link { display: inline-block; font: 500 clamp(16px, 1.1111vw, 19.2px)/1.43 var(--font-sans); letter-spacing: 0.03em; color: var(--link); text-decoration: none; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.ch-link::after { content: "→"; display: inline-block; margin-left: var(--space-2); transition: transform .25s ease; }
.ch-link:hover { text-decoration-line: underline; }
.ch-link:hover::after { transform: translateX(4px); }
:where(a, button):focus-visible { outline: 2px solid transparent; box-shadow: var(--focus-ring); }

/* ── NavBar ── */
.ch-nav { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 10; background: var(--canvas); }
.ch-nav__inner { display: flex; align-items: center; gap: var(--space-12); min-height: var(--nav-height); }
.ch-logo { display: inline-block; flex: none; line-height: 0; }
.ch-logo img { display: block; height: clamp(36px, 2.5000vw, 43.2px); width: auto; max-width: none; }
.ch-nav__nav { margin-left: auto; }
.ch-nav__links { display: flex; flex-wrap: wrap; gap: var(--space-8); padding: 0; list-style: none; font-weight: 500; font-size: clamp(16px, 1.1111vw, 19.2px); line-height: 1.43; letter-spacing: 0.02em; }
.ch-nav__links a { display: block; padding: var(--space-2) 0; border-bottom: 1px solid transparent; color: var(--ink); text-decoration: none; transition: border-color .25s ease; }
.ch-nav__links a:hover { border-bottom-color: var(--line-strong); }
.ch-nav__links a[aria-current="page"] { border-bottom-color: var(--accent); }
.ch-lang { display: flex; align-items: center; gap: var(--space-2); font-family: var(--font-serif); font-size: clamp(14px, 0.9722vw, 16.8px); line-height: 1.3333; letter-spacing: 0.16em; text-transform: uppercase; }
.ch-lang a { color: var(--ink-muted); text-decoration: none; }
.ch-lang a[aria-current="true"] { color: var(--ink); }
.ch-slash { display: inline-block; width: 2px; height: 14px; background: var(--accent); transform: skewX(calc(var(--slash-angle) * -1)); }
.ch-nav__menu { display: none; }
.ch-nav__cta { min-height: 3.1em; padding: 0 1.45em; font-size: clamp(12.5px, 0.8681vw, 15px); letter-spacing: 0.14em; }

.ch-menu { position: fixed; inset: 0; z-index: 20; box-sizing: border-box; display: flex; flex-direction: column; gap: var(--space-12); padding: calc(env(safe-area-inset-top, 0px) + var(--space-4)) var(--gutter) calc(env(safe-area-inset-bottom, 0px) + var(--space-8)); background: var(--canvas); overflow-y: auto; }
.ch-menu__top { display: flex; align-items: center; justify-content: space-between; min-height: calc(var(--nav-height) - var(--space-8)); }
.ch-menu__links { display: grid; gap: var(--space-4); padding: 0; list-style: none; }
.ch-menu__links a { display: inline-block; font-weight: 500; font-size: 30px; line-height: 38px; letter-spacing: -0.015em; color: var(--ink); text-decoration: none; }
.ch-menu .ch-lang { margin-top: auto; }

@media (max-width: 960px) {
  .ch-nav__nav { display: none; }
  .ch-nav .ch-lang { margin-left: auto; }
  .ch-nav__menu { display: inline-flex; }
  .ch-nav__cta { display: none; }
  .ch-nav__inner { gap: var(--space-4); }
}

/* ── Cut frame: a photo whose left edge is cut at the slash angle, with a parallel accent slash. ── */
.ch-cutframe { --cut: var(--canvas); position: relative; overflow: hidden; aspect-ratio: 4 / 3; max-width: 100%; min-width: 0; background: var(--surface); }
.ch-cutframe img { display: block; width: 96%; height: 100%; margin-left: 4%; object-fit: cover; }
.ch-cutframe__cut { position: absolute; top: -2px; bottom: -2px; left: -30%; width: 45%; background: var(--cut); transform: skewX(calc(var(--slash-angle) * -1)); }
.ch-cutframe__line { position: absolute; top: -2px; bottom: -2px; left: 11%; width: 5px; margin-left: -2.5px; background: var(--accent); transform: skewX(calc(var(--slash-angle) * -1)); }

/* ── Hero: the darkened bridge full-bleed, text centred over the sky ── */
.ch-herofull { --focus-ring: 0 0 0 2px var(--navy-900), 0 0 0 4px var(--accent); --hero-h: clamp(620px, 50vw, 900px); position: relative; isolation: isolate; display: grid; min-height: var(--hero-h); overflow: hidden; background: var(--navy-900); color: var(--white); }
.ch-herofull__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 0%; } /* sky kept, lower water cropped */
.ch-herofull::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(0, 0, 0, 0.22) 0%, rgba(0, 0, 0, 0) 55%), rgba(0, 18, 60, 0.42); } /* darkens the photo like the approved version, a touch more at the top */
.ch-herofull__inner { display: flex; justify-content: center; align-items: center; padding-block: 0; }
.ch-herofull__text { display: grid; justify-items: center; gap: 16px; max-width: 820px; min-width: 0; text-align: center; transform: translateY(calc(var(--hero-h) * -0.15)); } /* centred, then raised 15% of the hero's height */
.ch-herofull__text > .ch-eyebrow + * { margin-top: -4px; }
.ch-herofull .ch-eyebrow { justify-content: center; font-size: clamp(13px, 0.9028vw, 15.6px); color: var(--white); }
.ch-herofull .ch-h1 { font-size: clamp(66px, 4.5833vw, 79.2px); line-height: 1.05; }
.ch-herofull .ch-lead { max-width: 32em; font-size: clamp(19px, 1.3194vw, 22.8px); line-height: 1.55; color: #f4f5fa; }
.ch-herofull .ch-hero__actions { justify-content: center; margin-top: var(--space-2); }
.ch-herofull .ch-btn { min-height: 3.2em; padding: 0 1.6em; font-size: clamp(11px, 0.7639vw, 13.2px); }
.ch-herofull .ch-btn--outline { background: transparent; border-color: rgba(255, 255, 255, 0.55); color: var(--white); }
.ch-herofull .ch-btn--outline:hover { background: var(--white); border-color: var(--white); color: var(--navy-900); }
@media (max-width: 860px) {
  .ch-herofull { --hero-h: 700px; }
  .ch-herofull__img { inset: 0 0 auto 0; height: 125%; object-position: 22% 0%; } /* same framing as desktop: the bridge sits below the text */
  .ch-herofull__inner { align-items: flex-start; padding-top: 48px; }
  .ch-herofull__text { transform: none; } /* on phones the sky is shorter: keep the block at the top */
  .ch-herofull .ch-h1 { font-size: 38px; line-height: 42px; }
  .ch-herofull .ch-lead { font-size: 17px; }
}

/* ── Hero ── */
.ch-hero-band { background: var(--canvas); }
.ch-hero { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); align-items: center; gap: var(--space-12); padding-block: 28px 0; }
.ch-hero__text { display: grid; gap: 28px; min-width: 0; }
.ch-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-8); margin-top: var(--space-4); }
.ch-hero .ch-cutframe { aspect-ratio: 6 / 5; background: var(--canvas); }
.ch-hero .ch-cutframe img { object-position: 30% 50%; }

/* ── Quiénes somos: centred head, text in two columns ── */
.ch-about { display: grid; gap: 52px; }
.ch-about__head { display: grid; gap: var(--space-6); justify-items: center; text-align: center; }
.ch-about__head .ch-h2 { max-width: 16ch; }
.ch-about__body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-16); width: 100%; max-width: 920px; margin-inline: auto; color: var(--ink); }

/* ── Key figures: three large numbers in Plex Serif Light to break the rhythm ── */
.ch-figures { background: var(--surface); }
.ch-figures__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-block: 0; padding-block: calc(var(--section) * 0.8); list-style: none; }
.ch-figure { display: grid; justify-items: center; align-content: start; gap: var(--space-4); min-width: 0; padding-inline: var(--space-8); text-align: center; }
.ch-figure__value { font-family: var(--font-serif); font-weight: 400; font-size: clamp(123.6px, 8.5833vw, 148.3px); line-height: 1; letter-spacing: -0.02em; color: var(--garnet-700); font-variant-numeric: lining-nums; }
.ch-figure__unit { font-size: 0.5em; vertical-align: 0.62em; margin-inline: 0.04em; }
.ch-figure__label { max-width: 24ch; font-family: var(--font-serif); color: var(--ink-muted); }

/* ── ProfileCard: founder ── */
.ch-section--flush-top { padding-top: 0; }
.ch-profile { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; gap: var(--space-16); }
.ch-profile__photo { min-width: 0; background: var(--surface); }
.ch-profile__photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; }
.ch-profile__body { display: grid; gap: 28px; align-content: start; min-width: 0; }
.ch-facts { display: grid; gap: var(--space-4); margin: 0; }
.ch-facts > div { display: grid; grid-template-columns: minmax(0, 10rem) minmax(0, 1fr); gap: var(--space-6); }
.ch-facts dt { font-family: var(--font-serif); font-size: clamp(13.5px, 0.9375vw, 16.2px); line-height: 2.087; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-muted); }
.ch-facts dd { margin: 0; font-size: clamp(15px, 1.0417vw, 15.6px); line-height: 1.7; color: var(--ink); }
.ch-profile .ch-link { justify-self: start; }

/* ── Brand band with photo ── */
.ch-band-brand { background: var(--blue-gradient); color: var(--white); }
.ch-band-brand .ch-prose { color: var(--on-blue-muted); }
.ch-band-brand .ch-eyebrow { color: var(--white); } /* garnet does not read on blue */
.ch-band-brand, .ch-footer { --focus-ring: 0 0 0 2px #10286f, 0 0 0 4px var(--white); }
.ch-split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: var(--space-16); }
.ch-split__text { display: grid; gap: 28px; min-width: 0; }
.ch-band-brand .ch-cutframe { aspect-ratio: 4 / 3; background: transparent; }
.ch-band-brand .ch-cutframe img { width: 100%; margin-left: 0; object-position: 50% 20%; clip-path: polygon(25.3% 0, 100% 0, 100% 100%, 4.7% 100%); }
.ch-band-brand .ch-cutframe__cut { display: none; }
.ch-band-brand .ch-cutframe__line { top: 0; bottom: 0; left: 0; right: 0; width: auto; margin: 0; transform: none; clip-path: polygon(calc(21.3% - 2.5px) 0, calc(21.3% + 2.5px) 0, calc(0.7% + 2.5px) 100%, calc(0.7% - 2.5px) 100%); } /* drawn with the same % geometry as the photo's clip edge, so it stays parallel at every aspect ratio */

/* ── SectionIntro ── */
.ch-intro { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-6) var(--space-16); }
.ch-intro__head { display: grid; gap: 28px; align-content: start; min-width: 0; }
.ch-intro__body { min-width: 0; }

/* ── Services ── */
.ch-band-surface { background: var(--surface); }
.ch-services-block { display: grid; gap: 52px; }
.ch-services-block__head { display: grid; gap: var(--space-6); }
.ch-services { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); padding: 0; list-style: none; }
.ch-service { --focus-ring: 0 0 0 2px #0a0f66, 0 0 0 4px var(--white); position: relative; overflow: hidden; display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; padding: clamp(32px, 3.3333vw, 56px); border-radius: var(--radius-sm); background: var(--navy-gradient); color: var(--white); box-shadow: 0 1px 2px rgba(2, 4, 79, 0.08); transition: transform .6s cubic-bezier(.22,.61,.36,1), box-shadow .6s cubic-bezier(.22,.61,.36,1); }
.ch-service::after { content: ""; position: absolute; top: -10%; right: 18%; width: 2px; height: 120%; background: rgba(255, 255, 255, 0.07); transform: skewX(calc(var(--slash-angle) * -1)); pointer-events: none; } /* faint slash of the logo crossing the box */
.ch-service:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -18px rgba(2, 4, 79, 0.45); }
.ch-service__icon { display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: var(--space-4); border: 1px solid rgba(255, 255, 255, 0.22); border-radius: 50%; color: #9ccaff; }
.ch-service__icon svg { width: 34px; height: 34px; }
.ch-service__title { font-family: var(--font-serif); font-weight: 600; font-size: clamp(30px, 2.0833vw, 36px); line-height: 1.2; letter-spacing: -0.015em; text-wrap: balance; color: var(--white); }
.ch-service__text { max-width: 48ch; color: var(--on-blue-muted); font-size: clamp(16px, 1.1111vw, 19.2px); line-height: 1.7; }
.ch-service .ch-link { align-self: flex-start; margin-top: auto; padding-top: var(--space-4); color: var(--white); }

/* ── Pair of statements ── */
.ch-band-stone { background: var(--stone-200); color: var(--ink); }
.ch-pair-block { display: grid; gap: 52px; }
.ch-pair-block__head { display: grid; gap: var(--space-6); }
.ch-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-16); }
.ch-pair__item { display: grid; gap: var(--space-6); align-content: start; min-width: 0; }

/* ── CtaBand ── */
.ch-cta { --focus-ring: 0 0 0 2px #10286f, 0 0 0 4px var(--white); background: var(--blue-gradient); color: var(--white); }
.ch-cta .ch-eyebrow { color: var(--white); }
.ch-cta__inner { display: grid; justify-items: center; gap: var(--space-6); padding-block: var(--section); text-align: center; }
.ch-cta__title { max-width: 18ch; font-weight: 600; font-size: clamp(46px, 3.1944vw, 55.2px); line-height: 1.1364; letter-spacing: -0.02em; text-wrap: balance; }
.ch-cta__text { max-width: 52ch; color: var(--on-blue-muted); }
.ch-cta .ch-btn { margin-top: var(--space-4); background: var(--white); border-color: var(--white); color: var(--navy-900); }
.ch-cta .ch-btn:hover { background: var(--stone-200); border-color: var(--stone-200); }
.ch-cta__mail { font-family: var(--font-serif); font-size: clamp(15px, 1.0417vw, 18px); line-height: 1.5385; letter-spacing: 0.02em; overflow-wrap: anywhere; color: var(--on-blue-muted); }

/* ── Footer ── */
.ch-footer { background: var(--navy-gradient); color: var(--white); }
.ch-footer__inner { display: grid; gap: 46px; padding-block: 57px 28px; }
.ch-footer__top { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 3fr) minmax(0, 4fr); gap: var(--space-8); }
.ch-footer__brand { display: grid; gap: var(--space-6); align-content: start; justify-items: start; }
.ch-footer .ch-logo img { height: clamp(44px, 3.0556vw, 52.8px); }
.ch-footer__lede { max-width: 34ch; font-size: clamp(16px, 1.1111vw, 19.2px); line-height: 1.7143; color: var(--on-blue-muted); }
.ch-footer__heading { margin-bottom: var(--space-4); font-family: var(--font-serif); font-weight: 400; font-size: clamp(14px, 0.9722vw, 16.8px); line-height: 1.3333; letter-spacing: 0.16em; text-transform: uppercase; color: var(--on-blue-muted); }
.ch-footer ul { display: grid; gap: var(--space-2); padding: 0; list-style: none; }
.ch-footer a { color: inherit; text-decoration: none; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.ch-footer a:hover { text-decoration-line: underline; }
.ch-footer__top a, .ch-footer address { font-size: clamp(16px, 1.1111vw, 19.2px); line-height: 1.7143; }
.ch-footer address { font-style: normal; overflow-wrap: anywhere; }
.ch-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-4); padding-top: var(--space-6); border-top: 1px solid rgba(255, 255, 255, 0.28); font-family: var(--font-serif); font-size: clamp(15px, 1.0417vw, 18px); line-height: 1.5385; color: var(--on-blue-muted); }
.ch-footer__bottom ul { display: flex; flex-wrap: wrap; gap: var(--space-6); }

/* ── Small screens ── */
@media (max-width: 860px) {
  .ch-h1 { font-size: 42px; line-height: 46px; }
  .ch-h2, .ch-cta__title { font-size: 34px; line-height: 40px; }
  .ch-h3 { font-size: 28px; line-height: 36px; }
  .ch-hero, .ch-split, .ch-intro, .ch-about__body, .ch-services, .ch-pair, .ch-profile, .ch-footer__top { grid-template-columns: minmax(0, 1fr); }
  .ch-profile { gap: var(--space-8); }
  .ch-figures__list { grid-template-columns: minmax(0, 1fr); gap: var(--space-8); }
  .ch-facts > div { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .ch-hero { gap: var(--space-8); padding-top: 18px; }
  .ch-split { gap: var(--space-8); }
  .ch-about { gap: var(--space-8); }
  .ch-about__body, .ch-pair { gap: var(--space-8); }
  .ch-services { gap: var(--space-4); }
  .ch-footer__inner { padding-block: 40px 28px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .ch-btn, .ch-link::after, .ch-nav__links a { transition: none; }
}

/* ── Option: full-screen entry, menu in white over the photo; it turns solid on scroll ── */
.ch-nav--over { position: fixed; top: 0; left: 0; right: 0; padding-top: env(safe-area-inset-top, 0px); background: transparent; transition: background-color .3s ease, box-shadow .3s ease; }
.ch-nav--over.is-solid { background: var(--canvas); box-shadow: 0 1px 0 rgba(2, 4, 79, 0.08); }
.ch-nav--over .ch-nav__links a, .ch-nav--over .ch-lang a, .ch-nav--over .ch-nav__cta, .ch-nav--over .ch-nav__menu { transition: color .3s ease, background-color .3s ease, border-color .3s ease; }
.ch-nav .ch-logo .ch-logo__neg { display: none; }
.ch-nav--over:not(.is-solid) { --focus-ring: 0 0 0 2px var(--navy-900), 0 0 0 4px var(--white); }
.ch-nav--over:not(.is-solid) .ch-logo .ch-logo__pos { display: none; }
.ch-nav--over:not(.is-solid) .ch-logo .ch-logo__neg { display: block; }
.ch-nav--over:not(.is-solid) .ch-nav__links a { color: var(--white); }
.ch-nav--over:not(.is-solid) .ch-nav__links a:hover { border-bottom-color: rgba(255, 255, 255, 0.6); }
.ch-nav--over:not(.is-solid) .ch-lang a { color: rgba(255, 255, 255, 0.7); }
.ch-nav--over:not(.is-solid) .ch-lang a[aria-current="true"] { color: var(--white); }
.ch-nav--over:not(.is-solid) .ch-nav__cta { background: var(--white); border-color: var(--white); color: var(--navy-900); }
.ch-nav--over:not(.is-solid) .ch-nav__cta:hover { background: var(--stone-200); border-color: var(--stone-200); }
.ch-nav--over:not(.is-solid) .ch-nav__menu { background: transparent; border-color: rgba(255, 255, 255, 0.7); color: var(--white); }
.ch-herofull { --hero-h: clamp(680px, 100svh, 1100px); min-height: var(--hero-h); height: var(--hero-h); }
.ch-herofull__img { inset: 0 0 auto 0; height: 145%; object-position: 50% 0%; } /* taller than the screen, anchored at the top: the bridge sits low, below the centred text */
.ch-herofull__text { max-width: 960px; transform: none; } /* block centred in the photo; one-line headline on wide screens */
@media (max-width: 860px) {
  .ch-herofull { --hero-h: clamp(600px, 100svh, 900px); }
  .ch-herofull__img { height: 115%; object-position: 58% 0%; } /* less zoom: the bridge receding over the water, piers and sea at the bottom */ /* deeper zoom on phones so the bridge drops below the centred block */
  .ch-herofull__inner { align-items: center; padding-top: 0; }
  .ch-herofull__text { transform: translateY(calc(var(--hero-h) * -0.13)); } /* centred, nudged up into the sky above the bridge */
}
@media (prefers-reduced-motion: reduce) { .ch-nav--over, .ch-nav--over * { transition: none !important; } }

/* ── Fade-in de titulares ── */
/* Entrada: la foto se asienta despacio y los textos aparecen en cascada */
.ch-herofull__img { animation: ch-hero-settle 3.2s cubic-bezier(.25,.46,.45,.94) both; transform-origin: 50% 30%; }
@keyframes ch-hero-settle { from { opacity: 0; transform: scale(1.06); } to { opacity: 1; transform: scale(1); } }
.ch-herofull__text > * { animation: ch-fade-in 1.6s cubic-bezier(.22,.61,.36,1) both; }
.ch-herofull__text > .ch-eyebrow { animation-delay: .5s; }
.ch-herofull__text > .ch-h1 { animation-delay: .8s; }
.ch-herofull__text > .ch-lead { animation-delay: 1.15s; }
.ch-herofull__text > .ch-hero__actions { animation-delay: 1.5s; }
.ch-nav--over { animation: ch-fade-only 1.4s ease 1.7s both; }
@keyframes ch-fade-in { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes ch-fade-only { from { opacity: 0; } to { opacity: 1; } }
.ch-fade { opacity: 0; transform: translateY(18px); transition: opacity 1.1s cubic-bezier(.22,.61,.36,1), transform 1.1s cubic-bezier(.22,.61,.36,1); }
.ch-fade.is-in { opacity: 1; transform: none; }
.ch-service.ch-fade { transition: opacity 1.1s cubic-bezier(.22,.61,.36,1), transform 1.1s cubic-bezier(.22,.61,.36,1), box-shadow .6s ease; }
.ch-service.ch-fade.is-in:hover { transform: translateY(-4px); }
@media (prefers-reduced-motion: reduce) {
  .ch-herofull__img, .ch-herofull__text > *, .ch-nav--over { animation: none; }
  .ch-fade { opacity: 1; transform: none; transition: none; }
  .ch-service, .ch-service:hover { transition: none; transform: none; }
}

/* ══════════════════════════════════════════════════════════════
   Multi-page version · components added on top of the design system
   ══════════════════════════════════════════════════════════════ */

[hidden]:not([hidden=until-found i]) { display: none !important; }

/* ── Skip link ── */
.ch-skip { position: absolute; left: var(--gutter); top: -100px; z-index: 30; padding: 10px 16px; background: var(--navy-900); color: var(--white); text-decoration: none; }
.ch-skip:focus { top: 12px; }

/* ── Nav with a services dropdown ── */
.ch-nav__links { align-items: center; }
.ch-nav__item { position: relative; }
.ch-nav__toggle { display: flex; align-items: center; gap: 8px; padding: var(--space-2) 0; border: 0; border-bottom: 1px solid transparent; background: none; color: var(--ink); font: inherit; letter-spacing: inherit; cursor: pointer; transition: border-color .25s ease, color .3s ease; }
.ch-nav__toggle:hover { border-bottom-color: var(--line-strong); }
.ch-nav__toggle[aria-current="page"] { border-bottom-color: var(--accent); }
.ch-nav__links a[aria-current="page"] { border-bottom-color: var(--accent); }
.ch-nav__chev { width: 10px; height: 10px; transition: transform .3s ease; }
.ch-nav__item.is-open .ch-nav__chev { transform: rotate(180deg); }
.ch-sub { position: absolute; top: calc(100% + 14px); left: -24px; z-index: 12; min-width: 340px; padding: 14px 0; border-top: 2px solid var(--accent); background: var(--canvas); box-shadow: 0 24px 48px -24px rgba(2, 4, 79, 0.35); opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .3s ease, transform .3s ease, visibility 0s linear .3s; }
.ch-sub::before { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; } /* hover bridge */
.ch-nav__item.is-open .ch-sub { opacity: 1; visibility: visible; transform: none; transition: opacity .3s ease, transform .3s ease; }
.ch-sub ul { display: grid; padding: 0; margin: 0; list-style: none; }
.ch-nav .ch-sub a { display: block; padding: 10px 24px; border: 0; color: var(--ink); font-size: clamp(15px, 1.0417vw, 18px); letter-spacing: 0.01em; white-space: nowrap; }
.ch-nav .ch-sub a:hover { background: var(--surface); }
.ch-nav .ch-sub a[aria-current="page"] { color: var(--navy-700); box-shadow: inset 2px 0 0 var(--accent); }
.ch-nav--over:not(.is-solid) .ch-nav__toggle { color: var(--white); }
.ch-nav--over:not(.is-solid) .ch-nav__toggle:hover { border-bottom-color: rgba(255, 255, 255, 0.6); }
.ch-nav--over .ch-nav__toggle { transition: color .3s ease, border-color .3s ease; }
.ch-nav:not(.ch-nav--over) { box-shadow: 0 1px 0 rgba(2, 4, 79, 0.08); }
.ch-menu__sub { display: grid; gap: 10px; margin: 6px 0 4px; padding: 0 0 0 18px; border-left: 1px solid var(--line); list-style: none; }
.ch-menu__sub a { font-size: 20px !important; line-height: 28px !important; color: var(--ink-muted) !important; }
.ch-menu__label { font-family: var(--font-serif); font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--garnet-700); }
@media (max-width: 1180px) { .ch-nav__links { gap: var(--space-6); } .ch-nav__inner { gap: var(--space-8); } }

/* ── Home hero: looping video under the darkening layer ── */
.ch-herofull__video { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 45%; animation: ch-hero-settle 3.2s cubic-bezier(.25,.46,.45,.94) both; }
.ch-herofull .ch-h1 .ch-h1__accent { color: #9ccaff; }
.ch-herofull__lines { display: block; }
.ch-herofull__lines > span { display: block; }
.ch-hero__tags { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px 14px; margin: 0; padding: 0; list-style: none; font-family: var(--font-serif); font-size: clamp(13px, 0.9028vw, 15.6px); letter-spacing: 0.14em; text-transform: uppercase; color: var(--white); }
.ch-hero__tags li + li::before { content: ""; display: inline-block; width: 2px; height: 12px; margin-right: 14px; background: var(--accent); transform: skewX(calc(var(--slash-angle) * -1)); vertical-align: -1px; }
.ch-herofull .ch-hero__actions .ch-btn--solid { background: var(--white); border-color: var(--white); color: var(--navy-900); }
.ch-herofull .ch-hero__actions .ch-btn--solid:hover { background: var(--stone-200); border-color: var(--stone-200); }
.ch-video-toggle { position: absolute; right: var(--gutter); bottom: calc(var(--space-6) + env(safe-area-inset-bottom, 0px)); z-index: 2; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid rgba(255, 255, 255, 0.45); border-radius: 50%; background: rgba(2, 4, 79, 0.25); color: var(--white); cursor: pointer; transition: background-color .25s ease, border-color .25s ease; }
.ch-video-toggle:hover { background: rgba(2, 4, 79, 0.5); border-color: var(--white); }
.ch-video-toggle svg { width: 14px; height: 14px; }
.ch-video-toggle .i-play { display: none; }
.ch-video-toggle[aria-pressed="true"] .i-play { display: block; }
.ch-video-toggle[aria-pressed="true"] .i-pause { display: none; }
.ch-herofull .ch-h1 { text-wrap: initial; }
@media (max-width: 860px) {
  .ch-herofull__video { object-position: 40% 50%; }
  .ch-herofull .ch-h1 { font-size: 52px; line-height: 1.04; }
}

/* ── Page hero (inner pages) ── */
.ch-pagehero { position: relative; isolation: isolate; overflow: hidden; background: var(--surface); }
.ch-pagehero::before, .ch-pagehero::after { content: ""; position: absolute; top: -10%; bottom: -10%; z-index: -1; width: 2px; background: rgba(2, 4, 79, 0.08); transform: skewX(calc(var(--slash-angle) * -1)); }
.ch-pagehero::before { right: 16%; }
.ch-pagehero::after { right: 9%; background: var(--accent); opacity: .55; }
.ch-pagehero__inner { display: grid; gap: 22px; padding-block: clamp(72px, 6.6667vw, 120px) clamp(64px, 5.5556vw, 100px); }
.ch-pagehero__inner > .ch-eyebrow + * { margin-top: -6px; }
.ch-pagehero__title { max-width: 18ch; font-weight: 600; font-size: clamp(64px, 4.8611vw, 84px); line-height: 1.04; letter-spacing: -0.024em; text-wrap: balance; }
.ch-pagehero__title .ch-accent { display: block; color: var(--navy-700); }
.ch-pagehero__lead { max-width: 38em; font-size: clamp(19px, 1.3194vw, 22.8px); line-height: 1.55; color: var(--ink-muted); }
.ch-pagehero--dark { --focus-ring: 0 0 0 2px #10286f, 0 0 0 4px var(--white); background: var(--blue-gradient); color: var(--white); }
.ch-pagehero--dark::before { background: rgba(255, 255, 255, 0.10); }
.ch-pagehero--dark::after { background: rgba(255, 255, 255, 0.28); opacity: 1; }
.ch-pagehero--dark .ch-eyebrow { color: var(--white); }
.ch-pagehero--dark .ch-pagehero__lead { color: var(--on-blue-muted); }
.ch-pagehero--dark .ch-pagehero__title .ch-accent { color: #b9d8ff; }
.ch-pagehero .ch-pagehero__inner > * { animation: ch-fade-in 1.4s cubic-bezier(.22,.61,.36,1) both; }
.ch-pagehero .ch-pagehero__inner > :nth-child(1) { animation-delay: .1s; }
.ch-pagehero .ch-pagehero__inner > :nth-child(2) { animation-delay: .3s; }
.ch-pagehero .ch-pagehero__inner > :nth-child(3) { animation-delay: .55s; }

/* ── Bands ── */
.ch-band-paper { background: var(--canvas); }
.ch-band-navy { --focus-ring: 0 0 0 2px #0a0f66, 0 0 0 4px var(--white); background: var(--navy-gradient); color: var(--white); }
.ch-band-navy .ch-eyebrow { color: var(--white); }
.ch-band-navy .ch-prose, .ch-band-navy .ch-lead-text { color: var(--on-blue-muted); }
.ch-band-navy .ch-link, .ch-band-brand .ch-link { color: var(--white); }
.ch-band-stone .ch-prose { color: var(--ink); }

/* Intro row: eyebrow + heading left, prose right (the design system's 5/7 split) */
.ch-intro__head .ch-h2 { font-size: clamp(40px, 2.9167vw, 50.4px); line-height: 1.15; }
.ch-intro__body { align-self: start; padding-top: 2px; }
.ch-intro__body.ch-prose { font-size: clamp(16px, 1.1111vw, 19.2px); line-height: 1.75; }
.ch-intro__body .ch-link { margin-top: var(--space-4); justify-self: start; }

/* ── Statement: a single idea set apart by the slash ── */
.ch-statement { position: relative; display: grid; gap: var(--space-6); max-width: 900px; margin-inline: auto; padding-left: clamp(32px, 3.3333vw, 56px); }
.ch-statement::before { content: ""; position: absolute; left: 4px; top: 2px; height: 76px; width: 3px; background: var(--accent); transform: skewX(calc(var(--slash-angle) * -1)); }
.ch-statement > .ch-eyebrow + * { margin-top: -8px; }
.ch-statement__title { font-family: var(--font-serif); font-weight: 500; font-size: clamp(36px, 2.6389vw, 45.6px); line-height: 1.2; letter-spacing: -0.012em; text-wrap: balance; }
.ch-statement__text { max-width: 46em; font-size: clamp(17px, 1.1806vw, 20.4px); line-height: 1.7; color: var(--ink); }
.ch-band-navy .ch-statement__text { color: var(--on-blue-muted); }
.ch-band-navy .ch-statement::before { background: #9ccaff; }

/* ── Lead block on the home page (Quiénes somos) ── */
.ch-firm { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: var(--space-16); align-items: start; }
.ch-firm__head { display: grid; gap: 28px; }
.ch-firm__head > .ch-eyebrow + * { margin-top: -8.4px; }
.ch-firm__statement { font-family: var(--font-serif); font-weight: 400; font-size: clamp(30px, 2.2222vw, 38.4px); line-height: 1.32; letter-spacing: -0.01em; color: var(--ink); text-wrap: pretty; }
.ch-firm__sub { max-width: 34em; font-size: clamp(17px, 1.1806vw, 20.4px); line-height: 1.65; color: var(--ink-muted); }
.ch-firm__body { display: grid; gap: var(--space-6); padding-top: 46px; }
.ch-firm__body .ch-prose { font-size: clamp(16px, 1.1111vw, 19.2px); line-height: 1.75; }
.ch-callout { position: relative; margin: 0; padding: 20px 24px 20px 30px; background: var(--surface); font-weight: 500; font-size: clamp(17px, 1.1806vw, 20.4px); line-height: 1.55; color: var(--ink); }
.ch-callout::before { content: ""; position: absolute; left: 12px; top: 18px; bottom: 18px; width: 2px; background: var(--accent); transform: skewX(calc(var(--slash-angle) * -1)); }
.ch-firm__body .ch-link { justify-self: start; }

/* ── Services cards: four practice areas, now linking to their pages ── */
.ch-service { text-decoration: none; }
.ch-service__num { position: absolute; top: clamp(32px, 3.3333vw, 56px); right: clamp(32px, 3.3333vw, 56px); font-family: var(--font-serif); font-size: 15px; letter-spacing: 0.16em; color: rgba(255, 255, 255, 0.55); }
a.ch-service:hover .ch-link { text-decoration-line: underline; }
a.ch-service:hover .ch-link::after { transform: translateX(4px); }
.ch-service .ch-link { pointer-events: none; }

/* ── Values ── */
.ch-values-block { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-16); }
.ch-values-block__head { display: grid; gap: 28px; align-content: start; }
.ch-values-block__head > .ch-eyebrow + * { margin-top: -8.4px; }
.ch-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--space-12); margin: 0; padding: 0; list-style: none; }
.ch-value { display: grid; gap: var(--space-3); align-content: start; padding-block: 28px 32px; border-top: 1px solid var(--line-strong); }
.ch-value--wide { grid-column: 1 / -1; }
.ch-value__title { display: flex; align-items: baseline; gap: 14px; font-family: var(--font-serif); font-weight: 500; font-size: clamp(28px, 1.9444vw, 33.6px); line-height: 1.2; letter-spacing: -0.01em; }
.ch-value__num { font-size: 0.5em; letter-spacing: 0.12em; color: var(--garnet-700); }
.ch-value p { max-width: 40ch; font-size: clamp(16px, 1.1111vw, 19.2px); line-height: 1.7; color: var(--ink); }
.ch-value--wide p { max-width: 60ch; }

/* ── Matter cards (Litigación) ── */
.ch-matters-block { display: grid; gap: 52px; }
.ch-matters-block__head { display: grid; gap: var(--space-6); max-width: 760px; }
.ch-matters-block__head > .ch-eyebrow + * { margin-top: -7.2px; }
.ch-matters-block__intro { font-size: clamp(17px, 1.1806vw, 20.4px); line-height: 1.65; color: var(--ink-muted); }
.ch-matters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); margin: 0; padding: 0; list-style: none; }
.ch-matter { position: relative; display: grid; gap: var(--space-4); align-content: start; min-width: 0; padding: clamp(28px, 2.7778vw, 48px); border-top: 2px solid var(--accent); background: var(--white); box-shadow: 0 1px 2px rgba(2, 4, 79, 0.06); }
.ch-matter__num { font-family: var(--font-serif); font-size: 15px; letter-spacing: 0.16em; color: var(--garnet-700); }
.ch-matter__title { font-family: var(--font-serif); font-weight: 600; font-size: clamp(26px, 1.8056vw, 31.2px); line-height: 1.22; letter-spacing: -0.012em; text-wrap: balance; }
.ch-matter p { font-size: clamp(16px, 1.1111vw, 19.2px); line-height: 1.7; color: var(--ink); }

/* ── Institution tiles (Arbitraje) ── */
.ch-inst-block { display: grid; gap: 44px; }
.ch-inst-block__head { display: grid; gap: var(--space-6); max-width: 820px; }
.ch-inst-block__head > .ch-eyebrow + * { margin-top: -7.2px; }
.ch-inst-block__head p:not(.ch-eyebrow) { font-size: clamp(17px, 1.1806vw, 20.4px); line-height: 1.65; color: var(--ink-muted); }
.ch-inst { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); margin: 0; padding: 0; list-style: none; }
.ch-inst li { position: relative; overflow: hidden; display: flex; align-items: flex-end; min-height: 168px; padding: 28px 32px; background: var(--navy-gradient); color: var(--white); font-family: var(--font-serif); font-weight: 500; font-size: clamp(24px, 1.6667vw, 28.8px); line-height: 1.25; }
.ch-inst li::after { content: ""; position: absolute; top: -10%; right: 22%; width: 2px; height: 120%; background: rgba(255, 255, 255, 0.10); transform: skewX(calc(var(--slash-angle) * -1)); }
.ch-inst abbr { text-decoration: none; }

/* ── Fees and funding (La Firma) ── */
.ch-fees-block { display: grid; gap: 52px; }
.ch-fees-block__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--space-6); }
.ch-fees-block__title { display: grid; gap: var(--space-6); }
.ch-fees-block__title > .ch-eyebrow + * { margin-top: -7.2px; }
.ch-fees-block__note { max-width: 26ch; padding-left: 16px; border-left: 2px solid var(--accent); font-family: var(--font-serif); font-size: clamp(15px, 1.0417vw, 18px); line-height: 1.5; color: var(--ink-muted); }
.ch-fees { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); }
.ch-fee { display: grid; gap: var(--space-4); align-content: start; padding: clamp(32px, 3.3333vw, 56px); background: var(--surface); border-top: 2px solid var(--accent); }
.ch-fee__title { font-family: var(--font-serif); font-weight: 600; font-size: clamp(28px, 1.9444vw, 33.6px); line-height: 1.2; letter-spacing: -0.012em; }
.ch-fee p { font-size: clamp(16px, 1.1111vw, 19.2px); line-height: 1.75; color: var(--ink); }

/* ── Founder block (La Firma · modelo) ── */
.ch-model { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-16); align-items: center; }
.ch-model__photo { margin: 0; background: var(--surface); }
.ch-model__photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; }
.ch-model__body { display: grid; gap: 28px; }
.ch-model__body > .ch-eyebrow + * { margin-top: -8.4px; }
.ch-model__quote { font-family: var(--font-serif); font-weight: 400; font-size: clamp(32px, 2.3611vw, 40.8px); line-height: 1.25; letter-spacing: -0.01em; text-wrap: balance; }
.ch-model__quote strong { font-weight: 600; }
.ch-model .ch-link { justify-self: start; }

/* ── Team page ── */
.ch-profile__lead { font-family: var(--font-serif); font-weight: 400; font-size: clamp(26px, 1.9444vw, 33.6px); line-height: 1.35; letter-spacing: -0.008em; color: var(--ink); }
.ch-profile .ch-prose { font-size: clamp(16px, 1.1111vw, 19.2px); line-height: 1.75; }
.ch-facts-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--space-12); margin: 0; }
.ch-facts-grid > div { display: grid; gap: var(--space-3); align-content: start; padding-block: 28px 32px; border-top: 1px solid var(--line-strong); }
.ch-facts-grid dt { font-family: var(--font-serif); font-weight: 500; font-size: clamp(26px, 1.8056vw, 31.2px); line-height: 1.2; }
.ch-facts-grid dd { margin: 0; font-size: clamp(16px, 1.1111vw, 19.2px); line-height: 1.7; color: var(--ink); }
.ch-block { display: grid; gap: 44px; }
.ch-block__head { display: grid; gap: var(--space-6); }
.ch-block__head > .ch-eyebrow + * { margin-top: -7.2px; }

/* ── Contact page ── */
.ch-contact { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: var(--space-16); align-items: start; }
.ch-contact__intro { font-family: var(--font-serif); font-weight: 400; font-size: clamp(28px, 2.0833vw, 36px); line-height: 1.35; letter-spacing: -0.008em; color: var(--ink); }
.ch-contact__card { --focus-ring: 0 0 0 2px #0a0f66, 0 0 0 4px var(--white); position: relative; overflow: hidden; display: grid; gap: var(--space-6); padding: clamp(36px, 3.8889vw, 64px); background: var(--navy-gradient); color: var(--white); }
.ch-contact__card::after { content: ""; position: absolute; top: -10%; right: 16%; width: 2px; height: 120%; background: rgba(255, 255, 255, 0.08); transform: skewX(calc(var(--slash-angle) * -1)); pointer-events: none; }
.ch-contact__name { font-family: var(--font-serif); font-weight: 500; font-size: clamp(30px, 2.2222vw, 38.4px); line-height: 1.2; }
.ch-contact__list { display: grid; gap: var(--space-4); margin: 0; padding: 0; list-style: none; }
.ch-contact__list a { display: inline-flex; align-items: baseline; gap: 10px; color: var(--white); font-size: clamp(18px, 1.25vw, 21.6px); line-height: 1.5; text-decoration: none; overflow-wrap: anywhere; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.ch-contact__list a:hover { text-decoration-line: underline; }
.ch-contact__label { display: block; margin-bottom: 2px; font-family: var(--font-serif); font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--on-blue-muted); }
.ch-contact__note { padding-top: var(--space-4); border-top: 1px solid rgba(255, 255, 255, 0.22); font-family: var(--font-serif); font-size: clamp(15px, 1.0417vw, 18px); line-height: 1.5; color: var(--on-blue-muted); }

/* ── CTA band: compact on inner pages ── */
.ch-cta__inner .ch-btn::after { content: "→"; }
.ch-cta__mail a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }

/* ── Footer ── */
.ch-footer__top { grid-template-columns: minmax(0, 3.4fr) minmax(0, 2fr) minmax(0, 2.6fr) minmax(0, 4fr); }
.ch-footer address { overflow-wrap: normal; }
.ch-footer address a { white-space: nowrap; }
.ch-footer address a { color: inherit; }

/* ── Small screens ── */
@media (max-width: 1080px) {
  .ch-footer__top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-12) var(--space-8); }
}
@media (max-width: 860px) {
  .ch-pagehero__title { font-size: 46px; line-height: 1.06; }
  .ch-pagehero__lead { font-size: 17px; }
  .ch-pagehero::before { right: 10%; } .ch-pagehero::after { right: 2%; }
  .ch-intro__head .ch-h2 { font-size: 32px; line-height: 38px; }
  .ch-firm, .ch-values-block, .ch-matters, .ch-fees, .ch-model, .ch-contact, .ch-facts-grid, .ch-values { grid-template-columns: minmax(0, 1fr); }
  .ch-firm, .ch-values-block, .ch-model, .ch-contact { gap: var(--space-8); }
  .ch-firm__body { padding-top: 0; }
  .ch-firm__statement { font-size: 26px; }
  .ch-inst { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
  .ch-inst li { min-height: 112px; }
  .ch-matters, .ch-fees { gap: var(--space-4); }
  .ch-statement__title { font-size: 30px; }
  .ch-model__photo { max-width: 360px; }
  .ch-footer__top { grid-template-columns: minmax(0, 1fr); gap: var(--space-8); }
  .ch-sub { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ch-herofull__video, .ch-pagehero .ch-pagehero__inner > * { animation: none; }
  .ch-sub, .ch-nav__chev { transition: none; }
}
.ch-services > li { display: flex; min-width: 0; }
.ch-services > li > .ch-service { flex: 1; }
.ch-nav--over .ch-sub a, .ch-nav--over:not(.is-solid) .ch-sub a { color: var(--ink); }
.ch-nav--over:not(.is-solid) .ch-sub a:hover { border-bottom-color: transparent; }

/* ── Home adjustments (round 2) ── */
.ch-herofull .ch-h1 { font-size: clamp(82.5px, 5.7292vw, 99px); line-height: 1.02; }
@media (max-width: 860px) { .ch-herofull .ch-h1 { font-size: min(65px, 14.6vw); line-height: 1.04; } }
.ch-link--quiet { color: var(--garnet-700); }
/* Secondary links on blue: lighter and smaller than the text they follow */
.ch-link--soft { font-size: clamp(14px, 0.9722vw, 16.8px); font-weight: 400; letter-spacing: 0.04em; color: #9ccaff; }
.ch-band-brand .ch-link--soft, .ch-service .ch-link--soft { color: #9ccaff; }
.ch-value { border-top-color: rgba(124, 126, 152, 0.5); }
@media (max-width: 860px) { .ch-herofull .ch-h1 { font-size: min(65px, 12.8vw); } .ch-herofull__lines > span { white-space: nowrap; } }

/* ── Home hero (round 3): larger all-white headline, a short intro instead of buttons ── */
.ch-herofull .ch-h1 { font-size: clamp(99px, 6.875vw, 118.8px); line-height: 1; color: var(--white); }
.ch-herofull .ch-lead { max-width: 30em; margin-top: 10px; font-weight: 400; }
@media (max-width: 860px) { .ch-herofull .ch-h1 { font-size: min(78px, 12.8vw); } .ch-herofull .ch-lead { max-width: 22em; } }

/* ── Compact desktop nav (round 4) ── */
@media (min-width: 961px) {
  :root { --nav-height: clamp(68px, 4.7222vw, 80px); }
  .ch-nav__inner { gap: var(--space-8); }
  .ch-logo img { height: clamp(32px, 2.2222vw, 38px); }
  .ch-nav__links { gap: 28px; font-size: clamp(14.5px, 1.0069vw, 16.5px); letter-spacing: 0.015em; }
  .ch-nav__links a, .ch-nav__toggle { padding-block: 6px; }
  .ch-lang { font-size: clamp(12.5px, 0.8681vw, 14px); }
  .ch-nav__cta { min-height: 34px; padding: 0 16px; border-color: var(--navy-900); background: transparent; color: var(--navy-900); font-size: 11px; font-weight: 500; letter-spacing: 0.18em; }
  .ch-nav__cta:hover, .ch-nav__cta[aria-current="page"] { background: var(--navy-900); border-color: var(--navy-900); color: var(--white); }
  .ch-nav--over:not(.is-solid) .ch-nav__cta { background: transparent; border-color: rgba(255, 255, 255, 0.6); color: var(--white); }
  .ch-nav--over:not(.is-solid) .ch-nav__cta:hover { background: var(--white); border-color: var(--white); color: var(--navy-900); }
}

/* ══ Round 5 ══ */
/* Hero: the misty arch bridge needs a lighter veil than the old daytime photo */
.ch-herofull::before { background: linear-gradient(180deg, rgba(2, 4, 40, 0.38) 0%, rgba(2, 4, 40, 0.12) 58%, rgba(2, 4, 40, 0.30) 100%), rgba(4, 12, 48, 0.18); }
.ch-herofull__video { object-position: 50% 62%; }

/* Contact band on stone: closes each page without stacking blue on blue */
.ch-cta { --focus-ring: 0 0 0 2px var(--stone-200), 0 0 0 4px var(--navy-700); background: var(--stone-200); color: var(--ink); }
.ch-cta .ch-eyebrow { color: var(--garnet-700); }
.ch-cta__text { color: var(--ink); }
.ch-cta .ch-btn { background: var(--navy-900); border-color: var(--navy-900); color: var(--white); }
.ch-cta .ch-btn:hover { background: var(--navy-700); border-color: var(--navy-700); }
.ch-cta__mail { color: var(--ink-muted); }

/* One type rule: sans for every heading; the serif is kept for statements, quotes, figures and labels */
.ch-service__title, .ch-matter__title, .ch-fee__title, .ch-value__title, .ch-facts-grid dt, .ch-inst li, .ch-contact__name {
  font-family: var(--font-sans); font-weight: 600; letter-spacing: -0.012em;
}
.ch-service__title { font-size: clamp(26px, 1.8056vw, 31.2px); line-height: 1.22; }
.ch-matter__title, .ch-fee__title, .ch-value__title, .ch-facts-grid dt { font-size: clamp(22px, 1.5278vw, 26.4px); line-height: 1.25; }
.ch-inst li { font-size: clamp(21px, 1.4583vw, 25.2px); line-height: 1.3; }
.ch-contact__name { font-size: clamp(26px, 1.8056vw, 31.2px); }

/* Pair of short blocks side by side (merged rows on inner pages) */
.ch-pair { row-gap: var(--space-12); }
.ch-pair__item > .ch-eyebrow + * { margin-top: -8.4px; }
.ch-pair .ch-h3 { font-size: clamp(30px, 2.0833vw, 36px); line-height: 1.22; }
.ch-pair .ch-prose { font-size: clamp(16px, 1.1111vw, 19.2px); line-height: 1.75; }

/* Other practice areas */
.ch-related { border-top: 1px solid var(--line); }
.ch-related__inner { display: grid; gap: var(--space-6); padding-block: clamp(48px, 4.4444vw, 76px); }
.ch-related__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); margin: 0; padding: 0; list-style: none; }
.ch-related__list a { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-4); height: 100%; box-sizing: border-box; padding: 20px 0 6px; border-top: 1px solid var(--line-strong); color: var(--ink); font-weight: 600; font-size: clamp(18px, 1.25vw, 21.6px); line-height: 1.3; letter-spacing: -0.01em; text-decoration: none; }
.ch-related__arrow { flex: none; color: var(--accent); transition: transform .25s ease; }
.ch-related__list a:hover .ch-related__arrow { transform: translateX(4px); }
.ch-related__list a:hover span:first-child { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
@media (max-width: 860px) {
  .ch-related__list { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .ch-pair .ch-h3 { font-size: 28px; }
}
@media (prefers-reduced-motion: reduce) { .ch-related__arrow { transition: none; } }
/* Hero test: tunnel photo */
.ch-herofull__video { object-position: 50% 50%; }
/* Hero test 3: sunset arch bridge */
.ch-herofull__video { object-position: 50% 60%; }

/* ══ Services, editorial index (home) ══
   Left: heading, sticky. Right: four rows on hairlines; each row is one link with a thin icon, the
   practice name, a short line of text and an arrow. Hover draws the logo slash in and moves the arrow. */
.ch-svcs { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-16); align-items: start; }
.ch-svcs__head { position: sticky; top: calc(var(--nav-height) + 40px); display: grid; gap: 28px; }
.ch-svcs__head > .ch-eyebrow + * { margin-top: -8.4px; }
.ch-svcs__head .ch-h2 { font-size: clamp(52px, 3.6111vw, 62.4px); line-height: 1.05; }
.ch-svcs__intro { max-width: 22em; font-family: var(--font-serif); font-size: clamp(20px, 1.3889vw, 24px); line-height: 1.45; color: var(--ink-muted); }
.ch-svcs__list { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid rgba(124, 126, 152, 0.45); }
.ch-svcs__list > li { border-top: 1px solid rgba(124, 126, 152, 0.45); }
.ch-svc { position: relative; display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; grid-template-areas: "icon title more" "icon text more"; column-gap: var(--space-8); row-gap: 14px; padding: clamp(32px, 2.7778vw, 48px) var(--space-6) clamp(32px, 2.7778vw, 48px) 0; color: var(--ink); text-decoration: none; transition: padding-left .5s cubic-bezier(.22,.61,.36,1), background-color .5s ease; }
.ch-svc::before { content: ""; position: absolute; left: 4px; top: clamp(34px, 2.9167vw, 50px); height: 48px; width: 2px; background: var(--accent); transform: skewX(calc(var(--slash-angle) * -1)) scaleY(0); transform-origin: bottom; transition: transform .5s cubic-bezier(.22,.61,.36,1); }
.ch-svc__icon { grid-area: icon; display: block; width: 44px; height: 44px; margin-top: 2px; color: var(--navy-700); }
.ch-svc__icon svg { width: 100%; height: 100%; }
.ch-svc__title { grid-area: title; font-weight: 600; font-size: clamp(28px, 1.9444vw, 33.6px); line-height: 1.18; letter-spacing: -0.015em; text-wrap: balance; transition: color .4s ease; }
.ch-svc__text { grid-area: text; max-width: 46ch; font-size: clamp(16px, 1.1111vw, 19.2px); line-height: 1.7; color: var(--ink-muted); }
.ch-svc__more { grid-area: more; align-self: center; display: inline-flex; align-items: center; gap: 12px; color: var(--navy-700); }
.ch-svc__more-label { font-family: var(--font-serif); font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; opacity: 0; transform: translateX(8px); transition: opacity .4s ease, transform .4s ease; }
.ch-svc__more svg { flex: none; width: 46px; height: 46px; padding: 11px; box-sizing: border-box; border: 1px solid rgba(124, 126, 152, 0.55); border-radius: 50%; transition: background-color .4s ease, border-color .4s ease, color .4s ease, transform .4s ease; }
.ch-svc:hover, .ch-svc:focus-visible { padding-left: 32px; background: linear-gradient(90deg, var(--surface), rgba(243, 237, 228, 0)); }
.ch-svc:hover::before, .ch-svc:focus-visible::before { transform: skewX(calc(var(--slash-angle) * -1)) scaleY(1); }
.ch-svc:hover .ch-svc__title { color: var(--navy-700); }
.ch-svc:hover .ch-svc__more-label, .ch-svc:focus-visible .ch-svc__more-label { opacity: 1; transform: none; }
.ch-svc:hover .ch-svc__more svg, .ch-svc:focus-visible .ch-svc__more svg { background: var(--navy-900); border-color: var(--navy-900); color: var(--white); }
@media (max-width: 860px) {
  .ch-svcs { grid-template-columns: minmax(0, 1fr); gap: var(--space-8); }
  .ch-svcs__head { position: static; }
  .ch-svcs__head .ch-h2 { font-size: 40px; }
  .ch-svc { grid-template-columns: 40px minmax(0, 1fr); grid-template-areas: "icon title" "text text" "more more"; column-gap: var(--space-4); padding: 28px 0; }
  .ch-svc__icon { width: 36px; height: 36px; }
  .ch-svc__title { font-size: 24px; align-self: center; }
  .ch-svc__more { justify-self: start; }
  .ch-svc__more-label { opacity: 1; transform: none; }
  .ch-svc__more svg { width: 40px; height: 40px; padding: 9px; }
  .ch-svc:hover, .ch-svc:focus-visible { padding-left: 0; background: none; }
}
@media (hover: none) { .ch-svc__more-label { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .ch-svc, .ch-svc::before, .ch-svc__title, .ch-svc__more-label, .ch-svc__more svg { transition: none; } }

/* ══════════════════════════════════════════════════════════════
   Round 7 · Fixed desktop type scale, more air, fewer slashes
   Desktop sizes no longer grow with the window: an iMac and a MacBook
   show the same page. Narrow desktops and side panels step down once.
   ══════════════════════════════════════════════════════════════ */

/* ── Slashes: kept on the logo, the page openers, photos and the language switch; removed elsewhere ── */
.ch-eyebrow::before { display: none; }
.ch-pagehero .ch-eyebrow::before { display: block; }
.ch-pagehero::before { display: none; }
.ch-inst li::after, .ch-contact__card::after, .ch-service::after { display: none; }
.ch-hero__tags li + li::before { width: 3px; height: 3px; margin-right: 14px; border-radius: 50%; background: rgba(255, 255, 255, 0.7); transform: none; vertical-align: 3px; }

@media (min-width: 861px) {
  :root {
    --container-max: 1200px;
    --section: 104px;
    --nav-height: 72px;
    --measure: 36em;
  }
  body { font-size: 16px; line-height: 1.7; }

  /* Nav */
  .ch-logo img { height: 34px; }
  .ch-nav__links { font-size: 15px; gap: 28px; }
  .ch-lang { font-size: 13px; }
  .ch-nav .ch-sub a { font-size: 15px; }

  /* Labels and links */
  .ch-eyebrow { font-size: 13px; letter-spacing: 0.14em; }
  .ch-link { font-size: 15px; }
  .ch-link--soft { font-size: 14px; }
  .ch-btn { font-size: 13px; }

  /* Headings */
  .ch-h1 { font-size: 56px; line-height: 1.06; }
  .ch-h2, .ch-cta__title { font-size: 40px; line-height: 1.15; letter-spacing: -0.018em; }
  .ch-intro__head .ch-h2 { font-size: 34px; line-height: 1.2; }
  .ch-h3, .ch-pair .ch-h3 { font-size: 28px; line-height: 1.25; }

  /* Home hero */
  .ch-herofull .ch-h1 { font-size: 84px; line-height: 1.02; }
  .ch-herofull .ch-lead { font-size: 19px; line-height: 1.55; max-width: 31em; }
  .ch-hero__tags { font-size: 13px; }

  /* Page hero */
  .ch-pagehero__inner { gap: 20px; padding-block: 96px 84px; }
  .ch-pagehero__title { font-size: 56px; line-height: 1.06; }
  .ch-pagehero__lead { font-size: 18px; max-width: 36em; }

  /* Running text */
  .ch-lead { font-size: 19px; }
  .ch-prose, .ch-intro__body.ch-prose, .ch-pair .ch-prose, .ch-firm__body .ch-prose, .ch-profile .ch-prose { font-size: 16px; line-height: 1.75; }
  .ch-intro__body { max-width: 36em; }
  .ch-intro { column-gap: 96px; }

  /* Home blocks */
  .ch-firm { column-gap: 96px; }
  .ch-firm__statement { font-size: 28px; line-height: 1.38; }
  .ch-firm__sub { font-size: 17px; }
  .ch-firm__body { padding-top: 40px; max-width: 36em; }
  .ch-figures__list { padding-block: 72px; }
  .ch-figure__value { font-size: 104px; }
  .ch-figure__label { font-size: 15px; }
  .ch-svcs { column-gap: 96px; }
  .ch-svcs__head .ch-h2 { font-size: 44px; }
  .ch-svcs__intro { font-size: 19px; }
  .ch-svc { padding-block: 36px; row-gap: 10px; }
  .ch-svc__icon { width: 38px; height: 38px; }
  .ch-svc { grid-template-columns: 48px minmax(0, 1fr) auto; }
  .ch-svc__title { font-size: 24px; }
  .ch-svc__text { font-size: 16px; max-width: 42ch; }
  .ch-svc__more svg { width: 40px; height: 40px; padding: 9px; }
  .ch-values-block { column-gap: 96px; }
  .ch-value { padding-block: 24px 28px; }
  .ch-value__title { font-size: 21px; }
  .ch-value p { font-size: 15.5px; }

  /* Statements, quotes, cards */
  .ch-statement__title { font-size: 32px; }
  .ch-statement__text { font-size: 17px; }
  .ch-model { column-gap: 96px; }
  .ch-model__quote { font-size: 28px; }
  .ch-matter, .ch-fee { padding: 36px; }
  .ch-matter__title, .ch-fee__title, .ch-facts-grid dt { font-size: 21px; }
  .ch-matter p, .ch-fee p, .ch-facts-grid dd { font-size: 15.5px; }
  .ch-matters-block__intro, .ch-inst-block__head p:not(.ch-eyebrow) { font-size: 17px; }
  .ch-inst li { min-height: 144px; font-size: 20px; }
  .ch-profile__lead { font-size: 24px; }
  .ch-contact__intro { font-size: 26px; }
  .ch-contact__name { font-size: 24px; }
  .ch-contact__list a { font-size: 18px; }
  .ch-related__list a { font-size: 17px; }

  /* Contact band and footer */
  .ch-cta__inner { gap: 20px; }
  .ch-cta__text { font-size: 16px; }
  .ch-cta__mail { font-size: 15px; }
  .ch-footer__lede, .ch-footer__top a, .ch-footer address { font-size: 15px; }
  .ch-footer__heading { font-size: 13px; }
  .ch-footer__bottom { font-size: 14px; }
  .ch-footer .ch-logo img { height: 40px; }
}

/* ── Narrow desktops, tablets in landscape and side panels: one step down ── */
@media (min-width: 861px) and (max-width: 1199px) {
  :root { --section: 84px; --gutter: 28px; }
  .ch-herofull .ch-h1 { font-size: 68px; }
  .ch-pagehero__title { font-size: 46px; }
  .ch-pagehero__inner { padding-block: 76px 68px; }
  .ch-h2, .ch-cta__title { font-size: 34px; }
  .ch-intro__head .ch-h2 { font-size: 30px; }
  .ch-svcs__head .ch-h2 { font-size: 38px; }
  .ch-h3, .ch-pair .ch-h3 { font-size: 25px; }
  .ch-firm__statement { font-size: 25px; }
  .ch-statement__title, .ch-model__quote { font-size: 28px; }
  .ch-figure__value { font-size: 84px; }
  .ch-intro, .ch-firm, .ch-svcs, .ch-values-block, .ch-model, .ch-pair { column-gap: 56px; }
  .ch-nav__links { gap: 22px; font-size: 14.5px; }
}

/* ══ Round 8 · smaller labels sitting close to their headings, quieter links, 15px running text ══ */
.ch-eyebrow { font-size: 10px; letter-spacing: 0.18em; }
.ch-pagehero .ch-eyebrow::before { height: 1.4em; }
/* Label → heading: about 10px instead of 20–28px */
main .ch-eyebrow + * { margin-top: -14px !important; }
.ch-pagehero__inner > .ch-eyebrow + *, .ch-statement > .ch-eyebrow + * { margin-top: -10px !important; }
.ch-cta__inner > .ch-eyebrow + * { margin-top: -8px !important; }

/* Text links ("Conocer la firma", "Nuestra práctica internacional"…): small and quiet */
.ch-link, .ch-link--soft { font-size: 13px; font-weight: 400; letter-spacing: 0.03em; text-underline-offset: 4px; }
.ch-link::after { margin-left: 6px; }

/* Home · first block: one text style for every paragraph */
.ch-firm__sub { color: var(--ink); }
.ch-firm__head { gap: 22px; }

@media (min-width: 861px) {
  .ch-eyebrow { font-size: 9.5px; }
  /* Running text at 15px everywhere */
  .ch-firm__sub, .ch-prose, .ch-intro__body.ch-prose, .ch-pair .ch-prose, .ch-firm__body .ch-prose, .ch-profile .ch-prose,
  .ch-svc__text, .ch-value p, .ch-matter p, .ch-fee p, .ch-facts-grid dd, .ch-cta__text, .ch-statement__text,
  .ch-matters-block__intro, .ch-inst-block__head p:not(.ch-eyebrow) { font-size: 15px; line-height: 1.75; }
  .ch-firm__body { padding-top: 34px; }
}

/* ══ Round 9 · DM Sans with compact headings, Newsreader serif, 14px running text (test) ══ */
:root { --font-sans: "DM Sans", "Helvetica Neue", Arial, sans-serif; --font-serif: "Newsreader", Georgia, "Times New Roman", serif; }
body { font-optical-sizing: auto; }
.ch-h1, .ch-h2, .ch-h3, .ch-cta__title, .ch-pagehero__title, .ch-svc__title, .ch-matter__title, .ch-fee__title,
.ch-value__title, .ch-facts-grid dt, .ch-inst li, .ch-contact__name, .ch-related__list a {
  font-weight: 600; letter-spacing: -0.04em;
}
.ch-herofull .ch-h1, .ch-pagehero__title { letter-spacing: -0.05em; line-height: 0.98; }
.ch-h2, .ch-cta__title { line-height: 1.06; }
.ch-svc__title, .ch-matter__title, .ch-fee__title, .ch-value__title, .ch-facts-grid dt, .ch-inst li, .ch-contact__name { letter-spacing: -0.03em; }
.ch-nav__links, .ch-btn { letter-spacing: 0.01em; }
.ch-btn { letter-spacing: 0.14em; }

/* Home · first block: statement alone on the left, all running text on the right */
.ch-firm { align-items: end; }
.ch-firm__body { padding-top: 0; }
.ch-firm__body .ch-prose { gap: 14px; }

@media (min-width: 861px) {
  .ch-prose, .ch-intro__body.ch-prose, .ch-pair .ch-prose, .ch-firm__body .ch-prose, .ch-profile .ch-prose,
  .ch-svc__text, .ch-value p, .ch-matter p, .ch-fee p, .ch-facts-grid dd, .ch-cta__text, .ch-statement__text,
  .ch-matters-block__intro, .ch-inst-block__head p:not(.ch-eyebrow) { font-size: 14px; line-height: 1.75; }
}
/* Tracking tuned: compact, letters never touching */
.ch-herofull .ch-h1, .ch-pagehero__title { letter-spacing: -0.04em; }
.ch-h2, .ch-cta__title, .ch-h3 { letter-spacing: -0.03em; }
.ch-svc__title, .ch-matter__title, .ch-fee__title, .ch-value__title, .ch-facts-grid dt, .ch-inst li, .ch-contact__name, .ch-related__list a { letter-spacing: -0.02em; }

/* ══ Round 10 · Home hero ══ */
.ch-hero__tags { font-size: 11px; letter-spacing: 0.08em; gap: 6px 10px; }
.ch-hero__tags li + li::before { margin-right: 10px; }
@media (min-width: 861px) {
  .ch-herofull__lines > span { display: inline; white-space: nowrap; }
  .ch-herofull__lines > .ch-h1__last { display: block; }
  .ch-herofull .ch-lead { font-size: 15px; line-height: 1.65; max-width: 34em; }
  .ch-herofull__text { max-width: 1100px; }
}

/* ══ Round 11 · Headings a little more open ══ */
.ch-herofull .ch-h1, .ch-pagehero__title { letter-spacing: -0.025em; }
.ch-h1, .ch-h2, .ch-cta__title, .ch-h3 { letter-spacing: -0.018em; }
.ch-svc__title, .ch-matter__title, .ch-fee__title, .ch-value__title, .ch-facts-grid dt, .ch-inst li, .ch-contact__name, .ch-related__list a { letter-spacing: -0.01em; }

/* ══ Round 12 · Instrument Serif for large serif moments only; every small label in DM Sans ══ */
:root { --font-serif: "Instrument Serif", Georgia, "Times New Roman", serif; }

/* Small labels → sans */
.ch-eyebrow, .ch-lang, .ch-figure__label, .ch-cta__mail, .ch-footer__heading, .ch-footer__bottom, .ch-menu__label,
.ch-hero__tags, .ch-fees-block__note, .ch-contact__label, .ch-contact__note, .ch-svc__more-label { font-family: var(--font-sans); }
.ch-eyebrow { font-size: 10px; font-weight: 600; letter-spacing: 0.16em; }
.ch-hero__tags { font-size: 11px; font-weight: 500; letter-spacing: 0.12em; }
.ch-lang { font-size: 12px; font-weight: 500; letter-spacing: 0.12em; }
.ch-footer__heading { font-size: 11px; font-weight: 600; letter-spacing: 0.16em; }
.ch-footer__bottom { font-size: 13px; }
.ch-menu__label, .ch-contact__label { font-size: 11px; font-weight: 600; letter-spacing: 0.16em; }
.ch-svc__more-label { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; }
.ch-figure__label { font-size: 14px; color: var(--ink-muted); }
.ch-cta__mail, .ch-contact__note, .ch-fees-block__note { font-size: 14px; }

/* Home · second block: statement in sans, both columns start at the top */
.ch-firm { align-items: start; }
.ch-firm__statement { font-family: var(--font-sans); font-weight: 400; letter-spacing: -0.012em; }
@media (min-width: 861px) { .ch-firm__statement { font-size: 26px; line-height: 1.4; } }
@media (max-width: 860px) { .ch-firm__statement { font-size: 22px; line-height: 1.4; } }

/* Instrument Serif runs narrow: large serif moments one step up */
.ch-figure__value { font-weight: 400; letter-spacing: -0.01em; }
.ch-statement__title, .ch-model__quote, .ch-profile__lead, .ch-contact__intro, .ch-svcs__intro { font-weight: 400; letter-spacing: -0.005em; }
.ch-model__quote strong { font-weight: 400; font-style: italic; }
@media (min-width: 861px) {
  .ch-figure__value { font-size: 120px; }
  .ch-statement__title { font-size: 38px; line-height: 1.12; }
  .ch-model__quote { font-size: 34px; line-height: 1.18; }
  .ch-profile__lead { font-size: 29px; line-height: 1.25; }
  .ch-contact__intro { font-size: 31px; line-height: 1.25; }
  .ch-svcs__intro { font-size: 23px; line-height: 1.3; }
}
@media (max-width: 860px) {
  .ch-statement__title { font-size: 32px; }
  .ch-model__quote { font-size: 28px; }
  .ch-profile__lead { font-size: 25px; }
  .ch-contact__intro { font-size: 27px; }
}

/* ══ Round 13 · Compact desktop nav ══ */
@media (min-width: 861px) {
  :root { --nav-height: 64px; }
  .ch-logo img { height: 30px; }
  .ch-nav__inner { gap: 28px; }
  .ch-nav__links { font-size: 14px; gap: 24px; letter-spacing: 0; }
  .ch-nav__links a, .ch-nav__toggle { padding-block: 4px; }
  .ch-nav__chev { width: 9px; height: 9px; }
  .ch-nav__cta { min-height: 30px; padding: 0 13px; font-size: 10px; letter-spacing: 0.16em; }
  .ch-lang { font-size: 11px; }
}

/* ══ Round 14 · Home second block ══ */
.ch-firm__statement { font-weight: 600; letter-spacing: -0.015em; }
@media (min-width: 861px) { .ch-firm__body .ch-prose, .ch-firm__body .ch-prose p { font-size: 14px; line-height: 1.75; } }

/* ══ Round 15 · Home refinements ══ */
/* Services */
.ch-svcs__intro { font-family: var(--font-sans); font-weight: 400; letter-spacing: 0; color: var(--ink-muted); }
@media (min-width: 861px) { .ch-svcs__intro { font-size: 17px; line-height: 1.55; } }
.ch-svc { grid-template-columns: 28px minmax(0, 1fr) auto; }
.ch-svc__icon { width: 19px; height: 19px; margin-top: 6px; color: var(--garnet-700); }
.ch-svc__icon svg { stroke-width: 1.3; }
.ch-svc__more { gap: 10px; }
.ch-svc__more svg { width: 28px; height: 28px; padding: 7px; border-color: rgba(124, 126, 152, 0.35); }
.ch-svc:hover .ch-svc__more svg, .ch-svc:focus-visible .ch-svc__more svg { background: transparent; border-color: var(--navy-700); color: var(--navy-700); transform: translateX(3px); }
.ch-svc__more-label { font-size: 10px; }
@media (max-width: 860px) { .ch-svc { grid-template-columns: 24px minmax(0, 1fr); } .ch-svc__icon { width: 18px; height: 18px; } .ch-svc__more svg { width: 28px; height: 28px; padding: 7px; } }

/* Values and contact band: 12px body copy */
@media (min-width: 861px) {
  .ch-value p { font-size: 12px; line-height: 1.7; }
  .ch-cta__text, .ch-cta__mail { font-size: 12px; line-height: 1.7; }
}
/* Contact band button: outline, small */
.ch-cta .ch-btn { min-height: 32px; padding: 0 14px; background: transparent; border-color: var(--navy-900); color: var(--navy-900); font-size: 10px; letter-spacing: 0.16em; }
.ch-cta .ch-btn::after { content: none; }
.ch-cta .ch-btn:hover { background: var(--navy-900); border-color: var(--navy-900); color: var(--white); }

/* ══ Round 16 · Home second block: label above, both columns aligned at the top ══ */
.ch-firm-wrap { display: grid; gap: 34px; }
main .ch-firm-wrap > .ch-eyebrow + .ch-firm { margin-top: 0 !important; }
.ch-firm { align-items: start; }
.ch-firm__head { gap: 0; }
.ch-firm__statement { margin-top: -6px; } /* cap height of the 26px line meets the top of the 14px text */
@media (max-width: 860px) { .ch-firm-wrap { gap: 18px; } .ch-firm__statement { margin-top: 0; } }

/* ══ Round 17 · Lighter rules in Services and Values, no top rule ══ */
.ch-svcs__list { border-bottom-color: rgba(124, 126, 152, 0.2); }
.ch-svcs__list > li { border-top-color: rgba(124, 126, 152, 0.2); }
.ch-svcs__list > li:first-child { border-top: 0; }
.ch-svcs__list > li:first-child .ch-svc { padding-top: 0; }
.ch-value { border-top-color: rgba(124, 126, 152, 0.2); }
@media (min-width: 861px) { .ch-values > .ch-value:nth-child(-n+2) { border-top: 0; padding-top: 0; } }
@media (max-width: 860px) { .ch-values > .ch-value:first-child { border-top: 0; padding-top: 0; } }
.ch-svcs__list > li:first-child .ch-svc::before { top: 2px; }

/* ══ Round 18 · Transparencia takes one column like the other values ══ */
@media (min-width: 861px) { .ch-value--wide { grid-column: auto; } .ch-value--wide p { max-width: 40ch; } }

/* ══ Round 19 · Services hover: the slash sits in front of the practice name ══ */
.ch-svc::before { display: none; }
.ch-svc:hover, .ch-svc:focus-visible { padding-left: 0; background: none; }
.ch-svc__title::before { content: ""; display: inline-block; width: 2.5px; height: 0.82em; margin-right: 0; vertical-align: -0.06em; background: var(--accent); opacity: 0; transform: skewX(calc(var(--slash-angle) * -1)) scaleY(0.4); transform-origin: bottom; transition: opacity .35s ease, transform .35s cubic-bezier(.22,.61,.36,1), margin-right .35s cubic-bezier(.22,.61,.36,1); }
.ch-svc:hover .ch-svc__title::before, .ch-svc:focus-visible .ch-svc__title::before { opacity: 1; margin-right: 12px; transform: skewX(calc(var(--slash-angle) * -1)) scaleY(1); }
@media (prefers-reduced-motion: reduce) { .ch-svc__title::before { transition: none; } }

/* ══ Round 20 · Mobile hero ══ */
@media (max-width: 860px) {
  .ch-hero__tags { flex-wrap: nowrap; gap: 0 7px; font-size: 9.5px; letter-spacing: 0.06em; white-space: nowrap; }
  .ch-hero__tags li + li::before { margin-right: 7px; }
  .ch-herofull .ch-h1 { font-size: min(78px, 13.6vw); line-height: 1.02; }
  .ch-herofull__text { transform: none; gap: 14px; }
  .ch-herofull .ch-lead { font-size: 15px; line-height: 1.6; max-width: 21em; }
}

/* ══ Round 21 · Mobile hero: larger headline, block slightly above centre ══ */
@media (max-width: 860px) {
  .ch-herofull .ch-h1 { font-size: min(100px, 17.7vw); line-height: 0.98; }
  .ch-herofull__lines > span { white-space: normal; }
  .ch-herofull__text { transform: translateY(calc(var(--hero-h) * -0.05)); }
}

/* ══ Round 22 · Inner pages: no large diagonals, labels tight to their headings ══ */
.ch-pagehero::after, .ch-pagehero::before { display: none; }
.ch-statement::before { display: none; }
.ch-statement { padding-left: 0; }

/* Label → heading: about 6px, whatever the container's own gap */
main :is(.ch-intro__head, .ch-svcs__head, .ch-values-block__head, .ch-model__body, .ch-profile__body, .ch-split__text) > .ch-eyebrow + * { margin-top: -22px !important; }
main :is(.ch-pair__item, .ch-block__head, .ch-statement, .ch-inst-block__head, .ch-matters-block__head, .ch-fees-block__title, .ch-services-block__head) > .ch-eyebrow + * { margin-top: -18px !important; }
main :is(.ch-pagehero__inner, .ch-cta__inner) > .ch-eyebrow + * { margin-top: -14px !important; }
.ch-eyebrow { line-height: 1.2; }

/* ══ Round 23 · Calmer page rhythm ══
   One light ground for content; consecutive light sections are separated by a hairline.
   Service pages open with two dark navy modules (hero + lead statement). */
.ch-pagehero .ch-eyebrow::before { display: none; }
.ch-figures { background: var(--canvas); border-block: 1px solid rgba(124, 126, 152, 0.2); }
:is(.ch-band-paper, .ch-section.ch-band-paper, nav.ch-band-paper) { background: var(--canvas); }
:is(section, nav).ch-band-paper + :is(section, nav).ch-band-paper > .ch-container,
section.ch-section.ch-band-paper + section.ch-band-paper > .ch-container,
section.ch-band-paper + section.ch-section.ch-band-paper > .ch-container { border-top: 1px solid rgba(124, 126, 152, 0.2); }
.ch-related { border-top: 0; }

/* Dark opening on service pages */
.ch-pagehero--navy { background: var(--navy-gradient); }
.ch-band-lead { background: var(--navy-900); }
.ch-pagehero--navy + .ch-band-lead > .ch-container { border-top: 1px solid rgba(255, 255, 255, 0.12); }
.ch-band-lead .ch-statement { margin-inline: 0; max-width: 820px; }
.ch-band-lead .ch-statement__title { color: var(--white); }
.ch-band-lead .ch-eyebrow { color: #9ccaff; }

/* Mobile: more room between the menu and the page label */
@media (max-width: 860px) { .ch-pagehero__inner { padding-block: 108px 64px; } }

/* ══ Round 24 · Service pages: every module dark, type in reverse, serif headings ══ */
.ch-main--dark { --dk-bg: #04074a; --dk-bg-2: #070c5c; --dk-line: rgba(255, 255, 255, 0.12); --dk-text: #dfe3f6; --dk-muted: #aeb5d9; --dk-label: #9ccaff;
  --focus-ring: 0 0 0 2px var(--dk-bg), 0 0 0 4px var(--white); background: var(--dk-bg); color: var(--white); }
.ch-main--dark > section, .ch-main--dark > nav, .ch-main--dark .ch-band-paper, .ch-main--dark .ch-band-navy, .ch-main--dark .ch-band-lead, .ch-main--dark .ch-cta { background: var(--dk-bg); color: var(--white); }
.ch-main--dark .ch-pagehero--navy { background: var(--navy-gradient); }
.ch-main--dark > :is(section, nav) + :is(section, nav) > .ch-container { border-top: 1px solid var(--dk-line) !important; }
.ch-main--dark .ch-eyebrow { color: var(--dk-label); }
.ch-main--dark :is(.ch-h2, .ch-h3, .ch-statement__title, .ch-matter__title, .ch-cta__title, .ch-inst li) { color: var(--white); }
.ch-main--dark :is(.ch-prose, .ch-statement__text, .ch-matter p, .ch-cta__text) { color: var(--dk-text); }
.ch-main--dark :is(.ch-matters-block__intro, .ch-inst-block__head p:not(.ch-eyebrow), .ch-cta__mail) { color: var(--dk-muted); }
.ch-main--dark .ch-link { color: var(--white); }

/* Serif headings on service pages */
.ch-main--dark :is(.ch-h2, .ch-h3, .ch-cta__title, .ch-matter__title) { font-family: var(--font-serif); font-weight: 400; letter-spacing: -0.005em; line-height: 1.08; }
@media (min-width: 861px) {
  .ch-main--dark .ch-h2, .ch-main--dark .ch-cta__title { font-size: 48px; }
  .ch-main--dark .ch-intro__head .ch-h2 { font-size: 40px; }
  .ch-main--dark .ch-h3, .ch-main--dark .ch-pair .ch-h3 { font-size: 34px; }
  .ch-main--dark .ch-matter__title { font-size: 27px; line-height: 1.15; }
}
@media (max-width: 860px) {
  .ch-main--dark .ch-h2, .ch-main--dark .ch-cta__title { font-size: 38px; }
  .ch-main--dark .ch-h3 { font-size: 30px; }
  .ch-main--dark .ch-matter__title { font-size: 25px; }
}

/* Cards and tiles on dark */
.ch-main--dark .ch-matter { background: var(--dk-bg-2); border-top-color: var(--accent); box-shadow: none; }
.ch-main--dark .ch-inst li { background: var(--dk-bg-2); border: 1px solid var(--dk-line); }

/* Other practice areas on dark */
.ch-main--dark .ch-related__list a { color: var(--white); border-top-color: rgba(255, 255, 255, 0.25); }
.ch-main--dark .ch-related__arrow { color: var(--dk-label); }

/* Contact band on dark */
.ch-main--dark .ch-cta { --focus-ring: 0 0 0 2px var(--dk-bg), 0 0 0 4px var(--white); }
.ch-main--dark .ch-cta .ch-btn { background: transparent; border-color: rgba(255, 255, 255, 0.6); color: var(--white); }
.ch-main--dark .ch-cta .ch-btn:hover { background: var(--white); border-color: var(--white); color: var(--navy-900); }
.ch-main--dark + .ch-footer .ch-footer__inner { border-top: 1px solid var(--dk-line); }

/* ══ Round 25 · Contact band on service pages identical to the rest of the site ══ */
.ch-main--dark .ch-cta { --focus-ring: 0 0 0 2px var(--stone-200), 0 0 0 4px var(--navy-700); background: var(--stone-200); color: var(--ink); }
.ch-main--dark > .ch-cta > .ch-container { border-top: 0 !important; }
.ch-main--dark .ch-cta .ch-eyebrow { color: var(--garnet-700); }
.ch-main--dark .ch-cta .ch-cta__title { font-family: var(--font-sans); font-weight: 600; letter-spacing: -0.018em; line-height: 1.06; color: var(--ink); }
@media (min-width: 861px) { .ch-main--dark .ch-cta .ch-cta__title { font-size: 40px; } }
@media (max-width: 860px) { .ch-main--dark .ch-cta .ch-cta__title { font-size: 34px; } }
.ch-main--dark .ch-cta .ch-cta__text { color: var(--ink); }
.ch-main--dark .ch-cta .ch-cta__mail { color: var(--ink-muted); }
.ch-main--dark .ch-cta .ch-btn { background: transparent; border-color: var(--navy-900); color: var(--navy-900); }
.ch-main--dark .ch-cta .ch-btn:hover { background: var(--navy-900); border-color: var(--navy-900); color: var(--white); }
.ch-main--dark + .ch-footer .ch-footer__inner { border-top: 0; }

/* ══ Round 26 · Compact footer: logo + contact, then legal line ══ */
.ch-footer__inner { gap: 28px; padding-block: 44px 24px; }
.ch-footer__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; grid-template-columns: none; }
.ch-footer .ch-logo img { height: 30px; }
.ch-footer__contact { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; font-style: normal; font-size: 14px; line-height: 1.5; }
.ch-footer__contact a { color: var(--white); white-space: nowrap; }
.ch-footer__sep { width: 3px; height: 3px; border-radius: 50%; background: rgba(255, 255, 255, 0.5); }
.ch-footer__bottom { padding-top: 18px; font-size: 12px; gap: 10px 24px; border-top-color: rgba(255, 255, 255, 0.18); }
.ch-footer__bottom ul { gap: 18px; }
@media (max-width: 860px) {
  .ch-footer__inner { gap: 20px; padding-block: 32px 20px; }
  .ch-footer__top { flex-direction: column; align-items: flex-start; gap: 14px; }
  .ch-footer__contact { flex-direction: column; align-items: flex-start; gap: 4px; }
  .ch-footer__sep { display: none; }
  .ch-footer__bottom { flex-direction: column; gap: 8px; padding-top: 14px; }
  .ch-footer__bottom ul { gap: 14px; }
}
.ch-main--dark .ch-cta .ch-cta__mail, .ch-main--dark .ch-cta .ch-cta__mail a { color: var(--ink-muted); }

/* ══ Round 27 · Two-tone headings: second half in a lighter blue ══ */
:is(h1, h2, h3) .ch-accent { color: var(--navy-700); }
:is(.ch-band-brand, .ch-band-navy, .ch-pagehero--dark, .ch-main--dark) :is(h1, h2, h3) .ch-accent { color: #9ccaff; }
.ch-main--dark .ch-cta .ch-accent { color: var(--navy-700); }

/* ══ Round 28 · Mobile EN hero: four-line headline sits a little lower ══ */
@media (max-width: 860px) { html[lang="en"] .ch-herofull__text { transform: translateY(calc(var(--hero-h) * 0.02)); } }

/* ══ Round 29 · Litigation matters: open two-column list, sans titles, quiet text ══ */
.ch-matters { gap: 0 64px; }
.ch-matter, .ch-main--dark .ch-matter { padding: 28px 0 32px; background: none; border-top: 1px solid rgba(255, 255, 255, 0.14); box-shadow: none; gap: 10px; }
.ch-main--dark .ch-matter__title, .ch-matter__title { font-family: var(--font-sans); font-weight: 600; letter-spacing: -0.01em; line-height: 1.3; }
@media (min-width: 861px) { .ch-main--dark .ch-matter__title { font-size: 19px; } }
@media (max-width: 860px) { .ch-main--dark .ch-matter__title { font-size: 18px; } .ch-matters { gap: 0; } }
.ch-main--dark .ch-matter p { color: var(--dk-muted); font-size: 13.5px; line-height: 1.7; max-width: 52ch; }
.ch-matters-block { gap: 40px; }

/* ══ Round 30 · No rules between modules: spacing alone separates sections ══ */
:is(section, nav).ch-band-paper + :is(section, nav).ch-band-paper > .ch-container,
section.ch-section.ch-band-paper + section.ch-band-paper > .ch-container,
section.ch-band-paper + section.ch-section.ch-band-paper > .ch-container,
.ch-main--dark > :is(section, nav) + :is(section, nav) > .ch-container,
.ch-pagehero--navy + .ch-band-lead > .ch-container { border-top: 0 !important; }
.ch-figures { border-block: 0; }

/* ══ Round 31 · Values on stone; contact band in deep navy flowing into the footer (all pages) ══ */
.ch-band-stone { background: var(--stone-200); }
.ch-band-stone .ch-value { border-top-color: rgba(2, 4, 79, 0.14); }
.ch-cta, .ch-main--dark .ch-cta { --focus-ring: 0 0 0 2px #04074a, 0 0 0 4px var(--white); background: #04074a; color: var(--white); }
.ch-cta .ch-eyebrow, .ch-main--dark .ch-cta .ch-eyebrow { color: #9ccaff; }
.ch-cta .ch-cta__title, .ch-main--dark .ch-cta .ch-cta__title { color: var(--white); }
.ch-cta .ch-cta__text, .ch-main--dark .ch-cta .ch-cta__text { color: #dfe3f6; }
.ch-cta .ch-cta__mail, .ch-cta .ch-cta__mail a, .ch-main--dark .ch-cta .ch-cta__mail, .ch-main--dark .ch-cta .ch-cta__mail a { color: #aeb5d9; }
.ch-cta .ch-btn, .ch-main--dark .ch-cta .ch-btn { background: transparent; border-color: rgba(255, 255, 255, 0.6); color: var(--white); }
.ch-cta .ch-btn:hover, .ch-main--dark .ch-cta .ch-btn:hover { background: var(--white); border-color: var(--white); color: var(--navy-900); }
.ch-footer { background: #04074a; }
.ch-footer__inner { border-top: 1px solid rgba(255, 255, 255, 0.12); }
.ch-footer__bottom { border-top: 0; padding-top: 0; }

/* ══ Round 32 · Footer even more compact, softer type ══ */
.ch-footer__inner { gap: 14px; padding-block: 28px 20px; }
.ch-footer .ch-logo img { height: 26px; opacity: 0.85; }
.ch-footer__contact { font-size: 13px; gap: 4px 14px; }
.ch-footer__contact a { color: #c3cbef; }
.ch-footer__sep { background: rgba(156, 202, 255, 0.5); }
.ch-footer__bottom { font-size: 11.5px; color: #7f88bd; }
.ch-footer__bottom a { color: #7f88bd; }
.ch-footer a:hover { color: var(--white); }
@media (max-width: 860px) {
  .ch-footer__inner { gap: 12px; padding-block: 24px 18px; }
  .ch-footer__top { gap: 10px; }
  .ch-footer__contact { gap: 2px; }
  .ch-footer__bottom { gap: 6px; }
}

/* ══ Round 33 · Contact page opens directly on the contact block ══ */
.ch-sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.ch-contact-page { padding-block: 120px 128px; }
.ch-contact-page .ch-contact { align-items: center; }
@media (max-width: 860px) { .ch-contact-page { padding-block: 48px 64px; } }
body { min-height: 100svh; display: flex; flex-direction: column; }
body > main { flex: 1 0 auto; }
.ch-contact-page { min-height: 100%; display: flex; align-items: center; }
.ch-contact-page > .ch-container { width: 100%; }
main:has(> .ch-contact-page) { display: flex; flex-direction: column; }
main:has(> .ch-contact-page) > .ch-contact-page { flex: 1; }

/* ══ Round 34 · Inner pages: the module before Contact in a mid navy ══ */
main:not(:has(.ch-herofull)) > :is(section, nav):has(+ .ch-cta) {
  --mid: #142086;
  --focus-ring: 0 0 0 2px var(--mid), 0 0 0 4px var(--white);
  background: var(--mid) !important; color: var(--white);
}
main:not(:has(.ch-herofull)) > :is(section, nav):has(+ .ch-cta) :is(.ch-eyebrow) { color: #9ccaff; }
main:not(:has(.ch-herofull)) > :is(section, nav):has(+ .ch-cta) :is(h2, h3, dt, .ch-fee__title, .ch-related__list a) { color: var(--white); }
main:not(:has(.ch-herofull)) > :is(section, nav):has(+ .ch-cta) :is(.ch-prose, .ch-fee p, dd, p:not(.ch-eyebrow)) { color: #dfe3f6; }
main:not(:has(.ch-herofull)) > :is(section, nav):has(+ .ch-cta) .ch-fee { background: rgba(255, 255, 255, 0.06); border-top-color: #9ccaff; }
main:not(:has(.ch-herofull)) > :is(section, nav):has(+ .ch-cta) .ch-fees-block__note { color: #c3cbef; border-left-color: #9ccaff; }
main:not(:has(.ch-herofull)) > :is(section, nav):has(+ .ch-cta) .ch-facts-grid > div,
main:not(:has(.ch-herofull)) > :is(section, nav):has(+ .ch-cta) .ch-related__list a { border-top-color: rgba(255, 255, 255, 0.22); }
main:not(:has(.ch-herofull)) > :is(section, nav):has(+ .ch-cta) .ch-related__arrow { color: #9ccaff; }
main:not(:has(.ch-herofull)) > :is(section, nav):has(+ .ch-cta) .ch-link { color: var(--white); }
/* More air before the contact band */
main:not(:has(.ch-herofull)) > .ch-cta .ch-cta__inner { padding-block: calc(var(--section) * 1.25); }

/* ══ Round 35 · Service pages: lower half in mid navy ══ */
.ch-main--dark .ch-mid { --dk-bg-2: rgba(255, 255, 255, 0.06); background: #142086 !important; --focus-ring: 0 0 0 2px #142086, 0 0 0 4px var(--white); }
.ch-main--dark .ch-mid .ch-inst li { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.16); }
.ch-main--dark .ch-mid .ch-matter { border-top-color: rgba(255, 255, 255, 0.18); }
.ch-main--dark .ch-mid :is(.ch-matter p, .ch-matters-block__intro, .ch-inst-block__head p:not(.ch-eyebrow)) { color: #c3cbef; }
@media (max-width: 860px) { main > .ch-section.ch-contact-page { padding-block: 108px 72px; align-items: flex-start; } }
@media (max-width: 860px) { .ch-contact__card { padding: 32px 24px; } .ch-contact__list a { font-size: 15.5px; overflow-wrap: normal; white-space: nowrap; } }

/* ══ Round 37 · Home: founder module ══ */
.ch-founder__inner { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 96px; align-items: center; }
.ch-founder__photo { margin: 0; background: var(--surface); }
.ch-founder__photo img { display: block; width: 100%; height: auto; aspect-ratio: 1182 / 1330; object-fit: cover; }
.ch-founder__body { display: grid; gap: 14px; justify-items: start; max-width: 30em; }
main .ch-founder__body > .ch-eyebrow + * { margin-top: -6px !important; }
.ch-founder__name { font-weight: 600; font-size: 40px; line-height: 1.08; letter-spacing: -0.018em; }
.ch-founder__role { font-size: 14px; color: var(--ink-muted); margin-top: -6px; }
.ch-founder__text { font-size: 14px; line-height: 1.75; color: var(--ink); margin-top: 14px; }
@media (max-width: 860px) {
  .ch-founder__inner { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .ch-founder__name { font-size: 32px; }
}

/* ══ Round 38 · Source Serif 4 headings + Source Sans 3 text, cool grey-blue neutrals, tighter rhythm ══ */
:root {
  --font-sans: "Source Sans 3", "Helvetica Neue", Arial, sans-serif;
  --font-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --paper: #f5f7fa;        /* near-white with a faint blue cast */
  --paper-deep: #edf1f5;   /* one step cooler */
  --paper-line: #dce3ea;
  --stone-200: #e4e9ef;    /* grey-blue band (was warm stone) */
  --canvas: var(--paper); --surface: var(--paper-deep); --line: var(--paper-line);
}
body { background: var(--canvas); font-optical-sizing: auto; }

/* Headings in Source Serif 4, regular weight, gently tightened */
.ch-h1, .ch-h2, .ch-h3, .ch-pagehero__title, .ch-herofull .ch-h1, .ch-cta__title, .ch-svc__title, .ch-fee__title, .ch-value__title,
.ch-facts-grid dt, .ch-founder__name, .ch-contact__name, .ch-firm__statement, .ch-statement__title, .ch-model__quote, .ch-profile__lead,
.ch-contact__intro, .ch-inst li, .ch-main--dark :is(.ch-h2, .ch-h3, .ch-cta__title), .ch-main--dark .ch-cta .ch-cta__title {
  font-family: var(--font-serif); font-weight: 400; letter-spacing: -0.018em;
}
.ch-herofull .ch-h1, .ch-pagehero__title { letter-spacing: -0.03em; line-height: 1; }
.ch-firm__statement { font-weight: 400; line-height: 1.38; }
.ch-model__quote strong { font-style: italic; font-weight: 400; }
/* Litigation matters keep the sans semibold the client asked for */
.ch-main--dark .ch-matter__title, .ch-matter__title { font-family: var(--font-sans); font-weight: 600; letter-spacing: 0; }
.ch-related__list a { font-family: var(--font-sans); font-weight: 600; letter-spacing: 0; }

@media (min-width: 861px) {
  :root { --section: 88px; }
  .ch-herofull .ch-h1 { font-size: 92px; }
  .ch-pagehero__title { font-size: 60px; }
  .ch-pagehero__inner { padding-block: 80px 68px; }
  .ch-h2, .ch-cta__title, .ch-main--dark .ch-cta .ch-cta__title, .ch-svcs__head .ch-h2, .ch-founder__name { font-size: 42px; line-height: 1.12; }
  .ch-main--dark .ch-h2 { font-size: 44px; }
  .ch-intro__head .ch-h2, .ch-main--dark .ch-intro__head .ch-h2 { font-size: 36px; line-height: 1.16; }
  .ch-h3, .ch-pair .ch-h3, .ch-main--dark .ch-h3 { font-size: 30px; line-height: 1.2; }
  .ch-svc__title { font-size: 25px; }
  .ch-value__title, .ch-fee__title, .ch-facts-grid dt { font-size: 23px; }
  .ch-firm__statement { font-size: 28px; }
  .ch-statement__title { font-size: 36px; }
  .ch-svc { padding-block: 28px; }
  .ch-value { padding-block: 18px 24px; }
  .ch-founder__inner { gap: 80px; }
  .ch-cta__inner { padding-block: 72px; }
  main:not(:has(.ch-herofull)) > .ch-cta .ch-cta__inner { padding-block: 88px; }
}
@media (min-width: 861px) and (max-width: 1199px) { :root { --section: 72px; } .ch-herofull .ch-h1 { font-size: 72px; } }
@media (max-width: 860px) { :root { --section: 36px; } .ch-herofull .ch-h1 { letter-spacing: -0.03em; } .ch-pagehero__title { font-size: 44px; } }

/* Labels and UI in Source Sans 3 */
.ch-eyebrow { font-size: 10.5px; letter-spacing: 0.2em; }
.ch-nav__links { font-size: 14px; font-weight: 500; }
.ch-btn { font-weight: 600; }

/* No icons: services list reads as text only */
.ch-svc { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "title more" "text more"; }
.ch-svc__more-label { opacity: 1; transform: none; font-size: 11px; color: var(--navy-700); }
.ch-svc__more-label::after { content: " →"; letter-spacing: 0; }
.ch-svc:hover .ch-svc__more-label::after { margin-left: 3px; }
@media (max-width: 860px) { .ch-svc { grid-template-columns: minmax(0, 1fr); grid-template-areas: "title" "text" "more"; } }

/* Neutral surfaces that were warm */
.ch-band-stone .ch-value { border-top-color: rgba(2, 4, 79, 0.12); }
.ch-founder__photo, .ch-profile__photo, .ch-model__photo { background: var(--surface); }
.ch-nav:not(.ch-nav--over), .ch-nav--over.is-solid { background: var(--canvas); }

/* ══ Round 39 · Compact: smaller type steps, less vertical padding, shorter media ══ */
@media (min-width: 861px) {
  :root { --section: 68px; }
  .ch-herofull { --hero-h: clamp(560px, 86svh, 860px); }
  .ch-herofull .ch-h1 { font-size: 80px; }
  .ch-pagehero__inner { padding-block: 60px 52px; gap: 16px; }
  .ch-pagehero__title { font-size: 52px; }
  .ch-pagehero__lead { font-size: 16.5px; }
  .ch-h2, .ch-cta__title, .ch-main--dark .ch-cta .ch-cta__title, .ch-svcs__head .ch-h2, .ch-founder__name, .ch-main--dark .ch-h2 { font-size: 36px; }
  .ch-intro__head .ch-h2, .ch-main--dark .ch-intro__head .ch-h2 { font-size: 31px; }
  .ch-h3, .ch-pair .ch-h3, .ch-main--dark .ch-h3 { font-size: 26px; }
  .ch-firm__statement { font-size: 25px; }
  .ch-statement__title { font-size: 31px; }
  .ch-model__quote { font-size: 29px; }
  .ch-profile__lead { font-size: 25px; }
  .ch-svc__title { font-size: 22px; }
  .ch-value__title, .ch-fee__title, .ch-facts-grid dt { font-size: 20px; }
  .ch-svc { padding-block: 20px; row-gap: 6px; }
  .ch-svcs__list > li:first-child .ch-svc { padding-top: 0; }
  .ch-value { padding-block: 14px 18px; gap: 6px; }
  .ch-matter { padding-block: 20px 22px !important; }
  .ch-facts-grid > div { padding-block: 18px 22px; }
  .ch-fee { padding: 28px; }
  .ch-matters-block, .ch-inst-block, .ch-block, .ch-fees-block { gap: 32px; }
  .ch-inst li { min-height: 110px; padding: 22px 26px; }
  .ch-pair { row-gap: 32px; }
  /* Media shorter */
  .ch-founder__inner { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 72px; }
  .ch-founder__photo img { aspect-ratio: 5 / 5; object-position: 50% 30%; }
  .ch-band-brand .ch-cutframe { aspect-ratio: 16 / 10; }
  .ch-model { grid-template-columns: minmax(0, 3fr) minmax(0, 8fr); }
  .ch-profile { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
  .ch-cta__inner { padding-block: 56px; gap: 16px; }
  main:not(:has(.ch-herofull)) > .ch-cta .ch-cta__inner { padding-block: 68px; }
  .ch-related__inner { padding-block: 44px; }
  .ch-contact-page { padding-block: 80px 88px; }
}
@media (max-width: 860px) {
  :root { --section: 30px; }
  .ch-herofull { --hero-h: clamp(520px, 88svh, 780px); }
  .ch-pagehero__inner { padding-block: 96px 40px; }
  .ch-pagehero__title { font-size: 38px; }
  .ch-h2, .ch-cta__title, .ch-main--dark .ch-h2, .ch-main--dark .ch-cta .ch-cta__title, .ch-svcs__head .ch-h2, .ch-founder__name { font-size: 30px; }
  .ch-h3, .ch-pair .ch-h3, .ch-main--dark .ch-h3 { font-size: 24px; }
  .ch-intro__head .ch-h2 { font-size: 27px; }
  .ch-intro, .ch-split, .ch-firm, .ch-values-block, .ch-model, .ch-svcs, .ch-founder__inner, .ch-contact { gap: 18px !important; }
  .ch-svc { padding-block: 18px; }
  .ch-value, .ch-matter { padding-block: 14px 16px !important; }
  .ch-founder__photo img, .ch-model__photo img, .ch-profile__photo img { aspect-ratio: 4 / 3; object-position: 50% 25%; }
  .ch-model__photo { max-width: none; }
  .ch-band-brand .ch-cutframe { aspect-ratio: 16 / 10; }
  .ch-cta__inner { padding-block: 44px; }
  .ch-related__inner { padding-block: 28px; }
  .ch-prose, .ch-prose p, .ch-value p, .ch-matter p, .ch-svc__text { font-size: 14.5px; line-height: 1.65; }
}
@media (max-width: 860px) { .ch-profile__lead, .ch-contact__intro, .ch-model__quote { font-size: 21px; line-height: 1.35; } .ch-firm__statement { font-size: 21px; } .ch-statement__title { font-size: 26px; } }
.ch-herofull .ch-h1 .ch-h1__mid { color: #2f9be6; }

/* ══ Round 41 · Mobile hero: darker, bluer, tighter crop on the bridge ══ */
@media (max-width: 860px) {
  .ch-herofull__video { inset: 0; height: 100%; object-position: 50% 30%; transform: scale(1.35); transform-origin: 50% 32%; animation: none; }
  .ch-herofull::before { background: linear-gradient(180deg, rgba(2, 4, 50, 0.55) 0%, rgba(2, 4, 50, 0.35) 50%, rgba(2, 4, 50, 0.6) 100%), rgba(8, 24, 110, 0.38); }
}

/* ══ Round 42 · Home services on a soft blue-grey ══ */
#servicios.ch-band-paper { background: #e8eef5; }
#servicios .ch-svcs__list > li, #servicios .ch-svcs__list { border-color: rgba(2, 4, 79, 0.1); }

/* ══ Round 43 · Hero veil matched to the reference: navy directional gradient + blue multiply tint ══ */
.ch-herofull::before {
  background:
    linear-gradient(90deg, rgba(9, 25, 46, 0.80) 0%, rgba(11, 32, 60, 0.62) 34%, rgba(14, 42, 78, 0.34) 66%, rgba(14, 42, 78, 0.18) 100%),
    linear-gradient(180deg, rgba(9, 25, 46, 0.30) 0%, rgba(9, 25, 46, 0) 22%, rgba(9, 25, 46, 0) 70%, rgba(9, 25, 46, 0.45) 100%);
}
.ch-herofull::after { content: ""; position: absolute; inset: 0; z-index: -1; background: #1d5fa8; opacity: 0.30; mix-blend-mode: multiply; pointer-events: none; }
.ch-herofull { background: #11233a; }
@media (max-width: 860px) {
  .ch-herofull::before { background: linear-gradient(0deg, rgba(10, 26, 46, 0.9) 0%, rgba(12, 32, 58, 0.62) 55%, rgba(16, 44, 80, 0.38) 100%), rgba(22, 62, 112, 0.28); }
}

/* ══ Round 44 · Quieter eyebrows and "Ver práctica" ══ */
.ch-eyebrow { font-size: 10px; font-weight: 500; letter-spacing: 0.18em; color: rgba(107, 42, 46, 0.72); }
:is(.ch-band-brand, .ch-band-navy, .ch-pagehero--dark, .ch-main--dark, .ch-cta) .ch-eyebrow,
main:not(:has(.ch-herofull)) > :is(section, nav):has(+ .ch-cta) .ch-eyebrow { color: rgba(156, 202, 255, 0.75); }
.ch-svc__more-label { font-size: 10px; font-weight: 500; letter-spacing: 0.14em; color: var(--slate-400); }
.ch-svc:hover .ch-svc__more-label, .ch-svc:focus-visible .ch-svc__more-label { color: var(--navy-700); }

/* ══ Round 45 · Secondary text links quieter ══ */
.ch-link, .ch-link--soft, .ch-link--quiet { font-size: 12px; font-weight: 400; letter-spacing: 0.04em; opacity: 0.8; }
.ch-link--quiet { color: var(--slate-600); }
.ch-link:hover { opacity: 1; }
.ch-founder__text { margin-top: 8px; }

/* ══ Round 46 · Service names in sans semibold, a step larger ══ */
.ch-svc__title { font-family: var(--font-sans); font-weight: 600; letter-spacing: -0.005em; line-height: 1.25; }
@media (min-width: 861px) { .ch-svc__title { font-size: 24px; } }
@media (max-width: 860px) { .ch-svc__title { font-size: 21px; } }

/* ══ Round 47 · One scale for home and inner pages ══
   Module heading: serif 36 · serif lead/quote: 25 · item title: sans 600 20 (services 24) · text: 14 · labels 10 */
.ch-matter__title, .ch-main--dark .ch-matter__title, .ch-fee__title, .ch-facts-grid dt, .ch-value__title, .ch-related__list a, .ch-contact__name {
  font-family: var(--font-sans); font-weight: 600; letter-spacing: -0.005em; line-height: 1.3;
}
@media (min-width: 861px) {
  .ch-h2, .ch-intro__head .ch-h2, .ch-main--dark .ch-h2, .ch-main--dark .ch-intro__head .ch-h2, .ch-statement__title, .ch-main--dark .ch-statement__title { font-size: 36px; line-height: 1.14; }
  .ch-pair .ch-h3, .ch-main--dark .ch-pair .ch-h3, .ch-h3 { font-size: 30px; line-height: 1.18; }
  .ch-firm__statement, .ch-model__quote, .ch-profile__lead, .ch-contact__intro { font-size: 25px; line-height: 1.38; }
  .ch-matter__title, .ch-main--dark .ch-matter__title, .ch-fee__title, .ch-facts-grid dt, .ch-value__title, .ch-related__list a { font-size: 20px; }
  .ch-contact__name { font-size: 22px; }
  .ch-pagehero__lead { font-size: 15px; line-height: 1.6; }
  .ch-contact__list a { font-size: 16px; }
  .ch-statement { gap: 18px; }
}
@media (max-width: 860px) {
  .ch-h2, .ch-intro__head .ch-h2, .ch-main--dark .ch-h2, .ch-statement__title, .ch-main--dark .ch-statement__title { font-size: 30px; line-height: 1.15; }
  .ch-pair .ch-h3, .ch-h3, .ch-main--dark .ch-h3 { font-size: 25px; }
  .ch-firm__statement, .ch-model__quote, .ch-profile__lead, .ch-contact__intro { font-size: 21px; }
  .ch-matter__title, .ch-main--dark .ch-matter__title, .ch-fee__title, .ch-facts-grid dt, .ch-value__title, .ch-related__list a { font-size: 18px; }
  .ch-pagehero__lead { font-size: 15px; }
}

/* ══ Round 48 · Equipo: profile block in positive on a soft blue ══ */
main:not(:has(.ch-herofull)) > section[aria-labelledby="profile-title"] { background: #e8eef5 !important; color: var(--ink); --focus-ring: 0 0 0 2px #e8eef5, 0 0 0 4px var(--navy-700); }
main:not(:has(.ch-herofull)) > section[aria-labelledby="profile-title"] .ch-eyebrow { color: rgba(107, 42, 46, 0.72); }
main:not(:has(.ch-herofull)) > section[aria-labelledby="profile-title"] :is(h2, h3, dt) { color: var(--ink); }
main:not(:has(.ch-herofull)) > section[aria-labelledby="profile-title"] :is(dd, p:not(.ch-eyebrow)) { color: var(--ink); }
main:not(:has(.ch-herofull)) > section[aria-labelledby="profile-title"] .ch-facts-grid > div { border-top-color: rgba(2, 4, 79, 0.12); }
main > section[aria-labelledby="profile-title"] :is(h2, h3) { color: var(--ink) !important; }
main > section[aria-labelledby="profile-title"] dt { color: var(--navy-700) !important; }
main > section[aria-labelledby="profile-title"] :is(dd, p:not(.ch-eyebrow)) { color: var(--slate-600) !important; }
main > section[aria-labelledby="profile-title"] .ch-eyebrow { color: rgba(107, 42, 46, 0.72) !important; }
.ch-herofull .ch-h1 { letter-spacing: -0.04em; line-height: 0.96; } .ch-herofull .ch-h1 .ch-h1__mid { letter-spacing: -0.04em; }
.ch-herofull .ch-h1 .ch-h1__mid { color: inherit; } .ch-herofull .ch-h1 .ch-h1__last { color: #2f9be6; }
.ch-founder__photo img { aspect-ratio: 4 / 5 !important; object-position: 50% 20%; } @media (min-width: 861px) { .ch-founder__inner { grid-template-columns: minmax(0, 3.6fr) minmax(0, 7fr); } }

/* ══ Round 49 · Home intro as in the reference: text left, Christian right ══ */
.ch-intro2 { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4.4fr); gap: 80px; align-items: center; }
.ch-intro2__text { display: grid; gap: 16px; justify-items: start; min-width: 0; }
main .ch-intro2__text > .ch-eyebrow + * { margin-top: -4px !important; }
.ch-intro2__text .ch-firm__statement { margin: 0 0 6px; }
.ch-intro2__text .ch-prose { max-width: 40em; }
.ch-intro2__photo { margin: 0; background: var(--surface); }
.ch-intro2__photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 20%; }
@media (max-width: 860px) { .ch-intro2 { grid-template-columns: minmax(0, 1fr); gap: 24px; } .ch-intro2__photo img { aspect-ratio: 4 / 3.4; } }
.ch-svc__title::before { width: 0; } .ch-svc:hover .ch-svc__title::before, .ch-svc:focus-visible .ch-svc__title::before { width: 2.5px; }

/* ══ Round 50 · Services and Values: heading tops aligned with the right column; label raised above ══ */
@media (min-width: 861px) {
  .ch-svcs__head, .ch-values-block__head { position: relative; display: block; }
  .ch-svcs__head > .ch-eyebrow { position: absolute; left: 0; bottom: 100%; margin: 0 0 14px; }
  main .ch-svcs__head > .ch-eyebrow + * { margin-top: 0 !important; }
  .ch-svcs__head .ch-h2, .ch-values-block__head .ch-h2 { margin: 0; }
  .ch-values > .ch-value:nth-child(-n+2) { padding-top: 0; }
}
@media (min-width: 861px) { .ch-svcs__head { top: 0; } .ch-svcs__head .ch-h2 { margin-top: -3px; } }

/* ══ Round 51 · Sticky services heading back; smoother motion ══ */
@media (min-width: 861px) {
  .ch-svcs__head { position: sticky; top: calc(var(--nav-height) + 56px); }
  .ch-svcs { align-items: start; }
}
.ch-fade { opacity: 0; transform: translateY(14px); transition: opacity .9s cubic-bezier(.22,.61,.36,1), transform .9s cubic-bezier(.22,.61,.36,1); }
.ch-fade.is-in { opacity: 1; transform: none; }
.ch-reveal { clip-path: inset(0 0 12% 0); opacity: 0; transform: translateY(18px); transition: clip-path 1.2s cubic-bezier(.22,.61,.36,1), opacity 1s ease, transform 1.2s cubic-bezier(.22,.61,.36,1); }
.ch-reveal.is-in { clip-path: inset(0 0 0 0); opacity: 1; transform: none; }
.ch-reveal img { transition: transform 1.6s cubic-bezier(.22,.61,.36,1); transform: scale(1.04); }
.ch-reveal.is-in img { transform: none; }
.ch-herofull__video { will-change: transform; }
/* Hover polish */
a.ch-svc, .ch-related__list a, .ch-link, .ch-btn { transition: color .3s ease, background-color .3s ease, border-color .3s ease, opacity .3s ease; }
.ch-nav--over { transition: background-color .4s ease, box-shadow .4s ease, transform .4s ease; }
@media (prefers-reduced-motion: reduce) {
  .ch-fade, .ch-reveal, .ch-reveal img { opacity: 1 !important; transform: none !important; clip-path: none !important; transition: none !important; }
}

/* ══ Round 52 · Values arrive one by one, the rule above each drawing in ══ */
.ch-value { position: relative; border-top-color: transparent !important; }
.ch-value::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: rgba(2, 4, 79, 0.12); transform-origin: left; }
.ch-values > .ch-value:nth-child(-n+2)::before { display: none; }
@media (max-width: 860px) { .ch-values > .ch-value:nth-child(2)::before { display: block; } }
.ch-value.ch-fade { transform: translateY(22px); transition: opacity 1.2s cubic-bezier(.22,.61,.36,1), transform 1.2s cubic-bezier(.22,.61,.36,1); }
.ch-value.ch-fade::before { transform: scaleX(0); transition: transform 1.4s cubic-bezier(.22,.61,.36,1) var(--d, 0s); }
.ch-value.ch-fade.is-in { transform: none; }
.ch-value.ch-fade.is-in::before { transform: scaleX(1); }
.ch-value.ch-fade p { opacity: 0; transition: opacity 1.2s ease; }
.ch-value.ch-fade.is-in p { opacity: 1; transition-delay: calc(var(--d, 0s) + .2s); }
@media (prefers-reduced-motion: reduce) { .ch-value.ch-fade p { opacity: 1 !important; } .ch-value::before { transform: none !important; } }

/* ══ Round 53 · Desktop: services in a 2 × 2 grid ══ */
@media (min-width: 861px) {
  .ch-svcs__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 56px; border-bottom: 0; }
  .ch-svcs__list > li { border-top: 1px solid rgba(2, 4, 79, 0.1); }
  .ch-svcs__list > li:nth-child(-n+2) { border-top: 0; }
  .ch-svcs__list > li:nth-child(-n+2) .ch-svc { padding-top: 0; }
  .ch-svc { height: 100%; box-sizing: border-box; grid-template-columns: minmax(0, 1fr); grid-template-areas: "title" "text" "more"; grid-template-rows: auto 1fr auto; row-gap: 10px; padding-block: 28px 32px; }
  .ch-svc__text { max-width: none; }
  .ch-svc__more { justify-self: start; margin-top: 6px; }
  .ch-svcs__head { position: relative; top: 0; }
}

/* ══ Round 54 · Value names in serif ══ */
.ch-value__title { font-family: var(--font-serif); font-weight: 400; letter-spacing: -0.012em; line-height: 1.2; }
@media (min-width: 861px) { .ch-value__title { font-size: 24px; } }
@media (max-width: 860px) { .ch-value__title { font-size: 22px; } }

/* ══ Round 55 · Service names always carry the blue slash; hover underlines lightly ══ */
.ch-svc__title::before, .ch-svc:hover .ch-svc__title::before, .ch-svc:focus-visible .ch-svc__title::before { width: 2.5px; opacity: 1; margin-right: 12px; transform: skewX(calc(var(--slash-angle) * -1)); transition: none; }
.ch-svc .ch-svc__title { text-decoration: underline; text-decoration-color: transparent; text-decoration-thickness: 1px; text-underline-offset: 6px; transition: text-decoration-color .35s ease, color .35s ease; }
.ch-svc:hover .ch-svc__title, .ch-svc:focus-visible .ch-svc__title { text-decoration-color: rgba(1, 64, 119, 0.45); }


/* ══ Round 57 · Inner pages follow the home scale ══
   Page title 44 · module heading 36 · sub-heading 30 · item title sans 600 24 · text 14 · links 12 quiet · no module eyebrows */
main:not(:has(.ch-herofull)) section:not(.ch-pagehero) .ch-eyebrow { display: none; }
main:not(:has(.ch-herofull)) section:not(.ch-pagehero) .ch-eyebrow + * { margin-top: 0 !important; }
.ch-fees-block__title { gap: 0; }
@media (min-width: 861px) {
  .ch-pagehero__title { font-size: 44px; line-height: 1.06; letter-spacing: -0.025em; }
  .ch-pagehero__inner { padding-block: 56px 48px; gap: 14px; }
  .ch-matter__title, .ch-main--dark .ch-matter__title, .ch-fee__title, .ch-facts-grid dt { font-size: 24px; line-height: 1.25; }
  .ch-matter p, .ch-main--dark .ch-matter p, .ch-main--dark .ch-mid .ch-matter p { font-size: 14px; }
}
@media (max-width: 860px) {
  .ch-pagehero__title { font-size: 36px; }
  .ch-matter__title, .ch-main--dark .ch-matter__title, .ch-fee__title, .ch-facts-grid dt { font-size: 21px; }
}
/* Links: one quiet style everywhere */
main .ch-link { color: var(--slate-600); }
:is(.ch-band-brand, .ch-band-navy, .ch-main--dark) .ch-link, main:not(:has(.ch-herofull)) > :is(section, nav):has(+ .ch-cta) .ch-link { color: #9ccaff; }

/* ══ Round 58 · Internacional: four topics in a 2 × 2 grid ══ */
.ch-intl-grid .ch-pair { row-gap: 0; }
.ch-intl-grid .ch-pair__item { padding-block: 0 44px; }
.ch-intl-grid .ch-pair__item:nth-child(n+3) { padding-top: 40px; border-top: 1px solid rgba(2, 4, 79, 0.1); padding-bottom: 0; }
@media (max-width: 860px) { .ch-intl-grid .ch-pair__item, .ch-intl-grid .ch-pair__item:nth-child(n+3) { padding-block: 24px; border-top: 1px solid rgba(2, 4, 79, 0.1); } .ch-intl-grid .ch-pair__item:first-child { border-top: 0; padding-top: 0; } }

/* ══ Round 59 · Inner sub-headings at the size of the home service names ══ */
main:not(:has(.ch-herofull)) :is(.ch-pair .ch-h3, .ch-intro__head .ch-h2, .ch-statement__title) {
  font-family: var(--font-sans); font-weight: 600; letter-spacing: -0.005em; line-height: 1.25; font-size: 24px;
}
.ch-main--dark :is(.ch-pair .ch-h3, .ch-intro__head .ch-h2, .ch-statement__title) { font-family: var(--font-serif) !important; font-weight: 400 !important; font-size: 28px !important; line-height: 1.2 !important; letter-spacing: -0.012em !important; }
main:not(:has(.ch-herofull)) .ch-model__quote, main:not(:has(.ch-herofull)) .ch-profile__lead { font-size: 22px; line-height: 1.4; }
main:not(:has(.ch-herofull)) :is(.ch-h2):not(.ch-intro__head .ch-h2) { font-size: 32px; }
@media (max-width: 860px) {
  main:not(:has(.ch-herofull)) :is(.ch-pair .ch-h3, .ch-intro__head .ch-h2, .ch-statement__title) { font-size: 21px; }
  .ch-main--dark :is(.ch-pair .ch-h3, .ch-intro__head .ch-h2, .ch-statement__title) { font-size: 24px !important; }
  main:not(:has(.ch-herofull)) :is(.ch-h2):not(.ch-intro__head .ch-h2) { font-size: 28px; }
  main:not(:has(.ch-herofull)) .ch-model__quote, main:not(:has(.ch-herofull)) .ch-profile__lead { font-size: 20px; }
}
.ch-statement { gap: 14px; }

/* ══ Round 60 · La Firma: tighter, more structured ══ */
@media (min-width: 861px) {
  main:has(.ch-fees-row) { --section: 60px; }
  main:has(.ch-fees-row) .ch-split { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 72px; }
  main:has(.ch-fees-row) .ch-split .ch-h2 { font-size: 30px; line-height: 1.15; }
  main:has(.ch-fees-row) .ch-split__text { gap: 18px; }
  main:has(.ch-fees-row) .ch-band-brand .ch-cutframe { aspect-ratio: 4 / 3; }
  main:has(.ch-fees-row) .ch-model { grid-template-columns: minmax(0, 2.6fr) minmax(0, 8fr); gap: 64px; }
  main:has(.ch-fees-row) .ch-model__body { gap: 18px; }
  main:has(.ch-fees-row) .ch-model__quote { font-size: 21px; }
  main:has(.ch-fees-row) .ch-fees-block { gap: 28px; }
  main:has(.ch-fees-row) .ch-fees-block .ch-h2 { font-size: 28px; }
  main:has(.ch-fees-row) .ch-fee { padding: 26px 28px; gap: 10px; }
  main:has(.ch-fees-row) .ch-fee__title { font-size: 20px; }
  main:has(.ch-fees-row) .ch-fees-block__note { font-size: 13px; }
  main:has(.ch-fees-row) .ch-pagehero__inner { padding-block: 52px 44px; }
}
@media (max-width: 860px) {
  main:has(.ch-fees-row) .ch-split .ch-h2, main:has(.ch-fees-row) .ch-fees-block .ch-h2 { font-size: 24px; }
  main:has(.ch-fees-row) .ch-fee { padding: 22px; }
  main:has(.ch-fees-row) .ch-fee__title { font-size: 19px; }
}

/* ══ Round 61 · Test: Google Sans as the sans ══ */
:root { --font-sans: "Google Sans", "Helvetica Neue", Arial, sans-serif; }
body { font-optical-sizing: auto; }

/* ══ Round 62 · Test: heavier serif on main headings for contrast ══ */
.ch-herofull .ch-h1, .ch-pagehero__title, main .ch-h2:not(.ch-intro__head .ch-h2), .ch-svcs__head .ch-h2 { font-weight: 600; }
.ch-herofull .ch-h1 { letter-spacing: -0.035em; }
.ch-pagehero__title, main .ch-h2 { letter-spacing: -0.02em; }

/* ══ Round 63 · Test: menu in capitals ══ */
@media (min-width: 961px) {
  .ch-nav__links > li > a, .ch-nav__toggle { text-transform: uppercase; font-size: 12px; font-weight: 500; letter-spacing: 0.12em; }
  .ch-nav__links { gap: 26px; }
  .ch-nav .ch-sub a { text-transform: none; letter-spacing: 0.01em; }
}

/* ══ Round 64 · Menu caps tighter; hero practice areas replace the strapline ══ */
@media (min-width: 961px) {
  .ch-nav__links > li > a, .ch-nav__toggle { font-size: 12.5px; font-weight: 500; letter-spacing: 0.045em; }
  .ch-nav__links { gap: 24px; }
}
.ch-hero__tags--lead { margin-top: 18px; font-family: var(--font-sans); font-size: 15px; font-weight: 400; letter-spacing: 0.01em; text-transform: none; color: #f4f5fa; gap: 6px 14px; }
.ch-hero__tags--lead li + li::before { width: 4px; height: 4px; margin-right: 14px; background: #2f9be6; vertical-align: 3px; }
@media (max-width: 860px) { .ch-hero__tags--lead { font-size: 14px; flex-wrap: wrap; white-space: normal; gap: 4px 10px; } .ch-hero__tags--lead li + li::before { margin-right: 10px; } }

/* ══ Round 65 · New hero video (cable-stayed bridge at dusk): framing ══ */
.ch-herofull__video { object-position: 50% 55%; }
@media (max-width: 860px) { .ch-herofull__video { transform: scale(1.15); transform-origin: 40% 60%; object-position: 38% 55%; } }

/* ══ Round 66 · Lighter veil over the new video ══ */
.ch-herofull::before {
  background:
    radial-gradient(ellipse 60% 45% at 50% 45%, rgba(9, 25, 46, 0.32) 0%, rgba(9, 25, 46, 0) 100%),
    linear-gradient(180deg, rgba(9, 25, 46, 0.28) 0%, rgba(9, 25, 46, 0) 25%, rgba(9, 25, 46, 0) 70%, rgba(9, 25, 46, 0.3) 100%);
}
.ch-herofull::after { opacity: 0.12; }
@media (max-width: 860px) {
  .ch-herofull::before { background: radial-gradient(ellipse 80% 40% at 50% 42%, rgba(9, 25, 46, 0.38) 0%, rgba(9, 25, 46, 0) 100%), linear-gradient(0deg, rgba(10, 26, 46, 0.45) 0%, rgba(10, 26, 46, 0) 40%); }
}
.ch-herofull .ch-h1, .ch-hero__tags--lead { text-shadow: 0 2px 24px rgba(6, 18, 34, 0.35); }

/* ══ Round 67 · Body copy in a condensed cut (Google Sans Flex, width 88) ══ */
:root { --font-body: "Google Sans Flex", "Google Sans", "Helvetica Neue", Arial, sans-serif; }
.ch-prose, .ch-prose p, .ch-svc__text, .ch-value p, .ch-matter p, .ch-fee p, .ch-facts-grid dd, .ch-statement__text,
.ch-pagehero__lead, .ch-matters-block__intro, .ch-inst-block__head p:not(.ch-eyebrow), .ch-fees-block__note,
.ch-contact__note, .ch-founder__text, .ch-hero__tags--lead, .ch-footer__bottom {
  font-family: var(--font-body); font-stretch: 88%; letter-spacing: 0.005em;
}

/* ══ Equipo: tonal variety within blues and greys ══ */
main:has(.ch-profile__lead) .ch-profile__lead { color: var(--navy-700); }
main:has(.ch-profile__lead) :is(.ch-prose, .ch-prose p, .ch-intro__body p) { color: var(--slate-600); }
main:has(.ch-profile__lead) .ch-intro .ch-h2 { color: var(--navy-900); }

/* ══ Servicios (dark pages): tonal hierarchy within blues and greys ══
   white = section titles · sky blue = item titles and intros · blue-grey = running text */
main.ch-main--dark :is(.ch-matter__title, .ch-pair .ch-h3) { color: #9ccaff !important; }
main.ch-main--dark .ch-matters-block__intro { color: #9ccaff !important; }
main.ch-main--dark :is(.ch-intro__body p, .ch-pair .ch-prose p, .ch-matter p, .ch-inst-block__head p:not(.ch-eyebrow)) { color: #b4bce0 !important; }
main.ch-main--dark .ch-related__arrow { color: var(--accent) !important; }

/* ══ La Firma: tonal hierarchy within blues and greys (as on Equipo) ══
   navy = section titles · mid blue = item titles and highlighted name · blue-grey = running text */
main:has(.ch-fees-row) .ch-band-paper :is(.ch-prose, .ch-prose p, .ch-fee p) { color: var(--slate-600) !important; }
main:has(.ch-fees-row) .ch-model__quote strong { color: var(--navy-700) !important; }
main:has(.ch-fees-row) .ch-fee__title { color: var(--navy-700) !important; }
main:has(.ch-fees-row) .ch-fees-block__note { color: var(--navy-700) !important; }

/* Footer tagline: sits on the right, above the legal links */
.ch-footer__tagline { margin: 0; font-family: var(--font-serif); font-weight: 400; font-size: clamp(18px, 1.25vw, 21.6px); line-height: 1.3; letter-spacing: -0.005em; color: var(--white); text-align: right; }
.ch-footer__tagline span { color: #9ccaff; }
@media (max-width: 860px) { .ch-footer__tagline { text-align: left; } }

/* La Firma 03: text module like 02 — the founder's name picks up the mid blue */
.ch-intro--lead .ch-h2 strong { font-weight: inherit; color: var(--navy-700); }

/* ══ Round 68 · Copy blocks for the revised service / international texts ══ */
.ch-copy { display: grid; gap: 28px; }
.ch-copy__lead { max-width: 52em; }
.ch-copy__lead--big p { font-family: var(--font-serif); font-weight: 400; font-size: 22px; line-height: 1.45; letter-spacing: -0.006em; color: var(--ink); margin: 0; }
.ch-copy__lead--big p + p { margin-top: 14px; }
.ch-copy--cols .ch-copy__body { columns: 2 320px; column-gap: 64px; }
.ch-copy--cols .ch-copy__body > * { break-inside: avoid; margin-bottom: 14px; }
.ch-copy__body { max-width: none; }
.ch-ticks { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ch-ticks li { position: relative; padding: 12px 0 0 24px; border-top: 1px solid rgba(2, 4, 79, 0.12); font-family: var(--font-body); font-stretch: 88%; font-size: 14px; line-height: 1.7; }
.ch-ticks li::before { content: ""; position: absolute; left: 4px; top: 19px; width: 2px; height: 12px; background: var(--accent); transform: skewX(calc(var(--slash-angle) * -1)); }
/* dark service pages */
.ch-main--dark .ch-copy__lead--big p { color: var(--white); }
.ch-main--dark .ch-ticks li { color: var(--dk-text); border-top-color: rgba(255, 255, 255, 0.16); }
.ch-main--dark .ch-ticks li::before { background: #9ccaff; }
.ch-band-lead .ch-copy__lead { max-width: 56em; }
.ch-contact__address { font-family: var(--font-body); font-stretch: 88%; font-size: 14px; color: #c3cbef; }
@media (max-width: 860px) { .ch-copy__lead--big p { font-size: 19px; } .ch-copy--cols .ch-copy__body { columns: 1; } }
.ch-facts-band { background: #e8eef5 !important; }
.ch-facts-band .ch-facts-grid > div { border-top-color: rgba(2, 4, 79, 0.12); }
.ch-facts-band :is(dt, dd) { color: var(--ink) !important; }
@media (min-width: 861px) { #matters-title { font-size: 28px !important; max-width: 22em; } }
.ch-copy--cols .ch-copy__body { display: block; } .ch-copy--cols .ch-copy__body > p { margin: 0 0 14px; }
main.ch-main--dark :is(.ch-copy__body p, .ch-ticks li) { color: #b4bce0 !important; }

/* ══ Round 69 · La Firma: fees as a plain text module, like the ones above ══ */
.ch-intro__note { margin: 10px 0 0; max-width: 22em; font-family: var(--font-body); font-stretch: 88%; font-size: 14px; line-height: 1.6; color: var(--slate-600); }
.ch-intro__body .ch-intro__sub { margin: 0; font-family: var(--font-sans); font-weight: 600; font-size: 17px; line-height: 1.3; letter-spacing: -0.005em; color: var(--navy-700); }
.ch-intro__body .ch-intro__sub ~ .ch-intro__sub { margin-top: 14px; }
main:has(.ch-fees-row) .ch-fees-row .ch-intro__head .ch-h2 { font-size: 24px; }

/* ══ Round 70 · Litigación: photo behind the page title and the lead text ══ */
.ch-photohead { position: relative; isolation: isolate; background-color: #04074a; background-position: center 40%; background-size: cover; background-repeat: no-repeat; }
.ch-photohead::before { content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(4, 7, 74, 0.92) 0%, rgba(4, 7, 74, 0.78) 45%, rgba(4, 7, 74, 0.45) 100%), linear-gradient(180deg, rgba(4, 7, 74, 0) 60%, rgba(4, 7, 74, 0.6) 100%); }
.ch-main--dark .ch-photohead > section, .ch-photohead .ch-pagehero--navy, .ch-photohead .ch-band-lead { background: transparent !important; }
.ch-photohead .ch-pagehero__inner { padding-bottom: 24px; }
@media (max-width: 860px) { .ch-photohead::before { background: linear-gradient(180deg, rgba(4, 7, 74, 0.85) 0%, rgba(4, 7, 74, 0.82) 100%); } }

/* ══ Round 71 · Christian's review ══ */
.ch-headgroup { background: var(--navy-gradient); }
.ch-headgroup > section { background: transparent !important; }
.ch-headgroup .ch-pagehero__inner { padding-bottom: 8px; }
.ch-photohead .ch-pagehero__inner { padding-bottom: 8px; }
.ch-copy__lead--big p:first-child:not(:only-child) { color: #9ccaff; }
.ch-copy--cols .ch-copy__body > .ch-copy__group { break-inside: avoid; margin-bottom: 14px; }
.ch-copy__group > p { margin: 0 0 12px; }
.ch-contact--solo { grid-template-columns: minmax(0, 560px); justify-content: center; }

/* ══ Round 72 · merged from the other writer: hero and lead read as one block, colour runs on from the title into the text ══ */
.ch-main--dark .ch-pagehero--navy { background: linear-gradient(180deg, #19248f 0%, #131c80 100%); }
.ch-main--dark .ch-pagehero--navy + .ch-band-lead { background: linear-gradient(180deg, #131c80 0%, #0a0f66 100%); }
.ch-main--dark .ch-pagehero--navy + .ch-band-lead > .ch-section { padding-top: clamp(8px, 1vw, 16px); }
.ch-headgroup { background: linear-gradient(180deg, #19248f 0%, #131c80 45%, #0a0f66 100%); }

/* ══ Round 73 · Litigación photo header: taller, lighter veil ══ */
.ch-photohead { background-position: center 45%; }
.ch-photohead .ch-pagehero__inner { padding-top: clamp(72px, 9vw, 132px); }
.ch-photohead .ch-band-lead > .ch-section { padding-bottom: clamp(88px, 10vw, 150px); }
.ch-photohead::before { background: linear-gradient(90deg, rgba(4, 7, 74, 0.74) 0%, rgba(4, 7, 74, 0.5) 50%, rgba(4, 7, 74, 0.18) 100%), linear-gradient(180deg, rgba(4, 7, 74, 0) 65%, rgba(4, 7, 74, 0.4) 100%); }
@media (max-width: 860px) { .ch-photohead::before { background: linear-gradient(180deg, rgba(4, 7, 74, 0.68) 0%, rgba(4, 7, 74, 0.72) 100%); } }

/* ══ Round 74 · Arbitraje: concrete column photo behind title and lead ══ */
.ch-photohead--arbitraje-columna { background-position: center 30%; }
.ch-photohead--arbitraje-columna::before { background: linear-gradient(90deg, rgba(4, 7, 74, 0.84) 0%, rgba(4, 7, 74, 0.72) 55%, rgba(4, 7, 74, 0.3) 100%), linear-gradient(180deg, rgba(4, 7, 74, 0) 65%, rgba(4, 7, 74, 0.4) 100%); }

/* ══ Round 75 · Resolución / Contratación: glass-facade photos behind title and lead ══ */
.ch-photohead--resolucion-cristal { background-position: center 45%; }
.ch-photohead--mercantil-cristal { background-position: center 50%; }
.ch-photohead--resolucion-cristal::before, .ch-photohead--mercantil-cristal::before { background: linear-gradient(90deg, rgba(4, 7, 74, 0.82) 0%, rgba(4, 7, 74, 0.62) 55%, rgba(4, 7, 74, 0.25) 100%), linear-gradient(180deg, rgba(4, 7, 74, 0) 65%, rgba(4, 7, 74, 0.4) 100%); }

/* ══ Round 76 · Service pages: text in white for legibility, small copy above all ══ */
.ch-main--dark .ch-pagehero__title,
.ch-main--dark .ch-copy__lead p,
.ch-main--dark .ch-prose p, .ch-main--dark .ch-prose li,
.ch-main--dark .ch-ticks li,
.ch-main--dark .ch-matter p,
.ch-main--dark .ch-related__list a,
.ch-main--dark .ch-intro__body p { color: #fff !important; }
.ch-main--dark .ch-copy__body p, .ch-main--dark .ch-copy__body li, .ch-main--dark .ch-matter p { font-weight: 400; }
main.ch-main--dark :is(.ch-intro__body p, .ch-pair .ch-prose p, .ch-matter p, .ch-inst-block__head p:not(.ch-eyebrow), .ch-copy__body p, .ch-ticks li, .ch-copy__lead p, .ch-pagehero__title) { color: #fff !important; }

/* ══ Round 77 · Internacional: London skyline behind title and lead, like Litigación ══ */
.ch-photohead--intl { background-position: center 55%; }
.ch-photohead--intl .ch-pagehero__title, .ch-photohead--intl .ch-copy__lead p { color: #fff !important; }
.ch-photohead--intl .ch-band-lead > .ch-section { padding-top: clamp(8px, 1vw, 16px); }

/* ══ Round 78 · Photo headers: lighter, more neutral veil (less blue cast) ══ */
.ch-photohead::before,
.ch-photohead--arbitraje-columna::before,
.ch-photohead--resolucion-cristal::before,
.ch-photohead--mercantil-cristal::before { background: linear-gradient(90deg, rgba(10, 14, 34, 0.62) 0%, rgba(10, 14, 34, 0.38) 55%, rgba(10, 14, 34, 0.08) 100%), linear-gradient(180deg, rgba(10, 14, 34, 0) 60%, rgba(10, 14, 34, 0.35) 100%); }
.ch-photohead--arbitraje-columna::before { background: linear-gradient(90deg, rgba(10, 14, 34, 0.7) 0%, rgba(10, 14, 34, 0.55) 55%, rgba(10, 14, 34, 0.15) 100%), linear-gradient(180deg, rgba(10, 14, 34, 0) 60%, rgba(10, 14, 34, 0.35) 100%); }
.ch-photohead .ch-pagehero__title, .ch-photohead .ch-copy__lead p { text-shadow: 0 1px 18px rgba(0, 0, 0, 0.35); }
@media (max-width: 860px) { .ch-photohead::before, .ch-photohead--arbitraje-columna::before { background: rgba(10, 14, 34, 0.6); } }

/* ══ Round 79 · Contacto: new clean white version — big "Hablemos" left, details right ══ */
main:has(.ch-contact2) { background: #fff; }
.ch-contact2 { background: #fff; color: var(--ink, #0b1a33); }
.ch-contact2__inner { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 120px); align-items: end; min-height: calc(100vh - 64px - 140px); padding-block: clamp(96px, 12vw, 180px); }
.ch-contact2__title { font-family: var(--font-serif, 'Source Serif 4', serif); font-weight: 400; font-size: clamp(64px, 9vw, 136px); line-height: 0.95; letter-spacing: -0.02em; color: #04074a; margin: 0; }
.ch-contact2__sub { margin: 24px 0 0; font-size: 14px; letter-spacing: 0.02em; color: #5b6480; }
.ch-contact2__list { margin: 0; display: grid; gap: 0; border-top: 1px solid #d9dde8; }
.ch-contact2__list > div { padding: 22px 0 24px; border-bottom: 1px solid #d9dde8; }
.ch-contact2__list dt { font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: #6b7390; margin: 0 0 8px; }
.ch-contact2__list dd { margin: 0; }
.ch-contact2__list a { font-family: var(--font-serif, 'Source Serif 4', serif); font-size: clamp(20px, 1.9vw, 28px); line-height: 1.25; color: #04074a; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .35s ease, color .2s; overflow-wrap: anywhere; }
.ch-contact2__list a:hover, .ch-contact2__list a:focus-visible { background-size: 100% 1px; color: #2f6fd6; }
@media (max-width: 860px) {
  .ch-contact2__inner { grid-template-columns: 1fr; min-height: 0; align-items: start; padding-block: 72px 88px; gap: 48px; }
}
body:has(.ch-contact2), body:has(.ch-contact2) .ch-nav:not(.is-open) { background: #fff; }

/* ══ Round 80 · Contacto: title at the site's page-title size, everything sits at the top ══ */
.ch-contact2__inner { min-height: 0; align-items: start; padding-block: 56px clamp(96px, 10vw, 140px); }
.ch-contact2__title { font-size: 44px; font-weight: 600; line-height: 1.06; letter-spacing: -0.02em; color: #02044f; }
.ch-contact2__sub { margin-top: 14px; }
.ch-contact2__list { margin-top: 8px; }
@media (max-width: 860px) { .ch-contact2__title { font-size: 36px; } .ch-contact2__inner { padding-block: 40px 72px; gap: 32px; } }

/* ══ Round 81 · Contacto: single column, compact ══ */
.ch-contact2__inner { grid-template-columns: minmax(0, 640px); gap: 40px; padding-block: 56px 72px; }
main:has(.ch-contact2) { min-height: 0; flex: 0 0 auto; }
@media (max-width: 860px) { .ch-contact2__inner { gap: 28px; padding-block: 40px 56px; } }
html:has(.ch-contact2), body:has(.ch-contact2) { background: #04074a; }
body:has(.ch-contact2) .ch-nav, body:has(.ch-contact2) main { background: #fff; }

/* ══ Round 82 · Footer 25% taller so it breathes ══ */
.ch-footer .ch-footer__inner { padding-top: 36px !important; padding-bottom: 28px !important; gap: 25px !important; }

/* ══ Round 83 · Contacto: details at the site's lead size ══ */
.ch-contact2__list a { font-size: 22px; }
.ch-contact2__list > div { padding: 18px 0 20px; }
.ch-contact2__list dt { margin-bottom: 6px; }
/* Contacto: footer at its normal height like every other page; the white page fills the screen above it */
html:has(.ch-contact2), body:has(.ch-contact2) { background: #fff; }
body:has(.ch-contact2) { min-height: 100vh; display: flex; flex-direction: column; }
body:has(.ch-contact2) main { flex: 1 0 auto; }

/* ══ Round 84 · Equipo: title sits on the same background as photo and text ══ */
main:has(.ch-profile) .ch-pagehero { background: transparent !important; }
main:has(.ch-profile) .ch-pagehero__inner { padding-bottom: 8px; }
main:has(.ch-profile) .ch-pagehero + .ch-section { padding-top: 32px; }

/* ══ Round 85 · La Firma: second module (tower photo) without the blue band ══ */
main:has(.ch-fees-row) .ch-band-brand { background: transparent !important; color: var(--ink, #0b1a33); }
main:has(.ch-fees-row) .ch-band-brand::before, main:has(.ch-fees-row) .ch-band-brand::after { display: none !important; }
main:has(.ch-fees-row) .ch-band-brand :is(h2, .ch-h2) { color: #02044f !important; }
main:has(.ch-fees-row) .ch-band-brand :is(p, li) { color: #2a3350 !important; }
main:has(.ch-fees-row) .ch-band-brand .ch-cutframe__cut { background: var(--paper, #f5f7fa) !important; }

/* ══ Round 86 · La Firma: hero + tower module share the page colour; the four text modules below take the former hero tint ══ */
main:has(.ch-fees-row) .ch-pagehero { background: transparent !important; }
main:has(.ch-fees-row) .ch-pagehero__inner { padding-bottom: 8px; }
main:has(.ch-fees-row) .ch-band-brand > .ch-section { padding-top: 40px; }
main:has(.ch-fees-row) .ch-band-brand ~ section { background: #edf1f5 !important; }
.ch-photohead--intl { background-position: center 38%; }

/* ══ Round 87 · Photo headers: much lighter veil, brighter feel ══ */
.ch-photohead::before { background: linear-gradient(90deg, rgba(10, 14, 34, 0.42) 0%, rgba(10, 14, 34, 0.22) 55%, rgba(10, 14, 34, 0) 100%), linear-gradient(180deg, rgba(10, 14, 34, 0) 70%, rgba(10, 14, 34, 0.2) 100%) !important; }
.ch-photohead .ch-pagehero__title, .ch-photohead .ch-copy__lead p { text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35), 0 2px 22px rgba(0, 0, 0, 0.45); }
@media (max-width: 860px) { .ch-photohead::before { background: rgba(10, 14, 34, 0.45) !important; } }

/* ══ Round 88 · Internacional: La Firma system — text left, photo right with the diagonal cut, on the page colour ══ */
main:has(.ch-band-brand--light) .ch-pagehero { background: transparent !important; }
main:has(.ch-band-brand--light) .ch-pagehero__inner { padding-bottom: 8px; }
.ch-band-brand--light { background: transparent !important; color: var(--ink, #0b1a33); }
.ch-band-brand--light::before, .ch-band-brand--light::after { display: none !important; }
.ch-band-brand--light > .ch-section { padding-top: 40px; }
.ch-band-brand--light .ch-split__lead p { font-family: var(--font-serif, 'Source Serif 4', serif); font-size: 22px; line-height: 1.45; color: #02044f !important; margin: 0 0 22px; }
.ch-band-brand--light .ch-prose p { color: #2a3350 !important; }
.ch-band-brand--light .ch-cutframe__cut { background: var(--paper, #f5f7fa) !important; }
.ch-band-brand--light .ch-split__text { gap: 0 !important; } .ch-band-brand--light .ch-split__lead + .ch-prose { margin-top: 4px !important; }

/* Inicio: la línea de prácticas sustituye al titular */
.ch-herofull .ch-h1.ch-herofull__claim { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0.2em 0.55em; font-size: clamp(36px, 3vw, 52px); line-height: 1.15; letter-spacing: -0.015em; text-wrap: initial; }
.ch-herofull__claim > span + span::before { content: ""; display: inline-block; width: 0.14em; height: 0.14em; margin-right: 0.55em; border-radius: 50%; background: #2f9be6; vertical-align: 0.24em; }
.ch-herofull .ch-h1 .ch-herofull__claim-accent { flex-basis: 100%; color: #2f9be6; }
.ch-herofull__claim > .ch-herofull__claim-accent::before { display: none; }
@media (max-width: 860px) {
  .ch-herofull .ch-h1.ch-herofull__claim { gap: 0.12em 0.45em; font-size: min(30px, 7.2vw); }
  .ch-herofull__claim > span + span::before { margin-right: 0.45em; }
}

/* Aviso legal */
.ch-legal { max-width: 46rem; color: var(--ink); font-size: 16px; line-height: 1.75; }
.ch-legal p + p { margin-top: 12px; }
.ch-legal__law { font-size: 14px; letter-spacing: 0.01em; color: var(--slate-600, #5b6478); margin-bottom: 28px; }
.ch-legal__sec { margin-top: 44px; }
.ch-legal h2 { margin-bottom: 14px; font-family: var(--font-serif); font-size: clamp(22px, 1.6vw, 27px); font-weight: 600; line-height: 1.25; color: var(--navy-900, #02044f); }
.ch-legal ul { margin: 12px 0; padding-left: 1.2em; list-style: disc; }
.ch-legal li { margin-top: 6px; }
.ch-legal li::marker { color: #2f9be6; }
.ch-legal a { color: var(--link); text-decoration: underline; text-underline-offset: 3px; }
.ch-legal__data { display: grid; gap: 0; margin: 0; border-top: 1px solid rgba(2, 4, 79, 0.12); }
.ch-legal__data > div { display: grid; grid-template-columns: 13rem 1fr; gap: 16px; padding: 12px 0; border-bottom: 1px solid rgba(2, 4, 79, 0.12); }
.ch-legal__data dt { font-weight: 600; }
.ch-legal__data dd { margin: 0; }
@media (max-width: 860px) { .ch-legal { font-size: 15px; } .ch-legal__data > div { grid-template-columns: 1fr; gap: 2px; } }

/* Internacional: texto a tamaño intermedio */
.ch-band-brand--light .ch-prose.ch-intl-text { gap: 20px; max-width: 38em; }
.ch-band-brand--light .ch-prose.ch-intl-text p { font-size: 18px; line-height: 1.65; color: #1c2550 !important; }
@media (max-width: 860px) { .ch-band-brand--light .ch-prose.ch-intl-text { gap: 16px; } .ch-band-brand--light .ch-prose.ch-intl-text p { font-size: 16.5px; line-height: 1.65; } }

/* Equipo: retrato de medio cuerpo, algo más pequeño */
.ch-profile__photo--bust { max-width: 300px; width: 100%; }
.ch-profile__photo.ch-profile__photo--bust img { aspect-ratio: 4 / 5 !important; object-fit: cover; object-position: 50% 0%; }
@media (max-width: 860px) { .ch-profile__photo--bust { max-width: 280px; } }

/* Contacto: sin líneas y datos a tamaño más contenido */
.ch-contact2__list, .ch-contact2__list > div { border: 0 !important; }
.ch-contact2__list dd a { font-size: 17px !important; line-height: 1.5; }
.ch-contact2__list > div { padding-block: 12px !important; }

/* Equipo: enlace a LinkedIn bajo la foto */
.ch-profile__photo--bust { background: transparent !important; }
.ch-profile__linkedin { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; font-size: 14px; font-weight: 500; letter-spacing: 0.02em; color: var(--navy-900, #02044f); text-decoration: none; border-bottom: 1px solid #2f9be6; padding-bottom: 2px; }
.ch-profile__linkedin svg { width: 11px; height: 11px; color: #2f9be6; transition: transform .2s ease; }
.ch-profile__linkedin:hover { color: #2f9be6; }
.ch-profile__linkedin:hover svg { transform: translate(2px,-2px); }
.ch-profile__linkedin:focus-visible { outline: 2px solid #2f9be6; outline-offset: 3px; }
