/* ============================================================
   Section-specific layouts
   ============================================================ */

/* -------- Hero -------- */
.hero {
  position: relative;
  padding-top: calc(var(--header-h) + var(--space-9));
  padding-bottom: var(--space-9);
  overflow: hidden;
}
.hero__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-7);
  position: relative;
  z-index: 2;
}
.hero__statement {
  font-size: var(--fs-hero);
  line-height: 0.96;
  letter-spacing: -0.035em;
  font-variation-settings: "opsz" 144, "SOFT" 60;
  max-width: 18ch;
  color: var(--ink);
}
.hero__statement em {
  font-style: italic;
  color: var(--brand);
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.hero__meta {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--space-7);
  align-items: end;
  margin-top: var(--space-6);
}
.hero__copy { color: var(--ink-2); font-size: var(--fs-lead); max-width: 48ch; }
.hero__cta { display: flex; gap: var(--space-3); flex-wrap: wrap; justify-self: end; align-self: end; }

.hero__visual {
  position: relative;
  margin-top: var(--space-8);
  border-radius: var(--radius-s);
  overflow: hidden;
  aspect-ratio: 16 / 7;
  background: var(--ink);
}
.hero__visual img {
  width: 100%; height: 100%; object-fit: cover;
  transform: scale(1.04);
  animation: heroDrift 18s var(--ease) infinite alternate;
}
.hero__visual::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,17,15,0.05) 0%, rgba(20,17,15,0.55) 100%);
}
.hero__visual-caption {
  position: absolute;
  left: var(--gutter); bottom: var(--space-5);
  color: rgba(255,255,255,0.85);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  z-index: 2;
}

@keyframes heroDrift {
  from { transform: scale(1.04) translate3d(0, 0, 0); }
  to   { transform: scale(1.08) translate3d(-2%, -1%, 0); }
}

@media (max-width: 780px) {
  .hero__meta { grid-template-columns: 1fr; align-items: start; }
  .hero__cta { justify-self: start; }
  .hero__visual { aspect-ratio: 4/5; }
}

/* -------- Hero split (home) -------- */
.hero--split { padding-top: calc(var(--header-h) + var(--space-5)); padding-bottom: var(--space-6); }
.hero__split {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: var(--space-7);
  align-items: stretch;
  min-height: min(58vh, 560px);
}
.hero__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-4);
  padding-block: var(--space-3);
}
.hero__content .hero__statement { margin: 0; max-width: 14ch; }
.hero__content .hero__copy { color: var(--ink-2); font-size: var(--fs-lead); max-width: 44ch; margin: 0; }
.hero__content .hero__cta { display: flex; gap: var(--space-3); flex-wrap: wrap; justify-self: start; align-self: start; margin-top: var(--space-2); }

.hero__visual--split {
  position: relative;
  margin-top: 0;
  aspect-ratio: auto;
  border-radius: var(--radius-s);
  overflow: hidden;
  background: #111;
  min-height: 380px;
  align-self: stretch;
}
.hero__visual--split img {
  width: 100%; height: 100%; object-fit: cover;
  filter: grayscale(1) contrast(1.08);
  transform: scale(1.04);
  animation: heroDrift 22s var(--ease) infinite alternate;
}
.hero__visual--split::after { content: none; }
.hero__visual-overlay {
  position: absolute; inset: 0;
  background: color-mix(in srgb, var(--brand) 14%, transparent);
  mix-blend-mode: multiply;
  pointer-events: none;
  transition: opacity .7s var(--ease);
}
.hero__visual--split:hover .hero__visual-overlay { opacity: 0.4; }
.hero__visual-corner {
  position: absolute; top: 0; right: 0;
  width: 112px; height: 112px;
  background: #fff;
  display: block;
  pointer-events: none;
}
.hero__visual-corner::before,
.hero__visual-corner::after {
  content: ""; position: absolute;
}
.hero__visual-corner::before {
  top: 18px; right: 18px;
  width: calc(100% - 36px); height: 1px;
  background: color-mix(in srgb, var(--brand) 35%, transparent);
}
.hero__visual-corner::after {
  top: 18px; right: 18px;
  width: 1px; height: calc(100% - 36px);
  background: color-mix(in srgb, var(--brand) 35%, transparent);
}
.hero__visual-label {
  position: absolute;
  left: var(--space-5); bottom: var(--space-5);
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(6px);
  padding: 10px 14px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink);
}

@media (prefers-reduced-motion: reduce) {
  .hero__visual--split img { animation: none; transform: none; }
}
@media (max-width: 900px) {
  .hero__split { grid-template-columns: 1fr; min-height: 0; gap: var(--space-6); }
  .hero__visual--split { min-height: 0; aspect-ratio: 4/5; }
}

/* -------- Hero full-background variant -------- */
.hero--fullbg {
  position: relative;
  padding-top: calc(var(--header-h) + var(--space-9));
  padding-bottom: var(--space-7);
  min-height: min(92vh, 880px);
  overflow: hidden;
  isolation: isolate;
  color: #fff;
}
.hero--fullbg .hero__bg {
  position: absolute; inset: 0;
  z-index: -2;
  background: #0e0e0e;
  overflow: hidden;
}
.hero--fullbg .hero__bg picture,
.hero--fullbg .hero__bg picture img,
.hero--fullbg .hero__bg img {
  width: 100%; height: 100%; object-fit: cover;
  filter: grayscale(1) contrast(1.05) brightness(0.78);
  transform: scale(1.05);
  animation: heroDrift 22s var(--ease) infinite alternate;
  display: block;
}
.hero--fullbg::before {
  content: "";
  position: absolute; inset: 0;
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(10,10,10,0.55) 0%, rgba(10,10,10,0.15) 38%, rgba(10,10,10,0.78) 100%),
    linear-gradient(90deg, rgba(10,10,10,0.55) 0%, rgba(10,10,10,0) 55%);
}
.hero--fullbg::after {
  content: "";
  position: absolute; inset: 0;
  z-index: -1;
  background: color-mix(in srgb, var(--brand) 10%, transparent);
  mix-blend-mode: multiply;
  pointer-events: none;
}
.hero--fullbg .hero__inner {
  display: flex; flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  min-height: inherit;
  gap: var(--space-5);
  max-width: 760px;
}

.hero--fullbg .eyebrow { color: rgba(255,255,255,0.78); }
.hero--fullbg .hero__statement { color: #fff; max-width: 14ch; }
.hero--fullbg .hero__statement em { color: var(--brand-soft); }
.hero--fullbg .hero__copy { color: rgba(255,255,255,0.84); max-width: 56ch; font-size: var(--fs-lead); }
.hero--fullbg .hero__cta { display: flex; gap: var(--space-3); flex-wrap: wrap; margin-top: var(--space-3); align-self: flex-start; justify-self: flex-start; }
.hero--fullbg .btn--ghost { color: #fff; border-color: rgba(255,255,255,0.45); }
.hero--fullbg .btn--ghost:hover { background: rgba(255,255,255,0.08); border-color: #fff; }
.hero--fullbg .hero__badge { display: none !important; }
@media (prefers-reduced-motion: reduce) {
  .hero--fullbg .hero__bg img { animation: none; transform: none; }
}
@media (max-width: 780px) {
  .hero--fullbg { min-height: min(92vh, 720px); }
}

/* -------- Marquee / strip -------- */
.marquee {
  border-block: 1px solid var(--line);
  background: var(--bg);
  overflow: hidden;
  padding-block: var(--space-5);
}
.marquee__track {
  display: flex;
  gap: var(--space-8);
  white-space: nowrap;
  animation: marqueeScroll 35s linear infinite;
  width: max-content;
}
.marquee__item {
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(1.5rem, 1rem + 1.5vw, 2.25rem);
  color: var(--ink-3);
  letter-spacing: -0.01em;
  display: inline-flex; align-items: center; gap: var(--space-8);
}
.marquee__item::after {
  content: "✦";
  font-style: normal;
  color: var(--brand);
  font-size: 0.65em;
  margin-left: var(--space-8);
}
@keyframes marqueeScroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* -------- Firm overview -------- */
.overview {
  background: var(--bg-elev);
  border-block: 1px solid var(--line);
  padding-block: var(--space-7);
}
.overview__grid {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 6fr);
  gap: var(--space-8);
  align-items: stretch;
}
.overview__copy h2 {
  font-size: 36px;
  line-height: 1.1;
  letter-spacing: -0.02em;
  font-variation-settings: "opsz" 144, "SOFT" 50;
}
.overview__copy h2 strong {
  color: var(--brand);
  font-weight: inherit;
}
.overview__copy p {
  margin-top: var(--space-4);
  font-size: var(--fs-base);
  color: var(--ink-2);
  line-height: 1.55;
}
.overview__stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-auto-rows: 1fr;
  gap: 0;
  border-top: 1px solid var(--line);
  align-self: stretch;
  height: 100%;
}
.stat {
  padding: var(--space-5) 0;
  border-bottom: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 110px;
}
.stat--wide { grid-column: 1 / -1; border-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }
.stat:nth-child(odd):not(.stat--wide) { padding-right: var(--space-5); border-right: 1px solid var(--line); padding-left: 0; }
.stat:nth-child(even):not(.stat--wide) { padding-left: var(--space-5); }
.stat__value {
  font-family: var(--font-display);
  font-size: clamp(1.875rem, 1rem + 2.2vw, 3rem);
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--ink);
  font-weight: 500;
}
.stat__value sup { color: var(--brand); font-size: 0.5em; vertical-align: super; margin-left: 4px; font-variation-settings: "opsz" 144, "SOFT" 100; }
.stat__label {
  margin-top: var(--space-2);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--ink-3);
}

@media (max-width: 880px) {
  .overview__grid { grid-template-columns: 1fr; gap: var(--space-6); }
  .overview__stats { height: auto; }
  .stat { min-height: 0; }
}

/* -------- Clients -------- */
.clients { background: #fff; border-bottom: 1px solid var(--line); }
.clients__lead { max-width: 56ch; margin-top: var(--space-4); color: var(--ink-2); font-size: var(--fs-lead); }
.clients__bar {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  margin-top: var(--space-7);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.clients__metric {
  padding: var(--space-4) var(--space-5);
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}
.clients__metric:last-child { border-right: 0; }
.clients__metric-value {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 1rem + 2vw, 2.5rem);
  letter-spacing: -0.02em;
  line-height: 1;
  color: var(--ink);
  font-weight: 500;
}
.clients__metric-value sup { color: var(--brand); font-size: 0.45em; margin-left: 4px; top: -0.5em; position: relative; }
.clients__metric-label { font-size: 11px; letter-spacing: 0.08em; color: var(--ink-3); text-transform: uppercase; }

/* Industries chip list */
.clients__industries {
  list-style: none;
  padding: 0;
  margin: var(--space-6) 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
}
.clients__industries li {
  font-size: 13px;
  letter-spacing: 0.02em;
  color: var(--ink-2);
  padding: 8px 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  transition: color .25s var(--ease), border-color .25s var(--ease);
}
.clients__industries li:hover { color: var(--brand); border-color: var(--brand); }

/* Logo marquee */
.clients__marquee {
  margin-top: var(--space-7);
  position: relative;
  overflow: hidden;
  padding: var(--space-5) 0;
  mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
  -webkit-mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
}
.clients__track {
  display: flex;
  align-items: center;
  gap: var(--space-8);
  width: max-content;
}
.clients__marquee--ready .clients__track {
  animation: clientsScroll 60s linear infinite;
}
.clients__marquee:hover .clients__track { animation-play-state: paused; }

/* Tile wrapper — always shows a real client wordmark as the placeholder. */
.clients__logo {
  flex: 0 0 auto;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 132px;
  height: 56px;
  padding: 0 var(--space-3);
  opacity: 1;
}

/* Text wordmark — used as elegant placeholder, and as permanent fallback
   when no logo image is available. */
.clients__logo-text {
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-2);
  white-space: nowrap;
  transition: color .3s var(--ease);
}
.clients__logo:hover .clients__logo-text { color: var(--brand); }

.clients__logo-img {
  display: block;
  max-width: 124px;
  max-height: 40px;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: grayscale(1);
  opacity: 0.8;
  transition: filter .3s var(--ease), opacity .3s var(--ease);
}
.clients__logo-img:hover { filter: grayscale(0); opacity: 1; }

@keyframes clientsScroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .clients__track { animation: none; }
}
.clients__foot {
  margin-top: var(--space-6);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-5);
  flex-wrap: wrap;
}
.clients__foot p { color: var(--ink-3); font-size: 13px; max-width: 60ch; }

@media (max-width: 560px) {
  .clients__bar { grid-template-columns: 1fr; }
  .clients__metric { border-right: 0; border-bottom: 1px solid var(--line); }
  .clients__metric:last-child { border-bottom: 0; }
}


/* -------- Practice areas grid -------- */
.practice {
  background: var(--bg);
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
/* Soft coral light blobs that drift as the section enters/exits the viewport.
   Uses CSS scroll-driven animations when supported (zero JS, GPU-friendly).
   Falls back to a static gradient; disabled under prefers-reduced-motion. */
.practice::before,
.practice::after {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.55;
  will-change: transform;
}
.practice::before {
  width: 46vmax; height: 46vmax;
  top: -16vmax; left: -14vmax;
  background: radial-gradient(closest-side, rgba(243,131,100,0.22), rgba(243,131,100,0) 70%);
}
.practice::after {
  width: 38vmax; height: 38vmax;
  bottom: -14vmax; right: -10vmax;
  background: radial-gradient(closest-side, rgba(216,106,75,0.18), rgba(216,106,75,0) 70%);
}
@supports (animation-timeline: view()) {
  .practice::before {
    animation: practice-drift-a linear both;
    animation-timeline: view();
    animation-range: entry 0% exit 100%;
  }
  .practice::after {
    animation: practice-drift-b linear both;
    animation-timeline: view();
    animation-range: entry 0% exit 100%;
  }
  @keyframes practice-drift-a {
    from { transform: translate3d(-3%, -2%, 0) scale(1); }
    to   { transform: translate3d( 4%,  6%, 0) scale(1.08); }
  }
  @keyframes practice-drift-b {
    from { transform: translate3d( 3%,  4%, 0) scale(1.05); }
    to   { transform: translate3d(-5%, -6%, 0) scale(1); }
  }
}
@media (prefers-reduced-motion: reduce) {
  .practice::before,
  .practice::after { animation: none !important; transform: none !important; }
}


.practice__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 1px solid var(--line);
}

/* Staggered entrance: parent reveals, each item rises with its own delay. */
.practice__grid .practice__item {
  opacity: 0;
  transform: translateY(22px);
  transition:
    opacity .7s var(--ease),
    transform .7s var(--ease),
    background-color .45s var(--ease),
    color .35s var(--ease);
}
.practice__grid.is-in .practice__item { opacity: 1; transform: none; }
.practice__grid.is-in .practice__item:nth-child(1) { transition-delay: .00s, .00s, 0s, 0s; }
.practice__grid.is-in .practice__item:nth-child(2) { transition-delay: .07s, .07s, 0s, 0s; }
.practice__grid.is-in .practice__item:nth-child(3) { transition-delay: .14s, .14s, 0s, 0s; }
.practice__grid.is-in .practice__item:nth-child(4) { transition-delay: .21s, .21s, 0s, 0s; }
.practice__grid.is-in .practice__item:nth-child(5) { transition-delay: .28s, .28s, 0s, 0s; }
.practice__grid.is-in .practice__item:nth-child(6) { transition-delay: .35s, .35s, 0s, 0s; }
.practice__grid.is-in .practice__item:nth-child(7) { transition-delay: .42s, .42s, 0s, 0s; }
.practice__grid.is-in .practice__item:nth-child(8) { transition-delay: .49s, .49s, 0s, 0s; }

.practice__item {
  position: relative;
  padding: var(--space-7) var(--space-5) var(--space-7) 0;
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: 56px 1fr auto;
  align-items: start;
  gap: var(--space-5);
  cursor: pointer;
  isolation: isolate;
  overflow: hidden;
  background-color: transparent;
}
.practice__item:nth-child(odd)  { border-right: 1px solid var(--line); padding-left: var(--space-5); padding-right: var(--space-6); }
.practice__item:nth-child(even) { padding-left: var(--space-6); }

/* Coral wipe — slides in from the left, behind text. */
.practice__item::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--brand);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .55s cubic-bezier(.65, 0, .25, 1);
  z-index: -1;
}
.practice__item:hover::before,
.practice__item:focus-visible::before { transform: scaleX(1); }

/* Coral underline accent on the bottom edge, used as a subtle resting state. */
.practice__item::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -1px;
  height: 1px;
  background: var(--brand-deep);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .5s var(--ease) .1s;
  z-index: 1;
}
.practice__item:hover::after { transform: scaleX(1); transition-delay: 0s; }

.practice__num {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 13px;
  color: var(--brand-deep);
  padding-top: 8px;
  font-variation-settings: "opsz" 9;
  transition: color .35s var(--ease), transform .5s var(--ease);
}
.practice__title {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  letter-spacing: -0.02em;
  color: var(--ink);
  font-variation-settings: "opsz" 144, "SOFT" 40;
  transition: color .35s var(--ease), transform .5s cubic-bezier(.2,.7,.2,1);
}
.practice__desc {
  margin-top: var(--space-3);
  color: var(--ink-3);
  font-size: 15px;
  max-width: 52ch;
  transition: color .35s var(--ease);
}

.practice__item:hover .practice__num     { color: rgba(255,255,255,0.75); transform: translateX(2px); }
.practice__item:hover .practice__title   { color: #fff; transform: translateX(6px); }
.practice__item:hover .practice__desc    { color: rgba(255,255,255,0.85); }

.practice__arrow {
  align-self: center;
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1px solid var(--line);
  display: grid; place-items: center;
  color: var(--ink-3);
  transition:
    background .35s var(--ease),
    color .35s var(--ease),
    border-color .35s var(--ease),
    transform .5s cubic-bezier(.2,.8,.2,1);
}
.practice__item:hover .practice__arrow {
  background: #fff;
  color: var(--brand);
  border-color: #fff;
  transform: rotate(-45deg) scale(1.05);
}
.practice__arrow svg { width: 14px; height: 14px; }

@media (max-width: 780px) {
  .practice__grid { grid-template-columns: 1fr; }
  .practice__item, .practice__item:nth-child(odd), .practice__item:nth-child(even) {
    padding: var(--space-6) 0;
    border-right: 0;
  }
  .practice__desc { max-height: 320px; opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .practice__grid .practice__item,
  .practice__item::before,
  .practice__item::after { transition: none !important; transform: none !important; }
  .practice__item:hover::before { transform: scaleX(1) !important; }
}

/* -------- Team -------- */
.team {
  background: var(--bg-elev);
  border-top: 1px solid var(--line);
}
.team__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-6) var(--space-5);
}
.team__card { display: flex; flex-direction: column; align-items: center; text-align: center; }
.team__portrait {
  aspect-ratio: 1 / 1;
  width: 78%;
  max-width: 240px;
  background: var(--line-soft);
  overflow: hidden;
  border-radius: 50%;
  position: relative;
  filter: grayscale(15%) contrast(0.98);
  transition: filter .5s var(--ease);
}
.team__portrait picture,
.team__portrait picture img,
.team__portrait img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .8s var(--ease);
  display: block;
}
.team__card:hover .team__portrait { filter: grayscale(0%) contrast(1); }
.team__card:hover .team__portrait img { transform: scale(1.04); }
.team__name {
  margin-top: var(--space-4);
  font-family: var(--font-display);
  font-size: var(--fs-h6);
  letter-spacing: -0.015em;
  color: var(--ink);
}
.team__role {
  margin-top: var(--space-2);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-3);
}
@media (max-width: 980px) { .team__grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px) { .team__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 420px) { .team__grid { grid-template-columns: 1fr; } }


/* -------- Profile (member detail) -------- */
.profile { padding: var(--space-6) 0 var(--space-12); }
.profile__back {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--ink-3); text-decoration: none;
  margin-bottom: var(--space-6);
}
.profile__back:hover { color: var(--brand); }
.profile__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--space-9);
  align-items: start;
}
.profile__aside { position: sticky; top: calc(var(--header-h) + var(--space-5)); }
.profile__portrait {
  position: relative;
  background: #fafafa00;
  border-radius: 16px;
  padding: 1.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 360px;
  margin: 0 auto;
}
.profile__portrait picture,
.profile__portrait picture img,
.profile__portrait img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}
.profile__portrait::before {
  content: "";
  position: absolute;
  top: -8px;
  left: -8px;
  width: 48px;
  height: 48px;
  border-top: 3px solid var(--brand);
  border-left: 3px solid var(--brand);
  z-index: 2;
  pointer-events: none;
}
.profile__meta { margin-top: var(--space-6); display: flex; flex-direction: column; gap: var(--space-4); }
.profile__meta-item { display: flex; flex-direction: column; gap: 4px; }
.profile__meta-label {
  font-size: 10px; font-weight: 700; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--ink-3);
}
.profile__meta-value { font-size: 15px; color: var(--ink); }
.profile__meta-value a { color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--line); transition: color .2s var(--ease), border-color .2s var(--ease); }
.profile__meta-value a:hover { color: var(--brand); border-color: var(--brand); }

.profile__header { margin-bottom: var(--space-7); }
.profile__name {
  font-size: var(--fs-h1);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--ink);
  font-weight: 700;
  margin: 0;
}
.profile__role {
  margin-top: var(--space-3);
  font-size: var(--fs-h4);
  color: var(--brand);
  font-weight: 500;
  letter-spacing: 0.02em;
}

.profile__section { margin-top: var(--space-8); }
.profile__section h4 {
  font-size: 11px; font-weight: 700; letter-spacing: 0.3em;
  text-transform: uppercase; color: var(--ink-3);
  border-bottom: 1px solid var(--line);
  padding-bottom: var(--space-3);
  margin-bottom: var(--space-5);
}
.profile__bio p {
  font-size: 18px; line-height: 1.6; color: var(--ink-2);
  font-weight: 400; margin: 0 0 var(--space-3);
}
.profile__cols { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-7); }
.profile__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--space-3); }
.profile__list li { display: flex; gap: 12px; font-size: 14px; color: var(--ink-2); line-height: 1.5; }
.profile__list li::before { content: "/"; color: var(--brand); font-weight: 700; flex: 0 0 auto; }
.profile__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.profile__tag {
  padding: 8px 14px; border: 1px solid var(--line);
  font-size: 11px; font-weight: 600; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ink-2);
}
.profile__areas { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.profile__area {
  display: flex; align-items: center; gap: 12px;
  padding: 16px 18px; background: var(--bg-elev);
  font-size: 13px; font-weight: 600; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--ink);
}
.profile__area::before { content: ""; width: 6px; height: 6px; background: var(--brand); flex: 0 0 auto; }
.profile__cta {
  margin-top: var(--space-9);
  padding: var(--space-6);
  background: var(--bg-elev);
  display: grid; grid-template-columns: 1fr auto; gap: var(--space-5);
  align-items: center;
}
.profile__cta h3 { margin: 0; font-size: 26px; line-height: 1.15; letter-spacing: -0.015em; color: var(--ink); font-weight: 600; }
@media (max-width: 900px) {
  .profile__grid { grid-template-columns: 1fr; gap: var(--space-7); }
  .profile__aside { position: static; }
  .profile__cols, .profile__areas { grid-template-columns: 1fr; }
  .profile__cta { grid-template-columns: 1fr; }
}


/* -------- Insights -------- */
.insights {
  background: var(--bg);
  border-top: 1px solid var(--line);
}
.insights__grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: var(--space-7);
}
.insight {
  display: flex; flex-direction: column;
  gap: var(--space-4);
  text-decoration: none;
  color: inherit;
}
.insight__image {
  aspect-ratio: 16 / 10;
  background: var(--line-soft);
  overflow: hidden;
  border-radius: var(--radius-xs);
}
.insight__image picture,
.insight__image picture img,
.insight__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); display: block; }
.insight:hover .insight__image picture,
.insight:hover .insight__image picture img,
.insight:hover .insight__image img { transform: scale(1.05); }
.insight__meta {
  display: flex; gap: var(--space-4); align-items: center;
  font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-3);
}
.insight__meta .dot { width: 4px; height: 4px; border-radius: 50%; background: var(--brand); }
.insight__title {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  letter-spacing: -0.02em;
  color: var(--ink);
  line-height: 1.15;
}
.insight--featured .insight__title { font-size: 32px; line-height: 1.15; }
.insight__excerpt { color: var(--ink-3); max-width: 56ch; }

.insights__column { display: grid; gap: var(--space-6); align-content: start; }
.insights__column .insight { flex-direction: row; gap: var(--space-5); align-items: start; }
.insights__column .insight__image { flex-shrink: 0; width: 180px; aspect-ratio: 4/3; }
.insights__column .insight__title { font-size: var(--fs-h6); }

@media (max-width: 880px) {
  .insights__grid { grid-template-columns: 1fr; }
  .insights__column .insight { flex-direction: column; }
  .insights__column .insight__image { width: 100%; aspect-ratio: 16/10; }
}

/* -------- Recognition (editorial dark) -------- */
.recognition {
  background: var(--bg-deep);
  color: rgba(255,255,255,0.85);
  border-top: 1px solid rgba(255,255,255,0.08);
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.recognition::before {
  content: "";
  position: absolute;
  inset: -10% -10% auto auto;
  width: 50vmax; height: 50vmax;
  background: radial-gradient(closest-side, rgba(229,103,62,0.18), rgba(229,103,62,0) 70%);
  filter: blur(60px);
  z-index: -1;
  pointer-events: none;
}
.recognition h2, .recognition .eyebrow { color: #fff; }
.recognition .eyebrow { color: var(--brand-soft); }
.recognition .lead { color: rgba(255,255,255,0.7); }
.recognition__head {
  max-width: 64ch;
  margin: 0 auto var(--space-8);
  text-align: center;
}
.recognition__head h2 {
  margin-top: var(--space-3);
  font-size: 36px;
  line-height: 1.1;
  letter-spacing: -0.02em;
  font-variation-settings: "opsz" 144, "SOFT" 50;
}
.recognition__head h2 strong, .recognition__head h2 b { color: var(--brand); font-weight: inherit; }
.recognition__head .lead {
  margin-top: var(--space-5);
  font-size: var(--fs-lead);
}
.recognition__feature {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.4fr) minmax(0, 1fr);
  gap: var(--space-7);
  align-items: center;
  padding: var(--space-7);
  background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.01));
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--radius-s);
}
.recognition__badge {
  display: grid; place-items: center;
  padding: var(--space-5);
  background: #ffffff;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 18px;
  aspect-ratio: 1/1;
  max-width: 200px;
}
.recognition__badge img {
  width: 100%; height: auto; opacity: 1;
  filter: none;
}

.recognition__meta { display: flex; flex-direction: column; gap: var(--space-3); }
.recognition__meta .recognition__label {
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--brand-soft);
}
.recognition__meta strong {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: 500;
  color: #fff;
  letter-spacing: -0.015em;
  font-variation-settings: "opsz" 144, "SOFT" 50;
}
.recognition__meta p {
  font-size: 14px;
  color: rgba(255,255,255,0.7);
  max-width: 46ch;
  line-height: 1.55;
}
.recognition__stats {
  display: grid;
  gap: var(--space-5);
  padding-left: var(--space-6);
  border-left: 1px solid rgba(255,255,255,0.1);
}
.rstat__value {
  font-family: var(--font-display);
  font-size: clamp(2rem, 1rem + 2.4vw, 3rem);
  letter-spacing: -0.03em;
  line-height: 1;
  color: #fff;
  font-weight: 500;
}
.rstat__value sup { color: var(--brand); font-size: 0.45em; margin-left: 4px; vertical-align: super; }
.rstat__label {
  margin-top: 6px;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
}
@media (max-width: 980px) {
  .recognition__feature { grid-template-columns: 1fr; gap: var(--space-6); padding: var(--space-6); }
  .recognition__badge { max-width: 140px; margin: 0 auto; }
  .recognition__stats { padding-left: 0; border-left: 0; border-top: 1px solid rgba(255,255,255,0.1); padding-top: var(--space-5); grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 560px) {
  .recognition__stats { grid-template-columns: 1fr; }
}

/* -------- Contact -------- */
.contact {
  background: var(--bg);
  border-top: 1px solid var(--line);
}
.contact__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--space-9);
  align-items: start;
}
.contact__headline {
  font-size: 36px;
  line-height: 1.1;
  letter-spacing: -0.02em;
  font-variation-settings: "opsz" 144, "SOFT" 50;
}
.contact__headline strong, .contact__headline b {
  color: var(--brand);
  font-weight: inherit;
}
.contact__details {
  margin-top: var(--space-6);
  display: grid; gap: var(--space-5);
}
.contact__details h3, .contact__details h4 {
  font-family: var(--font-sans);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-3);
  font-weight: 500;
  margin: 0;
}
.contact__details p {
  margin-top: var(--space-2);
  font-size: 15px;
  color: var(--ink-2);
  line-height: 1.5;
}
.contact__details strong { color: var(--ink); font-weight: 500; }

.form {
  display: grid;
  gap: var(--space-5);
}
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-5); }
.form__field { position: relative; display: flex; flex-direction: column; }
.form__field label {
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-3);
  margin-bottom: 8px;
  font-weight: 500;
}
.form__field input, .form__field textarea {
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--line);
  padding: 12px 0;
  font-size: 16px;
  color: var(--ink);
  font-family: var(--font-sans);
  outline: none;
  transition: border-color .2s var(--ease);
}
.form__field input:focus, .form__field textarea:focus { border-color: var(--ink); }
.form__field textarea { min-height: 120px; resize: vertical; }
.form__submit { display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); flex-wrap: wrap; }
.form__note { font-size: 12px; color: var(--ink-4); max-width: 36ch; }

.form__field.is-invalid input,
.form__field.is-invalid textarea,
.form__field input.is-invalid,
.form__field textarea.is-invalid {
  border-bottom-color: #dc2626 !important;
  background-color: #fef2f2 !important;
  padding-left: 8px !important;
  border-radius: 4px 4px 0 0 !important;
}

.form__field.is-invalid input:focus,
.form__field.is-invalid textarea:focus,
.form__field input.is-invalid:focus,
.form__field textarea.is-invalid:focus {
  border-bottom-color: #dc2626 !important;
}

.form__error {
  color: #dc2626;
  font-size: 12px;
  font-weight: 500;
  margin-top: 4px;
  display: block;
}

@media (max-width: 780px) {
  .contact__grid { grid-template-columns: 1fr; gap: var(--space-7); }
  .form__row { grid-template-columns: 1fr; }
}

/* -------- Generic content (about, notarial, etc.) -------- */
.prose {
  max-width: 68ch;
}
.prose p + p { margin-top: var(--space-5); }
.prose p { font-size: var(--fs-lead); color: var(--ink-2); }
.prose h2 {
  font-size: var(--fs-h3);
  margin-top: var(--space-8);
  margin-bottom: var(--space-4);
}
.prose ul {
  margin-top: var(--space-5);
  padding-left: 0;
  list-style: none;
  display: grid;
  gap: var(--space-3);
}
.prose ul li {
  position: relative;
  padding-left: var(--space-5);
  font-size: var(--fs-lead);
  color: var(--ink-2);
}
.prose ul li::before {
  content: "";
  position: absolute; left: 0; top: 14px;
  width: 10px; height: 1px;
  background: var(--brand);
}

.split {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--space-8);
  align-items: start;
}
.split__media {
  aspect-ratio: 4/5;
  background: var(--line-soft);
  overflow: hidden;
  border-radius: var(--radius-xs);
}
.split__media img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 880px) {
  .split { grid-template-columns: 1fr; }
}

/* -------- About — Visión & Pilares -------- */
.about-vision { padding-block: var(--space-10); }
.about-vision__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--space-9);
  align-items: start;
}
.about-vision__media { position: sticky; top: calc(var(--header-h) + var(--space-5)); }
.about-vision__frame {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
  background: var(--bg-elev);
}
.about-vision__frame picture,
.about-vision__frame picture img,
.about-vision__frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
.about-vision__frame::before {
  content: ""; position: absolute; top: 0; left: 0;
  width: 64px; height: 64px;
  border-top: 4px solid var(--brand);
  border-left: 4px solid var(--brand);
  z-index: 2;
}
.about-vision__caption {
  margin-top: var(--space-4);
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--space-4);
  font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--ink-3);
  border-top: 1px solid var(--line);
  padding-top: var(--space-4);
}
.about-vision__marker {
  font-weight: 700; color: var(--brand); letter-spacing: 0.16em;
}
.about-vision__title {
  margin-top: var(--space-4);
  font-size: var(--fs-h2);
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: var(--ink);
  font-weight: 500;
}
.about-vision__title em { color: var(--brand); font-style: italic; }
.about-vision__lead {
  margin-top: var(--space-5);
  font-size: var(--fs-lead);
  color: var(--ink-2);
  line-height: 1.55;
  max-width: 56ch;
}
.about-pillars {
  list-style: none; padding: 0;
  margin-top: var(--space-8);
  display: grid; gap: 0;
  border-top: 1px solid var(--line);
}
.about-pillars li {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: var(--space-5);
  padding: var(--space-6) 0;
  border-bottom: 1px solid var(--line);
  align-items: start;
}
.about-pillars__num {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 28px;
  color: var(--brand);
  letter-spacing: 0.04em;
  line-height: 1;
  padding-top: 4px;
}
.about-pillars li h3 {
  font-size: var(--fs-h5);
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin: 0 0 var(--space-2);
}
.about-pillars li p {
  font-size: var(--fs-base);
  line-height: 1.6;
  color: var(--ink-2);
  margin: 0;
  max-width: 56ch;
}
@media (max-width: 880px) {
  .about-vision__grid { grid-template-columns: 1fr; gap: var(--space-7); }
  .about-vision__media { position: static; }
  .about-pillars li { grid-template-columns: 48px 1fr; gap: var(--space-4); }
}

/* -------- About — Lawyers Associated Worldwide -------- */
.about-law { padding-block: var(--space-10); background: var(--bg-elev); border-top: 1px solid var(--line); }
.about-law__card {
  background: var(--ink);
  color: #fff;
  padding: clamp(2rem, 1.2rem + 3vw, 4rem);
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 6fr);
  gap: var(--space-8);
  align-items: start;
  position: relative;
  overflow: hidden;
}
.about-law__card::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: var(--brand);
}
.about-law__head { grid-column: 1 / -1; display: flex; align-items: end; justify-content: space-between; gap: var(--space-6); flex-wrap: wrap; border-bottom: 1px solid rgba(255,255,255,0.12); padding-bottom: var(--space-6); }
.about-law__head .eyebrow { color: var(--brand-soft); }
.about-law__title {
  font-size: var(--fs-h2);
  line-height: 1.05;
  letter-spacing: -0.025em;
  font-weight: 500;
  color: #fff;
  margin: var(--space-3) 0 0;
}
.about-law__title em { color: var(--brand-soft); font-style: italic; }
.about-law__stats {
  display: flex; flex-direction: column; gap: var(--space-6);
  border-right: 1px solid rgba(255,255,255,0.12);
  padding-right: var(--space-7);
}
.about-law__stats > div { display: flex; flex-direction: column; gap: 6px; }
.about-law__num {
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 1.4rem + 3vw, 4.25rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1;
  color: #fff;
}
.about-law__num sup { color: var(--brand); font-size: 0.4em; vertical-align: super; margin-left: 6px; }
.about-law__label {
  font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase;
  color: rgba(255,255,255,0.65);
}
.about-law__body p {
  font-size: var(--fs-lead);
  line-height: 1.55;
  color: rgba(255,255,255,0.82);
  margin: 0 0 var(--space-4);
}
.about-law__body p strong { color: #fff; font-weight: 500; }
.about-law__cta { margin-top: var(--space-5); }
@media (max-width: 880px) {
  .about-law__card { grid-template-columns: 1fr; padding: var(--space-6); }
  .about-law__stats { flex-direction: row; border-right: 0; border-bottom: 1px solid rgba(255,255,255,0.12); padding: 0 0 var(--space-5); gap: var(--space-7); }
}

/* -------- Practice Areas — listing rows enhancement -------- */
.area { position: relative; }
.area__grid { position: relative; }
.area__num {
  display: inline-flex; align-items: center; gap: .6rem;
  text-transform: uppercase; letter-spacing: .14em; font-style: normal !important;
  font-family: var(--font-sans) !important; font-size: 12px !important;
  color: var(--ink-3) !important; font-weight: 600;
}
.area__num::before {
  content: ""; width: 28px; height: 1px; background: var(--brand);
}
.area__title {
  letter-spacing: -0.015em;
}
.area__body a[href*="areas-de-practica"] {
  display: inline-flex; align-items: center; gap: .5rem;
  padding-bottom: 6px; border-bottom: 1px solid currentColor;
  text-decoration: none;
  transition: gap .25s ease, border-color .25s ease;
}
.area__body a[href*="areas-de-practica"]:hover { gap: .9rem; }

/* -------- Practice Areas — detail subpages enhancement -------- */
.area-detail { counter-reset: adetail; }
.area-detail__item {
  position: relative; counter-increment: adetail;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  overflow: hidden;
}
.area-detail__item::before {
  content: counter(adetail, decimal-leading-zero);
  position: absolute; top: 1.25rem; right: 1.5rem;
  font-family: var(--font-display, var(--font-sans));
  font-size: 14px; letter-spacing: .14em; color: var(--brand);
  font-weight: 600;
}
.area-detail__item::after {
  content: ""; position: absolute; left: 0; top: 0; height: 3px; width: 0;
  background: var(--brand); transition: width .35s ease;
}
.area-detail__item:hover {
  transform: translateY(-3px);
  border-color: color-mix(in oklab, var(--brand) 35%, var(--line));
  box-shadow: 0 18px 40px -22px rgba(0,0,0,0.18);
}
.area-detail__item:hover::after { width: 100%; }
.area-detail__item h3 {
  font-size: 19px !important; letter-spacing: -0.005em;
  padding-right: 3rem;
}

/* Prev / Next area navigation */
.area-nav {
  transition: transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease !important;
}
.area-nav:hover {
  background: var(--ink) !important; color: #fff !important;
  border-color: var(--ink) !important;
}
.area-nav:hover .eyebrow { color: var(--brand); }
.area-nav .eyebrow { transition: color .2s ease; }

/* CTA block at the bottom of detail pages */
.area-cta {
  margin-top: 3rem;
  padding: clamp(2rem, 1.2rem + 3vw, 3.5rem);
  background: var(--ink);
  color: #fff;
  border-radius: 22px;
  display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: center;
  position: relative; overflow: hidden;
}
.area-cta::before {
  content: ""; position: absolute; inset: auto -20% -60% auto;
  width: 60%; aspect-ratio: 1; border-radius: 50%;
  background: radial-gradient(circle, color-mix(in oklab, var(--brand) 55%, transparent), transparent 70%);
  pointer-events: none;
}
.area-cta .eyebrow { color: var(--brand); }
.area-cta h3 { color: #fff; margin-top: .75rem; letter-spacing: -0.015em; }
.area-cta h3 strong { color: var(--brand); }
@media (max-width: 720px) {
  .area-cta { grid-template-columns: 1fr; }
}

/* -------- Practice area detail — inline consult form -------- */
.area-cta { align-items: start; }
.area-form { display: grid; gap: .75rem; min-width: 320px; width: 100%; max-width: 420px; }
.area-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.area-form input {
  width: 100%; padding: .85rem 1rem; font: inherit; font-size: 14px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 10px; color: #fff;
}
.area-form input::placeholder { color: rgba(255,255,255,0.55); }
.area-form input:focus { outline: none; border-color: var(--brand); background: rgba(255,255,255,0.1); }
.area-form input[readonly] { color: rgba(255,255,255,0.75); cursor: default; font-style: italic; }
.area-form button { justify-self: start; margin-top: .25rem; }
@media (max-width: 720px) {
  .area-form__row { grid-template-columns: 1fr; }
  .area-form { min-width: 0; }
}

/* Practice area detail — extended content */
.area-lead{
  position:relative;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(2rem,4vw,4rem);
  align-items:stretch;
  margin:var(--space-4) 0 var(--space-6);
  padding:clamp(2rem,4vw,3rem) 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.area-lead::before{
  content:"";position:absolute;top:-1px;left:0;
  width:64px;height:2px;background:var(--brand);
}
.area-lead__text{display:flex;flex-direction:column;gap:1rem;}
.area-lead__text p{margin:0;font-size:15.5px;line-height:1.7;color:var(--ink-2);font-weight:400;}
.area-lead__text p:first-child{font-size:17px;line-height:1.55;color:var(--ink);font-weight:500;letter-spacing:-0.005em;}
.area-lead__media{position:relative;overflow:hidden;border-radius:4px;min-height:360px;background:var(--bg-elev);}
.area-lead__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
@media (max-width: 860px){
  .area-lead{grid-template-columns:1fr;padding:1.75rem 0;gap:1.5rem;}
  .area-lead__media{min-height:220px;}
}
.area-cases{margin-top:var(--space-6);padding:2rem 2.25rem;background:var(--bg-elev);border:1px solid var(--line);border-radius:18px;}
.area-cases__title{font-size:18px;letter-spacing:.02em;margin:0 0 1rem;color:var(--ink);}
.area-cases__list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:.6rem 2rem;}
.area-cases__list li{position:relative;padding-left:1.25rem;font-size:15px;line-height:1.5;color:var(--ink-2);}
.area-cases__list li::before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;background:var(--brand);border-radius:50%;}
@media (max-width:720px){
  .area-cases{padding:1.5rem 1.25rem;}
  .area-cases__list{grid-template-columns:1fr;}
}

/* ======== NEWS GRID ======== */
.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); }
.news-card {
  display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line);
  border-radius: 18px; text-decoration: none; color: var(--ink);
  transition: transform .2s, box-shadow .2s; overflow: hidden;
}
.news-card:hover { transform: translateY(-2px); box-shadow: 0 18px 40px -24px rgba(0,0,0,.25); }
.news-card__img {
  position: relative; aspect-ratio: 16/10; overflow: hidden; background: #1a1a1a;
}
.news-card__img picture,
.news-card__img picture img,
.news-card__img img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .5s ease;
}
.news-card:hover .news-card__img picture,
.news-card:hover .news-card__img picture img,
.news-card:hover .news-card__img img { transform: scale(1.04); }
.news-card__img::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,.55) 100%);
}
.news-card__img-label {
  position: absolute; left: 1.25rem; bottom: 1rem; z-index: 1;
  color: #fff; font-size: 12px; font-weight: 600; letter-spacing: .06em;
  text-transform: uppercase;
}
.news-card__body {
  padding: 1.75rem; display: flex; flex-direction: column; flex: 1;
}
.news-card__meta {
  display: flex; justify-content: space-between; font-size: 13px;
  color: var(--ink-3); text-transform: uppercase; letter-spacing: .06em;
}
.news-card__cat { color: var(--brand); font-weight: 600; }
.news-card__title { font-size: 20px; margin: 1rem 0 .75rem; line-height: 1.25; }
.news-card__excerpt {
  color: var(--ink-3); font-size: 15px; line-height: 1.5; margin: 0 0 1.25rem; flex: 1;
}
.news-card__more { color: var(--brand); font-size: 14px; font-weight: 600; }
@media (max-width: 900px) { .news-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .news-grid { grid-template-columns: 1fr; } }

/* ======== PAGER & COLUMNIS PAGINATION ======== */
.u-hidden-for-seo {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.pager,
.c-pagination {
  display: flex; align-items: center; justify-content: center;
  gap: 1.25rem; margin-top: var(--space-8); flex-wrap: wrap;
}
.pager__pages,
.c-pagination__list { list-style: none; display: flex; gap: .5rem; margin: 0; padding: 0; align-items: center; justify-content: center; }
.c-pagination__item { display: inline-flex; }
.pager__btn, .pager__page,
.c-pagination__link,
.c-pagination__link-back,
.c-pagination__link-next {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 40px; height: 40px; padding: 0 .9rem;
  border: 1px solid var(--line); border-radius: 10px;
  color: var(--ink); text-decoration: none; font-size: 14px; font-weight: 600;
  background: #fff; transition: border-color .15s, color .15s, background .15s;
  box-sizing: border-box;
}
.pager__btn:hover:not(.is-disabled),
.pager__page:hover:not(.is-disabled):not(.is-current),
.c-pagination__link:hover:not(.c-pagination__link--active),
.c-pagination__link-next:hover,
.c-pagination__link-back:hover {
  border-color: var(--brand); color: var(--brand);
}
.pager__page.is-current,
.c-pagination__item--active .c-pagination__link,
.c-pagination__link--active {
  background: var(--brand) !important; border-color: var(--brand) !important; color: #fff !important;
}
.pager__btn.is-disabled, .pager__page.is-disabled,
.c-pagination__item--disabled {
  opacity: .4; cursor: not-allowed; pointer-events: none;
}
.c-pagination__link-back::before { content: "←"; }
.c-pagination__link-next::before { content: "→"; }

/* ======== NEWS PROSE (Extended article) ======== */
.news-prose { max-width: none; }
.news-prose .lede {
  font-size: 20px; line-height: 1.55; color: var(--ink); margin-bottom: 1.5rem;
}
.news-prose h2 { font-size: 28px; margin: 2.5rem 0 1rem; line-height: 1.2; }
.news-prose p { margin: 0 0 1.1rem; }
.news-prose .callout {
  border-left: 3px solid var(--brand); background: #fff7f3;
  padding: 1.1rem 1.4rem; border-radius: 0 10px 10px 0;
  margin: 1.5rem 0; font-size: 15px; color: var(--ink);
}
.news-prose .callout strong { color: var(--brand); }
.news-prose table {
  width: 100%; border-collapse: collapse; margin: 1.75rem 0;
  font-size: 15px; border: 1px solid var(--line); border-radius: 10px; overflow: hidden;
}
.news-prose thead { background: var(--bg-elev); }
.news-prose th, .news-prose td {
  padding: .85rem 1rem; text-align: left; border-bottom: 1px solid var(--line);
}
.news-prose th {
  font-weight: 600; color: var(--ink); text-transform: uppercase;
  font-size: 12px; letter-spacing: .06em;
}
.news-prose tbody tr:last-child td { border-bottom: 0; }
.news-prose tbody tr:hover { background: #fafafa; }
.news-prose blockquote {
  margin: 2rem 0; padding: 1.5rem 1.75rem;
  border-left: 4px solid var(--brand); background: #fafafa;
  border-radius: 0 12px 12px 0; font-style: italic; color: var(--ink);
}
.news-prose blockquote p { font-size: 18px; line-height: 1.5; margin: 0 0 .75rem; }
.news-prose blockquote cite {
  display: block; font-style: normal; font-size: 13px; color: var(--ink-3);
  text-transform: uppercase; letter-spacing: .06em;
}
.news-prose .cta-box {
  display: flex; gap: 1.5rem; align-items: center; justify-content: space-between;
  flex-wrap: wrap; margin-top: 2.5rem; padding: 1.75rem 2rem;
  background: linear-gradient(135deg, #4A4949 0%, #2a2a2a 100%);
  color: #fff; border-radius: 14px;
}
.news-prose .cta-box h3 { margin: 0 0 .35rem; font-size: 20px; color: #fff; }
.news-prose .cta-box p { margin: 0; font-size: 14px; color: rgba(255,255,255,.8); }
.news-prose .cta-box .btn { flex-shrink: 0; }
.btn--brand {
  display: inline-block; padding: .85rem 1.4rem; background: var(--brand);
  color: #fff; border-radius: 10px; text-decoration: none;
  font-weight: 600; font-size: 14px; transition: background .15s;
}
.btn--brand:hover { background: #c9542f; }

/* ======== NEWS LAYOUT (Article + share sidebar) ======== */
.news-layout {
  display: grid; grid-template-columns: minmax(0, 1fr) 56px;
  gap: clamp(2rem, 3vw, 4rem); align-items: start; max-width: 920px; margin: 0 auto;
}
.news-share {
  position: sticky; top: 140px;
  display: flex; flex-direction: column; align-items: flex-start; gap: .5rem;
}
.news-share__label {
  font-size: 10px; text-transform: uppercase; letter-spacing: .14em;
  color: var(--ink-3); font-weight: 600; margin-bottom: .35rem; padding-left: 2px;
}
.news-share__btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 8px; background: transparent;
  border: 0; color: var(--ink-2); cursor: pointer; text-decoration: none;
  transition: background .15s, color .15s; padding: 0;
}
.news-share__btn:hover { background: var(--bg-elev); color: var(--brand); }
.news-share__btn.is-copied { color: #16a34a; }
@media (max-width: 900px) {
  .news-layout { grid-template-columns: 1fr; }
  .news-share {
    position: static; flex-direction: row; align-items: center; gap: .25rem;
    margin-top: var(--space-6); padding-top: var(--space-5);
    border-top: 1px solid var(--line); width: 100%;
  }
  .news-share__label { margin: 0 .5rem 0 0; }
}

/* ======== RELATED NEWS GRID ======== */
.related-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-5);
  margin-top: var(--space-6);
}
.related-card {
  display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line);
  border-radius: 18px; text-decoration: none; color: var(--ink); overflow: hidden;
  transition: transform .2s, box-shadow .2s;
}
.related-card:hover { transform: translateY(-2px); box-shadow: 0 18px 40px -24px rgba(0,0,0,.25); }
.related-card__img { aspect-ratio: 16/9; overflow: hidden; background: #1a1a1a; }
.related-card__img picture,
.related-card__img picture img,
.related-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }

.news-hero-section__media picture,
.news-hero-section__media picture img { width: 100%; height: 100%; object-fit: cover; display: block; }
.related-card__body {
  padding: 1.5rem 1.75rem 1.75rem; display: flex; flex-direction: column; gap: .5rem;
}
.related-card strong { font-size: 18px; line-height: 1.3; }
@media (max-width: 700px) { .related-grid { grid-template-columns: 1fr; } }

/* Listado de áreas sin tarjeta — filas divididas */
.area{
  position:relative;
  padding:var(--space-5) 0;
  border-top:1px solid var(--line);
  background:transparent;
  transition:opacity .5s var(--ease), transform .5s var(--ease);
}
.area:last-child{border-bottom:1px solid var(--line);}
.area__grid{display:block;}
.area__head{display:grid;grid-template-columns:auto 1fr auto;column-gap:1.25rem;align-items:center;margin-bottom:1rem;}
.area__icon{width:72px;height:72px;padding:14px;object-fit:contain;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.03);}
.area__title{font-size:var(--fs-h4);margin:0;line-height:1.15;}
.area__title a{color:inherit;text-decoration:none;transition:color .25s var(--ease);}
.area__title a:hover{color:var(--brand);}
.area__body{color:var(--ink-2);font-size:1rem;line-height:1.6;}
.area__body p{font-size:1rem;margin:0;}
.area__body p + p{margin-top:0 !important;}
.area__foot{display:flex;justify-content:flex-end;margin-top:1rem;}
.area__more{color:var(--brand);font-weight:600;text-decoration:none;transition:opacity .25s var(--ease);}
.area__more:hover{opacity:.7;}
.area.reveal{opacity:0;transform:translateY(24px);}
.area.reveal.is-in{opacity:1;transform:translateY(0);}
@media (max-width:800px){
  .area__foot{justify-content:flex-start;}
}
@media (prefers-reduced-motion: reduce){
  .area{transition:none !important;transform:none;opacity:1;}
}

/* Areas Expanded CSS */
.not-hero{padding:calc(var(--header-h) + clamp(2rem,4vw,4rem)) 0 clamp(2.5rem,5vw,4.5rem);position:relative;overflow:hidden}
.not-hero__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,4vw,4rem);align-items:end}
.not-hero h1{margin:1rem 0 0;font-size:clamp(40px,5.4vw,68px);line-height:1.02;letter-spacing:-.01em}
.not-hero__lead{font-size:17px;line-height:1.6;color:var(--muted,#4a4949);max-width:46ch}
.not-hero__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,2rem);margin-top:clamp(2rem,4vw,3.5rem);padding-top:clamp(1.5rem,3vw,2.5rem);border-top:1px solid rgba(0,0,0,.08)}
.not-hero__stat b{display:block;font-size:clamp(28px,3.4vw,40px);color:var(--brand);font-weight:600;letter-spacing:-.01em;line-height:1}
.not-hero__stat span{display:block;margin-top:.5rem;font-size:13px;color:var(--muted,#4a4949);text-transform:uppercase;letter-spacing:.08em}

.svc-section{padding:clamp(3rem,6vw,6rem) 0;background:#fafaf8}
.svc-head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,4rem);align-items:end;margin-bottom:clamp(2rem,4vw,3.5rem)}
.svc-head h2{margin:.5rem 0 0;font-size:clamp(30px,3.6vw,44px);line-height:1.1;letter-spacing:-.01em}
.svc-head p{color:var(--muted,#4a4949);font-size:16px;line-height:1.65;max-width:52ch;justify-self:end}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.svc-card{position:relative;background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:16px;padding:28px 26px 30px;transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;overflow:hidden}
.svc-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#E5673E,#EF8763);transform:scaleX(0);transform-origin:left;transition:transform .4s ease}
.svc-card:hover{transform:translateY(-4px);box-shadow:0 22px 44px -28px rgba(0,0,0,.22);border-color:transparent}
.svc-card:hover::before{transform:scaleX(1)}
.svc-card__ico{width:44px;height:44px;border-radius:12px;background:rgba(229,103,62,.1);display:grid;place-items:center;color:var(--brand);margin-bottom:20px}
.svc-card__ico svg{width:22px;height:22px}
.svc-card__num{position:absolute;top:22px;right:24px;font-size:12px;color:rgba(0,0,0,.3);letter-spacing:.1em;font-weight:500}
.svc-card h3{margin:0 0 10px;font-size:18px;line-height:1.3;font-weight:600;letter-spacing:-.005em}
.svc-card p{margin:0;font-size:14.5px;line-height:1.6;color:var(--muted,#4a4949)}

.process{padding:clamp(3rem,6vw,6rem) 0}
.process__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,5vw,5rem);align-items:center}
.process__media{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:4/5}
.process__media picture,
.process__media picture img,
.process__media img{width:100%;height:100%;object-fit:cover;display:block}
.process__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.25))}
.process h2{margin:.5rem 0 1.5rem;font-size:clamp(28px,3.4vw,40px);line-height:1.1;letter-spacing:-.01em}
.process ul{list-style:none;padding:0;margin:0}
.process ul li{position:relative;padding:18px 0;border-bottom:1px solid rgba(0,0,0,.08);display:flex;align-items:center;gap:14px;font-size:15px;color:var(--muted,#4a4949)}
.process ul li:last-child{border-bottom:0}
.process ul li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--brand);flex-shrink:0}

.process ol{list-style:none;padding:0;margin:0;counter-reset:step}
.process ol li{counter-increment:step;position:relative;padding:22px 0 22px 68px;border-bottom:1px solid rgba(0,0,0,.08);display:block}
.process ol li:last-child{border-bottom:0}
.process ol li::before{content:counter(step,decimal-leading-zero);position:absolute;left:0;top:22px;font-size:14px;font-weight:600;color:var(--brand);letter-spacing:.05em;width:48px}
.process ol li h3, .process ol li h4{margin:0 0 6px;font-size:16px;font-weight:600;letter-spacing:-.005em}
.process ol li p{margin:0;font-size:14.5px;line-height:1.6;color:var(--muted,#4a4949)}

.cta-band{padding:clamp(2rem,3.5vw,3rem) 0;background:#0f0f0e;color:#fff}
.cta-band__grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2rem,4vw,4rem);align-items:center}
.cta-band h2{margin:0;font-size:clamp(28px,3.4vw,42px);line-height:1.1;letter-spacing:-.01em;color:#fff}
.cta-band h2 em{color:var(--brand);font-style:normal}
.cta-band p{color:rgba(255,255,255,.72);margin:1rem 0 0;font-size:16px;line-height:1.6;max-width:48ch}
.cta-band__actions{display:flex;flex-direction:column;gap:10px;align-items:flex-start;justify-self:end;align-self:stretch;justify-content:center}
.cta-band .btn--primary{align-self:flex-start}
.cta-band__contact{font-size:14px;color:rgba(255,255,255,.6);margin:0;padding:0}
.cta-band__contact p, .cta-band__contact section, .cta-band__contact main{margin:0 !important;padding:0 !important;font-size:14px !important;line-height:1.4 !important;color:rgba(255,255,255,.72) !important;max-width:none !important}
.cta-band__contact a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3);transition:border-color .2s}
.cta-band__contact a:hover{border-color:var(--brand)}

.area-pager{padding:clamp(2rem,4vw,3rem) 0;background:#fafaf8;border-top:1px solid rgba(0,0,0,.06)}
.area-pager__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2vw,2rem)}
.area-pager a{display:block;padding:1.5rem 1.75rem;background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:16px;color:var(--ink);text-decoration:none;transition:transform .25s ease,border-color .25s ease}
.area-pager a:hover{transform:translateY(-2px);border-color:var(--brand)}
.area-pager .eyebrow{color:var(--brand);font-size:12px}
.area-pager strong{display:block;margin-top:.5rem;font-size:16px;font-weight:600}
.area-pager .next{text-align:right}

@media (max-width:900px){
  .not-hero__grid,.svc-head,.process__grid,.cta-band__grid{grid-template-columns:1fr}
  .svc-head p{justify-self:start}
  .svc-grid{grid-template-columns:1fr 1fr}
  .cta-band__actions{justify-self:start}
  .area-pager__grid{grid-template-columns:1fr}
  .area-pager .next{text-align:left}
}
@media (max-width:560px){.svc-grid{grid-template-columns:1fr}}
