[hidden] { display: none !important; }

@font-face {
  font-family: "Instrument Sans";
  src: url("/assets/fonts/instrument-sans.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}

@font-face {
  font-family: "Instrument Sans";
  src: url("/assets/fonts/instrument-sans-italic.woff2") format("woff2");
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
}

:root {
  --black: #000;
  --ink: #121212;
  --paper: #f2f0eb;
  --white: #fff;
  --green: #8fbd18;
  --green-bright: #a8d21b;
  --green-dark: #4d6c00;
  --pink: #ec1986;
  --pink-dark: #a80b61;
  --muted: #767676;
  --line: rgba(255,255,255,.16);
  --line-dark: rgba(18,18,18,.18);
  --container: 1480px;
  --pad: clamp(22px, 4vw, 72px);
  --font: "Instrument Sans", Arial, Helvetica, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--font); font-size: 16px; line-height: 1.55; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
:focus-visible { outline: 3px solid var(--pink); outline-offset: 4px; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 1000; top: 12px; left: 12px; transform: translateY(-150%); padding: 10px 16px; background: var(--white); color: var(--black); }
.skip-link:focus { transform: none; }

.site-header { position: sticky; top: 0; z-index: 50; height: 106px; background: rgba(5,5,5,.97); color: var(--white); border-bottom: 1px solid var(--line); transition: height .25s ease; }
.site-header.is-compact { height: 82px; }
.header-inner { width: min(100%, var(--container)); height: 100%; margin: auto; padding: 0 var(--pad); display: flex; align-items: center; gap: 22px; }
.brand img { width: auto; object-fit: contain; }
.brand-clinic img { height: 50px; }
.brand-studio img { height: 44px; width: 122px; object-fit: cover; object-position: center; }
.brand-divider { width: 1px; height: 42px; background: var(--line); }
.main-nav { margin-left: auto; display: flex; align-items: center; gap: clamp(20px, 2.2vw, 42px); font-size: .92rem; }
.main-nav > a { position: relative; padding: 12px 0; }
.main-nav > a:not(.nav-cta)::after { content: ""; position: absolute; left: 0; bottom: 5px; width: 100%; height: 1px; background: var(--green); transform: scaleX(0); transform-origin: right; transition: transform .25s ease; }
.main-nav > a:hover::after { transform: scaleX(1); transform-origin: left; }
.nav-cta, .button { display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 48px; border: 1px solid currentColor; border-radius: 999px; padding: 10px 16px 10px 20px; transition: color .2s ease, background .2s ease, transform .2s ease; }
.nav-cta { color: var(--green-bright); }
.nav-cta:hover, .button-primary:hover { background: var(--green); color: var(--black); transform: translateY(-2px); }
.menu-toggle { display: none; margin-left: auto; color: var(--white); background: none; border: 0; padding: 10px 0; }

.section-dark { color: var(--white); background: var(--black); }
.hero { position: relative; min-height: calc(100svh - 106px); overflow: hidden; border-bottom: 1px solid var(--line); }
.hero-stage { position: relative; min-height: calc(100svh - 106px); }
.hero-slide { position: absolute; inset: 0; display: grid; grid-template-columns: minmax(360px, .82fr) minmax(500px, 1.18fr); min-height: calc(100svh - 106px); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .7s ease, visibility .7s ease; }
.hero-slide.is-active { position: relative; z-index: 1; opacity: 1; visibility: visible; pointer-events: auto; }
.hero-copy { padding: clamp(72px, 8vw, 138px) var(--pad) 152px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.eyebrow, .label { margin: 0 0 18px; color: var(--green-dark); font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; }
.section-dark .eyebrow, .section-dark .label { color: var(--green); }
.hero .eyebrow span { display: inline-block; min-width: 72px; color: #8c8c8c; }
.hero h1, .hero h2 { margin: 0; max-width: 680px; font-size: clamp(4rem, 6.7vw, 8.4rem); line-height: .88; letter-spacing: -.07em; }
.accent-line { width: 58px; height: 3px; margin: 38px 0 26px; background: var(--green); }
.accent-line-dual { background: linear-gradient(90deg, var(--green) 0 50%, var(--pink) 50%); }
.hero-intro { margin: 0; max-width: 460px; font-size: clamp(1.2rem, 1.6vw, 1.75rem); line-height: 1.35; color: #e8e8e8; }
.hero-actions { display: flex; align-items: center; gap: 28px; margin-top: 36px; }
.button-primary { color: var(--green-bright); }
.button-studio { color: var(--pink); }
.button-studio:hover { color: var(--black); background: var(--pink); transform: translateY(-2px); }
.hero-slide-studio .eyebrow { color: var(--pink); }
.hero-slide-studio .accent-line { background: var(--pink); }
.hero-choice-actions { align-items: stretch; flex-direction: column; width: min(100%, 330px); gap: 12px; }
.hero-choice-actions .button { width: 100%; }
.text-link { display: inline-flex; gap: 12px; align-items: center; border-bottom: 1px solid transparent; }
.text-link:hover { border-bottom-color: currentColor; }
.hero-media { position: relative; min-height: 720px; margin: 0; overflow: hidden; }
.hero-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.65), transparent 28%), linear-gradient(0deg, rgba(0,0,0,.42), transparent 40%); pointer-events: none; }
.hero-media > img, .hero-media-split span img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72) contrast(1.06); }
.hero-media-facade > img { object-position: center 18%; }
.hero-media-clinic > img { object-position: center 44%; }
.hero-media-studio > img { object-position: 66% center; }
.hero-media-split { display: grid; grid-template-columns: 1fr 1fr; }
.hero-media-split span { min-width: 0; overflow: hidden; }
.hero-media-split span:first-child { clip-path: polygon(0 0, 100% 0, 82% 100%, 0 100%); margin-right: -10%; z-index: 1; }
.hero-media-split span:first-child img { object-position: center 42%; }
.hero-media-split span:last-child img { object-position: 66% center; }
.hero-media figcaption, .treatment-image figcaption { position: absolute; z-index: 1; right: 28px; bottom: 24px; color: rgba(255,255,255,.8); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.hero-controls { position: absolute; z-index: 5; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: 52px minmax(0, 1fr) 52px 52px; align-items: stretch; gap: 10px; min-height: 112px; padding: 22px var(--pad); background: linear-gradient(0deg, rgba(5,5,5,.98), rgba(5,5,5,.7), transparent); }
.hero-controls button { color: #a7a7a7; background: transparent; border: 0; cursor: pointer; }
.hero-arrow, .hero-pause { align-self: center; width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.45) !important; border-radius: 50%; font-size: 1.2rem; transition: color .2s ease, border-color .2s ease; }
.hero-arrow:hover, .hero-pause:hover { color: var(--green-bright); border-color: var(--green-bright) !important; }
.hero-pagination { display: grid; grid-template-columns: repeat(4, 1fr); align-items: stretch; gap: 0; }
.hero-pagination button { position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 2px; min-width: 0; padding: 18px 12px 0; border-top: 1px solid rgba(255,255,255,.42); text-align: left; }
.hero-pagination button::before { content: ""; position: absolute; left: 0; right: 0; top: -2px; height: 3px; background: transparent; transform: scaleX(0); transform-origin: left; transition: transform .35s ease; }
.hero-pagination button.is-active { color: var(--green-bright); }
.hero-pagination button.is-active::before { background: var(--green-bright); transform: scaleX(1); }
.hero-pagination button:nth-child(3).is-active, .hero-pagination button:nth-child(3):hover { color: var(--pink); }
.hero-pagination button:nth-child(3).is-active::before { background: var(--pink); }
.hero-pagination small { font-size: .67rem; }

.treatment-browser { padding: clamp(54px, 6vw, 92px) var(--pad); }
.treatment-browser > * { width: min(100%, var(--container)); margin-left: auto; margin-right: auto; }
.section-kicker { display: flex; justify-content: space-between; color: #aaa; padding-bottom: 18px; border-bottom: 1px solid var(--line); font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; }
.treatment-explorer-heading { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr); align-items: end; gap: clamp(34px, 7vw, 120px); margin-bottom: clamp(30px, 3.8vw, 54px); }
.treatment-explorer-heading h2 { max-width: 820px; margin: 0; font-size: clamp(2.25rem, 3.55vw, 4.45rem); line-height: .96; letter-spacing: -.052em; text-wrap: balance; }
.treatment-explorer-heading > p { max-width: 470px; margin: 0; color: #a8a8a8; line-height: 1.65; }
.treatment-layout { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(390px, .88fr); gap: clamp(34px, 4.8vw, 82px); align-items: stretch; }
.treatment-list { align-self: stretch; border-top: 1px solid var(--line); }
.treatment-item { display: grid; grid-template-columns: 50px minmax(0, 1fr) 28px; align-items: center; min-height: 57px; border-bottom: 1px solid var(--line); font-size: clamp(1rem, 1.28vw, 1.35rem); line-height: 1.18; transition: color .22s ease, transform .22s ease; }
.treatment-item:hover, .treatment-item.is-active { color: var(--green-bright); transform: translateX(7px); }
.treatment-item-index { color: #858585; font-size: .68rem; font-variant-numeric: tabular-nums; letter-spacing: .08em; }
.treatment-item.is-active .treatment-item-index { color: inherit; }
.treatment-item-arrow { justify-self: end; font-size: 1.15rem; transition: transform .22s ease; }
.treatment-item:hover .treatment-item-arrow, .treatment-item.is-active .treatment-item-arrow { transform: translate(2px,-2px); }
.treatment-item-thumb { display: none; }
.treatment-all { min-height: 54px; margin-top: 8px; font-size: .88rem; }
.treatment-image { position: relative; min-height: 500px; margin: 0; overflow: hidden; background: #111; }
.treatment-image::after { content: ""; position: absolute; inset: 42% 0 0; background: linear-gradient(transparent, rgba(0,0,0,.88)); pointer-events: none; }
.treatment-image > img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.82) contrast(1.02); transition: opacity .2s ease, transform .55s cubic-bezier(.2,.72,.2,1), filter .35s ease; }
.treatment-image:hover > img { filter: saturate(1) contrast(1.01); transform: scale(1.025); }
.treatment-image.is-changing > img { opacity: .25; transform: scale(1.035); }
.treatment-image figcaption { position: absolute; z-index: 2; right: auto; bottom: 0; left: 0; display: grid; grid-template-columns: 72px minmax(0, 1fr); width: 100%; padding: 28px 30px; color: var(--white); text-transform: none; }
.treatment-image figcaption > span { grid-row: 1 / 3; color: var(--green-bright); font-size: .7rem; letter-spacing: .08em; }
.treatment-image figcaption > strong { font-size: clamp(1.35rem, 2vw, 2.25rem); line-height: 1; letter-spacing: -.035em; }
.treatment-image figcaption > p { max-width: 580px; margin: 9px 0 0; color: #d0d0d0; font-size: .84rem; line-height: 1.5; letter-spacing: 0; }

.treatment-catalog { padding-top: clamp(42px, 5vw, 74px); }
.treatment-catalog .treatment-explorer-heading { grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr); }
.treatment-catalog .treatment-explorer-heading h2 { font-size: clamp(2.15rem, 3vw, 3.7rem); }
.treatment-catalog .treatment-layout { grid-template-columns: minmax(360px, .78fr) minmax(0, 1.22fr); align-items: start; }
.treatment-catalog .treatment-image { position: sticky; top: 112px; height: min(620px, calc(100svh - 142px)); min-height: 480px; }
.treatment-catalog .treatment-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(22px, 3vw, 48px); }
.treatment-catalog .treatment-item { min-height: 76px; font-size: clamp(.98rem, 1.15vw, 1.2rem); }

.editorial-section { display: grid; grid-template-columns: minmax(320px, .72fr) minmax(480px, 1.28fr); width: min(100% - (var(--pad) * 2), var(--container)); margin: auto; padding: 70px 0; gap: clamp(46px, 8vw, 130px); border-bottom: 1px solid var(--line-dark); }
.editorial-copy { align-self: center; max-width: 520px; }
.editorial-copy h2, .section-heading-row h2 { margin: 0 0 24px; font-size: clamp(2.4rem, 4vw, 5rem); line-height: .98; letter-spacing: -.055em; }
.editorial-copy p:not(.label) { margin: 0 0 34px; max-width: 500px; font-size: 1.08rem; color: #414141; }
.button-light { color: var(--green-dark); padding-left: 20px; }
.section-dark .button-light { color: var(--green-bright); }
.button-light:hover { color: var(--black); background: var(--green-bright); transform: translateY(-2px); }
.editorial-media { min-height: 500px; margin: 0; overflow: hidden; background: #ddd; }
.editorial-media > img { width: 100%; height: 100%; object-fit: cover; object-position: center 42%; }
.team-section { grid-template-columns: .86fr 1.14fr; }
.team-section .editorial-copy { order: 2; }
.team-portrait { position: relative; background: #d8d8d8; }
.team-portrait img { filter: grayscale(1); object-fit: contain; object-position: center bottom; }
.team-portrait figcaption { position: absolute; inset: auto 0 0; display: flex; justify-content: space-between; gap: 16px; padding: 18px 22px; color: var(--white); background: linear-gradient(transparent, rgba(0,0,0,.88)); }
.team-portrait figcaption span { color: #d6d6d6; }

.blog-preview { width: min(100% - (var(--pad) * 2), var(--container)); margin: auto; padding: 76px 0 92px; }
.section-heading-row { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 34px; }
.section-heading-row h2 { max-width: 800px; margin-bottom: 0; }
.label-pink { color: var(--pink-dark); }
.section-dark .label-pink { color: var(--pink); }
.dark-link { flex: 0 0 auto; padding-bottom: 5px; color: #444; }
.article-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, 3vw, 48px); }
.article-card { position: relative; padding-bottom: 26px; border-bottom: 1px solid var(--line-dark); }
.article-image { display: block; aspect-ratio: 16/9; margin-bottom: 20px; overflow: hidden; background: #ddd; }
.article-image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72); transition: transform .45s ease, filter .3s ease; }
.article-card:hover .article-image img { transform: scale(1.025); filter: saturate(1); }
.article-card p { margin: 0 0 8px; color: var(--pink-dark); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
.article-card h3 { margin: 0; padding-right: 42px; font-size: clamp(1.2rem, 1.6vw, 1.65rem); line-height: 1.2; letter-spacing: -.025em; }
.article-card h3 a::after { content: ""; position: absolute; inset: 0; }
.card-arrow { position: absolute; z-index: 1; right: 2px; bottom: 24px; color: var(--pink); font-size: 1.8rem; }

.appointment-section { display: grid; grid-template-columns: 1fr 1fr 2fr; align-items: stretch; gap: 24px; padding: 62px max(var(--pad), calc((100% - var(--container)) / 2)); }
.appointment-copy { grid-column: 1 / -1; padding-bottom: 14px; }
.appointment-copy h2 { max-width: 900px; margin: 0; font-size: clamp(2.2rem, 3.5vw, 4rem); line-height: 1; }
.appointment-copy p { max-width: 760px; margin: 14px 0 0; color: #b9b9b9; font-size: 1.05rem; }
.space-card { min-height: 240px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 28px; border: 1px solid var(--green); transition: background .25s ease, transform .25s ease; }
.space-card img { width: auto; height: 100%; object-fit: contain; }
.space-card span { color: var(--green); font-size: 2.3rem; }
.space-card:hover { background: rgba(143,189,24,.09); transform: translateY(-3px); }
.studio-card { border-color: var(--pink); }
.studio-card img { width: auto; object-fit: contain; }
.studio-card span { color: var(--pink); }
.studio-card:hover { background: rgba(236,25,134,.08); }
.herbalist-card { position: relative; min-height: 240px; overflow: hidden; border: 1px solid rgba(151,202,27,.42); background: #f1f0e9; isolation: isolate; }
.herbalist-card::after { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(105deg, transparent 35%, rgba(255,255,255,.38) 49%, transparent 63%); transform: translateX(-120%); transition: transform .9s cubic-bezier(.2,.7,.2,1); pointer-events: none; }
.herbalist-card img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform 1.1s cubic-bezier(.2,.7,.2,1), filter .5s ease; }
.herbalist-card span { position: absolute; z-index: 2; right: 18px; bottom: 16px; padding: 8px 12px; color: #fff; background: rgba(5,35,16,.78); font-size: .78rem; letter-spacing: .04em; backdrop-filter: blur(5px); }
.herbalist-card:hover img { transform: scale(1.025); filter: saturate(1.06); }
.herbalist-card:hover::after { transform: translateX(120%); }

.site-footer { position: relative; display: grid; grid-template-columns: 1.25fr repeat(3, 1fr); gap: 40px; padding: 70px max(var(--pad), calc((100% - var(--container)) / 2)) 110px; color: #ddd; background: var(--black); border-top: 1px solid var(--line); }
.footer-brand img { height: 55px; width: auto; margin-bottom: 20px; }
.footer-brand p { color: #999; }
.site-footer h2 { margin: 0 0 18px; color: var(--white); font-size: .88rem; }
.site-footer > div:not(.footer-bottom) > a { display: block; width: fit-content; margin: 9px 0; color: #aaa; font-size: .9rem; }
.site-footer a:hover { color: var(--green-bright); }
.footer-bottom { position: absolute; left: max(var(--pad), calc((100% - var(--container)) / 2)); right: max(var(--pad), calc((100% - var(--container)) / 2)); bottom: 30px; display: flex; justify-content: space-between; padding-top: 18px; border-top: 1px solid var(--line); color: #777; font-size: .78rem; }
.floating-cta { display: none; }

/* Plantillas interiores: página de tratamiento y artículo editorial. */
.inner-hero { display: grid; grid-template-columns: .9fr 1.1fr; height: 620px; min-height: 0; }
.inner-hero-copy { padding: 38px var(--pad) 72px max(var(--pad), calc((100vw - var(--container)) / 2)); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.breadcrumbs { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 0 0 64px; color: #9c9c9c; font-size: .76rem; }
.breadcrumbs a:hover { color: var(--green-bright); }
.inner-hero h1 { max-width: 820px; margin: 0; font-size: clamp(2.45rem, 3.5vw, 4.6rem); line-height: .98; letter-spacing: -.045em; }
.inner-summary { max-width: 670px; margin: 0 0 30px; color: #ddd; font-size: clamp(1.05rem, 1.5vw, 1.35rem); line-height: 1.42; }
.article-meta { display: flex; gap: 28px; margin: 0; color: #aaa; font-size: .82rem; }
.article-meta span + span::before { content: "·"; margin-right: 28px; }
.inner-hero-media { height: 620px; min-height: 0; margin: 0; overflow: hidden; background: #111; }
.inner-hero-media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.68) contrast(1.04); }
.inner-hero-media-branded img { object-position: 72% center; filter: saturate(.9) contrast(1.02); }
.inner-hero-media-pilates img { object-position: 32% center; filter: saturate(.92) contrast(1.02); }
.content-shell { display: grid; grid-template-columns: 220px minmax(0, 780px) 240px; justify-content: center; align-items: start; gap: clamp(30px, 4vw, 78px); width: min(100% - (var(--pad) * 2), var(--container)); margin: 0 auto; padding: 76px 0 100px; }
.page-toc { position: sticky; top: 112px; padding-right: 26px; border-right: 1px solid var(--line-dark); }
.page-toc p { margin: 0 0 18px; font-weight: 700; }
.page-toc a { display: block; padding: 8px 0; color: #4a4a4a; font-size: .82rem; line-height: 1.35; }
.page-toc a:hover { color: #608700; }
.page-toc .toc-level-3 { padding-left: 14px; color: #666; }
.legacy-content { min-width: 0; color: #292929; font-size: 1.05rem; line-height: 1.72; }
.legacy-content > :first-child { margin-top: 0; }
.legacy-content h2, .legacy-content h3, .legacy-content h4 { scroll-margin-top: 115px; color: var(--ink); line-height: 1.1; letter-spacing: -.035em; }
.legacy-content h2 { margin: 54px 0 18px; padding-top: 28px; border-top: 1px solid var(--line-dark); font-size: clamp(2rem, 3vw, 3rem); }
.legacy-content h3 { margin: 38px 0 12px; font-size: clamp(1.4rem, 2vw, 2rem); }
.legacy-content h4 { margin: 28px 0 10px; font-size: 1.2rem; }
.legacy-content p { margin: 0 0 1.25em; }
.legacy-content ul, .legacy-content ol { margin: 0 0 1.6em; padding-left: 1.35em; }
.legacy-content li { margin: .45em 0; padding-left: .25em; }
.legacy-content a { color: var(--green-dark); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.legacy-content figure, .legacy-content .wp-block-image { margin: 40px 0; }
.legacy-content img { width: auto; max-width: 100%; height: auto; margin: 0 auto; }
.legacy-content iframe { width: 100%; max-width: 100%; border: 0; }
.legacy-content blockquote { margin: 38px 0; padding: 4px 0 4px 28px; border-left: 3px solid var(--green); font-size: 1.25rem; }
.legacy-content table { width: 100%; display: block; overflow-x: auto; border-collapse: collapse; }
.legacy-content code { padding: 2px 6px; background: rgba(19,21,17,.07); border-radius: 3px; font-family: ui-monospace, "SFMono-Regular", "Menlo", "Consolas", monospace; font-size: .92em; word-break: break-word; }

/* --- Salux Estética -------------------------------------------------------
   La página /salux-estetica-salud-y-bienestar-en-cada-tratamiento/ llegó de
   WordPress con su propia maquetación en clases `.se-*` y una hoja de estilo
   incrustada en la propia página. El extractor elimina los <style> del origen,
   con buen criterio, pero eso dejaba estas clases sin ninguna regla: la página
   se veía como una pila de divs sin formato.
   Se les da estilo aquí, con el lenguaje del sitio, en lugar de recuperar el
   CSS de WordPress. -------------------------------------------------------- */
/* `.page-content` es una clase generica de WordPress y site.css la convierte en
   una rejilla de 12 columnas para otras paginas heredadas. En esta, eso metia
   cada tarjeta en una columna de 75 px. Se neutraliza solo cuando dentro hay
   una `.se-section`, sin tocar el resto de paginas que usan esa clase. */
.legacy-content .page-content:has(.se-section) {
  display: block;
  grid-template-columns: none;
}
.legacy-content .se-section { margin: clamp(28px, 4vw, 52px) 0; }
.legacy-content .se-title {
  margin: 0 0 10px;
  font-size: clamp(1.9rem, 3vw, 2.9rem);
  line-height: 1.02;
  letter-spacing: -.045em;
}
.legacy-content .se-subtitle {
  max-width: 62ch;
  margin: 0 0 clamp(26px, 3.4vw, 40px);
  color: #55534e;
  font-size: clamp(1rem, 1.15vw, 1.12rem);
  line-height: 1.6;
}
.legacy-content .se-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 262px), 1fr));
  gap: clamp(14px, 1.6vw, 22px);
  margin: 0;
  padding: 0;
  list-style: none;
}
.legacy-content .se-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 9px;
  padding: clamp(22px, 2.2vw, 30px) clamp(20px, 2vw, 26px) clamp(24px, 2.4vw, 32px);
  background: rgba(255,255,255,.62);
  border: 1px solid rgba(18,18,18,.13);
  transition: transform .34s cubic-bezier(.2,.72,.2,1), box-shadow .34s ease, border-color .34s ease;
}
/* Barra de acento superior. Se despliega al pasar el ratón, como en el resto
   de tarjetas del sitio. */
.legacy-content .se-card::before {
  position: absolute;
  left: 0;
  top: -1px;
  width: 54px;
  height: 3px;
  content: "";
  background: var(--green-dark);
  transition: width .34s cubic-bezier(.2,.72,.2,1);
}
.legacy-content .se-card:hover {
  transform: translateY(-4px);
  border-color: rgba(18,18,18,.3);
  box-shadow: 0 22px 46px -28px rgba(18,18,18,.5);
}
.legacy-content .se-card:hover::before { width: 118px; }
.legacy-content .se-card h3 {
  margin: 2px 0 0;
  font-size: clamp(1.12rem, 1.35vw, 1.32rem);
  line-height: 1.15;
  letter-spacing: -.03em;
}
.legacy-content .se-card p {
  margin: 0;
  color: #55534e;
  font-size: .93rem;
  line-height: 1.58;
}
/* Etiqueta de categoría. Tres variantes en el contenido de origen:
   cuerpo, facial y bienestar. Se usan los colores de marca, sin inventar
   ninguno nuevo. */
.legacy-content .se-badge {
  align-self: start;
  padding: 5px 11px;
  color: var(--paper);
  background: var(--ink);
  font-size: .64rem;
  font-weight: 750;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.legacy-content .se-badge.cuerpo { color: #10120d; background: var(--green-bright); }
.legacy-content .se-badge.facial { color: var(--white); background: var(--pink-dark); }
.legacy-content .se-badge.bienestar { color: var(--white); background: var(--green-dark); }
.legacy-content .se-card:has(.se-badge.facial)::before { background: var(--pink-dark); }
.legacy-content .se-card:has(.se-badge.bienestar)::before { background: var(--green-dark); }

@media (max-width: 700px) {
  .legacy-content .se-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .legacy-content .se-card,
  .legacy-content .se-card::before { transition: none !important; }
  .legacy-content .se-card:hover { transform: none; }
}
.legacy-content th, .legacy-content td { padding: 10px; border: 1px solid var(--line-dark); text-align: left; }
.ez-toc-section { display: block; position: relative; top: -112px; visibility: hidden; }
.medical-note { margin-top: 56px; padding: 24px 26px; background: rgba(143,189,24,.1); border-left: 3px solid var(--green); }
.medical-note strong { display: block; margin-bottom: 5px; }
.medical-note p { margin: 0; font-size: .9rem; }
.contact-fallback { margin: 34px 0; padding: clamp(24px, 4vw, 42px); background: #e8e6e0; border-left: 3px solid var(--green); }
.contact-fallback strong { display: block; font-size: 1.35rem; }

/* --- Anti-spam de formularios ----------------------------------------------
   .form-trap es la trampa para bots: fuera de pantalla, sin ocupar espacio y
   sin `display:none` (algunos bots ignoran los campos ocultos por display).
   No es accesible a propósito: lleva aria-hidden y tabindex="-1". ---------- */
.form-trap {
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.form-captcha { margin-top: 6px; }
.form-captcha label { display: grid; gap: 6px; }
.form-captcha label > span { font-size: .82rem; font-weight: 650; }
.form-captcha input { max-width: 190px; }
.form-captcha-help { margin: 6px 0 0; color: #6b6b6b; font-size: .76rem; }

/* --- Marca de agua del formulario de Studio -------------------------------
   Simbolo de Studio Salux en la esquina superior derecha, grande y difuminado.
   Ocupa el 35 % del ancho del panel. Es decorativo: va con alt vacio y
   aria-hidden, y nunca recibe el puntero. -------------------------------- */
.contact-form-panel { position: relative; isolation: isolate; overflow: hidden; }
.contact-form-mark {
  position: absolute;
  z-index: -1;
  right: -4%;
  top: -6%;
  width: 35%;
  height: auto;
  opacity: .16;
  filter: blur(2.5px);
  pointer-events: none;
  user-select: none;
}
@media (max-width: 900px) {
  .contact-form-mark { width: 44%; right: -8%; top: -3%; opacity: .13; }
}


/* --- Contenido de terceros bloqueado hasta el consentimiento --------------- */
.consent-frame { position: relative; display: grid; min-height: 260px; height: 100%; background: #1a1b17; border: 1px solid rgba(255,255,255,.14); }
.consent-frame[data-consent-loaded] { min-height: 0; border: 0; }
.consent-frame iframe { display: block; width: 100%; height: 100%; border: 0; }
/* El bloque del video tiene proporcion 16/9 fija en el contenedor. El iframe
   que inserta site.js no traia altura y se quedaba en los 150 px por defecto
   del navegador, dejando una franja negra debajo. Aqui se le da la altura del
   contenedor. */
.context-video-frame .consent-frame,
.context-video-frame .consent-frame iframe { height: 100%; }
.context-video-frame .consent-frame { min-height: 0; }
.consent-frame-placeholder { display: grid; align-content: center; justify-items: start; gap: 12px; padding: clamp(24px, 3.4vw, 46px); color: var(--paper); }
.consent-frame-label { margin: 0; color: var(--green-bright); font-size: .7rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.consent-frame-placeholder > p { max-width: 60ch; margin: 0; color: #cfcfcf; font-size: .92rem; line-height: 1.6; }
.consent-frame-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 4px; }
.consent-frame-actions .text-link { color: var(--paper); }
.consent-frame-note { max-width: 60ch; margin: 4px 0 0; color: #9a9a9a; font-size: .78rem; }
.consent-frame-note a { color: #cfcfcf; text-decoration: underline; }
.contact-map-frame .consent-frame { min-height: 520px; }
@media (max-width: 900px) { .contact-map-frame .consent-frame { min-height: 320px; } }

.form-captcha[data-captcha-error] input { border-color: var(--pink-dark); outline: 2px solid rgba(236,25,134,.28); outline-offset: 1px; }

.contact-fallback p { margin: 8px 0 22px; }
.contact-fallback .button { text-decoration: none; }
.contact-directory { grid-template-columns: 180px minmax(0, 1fr); }
.contact-intro, .contact-options { grid-column: 2; }
.contact-intro h2 { max-width: 900px; margin: 0 0 22px; font-size: clamp(2.3rem, 3.55vw, 4.25rem); line-height: 1; letter-spacing: -.05em; }
.contact-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 42px; background: var(--line-dark); border: 1px solid var(--line-dark); }
.contact-options article { min-width: 0; min-height: 330px; padding: clamp(28px, 3.5vw, 48px); background: var(--paper); }
.contact-options h3 { margin: 42px 0 14px; font-size: clamp(1.45rem, 2vw, 2.05rem); }
.contact-options article > p:last-child { color: #555; }
.contact-main-link { display: block; min-height: 48px; overflow-wrap: anywhere; color: var(--green-dark); font-size: clamp(1rem, 1.25vw, 1.22rem); font-weight: 680; }
.studio-contact-page .contact-main-link { color: #ae0f65; }
.contact-hub { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(46px, 7vw, 108px); align-items: start; padding: clamp(70px, 8vw, 112px) max(var(--pad), calc((100% - var(--container)) / 2)); background: var(--paper); }
.contact-details > h2, .contact-form-panel > h2 { margin: 0 0 20px; font-size: clamp(2.15rem, 3.25vw, 3.85rem); line-height: 1; letter-spacing: -.05em; }
.contact-details > p:not(.label) { max-width: 590px; margin: 0 0 36px; color: #555; font-size: 1.06rem; }
.contact-card-stack { display: grid; gap: 12px; }
.contact-detail-card { display: grid; grid-template-columns: 52px minmax(0, 1fr) 24px; align-items: center; gap: 18px; min-height: 112px; padding: 17px 20px; color: var(--ink); background: #ebe8e1; border: 1px solid transparent; transition: color .25s ease, background-color .25s ease, border-color .25s ease, transform .25s ease; }
.contact-detail-card:hover { color: var(--paper); background: var(--ink); border-color: var(--ink); transform: translateX(5px); }
.contact-card-icon { display: grid; place-items: center; width: 52px; height: 52px; color: var(--green-dark); background: var(--paper); border-radius: 50%; }
.contact-card-icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.contact-detail-card:nth-child(2) .contact-card-icon svg { fill: none; }
.contact-detail-card span:not(.contact-card-icon), .contact-detail-card small, .contact-detail-card strong, .contact-detail-card em { display: block; min-width: 0; }
.contact-detail-card small { margin-bottom: 3px; color: #666; font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.contact-detail-card strong { overflow-wrap: anywhere; font-size: clamp(1rem, 1.25vw, 1.2rem); line-height: 1.2; }
.contact-detail-card:nth-child(3) strong { font-size: clamp(.86rem, 1.05vw, 1.06rem); }
.contact-detail-card em { margin-top: 4px; color: #666; font-size: .8rem; font-style: normal; }
.contact-detail-card > b { color: var(--green-dark); font-size: 1.2rem; }
.contact-detail-card:hover small, .contact-detail-card:hover em { color: #aaa; }
.contact-detail-card:hover .contact-card-icon { color: var(--ink); background: var(--green-bright); }
.contact-hub-studio .contact-card-icon, .contact-hub-studio .contact-detail-card > b { color: var(--pink-dark); }
.contact-hub-studio .contact-detail-card:hover .contact-card-icon { color: var(--ink); background: var(--pink); }
.contact-form-panel { padding: clamp(32px, 4.5vw, 62px); color: var(--paper); background: var(--ink); }
.contact-form { display: grid; gap: 20px; margin-top: 36px; }
.contact-form .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.contact-form label:not(.form-consent) { display: grid; gap: 8px; color: #aaa; font-size: .72rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.contact-form input:not([type="checkbox"]), .contact-form select, .contact-form textarea { width: 100%; min-height: 50px; padding: 12px 14px; color: var(--paper); background: #181818; border: 1px solid #414141; border-radius: 0; font: inherit; font-size: .96rem; text-transform: none; transition: border-color .2s ease, background-color .2s ease; }
.contact-form textarea { min-height: 128px; resize: vertical; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { outline: none; background: #1d1d1d; border-color: var(--green-bright); }
.contact-hub-studio .contact-form input:focus, .contact-hub-studio .contact-form select:focus, .contact-hub-studio .contact-form textarea:focus { border-color: var(--pink); }
.contact-form option { color: var(--ink); background: var(--paper); }
.form-consent { display: flex; align-items: flex-start; gap: 11px; color: #bbb; font-size: .82rem; line-height: 1.45; }
.form-consent input { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 2px; accent-color: var(--green-bright); }
.contact-hub-studio .form-consent input { accent-color: var(--pink); }
.form-consent a { color: var(--paper); text-decoration: underline; text-underline-offset: 3px; }
.contact-form .button { justify-self: start; margin-top: 4px; border: 0; cursor: pointer; }
.form-helper { max-width: 560px; margin: -3px 0 0; color: #888; font-size: .76rem; line-height: 1.45; }
.form-status { min-height: 20px; margin: 0; color: var(--green-bright); font-size: .82rem; }
.contact-hub-studio .form-status { color: var(--pink); }
.contact-map { display: grid; grid-template-columns: minmax(0, .58fr) minmax(0, 1.42fr); gap: clamp(38px, 6vw, 96px); align-items: center; padding: clamp(66px, 8vw, 108px) max(var(--pad), calc((100% - var(--container)) / 2)); background: #e8e5de; }
.contact-map-copy h2 { max-width: 520px; margin: 0 0 22px; font-size: clamp(2.2rem, 3.3vw, 4rem); line-height: 1; letter-spacing: -.05em; }
.contact-map-copy > p:not(.label) { margin: 0 0 25px; color: #555; font-size: 1.05rem; }
.contact-map-frame { position: relative; min-height: 520px; overflow: hidden; background: #d2d0ca; border: 1px solid var(--line-dark); }
.contact-map-frame iframe { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.contact-guidance { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(44px, 8vw, 120px); padding: 78px max(var(--pad), calc((100% - var(--container)) / 2)); }
.contact-guidance h2 { max-width: 720px; margin: 0; font-size: clamp(2.25rem, 3.5vw, 4.15rem); line-height: 1; letter-spacing: -.05em; }
.contact-guidance > div:last-child { align-self: end; }
.contact-guidance > div:last-child p { max-width: 650px; margin: 0 0 28px; color: #c7c7c7; }
.not-found { min-height: 100svh; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: var(--pad) max(var(--pad), calc((100% - 920px) / 2)); }
.not-found > img { width: auto; height: 64px; margin-bottom: 80px; }
.not-found h1 { max-width: 850px; margin: 0 0 24px; font-size: clamp(3.6rem, 8vw, 7.8rem); line-height: .9; letter-spacing: -.07em; }
.not-found > p:not(.eyebrow) { max-width: 560px; margin: 0 0 34px; color: #bbb; font-size: 1.2rem; }
.not-found > div { display: flex; align-items: center; gap: 28px; }
.author-card, .call-card { position: sticky; top: 112px; padding: 24px; background: #e8e6e0; }
.author-card > p, .call-card > p { margin: 0 0 18px; font-weight: 700; font-size: 1.1rem; line-height: 1.2; }
.author-card > p::after { content: ""; display: block; width: 28px; height: 2px; margin-top: 14px; background: var(--green); }
.author-card img { width: 100%; aspect-ratio: 4/5; margin-bottom: 16px; object-fit: cover; object-position: center top; filter: grayscale(1); }
/* Cuando la autoria es el equipo no hay retrato: se usa el logotipo, que es
   apaisado 3,82:1. Recortarlo a 4/5 con object-fit: cover dejaba a la vista
   el 21 % central de la marca, ampliado y en gris. Aqui se muestra entero. */
.author-card-team img { aspect-ratio: 3 / 2; padding: 22px; background: var(--white); object-fit: contain; filter: none; }
.author-card strong, .author-card > span { display: block; }
.author-card > span { margin-top: 3px; color: #666; font-size: .78rem; }
.author-card > a { display: flex; justify-content: space-between; margin-top: 20px; padding-top: 14px; border-top: 1px solid var(--line-dark); color: var(--green-dark); font-size: .82rem; }
.call-card > span { display: block; margin-bottom: 24px; color: #555; font-size: .88rem; }
.call-card .button { width: 100%; font-size: .78rem; }

@media (max-width: 1050px) {
  body.menu-open { overflow: hidden; }
  .site-header { height: 82px; }
  .brand-studio, .brand-divider { display: none; }
  .menu-toggle { display: flex; align-items: center; gap: 12px; cursor: pointer; }
  .menu-toggle i, .menu-toggle i::before { display: block; width: 24px; height: 1px; background: currentColor; content: ""; transition: transform .2s ease; }
  .menu-toggle i::before { transform: translateY(-7px); }
  .menu-toggle[aria-expanded="true"] i { transform: rotate(45deg); }
  .menu-toggle[aria-expanded="true"] i::before { transform: rotate(-90deg); }
  /* 2026-09-03. `opacity: 0` + `pointer-events: none` ocultaba el menu al raton
     pero NO al teclado ni al lector de pantalla: a 390 px, con el menu cerrado,
     Shift+Tab desde el boton Menu llevaba el foco a «Pide cita», fuera de la
     pantalla y sin marca visible. `visibility: hidden` lo saca del orden de
     tabulacion y del arbol de accesibilidad; va en la transicion para que la
     animacion de cierre siga viendose los 280 ms. */
  .main-nav { position: fixed; inset: 82px 0 auto; display: grid; gap: 0; padding: 18px var(--pad) 30px; background: var(--black); border-bottom: 1px solid var(--line); transform: translateY(-140%); opacity: 0; visibility: hidden; pointer-events: none; transition: transform .28s ease, opacity .2s ease, visibility .28s ease; }
  .main-nav.is-open { transform: none; opacity: 1; visibility: visible; pointer-events: auto; }
  .main-nav > a { padding: 16px 0; border-bottom: 1px solid var(--line); }
  .main-nav .nav-cta { margin-top: 16px; padding-left: 18px; }
  .hero, .hero-stage, .hero-slide { min-height: 760px; }
  .hero-slide { grid-template-columns: .9fr 1.1fr; }
  .hero h1, .hero h2 { font-size: clamp(3.5rem, 8vw, 6rem); }
  .hero-media { min-height: 660px; }
  .treatment-layout { grid-template-columns: 1fr; }
  .treatment-image { min-height: 440px; }
  .appointment-section { grid-template-columns: 1fr 1fr; }
  .appointment-copy { grid-column: 1 / -1; }
  .content-shell { grid-template-columns: 190px minmax(0, 1fr); }
  .author-card, .call-card { position: static; grid-column: 2; display: grid; grid-template-columns: 100px 1fr; gap: 8px 18px; align-items: start; }
  .author-card > p, .call-card > p { grid-column: 1 / -1; }
  .author-card img { grid-row: 2 / span 3; }
}

/* Identidad de los dos ámbitos y utilidades globales. */
.brand {
  flex: 0 0 150px;
  width: 150px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.brand img,
.brand-clinic img,
.brand-studio img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.brand-studio img {
  object-fit: cover;
  object-position: center top;
}
.brand-divider { flex: 0 0 1px; height: 36px; }
.footer-brand img { width: min(100%, 220px); height: auto; }
/* Logos de las tarjetas de espacio.
   Antes: caja fija de 190x52 y `object-fit: cover` en el de Studio, que tiene
   proporcion 2,72 frente a 3,65 de la caja. Resultado: el logo de Studio salia
   recortado por los lados. Ahora manda la ALTURA y el ancho se ajusta solo, con
   `contain` en los dos: un logo no se recorta nunca. */
.space-logo {
  flex: 0 0 auto;
  width: auto;
  max-width: 100%;
  height: clamp(58px, 6.4vw, 82px);
  display: flex;
  align-items: center;
  overflow: visible;
}
.space-logo img,
.studio-card .space-logo img {
  width: auto;
  max-width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: left center;
}
/* El logo de Studio es un JPG con fondo negro solido (comprobado: las cuatro
   esquinas son 0,0,0). Sobre la tarjeta oscura se veia como un rectangulo
   pegado. `screen` hace que el negro puro devuelva el fondo, asi que la caja
   desaparece y el logo queda flotando. No hace falta rehacer el archivo. */
.studio-card .space-logo img {
  mix-blend-mode: screen;
}
.space-card > span:not(.space-logo) { flex: 1 0 100%; }

.footer-legal button {
  display: inline-block;
  width: fit-content;
  margin: 9px 0;
  padding: 0;
  color: #aaa;
  background: none;
  border: 0;
  cursor: pointer;
  font-size: .9rem;
  text-align: left;
}
.footer-legal button:hover { color: var(--green-bright); }
.footer-credit {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: fit-content;
  padding: 7px 12px;
  color: #bdbdbd;
  border: 1px solid #333;
  border-radius: 999px;
  transition: color .2s ease, border-color .2s ease, background .2s ease;
}
.footer-credit:hover { color: var(--white); border-color: var(--green); background: rgba(143,189,24,.08); }

.floating-tools {
  position: fixed;
  z-index: 72;
  right: max(18px, env(safe-area-inset-right));
  bottom: max(22px, env(safe-area-inset-bottom));
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  transition: opacity .2s ease, transform .2s ease;
}
.scroll-top,
.whatsapp-button {
  width: 58px;
  height: 58px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  border: 0;
  border-radius: 999px 0 0 999px;
  box-shadow: 0 10px 34px rgba(0,0,0,.24);
}
.scroll-top {
  justify-content: center;
  color: var(--white);
  background: #111;
  border: 1px solid #393939;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(10px);
  transition: opacity .2s ease, visibility .2s ease, transform .2s ease, background .2s ease;
}
.scroll-top.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
.scroll-top:hover { background: #242424; }
.scroll-top svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.whatsapp-button {
  overflow: hidden;
  color: #071d0d;
  background: #25d366;
  transition: width .28s ease, transform .2s ease, box-shadow .2s ease;
}
.whatsapp-button:hover,
.whatsapp-button:focus-visible { width: 206px; transform: translateY(-2px); box-shadow: 0 14px 38px rgba(0,0,0,.3); }
.whatsapp-button svg {
  flex: 0 0 58px;
  width: 58px;
  height: 58px;
  padding: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.whatsapp-label {
  max-width: 0;
  overflow: hidden;
  opacity: 0;
  white-space: nowrap;
  font-weight: 750;
  font-size: .9rem;
  transition: max-width .28s ease, opacity .2s ease;
}
.whatsapp-button:hover .whatsapp-label,
.whatsapp-button:focus-visible .whatsapp-label { max-width: 136px; opacity: 1; }

.cookie-banner {
  position: fixed;
  z-index: 100;
  left: max(18px, env(safe-area-inset-left));
  right: max(18px, env(safe-area-inset-right));
  bottom: max(18px, env(safe-area-inset-bottom));
  width: min(1180px, calc(100% - 36px));
  max-height: calc(100svh - 36px);
  margin: auto;
  overflow-y: auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px 34px;
  align-items: center;
  padding: 26px;
  color: var(--white);
  background: #101010;
  border: 1px solid #3c3c3c;
  box-shadow: 0 22px 70px rgba(0,0,0,.45);
}
.cookie-copy p { margin: 0 0 6px; color: var(--green-bright); font-weight: 750; font-size: 1.08rem; }
.cookie-copy span { display: block; max-width: 760px; color: #ccc; font-size: .9rem; }
.cookie-copy a { color: var(--white); text-decoration: underline; text-underline-offset: 3px; }
.cookie-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.cookie-button {
  min-height: 46px;
  padding: 10px 16px;
  color: var(--white);
  border: 1px solid #555;
  border-radius: 999px;
  cursor: pointer;
  font-size: .82rem;
  font-weight: 700;
}
.cookie-secondary { background: transparent; }
.cookie-secondary:hover { border-color: #999; background: #202020; }
.cookie-primary { color: #101010; background: var(--green-bright); border-color: var(--green-bright); }
.cookie-primary:hover { background: #b2df36; }
.cookie-preferences { grid-column: 1 / -1; padding-top: 20px; border-top: 1px solid #333; }
.cookie-preferences fieldset { margin: 0 0 18px; padding: 0; border: 0; }
.cookie-preferences legend { margin-bottom: 10px; font-weight: 750; }
.cookie-preferences label { display: flex; justify-content: space-between; gap: 28px; align-items: center; padding: 13px 0; border-top: 1px solid #2b2b2b; }
.cookie-preferences strong,
.cookie-preferences small { display: block; }
.cookie-preferences small { margin-top: 2px; color: #aaa; }
.cookie-preferences input { width: 22px; height: 22px; accent-color: var(--green); }
.cookie-open .floating-tools { opacity: 0; pointer-events: none; transform: translateX(20px); }

@media (max-width: 1180px) {
  .brand { flex-basis: 128px; width: 128px; height: 36px; }
}

@media (max-width: 1050px) {
  .brand-studio { display: flex; }
  .brand-divider { display: block; }
  .header-inner { gap: 14px; }
}

@media (max-width: 760px) {
  .brand { flex-basis: 104px; width: 104px; height: 29px; }
  .brand-clinic img { height: 100%; }
  .brand-divider { height: 28px; }
  .header-inner { gap: 9px; }
  .menu-toggle { gap: 7px; }
  .menu-toggle span { font-size: .8rem; }
  .space-logo { flex-basis: auto; width: auto; height: clamp(50px, 11vw, 66px); }
  .space-card img,
  .studio-card img { width: auto; height: 100%; }
  .footer-bottom { gap: 10px; }
  .floating-tools { right: 12px; bottom: 82px; }
  .scroll-top,
  .whatsapp-button { width: 52px; height: 52px; }
  .whatsapp-button:hover,
  .whatsapp-button:focus-visible { width: 52px; transform: none; }
  .whatsapp-button svg { flex-basis: 52px; width: 52px; height: 52px; padding: 13px; }
  .whatsapp-label { display: none; }
  .cookie-open .floating-cta { display: none; }
  .cookie-banner { grid-template-columns: 1fr; gap: 18px; padding: 22px; }
  .cookie-actions { justify-content: stretch; }
  .cookie-button { flex: 1 1 145px; }
}

@media (max-width: 390px) {
  .brand { flex-basis: 89px; width: 89px; height: 25px; }
  .brand-divider { height: 24px; }
  .header-inner { gap: 7px; }
  .menu-toggle span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .cookie-banner { left: 10px; right: 10px; bottom: 10px; width: calc(100% - 20px); padding: 18px; }
  .cookie-actions { display: grid; }
}

@media (prefers-reduced-motion: reduce) {
  .scroll-top,
  .whatsapp-button,
  .whatsapp-label,
  .floating-tools { transition: none; }
}

/* Técnica clínica: composición editorial común, contenido específico por URL. */
.technique-editorial { overflow: clip; }
.technique-intro,
.technique-principles,
.technique-process,
.technique-limits,
.technique-faq,
.technique-next,
.technique-source { width: min(100%, var(--container)); margin-inline: auto; }
.technique-intro { display: grid; grid-template-columns: minmax(240px, .65fr) minmax(420px, 1.35fr); gap: clamp(42px, 8vw, 140px); padding: clamp(72px, 9vw, 150px) var(--pad); border-bottom: 1px solid var(--line-dark); }
.technique-intro h2,
.technique-principles h2,
.technique-process h2,
.technique-limits h2,
.technique-faq h2 { margin: 0; font-size: clamp(2.35rem, 4.3vw, 5.2rem); line-height: .95; letter-spacing: -.06em; }
.technique-lead { max-width: 830px; margin: 0; font-size: clamp(1.35rem, 2.1vw, 2.2rem); line-height: 1.35; }
.technique-principles { padding: clamp(72px, 8vw, 128px) var(--pad); }
.technique-principles > div { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 64px; border: 1px solid var(--line); }
.technique-principles article { min-height: 320px; padding: clamp(28px, 3vw, 48px); border-right: 1px solid var(--line); }
.technique-principles article:last-child { border-right: 0; }
.technique-principles article > span,
.technique-process li > span { color: var(--green); font-size: .8rem; letter-spacing: .1em; }
.technique-principles h3,
.technique-process h3 { margin: 52px 0 18px; font-size: clamp(1.55rem, 2.1vw, 2.25rem); line-height: 1.05; letter-spacing: -.045em; }
.technique-principles p { max-width: 36ch; margin: 0; color: #c8c8c8; }
.technique-process { padding: clamp(76px, 9vw, 150px) var(--pad); }
.technique-process > header { display: grid; grid-template-columns: 1.2fr .8fr; gap: 80px; align-items: end; }
.technique-process > header > p { max-width: 560px; margin: 0; font-size: 1.15rem; }
.technique-process ol { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 70px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.technique-process li { padding: 34px clamp(22px, 3vw, 46px) 48px 0; border-right: 1px solid var(--line-dark); }
.technique-process li + li { padding-left: clamp(22px, 3vw, 46px); }
.technique-process li:last-child { border-right: 0; }
.technique-process h3 { margin-top: 30px; }
.technique-process li p { margin: 0; max-width: 38ch; }
.technique-limits { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(50px, 10vw, 170px); padding: clamp(70px, 8vw, 126px) var(--pad); border-top: 1px solid var(--line-dark); background: #e9e6df; }
.technique-limits > p { max-width: 760px; margin: 0; padding-left: 34px; border-left: 3px solid var(--green); font-size: clamp(1.2rem, 1.6vw, 1.55rem); line-height: 1.52; }
.technique-faq { padding: clamp(72px, 8vw, 128px) var(--pad); }
.technique-faq > div { margin-top: 54px; border-top: 1px solid var(--line); }
.technique-faq details { border-bottom: 1px solid var(--line); }
.technique-faq summary,
.technique-source summary { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 26px 0; cursor: pointer; list-style: none; font-size: clamp(1.05rem, 1.5vw, 1.3rem); font-weight: 650; }
.technique-faq summary::-webkit-details-marker,
.technique-source summary::-webkit-details-marker { display: none; }
.technique-faq summary b,
.technique-source summary b { color: var(--green); font-size: 1.4rem; transition: transform .2s ease; }
.technique-faq details[open] summary b,
.technique-source[open] summary b { transform: rotate(45deg); }
.technique-faq details p { max-width: 820px; margin: -4px 0 28px; color: #c8c8c8; }
.technique-next { padding: 54px var(--pad) 80px; }
.technique-next > div { display: flex; flex-wrap: wrap; gap: 12px; }
.technique-next a { display: inline-flex; justify-content: space-between; gap: 32px; min-width: min(100%, 300px); padding: 18px 20px; border: 1px solid var(--line-dark); background: rgba(255,255,255,.42); font-weight: 650; }
.technique-next a:hover { color: var(--green-dark); border-color: var(--green); }
.technique-source { margin-bottom: 90px; padding: 0 var(--pad); border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.technique-source > .legacy-content { width: min(100%, 980px); margin: 0 auto; padding: 20px 0 70px; }

@media (max-width: 900px) {
  .technique-intro,
  .technique-process > header,
  .technique-limits { grid-template-columns: 1fr; gap: 34px; }
  .technique-principles > div,
  .technique-process ol { grid-template-columns: 1fr; }
  .technique-principles article { min-height: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .technique-principles article:last-child { border-bottom: 0; }
  .technique-principles h3 { margin-top: 28px; }
  .technique-process li,
  .technique-process li + li { padding: 30px 0 36px; border-right: 0; border-bottom: 1px solid var(--line-dark); }
  .technique-process li:last-child { border-bottom: 0; }
  .technique-limits > p { padding: 0 0 0 22px; }
}

/* Tratamientos: sistema editorial común con contenido específico por servicio. */
.treatment-editorial { overflow: clip; background: var(--paper); }
.treatment-orientation,
.treatment-focus,
.treatment-process,
.treatment-limits,
.treatment-faq,
.treatment-next,
.treatment-source { width: min(100%, var(--container)); margin-inline: auto; }
.treatment-orientation { display: grid; grid-template-columns: minmax(280px, .75fr) minmax(420px, 1.25fr); gap: clamp(46px, 9vw, 150px); padding: clamp(72px, 9vw, 148px) var(--pad); }
.treatment-orientation h2,
.treatment-focus h2,
.treatment-process h2,
.treatment-limits h2,
.treatment-faq h2 { margin: 0; font-size: clamp(2.4rem, 4.5vw, 5.3rem); line-height: .94; letter-spacing: -.065em; }
.treatment-orientation > p { align-self: end; max-width: 820px; margin: 0; font-size: clamp(1.28rem, 1.85vw, 1.85rem); line-height: 1.45; }
.treatment-focus { width: 100%; max-width: none; padding: clamp(74px, 8vw, 126px) max(var(--pad), calc((100% - var(--container)) / 2)); }
.treatment-focus > header { display: grid; grid-template-columns: .65fr 1.35fr; gap: 48px; align-items: end; margin-bottom: 54px; }
.treatment-focus > div { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #343434; border-left: 1px solid #343434; }
.treatment-focus article { min-height: 310px; padding: clamp(28px, 3vw, 46px); border-right: 1px solid #343434; border-bottom: 1px solid #343434; }
.treatment-focus article > span { color: var(--green); font-size: .78rem; letter-spacing: .12em; }
.treatment-focus h3 { margin: 62px 0 18px; color: #fff; font-size: clamp(1.5rem, 2vw, 2.25rem); line-height: 1.05; letter-spacing: -.04em; }
.treatment-focus article p { max-width: 38ch; margin: 0; color: #bcbcbc; }
.treatment-process { padding: clamp(76px, 9vw, 142px) var(--pad); }
.treatment-process > header { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(48px, 9vw, 140px); align-items: end; }
.treatment-process > header > p { max-width: 600px; margin: 0; color: #555; font-size: 1.1rem; }
.treatment-process ol { display: grid; grid-template-columns: repeat(3, 1fr); margin: 64px 0 0; padding: 0; border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); list-style: none; }
.treatment-process li { padding: 34px clamp(22px, 3vw, 46px) 48px 0; border-right: 1px solid var(--line-dark); }
.treatment-process li + li { padding-left: clamp(22px, 3vw, 46px); }
.treatment-process li:last-child { border-right: 0; }
.treatment-process li > span { color: var(--green-dark); font-size: .78rem; letter-spacing: .12em; }
.treatment-process h3 { margin: 30px 0 16px; font-size: clamp(1.5rem, 2vw, 2.2rem); letter-spacing: -.04em; }
.treatment-process li p { max-width: 38ch; margin: 0; }
.treatment-limits { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(50px, 9vw, 150px); padding: clamp(72px, 8vw, 122px) var(--pad); background: #e7e4dd; }
.treatment-limits > p { align-self: end; max-width: 780px; margin: 0; padding: 30px 0 30px 34px; border-left: 3px solid var(--green); font-size: clamp(1.18rem, 1.6vw, 1.5rem); line-height: 1.55; }
.treatment-faq { width: 100%; max-width: none; padding: clamp(74px, 8vw, 126px) max(var(--pad), calc((100% - var(--container)) / 2)); }
.treatment-faq { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(48px, 9vw, 150px); }
.treatment-faq > div { border-top: 1px solid #353535; }
.treatment-faq details { border-bottom: 1px solid #353535; }
.treatment-faq summary { display: flex; justify-content: space-between; gap: 28px; padding: 26px 0; cursor: pointer; list-style: none; color: #fff; font-weight: 700; }
.treatment-faq summary::-webkit-details-marker { display: none; }
.treatment-faq summary b { color: var(--green); font-size: 1.4rem; transition: transform .2s ease; }
.treatment-faq details[open] summary b { transform: rotate(45deg); }
.treatment-faq details p { max-width: 780px; margin: 0 0 30px; color: #bfbfbf; }
.treatment-next { padding: 62px var(--pad) 86px; }
.treatment-next > div { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 18px; border-top: 1px solid var(--line-dark); border-left: 1px solid var(--line-dark); }
.treatment-next a { display: flex; justify-content: space-between; gap: 24px; padding: 26px; border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); font-weight: 700; }
.treatment-next a:hover { color: var(--green-dark); background: rgba(168,210,27,.08); }
.treatment-source { margin-bottom: 90px; padding: 0 var(--pad); border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.treatment-source > summary { display: flex; justify-content: space-between; gap: 28px; padding: 28px 0; cursor: pointer; list-style: none; font-weight: 750; }
.treatment-source > summary::-webkit-details-marker { display: none; }
.treatment-source > summary b { color: var(--green-dark); font-size: 1.45rem; transition: transform .2s ease; }
.treatment-source[open] > summary b { transform: rotate(45deg); }
.treatment-source-note { max-width: 900px; margin: 26px auto; padding: 26px; border-left: 3px solid var(--green); background: rgba(168,210,27,.08); }
.treatment-source-note strong { display: block; margin-bottom: 8px; }
.treatment-source-note p { margin: 0; }
.treatment-source .legacy-content { width: min(100%, 1040px); margin: 0 auto; padding: 24px 0 70px; }

@media (max-width: 900px) {
  .treatment-orientation,
  .treatment-focus > header,
  .treatment-process > header,
  .treatment-limits,
  .treatment-faq { grid-template-columns: 1fr; gap: 34px; }
  .treatment-focus > div,
  .treatment-process ol { grid-template-columns: 1fr; }
  .treatment-focus article { min-height: 0; }
  .treatment-focus h3 { margin-top: 32px; }
  .treatment-process li,
  .treatment-process li + li { padding: 30px 0 36px; border-right: 0; border-bottom: 1px solid var(--line-dark); }
  .treatment-process li:last-child { border-bottom: 0; }
  .treatment-next > div { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  :root { --pad: 20px; }
  body { padding-bottom: 66px; }
  .brand-clinic img { height: 42px; }
  .hero, .hero-stage, .hero-slide { min-height: calc(100svh - 82px); }
  .hero-slide { display: block; }
  .hero-copy { position: relative; z-index: 2; min-height: calc(100svh - 82px); padding-top: 42px; padding-bottom: 188px; }
  .hero h1, .hero h2 { font-size: clamp(3.15rem, 15vw, 5.15rem); text-shadow: 0 2px 24px rgba(0,0,0,.48); }
  .hero-intro { font-size: 1.2rem; }
  .hero-actions .text-link { display: none; }
  .hero-media { position: absolute; z-index: 0; inset: 0; min-height: 100%; opacity: .66; }
  .hero-media::after { background: linear-gradient(90deg, rgba(0,0,0,.86), rgba(0,0,0,.42)), linear-gradient(0deg, rgba(0,0,0,.9), transparent 48%, rgba(0,0,0,.24)); }
  .hero-media figcaption { right: 18px; bottom: 180px; }
  .hero-media-facade > img { object-position: center 20%; }
  .hero-media-clinic > img { object-position: center 42%; }
  .hero-media-studio > img { object-position: 66% center; }
  .hero-controls { grid-template-columns: 42px minmax(0, 1fr) 42px; gap: 4px; min-height: 96px; bottom: 66px; padding: 14px 12px; background: linear-gradient(0deg, rgba(5,5,5,.96), rgba(5,5,5,.72), transparent); }
  .hero-pause { display: none; }
  .hero-arrow { width: 38px; height: 38px; }
  .hero-pagination button { padding: 16px 5px 0; align-items: center; }
  .hero-pagination small { display: none; }
  .hero-choice-actions { width: 100%; }
  .treatment-browser { padding: 48px var(--pad) 58px; }
  .treatment-explorer-heading,
  .treatment-catalog .treatment-explorer-heading { grid-template-columns: 1fr; gap: 18px; margin-bottom: 28px; }
  .treatment-explorer-heading h2,
  .treatment-catalog .treatment-explorer-heading h2 { font-size: clamp(2rem, 9vw, 3rem); }
  .treatment-explorer-heading > p { font-size: .94rem; }
  .treatment-layout,
  .treatment-catalog .treatment-layout { grid-template-columns: 1fr; gap: 22px; }
  .treatment-image,
  .treatment-catalog .treatment-image { position: relative; top: auto; height: auto; min-height: 310px; aspect-ratio: 4 / 3; }
  .treatment-image figcaption { grid-template-columns: 52px minmax(0, 1fr); padding: 22px; }
  .treatment-image figcaption > strong { font-size: 1.45rem; }
  .treatment-image figcaption > p { display: none; }
  .treatment-list,
  .treatment-catalog .treatment-list { display: grid; grid-template-columns: 1fr; gap: 8px; border-top: 0; }
  .treatment-item,
  .treatment-catalog .treatment-item { grid-template-columns: 84px 34px minmax(0, 1fr) 22px; min-height: 78px; padding: 9px; gap: 8px; border: 1px solid rgba(255,255,255,.13); background: #0d0d0d; font-size: 1rem; }
  .treatment-item:hover, .treatment-item.is-active { transform: none; border-color: rgba(168,210,27,.72); }
  .treatment-item-thumb { display: block; grid-column: 1; grid-row: 1; width: 84px; height: 58px; overflow: hidden; }
  .treatment-item-thumb img { width: 100%; height: 100%; object-fit: cover; }
  .treatment-item-index { grid-column: 2; grid-row: 1; }
  .treatment-item-title { grid-column: 3; grid-row: 1; }
  .treatment-item-arrow { grid-column: 4; grid-row: 1; }
  .treatment-all { margin-top: 2px; padding-inline: 12px; }
  .editorial-section, .team-section { grid-template-columns: 1fr; width: calc(100% - 40px); padding: 54px 0; gap: 34px; }
  .editorial-section .editorial-copy, .team-section .editorial-copy { order: 1; }
  .editorial-section .editorial-media, .team-section .editorial-media { order: 2; min-height: 380px; }
  .section-heading-row { display: block; }
  .section-heading-row .dark-link { margin-top: 22px; }
  .article-grid { grid-template-columns: 1fr; gap: 38px; }
  .appointment-section { grid-template-columns: 1fr; padding-top: 48px; padding-bottom: 48px; }
  .appointment-copy { grid-column: auto; }
  .space-card { min-height: 105px; padding: 22px; }
  .space-card img { height: 100%; }
  .studio-card img { width: auto; }
  .site-footer { grid-template-columns: 1fr 1fr; padding-bottom: 120px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-bottom { display: grid; gap: 6px; }
  .floating-cta { position: fixed; z-index: 60; display: flex; justify-content: space-between; align-items: center; left: 0; right: 0; bottom: 0; min-height: 66px; padding: 12px 22px; color: var(--black); background: var(--green-bright); font-weight: 700; }
  .inner-hero { display: flex; flex-direction: column; min-height: auto; }
  .inner-hero-copy { min-height: 560px; padding: 32px var(--pad) 58px; }
  .breadcrumbs { margin-bottom: 48px; }
  .inner-hero h1 { font-size: clamp(3rem, 13vw, 5rem); }
  .inner-hero-media { min-height: 360px; }
  .content-shell { display: block; width: calc(100% - 40px); padding: 50px 0 70px; }
  .page-toc { position: static; margin-bottom: 40px; padding: 22px; border: 1px solid var(--line-dark); }
  .page-toc a:nth-of-type(n+7) { display: none; }
  .legacy-content { font-size: 1rem; }
  .legacy-content h2 { margin-top: 42px; }
  .author-card, .call-card { display: block; margin-top: 42px; }
  .author-card img { max-width: 220px; }
}

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

/* Sistema editorial 2026 */
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.eyebrow-pink, .section-kicker.pink, .label-pink { color: var(--pink-dark); }
.section-dark .eyebrow-pink, .section-dark .section-kicker.pink, .section-dark .label-pink { color: var(--pink); }
.accent-pink { background: var(--pink); }
.button-dark { color: var(--ink); background: transparent; }
.button-dark:hover { color: var(--paper); background: var(--ink); transform: translateY(-2px); }
.text-link-dark { color: var(--ink); }
.lead { font-size: clamp(1.08rem, 1.45vw, 1.35rem); line-height: 1.55; color: #343434; }

.site-header { height: 92px; }
.site-header.is-compact { height: 76px; }
.main-nav { display: block; }
.main-nav > ul { display: flex; align-items: center; gap: clamp(12px, 1.25vw, 24px); margin: 0; padding: 0; list-style: none; }
.main-nav li { position: relative; }
.main-nav li > a, .nav-parent > a { display: inline-flex; min-height: 44px; align-items: center; color: #e8e8e8; font-size: .84rem; }
.main-nav li > a.is-active, .nav-parent > a.is-active { color: var(--green-bright); }
.nav-parent { display: flex; align-items: center; }
.submenu-toggle { width: 30px; height: 40px; padding: 0; color: #999; background: none; border: 0; cursor: pointer; }
.submenu { position: absolute; top: calc(100% + 18px); left: -24px; display: grid; grid-template-columns: repeat(2, minmax(190px, 1fr)); width: min(520px, 70vw); padding: 24px; color: var(--paper); background: #111; border: 1px solid var(--line); box-shadow: 0 24px 60px rgba(0,0,0,.38); opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .2s ease, transform .2s ease, visibility .2s; }
.has-submenu:hover .submenu, .has-submenu:focus-within .submenu, .has-submenu.is-open .submenu { opacity: 1; visibility: visible; transform: none; }
.submenu p { grid-column: 1 / -1; margin: 0 0 12px; color: var(--green); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }
.submenu a { display: flex !important; justify-content: space-between; gap: 20px; min-height: 42px !important; padding: 9px 10px; border-bottom: 1px solid var(--line); }
.submenu a:hover { color: var(--green-bright); background: rgba(255,255,255,.04); }
.main-nav > ul > li:nth-last-child(-n+4) .submenu { left: auto; right: 0; }
.nav-search { gap: 7px; }
.nav-search b { color: var(--green); font-size: 1.25rem; font-weight: 400; }
.main-nav .nav-cta { min-height: 42px; color: var(--green-bright); padding: 7px 14px 7px 17px; }

.hero, .hero-slides, .hero-slide { height: min(820px, calc(100svh - 92px)); min-height: 680px; }
.hero-slides { position: relative; }
.hero-slide { grid-template-columns: minmax(360px, .88fr) minmax(560px, 1.12fr); }
.hero-copy { padding-top: clamp(64px, 7vw, 110px); }
.hero h1, .hero h2 { max-width: 620px; font-size: clamp(2.9rem, 4vw, 5.15rem); line-height: .96; letter-spacing: -.05em; }
.hero-copy > p:not(.eyebrow) { max-width: 500px; margin: 0; color: #d2d2d2; font-size: clamp(1.03rem, 1.25vw, 1.24rem); line-height: 1.48; }
.hero-media { height: 100%; min-height: 0; }
.hero-controls { grid-template-columns: 46px minmax(0, 1fr) 46px 46px; min-height: 100px; }
.hero-tabs { display: grid; grid-template-columns: repeat(4, 1fr); }
.hero-tabs button { position: relative; display: flex; align-items: center; gap: 10px; padding: 12px; border-top: 1px solid rgba(255,255,255,.36); text-align: left; }
.hero-tabs button::before { content: ""; position: absolute; left: 0; right: 0; top: -2px; height: 3px; background: transparent; transform: scaleX(0); transform-origin: left; }
.hero-tabs button.is-active { color: var(--green-bright); }
.hero-tabs button.is-active::before { background: currentColor; animation: hero-slide-progress 6.5s linear forwards; }
.hero-tabs button:nth-child(3).is-active { color: var(--pink); }
.hero.is-paused .hero-tabs button.is-active::before,
.hero.is-system-paused .hero-tabs button.is-active::before { animation-play-state: paused; }
@keyframes hero-slide-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.section-heading, .section-heading-light, .archive-feed-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 42px; }
.section-heading h2, .section-heading-light h2, .archive-feed-heading h2 { max-width: 850px; margin: 0; font-size: clamp(2.35rem, 3.7vw, 4.4rem); line-height: .98; letter-spacing: -.05em; }
.section-heading > p, .section-heading-light > p, .archive-feed-heading > p { max-width: 460px; margin: 0; color: #8d8d8d; }
.section-heading-light > p, .archive-feed-heading > p { color: #555; }
.treatment-all { display: flex; justify-content: space-between; align-items: center; min-height: 72px; margin-top: 12px; color: var(--green-bright); border-bottom: 1px solid var(--green); }

.spaces-intro { grid-template-columns: 180px minmax(0, 1fr); }
.spaces-intro .section-kicker, .method-section .section-kicker, .home-guide .section-kicker, .blog-preview .section-kicker, .directory-intro .section-kicker, .team-directory .section-kicker, .testimonial-context .section-kicker, .featured-editorial .section-kicker, .category-lead .section-kicker, .studio-manifesto .section-kicker, .studio-source .section-kicker { display: block; border: 0; }
.section-kicker span { display: block; margin-bottom: 8px; color: var(--green-dark); font-size: 1rem; font-weight: 650; }
.section-kicker p { margin: 0; color: #666; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }
.section-dark .section-kicker span { color: var(--green-bright); }
.spaces-copy h2, .method-copy h2, .home-guide-heading h2, .directory-intro h2, .team-directory-intro h2, .testimonial-context h2, .studio-manifesto h2 { max-width: 980px; margin: 0 0 24px; font-size: clamp(2.25rem, 3.6vw, 4.35rem); line-height: 1; letter-spacing: -.052em; }
.space-editorial-grid { grid-column: 2; display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-top: 16px; background: var(--line-dark); border: 1px solid var(--line-dark); }
.space-editorial-card { min-height: 280px; padding: clamp(28px, 4vw, 54px); background: var(--paper); transition: background .25s ease, color .25s ease; }
.space-editorial-card span { color: var(--green-dark); font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; }
.space-editorial-card strong { display: block; margin: 38px 0 14px; font-size: clamp(1.75rem, 2.4vw, 2.8rem); line-height: 1; }
.space-editorial-card p { max-width: 410px; color: #555; }
.space-editorial-card b { display: block; margin-top: 28px; color: var(--green-dark); font-size: .85rem; }
.space-editorial-card.studio span, .space-editorial-card.studio b { color: var(--pink-dark); }
.space-editorial-card:hover { color: var(--white); background: var(--ink); }
.space-editorial-card:hover p { color: #bbb; }
.space-editorial-card:hover span, .space-editorial-card:hover b { color: var(--green-bright); }
.space-editorial-card.studio:hover span, .space-editorial-card.studio:hover b { color: var(--pink); }

.method-section, .home-guide { grid-template-columns: 180px minmax(0, 1fr); }
.method-steps { grid-column: 2; margin: 24px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line-dark); }
.method-steps li { display: grid; grid-template-columns: 90px 1fr; gap: 24px; padding: 30px 0; border-bottom: 1px solid var(--line-dark); }
.method-steps > li > span { color: var(--green-dark); font-weight: 650; }
.method-steps h3 { margin: 0 0 8px; font-size: clamp(1.35rem, 1.8vw, 1.85rem); }
.method-steps p { max-width: 680px; margin: 0; color: #555; }
.home-guide-columns { grid-column: 2; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 3vw, 52px); margin-top: 28px; }
.home-guide-columns h3 { margin: 0 0 15px; font-size: 1.35rem; }
.home-guide-columns p { color: #4d4d4d; }
.guide-actions { grid-column: 2; display: flex; align-items: center; gap: 28px; margin-top: 28px; }
.home-faq { padding: clamp(66px, 8vw, 112px) max(var(--pad), calc((100% - var(--container)) / 2)); background: #e8e5de; }
.home-faq-intro { display: grid; grid-template-columns: minmax(300px, .9fr) minmax(380px, 1.1fr); align-items: end; gap: clamp(38px, 8vw, 128px); margin-bottom: clamp(38px, 5vw, 66px); }
.home-faq-intro h2 { max-width: 690px; margin: 0; font-size: clamp(2.25rem, 3.5vw, 4.15rem); line-height: 1; letter-spacing: -.05em; }
.home-faq-intro > p { max-width: 580px; margin: 0 0 4px; color: #555; font-size: clamp(1rem, 1.2vw, 1.17rem); }
.faq-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(14px, 1.5vw, 22px); }
.faq-column { display: grid; align-content: start; gap: clamp(12px, 1.25vw, 18px); }
.faq-list details {
  --faq-accent: var(--green-bright);
  position: relative;
  overflow: hidden;
  color: var(--ink);
  background: rgba(255,255,255,.38);
  border: 1px solid rgba(15,15,15,.2);
  transition: color .34s ease, background-color .34s ease, border-color .34s ease, transform .42s cubic-bezier(.2,.7,.2,1), box-shadow .42s ease;
}
.faq-column:nth-child(2) details { --faq-accent: var(--pink); }
/* Barra de acento que se despliega desde la izquierda al pasar y al abrir. */
.faq-list details::before {
  position: absolute;
  z-index: 1;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  content: "";
  background: var(--faq-accent);
  transform: scaleY(0);
  transform-origin: 50% 100%;
  transition: transform .42s cubic-bezier(.2,.7,.2,1);
  pointer-events: none;
}
/* Halo que sigue al puntero sobre la tarjeta. */
.faq-list details::after {
  position: absolute;
  z-index: 0;
  inset: 0;
  content: "";
  background: radial-gradient(circle 220px at var(--faq-x, 50%) var(--faq-y, 50%), color-mix(in srgb, var(--faq-accent) 16%, transparent), transparent 70%);
  opacity: 0;
  transition: opacity .38s ease;
  pointer-events: none;
}
.faq-list details:hover {
  border-color: rgba(15,15,15,.58);
  transform: translateY(-3px);
  box-shadow: 0 14px 34px -22px rgba(15,15,15,.55);
}
.faq-list details:hover::before { transform: scaleY(1); transform-origin: 50% 0; }
.faq-list details:hover::after { opacity: 1; }
.faq-list summary > * { position: relative; z-index: 2; }
.faq-list details[open] { color: var(--paper); background: var(--ink); border-color: var(--ink); transform: none; box-shadow: 0 24px 52px -30px rgba(15,15,15,.75); }
.faq-list details[open]::before { transform: scaleY(1); transform-origin: 50% 0; }
.faq-list details[open]::after { opacity: .55; }
.faq-list summary { display: grid; grid-template-columns: 38px minmax(0, 1fr) 34px; align-items: center; gap: 14px; min-height: 94px; padding: 18px 20px; cursor: pointer; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary:focus-visible { outline: 3px solid var(--green-bright); outline-offset: -4px; }
.faq-list summary strong { font-size: clamp(1rem, 1.22vw, 1.2rem); line-height: 1.18; font-weight: 650; }
.faq-number { align-self: start; padding-top: 3px; color: var(--green-dark); font-size: .72rem; font-weight: 700; letter-spacing: .1em; transition: color .3s ease, transform .3s ease; }
.faq-icon { position: relative; width: 32px; height: 32px; border: 1px solid currentColor; border-radius: 50%; transition: color .3s ease, background-color .3s ease, transform .5s cubic-bezier(.34,1.56,.64,1); }
.faq-icon i { position: absolute; left: 50%; top: 50%; width: 12px; height: 1px; background: currentColor; transform: translate(-50%, -50%); transition: transform .3s ease; }
.faq-icon i:last-child { transform: translate(-50%, -50%) rotate(90deg); }
.faq-list details[open] .faq-number { color: var(--faq-accent); transform: translateY(3px) scale(1.08); }
.faq-list details[open] .faq-icon { color: var(--ink); background: var(--faq-accent); transform: rotate(180deg) scale(1.12); }
.faq-list details[open] .faq-icon i:last-child { transform: translate(-50%, -50%) rotate(180deg); }
.faq-answer { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .46s cubic-bezier(.2,.7,.2,1), opacity .3s ease; }
.faq-answer > div { min-height: 0; overflow: hidden; }
.faq-answer p { max-width: 650px; margin: 0; padding: 0 66px 26px 72px; color: #c8c8c8; font-size: .96rem; line-height: 1.62; }
.faq-list details[open] .faq-answer { grid-template-rows: 1fr; opacity: 1; }
.faq-answer p { filter: blur(4px); transform: translate3d(0, 12px, 0); transition: filter .42s ease .08s, transform .42s cubic-bezier(.2,.7,.2,1) .08s; }
.faq-list details[open] .faq-answer p { filter: blur(0); transform: none; }
/* Cierre suave: site.js mantiene `open` mientras dura la transicion. */
.faq-list details[data-faq-closing] .faq-answer { grid-template-rows: 0fr; opacity: 0; }
.faq-list details[data-faq-closing] .faq-answer p { filter: blur(4px); transform: translate3d(0, 12px, 0); transition-delay: 0s; }

/* Entrada escalonada. --faq-order lo emite el generador en cada <details>. */
@media (prefers-reduced-motion: no-preference) {
  .faq-list[data-faq-reveal] details {
    opacity: 0;
    transform: translate3d(0, 30px, 0);
  }
  .faq-list[data-faq-reveal="in"] details {
    animation: faq-card-in .62s cubic-bezier(.22,.61,.36,1) both;
    animation-delay: calc(var(--faq-order, 0) * 55ms);
  }
}
@keyframes faq-card-in {
  from { opacity: 0; transform: translate3d(0, 30px, 0); }
  to   { opacity: 1; transform: translate3d(0, 0, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .faq-list details,
  .faq-list details::before,
  .faq-list .faq-icon,
  .faq-answer,
  .faq-answer p { transition: none !important; animation: none !important; }
  .faq-answer p { filter: none !important; transform: none !important; }
}

.team-showcase { padding: 76px var(--pad) 90px; }
.team-showcase > * { width: min(100%, var(--container)); margin-left: auto; margin-right: auto; }
.home-team-grid, .team-grid, .related-team { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.team-card { position: relative; min-width: 0; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.team-card-image { display: block; aspect-ratio: .73; overflow: hidden; background: #171717; }
.team-card-image img { width: 100%; height: 100%; object-fit: cover; object-position: center top; filter: saturate(.75); transition: transform .45s ease, filter .3s ease; }
.team-card:hover img { transform: scale(1.025); filter: saturate(1); }
.team-card p { margin: 16px 0 7px; color: #b8b8b8; font-size: .67rem; letter-spacing: .05em; text-transform: uppercase; }
.team-card h3 { margin: 0; padding-right: 24px; font-size: clamp(1.02rem, 1.3vw, 1.32rem); line-height: 1.12; }
.team-card h3 a::after { content: ""; position: absolute; inset: 0; }
.team-card > span { position: absolute; right: 2px; bottom: 20px; color: var(--green-dark); }
.section-dark .team-card > span { color: var(--green-bright); }
.team-all { margin-top: 36px; }
.team-grid { grid-column: 2; grid-template-columns: repeat(3, 1fr); gap: 48px 24px; margin-top: 16px; }
.team-grid .team-card { color: var(--ink); border-color: var(--line-dark); }
.team-grid .team-card p { color: #666; }
.team-grid .team-card > div { margin-top: 13px; color: #555; font-size: .92rem; }

.section-actions { display: flex; align-items: center; gap: 28px; margin-top: 34px; }
.cases-preview { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(40px, 8vw, 120px); padding: 80px max(var(--pad), calc((100% - var(--container)) / 2)); background: #e8e5de; }
.cases-intro h2 { margin: 0 0 20px; font-size: clamp(2.25rem, 3.6vw, 4.2rem); line-height: 1; letter-spacing: -.05em; }
.cases-intro > p:not(.label) { max-width: 500px; color: #555; }
.cases-intro > a { display: inline-block; margin-top: 22px; color: var(--green-dark); }
.cases-list article { padding: 26px 0; border-top: 1px solid var(--line-dark); }
.cases-list blockquote { margin: 0 0 16px; font-size: clamp(1.2rem, 1.8vw, 1.75rem); line-height: 1.38; }
.cases-list .case-record-title { margin: 0 0 16px; font-size: clamp(1.2rem, 1.8vw, 1.75rem); font-weight: 720; line-height: 1.28; text-wrap: balance; }
.cases-list a { color: var(--green-dark); font-size: .85rem; }

.archive-hero, .article-hero, .profile-hero { display: grid; grid-template-columns: minmax(420px, .9fr) minmax(520px, 1.1fr); height: 620px; min-height: 0; }
.archive-hero.has-section-wordmark { position: relative; isolation: isolate; overflow: hidden; }
.archive-hero.has-section-wordmark > .archive-hero-copy,
.archive-hero.has-section-wordmark > figure { position: relative; z-index: 1; }
.treatments-wordmark { z-index: 0; left: -2.5vw; bottom: -.08em; color: rgba(255,255,255,.027); font-size: clamp(9rem, 13.8vw, 18rem); }
.archive-hero-copy, .article-hero-copy, .profile-hero-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 52px var(--pad) 70px max(var(--pad), calc((100vw - var(--container)) / 2)); }
.archive-hero h1, .article-hero h1, .profile-hero h1, .category-hero h1, .search-hero h1 { max-width: 820px; margin: 0; font-size: clamp(2.45rem, 3.5vw, 4.6rem); line-height: .98; letter-spacing: -.045em; }
.archive-hero-copy > p:not(.eyebrow), .article-hero-copy > .inner-summary, .profile-hero-copy > p:not(.eyebrow):not(.profile-role) { max-width: 660px; margin: 0 0 28px; color: #ccc; font-size: clamp(1.02rem, 1.25vw, 1.22rem); }
.archive-hero > figure, .article-hero-media, .profile-hero > figure { height: 620px; min-height: 0; margin: 0; overflow: hidden; }
.archive-hero > figure img, .article-hero-media img, .profile-hero > figure img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.76) contrast(1.03); }
.profile-hero > figure { display: flex; align-items: flex-end; justify-content: center; padding: 34px clamp(28px, 6vw, 88px) 0; background: radial-gradient(circle at 50% 34%, #272727, #111 70%); }
.profile-hero > figure img { width: min(100%, 390px); height: auto; max-height: 100%; object-fit: contain; object-position: center bottom; box-shadow: 0 0 70px rgba(0,0,0,.24); }
.site-search-form { display: flex; width: min(100%, 580px); margin-top: 10px; border-bottom: 1px solid #777; }
.site-search-form input { flex: 1; min-width: 0; height: 54px; color: var(--white); background: transparent; border: 0; outline: 0; }
.site-search-form button { min-width: 52px; color: var(--green); background: transparent; border: 0; cursor: pointer; }
.site-search-form input::placeholder { color: #999; }

.topic-nav { position: sticky; z-index: 15; top: 76px; display: flex; gap: 0; overflow-x: auto; padding: 0 max(var(--pad), calc((100% - var(--container)) / 2)); background: var(--paper); border-bottom: 1px solid var(--line-dark); scrollbar-width: thin; }
.topic-nav a { flex: 0 0 auto; display: flex; gap: 8px; padding: 18px 22px; color: #555; border-bottom: 2px solid transparent; font-size: .82rem; }
.topic-nav a span { color: #666; }
.topic-nav a:hover, .topic-nav a.is-active { color: var(--ink); border-color: var(--pink); }
.featured-editorial, .category-lead { grid-template-columns: 180px 1fr; }
.featured-editorial > h2 { grid-column: 2; margin: 0; font-size: clamp(2.2rem, 3.3vw, 3.8rem); }
.featured-layout { grid-column: 2; display: grid; grid-template-columns: 1.2fr .8fr .8fr; gap: 34px 24px; }
.featured-layout .article-card:first-child { grid-row: span 2; }
.featured-layout .article-card:first-child .article-image { aspect-ratio: 4/3; }
.featured-layout .article-card:nth-child(n+4) { grid-column: span 1; }
.card-excerpt { margin-top: 14px; padding-right: 36px; color: #555; font-size: .92rem; }
.archive-feed, .testimonial-archive { width: min(100% - (var(--pad) * 2), var(--container)); margin: auto; padding: 72px 0 96px; }
.archive-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 50px 26px; }
.load-more { margin: 48px auto 0; cursor: pointer; }
.knowledge-callout, .techniques-callout, .studio-contact { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 8vw, 120px); padding: 70px max(var(--pad), calc((100% - var(--container)) / 2)); }
.knowledge-callout h2, .techniques-callout h2, .studio-contact h2 { max-width: 680px; margin: 0; font-size: clamp(2.2rem, 3.6vw, 4.2rem); line-height: 1; letter-spacing: -.05em; }
.knowledge-callout > div:last-child, .techniques-callout > div:last-child, .studio-contact > div:last-child { align-self: end; }
.knowledge-callout > div:last-child p, .techniques-callout > div:last-child p { color: #aaa; }

.category-hero { display: grid; grid-template-columns: 1fr 280px; gap: 80px; align-items: end; min-height: 480px; padding: 70px max(var(--pad), calc((100% - var(--container)) / 2)); }
.category-hero > div:first-child > p:last-child { max-width: 720px; color: #bbb; font-size: 1.15rem; }
.category-stat { padding: 32px 0 8px; border-top: 1px solid var(--line); }
.category-stat strong, .category-stat span { display: block; }
.category-stat strong { color: var(--green); font-size: 4rem; line-height: 1; }
.category-stat span { margin-top: 8px; color: #aaa; }
.category-lead .article-card { grid-column: 2; display: grid; grid-template-columns: 1fr 1fr; gap: 34px; }
.category-lead .article-card .article-image { grid-row: span 4; margin: 0; aspect-ratio: 4/3; }

.testimonial-context { grid-template-columns: 180px 1fr; }
.testimonial-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line-dark); border: 1px solid var(--line-dark); }
.testimonial-card { position: relative; min-height: 340px; padding: 34px; background: var(--paper); }
.testimonial-card > p { margin: 0 0 32px; color: var(--green-dark); font-size: .7rem; letter-spacing: .09em; text-transform: uppercase; }
.testimonial-card h3 { margin: 0 0 18px; font-size: clamp(1.3rem, 1.7vw, 1.75rem); line-height: 1.14; }
.testimonial-card h3 a::after { content: ""; position: absolute; inset: 0; }
.testimonial-card > div { color: #555; font-size: .93rem; }
.testimonial-card > a { position: absolute; z-index: 1; left: 34px; bottom: 28px; color: var(--green-dark); font-size: .82rem; }

.article-layout { display: grid; grid-template-columns: 210px minmax(0, 780px) 230px; justify-content: center; align-items: start; gap: clamp(30px, 4vw, 72px); width: min(100% - (var(--pad) * 2), var(--container)); margin: auto; padding: 72px 0 100px; }
.article-toc { position: sticky; top: 110px; padding-right: 24px; border-right: 1px solid var(--line-dark); }
.article-toc p { margin: 0 0 16px; font-weight: 650; }
.article-toc a { display: block; padding: 7px 0; color: #656565; font-size: .8rem; line-height: 1.35; }
.article-toc .toc-level-3 { padding-left: 13px; color: #666; }
.article-toc a:hover { color: var(--green-dark); }
.article-meta { flex-wrap: wrap; row-gap: 7px; }
.related-content, .related-section { padding: 70px max(var(--pad), calc((100% - var(--container)) / 2)) 90px; }
.related-heading { display: flex; justify-content: space-between; align-items: end; gap: 40px; margin-bottom: 34px; }
.related-heading h2, .related-section > div:first-child h2 { margin: 0; font-size: clamp(2.1rem, 3vw, 3.5rem); letter-spacing: -.045em; }
.service-related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }

.service-directory { display: grid; grid-template-columns: repeat(3, 1fr); width: min(100% - (var(--pad) * 2), var(--container)); margin: 0 auto; padding: 0 0 94px; gap: 54px 24px; }
.service-card { position: relative; min-width: 0; border-bottom: 1px solid var(--line-dark); }
.service-card-image { display: block; aspect-ratio: 4/3; overflow: hidden; background: #ddd; }
.service-card-image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72); transition: transform .45s ease, filter .3s ease; }
.service-card:hover img { transform: scale(1.025); filter: saturate(1); }
.service-card-clinic .service-card-image { position: relative; isolation: isolate; background: #e7e1d9; }
.service-card-clinic .service-card-photo { position: relative; z-index: 1; }
.service-card-clinic .service-card-wall-logo {
  position: absolute;
  z-index: 2;
  top: 12%;
  left: 21%;
  width: clamp(76px, 22%, 118px);
  height: auto;
  object-fit: contain;
  opacity: .82;
  mix-blend-mode: multiply;
  filter: saturate(.88) contrast(.94) drop-shadow(0 1px 0 rgba(255,255,255,.5));
  pointer-events: none;
  transform: none;
  transform-origin: center;
}
.service-card-clinic:hover .service-card-wall-logo { transform: scale(1.025); filter: saturate(.94) contrast(.96) drop-shadow(0 1px 0 rgba(255,255,255,.5)); }

/* Portada: tres módulos editoriales con jerarquía propia y una retícula común. */
.home-page .team-showcase { overflow: hidden; padding: clamp(74px, 7vw, 112px) var(--pad) clamp(82px, 8vw, 126px); }
.home-page .team-showcase .section-heading { align-items: end; margin-bottom: clamp(38px, 4.5vw, 64px); }
.home-page .team-showcase .section-heading h2 { max-width: 920px; }
.home-page .home-team-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1px; overflow: hidden; background: #383838; border: 1px solid #383838; }
.home-page .home-team-grid .team-card { grid-column: span 3; display: flex; min-height: 390px; flex-direction: column; padding: 0; overflow: hidden; background: #101010; border: 0; }
.home-page .home-team-grid .team-card:nth-child(-n+2) { grid-column: span 6; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(180px, .92fr); grid-template-rows: auto 1fr; min-height: 390px; }
.home-page .home-team-grid .team-card:nth-child(2) { grid-template-columns: minmax(180px, .92fr) minmax(0, 1.08fr); }
.home-page .home-team-grid .team-card:nth-child(-n+2) .team-card-image { grid-row: 1 / 3; min-height: 390px; aspect-ratio: auto; }
.home-page .home-team-grid .team-card:nth-child(2) .team-card-image { grid-column: 2; }
.home-page .home-team-grid .team-card-image { aspect-ratio: 4 / 5; }
.home-page .home-team-grid .team-card p { align-self: end; margin: 0; padding: 28px 28px 10px; color: #9f9f9f; font-size: .7rem; line-height: 1.4; }
.home-page .home-team-grid .team-card h3 { margin: 0; padding: 0 42px 32px 28px; font-size: clamp(1.1rem, 1.45vw, 1.5rem); }
.home-page .home-team-grid .team-card:nth-child(-n+2) h3 { font-size: clamp(1.55rem, 2.2vw, 2.35rem); }
.home-page .home-team-grid .team-card > span { right: 24px; bottom: 28px; }
.home-page .home-team-grid .team-card:nth-child(2) > span { color: var(--pink); }
.home-page .team-showcase-action { display: flex; justify-content: flex-start; margin-top: 34px; }
.home-page .team-showcase-action .team-all { width: auto; margin: 0; }

.home-page .blog-preview { width: min(100% - (var(--pad) * 2), var(--container)); margin: auto; padding: clamp(78px, 8vw, 122px) 0 clamp(88px, 9vw, 136px); }
.home-page .home-module-heading { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: clamp(32px, 5vw, 82px); margin-bottom: clamp(42px, 5vw, 70px); }
.home-page .home-module-heading .section-heading-light { margin: 0; }
.home-page .blog-preview .article-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: 268px; gap: 22px; }
.home-page .blog-preview .article-card { min-width: 0; overflow: hidden; padding: 0; background: #e6e2da; border: 0; }
.home-page .blog-preview .article-card:first-child { grid-column: span 7; grid-row: span 2; }
.home-page .blog-preview .article-card:nth-child(n+2) { grid-column: span 5; display: grid; grid-template-columns: minmax(160px, .92fr) minmax(0, 1.08fr); grid-template-rows: auto 1fr; }
.home-page .blog-preview .article-card:first-child .article-image { position: absolute; inset: 0; height: 100%; margin: 0; aspect-ratio: auto; }
.home-page .blog-preview .article-card:first-child::after { content: ""; position: absolute; inset: 34% 0 0; background: linear-gradient(transparent, rgba(0,0,0,.9)); pointer-events: none; }
.home-page .blog-preview .article-card:first-child > p,
.home-page .blog-preview .article-card:first-child > h3,
.home-page .blog-preview .article-card:first-child > .card-excerpt { position: relative; z-index: 1; align-self: end; color: var(--white); }
.home-page .blog-preview .article-card:first-child > p { margin: auto 34px 12px; color: var(--pink); padding-top: 285px; }
.home-page .blog-preview .article-card:first-child > h3 { max-width: 690px; margin: 0 34px; padding: 0 48px 0 0; font-size: clamp(1.75rem, 2.65vw, 3rem); line-height: 1.02; }
.home-page .blog-preview .article-card:first-child > .card-excerpt { max-width: 700px; margin: 14px 34px 34px; color: #d3d3d3; font-size: .96rem; line-height: 1.55; }
.home-page .blog-preview .article-card:first-child .card-arrow { z-index: 2; right: 30px; bottom: 30px; }
.home-page .blog-preview .article-card:nth-child(n+2) .article-image { grid-row: 1 / 3; height: 100%; margin: 0; aspect-ratio: auto; }
.home-page .blog-preview .article-card:nth-child(n+2) > p { align-self: end; margin: 0; padding: 24px 26px 8px; }
.home-page .blog-preview .article-card:nth-child(n+2) > h3 { margin: 0; padding: 0 42px 28px 26px; font-size: clamp(1.1rem, 1.55vw, 1.55rem); }
.home-page .blog-preview .article-card:nth-child(n+2) .card-arrow { right: 22px; bottom: 22px; }
.home-page .blog-preview .section-actions { justify-content: flex-end; margin-top: 38px; }

.home-page .cases-preview { display: grid; grid-template-columns: minmax(270px, .72fr) minmax(0, 1.28fr); align-items: start; gap: clamp(50px, 7vw, 110px); padding: clamp(78px, 8vw, 122px) max(var(--pad), calc((100% - var(--container)) / 2)) clamp(92px, 9vw, 140px); background: #dedad1; }
.home-page .cases-intro { position: sticky; top: 130px; }
.home-page .cases-intro h2 { max-width: 560px; font-size: clamp(2.1rem, 3.15vw, 3.55rem); }
.home-page .cases-list { display: grid; gap: 26px; }
.home-page .home-case-card { position: relative; display: grid; grid-template-columns: minmax(220px, .78fr) minmax(0, 1.22fr); min-height: 340px; overflow: hidden; background: #f1eee8; }
.home-page .home-case-card:nth-child(2) { grid-template-columns: minmax(0, 1.22fr) minmax(220px, .78fr); }
.home-page .home-case-card:nth-child(2) .home-case-media { grid-column: 2; }
.home-page .home-case-media { grid-row: 1; min-height: 340px; overflow: hidden; }
.home-page .home-case-media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72); transition: transform .45s ease, filter .3s ease; }
.home-page .home-case-card:hover .home-case-media img { transform: scale(1.025); filter: saturate(.95); }
.home-page .home-case-copy { position: relative; grid-row: 1; display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: clamp(28px, 3.2vw, 48px); }
.home-page .home-case-card:nth-child(2) .home-case-copy { grid-column: 1; }
.home-page .home-case-copy > p { margin: 0 0 14px; color: var(--green-dark); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.home-page .home-case-copy h3 { margin: 0 0 18px; font-size: clamp(1.25rem, 1.8vw, 1.85rem); line-height: 1.12; text-wrap: balance; }
.home-page .home-case-copy h3 a::after { content: ""; position: absolute; inset: 0; }
.home-page .home-case-copy blockquote { margin: 0 0 24px; color: #505050; font-family: Georgia, serif; font-size: clamp(1rem, 1.25vw, 1.22rem); font-style: italic; line-height: 1.48; }
.home-page .home-case-link { position: relative; z-index: 1; width: fit-content; margin-top: auto; color: var(--green-dark); font-size: .84rem; }

@media (max-width: 1080px) {
  .home-page .home-team-grid .team-card:nth-child(-n+2) { grid-column: span 6; grid-template-columns: 1fr; grid-template-rows: auto auto auto; }
  .home-page .home-team-grid .team-card:nth-child(-n+2) .team-card-image,
  .home-page .home-team-grid .team-card:nth-child(2) .team-card-image { grid-column: 1; grid-row: 1; min-height: 330px; aspect-ratio: 4 / 3; }
  .home-page .home-team-grid .team-card { grid-column: span 6; }
  .home-page .blog-preview .article-grid { grid-auto-rows: 250px; }
  .home-page .cases-preview { grid-template-columns: 1fr; }
  .home-page .cases-intro { position: static; }
}

@media (max-width: 760px) {
  .home-page .team-showcase .section-heading,
  .home-page .home-module-heading,
  .home-page .home-module-heading .section-heading-light { display: grid; grid-template-columns: 1fr; align-items: start; gap: 18px; }
  .home-page .home-team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; }
  .home-page .home-team-grid .team-card,
  .home-page .home-team-grid .team-card:nth-child(-n+2) { grid-column: span 1; display: flex; min-height: 0; }
  .home-page .home-team-grid .team-card:nth-child(-n+2) .team-card-image,
  .home-page .home-team-grid .team-card:nth-child(2) .team-card-image,
  .home-page .home-team-grid .team-card-image { min-height: 0; aspect-ratio: 4 / 5; }
  .home-page .home-team-grid .team-card p { padding: 18px 16px 7px; font-size: .61rem; }
  .home-page .home-team-grid .team-card h3,
  .home-page .home-team-grid .team-card:nth-child(-n+2) h3 { padding: 0 30px 22px 16px; font-size: 1rem; }
  .home-page .home-team-grid .team-card > span { right: 14px; bottom: 20px; }
  .home-page .home-module-heading { margin-bottom: 34px; }
  .home-page .blog-preview .article-grid { display: grid; grid-template-columns: 1fr; grid-auto-rows: auto; gap: 18px; }
  .home-page .blog-preview .article-card:first-child,
  .home-page .blog-preview .article-card:nth-child(n+2) { grid-column: 1; grid-row: auto; display: block; min-height: 0; }
  .home-page .blog-preview .article-card:first-child .article-image,
  .home-page .blog-preview .article-card:nth-child(n+2) .article-image { position: relative; height: auto; aspect-ratio: 16 / 10; }
  .home-page .blog-preview .article-card:first-child::after { display: none; }
  .home-page .blog-preview .article-card:first-child > p,
  .home-page .blog-preview .article-card:nth-child(n+2) > p { margin: 0; padding: 22px 22px 8px; color: var(--pink-dark); }
  .home-page .blog-preview .article-card:first-child > h3,
  .home-page .blog-preview .article-card:nth-child(n+2) > h3 { margin: 0; padding: 0 42px 24px 22px; color: var(--ink); font-size: 1.35rem; }
  .home-page .blog-preview .article-card:first-child > .card-excerpt { display: none; }
  .home-page .blog-preview .card-arrow { right: 20px; bottom: 20px; }
  .home-page .blog-preview .section-actions { justify-content: flex-start; flex-wrap: wrap; }
  .home-page .home-case-card,
  .home-page .home-case-card:nth-child(2) { display: flex; min-height: 0; flex-direction: column; }
  .home-page .home-case-card:nth-child(2) .home-case-media { order: 0; }
  .home-page .home-case-media { min-height: 0; aspect-ratio: 16 / 10; }
  .home-page .home-case-copy { padding: 26px 22px 30px; }
}
.service-card > div { position: relative; min-height: 175px; padding: 22px 44px 24px 0; }
.service-card p { margin: 0 0 8px; color: var(--green-dark); font-size: .72rem; }
.service-card h3 { margin: 0 0 10px; font-size: clamp(1.35rem, 1.8vw, 1.8rem); line-height: 1.08; }
.service-card h3 a::after { content: ""; position: absolute; inset: 0; }
.service-card > div > span { display: block; color: #555; font-size: .9rem; }
.service-card b { position: absolute; right: 2px; top: 20px; color: var(--green-dark); font-size: 1.5rem; }
.studio-directory { padding: 76px max(var(--pad), calc((100% - var(--container)) / 2)) 90px; }
.studio-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px 24px; margin-bottom: 38px; }
.studio-cards .service-card { border-color: var(--line); }
.studio-cards .service-card > div > span { color: #aaa; }
.studio-cards .service-card p, .studio-cards .service-card b { color: var(--pink-dark); }
.studio-manifesto { grid-template-columns: 180px 1fr; }
/* 2026-09-02 — El manifiesto ya no lleva una figura única de 16/7 sino el
   collage de cuatro imágenes; sus reglas viven en el bloque fechado del final. */
.studio-manifesto > .studio-collage { grid-column: 2; }
.studio-source { grid-template-columns: 180px 1fr; }
.studio-contact { color: var(--ink); background: #e7e2df; }
.studio-contact > div:last-child { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.studio-contact .button { color: #9f0b5b; }

.team-directory { grid-template-columns: 180px 1fr; }
.team-values {
  display: block;
  padding: clamp(92px, 7vw, 120px) max(var(--pad), calc((100% - var(--container)) / 2)) clamp(96px, 8vw, 136px);
  background:
    radial-gradient(circle at 18% 16%, rgba(151,202,27,.055), transparent 29%),
    radial-gradient(circle at 92% 3%, rgba(236,25,134,.035), transparent 24%),
    #080908;
}
.team-values-intro {
  width: min(100%, 920px);
  margin: 0 auto clamp(58px, 5.5vw, 82px);
  text-align: center;
}
.team-values-intro h2 {
  max-width: 900px;
  margin: 0 auto;
  color: var(--green-bright);
  font-size: clamp(2.75rem, 5vw, 5.6rem);
  line-height: .94;
  letter-spacing: -.055em;
  text-wrap: balance;
}
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .team-values-intro h2 {
    color: transparent;
    background: linear-gradient(90deg, var(--green-bright) 0 72%, #b7c83a 78%, var(--pink) 100%);
    -webkit-background-clip: text;
    background-clip: text;
  }
}
.team-values-intro p {
  width: min(100%, 780px);
  margin: clamp(24px, 2.4vw, 34px) auto 0;
  color: #c2c4be;
  font-size: clamp(1.04rem, .4vw + .96rem, 1.18rem);
  line-height: 1.72;
}
.team-values-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid rgba(255,255,255,.2);
}
.team-values-grid article {
  position: relative;
  min-width: 0;
  padding: clamp(34px, 3.5vw, 58px) clamp(26px, 3.5vw, 54px) 0;
  border-left: 1px solid rgba(255,255,255,.14);
}
.team-values-grid article:first-child { padding-left: 0; border-left: 0; }
.team-values-grid article:last-child { padding-right: 0; }
.team-values-grid article::before {
  position: absolute;
  left: clamp(26px, 3.5vw, 54px);
  top: -2px;
  width: clamp(46px, 4.5vw, 76px);
  height: 3px;
  content: "";
  background: linear-gradient(90deg, var(--green-bright), rgba(151,202,27,.15));
}
.team-values-grid article:first-child::before { left: 0; }
.team-values-grid article:nth-child(3)::before { background: linear-gradient(90deg, var(--green-bright), rgba(236,25,134,.62)); }
.team-values-grid span {
  display: block;
  margin-bottom: clamp(22px, 2.4vw, 34px);
  color: var(--green-bright);
  font-size: clamp(2.5rem, 3.7vw, 4rem);
  font-weight: 760;
  line-height: .86;
  letter-spacing: -.06em;
  font-variant-numeric: tabular-nums;
}
.team-values-grid h3 { margin: 0 0 16px; color: var(--paper); font-size: clamp(1.55rem, 1.9vw, 2.2rem); line-height: 1.02; letter-spacing: -.035em; }
.team-values-grid p { max-width: 37ch; margin: 0; color: #b9bbb5; font-size: clamp(1.02rem, .26vw + .98rem, 1.12rem); line-height: 1.72; }
.profile-role { color: var(--green) !important; font-size: 1rem !important; letter-spacing: .04em; text-transform: uppercase; }
.profile-body { grid-template-columns: 250px minmax(0, 800px); justify-content: center; }
.profile-facts { padding-right: 24px; border-right: 1px solid var(--line-dark); }
.profile-facts p, .profile-facts strong, .profile-facts a { display: block; }
.profile-facts p { margin: 0 0 7px; color: #666; font-size: .75rem; text-transform: uppercase; }
.profile-facts strong { margin-bottom: 32px; }
.profile-facts a { color: #577b00; font-size: .85rem; }
.related-section > div:first-child { margin-bottom: 34px; }
.related-team { grid-template-columns: repeat(3, 1fr); max-width: 900px; }

.search-hero { min-height: 500px; padding: 70px max(var(--pad), calc((100% - 1100px) / 2)); }
.search-hero > div { max-width: 960px; }
.search-hero > div > p:not(.eyebrow) { max-width: 680px; color: #bbb; font-size: 1.18rem; }
.search-form-large { width: 100%; max-width: 820px; margin-top: 36px; }
.search-form-large input { height: 68px; font-size: 1.1rem; }
.search-results-shell { width: min(100% - (var(--pad) * 2), 1100px); min-height: 540px; margin: auto; padding: 58px 0 100px; }
.search-summary { padding-bottom: 28px; border-bottom: 1px solid var(--line-dark); }
.search-summary > p { margin: 0 0 18px; font-size: 1.25rem; }
.search-suggestions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; color: #666; font-size: .85rem; }
.search-suggestions a { padding: 7px 12px; border: 1px solid var(--line-dark); border-radius: 999px; }
.search-result { display: grid; grid-template-columns: 150px 1fr auto; gap: 28px; align-items: center; padding: 26px 0; border-bottom: 1px solid var(--line-dark); }
.search-result-image { aspect-ratio: 4/3; overflow: hidden; background: #ddd; }
.search-result-image img { width: 100%; height: 100%; object-fit: cover; }
.search-result p { margin: 0 0 6px; color: #666; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.search-result h2 { margin: 0 0 7px; font-size: 1.45rem; line-height: 1.1; }
.search-result div > span { color: #555; font-size: .9rem; }
.search-result > span { color: var(--green-dark); font-size: 1.5rem; }
.search-empty { padding: 60px 0; }
.search-empty h2 { font-size: 2rem; }

.appointment-section { grid-template-columns: .7fr 1fr 1fr; }
.appointment-copy h2 { font-size: clamp(2.15rem, 3.2vw, 3.65rem); }
.space-card { flex-wrap: wrap; }
.space-card img { height: 52px; }
.space-card > span { flex: 1 0 100%; color: #aaa; font-size: .82rem; }
.space-card > b { color: var(--green); font-size: 1.8rem; }
.studio-card > b { color: var(--pink); }
.footer-legal { grid-column: 2 / -1; display: flex !important; gap: 24px; }
.footer-legal a { display: inline-block !important; }

.legacy-content [class*="elementor-"] { max-width: 100%; }
.legacy-content .elementor-section, .legacy-content .elementor-container, .legacy-content .elementor-column, .legacy-content .elementor-widget-wrap { display: block; width: 100%; min-height: 0; margin: 0; padding: 0; background: transparent; }
.legacy-content .elementor-button { display: inline-flex; width: auto; min-height: 44px; align-items: center; margin: 12px 0 24px; padding: 10px 18px; color: #476600; border: 1px solid #668f00; border-radius: 999px; text-decoration: none; }
.legacy-content video { max-width: 100%; height: auto; }
.legacy-content img { image-rendering: auto; }
.legacy-anchor { display: block; position: relative; top: -100px; visibility: hidden; }
.legal-shell { grid-template-columns: 220px minmax(0, 850px); }
.legal-shell .page-toc { grid-column: 1; }
.not-found h1 { font-size: clamp(2.8rem, 5.5vw, 5.6rem); }

@media (max-width: 1180px) {
  .main-nav > ul { gap: 9px; }
  .main-nav li > a, .nav-parent > a { font-size: .76rem; }
  .brand-clinic img { height: 44px; }
  .brand-studio img { width: 104px; height: 38px; }
  .article-layout, .content-shell { grid-template-columns: 180px minmax(0, 1fr); }
  .article-layout .author-card, .content-shell .call-card { position: static; grid-column: 2; max-width: 520px; }
  .home-team-grid { grid-template-columns: repeat(3, 1fr); gap: 36px 18px; }
}

@media (max-width: 1050px) {
  .site-header { height: 76px; }
  .main-nav { inset: 76px 0 auto; max-height: calc(100svh - 76px); overflow-y: auto; }
  .main-nav > ul { display: block; }
  .main-nav li { border-bottom: 1px solid var(--line); }
  .main-nav li > a, .nav-parent > a { width: 100%; min-height: 54px; font-size: .95rem; }
  .nav-parent > a { flex: 1; }
  .submenu-toggle { width: 54px; height: 54px; }
  .submenu { position: static; display: none; width: 100%; padding: 0 0 14px 18px; border: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
  .has-submenu.is-open .submenu { display: grid; }
  .has-submenu:hover .submenu:not([data-force-open]), .has-submenu:focus-within .submenu:not([data-force-open]) { display: none; }
  .has-submenu.is-open:hover .submenu, .has-submenu.is-open:focus-within .submenu { display: grid; }
  .main-nav .nav-cta { width: auto; margin: 16px 0; }
  .hero, .hero-slides, .hero-slide { height: min(760px, calc(100svh - 76px)); min-height: 660px; }
  .hero h1, .hero h2 { font-size: clamp(2.85rem, 6.2vw, 4.7rem); }
  .archive-hero, .article-hero, .profile-hero { grid-template-columns: .95fr 1.05fr; }
  .archive-hero h1, .article-hero h1, .profile-hero h1, .category-hero h1, .search-hero h1 { font-size: clamp(2.35rem, 4.7vw, 4.15rem); }
  .service-directory, .studio-cards { grid-template-columns: repeat(2, 1fr); }
  .featured-layout { grid-template-columns: 1fr 1fr; }
  .featured-layout .article-card:first-child { grid-column: 1 / -1; grid-row: auto; display: grid; grid-template-columns: 1.15fr .85fr; gap: 24px; }
  .featured-layout .article-card:first-child .article-image { grid-row: span 4; margin: 0; }
  .archive-grid, .testimonial-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
  .hero, .hero-slides, .hero-slide { height: calc(100svh - 76px); min-height: 620px; }
  .hero-copy { min-height: calc(100svh - 76px); padding: 34px var(--pad) 166px; }
  .hero h1, .hero h2 { max-width: 500px; font-size: clamp(2.3rem, 9.6vw, 3.45rem); line-height: 1; }
  .hero-copy > p:not(.eyebrow) { font-size: 1.02rem; }
  .hero-controls { bottom: 66px; grid-template-columns: 44px minmax(0, 1fr) 44px 44px; min-height: 88px; padding: 11px 8px; }
  .hero-tabs button { justify-content: center; padding: 12px 3px; }
  .hero-tabs span { display: none; }
  .hero-controls > button { width: 44px; min-height: 44px; }
  .hero-pause { display: block; }
  .section-heading, .section-heading-light, .archive-feed-heading { display: block; }
  .section-heading > p, .section-heading-light > p, .archive-feed-heading > p { margin-top: 18px; }
  .spaces-intro, .method-section, .home-guide, .team-directory, .testimonial-context, .featured-editorial, .category-lead, .studio-manifesto, .studio-source { grid-template-columns: 1fr; }
  .spaces-copy, .space-editorial-grid, .method-copy, .method-steps, .home-guide-heading, .home-guide-columns, .guide-actions, .team-directory-intro, .team-grid, .featured-editorial > h2, .featured-layout, .category-lead .article-card, .studio-manifesto > div, .studio-manifesto > .studio-collage, .studio-source .legacy-content { grid-column: 1; }
  .space-editorial-grid, .home-guide-columns { grid-template-columns: 1fr; }
  .space-editorial-card { min-height: 230px; }
  .home-guide-columns { gap: 18px; }
  .guide-actions, .section-actions { align-items: flex-start; flex-direction: column; }
  .home-team-grid, .team-grid { grid-template-columns: repeat(2, 1fr); }
  .team-card h3 { font-size: 1.05rem; }
  .cases-preview { grid-template-columns: 1fr; padding-top: 56px; padding-bottom: 56px; }
  .home-faq { padding-top: 56px; padding-bottom: 56px; }
  .home-faq-intro, .faq-list { grid-template-columns: 1fr; }
  .home-faq-intro { gap: 20px; margin-bottom: 36px; }
  .faq-list { gap: 12px; }
  .faq-column { gap: 12px; }
  .faq-list summary { min-height: 82px; padding: 16px; grid-template-columns: 32px minmax(0, 1fr) 32px; gap: 10px; }
  .faq-answer p { padding: 0 52px 22px 58px; }
  .archive-hero, .article-hero, .profile-hero { display: flex; flex-direction: column; height: auto; min-height: auto; }
  .treatments-wordmark { left: -4vw; bottom: 45%; font-size: clamp(6rem, 24vw, 8.5rem); }
  .inner-hero { height: auto; }
  .archive-hero-copy, .article-hero-copy, .profile-hero-copy { min-height: 460px; padding: 38px var(--pad) 54px; }
  .archive-hero h1, .article-hero h1, .profile-hero h1, .category-hero h1, .search-hero h1, .inner-hero h1 { font-size: clamp(2.3rem, 9.6vw, 3.45rem); }
  .archive-hero > figure, .article-hero-media, .profile-hero > figure { height: 340px; min-height: 340px; }
  .inner-hero-media { height: 360px; min-height: 360px; }
  .topic-nav { top: 76px; }
  .featured-layout, .featured-layout .article-card:first-child, .category-lead .article-card { display: block; }
  .featured-layout .article-card { margin-bottom: 34px; }
  .archive-grid, .testimonial-grid, .service-directory, .studio-cards, .service-related-grid { grid-template-columns: 1fr; }
  .testimonial-card { min-height: 300px; }
  .knowledge-callout, .techniques-callout, .studio-contact { grid-template-columns: 1fr; padding-top: 54px; padding-bottom: 54px; }
  .contact-directory { grid-template-columns: 1fr; }
  .contact-intro, .contact-options { grid-column: 1; }
  .contact-options { grid-template-columns: 1fr; }
  .contact-options article { min-height: 260px; }
  .contact-hub { grid-template-columns: 1fr; gap: 42px; padding-top: 56px; padding-bottom: 56px; }
  .contact-form .form-row { grid-template-columns: 1fr; }
  .contact-map { grid-template-columns: 1fr; gap: 30px; padding-top: 56px; padding-bottom: 56px; }
  .contact-map-frame { min-height: 380px; }
  .contact-guidance { grid-template-columns: 1fr; padding-top: 56px; padding-bottom: 56px; }
  .category-hero { grid-template-columns: 1fr; gap: 30px; min-height: 460px; padding-top: 48px; padding-bottom: 48px; }
  .category-stat { max-width: 180px; }
  .article-layout { display: block; width: calc(100% - 40px); padding: 48px 0 70px; }
  .article-toc { position: static; margin-bottom: 38px; padding: 20px; border: 1px solid var(--line-dark); }
  .article-toc a:nth-of-type(n+8) { display: none; }
  .related-heading { display: block; }
  .service-directory { padding-bottom: 60px; }
  .team-values { padding-top: 84px; padding-bottom: 94px; }
  .team-values-intro { margin-bottom: 48px; text-align: left; }
  .team-values-intro h2 { margin-left: 0; font-size: clamp(2.55rem, 11vw, 3.6rem); }
  .team-values-intro p { margin-top: 24px; font-size: 1.03rem; line-height: 1.7; }
  .team-values-grid { grid-template-columns: 1fr; border-top: 0; }
  .team-values-grid article,
  .team-values-grid article:first-child,
  .team-values-grid article:last-child { padding: 34px 0 38px; border-top: 1px solid rgba(255,255,255,.18); border-left: 0; }
  .team-values-grid article::before,
  .team-values-grid article:first-child::before { left: 0; }
  .team-values-grid span { margin-bottom: 22px; font-size: clamp(2.75rem, 13vw, 3.65rem); }
  .team-values-grid h3 { margin-bottom: 14px; font-size: clamp(1.65rem, 7vw, 2rem); }
  .team-values-grid p { max-width: 45ch; font-size: 1.03rem; line-height: 1.72; }
  .profile-body { grid-template-columns: 1fr; }
  .profile-facts { padding: 0 0 24px; border-right: 0; border-bottom: 1px solid var(--line-dark); }
  .related-team { grid-template-columns: 1fr 1fr; }
  .search-hero { min-height: 480px; padding-top: 48px; }
  .search-result { grid-template-columns: 90px 1fr; gap: 18px; }
  .search-result > span { display: none; }
  .appointment-section { grid-template-columns: 1fr; }
  .footer-legal { grid-column: 1 / -1; flex-wrap: wrap; }
}

/* Mantener las dos firmas a la misma escala tras todas las reglas adaptables. */
.brand-clinic img,
.brand-studio img { width: 100%; height: 100%; }
.site-header { background: #000; }
.space-logo img,
.studio-card .space-logo img { width: 100%; height: 100%; }
.cookie-banner[hidden],
.cookie-preferences[hidden] { display: none; }

@media (max-width: 1180px) {
  .brand-clinic img,
  .brand-studio img { width: 100%; height: 100%; }
}

@media (max-width: 1050px) {
  .hero-slide { grid-template-columns: minmax(300px, .82fr) minmax(0, 1.18fr); }
  .editorial-section { grid-template-columns: 240px minmax(0, 1fr); gap: 42px; }
}

@media (max-width: 760px) {
  .editorial-section { grid-template-columns: 1fr; gap: 34px; }
  .brand-clinic img,
  .brand-studio img { width: 100%; height: 100%; }
  .space-logo img,
  .studio-card .space-logo img { width: 100%; height: 100%; }
  .floating-tools { right: 20px; }
}

/* Studio: menú directo y directorio compacto de disciplinas. */
.submenu-studio {
  left: -210px;
  width: min(760px, calc(100vw - 40px));
  padding: 0;
}
.submenu-studio-grid { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.submenu-studio-grid section { min-width: 0; padding: 22px 18px 24px; border-right: 1px solid var(--line); }
.submenu-studio-grid section:last-child { border-right: 0; }
.submenu-studio-grid p {
  margin: 0 8px 12px;
  color: var(--pink);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.submenu-studio-grid a { min-height: 40px !important; padding: 8px !important; font-size: .76rem !important; }
.submenu-studio-grid a[aria-current="page"] { color: var(--white); background: rgba(236,25,134,.13); }

.disciplines-hero {
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
  height: 430px;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
}
.disciplines-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: 34px var(--pad) 44px max(var(--pad), calc((100vw - var(--container)) / 2));
}
.disciplines-hero .breadcrumbs { margin-bottom: 34px; }
.disciplines-hero h1 {
  max-width: 720px;
  margin: 0;
  font-size: clamp(2.75rem, 4.15vw, 4.75rem);
  line-height: .96;
  letter-spacing: -.05em;
  text-wrap: balance;
}
.disciplines-hero-copy > p:not(.eyebrow) { max-width: 650px; margin: 18px 0 24px; color: #c8c8c8; font-size: 1rem; }
.disciplines-hero-actions { display: flex; align-items: center; gap: 24px; }
.disciplines-hero figure { position: relative; height: 430px; margin: 0; overflow: hidden; }
.disciplines-hero figure::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, rgba(0,0,0,.18), transparent 32%); pointer-events: none; }
.disciplines-hero figure img { width: 100%; height: 100%; object-fit: cover; object-position: center 48%; filter: saturate(.78) contrast(1.04); }
.disciplines-hero figcaption { position: absolute; z-index: 1; right: 24px; bottom: 18px; color: rgba(255,255,255,.78); font-size: .7rem; letter-spacing: .09em; text-transform: uppercase; }

.discipline-index { width: min(calc(100% - (var(--pad) * 2)), var(--container)); margin: auto; padding: 64px 0 78px; }
.discipline-index-heading { display: grid; grid-template-columns: 1.2fr .8fr; gap: 64px; align-items: end; margin-bottom: 42px; }
.discipline-index-heading h2 { max-width: 780px; margin: 4px 0 0; font-size: clamp(2.35rem, 3.5vw, 4rem); line-height: .98; letter-spacing: -.045em; text-wrap: balance; }
.discipline-index-heading > p { max-width: 620px; margin: 0; color: #5d5d5d; }
.discipline-groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.discipline-group { min-width: 0; padding: 24px 24px 8px; background: #e7e4dd; }
.discipline-group > header { display: grid; grid-template-columns: 42px 1fr; gap: 12px; min-height: 128px; padding-bottom: 20px; }
.discipline-group > header > span { color: var(--pink-dark); font-variant-numeric: tabular-nums; font-size: .76rem; }
.discipline-group h2 { margin: 0 0 8px; font-size: 1.45rem; line-height: 1.05; letter-spacing: -.03em; text-wrap: balance; }
.discipline-group header p { margin: 0; color: #5f5f5f; font-size: .83rem; line-height: 1.45; }
.discipline-group nav { border-top: 1px solid var(--line-dark); }
.discipline-group nav a { position: relative; display: flex; justify-content: space-between; gap: 18px; align-items: center; min-height: 84px; padding: 13px 4px; border-bottom: 1px solid var(--line-dark); transition: padding .22s ease, color .22s ease, background .22s ease; }
.discipline-group nav a:hover { padding-left: 10px; color: var(--pink-dark); background: rgba(255,255,255,.28); }
.discipline-group nav a:active { transform: translateY(1px); }
.discipline-group nav span,
.discipline-group nav strong,
.discipline-group nav small { display: block; }
.discipline-group nav strong { font-size: 1rem; line-height: 1.18; }
.discipline-group nav small { margin-top: 4px; color: #666; font-size: .74rem; line-height: 1.35; }
.discipline-group nav b { flex: 0 0 auto; color: var(--pink-dark); font-size: 1.2rem; }

.studio-direct-actions { display: grid; grid-template-columns: repeat(3, 1fr); padding: 0 max(var(--pad), calc((100% - var(--container)) / 2)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.studio-direct-actions > a { position: relative; min-height: 150px; display: flex; flex-direction: column; justify-content: center; padding: 28px 64px 28px 28px; border-right: 1px solid var(--line); transition: background .25s ease; }
.studio-direct-actions > a:last-child { border-right: 0; }
.studio-direct-actions > a:hover { background: rgba(236,25,134,.09); }
.studio-direct-actions span { margin-bottom: 5px; color: #999; font-size: .75rem; }
.studio-direct-actions strong { color: var(--white); font-size: clamp(1.15rem, 1.55vw, 1.55rem); }
.studio-direct-actions b { position: absolute; right: 28px; top: 50%; color: var(--pink); font-size: 1.6rem; transform: translateY(-50%); }

@media (max-width: 1050px) {
  .submenu-studio { width: 100%; padding: 0 0 16px 18px; }
  .submenu-studio-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .submenu-studio-grid section { padding: 16px 12px; border-right: 0; border-bottom: 1px solid var(--line); }
  .disciplines-hero { grid-template-columns: .95fr 1.05fr; }
  .discipline-index-heading { grid-template-columns: 1fr; gap: 18px; }
  .discipline-groups { gap: 16px; }
  .discipline-group { padding: 20px 18px 6px; }
}

@media (max-width: 760px) {
  .submenu-studio-grid { grid-template-columns: 1fr; }
  .disciplines-hero { display: flex; flex-direction: column; height: auto; }
  .disciplines-hero-copy { min-height: 390px; padding: 30px var(--pad) 42px; }
  .disciplines-hero .breadcrumbs { margin-bottom: 30px; }
  .disciplines-hero h1 { font-size: clamp(2.55rem, 12vw, 3.45rem); }
  .disciplines-hero-actions { align-items: flex-start; flex-direction: column; gap: 14px; }
  .disciplines-hero figure { height: 250px; }
  .discipline-index { width: calc(100% - 40px); padding: 48px 0 56px; }
  .discipline-index-heading { margin-bottom: 30px; }
  .discipline-groups { grid-template-columns: 1fr; }
  .discipline-group > header { min-height: 0; }
  .discipline-group nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; }
  .discipline-group nav a { min-height: 72px; }
  .discipline-group nav small { display: none; }
  .studio-direct-actions { grid-template-columns: 1fr; }
  .studio-direct-actions > a { min-height: 112px; border-right: 0; border-bottom: 1px solid var(--line); }
}

/* Directorio clínico completo: disciplinas y técnicas conservadas de WordPress. */
.main-nav > ul > li:first-child .submenu-studio-grid p { color: var(--green-bright); }
.main-nav > ul > li:first-child .submenu-studio-grid a[aria-current="page"] { color: var(--white); background: rgba(143,189,24,.14); }
.technique-directory { width: min(calc(100% - (var(--pad) * 2)), var(--container)); margin: auto; padding: clamp(66px, 8vw, 108px) 0; }
.technique-directory-heading { display: grid; grid-template-columns: 1.12fr .88fr; align-items: end; gap: clamp(42px, 8vw, 120px); margin-bottom: 48px; }
.technique-directory-heading h2 { max-width: 820px; margin: 5px 0 0; font-size: clamp(2.35rem, 3.7vw, 4.3rem); line-height: .98; letter-spacing: -.05em; }
.technique-directory-heading > p { max-width: 610px; margin: 0; color: #555; }
.technique-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.technique-group { min-width: 0; padding: clamp(24px, 3vw, 38px); background: #e8e5de; }
.technique-group > header { display: grid; grid-template-columns: 44px 1fr; gap: 16px; min-height: 120px; padding-bottom: 24px; }
.technique-group > header > span { color: var(--green-dark); font-size: .76rem; font-weight: 700; }
.technique-group h2 { margin: 0 0 8px; font-size: clamp(1.45rem, 2vw, 2rem); line-height: 1.05; }
.technique-group header p { max-width: 560px; margin: 0; color: #606060; font-size: .86rem; }
.technique-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line-dark); }
.technique-links a { position: relative; min-height: 126px; padding: 20px 48px 18px 0; border-bottom: 1px solid var(--line-dark); transition: color .22s ease, padding .22s ease; }
.technique-links a:nth-child(odd) { margin-right: 18px; }
.technique-links a:nth-child(even) { padding-left: 18px; border-left: 1px solid var(--line-dark); }
.technique-links a:hover { color: var(--green-dark); padding-right: 38px; }
.technique-links strong, .technique-links span { display: block; }
.technique-links strong { font-size: 1.02rem; line-height: 1.2; }
.technique-links span { margin-top: 7px; color: #646464; font-size: .76rem; line-height: 1.4; }
.technique-links b { position: absolute; right: 8px; top: 18px; color: var(--green-dark); font-size: 1.2rem; }
.technique-orientation, .nutrition-note { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(42px, 8vw, 120px); padding: clamp(62px, 7vw, 92px) max(var(--pad), calc((100% - var(--container)) / 2)); }
.technique-orientation h2, .nutrition-note h2 { max-width: 720px; margin: 0; font-size: clamp(2.2rem, 3.5vw, 4rem); line-height: 1; letter-spacing: -.05em; }
.technique-orientation > div:last-child { align-self: end; }
.technique-orientation > div:last-child p, .nutrition-note > p { max-width: 650px; color: #c5c5c5; }
.technique-source { border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); background: #e9e6df; }
.technique-source summary { display: grid; grid-template-columns: 150px minmax(0, 1fr) 48px; align-items: center; width: min(calc(100% - (var(--pad) * 2)), var(--container)); min-height: 130px; margin: 0 auto; cursor: pointer; list-style: none; }
.technique-source summary::-webkit-details-marker { display: none; }
.technique-source summary span { color: var(--green-dark); font-size: .7rem; font-weight: 750; letter-spacing: .11em; text-transform: uppercase; }
.technique-source summary strong { font-size: clamp(1.35rem, 2.4vw, 2.2rem); line-height: 1.08; letter-spacing: -.035em; }
.technique-source summary b { display: grid; width: 44px; height: 44px; place-items: center; justify-self: end; border: 1px solid var(--green-dark); border-radius: 50%; color: var(--green-dark); font-size: 1.45rem; font-weight: 400; transition: transform .25s ease, background-color .25s ease, color .25s ease; }
.technique-source[open] summary b { transform: rotate(45deg); background: var(--green-dark); color: #fff; }
.technique-source-panel { padding: 16px var(--pad) clamp(70px, 8vw, 120px); border-top: 1px solid var(--line-dark); background: var(--paper); }
.technique-source-intro { max-width: 720px; margin: 50px auto; color: #555; font-size: 1.05rem; line-height: 1.65; }
.technique-source .legacy-content { width: min(100%, 940px); margin: 0 auto; }
.technique-source .legacy-content .elementor-widget-image img { display: block; width: 100%; height: auto; max-height: 520px; object-fit: cover; }
.technique-source .legacy-content .elementor-button { display: inline-flex; width: auto; margin: 5px 5px 12px 0; padding: 9px 16px; border: 1px solid var(--green-dark); border-radius: 999px; }

/* Las páginas migradas se leen como piezas editoriales, no como volcados de Elementor. */
.studio-content-page .content-shell { grid-template-columns: minmax(0, 900px) 270px; width: min(calc(100% - (var(--pad) * 2)), 1220px); gap: clamp(36px, 6vw, 76px); }
.studio-content-page .page-toc { display: none; }
.studio-content-page .legacy-content { max-width: none; }
.studio-content-page .legacy-content .elementor-widget-text-editor > div > p:first-child { margin-bottom: 18px; color: var(--pink-dark); font-size: .72rem; font-weight: 750; letter-spacing: .11em; text-transform: uppercase; }
.studio-content-page .legacy-content .elementor-widget-text-editor > div > p:nth-child(2) { max-width: 900px; font-size: clamp(1.22rem, 1.7vw, 1.48rem); line-height: 1.55; letter-spacing: -.018em; }
.studio-content-page .legacy-content p:has(+ ul), .content-page:not(.legal-page) .legacy-content p:has(+ ul) { margin: 46px 0 18px; color: var(--ink); font-size: clamp(1.45rem, 2vw, 2rem); font-weight: 680; line-height: 1.12; letter-spacing: -.035em; }
.studio-content-page .legacy-content ul, .content-page:not(.legal-page) .legacy-content .elementor-widget-text-editor ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0 0 34px; padding: 0; list-style: none; }
.studio-content-page .legacy-content li, .content-page:not(.legal-page) .legacy-content .elementor-widget-text-editor li { position: relative; min-height: 88px; margin: 0; padding: 18px 20px 18px 42px; background: #ebe8e1; border-top: 2px solid var(--pink-dark); }
.content-page:not(.legal-page) .legacy-content .elementor-widget-text-editor li { border-color: var(--green-dark); }
.studio-content-page .legacy-content li::before, .content-page:not(.legal-page) .legacy-content .elementor-widget-text-editor li::before { position: absolute; left: 18px; top: 20px; content: "↗"; color: var(--pink-dark); font-weight: 700; }
.content-page:not(.legal-page) .legacy-content .elementor-widget-text-editor li::before { color: var(--green-dark); }
.studio-content-page .legacy-content li p, .content-page:not(.legal-page) .legacy-content .elementor-widget-text-editor li p { margin: 0; }
.studio-content-page .legacy-content .elementor-section:has(.elementor-widget-image) .elementor-container,
.content-page:not(.legal-page) .legacy-content .elementor-section:has(.elementor-widget-image) .elementor-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); gap: 18px; margin: 46px 0 12px; }
.studio-content-page .legacy-content .elementor-column:has(.elementor-widget-image),
.content-page:not(.legal-page) .legacy-content .elementor-column:has(.elementor-widget-image) { width: 100%; }
.studio-content-page .legacy-content .elementor-widget-image:has(img[src*="Logo-"]),
.studio-content-page .legacy-content .elementor-widget-image:has(img[alt*="Logo"]),
.content-page:not(.legal-page) .legacy-content .elementor-widget-image:has(img[src*="Logo-"]),
.content-page:not(.legal-page) .legacy-content .elementor-widget-image:has(img[alt*="Logo"]) { display: none; }
.studio-content-page .legacy-content .elementor-column:has(.elementor-widget-image img[src*="Logo-"]):not(:has(img:not([src*="Logo-"]))),
.studio-content-page .legacy-content .elementor-column:has(.elementor-widget-image img[alt*="Logo"]):not(:has(img:not([alt*="Logo"]))),
.content-page:not(.legal-page) .legacy-content .elementor-column:has(.elementor-widget-image img[src*="Logo-"]):not(:has(img:not([src*="Logo-"]))),
.content-page:not(.legal-page) .legacy-content .elementor-column:has(.elementor-widget-image img[alt*="Logo"]):not(:has(img:not([alt*="Logo"]))) { display: none; }
.studio-content-page .legacy-content .elementor-column:has(.elementor-widget-image):not(:has(img)),
.content-page:not(.legal-page) .legacy-content .elementor-column:has(.elementor-widget-image):not(:has(img)) { display: none; }
.studio-content-page .legacy-content .elementor-section:has(img:not(.is-low-resolution)) .elementor-widget-image:has(img.is-low-resolution),
.content-page:not(.legal-page) .legacy-content .elementor-section:has(img:not(.is-low-resolution)) .elementor-widget-image:has(img.is-low-resolution) { display: none; }
.studio-content-page .legacy-content .elementor-section:has(img:not(.is-low-resolution)) .elementor-column:has(img.is-low-resolution):not(:has(img:not(.is-low-resolution))),
.content-page:not(.legal-page) .legacy-content .elementor-section:has(img:not(.is-low-resolution)) .elementor-column:has(img.is-low-resolution):not(:has(img:not(.is-low-resolution))) { display: none; }
.studio-content-page .legacy-content .elementor-widget-image img,
.content-page:not(.legal-page) .legacy-content .elementor-widget-image img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; margin: 0; object-fit: cover; }

/* Test de alimentación. */
.nutrition-hero { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr); gap: clamp(50px, 9vw, 150px); min-height: 540px; overflow: hidden; padding: clamp(46px, 7vw, 92px) max(var(--pad), calc((100% - var(--container)) / 2)); }
.nutrition-hero > div { position: relative; z-index: 1; align-self: center; }
.nutrition-hero .breadcrumbs { margin-bottom: 52px; }
.nutrition-hero h1 { max-width: 920px; margin: 0; font-size: clamp(3rem, 5.4vw, 6.2rem); line-height: .94; letter-spacing: -.055em; }
.nutrition-hero > div > p:not(.eyebrow) { max-width: 690px; margin: 24px 0 30px; color: #c9c9c9; font-size: 1.12rem; }
.nutrition-hero > aside { position: relative; z-index: 1; align-self: end; padding: 30px 0 10px 30px; border-left: 1px solid var(--line); }
.nutrition-wordmark { z-index: 0; left: -2vw; bottom: -.08em; color: rgba(255,255,255,.028); font-size: clamp(8rem, 13.4vw, 17rem); }
.nutrition-hero > aside span, .nutrition-hero > aside strong { display: block; }
.nutrition-hero > aside span { color: var(--green-bright); font-size: clamp(4.5rem, 8vw, 8.5rem); line-height: .8; font-weight: 720; letter-spacing: -.07em; }
.nutrition-hero > aside strong { margin: 12px 0 18px; font-size: 1.2rem; }
.nutrition-hero > aside p { max-width: 330px; color: #999; font-size: .88rem; }
.nutrition-test-layout { display: grid; grid-template-columns: minmax(260px, .62fr) minmax(0, 1.38fr); gap: clamp(42px, 8vw, 120px); align-items: start; width: min(calc(100% - (var(--pad) * 2)), var(--container)); margin: auto; padding: clamp(68px, 8vw, 108px) 0; }
.nutrition-test-intro { position: sticky; top: 108px; }
.nutrition-test-intro h2 { margin: 0 0 20px; font-size: clamp(2.2rem, 3.35vw, 3.9rem); line-height: 1; letter-spacing: -.05em; }
.nutrition-test-intro > p:not(.label) { color: #555; }
.nutrition-progress { height: 5px; margin: 32px 0 12px; overflow: hidden; background: #d8d5ce; }
.nutrition-progress span { display: block; height: 100%; background: var(--green-dark); transition: width .35s ease; }
.nutrition-test-intro > strong { color: var(--green-dark); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.nutrition-test-intro ul { margin: 28px 0 0; padding: 24px 0 0; border-top: 1px solid var(--line-dark); list-style: none; }
.nutrition-test-intro li { margin: 8px 0; color: #666; font-size: .82rem; }
.nutrition-form { min-width: 0; padding: clamp(28px, 4vw, 54px); background: #e8e5de; }
.nutrition-step { min-width: 0; margin: 0; padding: 0; border: 0; }
.nutrition-step[hidden] { display: none; }
.nutrition-step legend { display: block; width: 100%; margin-bottom: 22px; font-size: clamp(2rem, 3vw, 3.3rem); font-weight: 680; line-height: 1; letter-spacing: -.045em; }
.nutrition-step legend span { display: block; margin-bottom: 9px; color: var(--green-dark); font-size: .7rem; letter-spacing: .11em; text-transform: uppercase; }
.nutrition-step-intro { max-width: 720px; margin: 0 0 28px; color: #5b5b5b; }
.nutrition-data-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.nutrition-data-grid label { display: grid; gap: 8px; color: #565656; font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.nutrition-data-grid input { width: 100%; min-height: 54px; padding: 12px 14px; color: var(--ink); background: var(--paper); border: 1px solid #bbb8b1; border-radius: 0; font: inherit; font-size: 1rem; text-transform: none; }
.nutrition-data-grid input:focus { outline: 3px solid rgba(143,189,24,.24); border-color: var(--green-dark); }
.nutrition-questions { display: grid; gap: 10px; }
.nutrition-question { position: relative; display: grid; grid-template-columns: 42px minmax(0, 1fr) 62px; align-items: center; gap: 14px; min-height: 82px; padding: 13px 14px; cursor: pointer; background: rgba(255,255,255,.5); border: 1px solid transparent; transition: background-color .2s ease, border-color .2s ease, transform .2s ease; }
.nutrition-question:hover { background: var(--paper); border-color: #bab7b0; transform: translateX(3px); }
.nutrition-question-number { color: var(--green-dark); font-size: .72rem; font-weight: 750; letter-spacing: .08em; }
.nutrition-question-text { font-size: .93rem; line-height: 1.38; }
.nutrition-question input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.nutrition-check { display: grid; grid-template-columns: 26px 1fr; align-items: center; justify-self: end; gap: 5px; min-width: 58px; padding: 5px; color: #777; border: 1px solid #aaa; border-radius: 999px; transition: color .2s ease, background-color .2s ease, border-color .2s ease; }
.nutrition-check b { display: grid; place-items: center; width: 24px; height: 24px; color: transparent; background: #d2cfc8; border-radius: 50%; }
.nutrition-check em { font-size: .74rem; font-style: normal; font-weight: 700; }
.nutrition-question input:focus-visible + .nutrition-check { outline: 3px solid rgba(143,189,24,.3); outline-offset: 2px; }
.nutrition-question input:checked + .nutrition-check { color: var(--ink); background: var(--green-bright); border-color: var(--green-bright); }
.nutrition-question input:checked + .nutrition-check b { color: var(--ink); background: var(--paper); }
.nutrition-submit-consent { margin-top: 30px; padding: 22px; color: var(--paper); background: var(--ink); }
.nutrition-submit-consent .form-consent { margin-bottom: 12px; }
.nutrition-submit-consent > p { margin: 0; color: #888; font-size: .77rem; }
.nutrition-form-nav { display: flex; justify-content: space-between; gap: 14px; margin-top: 34px; padding-top: 24px; border-top: 1px solid var(--line-dark); }
.nutrition-form-nav button { cursor: pointer; }
.nutrition-form .form-status { color: var(--green-dark); }
.nutrition-note > p { align-self: end; margin: 0; }

/* Galería de YouTube con carga bajo demanda. */
.video-hero { display: grid; grid-template-columns: 1fr auto; gap: 60px; align-items: end; min-height: 500px; padding: clamp(48px, 7vw, 92px) max(var(--pad), calc((100% - var(--container)) / 2)); }
.video-hero .breadcrumbs { margin-bottom: 54px; }
.video-hero h1 { max-width: 920px; margin: 0; font-size: clamp(3rem, 5.2vw, 6rem); line-height: .94; letter-spacing: -.055em; }
.video-hero > div > p:not(.eyebrow) { max-width: 700px; margin: 24px 0 30px; color: #c6c6c6; font-size: 1.12rem; }
.video-hero > span { display: flex; align-items: baseline; gap: 12px; padding: 18px 0; color: #999; border-top: 1px solid var(--line); font-size: .78rem; text-transform: uppercase; }
.video-hero > span strong { color: var(--green-bright); font-size: 2.4rem; letter-spacing: -.05em; }
.video-library { width: min(calc(100% - (var(--pad) * 2)), var(--container)); margin: auto; padding: clamp(68px, 8vw, 108px) 0; }
.video-library-heading { display: grid; grid-template-columns: 1.1fr .9fr; align-items: end; gap: 50px; margin-bottom: 44px; }
.video-library-heading h2 { margin: 0; font-size: clamp(2.4rem, 3.8vw, 4.5rem); line-height: 1; letter-spacing: -.05em; }
.video-library-heading > p { max-width: 540px; margin: 0; color: #5b5b5b; }
.video-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2.5vw, 34px); margin-bottom: 42px; }
.video-card { min-width: 0; color: var(--ink); border-bottom: 1px solid var(--line-dark); transition: transform .28s ease; }
.video-card:hover { transform: translateY(-5px); }
.video-card-image { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: #111; }
.video-card-image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72) contrast(1.04); transition: transform .45s ease, filter .3s ease; }
.video-card:hover img { transform: scale(1.025); filter: saturate(1); }
.video-card-image i { position: absolute; left: 20px; bottom: 18px; display: grid; place-items: center; width: 54px; height: 54px; color: var(--ink); background: var(--green-bright); border-radius: 50%; transition: transform .28s ease; }
.video-card:hover .video-card-image i { transform: scale(1.08); }
.video-card-image svg { width: 25px; height: 25px; fill: currentColor; }
.video-card-copy { display: grid; min-height: 170px; padding: 18px 2px 22px; }
.video-card-copy small, .video-card-copy strong, .video-card-copy em { display: block; }
.video-card-copy small { color: var(--green-dark); font-size: .68rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.video-card-copy strong { margin: 12px 0 18px; font-size: clamp(1.25rem, 1.75vw, 1.65rem); line-height: 1.08; letter-spacing: -.025em; }
.video-card-copy em { align-self: end; color: #555; font-size: .78rem; font-style: normal; }
.video-dialog { width: min(1080px, calc(100% - 34px)); padding: 0; color: var(--paper); background: #090909; border: 1px solid #333; }
.video-dialog::backdrop { background: rgba(0,0,0,.88); backdrop-filter: blur(5px); }
.video-dialog-head { display: flex; justify-content: space-between; align-items: center; gap: 20px; min-height: 68px; padding: 14px 18px 14px 24px; border-bottom: 1px solid #333; }
.video-dialog-head strong { font-size: 1rem; }
.video-dialog-head button { width: 42px; height: 42px; color: var(--paper); background: transparent; border: 1px solid #555; border-radius: 50%; cursor: pointer; font-size: 1.7rem; }
.video-dialog-player { aspect-ratio: 16 / 9; background: #000; }
.video-dialog-player iframe { display: block; width: 100%; height: 100%; border: 0; }

@media (max-width: 1050px) {
  .technique-directory-heading, .video-library-heading { grid-template-columns: 1fr; gap: 18px; }
  .technique-links { grid-template-columns: 1fr; }
  .technique-links a:nth-child(odd) { margin-right: 0; }
  .technique-links a:nth-child(even) { padding-left: 0; border-left: 0; }
  .studio-content-page .content-shell { grid-template-columns: minmax(0, 1fr); }
  .studio-content-page .content-shell > .call-card { grid-column: 1; max-width: 620px; }
  .nutrition-test-layout { grid-template-columns: 290px minmax(0, 1fr); gap: 42px; }
}

@media (max-width: 760px) {
  .technique-groups, .technique-orientation, .nutrition-note, .nutrition-hero, .nutrition-test-layout, .video-hero, .video-library-heading { grid-template-columns: 1fr; }
  .technique-group > header { min-height: 0; }
  .technique-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .technique-links a { min-height: 108px; padding-right: 30px; }
  .technique-links a:nth-child(odd) { margin-right: 10px; }
  .technique-links a:nth-child(even) { padding-left: 10px; border-left: 1px solid var(--line-dark); }
  .technique-links span { display: none; }
  .technique-source summary { grid-template-columns: 1fr 44px; gap: 12px; min-height: 112px; }
  .technique-source summary span { grid-column: 1 / -1; align-self: end; }
  .technique-source summary b { grid-column: 2; grid-row: 2; }
  .studio-content-page .legacy-content ul, .content-page:not(.legal-page) .legacy-content .elementor-widget-text-editor ul,
  .studio-content-page .legacy-content .elementor-section:has(.elementor-widget-image) .elementor-container,
  .content-page:not(.legal-page) .legacy-content .elementor-section:has(.elementor-widget-image) .elementor-container { grid-template-columns: 1fr; }
  .nutrition-hero { min-height: auto; padding-top: 40px; padding-bottom: 54px; }
  .nutrition-wordmark { left: -8vw; bottom: 12%; font-size: clamp(6rem, 25vw, 8.5rem); }
  .nutrition-hero .breadcrumbs { margin-bottom: 38px; }
  .nutrition-hero > aside { padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .nutrition-test-intro { position: static; }
  .nutrition-data-grid { grid-template-columns: 1fr; }
  .nutrition-form { padding: 24px 18px; }
  .nutrition-question { grid-template-columns: 32px minmax(0, 1fr) 56px; gap: 9px; min-height: 92px; padding: 12px 10px; }
  .nutrition-question-text { font-size: .86rem; }
  .nutrition-form-nav { flex-wrap: wrap; }
  .video-hero { min-height: auto; padding-top: 40px; padding-bottom: 56px; }
  .video-hero .breadcrumbs { margin-bottom: 38px; }
  .video-grid { grid-template-columns: 1fr; }
  .video-card-copy { min-height: 138px; }
}

/* Escala editorial más contenida en todo el sitio. */
.hero h1, .hero h2 { font-size: clamp(2.7rem, 3.45vw, 4.35rem); line-height: .98; letter-spacing: -.052em; }
.archive-hero h1, .article-hero h1, .profile-hero h1, .category-hero h1, .search-hero h1, .inner-hero h1 { font-size: clamp(2.25rem, 3vw, 3.85rem); line-height: 1; }
.section-heading h2, .section-heading-light h2, .archive-feed-heading h2,
.spaces-copy h2, .method-copy h2, .home-guide-heading h2, .directory-intro h2, .team-directory-intro h2, .testimonial-context h2, .studio-manifesto h2,
.home-faq-intro h2, .cases-intro h2, .contact-intro h2, .contact-map-copy h2, .contact-guidance h2,
.technique-directory-heading h2, .technique-orientation h2, .nutrition-note h2, .nutrition-test-intro h2,
.video-library-heading h2 { font-size: clamp(2rem, 2.85vw, 3.5rem); line-height: 1.02; letter-spacing: -.045em; text-wrap: balance; }
.disciplines-hero h1, .nutrition-hero h1, .video-hero h1 { font-size: clamp(2.35rem, 3.3vw, 3.55rem); line-height: 1; }

/* Testimonios: navegación completa, historias vivas y archivo asimétrico. */
.testimonials-page .archive-hero { height: 560px; }
.testimonials-page .archive-hero > figure { height: 560px; }
.testimony-topics { position: relative; top: auto; z-index: 1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; overflow: visible; padding: 1px max(var(--pad), calc((100% - var(--container)) / 2)); background: var(--line-dark); scrollbar-width: none; }
.testimony-topics a { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto 20px; align-items: center; gap: 10px; min-height: 72px; padding: 14px 18px; overflow: hidden; color: #4e4e4e; background: var(--paper); border: 0; transition: color .24s ease, background-color .24s ease, padding .24s ease; }
.testimony-topics a::after { content: "↗"; color: var(--green-dark); opacity: 0; transform: translateX(-7px); transition: opacity .24s ease, transform .24s ease; }
.testimony-topics a span { min-width: 28px; color: #777; font-variant-numeric: tabular-nums; }
.testimony-topics a:hover, .testimony-topics a:focus-visible { padding-left: 24px; color: var(--ink); background: #e5e2db; }
.testimony-topics a:hover::after, .testimony-topics a:focus-visible::after { opacity: 1; transform: translateX(0); }
.testimony-topics a.is-active { color: var(--paper); background: var(--ink); }
.testimony-topics a.is-active span, .testimony-topics a.is-active::after { color: var(--green-bright); }
.testimonial-spotlight { padding: clamp(70px, 8vw, 110px) max(var(--pad), calc((100% - var(--container)) / 2)) clamp(84px, 9vw, 132px); color: var(--paper); background: #0c0c0c; }
.testimonial-spotlight > header { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr); align-items: end; gap: clamp(42px, 8vw, 120px); margin-bottom: 42px; }
.testimonial-spotlight > header h2 { max-width: 820px; margin: 5px 0 0; font-size: clamp(2.1rem, 3.05vw, 3.65rem); line-height: 1; letter-spacing: -.047em; text-wrap: balance; }
.testimonial-spotlight > header > p:last-child { max-width: 520px; margin: 0; color: #999; line-height: 1.6; }
.testimonial-spotlight-stage { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); min-height: 550px; border-top: 1px solid #424242; border-bottom: 1px solid #424242; }
.testimonial-spotlight-feature { position: relative; display: flex; min-width: 0; flex-direction: column; padding: clamp(34px, 4.5vw, 64px); overflow: hidden; background: radial-gradient(circle at 105% -5%, rgba(174,230,0,.17), transparent 40%), #151515; border-right: 1px solid #424242; }
.testimonial-spotlight-feature::after { position: absolute; right: -30px; bottom: -82px; content: "“"; color: rgba(174,230,0,.08); font-size: 24rem; font-weight: 750; line-height: .7; pointer-events: none; }
.testimonial-spotlight-feature > span { color: var(--green-bright); font-size: .72rem; font-weight: 700; letter-spacing: .1em; font-variant-numeric: tabular-nums; }
.testimonial-spotlight-feature > p { margin: auto 0 18px; color: var(--green-bright); font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.testimonial-spotlight-feature h3 { position: relative; z-index: 1; max-width: 700px; margin: 0 0 24px; font-size: clamp(1.7rem, 2.5vw, 2.85rem); line-height: 1.03; letter-spacing: -.04em; text-wrap: balance; }
.testimonial-spotlight-feature blockquote { position: relative; z-index: 1; max-width: 680px; margin: 0 0 30px; color: #bdbdbd; font-size: 1rem; line-height: 1.6; }
.testimonial-spotlight-feature > a { position: relative; z-index: 1; align-self: flex-start; color: var(--paper); border-bottom: 1px solid var(--green-bright); font-size: .84rem; }
.testimonial-story-list { min-width: 0; }
.testimonial-story-trigger { display: grid; grid-template-columns: 42px minmax(0, 1fr) 30px; align-items: center; gap: 16px; width: 100%; min-height: 110px; padding: 18px 20px; color: #bcbcbc; text-align: left; background: transparent; border: 0; border-bottom: 1px solid #353535; cursor: pointer; transition: color .22s ease, background-color .22s ease, padding .22s ease; }
.testimonial-story-trigger:last-child { border-bottom: 0; }
.testimonial-story-trigger > span:first-child { color: #686868; font-size: .72rem; font-variant-numeric: tabular-nums; }
.testimonial-story-trigger small, .testimonial-story-trigger strong { display: block; }
.testimonial-story-trigger small { margin-bottom: 6px; color: #777; font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }
.testimonial-story-trigger strong { max-width: 580px; font-size: 1rem; line-height: 1.22; }
.testimonial-story-trigger b { color: var(--green-bright); opacity: 0; transform: translateX(-8px); transition: opacity .22s ease, transform .22s ease; }
.testimonial-story-trigger:hover, .testimonial-story-trigger:focus-visible, .testimonial-story-trigger.is-active { padding-left: 28px; color: var(--paper); background: #1b1b1b; }
.testimonial-story-trigger.is-active { box-shadow: inset 3px 0 var(--green-bright); }
.testimonial-story-trigger:hover b, .testimonial-story-trigger:focus-visible b, .testimonial-story-trigger.is-active b { opacity: 1; transform: translateX(0); }
.testimonials-page .testimonial-context { padding-top: 64px; padding-bottom: 70px; }
.testimonial-finder { position: sticky; z-index: 8; top: 76px; display: grid; grid-template-columns: minmax(240px, .65fr) minmax(360px, 1.35fr); align-items: end; gap: 12px 44px; margin: 0 0 34px; padding: 22px 0 18px; background: rgba(244,242,237,.96); border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); backdrop-filter: blur(12px); }
.testimonial-finder > label { color: #535353; font-size: .78rem; font-weight: 650; }
.testimonial-finder > div { position: relative; display: flex; align-items: center; min-height: 52px; border-bottom: 1px solid var(--ink); }
.testimonial-finder input { flex: 1; min-width: 0; height: 50px; padding: 0 70px 0 2px; color: var(--ink); background: transparent; border: 0; outline: 0; font: inherit; font-size: 1rem; }
.testimonial-finder input::placeholder { color: #858585; }
.testimonial-finder input:focus-visible { outline: 3px solid rgba(143,189,24,.25); outline-offset: 3px; }
.testimonial-finder button { position: absolute; right: 34px; min-height: 38px; padding: 0 8px; color: var(--green-dark); background: transparent; border: 0; cursor: pointer; font-size: .72rem; }
.testimonial-finder > div > span { position: absolute; right: 5px; color: var(--green-dark); font-size: 1.35rem; }
.testimonial-finder > p { grid-column: 2; margin: 0; color: #6a6a6a; font-size: .75rem; }
.testimonials-page .testimonial-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; background: transparent; border: 0; }
.testimonials-page .testimonial-card { min-height: 330px; padding: clamp(28px, 3.2vw, 42px); overflow: hidden; background: #e9e6df; border: 1px solid #cbc8c0; transition: color .28s ease, background-color .28s ease, border-color .28s ease, transform .28s ease, opacity .45s ease; }
.testimonials-page .testimonial-card:nth-child(7n + 1) { grid-column: 1 / -1; min-height: 300px; padding-right: min(38%, 460px); background: #dfe7c8; }
.testimonials-page .testimonial-card:nth-child(7n + 4) { color: var(--paper); background: var(--ink); border-color: var(--ink); }
.testimonials-page .testimonial-card:hover { z-index: 2; transform: translateY(-5px); background: var(--green-bright); border-color: var(--green-bright); }
.testimonials-page .testimonial-card:nth-child(7n + 4):hover { background: #202020; border-color: var(--green-bright); }
.testimonial-card-index { position: absolute; right: 26px; top: 22px; color: #aaa; font-size: clamp(2.1rem, 3.6vw, 4.2rem); font-weight: 700; line-height: 1; letter-spacing: -.07em; font-variant-numeric: tabular-nums; opacity: .34; }
.testimonials-page .testimonial-card > p { position: relative; z-index: 1; margin-bottom: 42px; }
.testimonials-page .testimonial-card h3 { position: relative; z-index: 1; max-width: 780px; padding-right: 38px; font-size: clamp(1.25rem, 1.65vw, 1.65rem); }
.testimonials-page .testimonial-card:nth-child(7n + 1) h3 { font-size: clamp(1.55rem, 2.2vw, 2.35rem); }
.testimonials-page .testimonial-card > div { position: relative; z-index: 1; display: -webkit-box; max-width: 720px; overflow: hidden; color: #575757; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
.testimonials-page .testimonial-card:nth-child(7n + 4) > p, .testimonials-page .testimonial-card:nth-child(7n + 4) > a { color: var(--green-bright); }
.testimonials-page .testimonial-card:nth-child(7n + 4) > div { color: #aaa; }
.testimonials-page .testimonial-card > a { left: clamp(28px, 3.2vw, 42px); bottom: 30px; }
.testimonials-page .testimonial-card.is-reveal-ready { opacity: 0; transform: translateY(22px); }
.testimonials-page .testimonial-card.is-reveal-ready.is-in-view { opacity: 1; transform: translateY(0); }
.testimonials-page .testimonial-card.is-reveal-ready:nth-child(6n + 2) { transition-delay: 55ms; }
.testimonials-page .testimonial-card.is-reveal-ready:nth-child(6n + 3) { transition-delay: 110ms; }
.testimonials-page .testimonial-card.is-reveal-ready:nth-child(6n + 4) { transition-delay: 165ms; }
.testimonial-empty { padding: 62px 0; border-top: 1px solid var(--line-dark); }
.testimonial-empty h3 { margin: 0 0 10px; font-size: 1.6rem; }
.testimonial-empty p { margin: 0; color: #656565; }

/* Equipo: presentación circular con acceso directo a cada perfil. */
.team-orbit { display: grid; grid-template-columns: minmax(250px, .56fr) minmax(620px, 1.44fr); gap: clamp(40px, 7vw, 108px); align-items: center; padding: clamp(68px, 8vw, 112px) max(var(--pad), calc((100% - var(--container)) / 2)); overflow: hidden; background: #e7e4dd; }
.team-orbit > header { position: relative; z-index: 3; }
.team-orbit > header h2 { max-width: 470px; margin: 5px 0 20px; font-size: clamp(2.1rem, 2.85vw, 3.45rem); line-height: 1; letter-spacing: -.045em; text-wrap: balance; }
.team-orbit > header > p:last-child { max-width: 440px; color: #5d5d5d; line-height: 1.65; }
.team-orbit-stage { position: relative; min-width: 0; height: 680px; }
.team-orbit-stage::before, .team-orbit-stage::after { position: absolute; left: 50%; top: 50%; content: ""; border: 1px solid rgba(20,20,20,.12); border-radius: 50%; transform: translate(-50%,-50%); pointer-events: none; }
.team-orbit-stage::before { width: 72%; aspect-ratio: 1; }
.team-orbit-stage::after { width: 48%; aspect-ratio: 1; border-style: dashed; }
.team-orbit-core { position: absolute; z-index: 1; left: 50%; top: 50%; display: grid; width: 210px; aspect-ratio: 1; place-content: center; text-align: center; color: var(--paper); background: var(--ink); border-radius: 50%; transform: translate(-50%,-50%); box-shadow: 0 24px 70px rgba(35,32,24,.2); }
.team-orbit-core::before { position: absolute; z-index: -1; inset: -28px; content: ""; background: repeating-conic-gradient(from 4deg, rgba(151,202,27,.72) 0 1deg, transparent 1deg 14deg); border-radius: 50%; -webkit-mask: radial-gradient(circle, transparent 0 72%, #000 73% 76%, transparent 77%); mask: radial-gradient(circle, transparent 0 72%, #000 73% 76%, transparent 77%); animation: team-orbit-halo 32s linear infinite; }
.team-orbit-core span, .team-orbit-core strong, .team-orbit-core small { display: block; }
.team-orbit-core span { color: var(--green-bright); font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.team-orbit-core strong { margin: 4px 0 14px; font-size: 2.35rem; line-height: 1; letter-spacing: -.05em; }
.team-orbit-core small { color: #8b8b8b; font-size: .65rem; }
.team-orbit-nodes { position: absolute; z-index: 1; inset: 0; pointer-events: none; }
.team-orbit-nodes i { position: absolute; width: 8px; height: 8px; background: var(--green-bright); border: 3px solid #e7e4dd; border-radius: 50%; box-shadow: 0 0 0 1px rgba(20,20,20,.14),0 0 0 0 rgba(151,202,27,.28); animation: team-node-pulse 3.8s ease-out infinite; }
.team-orbit-nodes i:nth-child(1) { left: 15.5%; top: 49%; }
.team-orbit-nodes i:nth-child(2) { left: 49.5%; top: 15%; animation-delay: -.9s; }
.team-orbit-nodes i:nth-child(3) { right: 14.5%; top: 51%; background: var(--pink); animation-delay: -1.8s; }
.team-orbit-nodes i:nth-child(4) { left: 50%; bottom: 14.5%; animation-delay: -2.7s; }
.team-orbit-person { --orbit-x: 14px; --orbit-y: -7px; --orbit-duration: 14s; position: absolute; z-index: 2; width: 176px; color: var(--ink); animation: team-orbit-glide var(--orbit-duration) cubic-bezier(.45,.05,.55,.95) infinite; will-change: transform; }
.team-orbit-person-1 { left: 1%; top: 8%; width: 168px; animation-delay: -2s; }
.team-orbit-person-2 { --orbit-x: 18px; --orbit-y: 3px; --orbit-duration: 16s; left: 38%; top: -1%; width: 196px; animation-delay: -6s; }
.team-orbit-person-3 { --orbit-x: -14px; --orbit-y: -7px; --orbit-duration: 15s; right: 1%; top: 10%; width: 164px; animation-delay: -9s; }
.team-orbit-person-4 { --orbit-x: -14px; --orbit-y: 7px; --orbit-duration: 17s; left: 7%; bottom: 4%; width: 166px; animation-delay: -4s; }
.team-orbit-person-5 { --orbit-x: 18px; --orbit-y: -3px; --orbit-duration: 15.5s; left: 40%; bottom: -1%; width: 188px; animation-delay: -11s; }
.team-orbit-person-6 { --orbit-x: 14px; --orbit-y: 7px; --orbit-duration: 16.5s; right: 1%; bottom: 6%; width: 172px; animation-delay: -7s; }
.team-orbit-image { position: relative; display: block; aspect-ratio: 1; overflow: hidden; background: #d2cfc8; border: 6px solid var(--paper); border-radius: 50%; box-shadow: 0 18px 46px rgba(38,35,27,.18); transition: border-color .28s ease, box-shadow .28s ease; }
.team-orbit-image img { width: 100%; height: 100%; object-fit: cover; object-position: center top; filter: saturate(.78); transition: transform .45s ease, filter .3s ease; }
.team-orbit-label { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0,1fr) 20px; gap: 2px 8px; width: calc(100% + 34px); margin: -12px 0 0 -17px; padding: 10px 12px 11px; color: var(--paper); background: var(--ink); border-left: 3px solid var(--green-bright); }
.team-orbit-person-1 .team-orbit-label { border-color: var(--pink); }
.team-orbit-label small { grid-column: 1 / -1; color: #929292; font-size: .56rem; letter-spacing: .06em; text-transform: uppercase; }
.team-orbit-label strong { overflow-wrap: anywhere; font-size: .78rem; line-height: 1.12; }
.team-orbit-label b { align-self: end; color: var(--green-bright); transform: translateX(-5px); transition: transform .25s ease; }
.team-orbit-person-1 .team-orbit-label b { color: var(--pink); }
.team-orbit-person:hover .team-orbit-image, .team-orbit-person:focus-visible .team-orbit-image { border-color: var(--green-bright); box-shadow: 0 22px 58px rgba(76,103,3,.24); }
.team-orbit-person:hover, .team-orbit-person:focus-visible { animation-play-state: paused; }
.team-orbit-person-1:hover .team-orbit-image, .team-orbit-person-1:focus-visible .team-orbit-image { border-color: var(--pink); }
.team-orbit-person:hover img, .team-orbit-person:focus-visible img { transform: scale(1.055); filter: saturate(1); }
.team-orbit-person:hover .team-orbit-label b, .team-orbit-person:focus-visible .team-orbit-label b { transform: translateX(1px); }
@keyframes team-orbit-glide { 0%,100% { transform: translate3d(calc(var(--orbit-x) * -1),0,0); } 50% { transform: translate3d(var(--orbit-x),var(--orbit-y),0); } }
@keyframes team-orbit-halo { to { transform: rotate(1turn); } }
@keyframes team-node-pulse { 0%,45%,100% { box-shadow: 0 0 0 1px rgba(20,20,20,.14),0 0 0 0 rgba(151,202,27,0); } 18% { box-shadow: 0 0 0 1px rgba(20,20,20,.14),0 0 0 10px rgba(151,202,27,.12); } }
.team-hub-page .team-directory { padding-top: 74px; }

/* Mapa con profundidad y una tarjeta de destino legible. */
.contact-map { position: relative; grid-template-columns: minmax(300px, .62fr) minmax(0, 1.38fr); min-height: 720px; overflow: hidden; background: radial-gradient(circle at 18% 22%, rgba(174,230,0,.1), transparent 28%), #e6e3dc; }
.contact-map-city,
.section-wordmark { position: absolute; color: rgba(20,20,20,.035); font-weight: 750; line-height: .75; letter-spacing: -.08em; white-space: nowrap; text-transform: uppercase; pointer-events: none; }
.section-wordmark.treatments-wordmark,
.section-wordmark.nutrition-wordmark { color: rgba(255,255,255,.032); }
.contact-map-city { left: -18px; bottom: -40px; font-size: clamp(8rem, 20vw, 22rem); }
.contact-map-copy { position: relative; z-index: 2; }
.contact-map-copy > p:not(.label) { max-width: 350px; }
.contact-map-facts { display: grid; gap: 0; max-width: 430px; margin: 30px 0 26px; border-top: 1px solid var(--line-dark); }
.contact-map-facts > span { display: grid; grid-template-columns: 100px 1fr; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line-dark); }
.contact-map-facts small { color: #777; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.contact-map-facts strong { font-size: .82rem; font-weight: 650; }
.contact-map-stage { position: relative; z-index: 2; min-width: 0; padding: 34px 8px 52px 30px; }
.contact-map-frame { position: relative; height: 560px; overflow: hidden; background: #cfd1c4; border: 8px solid var(--paper); box-shadow: 0 34px 80px rgba(55,50,39,.23); transform: rotate(-1.2deg); transition: transform .45s cubic-bezier(.2,.75,.2,1), box-shadow .45s ease; }
.contact-map-frame::before { position: absolute; z-index: 1; left: 0; top: 0; width: 92px; height: 7px; content: ""; background: linear-gradient(90deg, var(--green-bright) 0 52%, var(--pink) 52%); pointer-events: none; }
.contact-map-frame:hover { transform: rotate(0) translateY(-5px); box-shadow: 0 42px 90px rgba(55,50,39,.28); }
.contact-map-frame iframe { display: block; width: 100%; height: 100%; filter: saturate(.78) contrast(1.03); }
.contact-map-ticket { position: absolute; z-index: 3; left: -8px; bottom: 8px; display: grid; grid-template-columns: 46px minmax(0,1fr) auto; align-items: center; gap: 14px; width: min(650px, calc(100% - 34px)); padding: 18px 20px; color: var(--paper); background: rgba(12,12,12,.96); box-shadow: 0 18px 44px rgba(0,0,0,.23); backdrop-filter: blur(10px); }
.contact-map-ticket > span { display: grid; width: 42px; height: 42px; place-items: center; color: var(--ink); background: var(--green-bright); border-radius: 50%; font-size: 1.3rem; }
.contact-map-ticket small, .contact-map-ticket strong { display: block; }
.contact-map-ticket small { color: #858585; font-size: .61rem; letter-spacing: .09em; text-transform: uppercase; }
.contact-map-ticket strong { margin: 2px 0 3px; font-size: 1rem; }
.contact-map-ticket p { margin: 0; color: #aaa; font-size: .74rem; }
.contact-map-ticket > a { display: flex; gap: 12px; align-items: center; min-height: 44px; color: var(--paper); border-bottom: 1px solid var(--green-bright); font-size: .76rem; }
.contact-map-ticket > a b { color: var(--green-bright); transition: transform .22s ease; }
.contact-map-ticket > a:hover b { transform: translateX(4px); }

/* Cabecera: firmas con la misma caja visual y centrado óptico. */
.header-inner .brand { align-self: center; }
.brand-clinic img,
.brand-studio img { display: block; width: 100%; height: 100%; object-position: center; }
.brand-clinic img { object-fit: contain; }
.brand-studio img { object-fit: cover; }

/* Pie: flecha diagonal previa y respuesta cromática por ámbito. */
.footer-brand { position: relative; padding-top: 18px; }
.footer-brand::before { position: absolute; left: 0; top: 0; width: 74px; height: 3px; content: ""; background: linear-gradient(90deg, var(--green-bright) 0 54%, var(--pink) 54%); transition: width .35s ease; }
.footer-brand:hover::before { width: 142px; }
.footer-brand img { transition: transform .35s ease, filter .35s ease; }
.footer-brand:hover img { transform: translateX(5px); filter: brightness(1.08); }
.footer-contact { display: flex !important; align-items: center; gap: 9px; transition: color .22s ease, transform .22s ease; }
.footer-contact svg { flex: 0 0 15px; width: 15px; height: 15px; fill: none; stroke: var(--green-bright); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.footer-contact:hover,
.footer-contact:focus-visible { color: var(--green-bright); transform: translateX(3px); }
.footer-links > a { position: relative; display: flex !important; width: fit-content; align-items: center; transition: color .22s ease, transform .22s ease; }
.footer-links > a::before { position: absolute; left: -20px; top: 50%; content: "→"; opacity: 0; transform: translate(6px,-50%) rotate(-45deg); transform-origin: center; transition: opacity .22s ease, transform .22s ease; }
.footer-links-clinic > a::before,
.footer-links-knowledge > a::before { color: var(--green-bright); }
.footer-links-studio > a::before { color: var(--pink); }
.footer-links-clinic > a:hover,
.footer-links-clinic > a:focus-visible,
.footer-links-knowledge > a:hover,
.footer-links-knowledge > a:focus-visible { color: var(--green-bright); transform: translateX(5px); }
.footer-links-studio > a:hover,
.footer-links-studio > a:focus-visible { color: var(--pink); transform: translateX(5px); }
.footer-links > a:hover::before,
.footer-links > a:focus-visible::before { opacity: 1; transform: translate(0,-50%) rotate(-45deg); }

@media (max-width: 1050px) {
  .testimonial-spotlight-stage { grid-template-columns: 1fr; }
  .testimonial-spotlight-feature { min-height: 470px; border-right: 0; border-bottom: 1px solid #424242; }
  .team-orbit { grid-template-columns: 1fr; }
  .team-orbit > header { max-width: 720px; }
  .team-orbit-stage { width: min(100%, 820px); margin: 0 auto; }
  .contact-map { grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr); gap: 38px; }
  .contact-map-stage { padding-left: 10px; }
}

@media (max-width: 760px) {
  .hero h1, .hero h2, .archive-hero h1, .article-hero h1, .profile-hero h1, .category-hero h1, .search-hero h1, .inner-hero h1, .disciplines-hero h1, .nutrition-hero h1, .video-hero h1 { font-size: clamp(2.05rem, 8.6vw, 3.05rem); line-height: 1; }
  .section-heading h2, .section-heading-light h2, .archive-feed-heading h2,
  .spaces-copy h2, .method-copy h2, .home-guide-heading h2, .directory-intro h2, .team-directory-intro h2, .testimonial-context h2, .studio-manifesto h2,
  .home-faq-intro h2, .cases-intro h2, .contact-intro h2, .contact-map-copy h2, .contact-guidance h2,
  .technique-directory-heading h2, .technique-orientation h2, .nutrition-note h2, .nutrition-test-intro h2, .video-library-heading h2 { font-size: clamp(1.85rem, 8vw, 2.65rem); }
  .testimonials-page .archive-hero, .testimonials-page .archive-hero > figure { height: auto; }
  .testimony-topics { grid-template-columns: repeat(2, minmax(0,1fr)); padding: 1px; }
  .testimony-topics a { min-height: 68px; padding: 12px 13px; font-size: .72rem; }
  .testimonial-spotlight > header { grid-template-columns: 1fr; gap: 18px; }
  .testimonial-spotlight > header h2 { font-size: clamp(1.9rem, 8.6vw, 2.65rem); }
  .testimonial-spotlight-stage { min-height: 0; }
  .testimonial-spotlight-feature { min-height: 500px; padding: 30px 24px; }
  .testimonial-spotlight-feature h3 { font-size: clamp(1.55rem, 7.3vw, 2.2rem); }
  .testimonial-story-trigger { min-height: 104px; padding: 16px 12px; }
  .testimonial-finder { position: static; grid-template-columns: 1fr; gap: 10px; }
  .testimonial-finder > p { grid-column: 1; }
  .testimonials-page .testimonial-grid { grid-template-columns: 1fr; }
  .testimonials-page .testimonial-card:nth-child(7n + 1) { grid-column: 1; min-height: 360px; padding-right: 28px; }
  .testimonials-page .testimonial-card:nth-child(7n + 1) h3 { font-size: clamp(1.4rem, 6.6vw, 1.9rem); }
  .team-orbit { padding-top: 62px; padding-bottom: 84px; }
  .team-orbit-stage { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 34px 16px; height: auto; margin-top: 18px; }
  .team-orbit-stage::before, .team-orbit-stage::after, .team-orbit-nodes, .team-orbit-core::before { display: none; }
  .team-orbit-core { position: static; grid-column: 1 / -1; width: 170px; margin: 0 auto 10px; transform: none; }
  .team-orbit-person, .team-orbit-person-1, .team-orbit-person-2, .team-orbit-person-3, .team-orbit-person-4, .team-orbit-person-5, .team-orbit-person-6 { position: static; width: min(100%, 158px); margin: 0 auto; animation: none; }
  .team-orbit-label { width: calc(100% + 14px); margin-left: -7px; }
  .contact-map { display: block; min-height: 0; padding-top: 70px; padding-bottom: 78px; }
  .contact-map-city { bottom: auto; top: 70px; font-size: 8rem; }
  .contact-map-stage { margin-top: 42px; padding: 0 0 0 8px; }
  .contact-map-frame { height: 460px; border-width: 5px; transform: rotate(-.6deg); }
  .contact-map-ticket { position: relative; left: -8px; bottom: auto; grid-template-columns: 42px minmax(0,1fr); width: calc(100% + 8px); margin-top: -22px; }
  .contact-map-ticket > a { grid-column: 1 / -1; justify-content: space-between; }
}

@media (prefers-reduced-motion: reduce) {
  .team-orbit-person { animation: none; }
  .testimonials-page .testimonial-card.is-reveal-ready { opacity: 1; transform: none; }
  .contact-map-frame, .testimonial-story-trigger, .testimonials-page .testimonial-card, .team-orbit-image img { transition-duration: .01ms; }
}

/* Artículos: lectura amplia con bloques visuales alternos y fotografías sin deformar. */
.article-layout,
.content-shell:not(.legal-shell) { grid-template-columns: minmax(160px, 190px) minmax(0, 1080px); gap: clamp(32px, 4vw, 66px); width: min(calc(100% - (var(--pad) * 2)), 1380px); }
.article-layout > .article-content,
.content-shell:not(.legal-shell) > .legacy-content { width: 100%; max-width: none; }
.article-toc,
.page-toc { padding-right: 20px; }
.legacy-content { font-size: clamp(1.02rem, 1.05vw, 1.12rem); line-height: 1.78; text-wrap: pretty; }
.article-content > p,
.article-content > ul,
.article-content > ol,
.content-shell:not(.legal-shell) > .legacy-content > p,
.content-shell:not(.legal-shell) > .legacy-content > ul,
.content-shell:not(.legal-shell) > .legacy-content > ol { max-width: 790px; }
.legacy-content h2 { max-width: 940px; margin-top: 72px; font-size: clamp(2rem, 2.7vw, 3.2rem); }
.legacy-content h3 { max-width: 820px; }
.legacy-content blockquote { max-width: 900px; margin: 52px 0; padding: 26px 34px; background: #e7e4dc; border-left: 0; border-top: 3px solid var(--green); font-size: clamp(1.18rem, 1.65vw, 1.52rem); line-height: 1.5; }
.legacy-content .elementor,
.legacy-content .page-content { width: 100%; }
.legacy-content .elementor > .elementor-top-section,
.legacy-content .page-content > * { position: relative; }
.legacy-content .elementor > .elementor-top-section { counter-increment: editorial-block; margin: 0 0 clamp(52px, 7vw, 92px); }
.legacy-content .elementor { counter-reset: editorial-block; }
.article-content .elementor > .elementor-top-section:has(img),
.content-page:not(.legal-page) .legacy-content .elementor > .elementor-top-section:has(img),
.studio-content-page .legacy-content .elementor > .elementor-top-section:has(img),
.technique-source .legacy-content .elementor > .elementor-top-section:has(img) { padding: clamp(24px, 3vw, 42px); background: #e7e4dc; border-top: 1px solid var(--line-dark); }
.article-content .elementor > .elementor-top-section:has(img)::before,
.content-page:not(.legal-page) .legacy-content .elementor > .elementor-top-section:has(img)::before,
.studio-content-page .legacy-content .elementor > .elementor-top-section:has(img)::before,
.technique-source .legacy-content .elementor > .elementor-top-section:has(img)::before { position: absolute; right: 18px; top: 14px; content: counter(editorial-block, decimal-leading-zero); color: rgba(18,18,18,.34); font-size: .68rem; font-weight: 750; letter-spacing: .12em; }
.article-content .elementor > .elementor-top-section:has(img) > .elementor-container,
.content-page:not(.legal-page) .legacy-content .elementor > .elementor-top-section:has(img) > .elementor-container,
.studio-content-page .legacy-content .elementor > .elementor-top-section:has(img) > .elementor-container,
.technique-source .legacy-content .elementor > .elementor-top-section:has(img) > .elementor-container { display: grid; grid-template-columns: minmax(260px, .92fr) minmax(0, 1.08fr); gap: clamp(28px, 4vw, 58px); align-items: center; }
.article-content .elementor > .elementor-top-section:nth-child(even):has(img) .elementor-column:has(.elementor-widget-image),
.content-page:not(.legal-page) .legacy-content .elementor > .elementor-top-section:nth-child(even):has(img) .elementor-column:has(.elementor-widget-image),
.studio-content-page .legacy-content .elementor > .elementor-top-section:nth-child(even):has(img) .elementor-column:has(.elementor-widget-image) { order: 2; }
.legacy-content .elementor-column,
.legacy-content .elementor-widget-wrap { min-width: 0; }
.legacy-content .elementor-widget-image,
.legacy-content .legacy-media { display: grid; min-width: 0; min-height: 250px; place-items: center; overflow: hidden; background: #dcd8ce; }
.studio-page .legacy-content .elementor-widget-image,
.studio-page .legacy-content .legacy-media,
.studio-content-page .legacy-content .elementor-widget-image,
.studio-content-page .legacy-content .legacy-media { background: #eadde4; }
.legacy-content .elementor-widget-image img,
.content-page:not(.legal-page) .legacy-content .elementor-widget-image img,
.studio-content-page .legacy-content .elementor-widget-image img,
.technique-source .legacy-content .elementor-widget-image img,
.legacy-content .legacy-media img,
.legacy-content > figure img,
.legacy-content > .wp-block-image img { display: block; width: 100%; height: auto; max-height: none; aspect-ratio: auto; margin: 0 auto; object-fit: contain; }
.legacy-content img.legacy-image-portrait { width: auto; max-width: 100%; max-height: 680px; }
.legacy-content img.is-low-resolution { width: auto !important; max-width: 100%; height: auto !important; aspect-ratio: auto !important; image-rendering: auto; }
.legacy-content .elementor-widget-image:has(img.is-low-resolution),
.legacy-content .legacy-media:has(img.is-low-resolution) { min-height: 310px; padding: 30px; background-image: radial-gradient(circle at 50% 45%, rgba(255,255,255,.75), transparent 64%); }
.legacy-content > figure,
.legacy-content > .wp-block-image { width: min(100%, 1040px); margin: 56px 0; }
.legacy-content > figure:nth-of-type(even),
.legacy-content > .wp-block-image:nth-of-type(even) { margin-left: auto; }
.legacy-content .page-content { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-flow: dense; gap: clamp(18px, 3vw, 38px); align-items: start; }
.legacy-content .page-content > .legacy-subheading:first-child { grid-column: 1 / -1; margin: 0 0 12px; color: var(--pink-dark); font-size: .72rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.legacy-content .page-content > .legacy-media { grid-column: 1 / 8; grid-row: span 2; min-height: 360px; margin: 0; }
.legacy-content .page-content > .legacy-media:nth-of-type(even) { grid-column: 6 / -1; }
.legacy-content .page-content > .legacy-subheading:not(:first-child) { align-self: end; margin: 0; padding-top: 24px; border-top: 2px solid var(--pink); font-size: clamp(1.35rem, 2vw, 2.05rem); }
.legacy-content .page-content > .legacy-subheading:nth-of-type(even) { grid-column: 8 / -1; }
.legacy-content .page-content > .legacy-subheading:nth-of-type(odd):not(:first-child) { grid-column: 1 / 6; }
.legacy-content .page-content > p { margin: 0 0 48px; color: #4d4d4d; }
.legacy-content .page-content > p:nth-of-type(odd) { grid-column: 8 / -1; }
.legacy-content .page-content > p:nth-of-type(even) { grid-column: 1 / 6; }
.legacy-content .comments-area,
.legacy-content .comment-respond { display: none; }
.studio-source { grid-template-columns: minmax(150px, 190px) minmax(0, 1fr); width: min(100%, var(--container)); }
.studio-source .legacy-content { width: 100%; max-width: none; }
.editorial-reveal.is-reveal-ready { opacity: 1; transform: translateY(12px); transition: transform .55s cubic-bezier(.2,.72,.2,1); }
.editorial-reveal.is-reveal-ready.is-in-view { opacity: 1; transform: none; }

/* Las tarjetas laterales pasan al final: liberan ancho y mantienen la conversión. */
.article-layout > .author-card,
.content-shell:not(.legal-shell) > .call-card { position: static; grid-column: 2; width: 100%; max-width: none; margin-top: 8px; }
.content-shell:not(.legal-shell) > .call-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px 30px; align-items: center; padding: 30px 34px; color: var(--paper); background: var(--ink); }
.content-shell:not(.legal-shell) > .call-card > p { margin: 0; font-size: clamp(1.25rem, 2vw, 1.8rem); }
.content-shell:not(.legal-shell) > .call-card > span { margin: 0; color: #aaa; }
.content-shell:not(.legal-shell) > .call-card .button { grid-column: 2; grid-row: 1 / span 2; width: auto; color: var(--green-bright); }
.studio-content-page .content-shell:not(.legal-shell) > .call-card .button { color: var(--pink); }
.article-layout > .author-card { display: grid; grid-template-columns: 92px minmax(0, 1fr) auto; grid-template-rows: auto auto auto; gap: 3px 24px; align-items: center; padding: 24px 28px; }
.article-layout > .author-card > p { grid-column: 2; margin: 0; }
.article-layout > .author-card > p::after { display: none; }
.article-layout > .author-card img { grid-column: 1; grid-row: 1 / span 3; width: 92px; height: 92px; margin: 0; border-radius: 50%; }
.article-layout > .author-card strong,
.article-layout > .author-card > span { grid-column: 2; }
.article-layout > .author-card > a { grid-column: 3; grid-row: 1 / span 3; min-width: 180px; margin: 0; padding: 14px 0; }

/* Horario Studio: calendario vivo, filtrable y legible en cualquier pantalla. */
.studio-schedule { padding: clamp(70px, 8vw, 116px) max(var(--pad), calc((100% - var(--container)) / 2)); background: #ebe7e1; }
.schedule-intro { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); gap: clamp(34px, 7vw, 110px); align-items: end; margin-bottom: 46px; }
.schedule-intro h2 { max-width: 820px; margin: 0; font-size: clamp(2.4rem, 4.4vw, 5rem); line-height: .96; letter-spacing: -.055em; }
.schedule-intro > p { max-width: 560px; margin: 0; color: #555; }
.schedule-controls { position: sticky; z-index: 12; top: 76px; display: flex; justify-content: space-between; align-items: center; gap: 26px; margin: 0 0 24px; padding: 12px; color: var(--paper); background: rgba(13,13,13,.96); backdrop-filter: blur(12px); }
.schedule-day-filter { display: flex; flex-wrap: wrap; gap: 5px; }
.schedule-day-filter button { min-height: 42px; padding: 8px 13px; color: #aaa; background: transparent; border: 1px solid transparent; cursor: pointer; transition: color .2s ease, background-color .2s ease, border-color .2s ease, transform .2s ease; }
.schedule-day-filter button:hover,
.schedule-day-filter button:focus-visible { color: var(--paper); border-color: #555; }
.schedule-day-filter button.is-active { color: var(--ink); background: var(--pink); border-color: var(--pink); }
.schedule-type-filter { display: flex; align-items: center; gap: 12px; color: #999; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.schedule-type-filter select { min-height: 42px; padding: 8px 38px 8px 12px; color: var(--paper); background: #1b1b1b; border: 1px solid #444; font: inherit; font-size: .8rem; text-transform: none; }
.schedule-layout { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: 22px; align-items: start; }
.schedule-board { min-width: 0; background: #f5f3ef; border: 1px solid rgba(18,18,18,.16); box-shadow: 0 26px 70px rgba(56,42,49,.1); }
.schedule-grid { min-width: 980px; }
.schedule-head-row,
.schedule-time-row { display: grid; grid-template-columns: 74px repeat(5, minmax(0, 1fr)); }
.schedule-head-row { position: sticky; z-index: 2; top: 142px; color: var(--paper); background: var(--ink); }
.schedule-head-row > * { min-height: 62px; display: flex; align-items: center; padding: 12px 14px; border-right: 1px solid #353535; }
.schedule-head-row strong { position: relative; font-size: .78rem; letter-spacing: .04em; text-transform: uppercase; }
.schedule-head-row strong.is-today::after { width: 7px; height: 7px; margin-left: 9px; content: ""; background: var(--pink); border-radius: 50%; }
.schedule-time-row > time { display: flex; align-items: flex-start; justify-content: center; min-height: 112px; padding-top: 18px; color: #555; border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); font-size: .82rem; font-variant-numeric: tabular-nums; }
.schedule-cell { min-width: 0; min-height: 112px; padding: 7px; border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.schedule-event { position: relative; display: flex; flex-direction: column; align-items: flex-start; width: 100%; min-height: 96px; padding: 12px 28px 12px 12px; color: var(--ink); background: #ddd; border: 0; cursor: pointer; text-align: left; transition: transform .22s ease, box-shadow .22s ease, filter .22s ease; }
.schedule-event:hover,
.schedule-event:focus-visible { z-index: 1; transform: translateY(-3px) rotate(-.5deg); box-shadow: 0 13px 28px rgba(18,18,18,.15); filter: saturate(1.08); }
.schedule-event[aria-pressed="true"] { outline: 3px solid var(--ink); outline-offset: -3px; }
.schedule-event small { margin-bottom: 6px; font-size: .6rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; opacity: .72; }
.schedule-event strong { font-size: .78rem; line-height: 1.15; }
.schedule-event > b { position: absolute; right: 10px; top: 9px; font-size: .9rem; font-weight: 500; }
.schedule-event-day { display: none; }
.schedule-event-pilates { background: #f4c4dc; }
.schedule-event-yoga { color: #fff; background: #b52378; }
.schedule-event-movement { background: #b7db4a; }
.schedule-event-aerial { color: #fff; background: #191919; }
.schedule-event-recovery { color: #fff; background: #7451b8; }
.schedule-event-workshop { background: #65cbd4; }
.schedule-detail { position: sticky; top: 156px; min-height: 330px; padding: 30px; color: var(--paper); background: var(--ink); border-top: 4px solid var(--pink); }
.schedule-detail > span { display: block; margin-bottom: 22px; color: var(--pink); font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.schedule-detail h3 { margin: 0 0 16px; font-size: clamp(1.65rem, 2.3vw, 2.35rem); line-height: 1; letter-spacing: -.045em; }
.schedule-detail > p:not(.label) { margin: 0 0 30px; color: #bdbdbd; font-size: .9rem; }
.schedule-detail .button { width: 100%; }
.schedule-status { margin: 16px 0 0; color: #666; font-size: .8rem; }
.schedule-note { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(42px, 8vw, 120px); padding: 76px max(var(--pad), calc((100% - var(--container)) / 2)); }
.schedule-note h2 { max-width: 700px; margin: 0; font-size: clamp(2.2rem, 3.6vw, 4.2rem); line-height: 1; letter-spacing: -.05em; }
.schedule-note > div:last-child { align-self: end; }
.schedule-note > div:last-child p { max-width: 620px; color: #aaa; }

/* Firma cromática del slideshow: tres trazos que se dibujan en cada cambio. */
.hero-chroma { position: absolute; z-index: 4; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.hero-chroma-pass { --chroma-delay: 0s; transform-box: view-box; transform-origin: center; }
.hero-chroma-pass-1 { transform: translateY(-160px); }
.hero-chroma-pass-2 { --chroma-delay: 1.42s; transform: translateY(-55px); }
.hero-chroma-pass-3 { --chroma-delay: 2.84s; transform: translateY(55px); }
.hero-chroma-pass-4 { --chroma-delay: 4.26s; transform: translateY(160px); }
.hero-chroma path { fill: none; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; opacity: 0; vector-effect: non-scaling-stroke; }
.hero-chroma-green { stroke: var(--green-bright); stroke-width: 2.4; }
.hero-chroma-white { stroke: #fff; stroke-width: 1.4; }
.hero-chroma-pink { stroke: var(--pink); stroke-width: 2.4; }
.hero-chroma circle { opacity: 0; transform-box: fill-box; transform-origin: center; }
.hero-chroma-node-green { fill: var(--green-bright); }
.hero-chroma-node-white { fill: #fff; }
.hero-chroma-node-pink { fill: var(--pink); }
.hero-chroma.is-playing path { animation: hero-chroma-trace 1.18s cubic-bezier(.3,.02,.18,1) var(--chroma-delay) both; }
.hero-chroma.is-playing .hero-chroma-white { animation-delay: calc(var(--chroma-delay) + .06s); }
.hero-chroma.is-playing .hero-chroma-pink { animation-delay: calc(var(--chroma-delay) + .12s); }
.hero-chroma.is-playing circle { animation: hero-chroma-pulse .52s ease calc(var(--chroma-delay) + .58s) both; }
.hero-chroma.is-playing .hero-chroma-node-white { animation-delay: calc(var(--chroma-delay) + .64s); }
.hero-chroma.is-playing .hero-chroma-node-pink { animation-delay: calc(var(--chroma-delay) + .7s); }
@keyframes hero-chroma-trace { 0% { stroke-dashoffset: 1; opacity: 0; } 16% { opacity: .4; } 64% { stroke-dashoffset: 0; opacity: .3; } 100% { stroke-dashoffset: -.55; opacity: 0; } }
@keyframes hero-chroma-pulse { 0% { opacity: 0; transform: scale(.35); } 48% { opacity: .34; transform: scale(1); } 100% { opacity: 0; transform: scale(1.7); } }

/* Cierre del pie: copyright y crédito juntos; menú legal en la segunda zona. */
.footer-bottom { align-items: center; gap: 28px; }
.footer-bottom-primary { display: flex; align-items: center; gap: 12px; }
.footer-copy { color: #d7d7d7; font-weight: 750; }
.footer-copy span { color: var(--green-bright); }
.footer-bottom .footer-credit { flex: 0 0 auto; }
.footer-bottom .footer-legal { display: flex !important; grid-column: auto; align-items: center; justify-content: flex-end; gap: clamp(13px, 2vw, 26px); margin-left: auto; }
.footer-bottom .footer-legal a,
.footer-bottom .footer-legal button { width: fit-content; margin: 0; color: #858585; font-size: .75rem; white-space: nowrap; }
.footer-bottom .footer-legal a:hover,
.footer-bottom .footer-legal button:hover,
.footer-bottom .footer-legal a:focus-visible,
.footer-bottom .footer-legal button:focus-visible { color: var(--green-bright); }

@media (max-width: 1180px) {
  .article-layout,
  .content-shell:not(.legal-shell) { grid-template-columns: minmax(150px, 180px) minmax(0, 1fr); }
  .legacy-content .page-content > .legacy-media { min-height: 300px; }
  .schedule-layout { grid-template-columns: 1fr; }
  .schedule-detail { position: static; display: grid; grid-template-columns: minmax(0, 1fr) auto; min-height: 0; gap: 4px 28px; }
  .schedule-detail .label,
  .schedule-detail > span,
  .schedule-detail h3,
  .schedule-detail > p:not(.label) { grid-column: 1; }
  .schedule-detail .button { grid-column: 2; grid-row: 1 / span 4; align-self: center; width: auto; }
  .footer-bottom { align-items: flex-start; }
  .footer-bottom .footer-legal { flex-wrap: wrap; }
}

@media (max-width: 760px) {
  .article-layout,
  .content-shell:not(.legal-shell) { display: block; width: calc(100% - 40px); padding-top: 48px; }
  .article-toc,
  .page-toc { position: static; margin-bottom: 42px; padding: 0 0 22px; border-right: 0; border-bottom: 1px solid var(--line-dark); }
  .article-content .elementor > .elementor-top-section:has(img),
  .content-page:not(.legal-page) .legacy-content .elementor > .elementor-top-section:has(img),
  .studio-content-page .legacy-content .elementor > .elementor-top-section:has(img),
  .technique-source .legacy-content .elementor > .elementor-top-section:has(img) { padding: 18px; }
  .article-content .elementor > .elementor-top-section:has(img) > .elementor-container,
  .content-page:not(.legal-page) .legacy-content .elementor > .elementor-top-section:has(img) > .elementor-container,
  .studio-content-page .legacy-content .elementor > .elementor-top-section:has(img) > .elementor-container,
  .technique-source .legacy-content .elementor > .elementor-top-section:has(img) > .elementor-container { grid-template-columns: 1fr; gap: 24px; }
  .article-content .elementor > .elementor-top-section:nth-child(even):has(img) .elementor-column:has(.elementor-widget-image),
  .content-page:not(.legal-page) .legacy-content .elementor > .elementor-top-section:nth-child(even):has(img) .elementor-column:has(.elementor-widget-image),
  .studio-content-page .legacy-content .elementor > .elementor-top-section:nth-child(even):has(img) .elementor-column:has(.elementor-widget-image) { order: 0; }
  .legacy-content .page-content { display: block; }
  .legacy-content .page-content > .legacy-media { min-height: 260px; margin: 0 0 24px; }
  .legacy-content .page-content > .legacy-subheading:not(:first-child) { margin: 0 0 14px; }
  .legacy-content .page-content > p { margin-bottom: 58px; }
  .content-shell:not(.legal-shell) > .call-card { grid-template-columns: 1fr; margin-top: 48px; }
  .content-shell:not(.legal-shell) > .call-card .button { grid-column: 1; grid-row: auto; width: 100%; }
  .article-layout > .author-card { grid-template-columns: 72px 1fr; margin-top: 48px; }
  .article-layout > .author-card img { width: 72px; height: 72px; }
  .article-layout > .author-card > a { grid-column: 1 / -1; grid-row: auto; margin-top: 14px; }
  .studio-source { grid-template-columns: 1fr; }
  .schedule-intro,
  .schedule-note { grid-template-columns: 1fr; }
  .schedule-controls { position: static; display: grid; }
  .schedule-day-filter { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .schedule-day-filter button { padding: 7px 5px; font-size: .72rem; }
  .schedule-type-filter { justify-content: space-between; }
  .schedule-type-filter select { flex: 1; min-width: 0; }
  .schedule-board { border: 0; box-shadow: none; }
  .schedule-grid { min-width: 0; }
  .schedule-head-row { display: none; }
  .schedule-time-row { display: grid; grid-template-columns: 60px minmax(0, 1fr); gap: 8px; margin-bottom: 12px; }
  .schedule-time-row > time { grid-column: 1; grid-row: 1 / span 5; justify-content: flex-start; min-height: 0; padding: 12px 0; border: 0; font-weight: 700; }
  .schedule-cell { grid-column: 2; min-height: 0; padding: 0; border: 0; }
  .schedule-cell:empty { display: none; }
  .schedule-event { min-height: 92px; }
  .schedule-event-day { display: block; margin-bottom: 4px; font-size: .64rem; font-weight: 750; text-transform: uppercase; opacity: .72; }
  .schedule-detail { display: block; margin-top: 24px; }
  .schedule-detail .button { width: 100%; }
  .hero-chroma path { stroke-width: 3; }
  .footer-bottom { position: static; display: grid; margin: 32px var(--pad) 0; padding-top: 22px; }
  .site-footer { padding-bottom: 84px; }
  .footer-bottom-primary { flex-wrap: wrap; }
  .footer-bottom .footer-legal { justify-content: flex-start; margin-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .editorial-reveal.is-reveal-ready { opacity: 1; transform: none; transition: none; }
  .hero-chroma { display: none; }
  .hero-tabs button.is-active::before { animation: none; transform: scaleX(1); }
  .team-orbit-core::before, .team-orbit-nodes i { animation: none; }
  .schedule-event { transition: none; }
}

/* Ajuste final de cabecera: firmas mayores y navegación propia de Studio. */
.brand { flex-basis: 164px; width: 164px; height: 46px; }
.main-nav-studio > ul { gap: clamp(8px, .82vw, 15px); }
.main-nav-studio li > a { position: relative; font-size: clamp(.67rem, .71vw, .76rem); white-space: nowrap; }
.main-nav-studio > ul > li > a::after { position: absolute; right: 0; bottom: 6px; left: 0; height: 2px; content: ""; background: var(--pink); transform: scaleX(0); transform-origin: right; transition: transform .24s ease; }
.main-nav-studio > ul > li > a:hover::after,
.main-nav-studio > ul > li > a:focus-visible::after,
.main-nav-studio > ul > li > a.is-active::after { transform: scaleX(1); transform-origin: left; }
.main-nav-studio li > a.is-active { color: var(--pink); }
.main-nav-studio .nav-search b { color: var(--pink); }
.is-studio-header { border-bottom-color: rgba(236,25,134,.38); }

/* El filtro de día convierte la cuadrícula semanal en una agenda amplia. */
.studio-schedule[data-schedule-view="day"] .schedule-head-row,
.studio-schedule[data-schedule-view="day"] .schedule-time-row { grid-template-columns: 74px minmax(0, 1fr); }
.schedule-day-filter button.is-today:not(.is-active) { color: var(--pink); border-color: rgba(236,25,134,.42); }
.editorial-reveal.is-reveal-ready { transition-delay: var(--reveal-delay, 0ms); }

/* Eslogan editorial y contacto completo de cada marca. */
.footer-brand blockquote { position: relative; max-width: 29ch; margin: 5px 0 0; padding: 6px 0 3px 24px; border-left: 1px solid rgba(255,255,255,.25); }
.footer-brand blockquote::before { position: absolute; left: 8px; top: -7px; color: var(--green-bright); content: "“"; font-family: Georgia,serif; font-size: 2.15rem; line-height: 1; }
.footer-brand blockquote p { margin: 0; color: #b5b5b5; font-family: Georgia,serif; font-size: clamp(1rem,1.05vw,1.12rem); font-style: italic; line-height: 1.6; }
.footer-brand-contact { display: grid; gap: 8px; margin-top: 19px; padding-top: 17px; border-top: 1px solid #292929; }
.footer-brand-contact > a { display: flex; width: fit-content; align-items: center; gap: 9px; color: #b7b7b7; font-size: .78rem; transition: color .2s ease, transform .2s ease; }
.footer-brand-contact > a:hover,
.footer-brand-contact > a:focus-visible { transform: translateX(3px); }
.footer-clinic-contact > a:hover,
.footer-clinic-contact > a:focus-visible { color: var(--green-bright); }
.footer-studio-contact > a:hover,
.footer-studio-contact > a:focus-visible { color: var(--pink); }
.footer-brand-contact > a svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.footer-clinic-contact > a svg { color: var(--green-bright); }
.footer-studio-contact > a svg { color: var(--pink); }
.footer-socials { display: flex; gap: 8px; margin-top: 5px; }
.footer-socials a { display: grid; width: 34px; height: 34px; place-items: center; color: var(--pink); border: 1px solid rgba(236,25,134,.6); border-radius: 50%; transition: color .2s ease, background .2s ease, transform .2s ease; }
.footer-socials a:hover,
.footer-socials a:focus-visible { color: var(--ink); background: var(--pink); transform: translateY(-2px); }
.footer-socials svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.footer-socials a:last-child svg { fill: currentColor; stroke: none; }
.footer-clinic-socials a { color: var(--green-bright); border-color: rgba(151,202,27,.62); }
.footer-clinic-socials a:hover,
.footer-clinic-socials a:focus-visible { color: var(--ink); background: var(--green-bright); }

@media (max-width: 1180px) {
  .brand { flex-basis: 140px; width: 140px; height: 39px; }
  .main-nav-studio > ul { gap: 7px; }
  .main-nav-studio li > a { font-size: .65rem; }
}

@media (max-width: 1050px) {
  .main-nav-studio li > a { font-size: .95rem; white-space: normal; }
  .main-nav-studio > ul > li > a::after { display: none; }
  .main-nav-studio li > a:hover,
  .main-nav-studio li > a:focus-visible { color: var(--pink); }
}

@media (max-width: 760px) {
  .brand { flex-basis: 112px; width: 112px; height: 31px; }
  .studio-schedule[data-schedule-view="day"] .schedule-time-row { grid-template-columns: 60px minmax(0, 1fr); }
}

@media (max-width: 390px) {
  .brand { flex-basis: 96px; width: 96px; height: 27px; }
}

/* Studio: módulo de método curado, sin la retícula heredada que solapaba textos. */
.studio-method { padding: clamp(76px, 8vw, 118px) max(var(--pad), calc((100% - var(--container)) / 2)); background: #e9e5df; }
.studio-method > header { display: grid; grid-template-columns: minmax(150px, 190px) minmax(0, 1fr) minmax(280px, .62fr); gap: clamp(28px, 5vw, 76px); align-items: end; margin-bottom: 42px; }
.studio-method > header h2 { max-width: 850px; margin: 0; font-size: clamp(2.35rem, 3.8vw, 4.45rem); line-height: .98; letter-spacing: -.052em; }
.studio-method > header > p { max-width: 420px; margin: 0; color: #555; }
.studio-method-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(265px, 1fr)); height: min(660px, 58vw); min-height: 560px; gap: 3px; background: #161616; }
.studio-method-card { position: relative; min-width: 0; overflow: hidden; color: var(--paper); background: #111; }
.studio-method-card-1 { grid-column: 1 / 7; grid-row: 1 / 3; }
.studio-method-card-2 { grid-column: 7 / -1; grid-row: 1; }
.studio-method-card-3 { grid-column: 7 / -1; grid-row: 2; }
.studio-method-card::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg, transparent 28%, rgba(0,0,0,.84) 100%); }
.studio-method-card img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.78) contrast(1.03); transition: transform .55s cubic-bezier(.2,.72,.2,1), filter .35s ease; }
.studio-method-card-1 img { object-position: 64% center; }
.studio-method-card > span { position: absolute; z-index: 2; right: clamp(22px, 3vw, 42px); bottom: clamp(22px, 3vw, 40px); left: clamp(22px, 3vw, 42px); display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
.studio-method-card small { grid-column: 1 / -1; margin-bottom: 8px; color: var(--pink); font-size: .69rem; font-style: normal; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.studio-method-card strong { display: block; font-size: clamp(1.55rem, 2.4vw, 3rem); line-height: 1; letter-spacing: -.045em; }
.studio-method-card em { grid-column: 1; max-width: 470px; margin-top: 10px; color: #d0d0d0; font-size: .82rem; font-style: normal; }
.studio-method-card b { grid-column: 2; grid-row: 2 / span 2; align-self: end; color: var(--pink); font-size: 1.8rem; font-weight: 400; transition: transform .25s ease; }
.studio-method-card:hover img,
.studio-method-card:focus-visible img { transform: scale(1.025); filter: saturate(.98) contrast(1.04); }
.studio-method-card:hover b,
.studio-method-card:focus-visible b { transform: translate(4px,-4px); }
.studio-method-quick { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--line-dark); border-top: 0; }
.studio-method-quick a { display: flex; min-height: 76px; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 22px; border-right: 1px solid var(--line-dark); transition: color .22s ease, background .22s ease; }
.studio-method-quick a:last-child { border-right: 0; }
.studio-method-quick a b { color: var(--pink-dark); font-weight: 500; transition: transform .22s ease; }
.studio-method-quick a:hover,
.studio-method-quick a:focus-visible { color: var(--paper); background: var(--ink); }
.studio-method-quick a:hover b,
.studio-method-quick a:focus-visible b { color: var(--pink); transform: translate(3px,-3px); }
.studio-method-quick .is-all { color: var(--paper); background: var(--pink-dark); }
.studio-method-quick .is-all b { color: inherit; }

/* El texto completo se conserva, pero queda en un archivo editorial desplegable y legible. */
.studio-legacy-archive { width: min(calc(100% - (var(--pad) * 2)), var(--container)); margin: 0 auto; padding: 34px 0 76px; border-bottom: 1px solid var(--line-dark); }
.studio-legacy-archive > summary { display: grid; grid-template-columns: minmax(190px, .5fr) minmax(0, 1fr) auto; gap: 26px; align-items: center; min-height: 86px; padding: 0 24px; border: 1px solid var(--line-dark); cursor: pointer; list-style: none; }
.studio-legacy-archive > summary::-webkit-details-marker { display: none; }
.studio-legacy-archive > summary span { color: var(--pink-dark); font-size: .69rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.studio-legacy-archive > summary strong { font-size: clamp(1.05rem, 1.6vw, 1.35rem); }
.studio-legacy-archive > summary b { color: var(--pink-dark); font-size: 1.8rem; font-weight: 400; transition: transform .25s ease; }
.studio-legacy-archive[open] > summary b { transform: rotate(45deg); }
.studio-legacy-archive > .legacy-content { padding: clamp(38px, 6vw, 78px); background: #fff; border: 1px solid var(--line-dark); border-top: 0; }
.studio-legacy-archive .legacy-content .page-content { display: block !important; }
.studio-legacy-archive .legacy-content .page-content > * { width: min(100%, 900px) !important; margin: 0 auto 28px !important; }
.studio-legacy-archive .legacy-content .page-content > h3 { padding-top: 30px; color: var(--pink-dark); border-top: 1px solid var(--line-dark); font-size: clamp(1.5rem, 2.4vw, 2.3rem); line-height: 1; }
.studio-legacy-archive .legacy-content .page-content img { width: auto; max-width: 100%; height: auto; margin: auto; }

/* Cierre de Studio: dos decisiones claras y contacto directo, sin vacío decorativo. */
.studio-start { display: grid; grid-template-columns: minmax(250px, .72fr) minmax(500px, 1.35fr) minmax(210px, .5fr); gap: clamp(30px, 4vw, 66px); padding: clamp(66px, 7vw, 100px) max(var(--pad), calc((100% - var(--container)) / 2)); border-top: 3px solid var(--pink); }
.studio-start h2 { max-width: 560px; margin: 0 0 18px; font-size: clamp(2.2rem, 3.3vw, 3.9rem); line-height: .98; letter-spacing: -.05em; }
.studio-start header > p:last-child { max-width: 420px; margin: 0; color: #aaa; }
.studio-start-options { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; align-self: stretch; background: #3a3a3a; }
.studio-start-options > a { position: relative; display: flex; min-height: 250px; flex-direction: column; justify-content: flex-end; padding: 30px; background: #151515; transition: background .25s ease, transform .25s ease; }
.studio-start-options small { margin-bottom: auto; color: var(--pink); font-size: .68rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.studio-start-options strong { max-width: 260px; font-size: clamp(1.35rem, 2vw, 2rem); line-height: 1.03; }
.studio-start-options span { display: block; max-width: 300px; margin-top: 14px; color: #999; font-size: .82rem; }
.studio-start-options b { position: absolute; top: 28px; right: 28px; color: var(--pink); font-size: 1.45rem; font-weight: 400; transition: transform .22s ease; }
.studio-start-options > a:hover,
.studio-start-options > a:focus-visible { background: #20161c; transform: translateY(-3px); }
.studio-start-options > a:hover b,
.studio-start-options > a:focus-visible b { transform: translate(4px,-4px); }
.studio-start aside { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; padding-left: 28px; border-left: 1px solid #333; }
.studio-start aside > span { margin-bottom: 16px; color: #777; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.studio-start aside > a:not(.button) { margin: 5px 0; color: #ccc; font-size: .82rem; }
.studio-start aside > a:not(.button):hover { color: var(--pink); }
.studio-start aside .button { width: 100%; margin-top: 24px; }

/* Las páginas interiores de Studio ocupan el ancho correcto y cierran con la CTA, nunca al inicio. */
.studio-content-page .content-shell:not(.legal-shell) { grid-template-columns: minmax(0, 1fr); width: min(calc(100% - (var(--pad) * 2)), 1180px); }
.studio-content-page .content-shell:not(.legal-shell) > .legacy-content { grid-column: 1; width: 100%; max-width: none; }
.studio-content-page .content-shell:not(.legal-shell) > .call-card { grid-column: 1; order: 3; margin-top: 58px; }
.studio-content-page .legacy-content .page-content { display: block !important; }
.studio-content-page .legacy-content .page-content > * { width: min(100%, 920px) !important; margin-right: auto !important; margin-left: auto !important; }
.studio-content-page .legacy-content .page-content > h3 { margin-top: 62px !important; margin-bottom: 18px !important; padding: 22px 0 0 24px; color: var(--ink); border-top: 1px solid var(--line-dark); border-left: 3px solid var(--pink); font-size: clamp(1.55rem, 2.8vw, 2.75rem); line-height: 1; letter-spacing: -.04em; }
.studio-content-page .legacy-content .page-content > h3:nth-of-type(even) { padding-right: 24px; padding-left: 0; border-right: 3px solid var(--pink); border-left: 0; text-align: right; }
.studio-content-page .legacy-content .page-content > p { margin-bottom: 34px !important; color: #444; font-size: 1.02rem; line-height: 1.72; }
.studio-content-page .legacy-content .page-content > .legacy-media,
.studio-content-page .legacy-content .page-content > p:has(img) { width: min(100%, 1120px) !important; margin-top: 48px !important; margin-bottom: 54px !important; padding: clamp(18px, 3vw, 34px); background: #e7e2df; }
.studio-content-page .legacy-content .page-content img { width: auto; max-width: 100%; height: auto; margin: auto; object-fit: contain; }

/* Submenú de disciplinas dentro de la navegación propia de Studio. */
.main-nav-studio li > a { font-size: .74rem; }
.main-nav-studio .studio-disciplines-menu .nav-parent > a { position: relative; }
.main-nav-studio .studio-disciplines-menu .nav-parent > a::after { position: absolute; right: 0; bottom: 6px; left: 0; height: 2px; content: ""; background: var(--pink); transform: scaleX(0); transform-origin: right; transition: transform .24s ease; }
.main-nav-studio .studio-disciplines-menu:hover .nav-parent > a::after,
.main-nav-studio .studio-disciplines-menu:focus-within .nav-parent > a::after,
.main-nav-studio .studio-disciplines-menu .nav-parent > a.is-active::after { transform: scaleX(1); transform-origin: left; }
.main-nav-studio .studio-disciplines-menu .submenu-toggle { color: var(--pink); }
.studio-discipline-submenu { left: 50%; width: min(830px, calc(100vw - 40px)); transform: translate(-46%,-8px); }
.has-submenu:hover .studio-discipline-submenu,
.has-submenu:focus-within .studio-discipline-submenu,
.has-submenu.is-open .studio-discipline-submenu { transform: translate(-46%,0); }
.studio-discipline-submenu .submenu-studio-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.is-studio-header .studio-discipline-submenu p { color: var(--pink); }
.is-studio-header .studio-discipline-submenu a:hover,
.is-studio-header .studio-discipline-submenu a:focus-visible,
.is-studio-header .studio-discipline-submenu a[aria-current="page"] { color: var(--paper); background: rgba(236,25,134,.14); }

@media (max-width: 1050px) {
  .studio-method > header { grid-template-columns: 150px minmax(0, 1fr); }
  .studio-method > header > p { grid-column: 2; }
  .studio-start { grid-template-columns: 1fr; }
  .studio-start-options { grid-template-columns: 1fr 1fr; }
  .studio-start aside { display: grid; grid-template-columns: auto 1fr auto; gap: 8px 22px; align-items: center; padding: 26px 0 0; border-top: 1px solid #333; border-left: 0; }
  .studio-start aside > span { grid-column: 1 / -1; margin: 0; }
  .studio-start aside .button { grid-column: 3; grid-row: 2 / span 2; width: auto; margin: 0; }
  .studio-discipline-submenu,
  .has-submenu:hover .studio-discipline-submenu,
  .has-submenu:focus-within .studio-discipline-submenu,
  .has-submenu.is-open .studio-discipline-submenu { left: auto; width: 100%; transform: none; }
  .studio-discipline-submenu .submenu-studio-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .studio-method { padding-right: 20px; padding-left: 20px; }
  .studio-method > header { display: block; }
  .studio-method > header .section-kicker { margin-bottom: 32px; }
  .studio-method > header > p { margin-top: 20px; }
  .studio-method-grid { display: grid; height: auto; min-height: 0; grid-template-columns: 1fr; grid-template-rows: none; gap: 3px; }
  .studio-method-card-1,
  .studio-method-card-2,
  .studio-method-card-3 { grid-column: 1; grid-row: auto; min-height: 330px; }
  .studio-method-card > span { right: 22px; bottom: 22px; left: 22px; }
  .studio-method-card strong { font-size: 1.7rem; }
  .studio-method-quick { grid-template-columns: 1fr; }
  .studio-method-quick a { border-right: 0; border-bottom: 1px solid var(--line-dark); }
  .studio-legacy-archive { width: calc(100% - 40px); }
  .studio-legacy-archive > summary { display: flex; min-height: 0; flex-wrap: wrap; padding: 20px; }
  .studio-legacy-archive > summary b { margin-left: auto; }
  .studio-legacy-archive > .legacy-content { padding: 26px 20px; }
  .studio-start-options { grid-template-columns: 1fr; }
  .studio-start-options > a { min-height: 220px; }
  .studio-start aside { display: flex; align-items: flex-start; }
  .studio-start aside .button { width: 100%; margin-top: 20px; }
  .studio-content-page .content-shell:not(.legal-shell) { width: calc(100% - 40px); }
  .studio-content-page .legacy-content .page-content > h3,
  .studio-content-page .legacy-content .page-content > h3:nth-of-type(even) { margin-top: 44px !important; padding: 18px 0 0 18px; border-right: 0; border-left: 3px solid var(--pink); text-align: left; }
}

@media (max-width: 560px) {
  .site-footer { grid-template-columns: minmax(0,1fr); gap: 36px; }
  .footer-brand { grid-column: 1; }
  .footer-brand-contact > a { max-width: 100%; min-width: 0; }
  .footer-brand-contact > a span { min-width: 0; overflow-wrap: anywhere; }
  .footer-bottom { grid-column: 1; margin-right: 0; margin-left: 0; }
}

/* Iteracion 34: cabecera por universos, contacto directo y composiciones vivas. */
.site-header,
.site-header.is-compact { height: auto; }
.contact-rail { height: 36px; color: #c7c7c7; background: linear-gradient(90deg, #0a0d08 0%, #0b0b0b 48%, #0d080b 100%); border-bottom: 1px solid rgba(255,255,255,.1); }
.contact-rail-inner { display: flex; width: min(100%, var(--container)); height: 100%; align-items: center; justify-content: flex-end; gap: clamp(18px, 2.2vw, 38px); margin: auto; padding: 0 var(--pad); }
.contact-space { display: flex; min-width: 0; align-items: center; gap: 10px; }
.contact-space > strong { color: #858585; font-size: .65rem; letter-spacing: .08em; text-transform: uppercase; }
.contact-space-studio { padding-left: clamp(18px, 2.2vw, 38px); border-left: 1px solid rgba(255,255,255,.12); }
.contact-space-actions { display: inline-flex; align-items: center; gap: 2px; }
.contact-space-number { color: #dedede; font-size: .72rem; font-weight: 650; font-variant-numeric: tabular-nums; }
.contact-rail-action { display: inline-flex; width: 28px; min-height: 28px; align-items: center; justify-content: center; padding: 0; border: 1px solid transparent; border-radius: 50%; transition: color .2s ease, border-color .2s ease, background-color .2s ease, transform .2s ease; }
.contact-rail-action .contact-card-icon { width: 17px; height: 17px; color: currentColor; background: none; border-radius: 0; }
.contact-rail-action .contact-card-icon svg { width: 14px; height: 14px; }
.contact-space-clinic .contact-rail-action { color: var(--green-bright); }
.contact-space-studio .contact-rail-action { color: var(--pink); }
.contact-space-clinic .contact-rail-action:hover,
.contact-space-clinic .contact-rail-action:focus-visible { color: var(--green-bright); background: rgba(168,210,27,.09); border-color: currentColor; transform: translateY(-1px); }
.contact-space-studio .contact-rail-action:hover,
.contact-space-studio .contact-rail-action:focus-visible { color: var(--pink); background: rgba(236,25,134,.09); border-color: currentColor; transform: translateY(-1px); }
.contact-rail-action:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

.header-inner { height: 98px; gap: clamp(14px, 1.45vw, 24px); transition: height .25s ease; }
.site-header.is-compact .header-inner { height: 78px; }
.header-inner .brand.brand-primary { flex: 0 0 auto; width: auto; overflow: hidden; }
.brand-primary-clinic { width: 230px !important; height: 62px !important; }
.brand-primary-studio { width: 220px !important; height: 64px !important; }
.brand-primary-clinic img { object-fit: contain; }
.brand-primary-studio img { object-fit: cover; object-position: center; }
.universe-switch { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: 28px 64px; width: 204px; min-width: 204px; min-height: 98px; align-content: center; gap: 0; margin-left: clamp(16px, 1.7vw, 30px); margin-right: auto; padding: 2px 12px 2px 16px; overflow: hidden; background: #080808; border: 1px solid #373737; transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease; }
.universe-switch::before { position: absolute; left: -1px; top: -1px; bottom: -1px; width: 3px; content: ""; background: currentColor; }
.universe-switch-logo { grid-column: 1; grid-row: 2; display: block; width: 100%; max-width: 100%; min-width: 0; height: 64px; background: transparent; object-fit: contain; object-position: left center; }
.universe-switch-studio .universe-switch-logo { object-fit: contain; object-position: left center; mix-blend-mode: screen; }
.universe-switch b { grid-column: 1; grid-row: 1; display: grid; width: 28px; height: 28px; place-items: center; align-self: center; justify-self: end; color: currentColor; border: 1px solid currentColor; border-radius: 50%; font-size: 1.16rem; font-weight: 750; line-height: 1; transition: color .22s ease, background-color .22s ease, transform .22s ease; }
.universe-switch-studio { color: var(--pink); }
.universe-switch-clinic { color: var(--green-bright); }
.universe-switch:hover,
.universe-switch:focus-visible { background: #0b0b0b; border-color: currentColor; box-shadow: 0 0 0 1px currentColor inset, 0 12px 28px rgba(0,0,0,.32); transform: translateY(-2px); }
.universe-switch:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }
.universe-switch:active { box-shadow: 0 0 0 1px currentColor inset, 0 6px 16px rgba(0,0,0,.24); transform: translateY(0) scale(.985); }
.universe-switch:hover b,
.universe-switch:focus-visible b { transform: translate(2px,-2px); }
.universe-switch-studio:hover b,
.universe-switch-studio:focus-visible b { color: #080808; background: var(--pink); border-color: var(--pink); }
.universe-switch-clinic:hover b,
.universe-switch-clinic:focus-visible b { color: #080808; background: var(--green-bright); border-color: var(--green-bright); }
@media (min-width: 1051px) {
  .site-header.is-compact .header-inner { height: 86px; }
  .site-header.is-compact .universe-switch { grid-template-rows: 22px 56px; width: 180px; min-width: 180px; min-height: 84px; padding: 2px 10px 2px 13px; }
  .site-header.is-compact .universe-switch-logo { height: 56px; }
  .site-header.is-compact .universe-switch b { width: 22px; height: 22px; font-size: .94rem; }
}
.main-nav > ul { gap: clamp(11px, 1vw, 20px); }
.main-nav li > a,
.nav-parent > a { font-size: clamp(.82rem, .86vw, .94rem); }
.main-nav-studio > ul { gap: clamp(7px, .72vw, 14px); }
.main-nav-studio li > a,
.main-nav-studio .nav-parent > a { font-size: clamp(.76rem, .78vw, .84rem); }
.hero,
.hero-slides,
.hero-slide { height: min(820px, calc(100svh - 130px)); }
.topic-nav { top: 114px; }

/* WhatsApp conserva la accion real, pero adopta la identidad del espacio actual. */
.whatsapp-button { width: 62px; height: 62px; color: #102006; background: var(--green-bright); }
.is-studio-tools .whatsapp-button { color: #fff; background: var(--pink-dark); }
.whatsapp-button:hover,
.whatsapp-button:focus-visible { width: 242px; }
.whatsapp-button svg { flex-basis: 62px; width: 62px; height: 62px; padding: 16px; }
.whatsapp-label { display: grid; max-width: 0; padding-left: 0; line-height: 1.1; }
.whatsapp-label small { margin-bottom: 3px; font-size: .58rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .72; }
.whatsapp-label strong { font-size: .9rem; font-weight: 750; font-variant-numeric: tabular-nums; }
.whatsapp-button:hover .whatsapp-label,
.whatsapp-button:focus-visible .whatsapp-label { max-width: 168px; }

/* Metodo Salux: informacion completa alrededor de un nucleo comun. */
.method-section { row-gap: clamp(20px, 2.2vw, 32px); }
.method-copy .lead { max-width: 760px; margin-bottom: 0; }
.method-orbit { grid-column: 1 / -1; margin-top: 0; }
.method-orbit-stage { position: relative; width: min(100%, 1320px); height: 760px; margin: 0 auto; }
.method-orbit-lines { position: absolute; inset: 0; width: 100%; height: 100%; overflow: hidden; }
/* Circunferencia punteada exterior. Trazo mas marcado y punto mas denso: a
   .22 de opacidad y 1 px se veia como una linea sucia, no como un punteado. */
.method-orbit-guide { fill: none; stroke: rgba(77,108,0,.5); stroke-width: 1.6; stroke-dasharray: 2.5 9; stroke-linecap: round; transform-box: view-box; transform-origin: 550px 380px; }
.method-orbit-track { fill: none; stroke: rgba(18,18,18,.2); stroke-width: 1.2; transform-box: view-box; transform-origin: 550px 380px; }
.method-orbit-traveller { fill: var(--green-dark); transform-box: view-box; transform-origin: 550px 380px; animation: method-orbit-travel 16s linear infinite; }
.method-orbit-traveller-b { fill: var(--pink-dark); animation-direction: reverse; animation-duration: 21s; }
@keyframes method-orbit-travel { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: no-preference) {
  .method-orbit-guide { animation: method-orbit-travel 150s linear infinite; }
}
.method-orbit-core { position: absolute; z-index: 2; left: 50%; top: 50%; display: flex; width: 232px; height: 232px; flex-direction: column; align-items: center; justify-content: center; padding: 30px; color: var(--paper); background: var(--ink); border-radius: 50%; box-shadow: 0 28px 70px rgba(52,49,40,.2); text-align: center; transform: translate(-50%,-50%); }
.method-orbit-core::before { position: absolute; inset: -14px; content: ""; border: 1px dashed rgba(77,108,0,.48); border-radius: 50%; animation: method-core-spin 24s linear infinite; }
@keyframes method-core-spin { to { transform: rotate(-360deg); } }
.method-orbit-core img { width: 54px; height: 54px; margin-bottom: 12px; border-radius: 10px; }
.method-orbit-core span { color: var(--green-bright); font-size: .64rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.method-orbit-core strong { margin: 5px 0 7px; font-size: 2rem; line-height: 1; letter-spacing: -.05em; }
.method-orbit-core small { max-width: 16ch; color: #9c9c9c; font-size: .68rem; }
.method-orbit-list { margin: 0; padding: 0; list-style: none; }
.method-orbit-node { position: absolute; z-index: 3; width: min(27%, 340px); }
.method-orbit-node::before { position: absolute; z-index: -1; content: ""; background: rgba(77,108,0,.3); }
.method-orbit-node article { position: relative; min-height: 0; padding: 18px 4px 0 20px; background: transparent; border-top: 1px solid rgba(77,108,0,.56); box-shadow: none; transition: transform .3s cubic-bezier(.2,.72,.2,1); }
.method-orbit-node article::before { position: absolute; left: 0; top: -2px; width: 42px; height: 3px; content: ""; background: var(--green-dark); }
.method-orbit-node article::after { position: absolute; width: 8px; height: 8px; content: ""; background: var(--green-bright); border-radius: 50%; box-shadow: 0 0 0 5px rgba(168,210,27,.11); }
.method-orbit-node:hover article { transform: translateY(-3px); }
.method-orbit-node-1 { left: 0; top: 34px; }
.method-orbit-node-1::before,
.method-orbit-node-4::before { left: 100%; top: 21px; width: 28px; height: 1px; }
.method-orbit-node-1 article::after,
.method-orbit-node-4 article::after { right: -34px; top: 17px; background: var(--pink-dark); box-shadow: 0 0 0 5px rgba(236,25,134,.1); }
.method-orbit-node-2 { right: 0; top: 34px; }
.method-orbit-node-2::before,
.method-orbit-node-3::before { right: 100%; top: 21px; width: 28px; height: 1px; }
.method-orbit-node-2 article::after,
.method-orbit-node-3 article::after { left: -34px; top: 17px; }
.method-orbit-node-3 { right: 0; bottom: 34px; }
.method-orbit-node-4 { left: 0; bottom: 34px; }
.method-orbit-node span { display: block; margin-bottom: 14px; color: var(--green-dark); font-size: .7rem; font-weight: 750; letter-spacing: .11em; }
.method-orbit-node-1 span { color: var(--pink-dark); }
.method-orbit-node h3 { margin: 0 0 10px; font-size: clamp(1.2rem, 1.4vw, 1.5rem); line-height: 1.05; letter-spacing: -.035em; }
.method-orbit-node p { margin: 0; color: #555; font-size: .77rem; line-height: 1.58; }
.method-orbit-note { width: min(100%, 720px); margin: 10px auto 0; color: #666; font-size: .83rem; text-align: center; }

/* --- Orbita "Tu proceso" ----------------------------------------------------
   Las circunferencias se dibujan al entrar en pantalla, los cuatro nodos
   aparecen en orden con su conector, y el conjunto responde al puntero.
   Se activa desde site.js (`data-method-orbit`). Sin JS, todo queda visible y
   estatico: la seccion nunca depende de la animacion para poder leerse. --- */
.method-orbit-stage {
  --orbit-tilt-x: 0deg;
  --orbit-tilt-y: 0deg;
  --orbit-shift-x: 0px;
  --orbit-shift-y: 0px;
  transition: transform .6s cubic-bezier(.2,.72,.2,1);
}
@media (prefers-reduced-motion: no-preference) and (hover: hover) and (pointer: fine) {
  .method-orbit[data-method-orbit-pointer] .method-orbit-stage {
    transform: perspective(1400px) rotateX(var(--orbit-tilt-x)) rotateY(var(--orbit-tilt-y));
    transition: transform .28s ease-out;
  }
  .method-orbit[data-method-orbit-pointer] .method-orbit-core,
  .method-orbit[data-method-orbit-pointer] .method-orbit-lines {
    transform-style: preserve-3d;
  }
  .method-orbit[data-method-orbit-pointer] .method-orbit-lines {
    translate: calc(var(--orbit-shift-x) * -1) calc(var(--orbit-shift-y) * -1);
    transition: translate .28s ease-out;
  }
}

@media (prefers-reduced-motion: no-preference) {
  /* Trazado de las circunferencias. r=210 y r=190 -> longitudes 1320 y 1194. */
  .method-orbit[data-method-orbit-state] .method-orbit-guide { opacity: 0; }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-guide {
    animation: orbit-guide-in 1.4s cubic-bezier(.3,.7,.3,1) .1s both,
               method-orbit-travel 150s linear .1s infinite;
  }
  .method-orbit[data-method-orbit-state] .method-orbit-track {
    stroke-dasharray: 1194;
    stroke-dashoffset: 1194;
  }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-track {
    animation: orbit-draw-track 1.5s cubic-bezier(.3,.7,.3,1) .25s both;
  }
  .method-orbit[data-method-orbit-state] .method-orbit-traveller { opacity: 0; }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-traveller {
    opacity: 1;
    transition: opacity .6s ease 1.2s;
  }

  /* Nucleo: entra con un pequeno impulso y respira despues. */
  .method-orbit[data-method-orbit-state] .method-orbit-core {
    opacity: 0;
    transform: translate(-50%,-50%) scale(.86);
  }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-core {
    animation: orbit-core-in .85s cubic-bezier(.34,1.4,.64,1) .05s both,
               orbit-core-breathe 7s ease-in-out 1.1s infinite;
  }

  /* Nodos: entran en orden, cada uno desde su lado. */
  .method-orbit[data-method-orbit-state] .method-orbit-node { opacity: 0; }
  .method-orbit[data-method-orbit-state] .method-orbit-node-1,
  .method-orbit[data-method-orbit-state] .method-orbit-node-4 { transform: translate3d(-38px, 0, 0); }
  .method-orbit[data-method-orbit-state] .method-orbit-node-2,
  .method-orbit[data-method-orbit-state] .method-orbit-node-3 { transform: translate3d(38px, 0, 0); }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-node {
    animation: orbit-node-in .7s cubic-bezier(.22,.61,.36,1) both;
  }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-node-1 { animation-delay: .45s; }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-node-2 { animation-delay: .62s; }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-node-3 { animation-delay: .79s; }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-node-4 { animation-delay: .96s; }

  /* Conector: se extiende hacia la orbita cuando llega su nodo. */
  .method-orbit[data-method-orbit-state] .method-orbit-node::before {
    transform: scaleX(0);
    transition: transform .5s cubic-bezier(.2,.72,.2,1);
  }
  .method-orbit[data-method-orbit-state] .method-orbit-node-1::before,
  .method-orbit[data-method-orbit-state] .method-orbit-node-4::before { transform-origin: 0 50%; }
  .method-orbit[data-method-orbit-state] .method-orbit-node-2::before,
  .method-orbit[data-method-orbit-state] .method-orbit-node-3::before { transform-origin: 100% 50%; }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-node-1::before { transform: scaleX(1); transition-delay: .95s; }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-node-2::before { transform: scaleX(1); transition-delay: 1.12s; }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-node-3::before { transform: scaleX(1); transition-delay: 1.29s; }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-node-4::before { transform: scaleX(1); transition-delay: 1.46s; }

  /* El punto de cada nodo late al llegar. */
  .method-orbit[data-method-orbit-state="in"] .method-orbit-node article::after {
    animation: orbit-dot-pulse 3.4s ease-out 1.6s infinite;
  }
}

/* Hover de un nodo: se ilumina su rama y el nucleo responde. */
.method-orbit-node article::before,
.method-orbit-node article::after { transition: width .3s ease, box-shadow .3s ease, background-color .3s ease; }
.method-orbit-node:hover article::before { width: 76px; }
.method-orbit-node:hover article::after { box-shadow: 0 0 0 9px rgba(168,210,27,.16); }
.method-orbit-node-1:hover article::after,
.method-orbit-node-4:hover article::after { box-shadow: 0 0 0 9px rgba(236,25,134,.16); }
.method-orbit-stage:has(.method-orbit-node:hover) .method-orbit-core { box-shadow: 0 28px 70px rgba(52,49,40,.2), 0 0 0 6px rgba(168,210,27,.14); }

@keyframes orbit-guide-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes orbit-draw-track {
  from { stroke-dashoffset: 1194; }
  to   { stroke-dashoffset: 0; }
}
@keyframes orbit-core-in {
  from { opacity: 0; transform: translate(-50%,-50%) scale(.86); }
  to   { opacity: 1; transform: translate(-50%,-50%) scale(1); }
}
@keyframes orbit-core-breathe {
  0%, 100% { transform: translate(-50%,-50%) scale(1); }
  50%      { transform: translate(-50%,-50%) scale(1.022); }
}
@keyframes orbit-node-in {
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes orbit-dot-pulse {
  0%      { box-shadow: 0 0 0 5px rgba(168,210,27,.11); }
  35%     { box-shadow: 0 0 0 13px rgba(168,210,27,0); }
  100%    { box-shadow: 0 0 0 5px rgba(168,210,27,.11); }
}

@media (prefers-reduced-motion: reduce) {
  .method-orbit-traveller,
  .method-orbit-core::before { animation: none !important; }
  .method-orbit-stage { transform: none !important; }
}


/* Guia clinica: un rail sutil enlaza tres superficies alineadas. */
.home-guide-cards { position: relative; grid-column: 1 / -1; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); align-items: stretch; margin-top: -36px; padding: 42px 0 28px; }
.home-guide-rail { position: absolute; left: 3%; right: 3%; top: 0; height: 1px; background: linear-gradient(90deg, rgba(77,108,0,.16), rgba(77,108,0,.5) 18%, rgba(236,25,134,.38) 52%, rgba(77,108,0,.32) 82%, rgba(77,108,0,.12)); }
.home-guide-rail::before { position: absolute; left: 0; top: -2px; width: 5px; height: 5px; content: ""; background: var(--green-dark); border-radius: 50%; }
.home-guide-rail i { position: absolute; inset: -1px 0 auto; height: 3px; background: linear-gradient(90deg, transparent, var(--pink) 72%, transparent); opacity: 0; transform: scaleX(.04); transform-origin: left; animation: home-guide-pulse 9s ease-in-out infinite; }
@keyframes home-guide-pulse { 0%, 12% { opacity: 0; transform: scaleX(.04); } 28%, 72% { opacity: .5; } 88%, 100% { opacity: 0; transform: scaleX(1); } }
.home-guide-card { position: relative; min-height: 390px; padding: clamp(28px, 2.7vw, 40px); background: linear-gradient(145deg, rgba(255,255,255,.78), rgba(244,241,233,.94)); border: 1px solid rgba(77,68,52,.08); box-shadow: 0 20px 52px rgba(94,82,60,.13), 0 3px 10px rgba(94,82,60,.07); transition: transform .32s cubic-bezier(.2,.72,.2,1), box-shadow .32s ease; }
.home-guide-card::after { position: absolute; left: 50%; bottom: 100%; width: 1px; height: 42px; content: ""; background: linear-gradient(rgba(77,108,0,.42), rgba(77,108,0,.08)); }
.home-guide-card::before { position: absolute; left: 0; top: 0; width: 68px; height: 4px; content: ""; background: var(--green-dark); transition: width .32s ease; }
.home-guide-card:hover,
.home-guide-card:focus-visible { outline: 0; transform: translateY(-6px) scale(1.008); box-shadow: 0 30px 72px rgba(94,82,60,.2), 0 6px 18px rgba(94,82,60,.1); }
.home-guide-card:focus-visible { box-shadow: 0 0 0 3px var(--green-bright), 0 30px 72px rgba(94,82,60,.2); }
.home-guide-card:hover::before,
.home-guide-card:focus-visible::before { width: 132px; }
.home-guide-card-1 { grid-column: 1 / 5; }
.home-guide-card-2 { grid-column: 5 / 9; color: var(--paper); background: radial-gradient(circle at 88% 8%, rgba(236,25,134,.12), transparent 28%), #1a1919; border-color: rgba(255,255,255,.07); box-shadow: 0 24px 58px rgba(44,37,41,.22), 0 4px 12px rgba(44,37,41,.12); }
.home-guide-card-2::before { background: var(--pink); }
.home-guide-card-3 { grid-column: 9 / 13; background: linear-gradient(145deg, #edf2da, #dfe8bd); border-color: rgba(77,108,0,.12); }
.home-guide-index { display: flex; justify-content: space-between; gap: 18px; margin-bottom: clamp(38px, 4.2vw, 64px); color: var(--green-dark); font-size: .72rem; font-weight: 750; font-variant-numeric: tabular-nums; }
.home-guide-index small { color: #777; font-size: .62rem; font-weight: 650; letter-spacing: .08em; text-align: right; text-transform: uppercase; }
.home-guide-card-2 .home-guide-index { color: var(--pink); }
.home-guide-card-2 .home-guide-index small { color: #888; }
.home-guide-card h3 { max-width: 16ch; margin: 0 0 22px; font-size: clamp(1.45rem, 2.1vw, 2.15rem); line-height: 1; letter-spacing: -.045em; }
.home-guide-card p { max-width: 48ch; color: #4f4f4f; font-size: .88rem; line-height: 1.62; }
.home-guide-card-2 p { color: #bdbdbd; }
.home-guide-card.is-reveal-ready,
.method-orbit-node.is-reveal-ready { opacity: 0; transform: translateY(24px); }
.method-orbit-node-3.is-reveal-ready { transform: translate(-50%,24px); }
.home-guide-card.is-reveal-ready.is-in-view,
.method-orbit-node.is-reveal-ready.is-in-view { opacity: 1; transform: none; transition: opacity .55s ease, transform .65s cubic-bezier(.2,.7,.2,1); transition-delay: var(--card-delay, 0ms); }
.method-orbit-node-3.is-reveal-ready.is-in-view { transform: translateX(-50%); }

/* Horario Studio: guias de tiempo, aire entre dias y clases suspendidas. */
.studio-schedule { background: #ebe6e2; }
.schedule-controls { border-radius: 2px; box-shadow: 0 18px 42px rgba(38,31,35,.13); }
.schedule-layout { grid-template-columns: minmax(0, 1fr) 310px; gap: clamp(20px, 2.5vw, 34px); }
.schedule-board { overflow: visible; background: transparent; border: 0; box-shadow: none; }
.schedule-grid { min-width: 0; }
.schedule-head-row { top: 128px; color: var(--ink); background: transparent; border-bottom: 1px solid rgba(18,18,18,.28); }
.schedule-head-row > * { min-height: 56px; padding: 10px 12px; border: 0; }
.schedule-head-row > span { color: #777; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.schedule-head-row strong { justify-content: center; color: #5a5a5a; font-size: .72rem; }
.schedule-time-row { position: relative; min-height: 132px; }
.schedule-time-row::before { position: absolute; z-index: 0; left: 74px; right: 0; top: 0; height: 1px; content: ""; background: rgba(18,18,18,.13); }
.schedule-time-row > time { z-index: 1; min-height: 132px; justify-content: flex-start; padding: 16px 10px 0 0; color: #4c4c4c; border: 0; font-size: .78rem; font-weight: 750; }
.schedule-cell { z-index: 1; min-height: 132px; padding: 10px 7px 16px; border: 0; }
.schedule-cell:nth-child(3) { --event-shift: 8px; }
.schedule-cell:nth-child(4) { --event-shift: 2px; }
.schedule-cell:nth-child(5) { --event-shift: 11px; }
.schedule-cell:nth-child(6) { --event-shift: 5px; }
.schedule-event { min-height: 102px; padding: 15px 30px 14px 15px; border: 1px solid rgba(18,18,18,.1); border-radius: 16px 16px 16px 5px; box-shadow: 0 12px 26px rgba(47,39,42,.12); transform: translateY(var(--event-shift, 0)); }
.schedule-event:hover,
.schedule-event:focus-visible { transform: translateY(calc(var(--event-shift, 0px) - 5px)) rotate(-.6deg); box-shadow: 0 18px 34px rgba(47,39,42,.2); }
.schedule-event[aria-pressed="true"] { outline: 3px solid var(--pink-dark); outline-offset: 2px; }
.schedule-event-pilates { background: #f5c7de; }
.schedule-event-yoga { color: #fff; background: #a91565; }
.schedule-event-movement { background: #c8de78; }
.schedule-event-aerial { color: #fff; background: #202020; }
.schedule-event-recovery { color: #fff; background: #6b477b; }
.schedule-event-workshop { background: #79d2d1; }
.schedule-detail { top: 128px; overflow: hidden; min-height: 350px; padding: 34px; background: radial-gradient(circle at 88% 10%, rgba(236,25,134,.2), transparent 34%), #151315; border: 0; border-radius: 2px; box-shadow: 0 28px 68px rgba(43,32,39,.22); }
.schedule-detail::before { position: absolute; left: 0; top: 0; bottom: 0; width: 4px; content: ""; background: var(--pink); }

/* Ritmo editorial para otras rejillas repetitivas en pantallas amplias. */
@media (min-width: 1181px) {
  .space-editorial-grid { grid-template-columns: 1.12fr .88fr; gap: 24px; background: transparent; border: 0; }
  .space-editorial-card { box-shadow: 0 24px 58px rgba(54,49,40,.1); }
  .space-editorial-card.studio { margin-top: 52px; }
  .archive-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: start; }
  .archive-grid > .article-card { grid-column: span 4; }
  .archive-grid > .article-card:nth-child(6n+1) { grid-column: span 5; }
  .archive-grid > .article-card:nth-child(6n+2) { grid-column: span 3; margin-top: 54px; }
  .archive-grid > .article-card:nth-child(6n+3) { grid-column: span 4; margin-top: 18px; }
  .archive-grid > .article-card:nth-child(6n+4) { grid-column: span 4; margin-top: 38px; }
  .archive-grid > .article-card:nth-child(6n+5) { grid-column: span 5; }
  .archive-grid > .article-card:nth-child(6n+6) { grid-column: span 3; margin-top: 72px; }
  .discipline-groups { grid-template-columns: 1.08fr .88fr 1.04fr; align-items: start; }
  .discipline-group:nth-child(2) { margin-top: 48px; }
  .team-grid { grid-template-columns: 1.08fr .9fr 1.02fr; align-items: start; }
  .team-grid .team-card:nth-child(3n+2) { margin-top: 48px; }
}

@media (max-width: 1280px) {
  .brand-primary-clinic { width: 194px !important; height: 53px !important; }
  .brand-primary-studio { width: 186px !important; height: 54px !important; }
  .universe-switch { grid-template-rows: 24px 60px; width: 190px; min-width: 190px; min-height: 90px; margin-left: 12px; padding-right: 10px; padding-left: 13px; }
  .universe-switch-logo { height: 60px; }
  .universe-switch b { width: 24px; height: 24px; font-size: 1rem; }
  .main-nav > ul { gap: 8px; }
  .main-nav li > a,
  .nav-parent > a { font-size: .79rem; }
  .main-nav-studio li > a,
  .main-nav-studio .nav-parent > a { font-size: .72rem; }
}

@media (max-width: 1050px) {
  .contact-rail { height: 42px; }
  .contact-rail-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
  .contact-space { justify-content: center; }
  .contact-space-studio { padding-left: 12px; }
  .header-inner,
  .site-header.is-compact .header-inner { height: 80px; }
  .brand-primary-clinic { width: 184px !important; height: 51px !important; }
  .brand-primary-studio { width: 176px !important; height: 51px !important; }
  .universe-switch { grid-template-rows: 22px 51px; width: 160px; min-width: 160px; min-height: 79px; margin-left: 8px; }
  .universe-switch-logo { height: 51px; }
  .universe-switch b { width: 22px; height: 22px; font-size: .94rem; }
  .main-nav,
  .main-nav.main-nav-studio { inset: 122px 0 auto; max-height: calc(100dvh - 122px); overflow-y: auto; }
  .main-nav > ul,
  .main-nav-studio > ul { display: block; }
  .main-nav li > a,
  .main-nav-studio li > a,
  .nav-parent > a,
  .main-nav-studio .nav-parent > a { font-size: .98rem; }
  .menu-toggle { flex: 0 0 auto; }
  .topic-nav { top: 122px; }
  .method-orbit-stage { height: 680px; }
  .method-orbit-node { width: min(36%, 320px); }
  .method-orbit-node article { min-height: 206px; padding: 24px; }
  .home-guide-cards { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .home-guide-card-1 { grid-column: 1 / 5; }
  .home-guide-card-2 { grid-column: 5 / 9; }
  .home-guide-card-3 { grid-column: 9 / 13; width: auto; margin: 0; }
  .schedule-layout { grid-template-columns: 1fr; }
  .schedule-detail { position: static; }
}

@media (max-width: 1050px) {
  .method-orbit-stage { display: flex; width: 100%; height: auto; flex-direction: column; }
  .method-orbit-lines { display: none; }
  .method-orbit-core { position: relative; left: auto; top: auto; order: 1; width: 210px; height: 210px; margin: 0 auto 44px; transform: none; }
  .method-orbit-list { order: 2; display: grid; gap: 16px; }
  .method-orbit-node,
  .method-orbit-node-1,
  .method-orbit-node-2,
  .method-orbit-node-3,
  .method-orbit-node-4 { position: static; width: 100%; transform: none; }
  .method-orbit-node::before { display: none; }
  .method-orbit-node article { min-height: 0; padding-right: 0; }
  .method-orbit-node article::after { right: 10px; left: auto; top: -5px; }
  .method-orbit-node-3.is-reveal-ready,
  .method-orbit-node-3.is-reveal-ready.is-in-view { transform: none; }
}

@media (max-width: 760px) {
  .contact-rail { height: 58px; }
  .contact-rail-inner { padding: 0 12px; }
  .contact-space { display: grid; grid-template-columns: auto auto; grid-template-rows: 15px 30px; gap: 0 4px; align-content: center; justify-content: center; }
  .contact-space > strong { grid-column: 1 / -1; color: #8e8e8e; font-size: .52rem; text-align: center; }
  .contact-space-studio { padding-left: 6px; }
  .contact-space-actions { gap: 0; }
  .contact-rail-action { width: 28px; min-height: 28px; }
  .contact-space-number { align-self: center; font-size: .57rem; white-space: nowrap; }
  .header-inner,
  .site-header.is-compact .header-inner { height: 80px; padding-right: 14px; padding-left: 14px; gap: 10px; }
  .brand-primary-clinic { width: 146px !important; height: 42px !important; }
  .brand-primary-studio { width: 140px !important; height: 42px !important; }
  .universe-switch { grid-template-rows: 20px 48px; width: 150px; min-width: 150px; min-height: 76px; margin-left: 4px; padding: 2px 7px 4px 10px; }
  .universe-switch-logo { height: 48px; }
  .universe-switch b { display: grid; width: 20px; height: 20px; font-size: .86rem; }
  .menu-toggle { gap: 7px; font-size: .76rem; }
  .main-nav,
  .main-nav.main-nav-studio { inset: 134px 0 auto; max-height: calc(100dvh - 134px); }
  .hero,
  .hero-slides,
  .hero-slide { height: auto; min-height: 690px; }
  .home-guide-cards { display: grid; grid-template-columns: 1fr; gap: 24px; margin-top: 18px; padding: 0 0 12px 26px; }
  .home-guide-rail { left: 7px; right: auto; top: 0; bottom: 0; width: 1px; height: auto; background: linear-gradient(rgba(77,108,0,.18), rgba(236,25,134,.34), rgba(77,108,0,.22)); }
  .home-guide-rail i { display: none; }
  .home-guide-card,
  .home-guide-card-1,
  .home-guide-card-2,
  .home-guide-card-3 { grid-column: 1; width: 100%; min-height: 0; margin: 0; }
  .home-guide-card::after { right: 100%; left: auto; top: 28px; bottom: auto; width: 19px; height: 1px; background: rgba(77,108,0,.38); }
  .home-guide-index { margin-bottom: 34px; }
  .method-orbit-core { width: 184px; height: 184px; }
  .method-orbit-node p { font-size: .94rem; }
  .schedule-controls { position: static; }
  .schedule-day-filter { display: flex; flex-wrap: nowrap; gap: 6px; overflow-x: auto; padding-bottom: 3px; scrollbar-width: none; scroll-snap-type: x proximity; }
  .schedule-day-filter::-webkit-scrollbar { display: none; }
  .schedule-day-filter button { flex: 0 0 auto; min-width: 92px; scroll-snap-align: start; }
  .schedule-board { overflow: visible; }
  .schedule-time-row::before { left: 0; }
  .schedule-time-row { grid-template-columns: 54px minmax(0, 1fr); gap: 10px; margin-bottom: 8px; }
  .schedule-time-row > time { min-height: 0; padding-top: 14px; }
  .schedule-cell { min-height: 0; padding: 6px 0 10px; --event-shift: 0 !important; }
  .schedule-event,
  .schedule-event:hover,
  .schedule-event:focus-visible { min-height: 96px; transform: none; }
  .schedule-detail { margin-top: 22px; border-radius: 0; }
  .whatsapp-button { width: 204px; }
  .whatsapp-label,
  .whatsapp-button .whatsapp-label { max-width: 142px; opacity: 1; }
}

@media (max-width: 390px) {
  .brand-primary-clinic { width: 136px !important; height: 39px !important; }
  .brand-primary-studio { width: 132px !important; height: 39px !important; }
  .universe-switch { grid-template-rows: 20px 36px; width: 116px; min-width: 116px; min-height: 64px; margin-left: 2px; }
  .universe-switch-logo { height: 36px; }
  .menu-toggle span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .home-guide-card { padding: 26px 22px; }
  .schedule-day-filter button { min-width: 84px; }
  .whatsapp-button { width: 188px; height: 56px; }
  .whatsapp-button svg { flex-basis: 56px; width: 56px; height: 56px; }
}

@media (prefers-reduced-motion: reduce) {
  .method-orbit-traveller,
  .method-orbit-core::before,
  .home-guide-rail i { animation: none; }
  .home-guide-rail i { display: none; }
  .method-orbit-stage { display: flex; width: 100%; height: auto; flex-direction: column; }
  .method-orbit-lines { display: none; }
  .method-orbit-core { position: relative; left: auto; top: auto; order: 1; width: 210px; height: 210px; margin: 0 auto 44px; transform: none; }
  .method-orbit-list { order: 2; display: grid; gap: 16px; }
  .method-orbit-node,
  .method-orbit-node-1,
  .method-orbit-node-2,
  .method-orbit-node-3,
  .method-orbit-node-4 { position: static; width: 100%; transform: none; }
  .method-orbit-node::before { display: none; }
  .method-orbit-node article { min-height: 0; }
  .method-orbit-node article,
  .home-guide-card,
  .universe-switch,
  .schedule-event { transition: none; }
  .home-guide-card.is-reveal-ready,
  .method-orbit-node.is-reveal-ready,
  .home-guide-card.is-reveal-ready.is-in-view,
  .method-orbit-node.is-reveal-ready.is-in-view,
  .method-orbit-node-3.is-reveal-ready,
  .method-orbit-node-3.is-reveal-ready.is-in-view { opacity: 1; transform: none; }
}

/* Revisión de legibilidad: cuerpo auxiliar cómodo sin sobredimensionar microetiquetas. */
.method-orbit-stage { height: 780px; }
.method-orbit-node p { color: #3f3f3f; font-size: clamp(.9rem, .86rem + .12vw, .98rem); line-height: 1.66; }
.method-orbit-note { color: #505050; font-size: .9rem; line-height: 1.55; }
.home-guide-card { min-height: 420px; }
.home-guide-card p { color: #3f3f3f; font-size: 1rem; line-height: 1.68; }
.home-guide-card-2 p { color: #d0d0d0; }

.main-nav li > a,
.nav-parent > a,
.main-nav-studio li > a,
.main-nav-studio .nav-parent > a { font-size: clamp(.875rem, .82rem + .12vw, .94rem); }
.page-toc a,
.article-toc a,
.topic-nav a,
.testimony-topics a,
.schedule-day-filter button { font-size: .875rem; line-height: 1.45; }
.breadcrumbs,
.article-meta,
.footer-bottom { font-size: .875rem; line-height: 1.45; }
.hero-media figcaption,
.treatment-image figcaption,
.disciplines-hero figcaption,
.team-portrait figcaption,
.legacy-content figcaption,
.article-content figcaption { font-size: .875rem; line-height: 1.45; }

.contact-detail-card em,
.form-consent,
.form-helper,
.form-status,
.author-card > a,
.schedule-status,
.contact-map-ticket p { font-size: .9rem; line-height: 1.55; }
.contact-form label:not(.form-consent),
.nutrition-data-grid label { font-size: .82rem; }
.discipline-group header p,
.nutrition-test-intro li,
.studio-method-card em,
.studio-start-options span { font-size: .94rem; line-height: 1.58; }
.discipline-group nav small { font-size: .86rem; line-height: 1.5; }
.medical-note p { font-size: .95rem; line-height: 1.55; }
.contact-space-number { font-size: .78rem; }

@media (max-width: 1050px) {
  .main-nav li > a,
  .main-nav-studio li > a,
  .nav-parent > a,
  .main-nav-studio .nav-parent > a { font-size: 1rem; }
  .method-orbit-stage { height: auto; }
  .home-guide-card { min-height: 0; }
}

@media (max-width: 760px) {
  .contact-space-number { font-size: .68rem; }
  .menu-toggle { font-size: .88rem; }
  .method-orbit-node p { font-size: .94rem; line-height: 1.68; }
  .home-guide-card p { font-size: 1rem; line-height: 1.68; }
}

/* Relato editorial entre Método Salux y Fisioterapia: dos planos unidos por
   una ventana orgánica que concentra la imagen en las dos personas. */
.home-parallax-story {
  --parallax-offset: 0px;
  --parallax-x: 0px;
  --parallax-depth: 0px;
  --parallax-depth-reverse: 0px;
  --parallax-scale: 1.1;
  --parallax-progress: 0;
  --parallax-copy: 0px;
  --parallax-sweep: 50%;
  --parallax-tilt-x: 0px;
  --parallax-tilt-y: 0px;
  --parallax-glow-x: 68%;
  --parallax-glow-y: 42%;
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 50%) minmax(0, 50%);
  align-items: center;
  /* La foto es 1672x941 (proporcion 1,78). Con el alto anterior el hueco de la
     imagen quedaba en 2,13 y habia que recortar el 25 % en vertical: o se perdia
     la cabeza del fisioterapeuta o se perdia la columna iluminada. Con 37,6vw el
     hueco queda en 1,62, muy cerca de la foto, y el recorte pasa a ser
     horizontal: se va la parte del armario, que es justo lo que sobra. */
  height: clamp(480px, 37.6vw, 700px);
  min-height: 0;
  overflow: hidden;
  color: var(--white);
  background: #0b0b09;
  border-block: 1px solid rgba(255,255,255,.12);
}
.home-parallax-story::before,
.home-parallax-story::after {
  position: absolute;
  z-index: 2;
  content: "";
  pointer-events: none;
}
.home-parallax-story::before {
  right: -8%;
  top: 50%;
  width: 60%;
  height: 120%;
  border: 1px solid rgba(168,210,27,.42);
  border-radius: 52% 48% 45% 55% / 57% 44% 56% 43%;
  box-shadow: 0 0 48px rgba(143,189,24,.08);
  transform: translate3d(calc(var(--parallax-tilt-x) * -1.15), calc(-50% + var(--parallax-depth) + var(--parallax-tilt-y) * .6), 0) rotate(calc(-2.4deg + var(--parallax-progress) * 1.6deg));
  opacity: calc(.35 + var(--parallax-progress) * .65);
  transition: opacity .5s ease;
}
.home-parallax-story::after {
  right: -3%;
  top: 50%;
  width: 52%;
  height: 105%;
  border: 1px solid rgba(236,25,134,.25);
  border-radius: 47% 53% 56% 44% / 44% 56% 46% 54%;
  transform: translate3d(calc(var(--parallax-tilt-x) * .85), calc(-50% + var(--parallax-depth-reverse) - var(--parallax-tilt-y) * .45), 0) rotate(calc(2deg - var(--parallax-progress) * 1.9deg));
  opacity: calc(.3 + var(--parallax-progress) * .7);
  transition: opacity .5s ease;
}
.home-parallax-story-media {
  position: absolute;
  z-index: 1;
  right: 0;
  top: 0;
  width: 61%;
  height: 100%;
  margin: 0;
  overflow: hidden;
  /* Sin fondo propio: el degradado de la izquierda tiene que disolverse en el
     negro de la seccion, no en otro negro distinto. */
  background: transparent;
  -webkit-mask-image: radial-gradient(ellipse 112% 145% at 100% 50%, #000 0 70%, rgba(0,0,0,.88) 78%, rgba(0,0,0,.28) 92%, transparent 100%);
  mask-image: radial-gradient(ellipse 112% 145% at 100% 50%, #000 0 70%, rgba(0,0,0,.88) 78%, rgba(0,0,0,.28) 92%, transparent 100%);
}
.home-parallax-story-media img {
  position: absolute;
  left: 0;
  /* Margen minimo para el recorrido del parallax, casi todo por abajo, y la
     escala crece hacia abajo (transform-origin): el borde superior no se mueve
     y la cabeza del fisioterapeuta no se corta a ningun ancho. */
  top: -12px;
  width: 100%;
  height: calc(100% + 104px);
  max-width: none;
  object-fit: cover;
  object-position: 92% 10%;
  filter: saturate(.82) contrast(1.055) brightness(1.02);
  /* El corte recto de la izquierda no venia solo del canto de la caja: la propia
     fotografia tiene un canto vertical (la puerta contra la pared) y un
     degradado vertical, paralelo a el, lo subrayaba. La mascara va en diagonal
     y sobre la imagen, no sobre el bloque: cruza ese canto en lugar de
     acompanarlo, y la foto se disuelve en el negro de la seccion. */
  -webkit-mask-image: linear-gradient(101deg, transparent 0%, rgba(0,0,0,.10) 12%, rgba(0,0,0,.34) 26%, rgba(0,0,0,.66) 40%, rgba(0,0,0,.9) 54%, #000 66%);
  mask-image: linear-gradient(101deg, transparent 0%, rgba(0,0,0,.10) 12%, rgba(0,0,0,.34) 26%, rgba(0,0,0,.66) 40%, rgba(0,0,0,.9) 54%, #000 66%);
  transform-origin: 50% 0%;
  transform: translate3d(calc(var(--parallax-x) + var(--parallax-tilt-x)), calc(var(--parallax-offset) + var(--parallax-tilt-y)), 0) scale(var(--parallax-scale));
  will-change: transform;
}
/* El canto izquierdo de la foto cortaba en vertical y se veia la union.
   Se disuelve con un degradado del MISMO negro del bloque (#0b0b09) que ocupa
   el primer tercio del ancho de la imagen. Se hace superponiendo, no con
   mask-composite: Chrome no aplicaba la composicion de dos mascaras. */
.home-parallax-story-media::before {
  position: absolute;
  z-index: 2;
  inset: 0;
  content: "";
  background:
    linear-gradient(90deg, rgba(11,11,9,.55) 0%, rgba(11,11,9,.28) 12%, rgba(11,11,9,0) 26%),
    linear-gradient(0deg, rgba(5,5,4,.16), transparent 24%, transparent 78%, rgba(5,5,4,.08));
  pointer-events: none;
}
/* En ventanas estrechas la columna de la foto se queda corta: si la disolucion
   sigue ocupando el mismo porcentaje del ancho, se traga al fisioterapeuta. Se
   acorta, y el encuadre se centra un poco mas. */
@media (max-width: 1400px) {
  .home-parallax-story-media img {
    object-position: 74% 10%;
    -webkit-mask-image: linear-gradient(101deg, transparent 0%, rgba(0,0,0,.22) 8%, rgba(0,0,0,.62) 18%, rgba(0,0,0,.9) 28%, #000 38%);
    mask-image: linear-gradient(101deg, transparent 0%, rgba(0,0,0,.22) 8%, rgba(0,0,0,.62) 18%, rgba(0,0,0,.9) 28%, #000 38%);
  }
}

.home-parallax-story-media::after {
  position: absolute;
  z-index: 3;
  inset: 5% -8% 5% 4%;
  content: "";
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 52% 48% 50% 50% / 46% 54% 44% 56%;
  transform: translate3d(calc(var(--parallax-tilt-x) * -.5), calc(var(--parallax-depth-reverse) + var(--parallax-tilt-y) * -.35), 0);
  pointer-events: none;
}
.home-parallax-story-copy {
  position: relative;
  z-index: 3;
  transform: translate3d(0, var(--parallax-copy), 0);
  will-change: transform;
  grid-column: 1;
  grid-row: 1;
  width: 108%;
  height: 100%;
  margin: 0;
  padding: clamp(16px, 1.35vw, 22px) clamp(24px, 2.6vw, 42px) clamp(16px, 1.35vw, 22px) var(--pad);
  display: flex;
  flex-direction: column;
  justify-content: center;
  background:
    linear-gradient(90deg, #090908 0 78%, rgba(9,9,8,.92) 86%, rgba(9,9,8,0) 100%),
    linear-gradient(135deg, #070706, #11110e);
  text-wrap: pretty;
}
.home-parallax-story-copy::after {
  display: none;
}
.home-parallax-story-copy .eyebrow {
  margin-bottom: 10px;
  color: var(--green-bright);
  font-weight: 700;
}
.home-parallax-story-copy h2 {
  max-width: none;
  margin: 0 0 14px;
  font-size: clamp(2.35rem, 3.05vw, 3.42rem);
  line-height: .94;
  letter-spacing: -.055em;
}
.home-parallax-story-copy h2 span { display: block; white-space: nowrap; }
.home-parallax-story-copy > p:not(.eyebrow):not(.home-parallax-story-legend) {
  max-width: 66ch;
  margin: 0 0 8px;
  color: rgba(255,255,255,.86);
  font-size: clamp(.94rem, .9rem + .12vw, 1.02rem);
  line-height: 1.48;
}
.home-parallax-story-legend {
  max-width: none;
  margin: 11px 0 0;
  padding-top: 9px;
  color: #e9f5c6;
  border-top: 1px solid rgba(168,210,27,.55);
  font-size: .82rem;
  font-weight: 650;
  letter-spacing: .015em;
  line-height: 1.4;
  white-space: nowrap;
}
.home-parallax-story-legend span { padding-inline: .35em; color: var(--pink); }
.home-parallax-story-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.home-parallax-story-actions .button { min-height: 48px; padding-block: 8px; }

/* --- Parallax del banner editorial de portada -------------------------------
   Cuatro capas a velocidades distintas (imagen, aros, marco interior y texto),
   dolly de escala segun el scroll, barrido especular y halo que sigue al raton.
   Todo se anula con prefers-reduced-motion y por debajo de 900 px: ver
   site.js, bloque `parallaxStories`. -------------------------------------- */
/* Barrido especular y halo, solo mientras el bloque esta en pantalla. */
.home-parallax-story[data-parallax-active] .home-parallax-story-media::before {
  background:
    linear-gradient(90deg, rgba(11,11,9,.55) 0%, rgba(11,11,9,.28) 12%, rgba(11,11,9,0) 26%),
    radial-gradient(ellipse 46% 62% at var(--parallax-glow-x) var(--parallax-glow-y), rgba(168,210,27,.16), transparent 62%),
    linear-gradient(104deg, transparent calc(var(--parallax-sweep) - 26%), rgba(255,255,255,.13) var(--parallax-sweep), transparent calc(var(--parallax-sweep) + 26%)),
    linear-gradient(0deg, rgba(5,5,4,.16), transparent 24%, transparent 78%, rgba(5,5,4,.08));
}

/* Entrada. Se dispara una sola vez con IntersectionObserver. */
.home-parallax-story .home-parallax-story-copy > * {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: no-preference) {
  .home-parallax-story[data-parallax-revealed] .home-parallax-story-media {
    animation: parallax-media-in .95s cubic-bezier(.22,.61,.36,1) both;
  }
  .home-parallax-story:not([data-parallax-revealed]) .home-parallax-story-copy > * {
    opacity: 0;
    transform: translate3d(0, 26px, 0);
  }
  .home-parallax-story[data-parallax-revealed] .home-parallax-story-copy > * {
    animation: parallax-copy-in .72s cubic-bezier(.22,.61,.36,1) both;
  }
  .home-parallax-story[data-parallax-revealed] .home-parallax-story-copy > *:nth-child(1) { animation-delay: .04s; }
  .home-parallax-story[data-parallax-revealed] .home-parallax-story-copy > *:nth-child(2) { animation-delay: .12s; }
  .home-parallax-story[data-parallax-revealed] .home-parallax-story-copy > *:nth-child(3) { animation-delay: .2s; }
  .home-parallax-story[data-parallax-revealed] .home-parallax-story-copy > *:nth-child(4) { animation-delay: .28s; }
  .home-parallax-story[data-parallax-revealed] .home-parallax-story-copy > *:nth-child(5) { animation-delay: .36s; }
  .home-parallax-story[data-parallax-revealed] .home-parallax-story-copy > *:nth-child(6) { animation-delay: .44s; }
}
@keyframes parallax-media-in {
  from { clip-path: inset(0 0 0 100%); opacity: .2; }
  to   { clip-path: inset(0 0 0 0%); opacity: 1; }
}
@keyframes parallax-copy-in {
  from { opacity: 0; transform: translate3d(0, 26px, 0); }
  to   { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .home-parallax-story-media img,
  .home-parallax-story-copy,
  .home-parallax-story::before,
  .home-parallax-story::after,
  .home-parallax-story-media::after {
    transform: none !important;
    animation: none !important;
  }
  .home-parallax-story-copy > * { opacity: 1 !important; transform: none !important; }
}

.button-ghost-light { color: var(--white); border-color: rgba(255,255,255,.58); }
.button-ghost-light:hover,
.button-ghost-light:focus-visible { color: var(--black); background: var(--white); border-color: var(--white); transform: translateY(-2px); }

@media (max-width: 1280px) and (min-width: 901px) {
  .home-parallax-story { height: clamp(430px, 37.6vw, 520px); }
  .home-parallax-story-copy h2 { font-size: clamp(2.25rem, 3.25vw, 2.65rem); }
  .home-parallax-story-copy > p:not(.eyebrow):not(.home-parallax-story-legend) { font-size: .93rem; }
  .home-parallax-story-legend { font-size: .77rem; }
}

@media (max-width: 900px) {
  .home-parallax-story { display: block; height: auto; min-height: 0; }
  .home-parallax-story::before,
  .home-parallax-story::after,
  .home-parallax-story-copy::after { display: none; }
  .home-parallax-story-media { position: relative; inset: auto; z-index: 0; width: 100%; height: clamp(240px, 38vw, 320px); min-height: 0; -webkit-mask-image: none; mask-image: none; }
  .home-parallax-story-media img {
    position: absolute;
    left: -20%;
    top: -12%;
    width: 140%;
    height: 140%;
    max-width: none;
    object-position: 60% 48%;
    -webkit-mask-image: none;
    mask-image: none;
    transform: none;
    will-change: auto;
  }
  /* En movil la foto va encima del texto: el corte es horizontal, no vertical,
     asi que el degradado se aplica abajo. */
  .home-parallax-story-media::before,
  .home-parallax-story[data-parallax-active] .home-parallax-story-media::before {
    display: block;
    background: linear-gradient(180deg, rgba(11,11,9,0) 58%, rgba(11,11,9,.5) 84%, #0b0b09 100%);
  }
  .home-parallax-story-media::after { inset: 0; border: 0; border-radius: 0; background: linear-gradient(0deg, rgba(0,0,0,.38), transparent 34%); transform: none; }
  .home-parallax-story-copy {
    width: 100%;
    margin: 0;
    padding: clamp(30px, 5vw, 42px) var(--pad) clamp(38px, 6vw, 50px);
    background:
      radial-gradient(circle at 92% 0, rgba(236,25,134,.09), transparent 34%),
      linear-gradient(145deg, #070707, #111);
  }
  .home-parallax-story-copy h2 { max-width: 19ch; font-size: clamp(2.2rem, 5.8vw, 3.1rem); }
  .home-parallax-story-copy h2 span { display: inline; white-space: normal; }
  .home-parallax-story-legend { white-space: normal; }
}

@media (max-width: 520px) {
  .home-parallax-story-media { height: 220px; }
  .home-parallax-story-media img { object-position: 60% 48%; }
  .home-parallax-story-copy h2 { font-size: clamp(2.05rem, 9.2vw, 2.55rem); }
  .home-parallax-story-actions { align-items: stretch; flex-direction: column; }
  .home-parallax-story-actions .button { width: 100%; }
  .home-parallax-story-legend span { padding-inline: .18em; }
}

@media (prefers-reduced-motion: reduce) {
  .home-parallax-story { --parallax-offset: 0px; --parallax-x: 0px; --parallax-depth: 0px; --parallax-depth-reverse: 0px; }
  .home-parallax-story-media img { transform: none; will-change: auto; }
  .home-parallax-story::before { transform: translate3d(0,-50%,0) rotate(-2.4deg); }
  .home-parallax-story::after { transform: translate3d(0,-50%,0) rotate(2deg); }
  .home-parallax-story-media::after { transform: none; }
  .home-parallax-story-actions .button { transition: none; }
}

/* Equipo 2026: un único recorrido editorial en lugar de órbita y directorio duplicados. */
.team-editorial-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(390px, 44%) minmax(0, 56%);
  height: clamp(570px, 45vw, 680px);
  min-height: 0;
  overflow: hidden;
  background:
    radial-gradient(circle at 37% 18%, rgba(151,202,27,.11), transparent 28%),
    #080908;
}
.team-editorial-hero-copy {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  min-width: 0;
  padding: 54px clamp(38px, 4.2vw, 72px) 64px max(var(--pad), calc((100vw - var(--container)) / 2));
}
.team-editorial-hero-copy::after {
  position: absolute;
  z-index: -1;
  inset: 0 -92px 0 0;
  content: "";
  background: linear-gradient(90deg, #080908 0 78%, rgba(8,9,8,.96) 88%, transparent);
  pointer-events: none;
}
.team-editorial-hero-copy .breadcrumbs { margin-bottom: auto; }
.team-editorial-hero-copy .eyebrow { margin-top: auto; }
.team-editorial-hero-copy h1 {
  max-width: 690px;
  margin: 0;
  color: var(--paper);
  font-size: clamp(3.05rem, 4.35vw, 5rem);
  line-height: .91;
  letter-spacing: -.062em;
  text-wrap: balance;
}
.team-editorial-hero-copy > p:not(.eyebrow) {
  max-width: 560px;
  margin: 0 0 24px;
  color: #c2c2c2;
  font-size: clamp(1.02rem, 1.2vw, 1.18rem);
  line-height: 1.62;
}
.team-editorial-hero-copy .text-link { margin-bottom: auto; color: var(--green-bright); border-color: rgba(151,202,27,.46); }
.team-hero-portraits {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: .88fr 1.08fr .92fr;
  gap: 6px;
  height: 100%;
  margin: 0;
  padding: 36px 0 0 28px;
  background: linear-gradient(110deg, #111 0 5%, #d8d5cd 5% 100%);
  transform: skewX(-4deg) translateX(24px);
}
.team-hero-portraits::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(90deg, rgba(8,9,8,.7), transparent 28%, transparent 78%, rgba(8,9,8,.18));
  pointer-events: none;
}
.team-hero-portraits > span { min-width: 0; overflow: hidden; background: #bcbab3; }
.team-hero-portraits > span:nth-child(1) { margin-bottom: 88px; }
.team-hero-portraits > span:nth-child(2) { margin-top: 62px; margin-bottom: 20px; border-top: 4px solid var(--green-bright); }
.team-hero-portraits > span:nth-child(3) { margin: 20px 0 102px; border-bottom: 4px solid var(--pink); }
.team-hero-portraits img {
  width: calc(100% + 42px);
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center 20%;
  filter: grayscale(1) contrast(1.04);
  transform: skewX(4deg) translateX(-20px) scale(1.04);
}
.team-hero-portraits > span:nth-child(2) img { object-position: center 25%; }
.team-hero-portraits > span:nth-child(3) img { object-position: 48% 30%; }

.team-journey {
  padding: clamp(84px, 8vw, 124px) max(var(--pad), calc((100% - var(--container)) / 2)) clamp(98px, 10vw, 150px);
  overflow: hidden;
  background:
    linear-gradient(90deg, transparent 0 49.92%, rgba(20,20,20,.035) 50%, transparent 50.08%),
    #e8e5de;
}
.team-journey > header {
  display: grid;
  grid-template-columns: minmax(260px, .76fr) minmax(320px, 1.24fr);
  gap: clamp(36px, 7vw, 112px);
  align-items: end;
  max-width: 1220px;
  margin: 0 auto clamp(62px, 7vw, 106px);
}
.team-journey > header .label { grid-column: 1 / -1; margin-bottom: -18px; }
.team-journey > header h2 {
  margin: 0;
  font-size: clamp(3rem, 4.6vw, 5.45rem);
  line-height: .88;
  letter-spacing: -.065em;
}
.team-journey > header > p:last-child { max-width: 650px; margin: 0; color: #555; font-size: clamp(1.02rem, 1.2vw, 1.17rem); line-height: 1.68; }
.team-journey-stage { position: relative; width: min(100%, 1240px); margin: 0 auto; }
.team-journey-route { position: absolute; z-index: 0; inset: 20px 2% 10px; width: 96%; height: calc(100% - 30px); overflow: visible; pointer-events: none; }
.team-journey-route path { fill: none; stroke: rgba(74,104,0,.3); stroke-width: 2; stroke-dasharray: 3 11; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.team-journey-list { position: relative; z-index: 1; display: grid; gap: clamp(58px, 7vw, 108px); margin: 0; padding: 0; list-style: none; }
.team-journey-item { min-width: 0; }
.team-journey-link {
  position: relative;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(18px, 2.5vw, 38px);
  align-items: center;
  min-height: 310px;
  color: var(--ink);
  outline-offset: 10px;
}
.team-journey-link:focus-visible { outline: 3px solid var(--green-dark); }
.team-journey-item.is-studio .team-journey-link:focus-visible { outline-color: var(--pink-dark); }
.team-journey-link figure {
  position: relative;
  grid-column: 1 / 7;
  grid-row: 1;
  aspect-ratio: 1.56;
  margin: 0;
  overflow: hidden;
  background: #d0cdc5;
  clip-path: polygon(9% 0, 100% 0, 91% 100%, 0 100%);
  box-shadow: 0 26px 62px rgba(55,49,38,.16);
}
.team-journey-link figure::after {
  position: absolute;
  inset: 0;
  content: "";
  border: 1px solid rgba(255,255,255,.56);
  clip-path: inherit;
  pointer-events: none;
}
.team-journey-link figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 22%;
  filter: grayscale(.82) saturate(.55) contrast(1.04);
  transform: scale(1.025);
  transition: filter .42s ease, transform .58s cubic-bezier(.2,.72,.2,1);
}
.team-journey-copy {
  position: relative;
  grid-column: 7 / 13;
  grid-row: 1;
  display: block;
  min-width: 0;
  max-width: 530px;
  padding: 36px 10px 36px clamp(22px, 3.1vw, 48px);
  border-top: 1px solid rgba(76,105,0,.42);
  transition: transform .35s ease;
}
.team-journey-copy::before { position: absolute; left: 0; top: -3px; width: 78px; height: 5px; content: ""; background: var(--green-bright); }
.team-journey-copy small { display: block; margin-bottom: 12px; color: #526c0d; font-size: .76rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.team-journey-copy h3 { display: block; margin: 0 0 16px; font-size: clamp(2rem, 3vw, 3.45rem); line-height: .96; letter-spacing: -.052em; text-wrap: balance; }
.team-journey-copy > span { display: block; max-width: 48ch; color: #555; font-size: clamp(.98rem, 1.08vw, 1.08rem); line-height: 1.62; }
.team-journey-copy b { display: inline-flex; gap: 12px; align-items: center; min-height: 44px; margin-top: 18px; color: #426000; font-size: .83rem; font-style: normal; letter-spacing: .02em; }
.team-journey-copy b i { font-size: 1.18rem; font-style: normal; transition: transform .28s ease; }
.team-journey-number { position: absolute; z-index: 2; left: -8px; top: -34px; color: rgba(20,20,20,.13); font-size: clamp(4.5rem, 8vw, 8.4rem); font-weight: 760; line-height: 1; letter-spacing: -.08em; pointer-events: none; }
.team-journey-item:nth-child(even) .team-journey-link figure { grid-column: 7 / 13; clip-path: polygon(0 0, 91% 0, 100% 100%, 9% 100%); }
.team-journey-item:nth-child(even) .team-journey-copy { grid-column: 1 / 7; padding-right: clamp(22px, 3.1vw, 48px); padding-left: 10px; }
.team-journey-item:nth-child(even) .team-journey-copy::before { right: 0; left: auto; }
.team-journey-item:nth-child(even) .team-journey-number { right: -8px; left: auto; }
.team-journey-item.is-studio .team-journey-copy { border-color: rgba(196,0,101,.38); }
.team-journey-item.is-studio .team-journey-copy::before { background: var(--pink); }
.team-journey-item.is-studio .team-journey-copy small,
.team-journey-item.is-studio .team-journey-copy b { color: var(--pink-dark); }
.team-journey-link:hover figure img,
.team-journey-link:focus-visible figure img { filter: grayscale(0) saturate(.96) contrast(1.02); transform: scale(1.065); }
.team-journey-link:hover .team-journey-copy,
.team-journey-link:focus-visible .team-journey-copy { transform: translateX(8px); }
.team-journey-item:nth-child(even) .team-journey-link:hover .team-journey-copy,
.team-journey-item:nth-child(even) .team-journey-link:focus-visible .team-journey-copy { transform: translateX(-8px); }
.team-journey-link:hover .team-journey-copy b i,
.team-journey-link:focus-visible .team-journey-copy b i { transform: translate(3px,-3px); }
.team-journey-item-1 figure img { object-position: center 18%; }
.team-journey-item-2 figure img { object-position: center 27%; }
.team-journey-item-3 figure img { object-position: center 18%; }
.team-journey-item-4 figure img { object-position: center 15%; }
.team-journey-item-5 figure img { object-position: center 22%; }
.team-journey-item-6 figure img { object-position: center 35%; }

/* Fichas profesionales: retrato protagonista y currículo legible. */
.profile-editorial-hero {
  position: relative;
  isolation: isolate;
  height: clamp(650px, 51vw, 740px);
  min-height: 0;
  overflow: hidden;
  background:
    radial-gradient(circle at 73% 34%, rgba(151,202,27,.12), transparent 30%),
    linear-gradient(112deg, #080908 0 48%, #171816 100%);
}
.profile-editorial-hero.is-studio-profile { background: radial-gradient(circle at 73% 34%, rgba(236,25,134,.13), transparent 31%), linear-gradient(112deg, #080908 0 48%, #171416 100%); }
.profile-editorial-top {
  position: absolute;
  z-index: 5;
  left: max(var(--pad), calc((100vw - var(--container)) / 2));
  right: max(var(--pad), calc((100vw - var(--container)) / 2));
  top: 34px;
  display: flex;
  justify-content: space-between;
  gap: 28px;
  align-items: center;
}
.profile-editorial-top .breadcrumbs { margin: 0; }
.profile-back-link { display: inline-flex; gap: 9px; align-items: center; min-height: 44px; padding: 0 12px; color: #dedede; background: rgba(5,5,5,.62); border-bottom: 1px solid rgba(151,202,27,.58); font-size: .84rem; backdrop-filter: blur(7px); }
.profile-back-link:hover,
.profile-back-link:focus-visible { color: var(--green-bright); }
.profile-editorial-photo {
  position: absolute;
  z-index: 1;
  inset: 0 0 0 36%;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  margin: 0;
  overflow: hidden;
}
.profile-editorial-photo::before,
.profile-editorial-photo::after { position: absolute; z-index: 2; inset: 0; content: ""; pointer-events: none; }
.profile-editorial-photo::before { background: linear-gradient(90deg, #080908 0, rgba(8,9,8,.82) 15%, transparent 52%), linear-gradient(0deg, rgba(8,9,8,.9), transparent 35%); }
.profile-editorial-photo::after { inset: 28px 34px 24px 20%; border: 1px solid rgba(151,202,27,.3); clip-path: polygon(12% 0,100% 0,88% 100%,0 100%); }
.is-studio-profile .profile-editorial-photo::after { border-color: rgba(236,25,134,.42); }
.profile-editorial-photo img {
  width: min(100%, 610px);
  height: 100%;
  object-fit: cover;
  object-position: center 18%;
  filter: grayscale(.92) contrast(1.06) brightness(.88);
  transform: scale(1.015);
}
.profile-person-2 .profile-editorial-photo img { object-position: center 24%; }
.profile-person-3 .profile-editorial-photo img { width: min(100%, 560px); object-position: center 13%; }
.profile-person-4 .profile-editorial-photo img { width: min(100%, 560px); object-position: center 12%; }
.profile-person-5 .profile-editorial-photo img { width: min(100%, 560px); object-position: center 16%; }
.profile-person-6 .profile-editorial-photo img { width: min(100%, 660px); object-position: 48% 28%; }
.profile-editorial-intro {
  position: absolute;
  z-index: 4;
  left: max(var(--pad), calc((100vw - var(--container)) / 2));
  bottom: clamp(42px, 5vw, 72px);
  width: min(760px, 62vw);
}
.profile-editorial-intro .eyebrow { margin-bottom: 12px; }
.profile-editorial-intro h1 { max-width: 820px; margin: 0; font-size: clamp(3.25rem, 5.2vw, 6rem); line-height: .88; letter-spacing: -.067em; text-wrap: balance; }
.profile-editorial-intro h1 span { display: inline; color: var(--paper); background: #090a09; box-shadow: 16px 0 0 #090a09, -10px 0 0 #090a09; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.profile-editorial-intro .profile-role { display: table; width: fit-content; max-width: 680px; margin: 14px 0 16px; padding: 8px 13px; color: #10120d !important; background: var(--green-bright); font-size: clamp(.78rem, .92vw, .94rem) !important; font-weight: 750; line-height: 1.35; letter-spacing: .04em; }
.profile-editorial-hero.is-studio-profile .profile-role { color: #fff !important; background: var(--pink-dark); }
.profile-summary { max-width: 610px; margin: 0 0 20px; color: #d0d0d0; font-size: clamp(.98rem, 1.12vw, 1.1rem); line-height: 1.58; }
.profile-editorial-intro .button { min-height: 46px; }
.profile-editorial-hero.is-studio-profile .button-primary { color: #fff; background: var(--pink-dark); border-color: var(--pink-dark); }
.profile-hero-index { position: absolute; z-index: 4; right: max(var(--pad), calc((100vw - var(--container)) / 2)); bottom: 38px; color: rgba(255,255,255,.5); font-size: .75rem; font-weight: 700; letter-spacing: .14em; }

.profile-editorial-body {
  display: grid;
  grid-template-columns: minmax(220px, 270px) minmax(0, 860px);
  gap: clamp(52px, 7vw, 112px);
  justify-content: center;
  width: min(calc(100% - (var(--pad) * 2)), 1260px);
  margin: 0 auto;
  padding: clamp(82px, 8vw, 124px) 0 clamp(96px, 9vw, 138px);
}
.profile-editorial-aside { position: sticky; top: 154px; align-self: start; padding: 24px 28px 30px 0; border-top: 4px solid var(--green-bright); border-bottom: 1px solid var(--line-dark); }
.profile-editorial-aside > .label { margin: 0 0 12px; }
.profile-editorial-aside > strong { display: block; margin-bottom: 18px; font-size: clamp(1.35rem, 1.7vw, 1.75rem); line-height: 1.08; letter-spacing: -.035em; }
.profile-editorial-aside > p:not(.label) { margin: 0; color: #5b5b5b; line-height: 1.65; }
.profile-editorial-aside nav { display: grid; gap: 0; margin-top: 28px; border-top: 1px solid var(--line-dark); }
.profile-editorial-aside nav a { display: flex; justify-content: space-between; gap: 14px; min-height: 48px; align-items: center; padding: 10px 0; color: #476800; border-bottom: 1px solid var(--line-dark); font-size: .86rem; }
.profile-biography { min-width: 0; }
.profile-biography > header { margin-bottom: 34px; padding-bottom: 24px; border-bottom: 1px solid var(--line-dark); }
.profile-biography > header .label { margin-bottom: 10px; }
.profile-biography > header h2 { margin: 0; font-size: clamp(2.35rem, 3.4vw, 4rem); line-height: .96; letter-spacing: -.055em; }
.profile-biography .legacy-content { width: 100%; max-width: none; color: #272727; font-size: clamp(1.02rem, 1.08vw, 1.12rem); line-height: 1.72; }
.profile-biography .legacy-content h2:first-of-type,
.profile-biography .legacy-content .elementor-widget-image { display: none; }
.profile-biography .legacy-content ul { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.profile-biography .legacy-content li { position: relative; margin: 0; padding: 16px 14px 16px 34px; border-top: 1px solid var(--line-dark); }
.profile-biography .legacy-content li:last-child { border-bottom: 1px solid var(--line-dark); }
.profile-biography .legacy-content li::before { position: absolute; left: 4px; top: 22px; width: 10px; height: 10px; content: ""; background: var(--green-bright); border-radius: 50% 50% 50% 0; transform: rotate(-45deg); }
.profile-biography .legacy-content p { max-width: 720px; }
.profile-sequence { display: grid; grid-template-columns: 1fr 1fr; padding: 0 max(var(--pad), calc((100% - var(--container)) / 2)); }
.profile-sequence a { position: relative; display: grid; grid-template-columns: auto 1fr; gap: 4px 18px; min-width: 0; min-height: 190px; align-content: center; padding: 34px clamp(28px, 4vw, 62px); color: var(--paper); border-right: 1px solid var(--line); transition: background-color .3s ease; }
.profile-sequence a:last-child { grid-template-columns: 1fr auto; text-align: right; border-right: 0; }
.profile-sequence a:hover,
.profile-sequence a:focus-visible { background: #171717; }
.profile-sequence small { grid-column: 1 / -1; color: var(--green-bright); font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.profile-sequence strong { overflow-wrap: anywhere; font-size: clamp(1.3rem, 2vw, 2rem); line-height: 1.04; }
.profile-sequence > a > span { align-self: center; color: var(--green-bright); font-size: 1.4rem; }
.profile-sequence em { grid-column: 1 / -1; color: #8f8f8f; font-size: .78rem; font-style: normal; }

@media (max-width: 1050px) {
  .team-editorial-hero { grid-template-columns: minmax(340px, 48%) minmax(0, 52%); height: 590px; }
  .team-editorial-hero-copy h1 { font-size: clamp(3rem, 5vw, 4.2rem); }
  .team-hero-portraits { grid-template-columns: 1fr 1fr; }
  .team-hero-portraits > span:nth-child(3) { display: none; }
  .team-journey-route { display: none; }
  .team-journey-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 54px 28px; }
  .team-journey-item:nth-child(even) { margin-top: 70px; }
  .team-journey-link,
  .team-journey-item:nth-child(even) .team-journey-link { display: block; min-height: 0; }
  .team-journey-link figure,
  .team-journey-item:nth-child(even) .team-journey-link figure { aspect-ratio: 1.34; clip-path: polygon(9% 0,100% 0,91% 100%,0 100%); }
  .team-journey-copy,
  .team-journey-item:nth-child(even) .team-journey-copy { max-width: none; padding: 30px 10px 20px 22px; }
  .team-journey-item:nth-child(even) .team-journey-copy::before { right: auto; left: 0; }
  .team-journey-item:nth-child(even) .team-journey-number { right: auto; left: -5px; }
  .profile-editorial-photo { left: 31%; }
  .profile-editorial-intro { width: min(700px, 68vw); }
  .profile-editorial-intro h1 { font-size: clamp(3.15rem, 6.2vw, 5rem); }
}

@media (max-width: 760px) {
  .team-editorial-hero { display: flex; height: auto; flex-direction: column; }
  .team-editorial-hero-copy { min-height: 420px; padding: 34px var(--pad) 48px; }
  .team-editorial-hero-copy::after { inset: 0; background: linear-gradient(145deg, #080908, #10130d); }
  .team-editorial-hero-copy h1 { font-size: clamp(2.7rem, 13vw, 3.7rem); }
  .team-editorial-hero-copy .breadcrumbs { margin-bottom: auto; }
  .team-editorial-hero-copy .eyebrow { margin-top: 46px; }
  .team-editorial-hero-copy .text-link { margin-bottom: 0; }
  .team-hero-portraits { width: calc(100% + 30px); height: 280px; padding: 18px 0 0; transform: skewX(-4deg) translateX(-15px); }
  .team-hero-portraits > span:nth-child(1) { margin-bottom: 36px; }
  .team-hero-portraits > span:nth-child(2) { margin-top: 28px; margin-bottom: 0; }
  .team-journey { padding: 74px var(--pad) 92px; background: #e8e5de; }
  .team-journey > header { display: block; margin-bottom: 52px; }
  .team-journey > header .label { margin-bottom: 18px; }
  .team-journey > header h2 { margin-bottom: 22px; font-size: clamp(2.65rem, 12vw, 3.65rem); }
  .team-journey-list { display: grid; grid-template-columns: 1fr; gap: 28px; }
  .team-journey-item:nth-child(even) { margin-top: 0; }
  .team-journey-link,
  .team-journey-item:nth-child(even) .team-journey-link { display: grid; grid-template-columns: minmax(108px, 39%) minmax(0, 61%); gap: 0; align-items: stretch; min-height: 230px; padding: 0; background: rgba(255,255,255,.34); outline-offset: 4px; }
  .team-journey-link figure,
  .team-journey-item:nth-child(even) .team-journey-link figure { grid-column: 1; grid-row: 1; height: 100%; aspect-ratio: auto; clip-path: polygon(0 0,100% 0,88% 100%,0 100%); box-shadow: none; }
  .team-journey-copy,
  .team-journey-item:nth-child(even) .team-journey-copy { grid-column: 2; grid-row: 1; align-self: center; padding: 28px 18px 24px 14px; border-top: 0; transform: none; }
  .team-journey-copy::before,
  .team-journey-item:nth-child(even) .team-journey-copy::before { left: 14px; right: auto; top: 17px; width: 42px; height: 3px; }
  .team-journey-copy small { margin: 4px 0 9px; font-size: .66rem; }
  .team-journey-copy h3 { margin-bottom: 10px; font-size: clamp(1.35rem, 6.6vw, 1.9rem); }
  .team-journey-copy > span { display: block; overflow: visible; font-size: .88rem; line-height: 1.5; }
  .team-journey-copy b { min-height: 38px; margin-top: 8px; font-size: .78rem; }
  .team-journey-number,
  .team-journey-item:nth-child(even) .team-journey-number { right: 9px; left: auto; top: 10px; color: rgba(20,20,20,.1); font-size: 3.2rem; }
  .team-journey-link:hover .team-journey-copy,
  .team-journey-link:focus-visible .team-journey-copy,
  .team-journey-item:nth-child(even) .team-journey-link:hover .team-journey-copy,
  .team-journey-item:nth-child(even) .team-journey-link:focus-visible .team-journey-copy { transform: none; }
  .profile-editorial-hero { display: flex; height: auto; min-height: 0; flex-direction: column; overflow: hidden; }
  .profile-editorial-top { position: relative; inset: auto; flex-wrap: wrap; padding: 24px var(--pad) 18px; }
  .profile-editorial-top .breadcrumbs { width: 100%; }
  .profile-back-link { margin-left: auto; }
  .profile-editorial-photo { position: relative; inset: auto; order: 2; width: 100%; height: 430px; }
  .profile-editorial-photo::before { background: linear-gradient(0deg, #080908 0, transparent 30%); }
  .profile-editorial-photo::after { inset: 20px var(--pad); }
  .profile-editorial-photo img,
  .profile-person-3 .profile-editorial-photo img,
  .profile-person-4 .profile-editorial-photo img,
  .profile-person-5 .profile-editorial-photo img,
  .profile-person-6 .profile-editorial-photo img { width: min(100%, 470px); object-position: center 18%; }
  .profile-person-2 .profile-editorial-photo img { object-position: center 24%; }
  .profile-person-6 .profile-editorial-photo img { object-position: 48% 28%; }
  .profile-editorial-intro { position: relative; inset: auto; order: 3; width: 100%; padding: 0 var(--pad) 54px; margin-top: -72px; }
  .profile-editorial-intro h1 { font-size: clamp(2.8rem, 13vw, 4.2rem); }
  .profile-editorial-intro .profile-role { margin-top: 12px; }
  .profile-summary { font-size: 1rem; }
  .profile-hero-index { right: var(--pad); bottom: 24px; }
  .profile-editorial-body { display: block; width: auto; margin: 0; padding: 72px var(--pad) 90px; }
  .profile-editorial-aside { position: static; padding-right: 0; }
  .profile-biography { margin-top: 64px; }
  .profile-biography > header h2 { font-size: clamp(2.25rem, 10vw, 3.25rem); }
  .profile-biography .legacy-content li { padding-right: 0; }
  .profile-sequence { grid-template-columns: 1fr; padding: 0; }
  .profile-sequence a,
  .profile-sequence a:last-child { min-height: 148px; padding: 28px var(--pad); text-align: left; border-right: 0; border-bottom: 1px solid var(--line); }
  .profile-sequence a:last-child { grid-template-columns: auto 1fr; }
  .profile-sequence a:last-child strong { grid-column: 2; }
  .profile-sequence a:last-child > span { grid-column: 1; grid-row: 2; }
}

@media (max-width: 430px) {
  .team-journey-link,
  .team-journey-item:nth-child(even) .team-journey-link { grid-template-columns: 122px minmax(0,1fr); min-height: 246px; }
  .team-journey-copy,
  .team-journey-item:nth-child(even) .team-journey-copy { padding-right: 12px; padding-left: 12px; }
  .team-journey-copy::before,
  .team-journey-item:nth-child(even) .team-journey-copy::before { left: 12px; }
  .profile-editorial-photo { height: 390px; }
}

@media (prefers-reduced-motion: reduce) {
  .team-journey-link figure img,
  .team-journey-copy,
  .team-journey-copy b i,
  .profile-sequence a { transition: none; }
  .team-journey-link:hover figure img,
  .team-journey-link:focus-visible figure img { transform: none; }
}

/* Equipo: trombinoscopio editorial único con los seis perfiles en el hero. */
.team-ensemble-hero {
  position: relative;
  isolation: isolate;
  height: clamp(720px, 52vw, 760px);
  min-height: 0;
  overflow: hidden;
  color: var(--ink);
  background:
    radial-gradient(circle at 82% 20%, rgba(151,202,27,.09), transparent 25%),
    linear-gradient(120deg, #ece9e2, #e4e1da 72%, #dedbd4);
}
.team-ensemble-hero::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  opacity: .2;
  background-image: repeating-linear-gradient(112deg, transparent 0 42px, rgba(20,20,20,.04) 43px, transparent 44px 90px);
  pointer-events: none;
}
.team-ensemble-watermark {
  z-index: 0;
  right: -2.5vw;
  bottom: -3.5vw;
  font-size: clamp(10rem, 22vw, 26rem);
  white-space: nowrap;
}
.team-ensemble-intro {
  position: absolute;
  z-index: 4;
  left: max(var(--pad), calc((100vw - var(--container)) / 2));
  top: 32px;
  width: min(670px, 51vw);
}
.team-ensemble-intro .breadcrumbs { margin-bottom: 30px; }
.team-ensemble-intro .eyebrow { margin: 0 0 15px; color: var(--green-dark); }
.team-ensemble-intro h1 {
  max-width: 650px;
  margin: 0;
  font-size: clamp(3.1rem, 4.15vw, 4.85rem);
  line-height: .9;
  letter-spacing: -.065em;
  text-wrap: balance;
}
.team-ensemble-intro > p:last-child {
  max-width: 610px;
  margin: 23px 0 0;
  color: #50504c;
  font-size: clamp(.94rem, 1vw, 1.05rem);
  line-height: 1.55;
}
.team-ensemble-line { position: absolute; z-index: 1; height: 1px; background: linear-gradient(90deg, transparent, rgba(79,110,0,.5), transparent); transform-origin: left center; pointer-events: none; }
.team-ensemble-line::after { position: absolute; right: 22%; top: -3px; width: 7px; height: 7px; content: ""; background: var(--green-bright); border-radius: 50%; }
.team-ensemble-line-a { left: 37%; top: 29%; width: 64%; transform: rotate(-7deg); }
.team-ensemble-line-b { left: -8%; bottom: 24%; width: 76%; transform: rotate(8deg); }
.team-ensemble-line-b::after { right: 14%; background: var(--pink); }
.team-ensemble-grid {
  position: absolute;
  z-index: 2;
  inset: 218px max(var(--pad), calc((100vw - var(--container)) / 2)) 24px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 8px clamp(22px, 3vw, 46px);
  margin: 0;
  padding: 0;
  list-style: none;
}
.team-ensemble-person { --team-accent: var(--green-bright); min-width: 0; }
.team-ensemble-person.is-studio { --team-accent: var(--pink); }
.team-ensemble-person-2 { transform: translateY(-15px); }
.team-ensemble-person-3 { transform: translateY(18px); }
.team-ensemble-person-4 { transform: translateY(-8px); }
.team-ensemble-person-5 { transform: translateY(17px); }
.team-ensemble-person-6 { transform: translateY(-16px); }
.team-ensemble-person > a {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(145px, 1.1fr);
  gap: 13px;
  align-items: center;
  height: 100%;
  min-height: 0;
  color: var(--ink);
  outline-offset: 5px;
}
.team-ensemble-person:nth-child(even) > a { grid-template-columns: minmax(145px, 1.1fr) minmax(0, .9fr); }
.team-ensemble-person > a:focus-visible { outline-color: var(--team-accent); }
.team-ensemble-person figure {
  position: relative;
  grid-column: 2;
  grid-row: 1;
  height: min(100%, 228px);
  min-height: 0;
  margin: 0;
  overflow: hidden;
  background: #c8c5be;
  clip-path: polygon(13% 0, 100% 0, 87% 100%, 0 100%);
  box-shadow: 0 18px 44px rgba(60,55,45,.16);
}
.team-ensemble-person:nth-child(even) figure { grid-column: 1; clip-path: polygon(0 0, 87% 0, 100% 100%, 13% 100%); }
.team-ensemble-person figure::after { position: absolute; inset: 0; content: ""; border-top: 3px solid var(--team-accent); background: linear-gradient(0deg, rgba(10,10,9,.18), transparent 42%); pointer-events: none; }
.team-ensemble-person img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; filter: grayscale(1) contrast(1.06); transform: scale(1.025); transition: filter .38s ease, transform .5s cubic-bezier(.2,.72,.2,1); }
.team-ensemble-person-1 img { object-position: center 27%; }
.team-ensemble-person-2 img { object-position: center 17%; }
.team-ensemble-person-3 img { object-position: center 14%; }
.team-ensemble-person-4 img { object-position: center 12%; }
.team-ensemble-person-5 img { object-position: center 20%; }
.team-ensemble-person-6 img { object-position: center 34%; }
.team-ensemble-meta {
  position: relative;
  grid-column: 1;
  grid-row: 1;
  display: block;
  min-width: 0;
  padding: 18px 4px 18px 20px;
  border-left: 1px solid rgba(20,20,20,.28);
  transition: transform .3s ease;
}
.team-ensemble-person:nth-child(even) .team-ensemble-meta { grid-column: 2; padding-right: 20px; padding-left: 4px; text-align: right; border-right: 1px solid rgba(20,20,20,.28); border-left: 0; }
.team-ensemble-meta::before { position: absolute; left: -1px; top: 18px; width: 3px; height: 48px; content: ""; background: var(--team-accent); }
.team-ensemble-person:nth-child(even) .team-ensemble-meta::before { right: -1px; left: auto; }
.team-ensemble-meta small { display: block; margin-bottom: 7px; color: #5c6f28; font-size: .65rem; font-weight: 750; letter-spacing: .07em; line-height: 1.3; text-transform: uppercase; }
.team-ensemble-person.is-studio .team-ensemble-meta small { color: var(--pink-dark); }
.team-ensemble-meta h2 { margin: 0; overflow-wrap: anywhere; font-size: clamp(1.2rem, 1.55vw, 1.75rem); line-height: .98; letter-spacing: -.045em; text-wrap: balance; }
.team-ensemble-meta b { display: inline-block; margin-top: 10px; color: var(--team-accent); font-size: 1.12rem; transition: transform .28s ease; }
.team-ensemble-number { position: absolute; z-index: 3; right: 0; top: -12px; color: rgba(20,20,20,.15); font-size: clamp(2.9rem, 4.5vw, 5.1rem); font-weight: 760; line-height: 1; letter-spacing: -.08em; pointer-events: none; }
.team-ensemble-person:nth-child(even) .team-ensemble-number { right: auto; left: 0; }
.team-ensemble-person > a:hover img,
.team-ensemble-person > a:focus-visible img { filter: grayscale(0) contrast(1.02); transform: scale(1.065); }
.team-ensemble-person > a:hover .team-ensemble-meta,
.team-ensemble-person > a:focus-visible .team-ensemble-meta { transform: translateX(5px); }
.team-ensemble-person:nth-child(even) > a:hover .team-ensemble-meta,
.team-ensemble-person:nth-child(even) > a:focus-visible .team-ensemble-meta { transform: translateX(-5px); }
.team-ensemble-person > a:hover .team-ensemble-meta b,
.team-ensemble-person > a:focus-visible .team-ensemble-meta b { transform: translate(3px,-3px); }

/* Perfil: hero compacto con retrato orbital; la fotografía grande pasa a la biografía. */
.profile-compact-hero {
  --profile-accent: var(--green-bright);
  position: relative;
  isolation: isolate;
  height: clamp(500px, 38vw, 560px);
  min-height: 0;
  overflow: hidden;
  background:
    radial-gradient(circle at 76% 48%, rgba(151,202,27,.12), transparent 21%),
    linear-gradient(118deg, #070807, #131512 64%, #090a09);
}
.profile-compact-hero.is-studio-profile { --profile-accent: var(--pink); background: radial-gradient(circle at 76% 48%, rgba(236,25,134,.13), transparent 21%), linear-gradient(118deg, #080708, #171116 64%, #090809); }
.profile-compact-hero::after { position: absolute; z-index: -1; right: -7%; top: -44%; width: 46%; aspect-ratio: 1; content: ""; border: 1px solid color-mix(in srgb, var(--profile-accent) 28%, transparent); border-radius: 50%; pointer-events: none; }
.profile-compact-top {
  position: absolute;
  z-index: 4;
  left: max(var(--pad), calc((100vw - var(--container)) / 2));
  right: max(var(--pad), calc((100vw - var(--container)) / 2));
  top: 26px;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
}
.profile-compact-top .breadcrumbs { margin: 0; }
.profile-compact-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 340px);
  gap: clamp(48px, 7vw, 112px);
  align-items: center;
  width: min(calc(100% - (var(--pad) * 2)), var(--container));
  height: 100%;
  margin: 0 auto;
  padding: 94px 0 42px;
}
.profile-compact-intro { min-width: 0; }
.profile-compact-intro .eyebrow { margin-bottom: 8px; color: var(--profile-accent); }
.profile-compact-intro h1 { max-width: 830px; margin: 0; color: var(--paper); font-size: clamp(3.25rem, 5.1vw, 5.8rem); line-height: .89; letter-spacing: -.067em; text-wrap: balance; }
.profile-compact-intro .profile-role { display: table; width: fit-content; max-width: 720px; margin: 14px 0 14px; padding: 7px 12px; color: #12130f !important; background: var(--profile-accent); font-size: clamp(.76rem, .88vw, .9rem) !important; font-weight: 750; line-height: 1.35; letter-spacing: .04em; }
.profile-compact-hero.is-studio-profile .profile-role { color: #fff !important; background: var(--pink-dark); }
.profile-compact-intro .profile-summary { max-width: 650px; margin-bottom: 18px; color: #cecece; }
.profile-compact-intro .button { min-height: 46px; }
.profile-compact-hero.is-studio-profile .button-primary { color: #fff; background: var(--pink-dark); border-color: var(--pink-dark); }
.profile-orbit-thumb {
  position: relative;
  display: grid;
  width: clamp(232px, 19vw, 270px);
  aspect-ratio: 1;
  place-items: center;
  justify-self: center;
  margin: 0;
}
.profile-orbit-thumb::before,
.profile-orbit-thumb::after { position: absolute; content: ""; border-radius: 50%; pointer-events: none; }
.profile-orbit-thumb::before { inset: 0; border: 2px dashed color-mix(in srgb, var(--profile-accent) 82%, transparent); animation: profile-orbit-spin 22s linear infinite; }
.profile-orbit-thumb::after { inset: 10px; background: conic-gradient(from 20deg, transparent 0 17%, var(--profile-accent) 18% 27%, transparent 28% 60%, color-mix(in srgb, var(--profile-accent) 76%, transparent) 61% 72%, transparent 73%); -webkit-mask: radial-gradient(circle, transparent 0 67%, #000 68% 76%, transparent 77%); mask: radial-gradient(circle, transparent 0 67%, #000 68% 76%, transparent 77%); animation: profile-orbit-spin 14s linear infinite reverse; }
.profile-orbit-thumb > span { display: block; width: calc(100% - 48px); aspect-ratio: 1; overflow: hidden; background: #d6d3cc; border: 6px solid color-mix(in srgb, var(--profile-accent) 72%, #111); border-radius: 50%; box-shadow: 0 22px 62px color-mix(in srgb, var(--profile-accent) 20%, rgba(0,0,0,.32)), inset 0 0 0 2px rgba(255,255,255,.28); }
.profile-orbit-thumb img { width: 100%; height: 100%; object-fit: cover; object-position: center 18%; filter: grayscale(.92) contrast(1.05); }
.profile-person-1 .profile-orbit-thumb img { object-position: center 26%; }
.profile-person-2 .profile-orbit-thumb img { object-position: center 18%; }
.profile-person-3 .profile-orbit-thumb img { object-position: center 15%; }
.profile-person-4 .profile-orbit-thumb img { object-position: center 12%; }
.profile-person-5 .profile-orbit-thumb img { object-position: center 18%; }
.profile-person-6 .profile-orbit-thumb img { object-position: center 31%; }
@keyframes profile-orbit-spin { to { transform: rotate(1turn); } }

.profile-story-body {
  display: grid;
  grid-template-columns: minmax(330px, 450px) minmax(0, 780px);
  gap: clamp(56px, 7vw, 108px);
  align-items: start;
  width: min(calc(100% - (var(--pad) * 2)), 1260px);
  margin: 0 auto;
  padding: clamp(86px, 8vw, 124px) 0 clamp(98px, 9vw, 144px);
}
.profile-story-portrait {
  --portrait-accent: var(--green-bright);
  position: sticky;
  top: 150px;
  min-width: 0;
}
.profile-page .is-studio-profile + .profile-story-body .profile-story-portrait { --portrait-accent: var(--pink); }
.profile-story-portrait figure { position: relative; aspect-ratio: .76; margin: 0; overflow: hidden; background: #d4d1ca; clip-path: polygon(7% 0,100% 0,93% 100%,0 100%); box-shadow: 0 30px 72px rgba(53,47,36,.18); }
.profile-story-portrait figure::after { position: absolute; inset: 0; content: ""; background: linear-gradient(0deg, rgba(8,8,7,.4), transparent 44%); border-top: 4px solid var(--portrait-accent); pointer-events: none; }
.profile-story-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 18%; filter: grayscale(1) contrast(1.06); }
.profile-person-1 + .profile-story-body .profile-story-portrait img { object-position: center 25%; }
.profile-person-2 + .profile-story-body .profile-story-portrait img { object-position: center 17%; }
.profile-person-3 + .profile-story-body .profile-story-portrait img { object-position: center 13%; }
.profile-person-4 + .profile-story-body .profile-story-portrait img { object-position: center 11%; }
.profile-person-5 + .profile-story-body .profile-story-portrait img { object-position: center 17%; }
.profile-person-6 + .profile-story-body .profile-story-portrait img { object-position: center 31%; }
.profile-story-plate { position: relative; z-index: 2; width: calc(100% - 34px); margin: -92px 0 0 18px; padding: 18px 22px 20px; color: var(--paper); background: rgba(10,10,9,.96); border-left: 4px solid var(--portrait-accent); box-shadow: 0 18px 42px rgba(31,28,22,.2); }
.profile-story-plate small { display: block; margin-bottom: 5px; color: var(--portrait-accent); font-size: .66rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.profile-story-plate h2 { margin: 0 0 7px; overflow-wrap: anywhere; font-size: clamp(2rem, 2.8vw, 3rem); line-height: .92; letter-spacing: -.058em; }
.profile-story-plate p { margin: 0; color: #aaa; font-size: .78rem; line-height: 1.45; text-transform: uppercase; }
.profile-story-line { display: block; width: 72%; height: 1px; margin: 28px 0 0 auto; background: linear-gradient(90deg, transparent, var(--portrait-accent)); transform: rotate(-4deg); transform-origin: right center; }
.profile-story-body .profile-biography { padding-top: 8px; }

@media (max-width: 1100px) {
  .team-ensemble-hero { height: 740px; }
  .team-ensemble-intro { width: min(680px, 62vw); }
  .team-ensemble-grid { column-gap: 20px; }
  .team-ensemble-person > a { grid-template-columns: minmax(0,.82fr) minmax(124px,1.18fr); gap: 9px; }
  .team-ensemble-person:nth-child(even) > a { grid-template-columns: minmax(124px,1.18fr) minmax(0,.82fr); }
  .team-ensemble-meta { padding-left: 14px; }
  .team-ensemble-person:nth-child(even) .team-ensemble-meta { padding-right: 14px; }
  .team-ensemble-meta h2 { font-size: clamp(1.05rem, 1.8vw, 1.45rem); }
  .profile-compact-shell { grid-template-columns: minmax(0,1fr) 280px; }
  .profile-story-body { grid-template-columns: minmax(300px, 390px) minmax(0, 1fr); }
}

@media (max-width: 760px) {
  .team-ensemble-hero { height: auto; min-height: 0; padding: 32px var(--pad) 92px; }
  .team-ensemble-hero::before { opacity: .14; }
  .team-ensemble-intro { position: relative; inset: auto; width: 100%; }
  .team-ensemble-intro .breadcrumbs { margin-bottom: 28px; }
  .team-ensemble-intro .eyebrow { margin-bottom: 13px; }
  .team-ensemble-intro h1 { max-width: 12ch; font-size: clamp(2.75rem, 12vw, 3.75rem); }
  .team-ensemble-intro > p:last-child { margin-top: 22px; font-size: .98rem; }
  .team-ensemble-watermark { right: -32vw; bottom: 4%; font-size: clamp(9rem, 47vw, 12rem); }
  .team-ensemble-line-a { left: 38%; top: 26%; width: 78%; }
  .team-ensemble-line-b { left: -28%; bottom: 21%; width: 116%; }
  .team-ensemble-grid { position: relative; inset: auto; grid-template-columns: repeat(2, minmax(0,1fr)); grid-template-rows: none; gap: 46px 14px; margin-top: 58px; }
  .team-ensemble-person-2,
  .team-ensemble-person-3,
  .team-ensemble-person-4,
  .team-ensemble-person-5,
  .team-ensemble-person-6 { transform: none; }
  .team-ensemble-person:nth-child(even) { margin-top: 34px; }
  .team-ensemble-person > a,
  .team-ensemble-person:nth-child(even) > a { display: block; height: auto; }
  .team-ensemble-person figure,
  .team-ensemble-person:nth-child(even) figure { width: 100%; height: auto; aspect-ratio: .79; clip-path: polygon(9% 0,100% 0,91% 100%,0 100%); }
  .team-ensemble-meta,
  .team-ensemble-person:nth-child(even) .team-ensemble-meta { width: calc(100% - 12px); margin: -25px 0 0 12px; padding: 15px 11px 13px 14px; color: var(--paper); text-align: left; background: rgba(10,10,9,.95); border: 0; border-left: 3px solid var(--team-accent); }
  .team-ensemble-meta::before,
  .team-ensemble-person:nth-child(even) .team-ensemble-meta::before { display: none; }
  .team-ensemble-meta small,
  .team-ensemble-person.is-studio .team-ensemble-meta small { margin-bottom: 5px; color: var(--team-accent); font-size: .58rem; }
  .team-ensemble-meta h2 { color: var(--paper); font-size: clamp(1.02rem, 5.3vw, 1.35rem); }
  .team-ensemble-meta b { margin-top: 7px; }
  .team-ensemble-number,
  .team-ensemble-person:nth-child(even) .team-ensemble-number { right: 7px; left: auto; top: 6px; color: rgba(255,255,255,.58); font-size: 2.7rem; }
  .team-ensemble-person > a:hover .team-ensemble-meta,
  .team-ensemble-person > a:focus-visible .team-ensemble-meta,
  .team-ensemble-person:nth-child(even) > a:hover .team-ensemble-meta,
  .team-ensemble-person:nth-child(even) > a:focus-visible .team-ensemble-meta { transform: none; }

  .profile-compact-hero { height: auto; min-height: 0; padding: 24px var(--pad) 102px; }
  .profile-compact-top { position: relative; inset: auto; display: block; }
  .profile-compact-top .breadcrumbs { margin-bottom: 18px; }
  .profile-compact-top .profile-back-link { margin-left: 0; }
  .profile-compact-shell { display: flex; width: 100%; height: auto; padding: 20px 0 0; flex-direction: column; gap: 14px; }
  .profile-orbit-thumb { order: -1; width: 168px; }
  .profile-orbit-thumb > span { width: calc(100% - 34px); border-width: 5px; }
  .profile-compact-intro { width: 100%; }
  .profile-compact-intro h1 { font-size: clamp(2.75rem, 12vw, 3.7rem); }
  .profile-compact-intro .profile-role { max-width: 100%; font-size: .74rem !important; }
  .profile-compact-intro .profile-summary { margin-bottom: 18px; font-size: .98rem; }
  .profile-compact-intro .button { min-height: 46px; margin-bottom: 20px; }
  .profile-compact-hero .profile-hero-index { right: var(--pad); bottom: 72px; }
  .profile-story-body { display: block; width: auto; margin: 0; padding: 72px var(--pad) 96px; }
  .profile-story-portrait { position: relative; top: auto; width: min(100%, 480px); margin: 0 auto; }
  .profile-story-portrait figure { aspect-ratio: .78; }
  .profile-story-plate { width: calc(100% - 20px); margin: -72px 0 0 10px; padding: 16px 18px 18px; }
  .profile-story-plate h2 { font-size: clamp(2rem, 9vw, 2.8rem); }
  .profile-story-line { margin-top: 22px; }
  .profile-story-body .profile-biography { margin-top: 66px; padding-top: 0; }
}

@media (max-width: 430px) {
  .team-ensemble-hero { padding-bottom: 72px; }
  .team-ensemble-grid { column-gap: 10px; }
  .team-ensemble-meta,
  .team-ensemble-person:nth-child(even) .team-ensemble-meta { width: calc(100% - 8px); margin-left: 8px; padding-right: 8px; padding-left: 10px; }
  .team-ensemble-meta h2 { font-size: 1.02rem; }
  .profile-compact-hero { padding-bottom: 112px; }
  .profile-orbit-thumb { width: 158px; }
}

@media (prefers-reduced-motion: reduce) {
  .team-ensemble-person img,
  .team-ensemble-meta,
  .team-ensemble-meta b { transition: none; }
  .team-ensemble-person > a:hover img,
  .team-ensemble-person > a:focus-visible img { transform: none; }
  .profile-orbit-thumb::before,
  .profile-orbit-thumb::after { animation: none; }
}

/* Equipo y perfiles: WhatsApp móvil compacto, sin cubrir nombres ni controles. */
@media (max-width: 760px) {
  body.team-hub-page,
  body.profile-page {
    padding-bottom: calc(100px + env(safe-area-inset-bottom));
  }
  body.team-hub-page .floating-tools,
  body.profile-page .floating-tools {
    right: max(14px, env(safe-area-inset-right));
    bottom: calc(144px + env(safe-area-inset-bottom));
  }
  body.team-hub-page .whatsapp-button,
  body.profile-page .whatsapp-button,
  body.team-hub-page .whatsapp-button:hover,
  body.team-hub-page .whatsapp-button:focus-visible,
  body.profile-page .whatsapp-button:hover,
  body.profile-page .whatsapp-button:focus-visible {
    width: 56px;
    min-width: 56px;
    height: 56px;
    justify-content: center;
    border-radius: 50%;
    transform: none;
  }
  body.team-hub-page .whatsapp-button .whatsapp-label,
  body.profile-page .whatsapp-button .whatsapp-label {
    display: none;
    width: 0;
    max-width: 0;
    padding: 0;
    opacity: 0;
  }
  body.team-hub-page .whatsapp-button svg,
  body.profile-page .whatsapp-button svg {
    flex-basis: 56px;
    width: 56px;
    height: 56px;
    padding: 14px;
  }
  body.team-hub-page .team-ensemble-hero {
    padding-bottom: calc(124px + env(safe-area-inset-bottom));
  }
  body.profile-page .profile-compact-hero {
    padding-bottom: calc(122px + env(safe-area-inset-bottom));
  }
  body.profile-page .profile-compact-intro .profile-summary {
    max-width: calc(100% - 78px);
  }
  body.profile-page .profile-compact-hero .profile-hero-index {
    top: 265px;
    right: var(--pad);
    bottom: auto;
  }
}

/* Equipo: dos zonas reales dentro de un único hero, sin solapamientos. */
@media (min-width: 761px) {
  body.team-hub-page .team-ensemble-hero {
    display: grid;
    grid-template-rows: auto minmax(540px, 1fr);
    row-gap: clamp(52px, 4vw, 68px);
    height: auto;
    min-height: 900px;
    padding: 38px max(var(--pad), calc((100vw - var(--container)) / 2)) 72px;
  }
  body.team-hub-page .team-ensemble-intro {
    position: relative;
    inset: auto;
    width: min(720px, 68vw);
  }
  body.team-hub-page .team-ensemble-grid {
    position: relative;
    inset: auto;
    width: 100%;
    height: 548px;
    min-height: 0;
    grid-template-rows: repeat(2, minmax(238px, 1fr));
    gap: clamp(48px, 3.4vw, 62px) clamp(24px, 2.6vw, 44px);
  }
  body.team-hub-page .team-ensemble-line-a {
    top: 41%;
  }
  body.team-hub-page .team-ensemble-line-b {
    bottom: 14%;
  }
  body.team-hub-page .team-ensemble-person-1 { transform: translateY(4px); }
  body.team-hub-page .team-ensemble-person-2 { transform: translateY(-7px); }
  body.team-hub-page .team-ensemble-person-3 { transform: translateY(7px); }
  body.team-hub-page .team-ensemble-person-4 { transform: translateY(-4px); }
  body.team-hub-page .team-ensemble-person-5 { transform: translateY(7px); }
  body.team-hub-page .team-ensemble-person-6 { transform: translateY(-6px); }
  body.team-hub-page .team-ensemble-person > a {
    isolation: isolate;
    min-height: 220px;
    padding: 10px 12px;
  }
  body.team-hub-page .team-ensemble-person > a::before {
    position: absolute;
    z-index: -1;
    inset: 3px 0;
    content: "";
    background: rgba(250,249,245,.68);
    clip-path: polygon(3% 0,100% 0,97% 100%,0 100%);
  }
  body.team-hub-page .team-ensemble-person:nth-child(2) > a::before,
  body.team-hub-page .team-ensemble-person:nth-child(5) > a::before {
    background: rgba(236,243,217,.72);
    clip-path: polygon(0 0,96% 0,100% 100%,4% 100%);
  }
  body.team-hub-page .team-ensemble-person:nth-child(3) > a::before,
  body.team-hub-page .team-ensemble-person:nth-child(4) > a::before {
    background: rgba(255,255,252,.54);
  }
  body.team-hub-page .team-ensemble-person.is-studio > a::before {
    background: rgba(252,229,241,.6);
  }
}

@media (min-width: 761px) and (max-width: 1400px) {
  body.team-hub-page .team-ensemble-hero {
    min-height: 940px;
  }
  body.team-hub-page .team-ensemble-grid {
    height: 560px;
  }
}

@media (min-width: 1680px) {
  body.team-hub-page .team-ensemble-hero {
    min-height: 880px;
    row-gap: 52px;
    padding-top: 34px;
    padding-bottom: 70px;
  }
  body.team-hub-page .team-ensemble-grid {
    height: 520px;
  }
}

@media (max-width: 760px) {
  body.team-hub-page .team-ensemble-intro {
    margin-bottom: 0;
  }
  body.team-hub-page .team-ensemble-grid {
    row-gap: 48px;
  }
  body.team-hub-page .team-ensemble-person > a,
  body.team-hub-page .team-ensemble-person:nth-child(even) > a {
    position: relative;
    isolation: isolate;
    padding: 7px;
  }
  body.team-hub-page .team-ensemble-person > a::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    content: "";
    background: rgba(250,249,245,.67);
    clip-path: polygon(4% 0,100% 0,96% 100%,0 100%);
  }
  body.team-hub-page .team-ensemble-person:nth-child(2) > a::before,
  body.team-hub-page .team-ensemble-person:nth-child(5) > a::before {
    background: rgba(236,243,217,.72);
  }
  body.team-hub-page .team-ensemble-person:nth-child(3) > a::before,
  body.team-hub-page .team-ensemble-person:nth-child(4) > a::before {
    background: rgba(255,255,252,.58);
  }
  body.team-hub-page .team-ensemble-person.is-studio > a::before {
    background: rgba(252,229,241,.64);
  }
}

/* Cada ficha conserva un único acento, ligado a la fotografía y dentro del panel. */
body.team-hub-page .team-ensemble-meta,
body.team-hub-page .team-ensemble-person:nth-child(even) .team-ensemble-meta {
  border: 0;
}
body.team-hub-page .team-ensemble-meta::before,
body.team-hub-page .team-ensemble-person:nth-child(even) .team-ensemble-meta::before {
  display: none;
}

/* Iteración 68: cabecera en dos ritmos, archivos SEO paginados y detalle de testimonios. */
html,
body { overflow-x: clip; }
.whatsapp-label { overflow: hidden; }
.header-brand-row { background: #050505; }
.header-actions { display: flex; align-items: center; gap: 12px; margin-left: auto; }
.header-search-action,
.header-primary-action { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; gap: 12px; border-radius: 999px; font-size: .9rem; font-weight: 650; transition: color .2s ease, background-color .2s ease, border-color .2s ease, transform .2s ease; }
.header-search-action { padding: 8px 17px; color: #ddd; border: 1px solid rgba(255,255,255,.18); }
.header-search-action b { color: var(--green-bright); font-size: 1.2rem; font-weight: 400; }
.is-studio-header .header-search-action b { color: var(--pink); }
.header-primary-action { min-width: 142px; padding: 8px 17px 8px 20px; color: var(--green-bright); border: 1px solid currentColor; }
.header-primary-action.is-studio-action { color: var(--pink); }
.header-search-action:hover,
.header-search-action:focus-visible { color: #fff; border-color: rgba(255,255,255,.42); background: rgba(255,255,255,.05); transform: translateY(-1px); }
.header-primary-action:hover,
.header-primary-action:focus-visible { color: #080808; background: var(--green-bright); transform: translateY(-1px); }
.header-primary-action.is-studio-action:hover,
.header-primary-action.is-studio-action:focus-visible { background: var(--pink); }
.nav-mobile-tail { display: none; }

@media (min-width: 1181px) {
  .header-brand-row { border-bottom: 1px solid rgba(255,255,255,.11); }
  .header-inner,
  .site-header.is-compact .header-inner { height: 112px; gap: clamp(14px, 1.45vw, 24px); }
  .site-header.is-compact .header-inner { height: 96px; }
  .brand-primary-clinic,
  .site-header.is-compact .brand-primary-clinic { width: 262px !important; height: 72px !important; }
  .brand-primary-studio,
  .site-header.is-compact .brand-primary-studio { width: 252px !important; height: 74px !important; }
  .universe-switch,
  .site-header.is-compact .universe-switch { grid-template-rows: 25px 60px; width: 222px; min-width: 222px; min-height: 88px; margin: 0 0 0 clamp(16px, 1.8vw, 30px); padding: 2px 12px 3px 15px; }
  .universe-switch-logo,
  .site-header.is-compact .universe-switch-logo { height: 60px; }
  .universe-switch b,
  .site-header.is-compact .universe-switch b { width: 25px; height: 25px; font-size: 1rem; }
  .main-nav,
  .main-nav.main-nav-studio { position: static; display: block; min-width: 0; margin: 0 0 0 auto; padding: 0; background: transparent; border: 0; opacity: 1; transform: none; pointer-events: auto; }
  .main-nav > ul,
  .main-nav-studio > ul { display: flex; align-items: center; gap: 0; }
  .main-nav > ul > li { position: relative; display: flex; align-items: center; padding: 0 clamp(12px, 1.05vw, 19px); }
  .main-nav > ul > li:first-child { padding-left: 0; }
  .main-nav > ul > li:last-child { padding-right: 0; }
  .main-nav > ul > li + li::before { position: absolute; left: 0; top: 50%; width: 1px; height: 18px; content: ""; background: rgba(168,210,27,.14); transform: translateY(-50%); }
  .main-nav-studio > ul > li + li::before { background: rgba(236,25,134,.14); }
  .main-nav li > a,
  .nav-parent > a,
  .main-nav-studio li > a,
  .main-nav-studio .nav-parent > a { min-height: 64px; font-size: clamp(.86rem, .8rem + .1vw, .94rem); white-space: nowrap; }
  .main-nav-studio > ul > li { padding-right: clamp(8px, .72vw, 13px); padding-left: clamp(8px, .72vw, 13px); }
  .main-nav-studio li > a,
  .main-nav-studio .nav-parent > a { font-size: clamp(.76rem, .7rem + .1vw, .84rem); }
  .nav-mobile-tail { display: none !important; }
  .menu-toggle { display: none; }
  .topic-nav { top: 144px; }
}

/* Archivo editorial de blog. */
.archive-collection { width: min(calc(100% - (var(--pad) * 2)), var(--container)); margin: 0 auto; padding: clamp(64px, 7vw, 108px) 0; }
.archive-collection-heading { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr); align-items: end; gap: clamp(28px, 6vw, 100px); margin-bottom: clamp(44px, 5vw, 72px); }
.archive-collection-heading .label { margin-bottom: 12px; }
.archive-collection-heading h2 { max-width: 820px; margin: 0; font-size: clamp(2.25rem, 4vw, 4.7rem); line-height: .98; letter-spacing: -.052em; }
.archive-collection-heading > p { max-width: 560px; margin: 0; color: #555; font-size: 1.02rem; line-height: 1.62; }
.blog-archive-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(38px, 4.3vw, 72px) clamp(22px, 2.4vw, 38px); align-items: start; }
.blog-archive-card { position: relative; min-width: 0; }
.blog-archive-media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #dedbd3; }
.blog-archive-media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.78) contrast(1.03); transition: transform .55s cubic-bezier(.2,.72,.2,1), filter .3s ease; }
.blog-archive-card:hover .blog-archive-media img,
.blog-archive-card:focus-within .blog-archive-media img { filter: saturate(.98) contrast(1.03); transform: scale(1.025); }
.blog-archive-plate { position: relative; z-index: 2; width: calc(100% - 28px); min-height: 246px; margin: -54px 0 0 auto; padding: clamp(24px, 2.1vw, 34px); background: #fbfaf6; box-shadow: 0 22px 48px rgba(55,48,39,.13); }
.blog-archive-card:nth-child(3n+2) .blog-archive-plate { background: #e8efd1; }
.blog-archive-card.is-studio-topic .blog-archive-plate { background: #f6dce9; }
.blog-archive-plate > p { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; color: var(--green-dark); font-size: .78rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.blog-archive-card.is-studio-topic .blog-archive-plate > p { color: var(--pink-dark); }
.blog-archive-plate h3 { margin: 0 0 14px; font-size: clamp(1.3rem, 1.55vw, 1.75rem); line-height: 1.08; letter-spacing: -.035em; text-wrap: balance; }
.blog-archive-date { display: block; margin: -4px 0 16px; color: #74746e; font-size: .76rem; font-weight: 650; letter-spacing: .055em; text-transform: uppercase; }
.blog-archive-plate > span { display: block; color: #555; font-size: .96rem; line-height: 1.58; }
.blog-archive-cta { display: inline-flex; align-items: center; gap: 14px; margin-top: 20px; color: var(--green-dark); font-size: .9rem; font-weight: 700; }
.blog-archive-card.is-studio-topic .blog-archive-cta { color: var(--pink-dark); }
.blog-archive-cta b { transition: transform .2s ease; }
.blog-archive-cta:hover b,
.blog-archive-cta:focus-visible b { transform: translate(3px,-3px); }

/* Archivo visual de testimonios, siempre con la imagen propia del caso. */
.testimonial-archive-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(28px, 3.4vw, 52px) clamp(20px, 2.5vw, 38px); }
.testimonial-archive-card { position: relative; min-width: 0; overflow: hidden; background: #faf9f5; box-shadow: 0 18px 44px rgba(58,51,42,.1); }
.testimonial-archive-card:nth-child(3n+2) { background: #eaf0d8; }
.testimonial-archive-media { display: grid; height: 300px; place-items: center; padding: 18px; overflow: hidden; background: #e7e4dc; }
.testimonial-archive-media img { width: 100%; height: 100%; object-fit: contain; transition: transform .4s ease, filter .3s ease; }
.testimonial-archive-card:hover .testimonial-archive-media img,
.testimonial-archive-card:focus-within .testimonial-archive-media img { transform: scale(1.025); }
.testimonial-archive-media.is-fallback img { width: 100%; object-fit: cover; }
.testimonial-archive-copy { min-height: 310px; padding: clamp(24px, 2.1vw, 34px); }
.testimonial-archive-copy > p { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; margin: 0 0 16px; color: var(--green-dark); font-size: .78rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.testimonial-archive-copy > p time { color: #777; font-weight: 500; }
.testimonial-archive-copy h3 { margin: 0 0 16px; font-size: clamp(1.32rem, 1.55vw, 1.72rem); line-height: 1.08; letter-spacing: -.035em; text-wrap: balance; }
.testimonial-archive-copy > div { color: #505050; font-size: .98rem; line-height: 1.62; }
.testimonial-archive-copy > a { display: inline-flex; gap: 14px; align-items: center; margin-top: 22px; color: var(--green-dark); font-size: .91rem; font-weight: 700; }
.testimonial-archive-index { position: absolute; right: 18px; top: 18px; display: grid; width: 38px; height: 38px; place-items: center; color: #fff; background: rgba(18,18,18,.82); border-radius: 50%; font-size: .7rem; font-weight: 750; }

.archive-pagination { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 18px; margin-top: clamp(52px, 6vw, 86px); padding-top: 26px; border-top: 1px solid var(--line-dark); }
.archive-pagination > div:last-child { text-align: right; }
.pagination-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px; }
.pagination-numbers a,
.pagination-numbers span { display: inline-grid; width: 42px; height: 42px; place-items: center; border: 1px solid var(--line-dark); border-radius: 50%; font-size: .9rem; }
.pagination-numbers .is-current { color: #fff; background: var(--ink); border-color: var(--ink); }
.pagination-direction { display: inline-flex; min-height: 44px; align-items: center; gap: 12px; color: var(--green-dark); font-weight: 700; }
.pagination-direction.is-disabled { color: #999; }

/* El detalle de un testimonio crece por contenido: título, resumen y foto nunca se montan. */
.testimonial-detail-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 440px); align-items: center; gap: clamp(42px, 7vw, 116px); min-height: 0; padding: clamp(58px, 7vw, 102px) max(var(--pad), calc((100vw - var(--container)) / 2 + var(--pad))); }
.testimonial-detail-heading { min-width: 0; }
.testimonial-detail-heading h1 { max-width: 930px; margin: 0; font-size: clamp(2.2rem, 3.35vw, 4.25rem); line-height: .98; letter-spacing: -.052em; text-wrap: balance; overflow-wrap: anywhere; }
.testimonial-detail-heading .inner-summary { max-width: 760px; margin: 0 0 24px; color: #d2d2d2; font-size: clamp(1.02rem, 1.2vw, 1.2rem); line-height: 1.58; }
.testimonial-detail-media { display: grid; width: min(100%, 420px); min-height: 320px; max-height: 470px; place-items: center; justify-self: end; margin: 0; padding: clamp(18px, 2vw, 28px); overflow: hidden; background: #f4f1e9; box-shadow: 0 24px 64px rgba(0,0,0,.32); }
.testimonial-detail-media img { width: auto; max-width: 100%; height: auto; max-height: 410px; object-fit: contain; }
.testimonial-detail-media.is-fallback img { width: 100%; }
.testimonial-detail-layout { grid-template-columns: minmax(150px, .28fr) minmax(0, 1fr) minmax(210px, .36fr); align-items: start; }
.testimonial-page .article-content img { width: auto; max-width: min(100%, 420px); height: auto; max-height: 560px; margin-right: auto; margin-left: auto; object-fit: contain; }
.testimonial-page .article-content figure { max-width: 760px; margin-right: auto; margin-left: auto; }

@media (max-width: 1180px) {
  .header-brand-row { border-bottom: 1px solid rgba(255,255,255,.09); }
  .header-inner,
  .site-header.is-compact .header-inner { height: 88px; }
  .header-actions { display: none; }
  .menu-toggle { display: flex; align-items: center; gap: 10px; margin-left: auto; }
  .main-nav,
  .main-nav.main-nav-studio { position: fixed; inset: 130px 0 auto; display: grid; max-height: calc(100dvh - 130px); gap: 0; overflow-y: auto; padding: 18px var(--pad) 30px; background: #050505; border-bottom: 1px solid var(--line); opacity: 0; transform: translateY(-140%); pointer-events: none; transition: transform .28s ease, opacity .2s ease; }
  .main-nav.is-open { opacity: 1; transform: none; pointer-events: auto; }
  .main-nav > ul,
  .main-nav-studio > ul { display: block; }
  .main-nav > ul > li { padding: 0; border-bottom: 1px solid var(--line); }
  .main-nav > ul > li::before { display: none !important; }
  .main-nav li > a,
  .main-nav-studio li > a,
  .nav-parent > a,
  .main-nav-studio .nav-parent > a { width: 100%; min-height: 54px; font-size: 1rem; white-space: normal; }
  .nav-mobile-tail { display: block; }
  .nav-mobile-tail .nav-cta { width: auto; margin: 16px 0; }
  .nav-mobile-tail .nav-cta.is-studio-action { color: var(--pink); }
  .topic-nav { top: 130px; }
  .blog-archive-grid,
  .testimonial-archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .testimonial-detail-hero { grid-template-columns: minmax(0, 1fr) minmax(280px, 360px); }
  .testimonial-detail-layout { grid-template-columns: minmax(140px, .28fr) minmax(0, 1fr); }
  .testimonial-detail-layout .author-card { grid-column: 2; }
}

@media (max-width: 760px) {
  .header-inner,
  .site-header.is-compact .header-inner { height: 80px; }
  .brand-primary-clinic,
  .site-header.is-compact .brand-primary-clinic { width: 146px !important; height: 42px !important; }
  .brand-primary-studio,
  .site-header.is-compact .brand-primary-studio { width: 140px !important; height: 42px !important; }
  .universe-switch,
  .site-header.is-compact .universe-switch { grid-template-rows: 20px 46px; width: 146px; min-width: 146px; min-height: 72px; margin-left: 3px; padding: 2px 7px 3px 9px; }
  .universe-switch-logo,
  .site-header.is-compact .universe-switch-logo { height: 46px; }
  .universe-switch b,
  .site-header.is-compact .universe-switch b { width: 20px; height: 20px; font-size: .84rem; }
  .main-nav,
  .main-nav.main-nav-studio { inset: 138px 0 auto; max-height: calc(100dvh - 138px); }
  .topic-nav { top: 138px; }
  .archive-collection { width: calc(100% - 32px); padding: 58px 0; }
  .archive-collection-heading { grid-template-columns: 1fr; align-items: start; margin-bottom: 38px; }
  .archive-collection-heading h2 { font-size: clamp(2.1rem, 10vw, 3.2rem); }
  .blog-archive-grid,
  .testimonial-archive-grid { grid-template-columns: 1fr; gap: 38px; }
  .blog-archive-plate { width: calc(100% - 16px); min-height: 0; margin-top: -36px; }
  .testimonial-archive-media { height: 260px; }
  .testimonial-archive-copy { min-height: 0; }
  .archive-pagination { grid-template-columns: 1fr 1fr; }
  .pagination-numbers { grid-column: 1 / -1; grid-row: 1; }
  .archive-pagination > div:first-child { grid-column: 1; grid-row: 2; }
  .archive-pagination > div:last-child { grid-column: 2; grid-row: 2; }
  .testimonial-detail-hero { grid-template-columns: 1fr; gap: 34px; padding: 48px 20px 54px; }
  .testimonial-detail-heading h1 { font-size: clamp(1.75rem, 8vw, 2.5rem); line-height: 1.02; }
  .testimonial-detail-media { width: min(100%, 360px); min-height: 250px; max-height: 420px; justify-self: center; }
  .testimonial-detail-media img { max-height: 360px; }
  .testimonial-detail-layout,
  .testimonial-detail-layout .author-card { grid-template-columns: 1fr; grid-column: auto; }
  .whatsapp-button,
  .whatsapp-button:hover,
  .whatsapp-button:focus-visible { width: 56px; height: 56px; }
  .whatsapp-button .whatsapp-label { display: none; }
  .whatsapp-button svg { flex-basis: 56px; width: 56px; height: 56px; padding: 14px; }
}

@media (max-width: 430px) {
  .brand-primary-clinic,
  .site-header.is-compact .brand-primary-clinic { width: 126px !important; }
  .brand-primary-studio,
  .site-header.is-compact .brand-primary-studio { width: 122px !important; }
  .universe-switch,
  .site-header.is-compact .universe-switch { width: 126px; min-width: 126px; }
  .menu-toggle span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

@media (prefers-reduced-motion: reduce) {
  .blog-archive-media img,
  .testimonial-archive-media img { transition: none; transform: none !important; }
}

/* Iteración 69: heroes de artículos fluidos y tres patrones editoriales por contenido. */
.article-page:not(.testimonial-page) .article-hero {
  height: auto;
  min-height: 620px;
  align-items: stretch;
}
.article-page:not(.testimonial-page) .article-hero-copy {
  position: relative;
  min-width: 0;
  min-height: 620px;
  justify-content: center;
  padding-top: clamp(62px, 6vw, 92px);
  padding-bottom: clamp(76px, 7vw, 112px);
}
.article-page:not(.testimonial-page) .article-hero h1 {
  max-width: 900px;
  font-size: clamp(2.2rem, 2.35vw, 3.1rem);
  line-height: .98;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.article-page:not(.testimonial-page) .article-hero-copy > .inner-summary {
  max-width: 720px;
  margin-bottom: 26px;
  line-height: 1.58;
}
.article-page:not(.testimonial-page) .article-hero .article-meta {
  position: static;
  width: 100%;
  margin-top: 0;
  padding: 0;
}
.article-page:not(.testimonial-page) .article-hero-media {
  position: relative;
  align-self: stretch;
  height: auto;
  min-height: 620px;
}
.article-page:not(.testimonial-page) .article-hero-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.article-page:not(.testimonial-page) .article-hero-media.is-contained {
  background: radial-gradient(circle at 50% 46%, #303127, #171713 72%);
}
.article-page:not(.testimonial-page) .article-hero-media.is-contained img {
  inset: clamp(26px, 3vw, 52px);
  width: calc(100% - clamp(52px, 6vw, 104px));
  height: calc(100% - clamp(52px, 6vw, 104px));
  object-fit: contain;
}

.article-editorial-module {
  width: min(100%, 1040px);
  margin: 0 0 clamp(66px, 8vw, 108px);
  color: var(--ink);
}
.article-editorial-module .label {
  margin: 0 0 14px;
  color: var(--green-dark);
}
.article-editorial-module h2 {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: clamp(2rem, 3.2vw, 3.55rem);
  line-height: .98;
  text-wrap: balance;
}

/* Patrón A: relato y material pequeño/vertical en dos planos. */
.editorial-story-split {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .72fr);
  gap: clamp(42px, 7vw, 92px);
  align-items: start;
  padding: clamp(36px, 5vw, 64px) 0 clamp(28px, 4vw, 46px);
  border-top: 1px solid var(--line-dark);
  border-bottom: 1px solid var(--line-dark);
}
.editorial-story-copy blockquote {
  position: relative;
  max-width: 690px;
  margin: clamp(38px, 5vw, 70px) 0 0;
  padding: 28px 0 0 clamp(28px, 3vw, 48px);
  color: #1b1b1b;
  background: transparent;
  border: 0;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(1.35rem, 2.15vw, 2.15rem);
  font-style: italic;
  line-height: 1.42;
}
.editorial-story-copy blockquote::before {
  position: absolute;
  left: 0;
  top: 0;
  content: '“';
  color: var(--green);
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 5rem;
  font-style: normal;
  line-height: 1;
}
.editorial-story-copy blockquote p,
.editorial-key-media blockquote p { margin: 0; }
.editorial-story-media {
  width: min(100%, 370px);
  justify-self: end;
  margin: 0;
  padding: 18px;
  background: #e8e4da;
  box-shadow: 0 22px 60px rgba(66,55,39,.14);
}
.editorial-story-media img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 500px;
  margin: auto;
  object-fit: contain;
}
.editorial-story-media.is-portrait,
.editorial-story-media.is-low-resolution { max-width: 340px; }
.editorial-story-media figcaption {
  margin-top: 14px;
  color: #666;
  font-size: .86rem;
  line-height: 1.5;
}
.editorial-story-media > p {
  margin: 20px 0 0;
  padding-top: 18px;
  color: #484848;
  border-top: 1px solid rgba(18,18,18,.16);
  font-size: .96rem;
  line-height: 1.62;
}

/* Patrón B: el hero hace de introducción split; el cuerpo gana medida editorial. */
.article-pattern-b .article-content > p:first-of-type {
  max-width: 850px;
  color: #333;
  font-size: clamp(1.16rem, 1.4vw, 1.36rem);
  line-height: 1.7;
}
.article-pattern-b .article-content > p:first-of-type::first-letter {
  float: left;
  margin: .08em .12em 0 0;
  color: var(--green-dark);
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 3.8em;
  line-height: .76;
}

/* Patrón C: mapa de apartados reales y una segunda imagen con cita existente. */
.editorial-key-points {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(330px, .95fr);
  gap: clamp(44px, 7vw, 92px);
  align-items: center;
  padding: clamp(42px, 5vw, 68px);
  background: #e7eadb;
}
.editorial-key-copy ol {
  display: grid;
  gap: 0;
  margin: 38px 0 0;
  padding: 0;
  list-style: none;
}
.editorial-key-copy li {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 15px;
  align-items: baseline;
  margin: 0;
  padding: 16px 0;
  border-top: 1px solid rgba(50,68,18,.24);
}
.editorial-key-copy li:last-child { border-bottom: 1px solid rgba(50,68,18,.24); }
.editorial-key-copy li > span {
  color: var(--green-dark);
  font-size: .8rem;
  font-variant-numeric: tabular-nums;
  font-weight: 750;
  letter-spacing: .08em;
}
.editorial-key-copy li > a {
  color: #20231a;
  font-size: clamp(1.02rem, 1.25vw, 1.18rem);
  font-weight: 680;
  line-height: 1.28;
  text-decoration: none;
}
.editorial-key-copy li > a:hover,
.editorial-key-copy li > a:focus-visible { color: var(--green-dark); text-decoration: underline; text-underline-offset: 4px; }
.editorial-key-media {
  display: grid;
  align-items: end;
  width: min(100%, 480px);
  justify-self: end;
  margin: 0;
}
.editorial-key-media img {
  grid-column: 1;
  grid-row: 1;
  display: block;
  width: 100%;
  height: auto;
  max-height: 500px;
  object-fit: contain;
  background: #d8ddc7;
}
.editorial-key-media.is-portrait img,
.editorial-key-media.is-low-resolution img {
  width: auto;
  max-width: min(100%, 360px);
  justify-self: center;
}
.editorial-key-media blockquote {
  z-index: 1;
  grid-column: 1;
  grid-row: 1;
  align-self: end;
  width: calc(100% - 32px);
  max-width: none;
  margin: 0 16px -42px;
  padding: 22px 24px;
  color: #f5f4ef;
  background: rgba(12,14,10,.94);
  border: 0;
  box-shadow: 0 18px 40px rgba(55,64,34,.2);
  font-size: clamp(1rem, 1.2vw, 1.16rem);
  line-height: 1.52;
}
.editorial-key-media figcaption {
  margin: 56px 16px 0;
  color: #5d6250;
  font-size: .86rem;
  line-height: 1.5;
}

/* Las imágenes verticales o modestas nunca se fuerzan al ancho del artículo. */
.article-page .article-content img.legacy-image-portrait,
.article-page .article-content img.is-low-resolution {
  width: auto !important;
  max-width: min(100%, 380px) !important;
  height: auto !important;
  max-height: 600px;
  object-fit: contain;
}
.article-page .article-content .legacy-media:has(img.legacy-image-portrait),
.article-page .article-content .legacy-media:has(img.is-low-resolution),
.article-page .article-content .elementor-widget-image:has(img.legacy-image-portrait),
.article-page .article-content .elementor-widget-image:has(img.is-low-resolution) {
  width: min(100%, 430px);
  min-height: 0;
  margin-right: auto;
  margin-left: auto;
  padding: clamp(18px, 2.5vw, 30px);
  background: #e7e4dc;
}
.article-pattern-c .article-content .elementor > .elementor-top-section:nth-of-type(3n+2):has(img) {
  width: min(94%, 980px);
  margin-left: auto;
}

@media (max-width: 1180px) {
  .article-page:not(.testimonial-page) .article-hero,
  .article-page:not(.testimonial-page) .article-hero-copy,
  .article-page:not(.testimonial-page) .article-hero-media { min-height: 580px; }
  .editorial-story-split,
  .editorial-key-points { gap: 42px; }
}

@media (max-width: 760px) {
  .article-page:not(.testimonial-page) .article-hero { display: flex; min-height: 0; }
  .article-page:not(.testimonial-page) .article-hero-copy {
    min-height: 0;
    padding: 46px 20px 58px;
  }
  .article-page:not(.testimonial-page) .article-hero h1 { font-size: clamp(1.7rem, 7vw, 2.6rem); }
  .article-page:not(.testimonial-page) .article-hero-media {
    height: 300px;
    min-height: 300px;
  }
  .article-page:not(.testimonial-page) .article-hero-media img { position: static; }
  .article-page:not(.testimonial-page) .article-hero-media.is-contained img {
    width: calc(100% - 36px);
    height: calc(100% - 36px);
    margin: 18px;
  }
  .article-editorial-module { margin-bottom: 62px; }
  .editorial-story-split,
  .editorial-key-points {
    grid-template-columns: 1fr;
    gap: 34px;
    padding: 32px 20px 38px;
  }
  .editorial-story-copy blockquote { margin-top: 30px; padding-left: 34px; }
  .editorial-story-media,
  .editorial-key-media { width: min(100%, 380px); justify-self: start; }
  .editorial-key-media blockquote { position: relative; grid-row: 2; width: calc(100% - 18px); margin: -34px 9px 0; }
  .editorial-key-media figcaption { margin: 16px 9px 0; }
  .article-pattern-b .article-content > p:first-of-type::first-letter { float: none; margin: 0; font: inherit; color: inherit; }
  .article-pattern-c .article-content .elementor > .elementor-top-section:nth-of-type(3n+2):has(img) { width: 100%; }
}

/* Índice de conservación de las rutas históricas de WordPress. */
.legacy-archive-index {
  width: min(100% - 48px, 1320px);
  margin: 0 auto;
  padding: clamp(72px, 8vw, 128px) 0;
}
.legacy-archive-note {
  display: grid;
  grid-template-columns: minmax(220px, .55fr) minmax(0, 1.45fr);
  gap: 32px;
  margin-bottom: clamp(64px, 7vw, 104px);
  padding: 28px 0;
  border-top: 1px solid rgba(104, 145, 5, .36);
  border-bottom: 1px solid rgba(22, 24, 18, .14);
}
.legacy-archive-note strong { font-size: clamp(1.22rem, 1.8vw, 1.68rem); line-height: 1.18; }
.legacy-archive-note p { max-width: 750px; margin: 0; color: #53584a; font-size: 1.06rem; line-height: 1.65; }
.legacy-archive-group {
  display: grid;
  grid-template-columns: minmax(250px, .78fr) minmax(0, 1.22fr);
  gap: clamp(36px, 7vw, 110px);
  padding: clamp(44px, 5vw, 72px) 0;
  border-top: 1px solid rgba(22, 24, 18, .14);
}
.legacy-archive-group h2 { max-width: 520px; margin: 12px 0 20px; font-size: clamp(1.8rem, 3vw, 3.2rem); line-height: 1.02; text-wrap: balance; }
.legacy-archive-group > div > p:last-child { max-width: 560px; margin: 0; color: #5d6254; font-size: 1.02rem; line-height: 1.65; }
.legacy-archive-group ul { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.legacy-archive-group li { border-bottom: 1px solid rgba(22, 24, 18, .12); }
.legacy-archive-group a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  align-items: center;
  min-height: 64px;
  padding: 16px 4px;
  color: #181a15;
  font-size: clamp(1rem, 1.3vw, 1.16rem);
  font-weight: 650;
  line-height: 1.35;
  text-decoration: none;
}
.legacy-archive-group a b { color: var(--green); font-size: 1.35rem; transition: transform .2s ease; }
.legacy-archive-group a:hover,
.legacy-archive-group a:focus-visible { color: var(--green-dark); }
.legacy-archive-group a:hover b,
.legacy-archive-group a:focus-visible b { transform: translate(3px, -3px); }
.legacy-snapshot-header > div {
  width: min(100% - 48px, 1180px);
  margin: 0 auto;
  padding: clamp(72px, 8vw, 128px) 0;
}
.legacy-snapshot-header h1 { max-width: 950px; margin: 18px 0 24px; font-size: clamp(2.2rem, 5vw, 5.8rem); line-height: .98; text-wrap: balance; }
.legacy-snapshot-header > div > p:not(.eyebrow) { max-width: 760px; margin: 0 0 32px; color: rgba(255,255,255,.74); font-size: 1.08rem; line-height: 1.65; }
.legacy-snapshot-shell {
  width: min(100% - 48px, 1180px);
  margin: 0 auto;
  padding: clamp(64px, 8vw, 120px) 0;
}
.legacy-snapshot-warning {
  display: grid;
  grid-template-columns: minmax(180px, .42fr) minmax(0, 1.58fr);
  gap: 32px;
  margin-bottom: 56px;
  padding: 26px 0;
  border-top: 2px solid var(--green);
  border-bottom: 1px solid rgba(22, 24, 18, .14);
}
.legacy-snapshot-warning strong { font-size: 1.14rem; }
.legacy-snapshot-warning p { max-width: 780px; margin: 0; color: #565b4e; line-height: 1.65; }
.legacy-snapshot-page .legacy-content { max-width: 920px; margin: 0 auto; }

/* Directorio completo de las taxonomías históricas de WordPress. */
.taxonomy-directory {
  width: min(100% - 48px, var(--container));
  margin: clamp(28px, 4vw, 54px) auto 0;
  scroll-margin-top: 210px;
  border-top: 1px solid rgba(22, 24, 18, .18);
  border-bottom: 1px solid rgba(22, 24, 18, .18);
}
.taxonomy-directory summary {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
  min-height: 62px;
  padding: 12px 2px;
  color: var(--ink);
  font-size: clamp(1rem, 1.25vw, 1.16rem);
  font-weight: 720;
  cursor: pointer;
  list-style: none;
}
.taxonomy-directory summary::-webkit-details-marker { display: none; }
.taxonomy-directory summary::after {
  content: '+';
  order: 3;
  color: var(--green);
  font-size: 1.45rem;
  font-weight: 500;
}
.taxonomy-directory[open] summary::after { content: '−'; }
.taxonomy-directory summary span {
  margin-left: auto;
  color: #65695f;
  font-size: .82rem;
  font-weight: 600;
}
.taxonomy-directory-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: clamp(24px, 4vw, 64px);
  padding: 4px 0 28px;
}
.taxonomy-directory-links a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  min-height: 50px;
  padding: 10px 2px 10px calc((var(--taxonomy-depth, 1) - 1) * 10px + 2px);
  color: #30342c;
  border-bottom: 1px solid rgba(22, 24, 18, .1);
  font-size: .96rem;
  line-height: 1.35;
  text-decoration: none;
}
.taxonomy-directory-links a::before {
  content: '';
  width: calc(14px + (var(--taxonomy-depth, 1) - 1) * 5px);
  height: 1px;
  margin-right: 10px;
  background: color-mix(in srgb, var(--green) 58%, transparent);
  grid-column: 1;
  grid-row: 1;
}
.taxonomy-directory-links a span { grid-column: 1; grid-row: 1; padding-left: calc(24px + (var(--taxonomy-depth, 1) - 1) * 5px); }
.taxonomy-directory-links a b { color: var(--green-dark); font-size: .8rem; }
.taxonomy-directory-links a:hover,
.taxonomy-directory-links a:focus-visible,
.taxonomy-directory-links a[aria-current="page"] { color: var(--green-dark); }
.taxonomy-directory-links a:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }

@media (max-width: 760px) {
  .legacy-archive-index { width: min(100% - 36px, 1320px); padding: 64px 0 80px; }
  .legacy-archive-note,
  .legacy-archive-group { grid-template-columns: 1fr; gap: 20px; }
  .legacy-archive-note { margin-bottom: 48px; }
  .legacy-archive-group { padding: 44px 0; }
  .legacy-archive-group a { min-height: 58px; }
  .legacy-snapshot-header > div,
  .legacy-snapshot-shell { width: min(100% - 36px, 1180px); }
  .legacy-snapshot-warning { grid-template-columns: 1fr; gap: 14px; }
  .taxonomy-directory { width: min(100% - 36px, var(--container)); margin-top: 26px; scroll-margin-top: 190px; }
  .archive-page .topic-nav { position: relative; top: auto; }
  .taxonomy-directory summary { min-height: 58px; }
  .taxonomy-directory summary span { display: none; }
  .taxonomy-directory-links { grid-template-columns: 1fr; padding-bottom: 22px; }
  .taxonomy-directory-links a { min-height: 52px; }
}

@media (prefers-reduced-motion: reduce) {
  .legacy-archive-group a b { transition: none; }
}

/* Iteración 79: cabecera superior unificada y ritmo editorial de artículos. */
.contact-rail { height: 48px; }
.contact-rail-inner { justify-content: space-between; gap: 28px; }
.contact-rail-spaces { display: flex; min-width: 0; align-items: center; gap: clamp(18px, 2.2vw, 38px); }
.contact-rail .header-actions { display: flex; flex: 0 0 auto; gap: 8px; margin-left: auto; }
.contact-rail .header-search-action,
.contact-rail .header-primary-action { min-height: 34px; padding: 5px 14px; font-size: .78rem; }
.contact-rail .header-primary-action { min-width: 116px; }
.contact-rail .header-search-action b { font-size: 1.05rem; }
.header-brand-row .header-inner { justify-content: flex-start; }
.header-brand-row .menu-toggle { margin-left: auto; }

@media (min-width: 1181px) {
  .topic-nav { top: 144px; }
}

/* Las categorías de testimonios forman una banda compacta, no una tabla flotante. */
.testimonials-page .testimony-topics,
.testimonial-category-page .testimony-topics {
  position: relative;
  top: auto;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  width: min(calc(100% - (var(--pad) * 2)), var(--container));
  margin: clamp(26px, 3vw, 42px) auto 0;
  padding: 7px 0;
  overflow: visible;
  background: transparent;
  border-top: 1px solid var(--line-dark);
  border-bottom: 1px solid var(--line-dark);
}
.testimonials-page .testimony-topics a,
.testimonial-category-page .testimony-topics a {
  position: relative;
  min-width: 0;
  min-height: 52px;
  align-items: center;
  justify-content: space-between;
  padding: 10px clamp(12px, 1.3vw, 19px);
  border: 0;
  font-size: .85rem;
  white-space: normal;
}
.testimonials-page .testimony-topics a + a::before,
.testimonial-category-page .testimony-topics a + a::before {
  position: absolute;
  left: 0;
  top: 13px;
  bottom: 13px;
  width: 1px;
  content: "";
  background: rgba(20,20,20,.12);
}
.testimonials-page .testimony-topics a:hover,
.testimonials-page .testimony-topics a:focus-visible,
.testimonials-page .testimony-topics a.is-active,
.testimonial-category-page .testimony-topics a:hover,
.testimonial-category-page .testimony-topics a:focus-visible,
.testimonial-category-page .testimony-topics a.is-active { color: #fff; background: var(--ink); }
.testimonials-page .testimony-topics a.is-active span,
.testimonial-category-page .testimony-topics a.is-active span { color: var(--green-bright); }

/* Proporción 58/42: texto e imagen se leen como una única composición. */
.article-editorial-module { width: min(100%, 1120px); }
.article-editorial-module h2 { font-size: clamp(1.75rem, 2.45vw, 2.75rem); line-height: 1; }
.editorial-story-split,
.editorial-key-points { grid-template-columns: minmax(0, 58fr) minmax(300px, 42fr); gap: clamp(30px, 4.2vw, 58px); }
.editorial-story-copy blockquote {
  max-width: 650px;
  margin-top: clamp(26px, 3vw, 42px);
  font-size: clamp(1.2rem, 1.55vw, 1.68rem);
  line-height: 1.5;
}
.editorial-story-media,
.editorial-story-media.is-portrait,
.editorial-story-media.is-low-resolution,
.editorial-key-media { width: 100%; max-width: none; justify-self: stretch; }
.editorial-story-media img { max-height: 580px; }
.testimonial-fragment-module .editorial-story-media { align-self: start; }
.testimonial-fragment-module .editorial-story-media > p { font-size: .92rem; line-height: 1.62; }

.legacy-media-row {
  display: grid;
  grid-template-columns: minmax(0, 58fr) minmax(260px, 42fr);
  gap: clamp(28px, 4.2vw, 58px);
  align-items: start;
  width: min(100%, 1060px);
  margin: clamp(42px, 6vw, 72px) 0;
  padding: clamp(24px, 3vw, 38px) 0;
  border-top: 1px solid rgba(22,24,18,.13);
  border-bottom: 1px solid rgba(22,24,18,.13);
}
.legacy-media-row-copy { min-width: 0; align-self: center; }
.legacy-media-row-copy > p { max-width: 650px; margin: 0 0 18px; }
.legacy-media-row-copy > p:last-of-type { margin-bottom: 0; }
.article-content .legacy-media-row > figure,
.article-content .legacy-media-row > .wp-block-image {
  display: grid;
  width: 100%;
  min-width: 0;
  min-height: 0;
  place-items: center;
  margin: 0;
  padding: clamp(12px, 1.6vw, 20px);
  background: #e6e3db;
}
.article-content .legacy-media-row img,
.article-content .legacy-media-row img.legacy-image-portrait,
.article-content .legacy-media-row img.is-low-resolution {
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: 620px;
  object-fit: contain;
}

/* Un único componente ambiental, siempre por detrás y anclado abajo a la izquierda. */
.section-wordmark { z-index: 0; left: -2.5vw; right: auto; bottom: -.08em; }
.team-ensemble-watermark { left: -2.5vw; right: auto; bottom: -3vw; }
.nutrition-wordmark,
.treatments-wordmark { left: -2.5vw; bottom: -.08em; }
.contact-map-city { left: -18px; bottom: -40px; }

@media (max-width: 1180px) {
  .contact-rail { height: 42px; }
  .contact-rail-inner { display: flex; }
  .contact-rail-spaces { width: 100%; justify-content: center; }
  .contact-rail .header-actions { display: none; }
  .testimonials-page .testimony-topics,
  .testimonial-category-page .testimony-topics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .contact-rail { height: 58px; }
  .contact-rail-inner { padding: 0 12px; }
  .contact-rail-spaces { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
  .testimonials-page .testimony-topics,
  .testimonial-category-page .testimony-topics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: calc(100% - 32px);
    margin-top: 20px;
  }
  .testimonials-page .testimony-topics a,
  .testimonial-category-page .testimony-topics a { min-height: 50px; padding: 9px 12px; font-size: .8rem; }
  .testimonials-page .testimony-topics a:nth-child(odd)::before,
  .testimonial-category-page .testimony-topics a:nth-child(odd)::before { display: none; }

  .article-editorial-module h2 { font-size: clamp(1.35rem, 6vw, 1.7rem); }
  .editorial-story-split,
  .editorial-key-points,
  .legacy-media-row {
    grid-template-columns: minmax(0, 58fr) minmax(126px, 42fr);
    gap: 14px;
    align-items: start;
    padding: 22px 0 26px;
  }
  .editorial-story-copy blockquote { margin-top: 22px; padding: 22px 0 0 24px; font-size: clamp(1rem, 4.2vw, 1.15rem); line-height: 1.55; }
  .editorial-story-copy blockquote::before { font-size: 3.5rem; }
  .editorial-story-media,
  .editorial-key-media { width: 100%; justify-self: stretch; padding: 8px; }
  .editorial-story-media figcaption { margin-top: 8px; font-size: .72rem; }
  .testimonial-fragment-module .editorial-story-media > p { margin-top: 10px; padding-top: 10px; font-size: .78rem; line-height: 1.5; }

  /*
   * La primera fila mantiene la lectura texto + imagen. Los textos largos que
   * acompañan a la figura dejan de quedar atrapados en la columna estrecha y
   * continúan debajo, a ancho completo y con resguardo para los accesos fijos.
   */
  .editorial-story-split > .editorial-story-copy,
  .editorial-key-points > .editorial-key-copy {
    grid-column: 1;
    grid-row: 1;
  }
  .editorial-story-split > .editorial-story-media,
  .editorial-key-points > .editorial-key-media { display: contents; }
  .editorial-story-split > .editorial-story-media > img,
  .editorial-key-points > .editorial-key-media > img {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    justify-self: stretch;
    box-sizing: border-box;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0;
    padding: 8px;
    object-fit: contain;
    background: #e6e3db;
  }
  .editorial-key-points > .editorial-key-media > blockquote {
    grid-column: 1 / -1;
    grid-row: 2;
    align-self: start;
    width: 100%;
    margin: 20px 0 0;
    padding: 24px 76px 24px 24px;
    font-size: clamp(.98rem, 4.1vw, 1.08rem);
    line-height: 1.58;
  }
  .editorial-key-points > .editorial-key-media > figcaption,
  .editorial-story-split > .editorial-story-media > figcaption {
    grid-column: 1 / -1;
    grid-row: 3;
    width: 100%;
    margin: 12px 0 0;
    padding: 0 76px 0 0;
    font-size: .78rem;
    line-height: 1.55;
  }
  .editorial-story-split > .editorial-story-media > figcaption { grid-row: 2; }
  .editorial-story-split > .editorial-story-media > p,
  .testimonial-fragment-module > .editorial-story-media > p {
    grid-column: 1 / -1;
    grid-row: 3;
    width: 100%;
    margin: 10px 0 0;
    padding: 16px 76px 0 0;
    border-top: 1px solid rgba(22,24,18,.16);
    font-size: .9rem;
    line-height: 1.62;
  }
  .legacy-media-row { margin: 38px 0; }
  .legacy-media-row-copy { font-size: .9rem; line-height: 1.58; }
  .legacy-media-row-copy > p { margin-bottom: 12px; }
  .article-content .legacy-media-row > figure,
  .article-content .legacy-media-row > .wp-block-image { padding: 8px; }
  .team-ensemble-watermark { left: -10vw; right: auto; bottom: 4%; }
  .nutrition-wordmark,
  .treatments-wordmark { left: -8vw; }
  .contact-map-city { left: -8vw; top: auto; bottom: -10px; font-size: clamp(6rem, 30vw, 8rem); }
}

@media (max-width: 340px) {
  .editorial-story-split,
  .editorial-key-points,
  .legacy-media-row { grid-template-columns: 1fr; gap: 24px; }
  .editorial-story-split > .editorial-story-copy,
  .editorial-key-points > .editorial-key-copy { grid-column: 1; grid-row: 1; }
  .editorial-story-split > .editorial-story-media > img,
  .editorial-key-points > .editorial-key-media > img { grid-column: 1; grid-row: 2; }
  .editorial-key-points > .editorial-key-media > blockquote { grid-column: 1; grid-row: 3; }
  .editorial-key-points > .editorial-key-media > figcaption { grid-column: 1; grid-row: 4; }
  .editorial-story-split > .editorial-story-media > figcaption { grid-column: 1; grid-row: 3; }
  .editorial-story-split > .editorial-story-media > p,
  .testimonial-fragment-module > .editorial-story-media > p { grid-column: 1; grid-row: 4; }
}

/* Tres accesos Salux: 25 % Clínica, 25 % Studio y 50 % Herbolario. */
.appointment-section { grid-template-columns: 1fr 1fr 2fr; }
.appointment-copy { grid-column: 1 / -1; }

@media (max-width: 1120px) {
  .appointment-section { grid-template-columns: 1fr 1fr; }
  .herbalist-card { grid-column: 1 / -1; min-height: 260px; }
}

@media (max-width: 700px) {
  .appointment-section { grid-template-columns: 1fr; }
  .appointment-copy,
  .herbalist-card { grid-column: auto; }
  .space-card { min-height: 160px; }
  .herbalist-card { min-height: 0; aspect-ratio: 1984 / 800; }
  .herbalist-card img { object-fit: contain; }
  .herbalist-card span { right: 8px; bottom: 8px; padding: 6px 8px; font-size: .68rem; }
}

@media (prefers-reduced-motion: reduce) {
  .space-card,
  .herbalist-card::after,
  .herbalist-card img { transition: none; }
  .space-card:hover,
  .herbalist-card:hover img { transform: none; }
  .herbalist-card:hover::after { transform: translateX(-120%); }
}

/* Inicio: equipo completo en una sola visual de escritorio. */
.home-page .team-showcase {
  min-height: auto;
  padding: clamp(32px, 3vw, 52px) var(--pad) clamp(36px, 3.5vw, 58px);
}
.home-page .team-showcase .section-heading {
  align-items: end;
  margin-bottom: clamp(18px, 2vw, 30px);
}
.home-page .team-showcase .section-heading h2 {
  max-width: 780px;
  font-size: clamp(2rem, 2.8vw, 3.4rem);
  line-height: .96;
}
.home-page .team-showcase .section-heading > p { max-width: 410px; font-size: .98rem; line-height: 1.55; }
.home-page .home-team-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1px;
  max-width: 1600px;
  margin-inline: auto;
}
.home-page .home-team-grid .team-card,
.home-page .home-team-grid .team-card:nth-child(-n+2) {
  grid-column: span 1;
  display: flex;
  min-height: 0;
  grid-template-columns: none;
  grid-template-rows: none;
}
.home-page .home-team-grid .team-card:nth-child(-n+2) .team-card-image,
.home-page .home-team-grid .team-card:nth-child(2) .team-card-image,
.home-page .home-team-grid .team-card-image {
  grid-column: auto;
  grid-row: auto;
  min-height: 0;
  aspect-ratio: 4 / 3.95;
}
.home-page .home-team-grid .team-card p { padding: 15px 15px 5px; font-size: .59rem; letter-spacing: .02em; }
.home-page .home-team-grid .team-card h3,
.home-page .home-team-grid .team-card:nth-child(-n+2) h3 {
  padding: 0 30px 18px 15px;
  font-size: clamp(.92rem, 1.08vw, 1.2rem);
  line-height: 1.05;
}
.home-page .home-team-grid .team-card > span { right: 13px; bottom: 18px; }
.home-page .team-showcase-action { margin-top: 18px; }
.home-page .team-showcase-action .team-all { min-height: 42px; padding-block: 9px; }

/* Dos accesos editoriales discretos antes de las reseñas. */
.home-discovery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  padding: clamp(52px, 5vw, 82px) max(var(--pad), calc((100% - var(--container)) / 2));
  background: #efede7;
}
.home-discovery-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto 1fr;
  column-gap: 30px;
  min-height: 225px;
  padding: clamp(28px, 3vw, 46px);
  overflow: hidden;
  color: var(--ink);
  background: #f7f5f0;
  border: 1px solid rgba(20,20,18,.12);
  transition: transform .28s ease, background-color .28s ease;
}
.home-discovery-card::before { content: ""; position: absolute; top: 0; left: 0; width: 82px; height: 3px; background: var(--green); }
.home-discovery-cases::before { background: var(--pink); }
.home-discovery-card > span { grid-column: 1 / -1; color: var(--green-dark); font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.home-discovery-cases > span { color: var(--pink-dark); }
.home-discovery-card > strong { align-self: end; margin-top: 28px; font-size: clamp(1.65rem, 2.35vw, 2.75rem); line-height: .98; }
.home-discovery-card > p { grid-column: 1; max-width: 470px; margin: 13px 0 0; color: #5f5d58; line-height: 1.55; }
.home-discovery-card > b { grid-column: 2; grid-row: 2 / 4; align-self: end; color: inherit; font-size: .9rem; font-weight: 600; white-space: nowrap; }
.home-discovery-card > b i { margin-left: 12px; font-style: normal; font-size: 1.2em; }
.home-discovery-card:hover { transform: translateY(-4px); background: #fff; }

/* Reseñas verificadas en el perfil de Google: cinco tarjetas compactas por página. */
.google-reviews {
  padding: clamp(66px, 6vw, 104px) max(var(--pad), calc((100% - var(--container)) / 2));
  background: #e2dfd7;
}
.google-reviews-heading { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(280px, .7fr); gap: clamp(36px, 8vw, 130px); align-items: end; margin-bottom: clamp(34px, 4vw, 58px); }
.google-reviews-heading h2 { max-width: 830px; margin: 12px 0 0; font-size: clamp(2.25rem, 4.5vw, 5.1rem); line-height: .93; }
.google-reviews-heading > div:last-child p { margin: 0 0 16px; color: #5e5b55; line-height: 1.6; }
.google-reviews-heading a { display: inline-flex; gap: 12px; padding-bottom: 5px; color: var(--ink); border-bottom: 1px solid var(--green); font-weight: 650; }
.google-reviews-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(12px, 1.15vw, 18px); }
.google-review-card {
  display: flex;
  aspect-ratio: 1;
  min-width: 0;
  flex-direction: column;
  padding: clamp(18px, 1.55vw, 25px);
  background: #f7f5f0;
  border: 1px solid rgba(20,20,18,.12);
  box-shadow: 0 18px 45px rgba(35,32,25,.08);
}
.google-review-card[hidden] { display: none !important; }
.google-review-author { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 10px; align-items: center; }
.google-review-author > span { display: grid; width: 36px; aspect-ratio: 1; place-items: center; color: #fff; background: var(--green-dark); border-radius: 50%; font-size: .64rem; font-weight: 750; letter-spacing: .04em; }
.google-review-author > div { min-width: 0; }
.google-review-author strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .9rem; }
.google-review-author small { display: block; margin-top: 2px; color: #77736b; font-size: .68rem; }
.google-review-author b { grid-column: 1 / -1; color: #f6ad01; font-size: .9rem; letter-spacing: .06em; }
.google-review-card blockquote { display: -webkit-box; margin: 13px 0 11px; overflow: hidden; color: #393732; font-size: clamp(.78rem, .78vw, .91rem); line-height: 1.48; -webkit-box-orient: vertical; -webkit-line-clamp: 7; }
.google-review-card > a { margin-top: auto; color: var(--green-dark); font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.google-reviews-footer { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 28px; align-items: center; margin-top: 28px; }
.google-reviews-footer > p { max-width: 680px; margin: 0; color: #6b675f; font-size: .78rem; line-height: 1.55; }
.google-reviews-pagination { display: flex; gap: 8px; align-items: center; }
.google-reviews-pagination > button,
.google-reviews-pagination div button { display: grid; width: 38px; height: 38px; place-items: center; padding: 0; color: var(--ink); background: transparent; border: 1px solid rgba(20,20,18,.26); border-radius: 50%; cursor: pointer; }
.google-reviews-pagination div { display: flex; gap: 5px; }
.google-reviews-pagination div button { width: 32px; height: 32px; border-color: transparent; font-size: .69rem; }
.google-reviews-pagination button.is-active { color: #fff; background: var(--green-dark); }
.google-reviews-pagination button:disabled { opacity: .35; cursor: default; }

/* Ajustes ópticos individuales del logo decorativo y del encuadre de tratamientos. */
.service-card-clinic .service-card-photo { object-position: var(--photo-position, 56% 50%); }
.service-card-clinic .service-card-wall-logo {
  top: var(--logo-top, 13%);
  left: var(--logo-left, 18%);
  width: var(--logo-width, 19%);
  max-width: 122px;
}
.service-card-clinic-01 { --logo-left: 18%; --logo-top: 13%; --logo-width: 19%; --photo-position: 58% 50%; }
.service-card-clinic-02 { --logo-left: 25%; --logo-top: 12%; --logo-width: 18%; --photo-position: 58% 50%; }
.service-card-clinic-03 { --logo-left: 18%; --logo-top: 14%; --logo-width: 18%; --photo-position: 60% 50%; }
.service-card-clinic-04 { --logo-left: 18%; --logo-top: 14%; --logo-width: 18%; --photo-position: 58% 50%; }
.service-card-clinic-05 { --logo-left: 37%; --logo-top: 14%; --logo-width: 17%; --photo-position: 50% 50%; }
.service-card-clinic-06 { --logo-left: 17%; --logo-top: 14%; --logo-width: 18%; --photo-position: 60% 50%; }
.service-card-clinic-07 { --logo-left: 14%; --logo-top: 13%; --logo-width: 18%; --photo-position: 57% 50%; }
.service-card-clinic-08 { --logo-left: 18%; --logo-top: 14%; --logo-width: 18%; --photo-position: 60% 50%; }
.service-card-clinic-09 { --logo-left: 17%; --logo-top: 14%; --logo-width: 18%; --photo-position: 61% 50%; }
.service-card-clinic-10 { --logo-left: 16%; --logo-top: 14%; --logo-width: 18%; --photo-position: 60% 50%; }
.service-card-clinic-11 { --logo-left: 18%; --logo-top: 13%; --logo-width: 18%; --photo-position: 58% 50%; }
.service-card-clinic-12 { --logo-left: 17%; --logo-top: 13%; --logo-width: 18%; --photo-position: 61% 50%; }
.service-card-clinic-13 { --logo-left: 17%; --logo-top: 13%; --logo-width: 18%; --photo-position: 61% 50%; }
.service-card-clinic-14 { --logo-left: 18%; --logo-top: 13%; --logo-width: 18%; --photo-position: 60% 50%; }
.service-card-clinic-15 { --logo-left: 32%; --logo-top: 13%; --logo-width: 17%; --photo-position: 52% 50%; }
.service-card-clinic-16 { --logo-left: 18%; --logo-top: 13%; --logo-width: 18%; --photo-position: 60% 50%; }
.service-card-clinic-17 { --logo-left: 17%; --logo-top: 13%; --logo-width: 18%; --photo-position: 60% 50%; }
.service-card-clinic-18 { --logo-left: 17%; --logo-top: 13%; --logo-width: 18%; --photo-position: 60% 50%; }
.service-card-clinic-19 { --logo-left: 15%; --logo-top: 13%; --logo-width: 18%; --photo-position: 59% 50%; }

@media (max-width: 1180px) {
  .home-page .home-team-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .google-reviews-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .google-review-card { aspect-ratio: auto; min-height: 300px; }
}

@media (max-width: 760px) {
  .home-page .team-showcase { padding-block: 48px 56px; }
  .home-page .team-showcase .section-heading { align-items: start; margin-bottom: 28px; }
  .home-page .home-team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-page .home-team-grid .team-card-image { aspect-ratio: 4 / 5; }
  .home-discovery { grid-template-columns: 1fr; padding-block: 44px; }
  .home-discovery-card { display: block; min-height: 0; padding: 28px 24px; }
  .home-discovery-card > strong { display: block; margin-top: 22px; }
  .home-discovery-card > b { display: inline-block; margin-top: 22px; }
  .google-reviews { padding-block: 56px; }
  .google-reviews-heading { grid-template-columns: 1fr; gap: 20px; margin-bottom: 30px; }
  .google-reviews-grid { grid-template-columns: 1fr; }
  .google-review-card { min-height: min(88vw, 390px); aspect-ratio: 1; }
  .google-reviews-footer { grid-template-columns: 1fr; }
  .google-reviews-pagination { justify-content: space-between; overflow-x: auto; padding-bottom: 4px; }
  .google-reviews-pagination div { min-width: max-content; }
}

@media (prefers-reduced-motion: reduce) {
  .home-discovery-card { transition: none; }
  .home-discovery-card:hover { transform: none; }
}

/* Iteración 100: navegación compacta, bienvenida ambiental y equipo diagonal. */
.nav-home-item { flex: 0 0 auto; }
.main-nav .nav-home {
  display: grid;
  width: 44px;
  min-width: 44px;
  min-height: 44px;
  place-items: center;
  color: #d8d8d8;
}
.main-nav .nav-home svg {
  width: 18px;
  height: 18px;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-linecap: square;
  stroke-linejoin: miter;
  stroke-width: 1.6;
}
.main-nav .nav-home:hover,
.main-nav .nav-home:focus-visible,
.main-nav .nav-home.is-active { color: var(--green-bright); }
.main-nav-studio .nav-home:hover,
.main-nav-studio .nav-home:focus-visible,
.main-nav-studio .nav-home.is-active { color: var(--pink); }
.is-knowledge-menu .submenu {
  grid-template-columns: minmax(210px, 1fr);
  width: min(270px, 70vw);
}

.home-page .spaces-intro {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-top: clamp(82px, 7vw, 112px);
  padding-bottom: clamp(64px, 6vw, 92px);
  column-gap: clamp(46px, 8vw, 130px);
  row-gap: clamp(18px, 2vw, 30px);
}
.spaces-welcome {
  position: absolute;
  z-index: -1;
  top: clamp(12px, 1vw, 20px);
  right: 0;
  left: 0;
  margin: 0;
  color: rgba(20,20,18,.045);
  filter: blur(1.6px);
  font-size: clamp(5rem, 10.4vw, 10.8rem);
  font-weight: 720;
  letter-spacing: -.065em;
  line-height: .82;
  text-align: center;
  text-transform: uppercase;
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
}
.spaces-greeting {
  margin: 0 0 18px;
  color: #67645d;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.home-page .spaces-copy h2 { max-width: 1040px; text-wrap: balance; }
.home-page .spaces-copy .lead { max-width: 990px; text-wrap: pretty; }
.home-page .space-editorial-grid {
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
  gap: clamp(16px, 2vw, 30px);
  margin-top: 0;
  background: transparent;
  border: 0;
}
.home-page .space-editorial-card {
  position: relative;
  isolation: isolate;
  display: flex;
  min-height: clamp(300px, 23vw, 350px);
  flex-direction: column;
  overflow: hidden;
  background: #f7f5ef;
  border: 1px solid rgba(20,20,18,.13);
  box-shadow: 0 26px 62px rgba(50,45,37,.09);
  transition: background-color .28s ease, border-color .28s ease, box-shadow .28s ease, transform .28s ease;
}
.home-page .space-editorial-card.studio {
  margin-top: 0;
  background: #f5f1ef;
}
.home-page .space-editorial-card::after {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: 88px;
  height: 4px;
  content: "";
  background: var(--green);
}
.home-page .space-editorial-card.studio::after { background: var(--pink); }
.space-card-watermark {
  position: absolute;
  z-index: -1;
  right: -9%;
  bottom: -33%;
  width: clamp(390px, 66%, 660px);
  max-width: none;
  height: auto;
  opacity: .08;
  object-fit: contain;
  pointer-events: none;
  transform: rotate(-8deg);
}
.space-editorial-card.studio .space-card-watermark {
  right: -17%;
  bottom: 1%;
  width: 118%;
  filter: invert(1) grayscale(1) contrast(1.8);
  mix-blend-mode: multiply;
  transform: rotate(-5deg);
}
.home-page .space-editorial-card > span,
.home-page .space-editorial-card > strong,
.home-page .space-editorial-card > p,
.home-page .space-editorial-card > b { position: relative; z-index: 1; }
.home-page .space-editorial-card > strong {
  max-width: 12ch;
  margin-top: clamp(28px, 3vw, 42px);
  font-size: clamp(2rem, 2.7vw, 3.1rem);
  text-wrap: balance;
}
.home-page .space-editorial-card > p {
  max-width: 58ch;
  margin: 0;
  color: #4f4d48;
  font-size: clamp(.96rem, 1.05vw, 1.08rem);
  line-height: 1.62;
  text-wrap: pretty;
}
.home-page .space-editorial-card > b { margin-top: auto; padding-top: 20px; }
.home-page .space-editorial-card:hover,
.home-page .space-editorial-card:focus-visible {
  color: var(--ink);
  background: #fff;
  border-color: rgba(78,108,0,.38);
  box-shadow: 0 30px 72px rgba(50,45,37,.13);
  transform: translateY(-5px);
}
.home-page .space-editorial-card.studio:hover,
.home-page .space-editorial-card.studio:focus-visible { border-color: rgba(168,11,97,.35); }
.home-page .space-editorial-card:hover p,
.home-page .space-editorial-card:focus-visible p { color: #3f3d39; }
.home-page .space-editorial-card:hover span,
.home-page .space-editorial-card:hover b,
.home-page .space-editorial-card:focus-visible span,
.home-page .space-editorial-card:focus-visible b { color: var(--green-dark); }
.home-page .space-editorial-card.studio:hover span,
.home-page .space-editorial-card.studio:hover b,
.home-page .space-editorial-card.studio:focus-visible span,
.home-page .space-editorial-card.studio:focus-visible b { color: var(--pink-dark); }

.home-page .team-showcase {
  display: grid;
  grid-template-columns: minmax(220px, .26fr) minmax(0, 1.74fr);
  grid-template-rows: auto minmax(0, 1fr);
  column-gap: clamp(30px, 3vw, 58px);
  align-items: stretch;
  min-height: 700px;
  padding: clamp(58px, 5vw, 88px) max(24px, calc((100% - 1720px) / 2)) clamp(54px, 5vw, 86px);
  background: #080908;
}
.team-collage-heading { display: contents; }
.team-collage-heading > div { grid-column: 1; grid-row: 1; align-self: start; }
.team-collage-heading .label { margin-bottom: 18px; }
.team-collage-heading h2 {
  margin: 0;
  font-size: clamp(3rem, 4.8vw, 6rem);
  line-height: .93;
  letter-spacing: -.065em;
  text-transform: uppercase;
}
.team-collage-heading h2 span {
  display: inline-block;
  padding-bottom: 5px;
  border-bottom: 4px solid currentColor;
}
.team-collage-heading > p {
  grid-column: 2;
  grid-row: 1;
  width: min(100%, 480px);
  justify-self: end;
  align-self: end;
  margin: 0 1.8% 30px 0;
  color: #aaa;
  font-size: clamp(.94rem, 1vw, 1.06rem);
  line-height: 1.6;
}
.home-team-collage {
  grid-column: 2;
  grid-row: 2;
  display: flex;
  min-width: 0;
  height: clamp(470px, 34vw, 610px);
  align-items: stretch;
  padding: 0 1.6%;
  overflow: hidden;
}
.team-collage-person {
  position: relative;
  min-width: 0;
  flex: 1 1 0;
  margin-left: -1.7%;
}
.team-collage-person:first-child { margin-left: 0; }
.team-collage-person > a {
  display: flex;
  height: 100%;
  flex-direction: column;
  overflow: hidden;
  color: var(--ink);
  background: #f4f4f1;
  clip-path: polygon(15% 0,100% 0,85% 100%,0 100%);
}
.team-collage-person:nth-child(even) > a { clip-path: polygon(13% 0,100% 0,87% 100%,0 100%); }
.team-collage-person figure {
  min-height: 0;
  flex: 1 1 auto;
  margin: 0;
  overflow: hidden;
  background: #c9c9c5;
}
.team-collage-person img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 22%;
  filter: grayscale(1) contrast(1.04);
  transform: scale(1.08);
  transition: filter .35s ease, transform .55s cubic-bezier(.2,.72,.2,1);
}
.team-collage-person:nth-child(2) img { object-position: center 18%; }
.team-collage-person:nth-child(3) img { object-position: center 16%; }
.team-collage-person:nth-child(4) img { object-position: center 13%; }
.team-collage-person:nth-child(5) img { object-position: center 20%; }
.team-collage-person:nth-child(6) img { object-position: center 34%; }
.team-collage-person > a > div {
  position: relative;
  flex: 0 0 104px;
  padding: 16px clamp(18px, 1.45vw, 28px) 16px clamp(24px, 2vw, 36px);
  background: #f4f4f1;
}
.team-collage-person:nth-child(odd) > a > div { order: -1; }
.team-collage-person > a > div span {
  display: block;
  margin-bottom: 7px;
  overflow: hidden;
  color: #686861;
  font-size: clamp(.54rem, .52vw, .64rem);
  font-weight: 650;
  letter-spacing: .035em;
  line-height: 1.25;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}
.team-collage-person > a > div h3 {
  max-width: 13ch;
  margin: 0;
  font-size: clamp(.92rem, 1.05vw, 1.25rem);
  line-height: 1.02;
  letter-spacing: -.035em;
  text-wrap: balance;
}
.team-collage-person > a > div b {
  position: absolute;
  right: clamp(22px, 1.7vw, 32px);
  bottom: 17px;
  color: var(--green-dark);
  font-size: 1.15rem;
  transition: transform .25s ease;
}
.team-collage-person:nth-child(2) > a > div b { color: var(--pink-dark); }
.team-collage-person > a:hover img,
.team-collage-person > a:focus-visible img { filter: grayscale(0) contrast(1.01); transform: scale(1.13); }
.team-collage-person > a:hover div b,
.team-collage-person > a:focus-visible div b { transform: translate(3px,-3px); }
.team-collage-person > a:focus-visible { outline: 4px solid var(--green-bright); outline-offset: -5px; }
.team-collage-person:nth-child(2) > a:focus-visible { outline-color: var(--pink); }
.home-page .team-showcase-action {
  grid-column: 1;
  grid-row: 2;
  align-self: end;
  margin: 0 0 6px;
}

@media (min-width: 1181px) {
  .contact-rail-inner,
  .header-brand-row .header-inner {
    width: 100%;
    max-width: none;
    padding-left: var(--pad);
    padding-right: clamp(12px, 1.25vw, 24px);
  }
  .main-nav > ul > li.nav-home-item { padding-right: clamp(8px, .72vw, 13px); padding-left: 0; }
  .main-nav > ul > li.nav-home-item + li::before { display: none; }
}

@media (max-width: 1180px) {
  .main-nav .nav-home { width: 54px; min-width: 54px; min-height: 54px; }
  .main-nav .nav-home svg { width: 20px; height: 20px; }
  .is-knowledge-menu .submenu { width: 100%; }
  .home-page .team-showcase {
    display: block;
    min-height: 0;
    padding: 58px var(--pad) 64px;
  }
  .team-collage-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .7fr); gap: 28px; align-items: end; margin-bottom: 38px; }
  .team-collage-heading > div,
  .team-collage-heading > p { grid-column: auto; grid-row: auto; width: auto; justify-self: auto; margin: 0; }
  .team-collage-heading h2 { font-size: clamp(3rem, 7vw, 5.25rem); }
  .home-team-collage {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    height: auto;
    gap: 2px;
    padding: 0;
    overflow: visible;
  }
  .team-collage-person { min-height: 390px; margin: 0; }
  .team-collage-person > a,
  .team-collage-person:nth-child(even) > a { clip-path: polygon(8% 0,100% 0,92% 100%,0 100%); }
  .team-collage-person > a > div { flex-basis: 96px; }
  .home-page .team-showcase-action { margin-top: 28px; }
}

@media (max-width: 760px) {
  .home-page .spaces-intro { padding-top: 72px; padding-bottom: 58px; }
  .spaces-welcome { top: 22px; right: auto; left: 50%; width: max-content; font-size: clamp(3rem, 15.2vw, 5.4rem); transform: translateX(-50%); }
  .home-page .spaces-intro .section-kicker { margin-bottom: 22px; }
  .home-page .space-editorial-grid { grid-column: 1; grid-template-columns: 1fr; gap: 16px; margin-top: 0; }
  .home-page .space-editorial-card { min-height: 320px; }
  .space-card-watermark { right: -24%; bottom: -22%; width: 110%; }
  .space-editorial-card.studio .space-card-watermark { right: -28%; width: 145%; }

  .home-page .team-showcase { padding: 50px 16px 58px; }
  .team-collage-heading { grid-template-columns: 1fr; gap: 22px; }
  .team-collage-heading h2 { font-size: clamp(3rem, 15vw, 4.8rem); }
  .team-collage-heading > p { max-width: 520px; }
  .home-team-collage { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 4px; }
  .team-collage-person { min-height: min(118vw, 500px); }
  .team-collage-person > a,
  .team-collage-person:nth-child(even) > a { clip-path: polygon(7% 0,100% 0,93% 100%,0 100%); }
  .team-collage-person > a > div { flex-basis: 102px; padding: 15px 24px 15px 27px; }
  .team-collage-person > a > div span { font-size: .57rem; }
  .team-collage-person > a > div h3 { font-size: clamp(.96rem, 4.3vw, 1.25rem); }
  .team-collage-person > a > div b { right: 24px; }
}

@media (max-width: 340px) {
  .home-team-collage { grid-template-columns: 1fr; gap: 14px; }
  .team-collage-person { min-height: 460px; }
}

@media (prefers-reduced-motion: reduce) {
  .home-page .space-editorial-card,
  .team-collage-person img,
  .team-collage-person > a > div b { transition: none; }
  .home-page .space-editorial-card:hover,
  .home-page .space-editorial-card:focus-visible,
  .team-collage-person > a:hover img,
  .team-collage-person > a:focus-visible img { transform: none; }
}

/* Inicio · galería de equipo más ligera, abierta y con profundidad sutil. */
.home-page .team-showcase {
  --team-light-x: 50%;
  --team-light-y: 50%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, .62fr);
  grid-template-rows: auto auto auto;
  column-gap: clamp(50px, 8vw, 150px);
  min-height: 0;
  padding: clamp(66px, 6vw, 104px) max(22px, calc((100% - 1740px) / 2)) clamp(70px, 6.5vw, 112px);
  overflow: hidden;
  background: #070807;
}
.team-collage-heading { display: contents; }
.team-collage-heading > div { grid-column: 1; grid-row: 1; }
.team-collage-heading > p {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  justify-self: end;
  width: min(100%, 470px);
  margin: 0 0 7px;
  color: #aaa;
  font-size: clamp(.9rem, .95vw, 1.02rem);
  line-height: 1.7;
}
.team-collage-heading h2 {
  max-width: 820px;
  margin: 0;
  font-size: clamp(2.55rem, 3.65vw, 4.55rem);
  line-height: 1.02;
  letter-spacing: -.025em;
  text-transform: none;
}
.team-collage-heading h2 span { padding-bottom: 7px; border-bottom-width: 2px; }
.home-team-collage {
  position: relative;
  isolation: isolate;
  grid-column: 1 / -1;
  grid-row: 2;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(11px, 1.25vw, 22px);
  width: 100%;
  height: auto;
  margin-top: clamp(42px, 4.5vw, 72px);
  padding: 18px 7px 28px;
  overflow: visible;
  perspective: 1200px;
}
.home-team-collage::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -110px -7vw;
  background: radial-gradient(circle at var(--team-light-x) var(--team-light-y), rgba(145,190,26,.13), rgba(145,190,26,.025) 24%, transparent 48%);
  pointer-events: none;
  transition: background-position .2s ease;
}
.team-collage-person {
  --team-tilt: 0deg;
  --team-offset: 0px;
  --team-lean-x: 0deg;
  --team-lean-y: 0deg;
  position: relative;
  z-index: 1;
  min-width: 0;
  min-height: clamp(420px, 27vw, 490px);
  margin: 0;
  transform: translateY(var(--team-offset)) rotate(var(--team-tilt)) rotateX(var(--team-lean-x)) rotateY(var(--team-lean-y));
  transform-style: preserve-3d;
  transition: transform .5s cubic-bezier(.2,.75,.2,1), z-index 0s .2s;
}
.team-collage-person:nth-child(1) { --team-tilt: -1.4deg; --team-offset: 12px; }
.team-collage-person:nth-child(2) { --team-tilt: .8deg; --team-offset: -7px; }
.team-collage-person:nth-child(3) { --team-tilt: -1deg; --team-offset: 8px; }
.team-collage-person:nth-child(4) { --team-tilt: 1.25deg; --team-offset: -10px; }
.team-collage-person:nth-child(5) { --team-tilt: -.65deg; --team-offset: 7px; }
.team-collage-person:nth-child(6) { --team-tilt: 1.35deg; --team-offset: -4px; }
.team-collage-person > a,
.team-collage-person:nth-child(even) > a {
  position: relative;
  display: flex;
  height: 100%;
  flex-direction: column;
  overflow: hidden;
  color: var(--ink);
  background: #f2f1ed;
  clip-path: polygon(7% 0,100% 0,93% 100%,0 100%);
  box-shadow: 0 18px 48px rgba(0,0,0,.22);
  transition: box-shadow .45s ease, background .3s ease;
}
.team-collage-person:nth-child(even) > a { clip-path: polygon(0 0,93% 0,100% 100%,7% 100%); }
.team-collage-person > a::after {
  content: "";
  position: absolute;
  z-index: 4;
  inset: -35% -120%;
  background: linear-gradient(112deg, transparent 42%, rgba(255,255,255,.22) 49%, transparent 56%);
  transform: translateX(-34%);
  transition: transform .85s cubic-bezier(.2,.72,.2,1);
  pointer-events: none;
}
.team-collage-person figure { min-height: 0; flex: 1 1 auto; margin: 0; overflow: hidden; background: #c9c9c5; }
.team-collage-person img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  filter: grayscale(1) contrast(1.04);
  transform: scale(1.045);
  transition: filter .45s ease, transform .7s cubic-bezier(.2,.72,.2,1);
}
.team-collage-person:nth-child(2) img { object-position: center 18%; }
.team-collage-person:nth-child(3) img { object-position: center 16%; }
.team-collage-person:nth-child(4) img { object-position: center 13%; }
.team-collage-person:nth-child(5) img { object-position: center 20%; }
.team-collage-person:nth-child(6) img { object-position: center 34%; }
.team-collage-person > a > div,
.team-collage-person:nth-child(odd) > a > div {
  position: relative;
  order: 0;
  flex: 0 0 132px;
  padding: 21px clamp(24px, 1.75vw, 34px) 24px clamp(27px, 2vw, 39px);
  background: #f2f1ed;
}
.team-collage-person > a > div span {
  display: block;
  min-height: 2.65em;
  margin-bottom: 12px;
  overflow: visible;
  color: #686861;
  font-size: clamp(.54rem, .52vw, .63rem);
  font-weight: 650;
  letter-spacing: .035em;
  line-height: 1.35;
  text-overflow: clip;
  text-transform: uppercase;
  white-space: normal;
}
.team-collage-person > a > div h3 {
  max-width: 14ch;
  margin: 0;
  font-size: clamp(.9rem, .95vw, 1.12rem);
  line-height: 1.08;
  letter-spacing: -.025em;
  text-wrap: balance;
}
.team-collage-person > a > div b { right: clamp(24px, 1.7vw, 32px); bottom: 25px; }
.team-collage-person:hover,
.team-collage-person:focus-within { z-index: 3; transform: translateY(-9px) rotate(0) rotateX(var(--team-lean-x)) rotateY(var(--team-lean-y)); transition-delay: 0s; }
.team-collage-person > a:hover,
.team-collage-person > a:focus-visible { background: #fff; box-shadow: 0 28px 70px rgba(0,0,0,.42); }
.team-collage-person > a:hover::after,
.team-collage-person > a:focus-visible::after { transform: translateX(68%); }
.team-collage-person > a:hover img,
.team-collage-person > a:focus-visible img { filter: grayscale(.08) contrast(1.01); transform: scale(1.085); }
.home-page .team-showcase-action { grid-column: 1 / -1; grid-row: 3; justify-self: start; margin: 30px 0 0; }

/* Pilates terapéutico · la fotografía renovada iguala la altura de su pareja de galería. */
.studio-content-page .legacy-content .elementor-column:has(img.pilates-therapy-gallery-image),
.studio-content-page .legacy-content .elementor-widget-wrap:has(img.pilates-therapy-gallery-image),
.studio-content-page .legacy-content .elementor-widget:has(img.pilates-therapy-gallery-image),
.studio-content-page .legacy-content .elementor-widget:has(img.pilates-therapy-gallery-image) > div { height: 100%; }
.studio-content-page .legacy-content img.pilates-therapy-gallery-image {
  height: 100%;
  min-height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
}

@media (max-width: 1180px) {
  .home-page .team-showcase { display: block; padding: 62px var(--pad) 72px; }
  .team-collage-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .72fr); gap: 34px; align-items: end; }
  .team-collage-heading > div,
  .team-collage-heading > p { grid-column: auto; grid-row: auto; width: auto; justify-self: auto; margin: 0; }
  .team-collage-heading h2 { font-size: clamp(2.6rem, 6vw, 4.3rem); }
  .home-team-collage { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 18px; margin-top: 46px; padding: 0; }
  .team-collage-person { min-height: 440px; transform: none; }
  .team-collage-person:hover,
  .team-collage-person:focus-within { transform: translateY(-6px); }
  .home-page .team-showcase-action { margin-top: 34px; }
}

@media (max-width: 760px) {
  .home-page .team-showcase { padding: 52px 16px 62px; }
  .team-collage-heading { grid-template-columns: 1fr; gap: 22px; }
  .team-collage-heading h2 { max-width: 420px; font-size: clamp(2.45rem, 11vw, 3.5rem); }
  .team-collage-heading > p { max-width: 500px; font-size: .92rem; }
  .home-team-collage { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 10px; margin-top: 36px; }
  .team-collage-person { min-height: min(88vw, 400px); }
  .team-collage-person > a,
  .team-collage-person:nth-child(even) > a { clip-path: polygon(5% 0,100% 0,95% 100%,0 100%); }
  .team-collage-person:nth-child(even) > a { clip-path: polygon(0 0,95% 0,100% 100%,5% 100%); }
  .team-collage-person > a > div,
  .team-collage-person:nth-child(odd) > a > div { flex-basis: 126px; padding: 18px 23px 22px 27px; }
  .team-collage-person > a > div span { min-height: 3.8em; margin-bottom: 9px; font-size: .54rem; }
  .team-collage-person > a > div h3 { font-size: clamp(.88rem, 4vw, 1.08rem); }
  .team-collage-person > a > div b { right: 22px; bottom: 22px; }
}

@media (max-width: 520px) {
  .home-team-collage { grid-template-columns: 1fr; gap: 18px; }
  .team-collage-person { min-height: min(122vw, 500px); }
}

@media (prefers-reduced-motion: reduce) {
  .home-team-collage::before { display: none; }
  .team-collage-person,
  .team-collage-person > a,
  .team-collage-person > a::after,
  .team-collage-person img { transition: none; }
  .team-collage-person,
  .team-collage-person:hover,
  .team-collage-person:focus-within { transform: none; }
}

/* Inicio · reseñas editoriales en carrusel manual. */
.google-reviews {
  position: relative;
  isolation: isolate;
  padding: clamp(68px, 6.5vw, 112px) max(var(--pad), calc((100% - var(--container)) / 2)) clamp(70px, 7vw, 118px);
  overflow: hidden;
  background: #e3e0d8;
}
.google-reviews::before {
  content: "EXPERIENCIAS";
  position: absolute;
  z-index: -1;
  top: clamp(215px, 22vw, 330px);
  left: 50%;
  width: max-content;
  transform: translateX(-50%);
  color: transparent;
  font-size: clamp(5.8rem, 12.2vw, 12rem);
  font-weight: 750;
  line-height: .8;
  letter-spacing: -.06em;
  -webkit-text-stroke: 1.5px rgba(77,108,0,.12);
  pointer-events: none;
}
.google-reviews-heading {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
  gap: clamp(42px, 8vw, 136px);
  align-items: end;
  margin-bottom: clamp(44px, 5vw, 76px);
}
.google-reviews-heading h2 {
  max-width: 760px;
  margin: 12px 0 0;
  font-size: clamp(2.35rem, 3.65vw, 4.35rem);
  line-height: .96;
  letter-spacing: -.052em;
  text-wrap: balance;
}
.google-reviews-summary { display: flex; align-items: flex-start; flex-direction: column; }
.google-reviews-summary > strong { color: #d38f00; font-size: clamp(1.18rem, 1.5vw, 1.5rem); letter-spacing: .1em; line-height: 1; }
.google-reviews-summary > span { max-width: 380px; margin-top: 12px; color: #5e5b55; font-size: .94rem; line-height: 1.55; }
.google-reviews-summary > a { margin-top: 20px; }
.google-reviews-grid {
  --review-card-height: clamp(430px, 29vw, 490px);
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(9px, 1.15vw, 18px);
  align-items: start;
  padding: 6px 0 34px;
  scroll-behavior: smooth;
}
.google-review-card {
  --review-offset: 0px;
  position: relative;
  display: flex;
  min-width: 0;
  min-height: var(--review-card-height);
  aspect-ratio: auto;
  flex-direction: column;
  padding: clamp(17px, 1.55vw, 25px);
  overflow: hidden;
  color: var(--ink);
  background: #f8f6f1;
  border: 1px solid rgba(77,108,0,.27);
  box-shadow: 0 16px 38px rgba(45,42,33,.1);
  transform: translateY(var(--review-offset));
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.google-review-card::before {
  content: "“";
  position: absolute;
  top: -18px;
  right: 10px;
  color: rgba(77,108,0,.12);
  font-family: Georgia, serif;
  font-size: clamp(5.5rem, 7vw, 8.2rem);
  font-weight: 700;
  line-height: 1;
  pointer-events: none;
}
.google-review-card::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 4px;
  background: var(--green);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
}
.google-review-card.is-lowered-review { --review-offset: 19px; }
.google-review-card.is-featured-review {
  min-height: clamp(465px, 31.4vw, 529px);
  color: #fffdf5;
  background: var(--green-dark);
  border-color: var(--green-dark);
  box-shadow: 0 24px 56px rgba(38,51,8,.24);
}
.google-review-card.is-featured-review::before { color: rgba(255,255,255,.13); }
.google-review-card.is-featured-review::after { background: #d5f26f; }
.google-review-card:hover,
.google-review-card:focus-within {
  border-color: rgba(77,108,0,.62);
  box-shadow: 0 25px 56px rgba(45,42,33,.19);
  transform: translateY(calc(var(--review-offset) - 6px));
}
.google-review-card:hover::after,
.google-review-card:focus-within::after { transform: scaleX(1); }
.google-review-author { position: relative; z-index: 1; grid-template-columns: 38px minmax(0, 1fr); gap: 11px; }
.google-review-author > span { width: 38px; background: var(--green-dark); }
.google-review-author strong { font-size: clamp(.8rem, .84vw, .92rem); }
.google-review-author small { font-size: .72rem; }
.google-review-author b { margin-top: 5px; font-size: .93rem; }
.google-review-card blockquote {
  position: relative;
  z-index: 1;
  display: block;
  margin: 17px 0 20px;
  overflow: visible;
  color: #393732;
  font-size: max(14px, .86vw);
  line-height: 1.55;
  -webkit-line-clamp: unset;
}
.google-review-card > a { position: relative; z-index: 1; margin-top: auto; font-size: .72rem; }
.google-review-card.is-featured-review .google-review-author > span { color: var(--green-dark); background: #fffdf5; }
.google-review-card.is-featured-review .google-review-author small,
.google-review-card.is-featured-review blockquote,
.google-review-card.is-featured-review > a { color: #fffdf5; }
.google-review-card.is-featured-review .google-review-author b { color: #ffd66b; }
.google-reviews-footer { position: relative; z-index: 1; margin-top: 20px; }
.google-reviews-pagination { display: flex; gap: 12px; align-items: center; }
.google-reviews-pagination > button {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  padding: 0;
  color: var(--ink);
  background: rgba(255,255,255,.3);
  border: 1px solid rgba(20,20,18,.26);
  border-radius: 50%;
  cursor: pointer;
  transition: color .25s ease, background .25s ease, border-color .25s ease, transform .25s ease;
}
.google-reviews-pagination > button:not(:disabled):hover { color: #fff; background: var(--green-dark); border-color: var(--green-dark); transform: translateY(-2px); }
.google-reviews-pagination > button:disabled { opacity: .35; cursor: default; }
.google-reviews-pagination output { min-width: 66px; color: var(--green-dark); font-size: .77rem; font-weight: 750; letter-spacing: .11em; text-align: center; }

@media (max-width: 1180px) and (min-width: 901px) {
  .google-reviews { padding-inline: 28px; }
  .google-reviews-grid { --review-card-height: clamp(455px, 44vw, 520px); gap: 8px; }
  .google-review-card { padding: 16px 14px; }
  .google-review-card.is-featured-review { min-height: clamp(491px, 47.5vw, 562px); }
  .google-review-author { grid-template-columns: 32px minmax(0, 1fr); gap: 8px; }
  .google-review-author > span { width: 32px; }
  .google-review-author strong { font-size: .78rem; }
  .google-review-card blockquote { font-size: 14px; line-height: 1.48; }
}

@media (max-width: 900px) {
  .google-reviews { padding: 62px var(--pad) 74px; }
  .google-reviews-heading { grid-template-columns: 1fr; gap: 26px; margin-bottom: 40px; }
  .google-reviews-heading h2 { max-width: 680px; }
  .google-reviews-grid {
    display: flex;
    gap: 16px;
    margin-right: calc(var(--pad) * -1);
    padding-right: var(--pad);
    padding-bottom: 40px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    scrollbar-color: var(--green-dark) transparent;
  }
  .google-review-card { flex: 0 0 calc((100% - 24px) / 2.25); min-height: 430px; scroll-snap-align: start; }
  .google-review-card.is-featured-review { min-height: 465px; }
  .google-reviews-footer { grid-template-columns: 1fr auto; }
}

@media (max-width: 600px) {
  .google-reviews { padding: 54px 20px 66px; }
  .google-reviews::before { top: 255px; font-size: 5.4rem; }
  .google-reviews-heading h2 { font-size: clamp(2.3rem, 11vw, 3.35rem); }
  .google-reviews-summary > span { font-size: .9rem; }
  .google-reviews-grid { margin-right: -20px; padding-right: 20px; }
  .google-review-card { flex-basis: 87%; min-height: 440px; padding: 23px; }
  .google-review-card.is-featured-review { min-height: 475px; }
  .google-review-card blockquote { font-size: 14px; }
  .google-reviews-footer { grid-template-columns: 1fr; gap: 22px; }
  .google-reviews-pagination { justify-content: flex-start; overflow: visible; }
}

/* Tratamientos: transición editorial compacta entre la apertura y el catálogo. */
.treatment-hub-page .directory-intro {
  grid-template-columns: 180px minmax(0, 1fr);
  gap: clamp(34px, 5vw, 76px);
  padding-top: clamp(48px, 4.5vw, 70px);
  padding-bottom: clamp(50px, 5vw, 76px);
  border-bottom: 0;
}
.treatment-hub-page .directory-intro > .section-kicker {
  min-height: 100%;
  padding: 4px clamp(24px, 3vw, 44px) 4px 0;
  border-right: 1px solid var(--line-dark);
}
.treatment-hub-page .directory-intro > .section-kicker span {
  margin-bottom: 16px;
  font-size: 1.35rem;
}
.treatment-hub-page .directory-intro-main {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr);
  align-items: end;
  gap: clamp(34px, 5vw, 82px);
}
.treatment-hub-page .directory-intro h2 { margin: 0; }
.treatment-hub-page .directory-intro .lead { max-width: 560px; margin: 0 0 3px; }
.treatment-hub-page .directory-intro-explanation {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr);
  align-items: start;
  gap: clamp(28px, 5vw, 76px);
  margin-top: -4px;
  padding: 24px 26px;
  background: linear-gradient(90deg, rgba(143,189,24,.09), rgba(143,189,24,.015));
  border-top: 1px solid rgba(86,112,18,.38);
  border-bottom: 1px solid rgba(86,112,18,.18);
}
.treatment-hub-page .directory-intro-explanation strong { color: var(--green-dark); font-size: .78rem; line-height: 1.55; letter-spacing: .055em; text-transform: uppercase; }
.treatment-hub-page .directory-intro-explanation strong i { margin: 0 5px; font-style: normal; }
.treatment-hub-page .directory-intro-explanation p { max-width: 760px; margin: 0; color: #454545; font-size: .93rem; line-height: 1.65; }
.treatment-hub-page .treatment-catalog { border-top: 1px solid #242424; }

@media (max-width: 980px) {
  .treatment-hub-page .directory-intro { grid-template-columns: 140px minmax(0, 1fr); }
  .treatment-hub-page .directory-intro-main { grid-template-columns: 1fr; gap: 22px; }
  .treatment-hub-page .directory-intro-explanation { grid-template-columns: 1fr; gap: 10px; margin-top: 4px; }
}

@media (max-width: 760px) {
  .treatment-hub-page .directory-intro { grid-template-columns: 1fr; width: calc(100% - 40px); gap: 24px; padding-top: 44px; padding-bottom: 48px; }
  .treatment-hub-page .directory-intro > .section-kicker { min-height: 0; padding: 0 0 18px; border-right: 0; border-bottom: 1px solid var(--line-dark); }
  .treatment-hub-page .directory-intro > .section-kicker span { margin-bottom: 8px; font-size: 1rem; }
  .treatment-hub-page .directory-intro-explanation { padding: 20px 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .google-reviews-grid { scroll-behavior: auto; }
  .google-review-card,
  .google-review-card::after,
  .google-reviews-pagination > button { transition: none; }
  .google-review-card:hover,
  .google-review-card:focus-within { transform: translateY(var(--review-offset)); }
}

/* Iteración 105: más aire en cabecera, cierres de sección y palabra ambiental del test. */
@media (min-width: 1440px) {
  .contact-rail-inner,
  .header-brand-row .header-inner {
    padding-right: clamp(64px, 4.6vw, 88px);
    padding-left: clamp(64px, 4.6vw, 88px);
  }
  .header-brand-row .brand-primary-clinic { width: 260px !important; height: 70px !important; }
  .header-brand-row .brand-primary-studio { width: 250px !important; height: 72px !important; }
  .header-brand-row .universe-switch {
    width: 224px;
    min-width: 224px;
    margin-left: clamp(38px, 2.55vw, 50px);
    padding-right: 14px;
    padding-left: 18px;
  }
  .header-brand-row .universe-switch-logo { height: 70px; }
}

@media (min-width: 1051px) {
  body.team-hub-page .team-ensemble-hero { padding-bottom: clamp(98px, 6vw, 116px); }
}

.nutrition-test-layout {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.nutrition-test-layout::before {
  position: absolute;
  z-index: 0;
  left: -.08em;
  bottom: -.06em;
  content: "TEST DE ALIMENTACIÓN";
  color: rgba(77,108,0,.045);
  font-size: clamp(6.5rem, 10.8vw, 13.5rem);
  font-weight: 750;
  line-height: .78;
  letter-spacing: -.075em;
  white-space: nowrap;
  text-transform: uppercase;
  pointer-events: none;
}
.nutrition-test-layout > * { position: relative; z-index: 1; }

.service-card-clinic .service-card-wall-logo {
  inset: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  object-fit: cover;
  opacity: 1;
}

@media (max-width: 760px) {
  .nutrition-test-layout::before { left: -.14em; bottom: .04em; font-size: clamp(5rem, 23vw, 8rem); }
}

/* TECAR: infografía clínica y lectura recompuesta. */
.tecar-content-page .inner-hero-media img { object-position: 52% center; }
.tecar-explainer {
  display: grid;
  grid-template-columns: minmax(350px, .82fr) minmax(520px, 1.18fr);
  width: min(calc(100% - (var(--pad) * 2)), 1420px);
  margin: clamp(54px, 7vw, 104px) auto 0;
  overflow: hidden;
  background: #e9e6de;
  border-top: 1px solid rgba(16, 23, 10, .24);
}
.tecar-explainer-copy { padding: clamp(38px, 5vw, 76px); }
.tecar-explainer-copy .label { margin: 0 0 28px; color: var(--green-dark); }
.tecar-explainer-copy h2 {
  max-width: 650px;
  margin: 0 0 24px;
  font-size: clamp(2.1rem, 3.2vw, 4.1rem);
  line-height: .98;
  letter-spacing: -.055em;
  text-wrap: balance;
}
.tecar-explainer-lead { max-width: 620px; margin: 0 0 36px; color: #3e423a; font-size: clamp(1.04rem, 1.25vw, 1.22rem); line-height: 1.58; }
.tecar-explainer-steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 0; background: rgba(15, 24, 10, .16); list-style: none; }
.tecar-explainer-steps li { display: grid; grid-template-columns: 34px 1fr; gap: 12px; min-height: 164px; padding: 20px; background: #f4f1eb; }
.tecar-explainer-steps li > span { padding-top: 2px; color: var(--green-dark); font-size: .72rem; font-weight: 760; letter-spacing: .08em; }
.tecar-explainer-steps strong { display: block; margin-bottom: 8px; color: var(--ink); font-size: 1rem; line-height: 1.15; }
.tecar-explainer-steps p { margin: 0; color: #55594f; font-size: .88rem; line-height: 1.48; }
.tecar-explainer-note { margin: 20px 0 0; color: #62665b; font-size: .78rem; line-height: 1.45; }
.tecar-explainer-visual { position: relative; min-height: 100%; margin: 0; background: #f8f5ef; }
.tecar-explainer-visual picture { display: block; width: 100%; height: 100%; }
.tecar-explainer-visual img { display: block; width: 100%; height: 100%; min-height: 660px; object-fit: contain; object-position: center; }
.tecar-explainer-visual figcaption { position: absolute; right: 18px; bottom: 18px; left: 18px; padding: 12px 16px; color: #f7f6f1; background: rgba(10, 25, 16, .88); font-size: .72rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.tecar-content-page .content-shell { padding-top: clamp(56px, 6vw, 86px); }
.tecar-content-page .legacy-content .elementor-widget-image { display: none; }
.tecar-content-page .legacy-content .elementor > .elementor-top-section:has(img) { padding: 0; background: transparent; border-top: 0; }
.tecar-content-page .legacy-content .elementor > .elementor-top-section:has(img)::before { display: none; }

@media (max-width: 1120px) {
  .tecar-explainer { grid-template-columns: 1fr; }
  .tecar-explainer-visual { min-height: 0; }
  .tecar-explainer-visual picture { height: auto; }
  .tecar-explainer-visual img { min-height: 0; aspect-ratio: 3 / 2; }
}

@media (max-width: 760px) {
  .tecar-explainer { width: calc(100% - 28px); margin-top: 28px; }
  .tecar-explainer-copy { padding: 34px 22px 28px; }
  .tecar-explainer-copy .label { margin-bottom: 20px; }
  .tecar-explainer-copy h2 { font-size: clamp(2rem, 10vw, 3rem); }
  .tecar-explainer-steps { grid-template-columns: 1fr; }
  .tecar-explainer-steps li { min-height: 0; padding: 18px; }
  .tecar-explainer-visual figcaption { position: static; margin: 0; }
}

/* Interior-page integrity: migrated Elementor blocks must never reserve empty columns. */
.legacy-content .legacy-section-empty { display: none !important; margin: 0 !important; padding: 0 !important; }
.legacy-content .elementor > .elementor-top-section:not(:has(img, h2, h3, h4, p, li, blockquote, table, iframe, video, .elementor-button)) { display: none !important; margin: 0 !important; padding: 0 !important; }
.legacy-content .elementor-widget-image:not(:has(img)),
.legacy-content .elementor-column:has(.elementor-widget-image):not(:has(img, h2, h3, h4, p, li, blockquote, table, iframe, video, .elementor-button)) { display: none !important; }
.legacy-content .elementor-widget-image > div { width: 100%; min-width: 0; }
.legacy-content .elementor-widget-image > div > img { display: block; width: 100%; height: auto; }
.legacy-content .elementor-top-section > .elementor-container:has(> .elementor-column:only-child),
.legacy-content .legacy-section-text > .elementor-container { display: block !important; }
.legacy-content .elementor-top-section > .elementor-container > .elementor-column:only-child,
.legacy-content .legacy-section-text > .elementor-container > .elementor-column { width: 100% !important; max-width: none !important; }
.legacy-content .legacy-section-longform { padding: clamp(32px, 5vw, 72px) !important; }
.legacy-content .legacy-section-longform::before { display: none !important; }
.legacy-content .legacy-section-longform > .elementor-container { display: block !important; }
.legacy-content .legacy-section-longform .elementor-column { width: 100% !important; max-width: none !important; }
.legacy-content .legacy-section-longform .elementor-widget-image { width: min(100%, 780px); min-height: 0; margin: 0 auto clamp(36px, 5vw, 64px); padding: 0; }
.legacy-content .legacy-section-longform .elementor-widget-text-editor,
.legacy-content .legacy-section-longform .elementor-widget-heading { width: min(100%, 780px); margin-right: auto; margin-left: auto; }
.legacy-content .legacy-section-gallery > .elementor-container { grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)) !important; gap: clamp(14px, 2vw, 24px) !important; }
.legacy-content .legacy-section-gallery .elementor-widget-image { min-height: 0; }
.legacy-content .legacy-section-gallery img.legacy-image-landscape { width: 100% !important; aspect-ratio: 4 / 3 !important; object-fit: cover !important; }
.legacy-content .legacy-section-gallery img.legacy-image-square { width: 100% !important; aspect-ratio: 1 !important; object-fit: cover !important; }
.legacy-content .legacy-section-gallery img.legacy-image-portrait { width: 100% !important; aspect-ratio: 3 / 4 !important; object-fit: cover !important; }
.legacy-content img.is-low-resolution.legacy-image-landscape { width: 100% !important; aspect-ratio: 4 / 3 !important; object-fit: cover !important; }
.legacy-content img.is-low-resolution.legacy-image-square { width: 100% !important; aspect-ratio: 1 !important; object-fit: cover !important; }
.legacy-content img.is-low-resolution.legacy-image-portrait { width: min(100%, 340px) !important; aspect-ratio: 3 / 4 !important; object-fit: cover !important; }

/* TECAR article — bespoke editorial composition, independent from the legacy layout. */
.tecar-article {
  width: min(1540px, calc(100% - 48px));
  margin: clamp(58px, 7vw, 112px) auto;
  color: #151713;
}
.tecar-article-intro {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr) minmax(260px, 340px);
  gap: clamp(30px, 4vw, 72px);
  align-items: start;
  padding: 0 0 clamp(60px, 7vw, 104px);
  border-bottom: 1px solid rgba(21, 23, 19, .24);
}
.tecar-article-index { display: grid; gap: 10px; color: #4f7900; }
.tecar-article-index span { font-size: clamp(3.8rem, 6vw, 7.1rem); font-weight: 760; line-height: .8; letter-spacing: -.08em; }
.tecar-article-index b { font-size: .72rem; letter-spacing: .13em; text-transform: uppercase; }
.tecar-article-heading .label,
.tecar-article-story .label,
.tecar-applications .label { margin: 0 0 22px; color: #4f7900; }
.tecar-article-heading h2 {
  max-width: 880px;
  margin: 0 0 28px;
  font-size: clamp(2.6rem, 5vw, 6rem);
  line-height: .92;
  letter-spacing: -.065em;
  text-wrap: balance;
}
.tecar-article-heading > p:last-child { max-width: 790px; margin: 0; color: #4e534a; font-size: clamp(1.08rem, 1.35vw, 1.34rem); line-height: 1.58; }
.tecar-article-principles { display: grid; background: #102717; color: #f3f1e9; }
.tecar-article-principles span { padding: 22px 24px; border-bottom: 1px solid rgba(243, 241, 233, .2); font-size: .76rem; font-weight: 730; letter-spacing: .08em; text-transform: uppercase; }
.tecar-article-principles span:last-child { border-bottom: 0; }
.tecar-article-story {
  display: grid;
  grid-template-columns: minmax(300px, .8fr) minmax(0, 1.2fr);
  gap: clamp(52px, 8vw, 132px);
  padding: clamp(72px, 9vw, 144px) clamp(28px, 5vw, 82px);
  background: #e8e5dc;
}
.tecar-article-story-lead h2 { max-width: 610px; margin: 0; font-size: clamp(2.2rem, 3.8vw, 4.6rem); line-height: .98; letter-spacing: -.055em; text-wrap: balance; }
.tecar-article-story-copy { align-self: end; max-width: 720px; }
.tecar-article-story-copy p { margin: 0 0 24px; color: #42463e; font-size: clamp(1rem, 1.2vw, 1.2rem); line-height: 1.68; }
.tecar-article-story-copy blockquote { margin: 48px 0 0; padding: 26px 0 0; border-top: 2px solid #75a900; color: #102717; font-size: clamp(1.35rem, 2vw, 2.1rem); font-weight: 670; line-height: 1.18; letter-spacing: -.03em; }
.tecar-applications {
  display: grid;
  grid-template-columns: minmax(280px, 1.08fr) repeat(2, minmax(240px, .96fr));
  background: #0b0d0b;
  color: #f3f1e9;
}
.tecar-applications-heading { padding: clamp(42px, 5vw, 78px); }
.tecar-applications-heading h2 { margin: 0 0 28px; font-size: clamp(2.3rem, 4vw, 4.8rem); line-height: .95; letter-spacing: -.06em; text-wrap: balance; }
.tecar-applications-heading > p:last-child { max-width: 520px; margin: 0; color: #bfc3ba; font-size: 1rem; line-height: 1.62; }
.tecar-application-card { display: flex; min-height: 430px; padding: clamp(34px, 4vw, 64px); flex-direction: column; justify-content: flex-end; }
.tecar-application-card span { margin-bottom: auto; font-size: .72rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.tecar-application-card h3 { margin: 48px 0 20px; font-size: clamp(1.8rem, 2.8vw, 3.2rem); line-height: .96; letter-spacing: -.045em; }
.tecar-application-card p { margin: 0; line-height: 1.58; }
.tecar-application-card-light { color: #151713; background: #f2efe8; }
.tecar-application-card-green { color: #f8f7f1; background: #547d00; }
.tecar-applications-note { grid-column: 1 / -1; margin: 0; padding: 18px clamp(28px, 5vw, 78px); color: #c9ccc5; border-top: 1px solid rgba(255,255,255,.16); font-size: .76rem; letter-spacing: .025em; }
.tecar-source-context { padding: clamp(34px, 4vw, 58px) clamp(28px, 5vw, 78px); background: #f2efe8; border-top: 1px solid rgba(21, 23, 19, .2); }
.tecar-source-context details { border-top: 1px solid #151713; border-bottom: 1px solid #151713; }
.tecar-source-context summary { display: grid; grid-template-columns: 190px minmax(0, 1fr) 28px; gap: 24px; align-items: center; padding: 24px 0; cursor: pointer; list-style: none; }
.tecar-source-context summary::-webkit-details-marker { display: none; }
.tecar-source-context summary span { color: #4f7900; font-size: .72rem; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.tecar-source-context summary strong { font-size: clamp(1.1rem, 1.6vw, 1.45rem); letter-spacing: -.02em; }
.tecar-source-context summary b { font-size: 1.7rem; font-weight: 400; line-height: 1; transition: transform .2s ease; }
.tecar-source-context details[open] summary b { transform: rotate(45deg); }
.tecar-source-context-body { width: min(100%, 840px); margin: 0 auto; padding: clamp(30px, 4vw, 58px) 0 clamp(42px, 5vw, 72px); }
.tecar-source-context-body p { margin: 0 0 24px; color: #42463e; line-height: 1.7; }
.tecar-source-context-body ol { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; margin: 30px 0 38px; padding: 1px; background: rgba(21, 23, 19, .18); list-style-position: inside; }
.tecar-source-context-body li { padding: 20px; background: #faf8f3; }
.tecar-source-context-body h3 { margin: 52px 0 20px; font-size: clamp(1.8rem, 3vw, 3rem); letter-spacing: -.045em; }
.tecar-source-context-body .tecar-source-context-note { padding: 18px 20px; color: #4d5248; border-left: 3px solid #75a900; background: #e5e2d9; font-size: .86rem; }

@media (max-width: 1080px) {
  .tecar-article-intro { grid-template-columns: 110px minmax(0, 1fr); }
  .tecar-article-principles { grid-column: 2; grid-template-columns: repeat(3, 1fr); }
  .tecar-article-principles span { border-right: 1px solid rgba(243, 241, 233, .2); border-bottom: 0; }
  .tecar-article-principles span:last-child { border-right: 0; }
  .tecar-applications { grid-template-columns: 1fr 1fr; }
  .tecar-applications-heading { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .legacy-content .legacy-section-longform { padding: 24px 18px !important; }
  .tecar-article { width: calc(100% - 28px); margin: 46px auto 70px; }
  .tecar-article-intro { grid-template-columns: 1fr; gap: 28px; padding-bottom: 54px; }
  .tecar-article-index { grid-template-columns: auto 1fr; align-items: end; }
  .tecar-article-index span { font-size: 4rem; }
  .tecar-article-index b { padding-bottom: 4px; }
  .tecar-article-heading h2 { font-size: clamp(2.55rem, 13vw, 4.1rem); }
  .tecar-article-principles { grid-column: auto; grid-template-columns: 1fr; }
  .tecar-article-principles span { border-right: 0; border-bottom: 1px solid rgba(243, 241, 233, .2); }
  .tecar-article-story { grid-template-columns: 1fr; gap: 48px; padding: 54px 22px; }
  .tecar-applications { grid-template-columns: 1fr; }
  .tecar-applications-heading { grid-column: auto; padding: 48px 22px; }
  .tecar-application-card { min-height: 360px; padding: 30px 22px; }
  .tecar-applications-note { grid-column: auto; padding: 18px 22px; }
  .tecar-source-context { padding: 28px 22px; }
  .tecar-source-context summary { grid-template-columns: 1fr 24px; gap: 10px 18px; }
  .tecar-source-context summary span { grid-column: 1; }
  .tecar-source-context summary strong { grid-column: 1; }
  .tecar-source-context summary b { grid-column: 2; grid-row: 1 / 3; }
  .tecar-source-context-body ol { grid-template-columns: 1fr; }
}

/* Medicina y naturopatía — composición editorial propia, sin contenido heredado vacío. */
.naturopathy-content-page .inner-hero-media img { object-position: center; }
.naturopathy-article {
  width: min(1540px, calc(100% - 48px));
  margin: clamp(58px, 7vw, 112px) auto;
  color: #151713;
}
.naturopathy-article .label { margin: 0 0 20px; color: #4f7900; }
.naturopathy-intro {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr) minmax(260px, 340px);
  gap: clamp(30px, 4vw, 72px);
  align-items: start;
  padding-bottom: clamp(62px, 7vw, 108px);
  border-bottom: 1px solid rgba(21, 23, 19, .24);
}
.naturopathy-index { display: grid; gap: 10px; color: #4f7900; }
.naturopathy-index span { font-size: clamp(3.8rem, 6vw, 7.1rem); font-weight: 760; line-height: .8; letter-spacing: -.08em; }
.naturopathy-index b { max-width: 110px; font-size: .72rem; line-height: 1.3; letter-spacing: .13em; text-transform: uppercase; }
.naturopathy-intro-copy h2 {
  max-width: 930px;
  margin: 0 0 30px;
  font-size: clamp(2.6rem, 5vw, 5.8rem);
  line-height: .93;
  letter-spacing: -.065em;
  text-wrap: balance;
}
.naturopathy-intro-copy > p:last-child { max-width: 820px; margin: 0; color: #4e534a; font-size: clamp(1.08rem, 1.35vw, 1.34rem); line-height: 1.62; }
.naturopathy-principles { display: grid; background: #102717; color: #f3f1e9; }
.naturopathy-principles span { padding: 22px 24px; border-bottom: 1px solid rgba(243, 241, 233, .2); font-size: .76rem; font-weight: 730; letter-spacing: .08em; text-transform: uppercase; }
.naturopathy-principles span:last-child { border-bottom: 0; }

.naturopathy-focus {
  display: grid;
  grid-template-columns: minmax(320px, .72fr) minmax(0, 1.28fr);
  gap: clamp(48px, 7vw, 118px);
  padding: clamp(70px, 9vw, 142px) clamp(28px, 5vw, 80px);
  background: #e8e5dc;
}
.naturopathy-focus-heading { align-self: start; position: sticky; top: 150px; }
.naturopathy-focus-heading h2 { max-width: 600px; margin: 0 0 26px; font-size: clamp(2.25rem, 4vw, 4.7rem); line-height: .97; letter-spacing: -.058em; text-wrap: balance; }
.naturopathy-focus-heading > p:last-child { max-width: 520px; margin: 0; color: #50554c; font-size: 1.04rem; line-height: 1.65; }
.naturopathy-focus-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid rgba(21, 23, 19, .28); border-left: 1px solid rgba(21, 23, 19, .28); }
.naturopathy-focus-grid article { display: flex; min-height: 330px; padding: clamp(26px, 3vw, 46px); flex-direction: column; border-right: 1px solid rgba(21, 23, 19, .28); border-bottom: 1px solid rgba(21, 23, 19, .28); background: rgba(250, 248, 243, .48); }
.naturopathy-focus-grid article > span { color: #4f7900; font-size: .72rem; font-weight: 760; letter-spacing: .12em; }
.naturopathy-focus-grid h3 { margin: auto 0 18px; font-size: clamp(1.55rem, 2.2vw, 2.65rem); line-height: .98; letter-spacing: -.045em; }
.naturopathy-focus-grid p { margin: 0; color: #51564d; line-height: 1.6; }
.naturopathy-focus-grid a { display: inline-flex; gap: 10px; align-items: center; width: fit-content; margin-top: 22px; color: #355700; font-size: .82rem; font-weight: 730; text-decoration: none; }
.naturopathy-focus-grid a:hover { text-decoration: underline; text-underline-offset: 4px; }

.naturopathy-process { padding: clamp(72px, 9vw, 140px) clamp(28px, 5vw, 80px); color: #f3f1e9; background: #0b0d0b; }
.naturopathy-process .label { color: #a7d500; }
.naturopathy-process-heading { display: grid; grid-template-columns: minmax(270px, .9fr) minmax(0, 1.1fr); column-gap: clamp(42px, 7vw, 120px); align-items: end; margin-bottom: clamp(50px, 6vw, 92px); }
.naturopathy-process-heading .label { grid-column: 1 / -1; }
.naturopathy-process-heading h2 { max-width: 680px; margin: 0; font-size: clamp(2.4rem, 4.3vw, 5rem); line-height: .95; letter-spacing: -.06em; text-wrap: balance; }
.naturopathy-process-heading > p:last-child { max-width: 580px; margin: 0; color: #bcc1b8; font-size: 1.04rem; line-height: 1.65; }
.naturopathy-process-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; border-top: 1px solid rgba(243, 241, 233, .26); border-left: 1px solid rgba(243, 241, 233, .26); list-style: none; }
.naturopathy-process-grid li { display: flex; min-height: 300px; padding: 28px; flex-direction: column; border-right: 1px solid rgba(243, 241, 233, .26); border-bottom: 1px solid rgba(243, 241, 233, .26); }
.naturopathy-process-grid li > span { color: #a7d500; font-size: .72rem; font-weight: 760; letter-spacing: .12em; }
.naturopathy-process-grid li > div { margin-top: auto; }
.naturopathy-process-grid h3 { margin: 0 0 16px; font-size: clamp(1.45rem, 2vw, 2.25rem); letter-spacing: -.04em; }
.naturopathy-process-grid p { margin: 0; color: #bdc1b9; line-height: 1.58; }

.naturopathy-safety { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr); background: #a7d500; }
.naturopathy-safety-copy { padding: clamp(52px, 7vw, 108px); }
.naturopathy-safety-copy .label { color: #294700; }
.naturopathy-safety-copy h2 { max-width: 700px; margin: 0 0 28px; font-size: clamp(2.45rem, 4.5vw, 5.2rem); line-height: .93; letter-spacing: -.062em; text-wrap: balance; }
.naturopathy-safety-copy > p { max-width: 680px; margin: 0; font-size: 1.04rem; line-height: 1.64; }
.naturopathy-safety-copy blockquote { max-width: 680px; margin: clamp(42px, 5vw, 72px) 0 0; padding-top: 24px; border-top: 2px solid #102717; font-size: clamp(1.45rem, 2.3vw, 2.7rem); font-weight: 690; line-height: 1.08; letter-spacing: -.04em; }
.naturopathy-safety-list { display: grid; margin: 0; padding: 0; background: #102717; color: #f3f1e9; list-style: none; }
.naturopathy-safety-list li { display: grid; grid-template-columns: 52px 1fr; gap: 18px; align-items: start; padding: clamp(28px, 3vw, 46px); border-bottom: 1px solid rgba(243, 241, 233, .2); }
.naturopathy-safety-list li:last-child { border-bottom: 0; }
.naturopathy-safety-list span { color: #a7d500; font-size: .72rem; font-weight: 760; letter-spacing: .12em; }
.naturopathy-safety-list p { margin: 0; font-size: clamp(1rem, 1.15vw, 1.18rem); line-height: 1.55; }

.naturopathy-fit { display: grid; grid-template-columns: minmax(0, .92fr) minmax(360px, 1.08fr); gap: clamp(52px, 8vw, 132px); padding: clamp(76px, 9vw, 142px) clamp(28px, 5vw, 80px); background: #f5f3ed; }
.naturopathy-fit-copy h2 { max-width: 650px; margin: 0 0 28px; font-size: clamp(2.3rem, 4vw, 4.7rem); line-height: .96; letter-spacing: -.058em; text-wrap: balance; }
.naturopathy-fit-copy > p { max-width: 630px; margin: 0 0 32px; color: #51564d; font-size: 1.04rem; line-height: 1.65; }
.naturopathy-fit-copy ul { display: grid; gap: 1px; margin: 0; padding: 1px; background: rgba(21, 23, 19, .18); list-style: none; }
.naturopathy-fit-copy li { position: relative; padding: 18px 22px 18px 50px; background: #ebe8df; line-height: 1.5; }
.naturopathy-fit-copy li::before { position: absolute; top: 19px; left: 22px; color: #679000; content: '↗'; font-weight: 760; }
.naturopathy-faq { align-self: start; }
.naturopathy-faq details { border-top: 1px solid rgba(21, 23, 19, .42); }
.naturopathy-faq details:last-child { border-bottom: 1px solid rgba(21, 23, 19, .42); }
.naturopathy-faq summary { display: grid; grid-template-columns: minmax(0, 1fr) 24px; gap: 24px; align-items: center; padding: 24px 0; cursor: pointer; font-size: clamp(1.05rem, 1.4vw, 1.32rem); font-weight: 680; letter-spacing: -.02em; list-style: none; }
.naturopathy-faq summary::-webkit-details-marker { display: none; }
.naturopathy-faq summary b { font-size: 1.6rem; font-weight: 400; transition: transform .2s ease; }
.naturopathy-faq details[open] summary b { transform: rotate(45deg); }
.naturopathy-faq details p { margin: 0; padding: 0 48px 26px 0; color: #51564d; line-height: 1.65; }

.naturopathy-sources { display: grid; grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr); gap: clamp(40px, 7vw, 116px); align-items: end; padding: clamp(42px, 5vw, 74px) clamp(28px, 5vw, 80px); border-top: 1px solid rgba(21, 23, 19, .22); background: #e8e5dc; }
.naturopathy-sources h2 { max-width: 500px; margin: 0; font-size: clamp(1.8rem, 3vw, 3.3rem); line-height: .98; letter-spacing: -.05em; }
.naturopathy-sources > p { max-width: 760px; margin: 0; color: #51564d; line-height: 1.65; }
.naturopathy-sources a { color: #355700; font-weight: 720; text-underline-offset: 3px; }

@media (max-width: 1080px) {
  .naturopathy-intro { grid-template-columns: 110px minmax(0, 1fr); }
  .naturopathy-principles { grid-column: 2; grid-template-columns: repeat(3, 1fr); }
  .naturopathy-principles span { border-right: 1px solid rgba(243, 241, 233, .2); border-bottom: 0; }
  .naturopathy-principles span:last-child { border-right: 0; }
  .naturopathy-focus { grid-template-columns: 1fr; }
  .naturopathy-focus-heading { position: static; }
  .naturopathy-process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .naturopathy-safety { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .naturopathy-article { width: calc(100% - 28px); margin: 46px auto 70px; }
  .naturopathy-intro { grid-template-columns: 1fr; gap: 28px; padding-bottom: 54px; }
  .naturopathy-index { grid-template-columns: auto 1fr; align-items: end; }
  .naturopathy-index span { font-size: 4rem; }
  .naturopathy-index b { max-width: none; padding-bottom: 4px; }
  .naturopathy-intro-copy h2 { font-size: clamp(2.45rem, 12.5vw, 4rem); }
  .naturopathy-principles { grid-column: auto; grid-template-columns: 1fr; }
  .naturopathy-principles span { border-right: 0; border-bottom: 1px solid rgba(243, 241, 233, .2); }
  .naturopathy-focus { gap: 44px; padding: 54px 22px; }
  .naturopathy-focus-grid { grid-template-columns: 1fr; }
  .naturopathy-focus-grid article { min-height: 270px; }
  .naturopathy-process { padding: 54px 22px; }
  .naturopathy-process-heading { grid-template-columns: 1fr; gap: 24px; }
  .naturopathy-process-heading .label { grid-column: auto; }
  .naturopathy-process-grid { grid-template-columns: 1fr; }
  .naturopathy-process-grid li { min-height: 250px; }
  .naturopathy-safety-copy { padding: 54px 22px; }
  .naturopathy-safety-list li { grid-template-columns: 40px 1fr; padding: 28px 22px; }
  .naturopathy-fit { grid-template-columns: 1fr; gap: 60px; padding: 58px 22px; }
  .naturopathy-sources { grid-template-columns: 1fr; gap: 30px; padding: 44px 22px; }
}

/* Testimonios compactos — relato, imágenes y navegación final en un único ritmo. */
.testimonial-archive-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(20px, 2.2vw, 34px); }
.testimonial-archive-media { height: 220px; padding: 14px; }
.testimonial-archive-copy { min-height: 250px; padding: clamp(20px, 1.8vw, 28px); }
.testimonial-archive-copy h3 { margin-bottom: 12px; font-size: clamp(1.16rem, 1.25vw, 1.42rem); }
.testimonial-archive-copy > div { display: -webkit-box; overflow: hidden; font-size: .92rem; line-height: 1.52; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.testimonial-archive-copy > a { margin-top: 16px; }

.testimonial-detail-hero {
  grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
  gap: clamp(34px, 5vw, 76px);
  padding-top: clamp(42px, 5vw, 68px);
  padding-bottom: clamp(42px, 5vw, 68px);
}
.testimonial-detail-heading .breadcrumbs { margin-bottom: clamp(28px, 3.5vw, 48px); }
.testimonial-detail-heading h1 { font-size: clamp(2.1rem, 3vw, 3.65rem); }
.testimonial-detail-heading .inner-summary { max-width: 820px; margin-bottom: 18px; font-size: clamp(.98rem, 1.08vw, 1.12rem); line-height: 1.5; }
.testimonial-detail-media { width: min(100%, 330px); min-height: 240px; max-height: 340px; padding: 16px; }
.testimonial-detail-media img { max-height: 308px; }

.testimonial-detail-layout {
  grid-template-columns: minmax(130px, 170px) minmax(0, 1040px);
  gap: clamp(30px, 4vw, 58px);
  width: min(calc(100% - (var(--pad) * 2)), 1340px);
  padding-top: clamp(42px, 5vw, 66px);
  padding-bottom: clamp(52px, 6vw, 78px);
}
.testimonial-detail-layout > .author-card { grid-column: 2; margin-top: 22px; }
.testimonial-page .article-editorial-module { margin-bottom: clamp(28px, 3.5vw, 48px); }
.testimonial-page .editorial-story-split { gap: clamp(24px, 3.2vw, 44px); padding: clamp(22px, 2.5vw, 34px) 0; }
.testimonial-page .article-editorial-module h2 { font-size: clamp(1.65rem, 2.15vw, 2.35rem); }
.testimonial-page .editorial-story-copy blockquote { margin-top: 24px; font-size: clamp(1.12rem, 1.4vw, 1.48rem); line-height: 1.48; }
.testimonial-page .editorial-story-media { padding: 13px; }
.testimonial-page .testimonial-fragment-module .editorial-story-media { width: min(100%, 310px); justify-self: end; }
.testimonial-page .editorial-story-media img { max-height: 320px; }
.testimonial-page .editorial-story-media > p { margin-top: 12px; padding-top: 12px; font-size: .84rem; line-height: 1.5; }

.testimonial-story-content { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); align-items: stretch; }
.testimonial-story-content > * { grid-column: 1 / -1; }
.testimonial-story-content > .legacy-media-row,
.testimonial-story-content > figure,
.testimonial-story-content > .wp-block-image { grid-column: auto; }
.testimonial-story-content > .legacy-media-row {
  display: flex;
  min-width: 0;
  margin: 0;
  padding: 13px;
  flex-direction: column;
  border: 0;
  background: #e6e3db;
}
.testimonial-story-content > .legacy-media-row .legacy-media-row-copy { order: 2; width: 100%; padding: 12px 3px 0; }
.testimonial-story-content > .legacy-media-row .legacy-media-row-copy p { margin: 0; color: #555; font-size: .8rem; line-height: 1.45; }
.testimonial-story-content > .legacy-media-row > figure,
.testimonial-story-content > .legacy-media-row > .wp-block-image { order: 1; width: 100%; height: 100%; min-height: 0; margin: 0; padding: 0; background: transparent; }
.testimonial-story-content > figure,
.testimonial-story-content > .wp-block-image {
  display: grid;
  min-width: 0;
  height: 360px;
  min-height: 0;
  place-items: center;
  margin: 0 !important;
  padding: 13px;
  background: #e6e3db;
}
.testimonial-page .testimonial-story-content img,
.testimonial-page .testimonial-story-content img.legacy-image-portrait,
.testimonial-page .testimonial-story-content img.is-low-resolution { width: auto !important; max-width: 100% !important; height: auto !important; max-height: 330px; object-fit: contain; }
.testimonial-story-content > p:first-of-type { margin-top: clamp(26px, 3vw, 42px); }
.testimonial-story-content > p { max-width: 830px; margin-bottom: 14px; line-height: 1.7; }
.testimonial-story-content > h2,
.testimonial-story-content > h3 { max-width: 830px; margin-top: 24px; }
.testimonial-page .medical-note { max-width: 830px; margin-top: 30px; }
.testimonial-detail-layout > .author-card-team img { padding: 8px; background: #f6f4ed; border-radius: 0; object-fit: contain; filter: none; }

.testimonial-related-content { padding-top: clamp(46px, 5vw, 66px); padding-bottom: clamp(52px, 6vw, 76px); }
.testimonial-related-content .related-heading { margin-bottom: 26px; }
.testimonial-related-content .article-image { max-height: 210px; margin-bottom: 16px; }
.testimonial-related-content .article-card { padding-bottom: 20px; }
.testimonial-related-content .article-card h3 { font-size: clamp(1.08rem, 1.35vw, 1.42rem); line-height: 1.15; }
.testimonial-return { display: flex; justify-content: flex-end; margin-top: clamp(30px, 4vw, 48px); padding-top: 24px; border-top: 1px solid var(--line-dark); }
.testimonial-return a { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 12px; padding: 11px 20px; color: #fff; background: var(--ink); border: 1px solid var(--ink); border-radius: 999px; font-size: .9rem; font-weight: 700; transition: color .2s ease, background-color .2s ease, transform .2s ease; }
.testimonial-return a:hover,
.testimonial-return a:focus-visible { color: var(--ink); background: var(--green-bright); transform: translateY(-1px); }
.testimonial-return-standalone { width: min(calc(100% - (var(--pad) * 2)), var(--container)); margin-right: auto; margin-left: auto; }

@media (max-width: 1180px) {
  .testimonial-archive-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .testimonial-detail-layout { grid-template-columns: minmax(120px, 150px) minmax(0, 1fr); }
}

@media (max-width: 820px) {
  .testimonial-archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .testimonial-detail-hero { grid-template-columns: minmax(0, 1fr) minmax(210px, 280px); }
  .testimonial-detail-media { min-height: 210px; }
}

@media (max-width: 760px) {
  .testimonial-detail-hero { grid-template-columns: 1fr; gap: 24px; padding: 34px 18px 40px; }
  .testimonial-detail-heading .breadcrumbs { margin-bottom: 28px; }
  .testimonial-detail-heading .inner-summary { margin-bottom: 16px; }
  .testimonial-detail-media { width: min(100%, 280px); min-height: 190px; max-height: 280px; padding: 12px; }
  .testimonial-detail-media img { max-height: 254px; }
  .testimonial-detail-layout { grid-template-columns: 1fr; width: calc(100% - 32px); padding: 36px 0 54px; }
  .testimonial-page .article-toc { display: none; }
  .testimonial-detail-layout > .author-card { grid-column: 1; }
  .testimonial-page .editorial-story-split { gap: 14px; padding: 18px 0 24px; }
  .testimonial-page .article-editorial-module h2 { font-size: clamp(1.3rem, 6vw, 1.65rem); }
  .testimonial-page .editorial-story-copy blockquote { margin-top: 18px; padding-top: 20px; font-size: 1rem; }
  .testimonial-page .editorial-story-media img { max-height: 300px; }
  .testimonial-story-content { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .testimonial-story-content > figure,
  .testimonial-story-content > .wp-block-image { height: 260px; min-height: 0; padding: 8px; }
  .testimonial-story-content > .legacy-media-row { padding: 8px; }
  .testimonial-page .testimonial-story-content img,
  .testimonial-page .testimonial-story-content img.legacy-image-portrait,
  .testimonial-page .testimonial-story-content img.is-low-resolution { max-height: 300px; }
  .testimonial-detail-layout > .author-card { grid-template-columns: 68px minmax(0, 1fr); padding: 18px; }
  .testimonial-detail-layout > .author-card img { width: 68px; height: 68px; }
  .testimonial-detail-layout > .author-card > a { grid-column: 1 / -1; grid-row: auto; min-width: 0; margin-top: 12px; }
  .testimonial-related-content { padding: 42px 16px 54px; }
  .testimonial-related-content .article-grid { grid-template-columns: 1fr; gap: 16px; }
  .testimonial-related-content .article-card { display: grid; grid-template-columns: 116px minmax(0, 1fr); grid-template-rows: auto 1fr; gap: 0 16px; min-height: 116px; padding: 0 0 16px; }
  .testimonial-related-content .article-image { grid-column: 1; grid-row: 1 / 3; height: 116px; margin: 0; aspect-ratio: 1; }
  .testimonial-related-content .article-card p { grid-column: 2; margin-top: 4px; }
  .testimonial-related-content .article-card h3 { grid-column: 2; padding-right: 28px; }
  .testimonial-related-content .card-arrow { right: 0; bottom: 14px; }
  .testimonial-return { justify-content: stretch; margin-top: 28px; }
  .testimonial-return a { width: 100%; }
}

@media (max-width: 600px) {
  .testimonial-archive-grid { grid-template-columns: 1fr; gap: 18px; }
  .testimonial-archive-card { display: grid; grid-template-columns: minmax(112px, .78fr) minmax(0, 1.22fr); }
  .testimonial-archive-media { height: 100%; min-height: 230px; padding: 10px; }
  .testimonial-archive-copy { min-height: 230px; padding: 20px 18px; }
  .testimonial-archive-copy > p { display: block; margin-bottom: 12px; }
  .testimonial-archive-copy > p time { display: block; margin-top: 5px; }
  .testimonial-archive-copy > div { -webkit-line-clamp: 2; }
}

/* Studio Salux: infografía horizontal para orientar la elección de disciplina. */
.studio-practice-map {
  padding: clamp(58px, 6vw, 88px) max(var(--pad), calc((100% - var(--container)) / 2));
  border-top: 1px solid rgba(236,25,134,.42);
  background: radial-gradient(circle at 92% 5%, rgba(236,25,134,.13), transparent 31%), #0b0b0b;
}
.studio-practice-map > header { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(330px, .8fr); align-items: end; gap: clamp(38px, 7vw, 112px); margin-bottom: clamp(34px, 4vw, 54px); }
.studio-practice-map > header h2 { max-width: 760px; margin: 5px 0 0; color: var(--paper); font-size: clamp(2.1rem, 3vw, 3.45rem); line-height: 1; letter-spacing: -.048em; text-wrap: balance; }
.studio-practice-map > header > p { max-width: 560px; margin: 0; color: #aaa; line-height: 1.65; }
.studio-practice-routes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: #393939; border: 1px solid #393939; }
.studio-practice-route { position: relative; display: grid; grid-template-columns: minmax(0, .8fr) 38px minmax(0, 1.2fr); min-width: 0; min-height: 310px; padding: clamp(26px, 2.6vw, 38px); overflow: hidden; color: var(--paper); background: #111; }
.studio-practice-route::before { position: absolute; top: 0; right: 0; left: 0; height: 3px; content: ""; background: linear-gradient(90deg, var(--pink), rgba(236,25,134,.08)); }
.studio-practice-need { align-self: center; }
.studio-practice-need span { display: block; margin-bottom: 32px; color: var(--pink); font-size: .72rem; font-weight: 700; letter-spacing: .12em; }
.studio-practice-need small,
.studio-practice-family > small { display: block; margin-bottom: 8px; color: #858585; font-size: .66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.studio-practice-need strong { display: block; font-size: clamp(1.05rem, 1.35vw, 1.42rem); line-height: 1.12; letter-spacing: -.025em; }
.studio-practice-route > i { align-self: center; color: var(--pink); font-size: 1.35rem; font-style: normal; }
.studio-practice-family { align-self: center; min-width: 0; }
.studio-practice-family h3 { margin: 0 0 17px; font-size: clamp(1.2rem, 1.6vw, 1.68rem); line-height: 1.04; letter-spacing: -.035em; }
.studio-practice-family nav { display: flex; flex-wrap: wrap; gap: 7px; }
.studio-practice-family a { display: inline-flex; align-items: center; gap: 7px; min-height: 34px; padding: 7px 10px; color: #c6c6c6; background: #1c1c1c; border: 1px solid #343434; font-size: .72rem; line-height: 1.2; transition: color .2s ease, background-color .2s ease, border-color .2s ease; }
.studio-practice-family a b { color: var(--pink); font-weight: 400; }
.studio-practice-family a:hover,
.studio-practice-family a:focus-visible { color: #fff; background: rgba(236,25,134,.12); border-color: var(--pink); }
.studio-practice-map > footer { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 2px 0; color: #8c8c8c; font-size: .82rem; }
.studio-practice-map > footer a { color: var(--paper); border-bottom: 1px solid var(--pink); }
.studio-practice-map > footer a b { color: var(--pink); }

@media (max-width: 1080px) {
  .studio-practice-routes { grid-template-columns: 1fr; }
  .studio-practice-route { min-height: 230px; grid-template-columns: minmax(170px, .68fr) 54px minmax(0, 1.32fr); }
}

@media (max-width: 760px) {
  .studio-practice-map { padding: 48px 20px 54px; }
  .studio-practice-map > header { grid-template-columns: 1fr; gap: 18px; margin-bottom: 30px; }
  .studio-practice-route { grid-template-columns: 1fr; gap: 18px; min-height: 0; padding: 26px 22px; }
  .studio-practice-route > i { display: none; }
  .studio-practice-need { padding-bottom: 20px; border-bottom: 1px solid #363636; }
  .studio-practice-need span { margin-bottom: 18px; }
  .studio-practice-map > footer { align-items: flex-start; flex-direction: column; }
}

/* Equipo Studio: perfil editorial compacto, sin la retícula heredada de WordPress. */
.studio-team-page .inner-hero { min-height: min(660px, 72vh); }
.studio-team-profile { color: var(--ink); background: var(--paper); }
.studio-profile-intro,
.studio-profile-credentials,
.studio-profile-training,
.studio-profile-closing { width: min(calc(100% - (var(--pad) * 2)), var(--container)); margin: 0 auto; }
.studio-profile-intro { display: grid; grid-template-columns: minmax(300px, .72fr) minmax(0, 1.28fr); align-items: center; gap: clamp(42px, 7vw, 112px); padding: clamp(68px, 8vw, 118px) 0; }
.studio-profile-portrait { position: relative; min-height: 560px; margin: 0; overflow: hidden; background: #e3dfda; }
.studio-profile-portrait::before { position: absolute; z-index: 1; inset: 18px; content: ""; border: 1px solid rgba(236,25,134,.55); pointer-events: none; }
.studio-profile-portrait img { width: 100%; height: 100%; min-height: 560px; filter: grayscale(1) contrast(1.04); object-fit: cover; }
.studio-profile-copy { max-width: 760px; }
.studio-profile-copy h2,
.studio-profile-credentials h2,
.studio-profile-training h2,
.studio-profile-closing h2 { margin: 8px 0 24px; font-size: clamp(2.35rem, 4.2vw, 4.9rem); line-height: .96; letter-spacing: -.055em; text-wrap: balance; }
.studio-profile-copy > p { max-width: 700px; color: #444; font-size: 1.05rem; line-height: 1.72; }
.studio-profile-copy .studio-profile-lead { color: var(--ink); font-size: clamp(1.16rem, 1.55vw, 1.42rem); line-height: 1.55; letter-spacing: -.018em; }
.studio-profile-copy blockquote { margin: 34px 0; padding: 22px 0 22px 28px; color: var(--ink); border-left: 3px solid var(--pink); font-family: Georgia, serif; font-size: clamp(1.28rem, 2vw, 1.8rem); font-style: italic; line-height: 1.4; }
.studio-profile-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 36px 0 0; background: #d8d3cd; border: 1px solid #d8d3cd; }
.studio-profile-facts > div { min-width: 0; padding: 18px; background: #f6f3ef; }
.studio-profile-facts dt { margin-bottom: 6px; color: var(--pink-dark); font-size: .64rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.studio-profile-facts dd { margin: 0; font-size: .9rem; font-weight: 650; line-height: 1.35; }
.studio-profile-origin { display: grid; grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); gap: clamp(46px, 9vw, 150px); padding: clamp(70px, 7vw, 104px) max(var(--pad), calc((100% - var(--container)) / 2)); background: radial-gradient(circle at 90% 15%, rgba(236,25,134,.13), transparent 30%), #090909; }
.studio-profile-origin h2,
.studio-profile-experience h2 { max-width: 680px; margin: 9px 0 0; color: var(--paper); font-size: clamp(2.35rem, 4vw, 4.6rem); line-height: .96; letter-spacing: -.055em; }
.studio-profile-origin > div:last-child { max-width: 720px; padding-top: 28px; border-top: 1px solid rgba(236,25,134,.55); }
.studio-profile-origin > div:last-child p { color: #bbb; font-size: 1.03rem; line-height: 1.72; }
.studio-profile-credentials { padding: clamp(72px, 8vw, 118px) 0; }
.studio-profile-credentials header { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); align-items: end; gap: 48px; margin-bottom: 44px; }
.studio-profile-credentials header .label { align-self: start; padding-top: 12px; }
.studio-profile-credentials ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 0; background: #d2ccc5; border: 1px solid #d2ccc5; list-style: none; }
.studio-profile-credentials li { min-height: 270px; padding: clamp(26px, 3vw, 42px); background: #f4f1ed; }
.studio-profile-credentials li span { color: var(--pink-dark); font-size: .72rem; font-weight: 750; letter-spacing: .1em; }
.studio-profile-credentials li h3 { margin: 58px 0 12px; font-size: clamp(1.45rem, 2vw, 2.05rem); letter-spacing: -.035em; }
.studio-profile-credentials li p { margin: 0; color: #555; line-height: 1.62; }
.studio-profile-training { padding: 0 0 clamp(74px, 8vw, 120px); }
.studio-profile-training > header { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); align-items: end; gap: clamp(42px, 8vw, 130px); margin-bottom: 44px; }
.studio-profile-training > header > p { max-width: 560px; margin: 0 0 8px; color: #555; line-height: 1.7; }
.studio-training-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid #cfc9c2; }
.studio-training-grid details { border-bottom: 1px solid #cfc9c2; }
.studio-training-grid details:nth-child(odd) { border-right: 1px solid #cfc9c2; }
.studio-training-grid summary { display: grid; grid-template-columns: 42px minmax(0, 1fr) 28px; gap: 18px; min-height: 182px; padding: 28px 30px; cursor: pointer; list-style: none; }
.studio-training-grid summary::-webkit-details-marker { display: none; }
.studio-training-grid summary > span { color: var(--pink-dark); font-size: .7rem; font-weight: 750; letter-spacing: .1em; }
.studio-training-grid summary h3 { margin: 0 0 9px; font-size: clamp(1.28rem, 1.7vw, 1.72rem); letter-spacing: -.035em; }
.studio-training-grid summary p { margin: 0; color: #5c5c5c; line-height: 1.55; }
.studio-training-grid summary b { color: var(--pink-dark); font-size: 1.35rem; font-weight: 400; transition: transform .2s ease; }
.studio-training-grid details[open] summary b { transform: rotate(45deg); }
.studio-training-grid details > p { margin: -12px 30px 28px 90px; color: #3e3e3e; line-height: 1.65; }
.studio-profile-experience { display: grid; grid-template-columns: minmax(0, .83fr) minmax(0, 1.17fr); gap: clamp(58px, 9vw, 150px); padding: clamp(74px, 8vw, 116px) max(var(--pad), calc((100% - var(--container)) / 2)); background: #090909; }
.studio-profile-experience ol { margin: 0; padding: 0; border-top: 1px solid #393939; list-style: none; }
.studio-profile-experience li { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 24px; padding: 24px 0; color: #aaa; border-bottom: 1px solid #393939; }
.studio-profile-experience li > span { color: var(--pink); font-size: .72rem; font-weight: 750; letter-spacing: .08em; }
.studio-profile-experience h3 { margin: 0 0 8px; color: var(--paper); font-size: 1.22rem; }
.studio-profile-experience p { margin: 0; line-height: 1.58; }
.studio-profile-archive { width: min(calc(100% - (var(--pad) * 2)), var(--container)); margin: clamp(62px, 8vw, 112px) auto 0; border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.studio-profile-archive summary { display: flex; align-items: center; justify-content: space-between; gap: 34px; padding: 32px 0; cursor: pointer; list-style: none; }
.studio-profile-archive summary::-webkit-details-marker { display: none; }
.studio-profile-archive summary h2 { max-width: 820px; margin: 0; font-size: clamp(2rem, 3.5vw, 4rem); line-height: .98; letter-spacing: -.055em; }
.studio-profile-archive summary b { color: var(--pink); font-size: 1.8rem; transition: transform .2s ease; }
.studio-profile-archive details[open] summary b { transform: rotate(45deg); }
.studio-profile-archive .legacy-content { width: min(100%, 1180px); margin: 0 auto; padding: 10px 0 72px; }
.studio-profile-archive .legacy-content ul { columns: 2; column-gap: 54px; }
.studio-profile-archive .legacy-content li { break-inside: avoid; }
.studio-profile-closing { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr); align-items: end; gap: clamp(46px, 8vw, 130px); padding: clamp(72px, 8vw, 112px) 0; }
.studio-profile-closing > div:last-child p { margin: 0 0 26px; color: #505050; font-size: 1.06rem; line-height: 1.7; }

@media (max-width: 920px) {
  .studio-profile-intro { grid-template-columns: minmax(240px, .8fr) minmax(0, 1.2fr); gap: 34px; }
  .studio-profile-portrait,
  .studio-profile-portrait img { min-height: 480px; }
  .studio-profile-origin,
  .studio-profile-experience { grid-template-columns: 1fr; gap: 42px; }
  .studio-profile-credentials header,
  .studio-profile-training > header,
  .studio-profile-closing { grid-template-columns: 1fr; gap: 24px; }
}

@media (max-width: 700px) {
  .studio-team-page .inner-hero { min-height: 0; }
  .studio-profile-intro { grid-template-columns: 1fr; padding: 52px 0 62px; }
  .studio-profile-portrait { min-height: 390px; max-height: 540px; }
  .studio-profile-portrait img { min-height: 390px; }
  .studio-profile-copy blockquote { margin: 26px 0; padding-left: 20px; }
  .studio-profile-facts,
  .studio-profile-credentials ol,
  .studio-training-grid { grid-template-columns: 1fr; }
  .studio-profile-facts > div { padding: 15px 17px; }
  .studio-profile-credentials li { min-height: 210px; }
  .studio-profile-credentials li h3 { margin-top: 38px; }
  .studio-training-grid details:nth-child(odd) { border-right: 0; }
  .studio-training-grid summary { grid-template-columns: 32px minmax(0, 1fr) 22px; gap: 12px; min-height: 0; padding: 24px 4px; }
  .studio-training-grid details > p { margin: -4px 4px 24px 44px; }
  .studio-profile-experience li { grid-template-columns: 84px minmax(0, 1fr); gap: 16px; }
  .studio-profile-archive .legacy-content ul { columns: 1; }
  .studio-profile-closing { padding: 58px 0 70px; }
}

/* Organometría funcional: artículo editorial y proceso visual. */
.organometry-article { color: var(--ink); background: var(--paper); }
.organometry-overview,
.organometry-process,
.organometry-scope { width: min(calc(100% - (var(--pad) * 2)), var(--container)); margin: 0 auto; }
.organometry-overview { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(360px, .96fr); align-items: center; gap: clamp(48px, 8vw, 132px); padding: clamp(72px, 8vw, 122px) 0; }
.organometry-overview-copy h2,
.organometry-process > header h2,
.organometry-scope > header h2,
.organometry-map h2,
.organometry-faq h2 { margin: 8px 0 26px; font-size: clamp(2.45rem, 4.5vw, 5.2rem); line-height: .95; letter-spacing: -.058em; text-wrap: balance; }
.organometry-overview-copy > p { max-width: 710px; color: #484848; font-size: 1.04rem; line-height: 1.72; }
.organometry-overview-copy .organometry-lead { color: var(--ink); font-size: clamp(1.25rem, 1.75vw, 1.58rem); line-height: 1.5; letter-spacing: -.02em; }
.organometry-overview-copy aside { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 22px; margin-top: 34px; padding: 22px 0; border-top: 1px solid var(--green); border-bottom: 1px solid #d7d2ca; }
.organometry-overview-copy aside strong { color: var(--green-dark); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.organometry-overview-copy aside p { margin: 0; color: #393939; line-height: 1.55; }
.organometry-device { position: relative; margin: 0; padding: clamp(28px, 4vw, 50px); background: #e8e4de; box-shadow: 28px 32px 0 #d6e2bc; }
.organometry-device > span { display: block; margin-bottom: 22px; color: var(--green-dark); font-size: .68rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.organometry-device img { width: 100%; height: auto; mix-blend-mode: multiply; }
.organometry-device figcaption { margin-top: 22px; color: #5a5a5a; font-size: .84rem; line-height: 1.55; }
.organometry-map { padding: clamp(72px, 8vw, 112px) max(var(--pad), calc((100% - var(--container)) / 2)); background: radial-gradient(circle at 88% 12%, rgba(172,218,0,.13), transparent 29%), #090909; }
.organometry-map > header { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(330px, .8fr); align-items: end; gap: clamp(42px, 8vw, 130px); margin-bottom: 50px; }
.organometry-map h2 { max-width: 790px; color: var(--paper); }
.organometry-map > header > p { max-width: 570px; margin: 0 0 8px; color: #aaa; line-height: 1.7; }
.organometry-map ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 0; background: #3a3a3a; border: 1px solid #3a3a3a; list-style: none; }
.organometry-map li { position: relative; min-height: 290px; padding: clamp(26px, 2.6vw, 40px); background: #111; }
.organometry-map li::before { position: absolute; top: 0; right: 0; left: 0; height: 3px; content: ""; background: linear-gradient(90deg, var(--green), rgba(172,218,0,.08)); }
.organometry-map li span { color: var(--green); font-size: .7rem; font-weight: 750; letter-spacing: .1em; }
.organometry-map li h3 { margin: 78px 0 14px; color: var(--paper); font-size: clamp(1.25rem, 1.7vw, 1.72rem); line-height: 1.05; letter-spacing: -.035em; }
.organometry-map li p { margin: 0; color: #aaa; line-height: 1.58; }
.organometry-process { padding: clamp(76px, 8vw, 126px) 0; }
.organometry-process > header { display: grid; grid-template-columns: minmax(0, 1.16fr) minmax(320px, .84fr); align-items: end; gap: clamp(46px, 8vw, 130px); margin-bottom: 56px; }
.organometry-process > header .label { grid-column: 1 / -1; margin-bottom: -30px; }
.organometry-process > header h2 { max-width: 820px; margin-bottom: 0; }
.organometry-process > header > p { max-width: 540px; margin: 0 0 8px; color: #555; line-height: 1.7; }
.organometry-step { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(340px, .82fr); align-items: stretch; min-height: 500px; border-top: 1px solid #cfc9c1; }
.organometry-step + .organometry-step { grid-template-columns: minmax(340px, .82fr) minmax(0, 1.18fr); }
.organometry-step + .organometry-step figure { order: 2; }
.organometry-step figure { display: grid; align-items: center; margin: 0; padding: clamp(28px, 4vw, 58px); overflow: hidden; background: #e4e0da; }
.organometry-step figure img { width: 100%; height: min(410px, 30vw); object-fit: cover; }
.organometry-step > div { display: flex; justify-content: center; flex-direction: column; padding: clamp(34px, 5vw, 76px); background: #f7f4ef; }
.organometry-step > div > span { align-self: flex-start; margin-bottom: 62px; color: var(--green-dark); font-size: .72rem; font-weight: 750; letter-spacing: .1em; }
.organometry-step h3 { max-width: 520px; margin: 6px 0 18px; font-size: clamp(1.75rem, 2.7vw, 3rem); line-height: 1; letter-spacing: -.045em; }
.organometry-step > div > p:last-child { max-width: 550px; margin: 0; color: #505050; line-height: 1.68; }
.organometry-scope { padding: 0 0 clamp(78px, 8vw, 126px); }
.organometry-scope > header { display: grid; grid-template-columns: minmax(0, .62fr) minmax(0, 1.38fr); align-items: start; gap: 48px; margin-bottom: 44px; }
.organometry-scope > header h2 { max-width: 920px; margin-top: 0; }
.organometry-scope-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #cbc6bf; border: 1px solid #cbc6bf; }
.organometry-scope-grid section { min-height: 390px; padding: clamp(32px, 4.5vw, 64px); background: #f3f0eb; }
.organometry-scope-grid section:last-child { color: var(--paper); background: #111; }
.organometry-scope-grid section > span { display: block; color: var(--green-dark); font-size: 2rem; }
.organometry-scope-grid section:last-child > span { color: var(--pink); }
.organometry-scope-grid h3 { margin: 34px 0 24px; font-size: clamp(1.55rem, 2.3vw, 2.55rem); letter-spacing: -.04em; }
.organometry-scope-grid ul { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.organometry-scope-grid li { position: relative; padding-left: 24px; color: #4d4d4d; line-height: 1.55; }
.organometry-scope-grid section:last-child li { color: #bcbcbc; }
.organometry-scope-grid li::before { position: absolute; left: 0; content: "↗"; color: var(--green-dark); }
.organometry-scope-grid section:last-child li::before { color: var(--pink); }
.organometry-faq { display: grid; grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); gap: clamp(54px, 9vw, 150px); padding: clamp(74px, 8vw, 116px) max(var(--pad), calc((100% - var(--container)) / 2)); background: #090909; }
.organometry-faq h2 { max-width: 650px; color: var(--paper); }
.organometry-faq > div:last-child { border-top: 1px solid #393939; }
.organometry-faq details { border-bottom: 1px solid #393939; }
.organometry-faq summary { display: grid; grid-template-columns: minmax(0, 1fr) 28px; gap: 18px; padding: 25px 0; color: var(--paper); cursor: pointer; font-size: 1.04rem; font-weight: 650; list-style: none; }
.organometry-faq summary::-webkit-details-marker { display: none; }
.organometry-faq summary b { color: var(--green); font-size: 1.3rem; font-weight: 400; transition: transform .2s ease; }
.organometry-faq details[open] summary b { transform: rotate(45deg); }
.organometry-faq details p { max-width: 620px; margin: -4px 40px 25px 0; color: #aaa; line-height: 1.65; }

@media (max-width: 980px) {
  .organometry-overview { grid-template-columns: 1fr 1fr; gap: 34px; }
  .organometry-map ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .organometry-map li { min-height: 240px; }
  .organometry-step,
  .organometry-step + .organometry-step { grid-template-columns: 1fr 1fr; }
  .organometry-scope > header { grid-template-columns: 1fr; gap: 18px; }
}

@media (max-width: 720px) {
  .organometry-overview,
  .organometry-map > header,
  .organometry-process > header,
  .organometry-faq { grid-template-columns: 1fr; }
  .organometry-overview { padding: 56px 0 70px; }
  .organometry-device { box-shadow: 14px 16px 0 #d6e2bc; }
  .organometry-overview-copy aside { grid-template-columns: 1fr; gap: 8px; }
  .organometry-map { padding: 58px 20px 64px; }
  .organometry-map ol,
  .organometry-scope-grid { grid-template-columns: 1fr; }
  .organometry-map li { min-height: 215px; }
  .organometry-map li h3 { margin-top: 48px; }
  .organometry-process { padding: 62px 0 76px; }
  .organometry-process > header .label { grid-column: auto; margin-bottom: -5px; }
  .organometry-step,
  .organometry-step + .organometry-step { grid-template-columns: 1fr; min-height: 0; }
  .organometry-step + .organometry-step figure { order: 0; }
  .organometry-step figure { padding: 22px; }
  .organometry-step figure img { height: auto; max-height: 340px; object-fit: contain; }
  .organometry-step > div { padding: 34px 24px 42px; }
  .organometry-step > div > span { margin-bottom: 38px; }
  .organometry-scope-grid section { min-height: 0; }
  .organometry-faq { gap: 32px; padding: 60px 20px 70px; }
}

/* Lectura editorial para párrafos heredados excepcionalmente largos. */
.content-page:not(.legal-page) .legacy-content p.legacy-longform,
.studio-content-page .legacy-content p.legacy-longform {
  width: min(100%, 1080px) !important;
  max-width: none !important;
  margin: 38px auto 48px !important;
  padding: clamp(28px, 4vw, 48px) !important;
  column-count: 2;
  column-gap: clamp(36px, 5vw, 68px);
  column-rule: 1px solid #cbc6be;
  color: #343434 !important;
  background: linear-gradient(135deg, rgba(172,218,0,.08), transparent 42%), #f0ede7;
  border-top: 3px solid var(--green);
  font-size: clamp(.98rem, 1.05vw, 1.08rem) !important;
  line-height: 1.72 !important;
}
.studio-content-page .legacy-content p.legacy-longform { background: linear-gradient(135deg, rgba(236,25,134,.08), transparent 42%), #f0ede7; border-top-color: var(--pink); }

@media (max-width: 700px) {
  .content-page:not(.legal-page) .legacy-content p.legacy-longform,
  .studio-content-page .legacy-content p.legacy-longform { margin: 24px auto 34px !important; padding: 24px 20px !important; column-count: 1; column-rule: 0; }
}

/* Respuesta inicial para artículos con alta visibilidad orgánica. */
.article-search-brief { width: min(100%, var(--container)); margin: 0 auto; padding: clamp(58px, 7vw, 108px) var(--pad); display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); gap: clamp(50px, 8vw, 130px); border-bottom: 1px solid var(--line-dark); background: linear-gradient(120deg, rgba(168,210,27,.09), transparent 38%); }
.article-search-brief h2 { max-width: 780px; margin: 0 0 24px; font-size: clamp(2.25rem, 4.3vw, 5.1rem); line-height: .96; letter-spacing: -.06em; }
.article-search-brief > div > p:last-child { max-width: 780px; margin: 0; font-size: clamp(1.15rem, 1.55vw, 1.45rem); line-height: 1.5; }
.article-search-brief ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line-dark); }
.article-search-brief li { display: grid; grid-template-columns: 28px 1fr; gap: 14px; padding: 20px 0; border-bottom: 1px solid var(--line-dark); }
.article-search-brief li span { color: var(--green-dark); }
.article-search-brief li p { margin: 0; }

.team-history { width: min(100%, var(--container)); margin: 0 auto; padding: clamp(70px, 8vw, 118px) var(--pad); }
.team-history summary { display: flex; align-items: flex-start; justify-content: space-between; gap: 40px; padding-bottom: 34px; cursor: pointer; list-style: none; border-bottom: 1px solid var(--line-dark); }
.team-history summary::-webkit-details-marker { display: none; }
.team-history summary > div { max-width: 900px; }
.team-history summary h2 { margin: 0 0 18px; font-size: clamp(2.35rem, 4vw, 4.8rem); line-height: .96; letter-spacing: -.06em; }
.team-history summary p:last-child { max-width: 760px; margin: 0; color: #565656; }
.team-history summary > b { color: var(--green-dark); font-size: 2rem; transition: transform .2s ease; }
.team-history details[open] summary > b { transform: rotate(45deg); }
.team-history nav { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 28px; border-top: 1px solid var(--line-dark); border-left: 1px solid var(--line-dark); }
.team-history nav a { display: flex; justify-content: space-between; gap: 24px; min-height: 92px; padding: 24px; border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.team-history nav a:hover { color: var(--green-dark); background: rgba(168,210,27,.08); }
.team-history nav a > b { color: var(--green-dark); }

/* Studio discipline editorial system */
.studio-practice { background: var(--paper); }
.studio-practice-intro,
.studio-practice-session,
.studio-practice-before,
.studio-practice-faq,
.studio-practice-next,
.studio-practice-source,
.studio-practice-focus { width: min(100%, var(--container)); margin: 0 auto; padding-left: var(--pad); padding-right: var(--pad); }
.studio-practice-intro { display: grid; grid-template-columns: minmax(0, .9fr) minmax(320px, 1.1fr); gap: clamp(44px, 8vw, 140px); padding-top: clamp(72px, 9vw, 132px); padding-bottom: clamp(64px, 8vw, 118px); }
.studio-practice-intro h2,
.studio-practice-focus h2,
.studio-practice-session h2,
.studio-practice-before h2,
.studio-practice-faq h2 { margin: 0; font-size: clamp(2.35rem, 4.8vw, 5.5rem); line-height: .94; letter-spacing: -.065em; }
.studio-practice-intro > p { align-self: end; max-width: 760px; margin: 0; font-size: clamp(1.1rem, 1.55vw, 1.5rem); line-height: 1.55; }
.studio-practice-focus { padding-bottom: clamp(72px, 9vw, 132px); }
.studio-practice-focus > header { display: grid; grid-template-columns: .65fr 1.35fr; gap: 40px; padding-bottom: 40px; border-bottom: 1px solid var(--line-dark); }
.studio-practice-focus > header h2 { max-width: 820px; }
.studio-practice-focus > div { display: grid; grid-template-columns: repeat(3, 1fr); border-left: 1px solid var(--line-dark); }
.studio-practice-focus article { min-height: 300px; padding: clamp(28px, 3vw, 48px); border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.studio-practice-focus article > span { color: var(--pink); font-size: .78rem; font-weight: 800; letter-spacing: .12em; }
.studio-practice-focus h3 { max-width: 260px; margin: 66px 0 18px; font-size: clamp(1.55rem, 2.2vw, 2.5rem); line-height: 1; letter-spacing: -.045em; }
.studio-practice-focus article p { margin: 0; color: #535353; }
.studio-practice-session { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(48px, 9vw, 150px); width: 100%; max-width: none; padding-top: clamp(76px, 9vw, 132px); padding-bottom: clamp(76px, 9vw, 132px); }
.studio-practice-session > div { margin-left: max(0px, calc((100vw - var(--container)) / 2)); }
.studio-practice-session > p { align-self: end; max-width: 650px; margin: 0 max(var(--pad), calc((100vw - var(--container)) / 2)) 0 0; color: #d1d1d1; font-size: clamp(1.08rem, 1.45vw, 1.4rem); line-height: 1.6; }
.studio-practice-before { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(50px, 9vw, 150px); padding-top: clamp(72px, 9vw, 132px); padding-bottom: clamp(72px, 9vw, 132px); border-bottom: 1px solid var(--line-dark); }
.studio-practice-before > p { align-self: end; margin: 0; padding: clamp(28px, 4vw, 56px); border-left: 3px solid var(--pink); background: #fff; font-size: 1.1rem; line-height: 1.65; }
.studio-practice-faq { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(48px, 9vw, 150px); padding-top: clamp(72px, 9vw, 132px); padding-bottom: clamp(72px, 9vw, 132px); }
.studio-practice-faq details { border-top: 1px solid var(--line-dark); }
.studio-practice-faq details:last-child { border-bottom: 1px solid var(--line-dark); }
.studio-practice-faq summary { display: flex; justify-content: space-between; gap: 28px; padding: 24px 0; cursor: pointer; list-style: none; font-weight: 750; }
.studio-practice-faq summary::-webkit-details-marker { display: none; }
.studio-practice-faq summary b { color: var(--pink); font-size: 1.4rem; transition: transform .2s ease; }
.studio-practice-faq details[open] summary b { transform: rotate(45deg); }
.studio-practice-faq details p { max-width: 720px; margin: 0 0 28px; color: #515151; }
.studio-practice-next { width: 100%; max-width: none; padding-top: 72px; padding-bottom: 72px; }
.studio-practice-next > p,
.studio-practice-next > div { width: min(calc(100% - (var(--pad) * 2)), var(--container)); margin-left: auto; margin-right: auto; }
.studio-practice-next > div { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 20px; border-top: 1px solid #343434; border-left: 1px solid #343434; }
.studio-practice-next a { display: flex; justify-content: space-between; gap: 24px; padding: 28px; border-right: 1px solid #343434; border-bottom: 1px solid #343434; color: #fff; font-size: 1.1rem; }
.studio-practice-next a:hover { color: var(--pink); background: rgba(225,0,113,.08); }
.studio-practice-source { padding-top: 44px; padding-bottom: 80px; }
.studio-practice-source > summary { display: flex; justify-content: space-between; gap: 24px; padding: 26px 0; border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); cursor: pointer; list-style: none; font-weight: 750; }
.studio-practice-source > summary::-webkit-details-marker { display: none; }
.studio-practice-source > summary b { color: var(--pink); font-size: 1.5rem; transition: transform .2s ease; }
.studio-practice-source[open] > summary b { transform: rotate(45deg); }
.studio-practice-source .legacy-content { width: min(100%, 1040px); margin: 0 auto; padding: 56px 0 0; }
.historical-profile-shell { grid-template-columns: minmax(180px, .28fr) minmax(0, 1fr); }
.historical-profile-note { margin-bottom: 54px; padding: 30px; border-left: 3px solid var(--green); background: rgba(168,210,27,.08); }
.historical-profile-note strong { display: block; margin-bottom: 10px; font-size: 1.1rem; }
.historical-profile-note p { max-width: 720px; margin: 0 0 16px; }
.historical-profile-note a { font-weight: 750; color: var(--green-dark); }

/* Contenido completo integrado en técnicas, tratamientos y disciplinas. */
.integrated-article-content {
  width: 100%;
  margin: 0;
  padding: clamp(72px, 8vw, 126px) max(var(--pad), calc((100% - var(--container)) / 2));
  overflow: clip;
  background:
    radial-gradient(circle at 92% 3%, rgba(168,210,27,.13), transparent 27%),
    linear-gradient(180deg, #efede7 0%, #f7f4ef 42%, #efede7 100%);
  border-top: 1px solid var(--line-dark);
  border-bottom: 1px solid var(--line-dark);
}
.integrated-article-studio {
  background:
    radial-gradient(circle at 92% 3%, rgba(225,0,113,.11), transparent 28%),
    linear-gradient(180deg, #efebe9 0%, #f8f5f2 42%, #eee9e7 100%);
}
.integrated-article-header {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr);
  align-items: end;
  gap: clamp(44px, 8vw, 132px);
  width: min(100%, var(--container));
  margin: 0 auto clamp(54px, 7vw, 92px);
  padding-bottom: clamp(34px, 4vw, 52px);
  border-bottom: 1px solid #c8c3bb;
}
.integrated-article-header h2 {
  max-width: 880px;
  margin: 0;
  font-size: clamp(2.45rem, 4.8vw, 5.55rem);
  line-height: .94;
  letter-spacing: -.065em;
  text-wrap: balance;
}
.integrated-article-header > p {
  max-width: 660px;
  margin: 0 0 6px;
  color: #4e4e4e;
  font-size: clamp(1.04rem, 1.3vw, 1.24rem);
  line-height: 1.65;
}
.integrated-article-body {
  width: min(100%, var(--container));
  max-width: none;
  margin: 0 auto;
}
.integrated-article-body > p,
.integrated-article-body > ul,
.integrated-article-body > ol,
.integrated-article-body > blockquote,
.integrated-article-body > h2,
.integrated-article-body > h3,
.integrated-article-body > h4 {
  width: min(100%, 920px);
  margin-right: auto;
  margin-left: auto;
}
.integrated-article-body > h2,
.integrated-article-body > h3 {
  margin-top: clamp(48px, 6vw, 82px);
  padding-top: 24px;
  border-top: 2px solid var(--green);
  font-size: clamp(1.85rem, 3vw, 3.45rem);
  line-height: 1;
  letter-spacing: -.045em;
}
.integrated-article-studio .integrated-article-body > h2,
.integrated-article-studio .integrated-article-body > h3 { border-top-color: var(--pink); }
.integrated-article-body > p,
.integrated-article-body > li { color: #3f3f3f; font-size: clamp(1rem, 1.06vw, 1.1rem); line-height: 1.76; }
.integrated-article-body .elementor > .elementor-top-section { counter-increment: integrated-section; }
.integrated-article-body .elementor > .elementor-top-section:has(h2, h3, h4, p, li, blockquote, table) {
  position: relative;
  width: 100%;
  margin: 0 0 clamp(24px, 4vw, 54px);
}
.integrated-article-body .elementor > .elementor-top-section:has(img) {
  box-shadow: 0 28px 70px rgba(64,55,43,.08);
}
.integrated-article-body .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.integrated-article-body .elementor-button {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin: 8px 8px 8px 0;
  padding: 11px 18px;
  border: 1px solid var(--green-dark);
  color: var(--ink);
  font-weight: 700;
}
.integrated-article-studio .integrated-article-body .elementor-button { border-color: var(--pink); }

/* Vídeo contextual: lectura y audiovisual forman una única composición editorial. */
.context-video {
  position: relative;
  display: grid;
  grid-template-columns: minmax(280px, .76fr) minmax(0, 1.24fr);
  gap: clamp(34px, 6vw, 94px);
  align-items: center;
  width: min(calc(100% - (var(--pad) * 2)), var(--container));
  margin: clamp(62px, 7vw, 108px) auto;
  padding: clamp(34px, 4.5vw, 66px);
  color: #f6f4ee;
  background:
    radial-gradient(circle at 8% 100%, rgba(168,210,27,.18), transparent 32%),
    #10110f;
  overflow: visible;
}
.context-video-copy { max-width: 540px; }
.context-video-copy h2 { margin: 12px 0 22px; color: #fff; font-size: clamp(2rem, 3.4vw, 4.15rem); line-height: .96; letter-spacing: -.055em; text-wrap: balance; }
.context-video-copy > p:not(.label) { margin: 0; color: #c9cbc3; font-size: clamp(1rem, 1.15vw, 1.12rem); line-height: 1.66; }
.context-video-copy > a { display: inline-flex; gap: 14px; align-items: center; margin-top: 28px; padding-bottom: 6px; color: var(--green-bright); border-bottom: 1px solid rgba(168,210,27,.6); font-weight: 750; }
.context-video-frame { position: relative; z-index: 1; aspect-ratio: 16 / 9; background: #000; box-shadow: 0 30px 70px rgba(0,0,0,.38); }
.context-video-frame::before { content: ""; position: absolute; z-index: -1; inset: -13px 15px 15px -13px; border: 1px solid rgba(168,210,27,.68); transform: rotate(-.75deg); pointer-events: none; }
.context-video-frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.context-video-article { margin-top: clamp(54px, 6vw, 88px); margin-bottom: clamp(54px, 6vw, 88px); }

/* Relacionados del blog: la misma fórmula visual que el archivo, no una tarjeta genérica. */
.related-blog-content { padding-top: clamp(66px, 7vw, 106px); padding-bottom: clamp(78px, 8vw, 124px); background: #efede7; }
.related-blog-content .related-heading { display: grid; grid-template-columns: minmax(0, .72fr) minmax(320px, 1.28fr); align-items: end; gap: 34px; margin-bottom: clamp(38px, 5vw, 68px); }
.related-blog-content .related-heading h2 { max-width: 760px; margin: 0; font-size: clamp(2.25rem, 4vw, 4.8rem); line-height: .96; letter-spacing: -.055em; }
.related-blog-grid { gap: clamp(34px, 4vw, 60px) clamp(20px, 2.4vw, 38px); }
.related-blog-grid .blog-archive-card.is-shifted { margin-top: 42px; }

/* Ritmo editorial para artículos: titulares anclados, lectura medida e imágenes enmarcadas. */
.article-page:not(.testimonial-page) .article-content { counter-reset: article-section; }
.article-page:not(.testimonial-page) .article-content > h2 {
  counter-increment: article-section;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 22px;
  align-items: baseline;
  max-width: 980px;
  margin-top: clamp(68px, 8vw, 116px);
  padding-top: 22px;
  border-top: 1px solid rgba(22,24,18,.22);
  font-size: clamp(2rem, 3.5vw, 4rem);
  line-height: .98;
  letter-spacing: -.05em;
  text-wrap: balance;
}
.article-page:not(.testimonial-page) .article-content > h2::before { content: counter(article-section, decimal-leading-zero); color: var(--green-dark); font-size: .72rem; font-weight: 750; letter-spacing: .08em; }
.article-page:not(.testimonial-page) .article-content > h3 { max-width: 800px; margin-top: clamp(44px, 5vw, 72px); font-size: clamp(1.45rem, 2.3vw, 2.45rem); line-height: 1.05; letter-spacing: -.035em; }
.article-page:not(.testimonial-page) .article-content > p,
.article-page:not(.testimonial-page) .article-content > ul,
.article-page:not(.testimonial-page) .article-content > ol { max-width: 820px; }
.article-page:not(.testimonial-page) .article-content > div:not([class]) > p,
.article-page:not(.testimonial-page) .article-content > div:not([class]) > ul,
.article-page:not(.testimonial-page) .article-content > div:not([class]) > ol { max-width: 820px; }
.article-page:not(.testimonial-page) .article-content > div:not([class]) > p:first-of-type {
  max-width: 980px;
  margin: clamp(42px, 5vw, 70px) 0;
  padding: clamp(28px, 4vw, 52px);
  color: #34362f;
  background: #e8eadf;
  border-left: 2px solid var(--green);
  column-count: 2;
  column-gap: clamp(32px, 5vw, 66px);
  column-rule: 1px solid rgba(22,24,18,.13);
  font-size: clamp(1.02rem, 1.18vw, 1.16rem);
  line-height: 1.75;
}
.article-page:not(.testimonial-page) .article-content > div:not([class]) > p.legacy-longform {
  max-width: 980px;
  margin: clamp(42px, 5vw, 72px) 0;
  padding: clamp(28px, 4vw, 48px);
  background: #f0eee8;
  border-top: 1px solid rgba(74,91,39,.34);
  column-count: 2;
  column-gap: clamp(32px, 5vw, 66px);
  column-rule: 1px solid rgba(22,24,18,.12);
  line-height: 1.75;
}
.article-page:not(.testimonial-page) .article-content > div:not([class]) > p:has(> strong:first-child):not(.legacy-longform) {
  margin-top: clamp(34px, 4vw, 58px);
  color: #1c1e19;
  font-size: clamp(1.08rem, 1.35vw, 1.32rem);
  line-height: 1.48;
}
.article-page:not(.testimonial-page) .article-content > div:not([class]) > h2 {
  max-width: 980px;
  margin: clamp(70px, 8vw, 116px) 0 28px;
  padding: 22px 0 0 70px;
  border-top: 1px solid rgba(22,24,18,.22);
  font-size: clamp(2rem, 3.5vw, 4rem);
  line-height: .98;
  letter-spacing: -.05em;
  text-wrap: balance;
}
.article-page:not(.testimonial-page) .article-content > div:not([class]) > h3 {
  max-width: 850px;
  margin: clamp(50px, 6vw, 82px) 0 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(22,24,18,.18);
  font-size: clamp(1.55rem, 2.35vw, 2.55rem);
  line-height: 1.03;
  letter-spacing: -.04em;
  text-wrap: balance;
}
.article-page:not(.testimonial-page) .article-content .wp-block-columns {
  display: grid;
  grid-template-columns: minmax(260px, .82fr) minmax(0, 1.18fr);
  gap: clamp(32px, 6vw, 78px);
  align-items: center;
  max-width: 980px;
  margin: clamp(54px, 7vw, 96px) 0;
}
.article-page:not(.testimonial-page) .article-content .wp-block-column { min-width: 0; }
.article-page:not(.testimonial-page) .article-content > blockquote { max-width: 980px; margin: clamp(58px, 7vw, 96px) 0; padding: clamp(30px, 4vw, 54px) clamp(34px, 5vw, 72px); background: #e8edd9; border: 0; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(1.4rem, 2.4vw, 2.65rem); line-height: 1.28; }
.article-page:not(.testimonial-page) .article-content figure:has(> img),
.article-page:not(.testimonial-page) .article-content .elementor-widget-image {
  position: relative;
  isolation: isolate;
  overflow: visible;
  padding: clamp(10px, 1.4vw, 18px);
  background: #e6e3db;
  box-shadow: 0 24px 58px rgba(60,52,43,.12);
}
.article-page:not(.testimonial-page) .article-content figure:has(> img)::before,
.article-page:not(.testimonial-page) .article-content .elementor-widget-image::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -9px 11px 10px -10px;
  border: 1px solid rgba(74,91,39,.38);
  transform: rotate(-.55deg);
  pointer-events: none;
}
.article-page:not(.testimonial-page) .article-content figure:nth-of-type(even):has(> img)::before,
.article-page:not(.testimonial-page) .article-content .elementor-widget-image:nth-of-type(even)::before { inset: -8px -10px 11px 10px; transform: rotate(.7deg); }

/* El texto completo heredado se recompone como revista: capítulos, columnas y pausas visuales. */
.integrated-article-body .legacy-section-longform {
  width: min(100%, 1160px);
  margin-right: auto !important;
  margin-left: auto !important;
  padding: clamp(42px, 6vw, 84px) clamp(28px, 6vw, 92px) !important;
  background: rgba(255,255,255,.58);
  box-shadow: 0 28px 76px rgba(58,50,40,.08);
}
.integrated-article-body .legacy-section-longform .elementor-widget-heading,
.integrated-article-body .legacy-section-longform .elementor-widget-text-editor { width: min(100%, 980px); }
.integrated-article-body .legacy-section-longform .elementor-widget-text-editor > div {
  column-count: 2;
  column-gap: clamp(34px, 5vw, 72px);
  column-rule: 1px solid rgba(22,24,18,.12);
}
.integrated-article-body .legacy-section-longform .elementor-widget-text-editor h2,
.integrated-article-body .legacy-section-longform .elementor-widget-text-editor h3 { column-span: all; }
.integrated-article-body .legacy-section-longform h2,
.integrated-article-body .legacy-section-longform h3,
.integrated-article-body .legacy-section-text h2,
.integrated-article-body .legacy-section-text h3 {
  margin: clamp(42px, 5vw, 68px) 0 24px;
  padding-top: 18px;
  border-top: 1px solid rgba(74,91,39,.34);
  font-size: clamp(1.65rem, 2.7vw, 3.2rem);
  line-height: 1;
  letter-spacing: -.045em;
  text-wrap: balance;
}
.integrated-article-body .legacy-section-longform h3,
.integrated-article-body .legacy-section-text h3 { font-size: clamp(1.28rem, 1.8vw, 2rem); }
.integrated-article-body .legacy-section-longform p,
.integrated-article-body .legacy-section-text p { color: #3f403b; font-size: clamp(.99rem, 1.04vw, 1.08rem); line-height: 1.76; text-align: left !important; }
.integrated-article-body .legacy-section-longform p { break-inside: avoid-column; }
.integrated-article-body .legacy-section-text {
  width: min(100%, 1120px) !important;
  margin: clamp(30px, 5vw, 74px) auto !important;
  padding: clamp(32px, 5vw, 68px) !important;
  background: rgba(255,255,255,.44);
  border-top: 1px solid rgba(22,24,18,.13);
  border-bottom: 1px solid rgba(22,24,18,.13);
}
.integrated-article-body .legacy-section-text:nth-of-type(even) { width: min(94%, 1040px) !important; margin-left: 0 !important; background: #e7eadb; }
.integrated-article-body .legacy-section-text:nth-of-type(odd) { margin-right: 0 !important; }
.integrated-article-body .legacy-section-text > .elementor-container {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr));
  gap: clamp(30px, 5vw, 74px);
}
.integrated-article-body .legacy-section-gallery {
  position: relative;
  width: min(100%, 1160px) !important;
  margin: clamp(54px, 7vw, 98px) auto !important;
  padding: clamp(22px, 3vw, 38px) !important;
  background: #e4e0d6;
  box-shadow: 0 28px 70px rgba(64,55,43,.11);
}
.integrated-article-body .legacy-section-gallery::before { content: ""; position: absolute; inset: -12px 14px 13px -13px; border: 1px solid rgba(74,91,39,.36); transform: rotate(-.4deg); pointer-events: none; }
.integrated-article-body .legacy-section-gallery .elementor-widget-image { position: relative; overflow: hidden; background: #d7d3c8; }
.integrated-article-body .legacy-section-gallery .elementor-widget-image img { transition: transform .5s cubic-bezier(.2,.72,.2,1); }
.integrated-article-body .legacy-section-gallery .elementor-widget-image:hover img { transform: scale(1.018); }
.integrated-article-studio .legacy-section-longform h2,
.integrated-article-studio .legacy-section-longform h3,
.integrated-article-studio .legacy-section-text h2,
.integrated-article-studio .legacy-section-text h3 { border-top-color: rgba(184,0,92,.38); }
.integrated-article-studio .legacy-section-text:nth-of-type(even) { background: #f2dfe8; }
.integrated-article-studio .legacy-section-gallery::before { border-color: rgba(225,0,113,.38); }

/*
 * Armonía editorial: la lectura continua es el patrón base. Las columnas
 * quedan reservadas para comparaciones breves y nunca se anidan entre sí.
 */
.content-page:not(.legal-page) .legacy-content p.legacy-longform,
.studio-content-page .legacy-content p.legacy-longform,
.article-page:not(.testimonial-page) .article-content > div:not([class]) > p:first-of-type,
.article-page:not(.testimonial-page) .article-content > div:not([class]) > p.legacy-longform,
.integrated-article-body .legacy-section-longform .elementor-widget-text-editor > div {
  column-count: 1;
  column-rule: 0;
}
.content-page:not(.legal-page) .legacy-content p.legacy-longform,
.studio-content-page .legacy-content p.legacy-longform {
  width: min(100%, 860px) !important;
}
.integrated-article-body .legacy-section-longform .elementor-widget-text-editor {
  width: min(100%, 860px);
  margin-right: auto;
  margin-left: auto;
}
.integrated-article-body .legacy-section-longform p { break-inside: auto; }

/* Panel ancho: comparte los ejes de la cabecera sin ensanchar la línea de lectura. */
.integrated-article-body .legacy-section-text.editorial-panel-wide,
.integrated-article-body .legacy-section-text.editorial-panel-wide:nth-of-type(even),
.integrated-article-body .legacy-section-text.editorial-panel-wide:nth-of-type(odd) {
  position: relative;
  width: min(100%, var(--container)) !important;
  margin: clamp(34px, 5vw, 76px) auto !important;
  padding: clamp(44px, 5vw, 76px) clamp(38px, 6vw, 88px) clamp(50px, 6vw, 86px) !important;
  overflow: hidden;
  background:
    radial-gradient(circle at 88% 14%, rgba(225, 0, 113, .12), transparent 30%),
    linear-gradient(112deg, #f2dfe8 0%, #f5e8ee 58%, #eee8e7 100%);
  border-top: 1px solid rgba(184, 0, 92, .24);
  border-bottom: 1px solid rgba(184, 0, 92, .2);
}
.integrated-article-body .legacy-section-text.editorial-panel-wide::after {
  content: "01";
  position: absolute;
  right: clamp(24px, 4vw, 62px);
  bottom: -0.22em;
  color: rgba(184, 0, 92, .065);
  font-size: clamp(7rem, 16vw, 14rem);
  font-weight: 780;
  line-height: .8;
  letter-spacing: -.08em;
  pointer-events: none;
}
.integrated-article-body .legacy-section-text.editorial-panel-wide > .elementor-container {
  position: relative;
  z-index: 1;
  display: block !important;
}
.integrated-article-body .legacy-section-text.editorial-panel-wide .elementor-widget-text-editor > div {
  display: grid;
  grid-template-columns: minmax(150px, 210px) minmax(0, 860px);
  gap: clamp(34px, 5vw, 76px);
  align-items: start;
}
.integrated-article-body .legacy-section-text.editorial-panel-wide .elementor-widget-text-editor > div > p {
  margin: 0;
}
.integrated-article-body .legacy-section-text.editorial-panel-wide .elementor-widget-text-editor > div > p:empty,
.integrated-article-body .legacy-section-text.editorial-panel-wide .elementor-widget-text-editor > div > p:has(> br:only-child) {
  display: none;
}
.integrated-article-body .legacy-section-text.editorial-panel-wide .elementor-widget-text-editor > div > p:first-child {
  grid-column: 1;
  padding-top: .42rem;
  color: #b8005c !important;
  font-size: .76rem;
  font-weight: 760;
  line-height: 1.3;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.integrated-article-body .legacy-section-text.editorial-panel-wide .elementor-widget-text-editor > div > p:last-child:not(:first-child) {
  grid-column: 2;
  max-width: 860px;
  color: #26231f !important;
  font-size: clamp(1.16rem, 1.45vw, 1.43rem);
  line-height: 1.58;
  text-wrap: pretty;
}

/*
 * Collage editorial adaptativo. El generador asigna cantidad y orientación
 * para que cada conjunto use una composición propia sin marcos vacíos.
 */
.legacy-content .legacy-section-gallery.editorial-collage,
.integrated-article-body .legacy-section-gallery.editorial-collage {
  --collage-accent: #86b900;
  --collage-accent-soft: rgba(134, 185, 0, .12);
  --collage-plate: #e7e5df;
  position: relative;
  isolation: isolate;
  width: min(100%, var(--container)) !important;
  margin: clamp(58px, 7vw, 104px) auto !important;
  padding: clamp(18px, 2.8vw, 38px) !important;
  overflow: visible;
  background: transparent !important;
  border-top: 0 !important;
  box-shadow: none !important;
}
.studio-content-page .legacy-section-gallery.editorial-collage,
.integrated-article-studio .legacy-section-gallery.editorial-collage {
  --collage-accent: #e10071;
  --collage-accent-soft: rgba(225, 0, 113, .11);
  --collage-plate: #eee7ea;
}
.legacy-content .legacy-section-gallery.editorial-collage::before,
.integrated-article-body .legacy-section-gallery.editorial-collage::before {
  content: "" !important;
  position: absolute;
  z-index: 0;
  left: 1.5%;
  bottom: 4%;
  width: 62%;
  height: 61%;
  border: 2px solid var(--collage-accent);
  border-radius: 18px;
  transform: none;
  pointer-events: none;
}
.legacy-content .legacy-section-gallery.editorial-collage::after {
  content: "";
  position: absolute;
  z-index: 0;
  right: 1%;
  bottom: 0;
  width: 46%;
  height: 46%;
  border-radius: 24px;
  background: linear-gradient(135deg, var(--collage-plate), var(--collage-accent-soft));
  pointer-events: none;
}
.legacy-content .legacy-section-gallery.editorial-collage > .elementor-container {
  position: relative;
  z-index: 1;
  display: block !important;
  width: min(100%, 1180px);
  margin: 0 auto;
  aspect-ratio: 16 / 9.25;
}
.legacy-content .legacy-section-gallery.editorial-collage > .elementor-container > .elementor-column {
  position: absolute !important;
  width: auto;
  min-width: 0;
}
.legacy-content .legacy-section-gallery.editorial-collage > .elementor-container > .elementor-column:has(img) {
  display: block !important;
}
.legacy-content .legacy-section-gallery.editorial-collage .elementor-widget-wrap,
.legacy-content .legacy-section-gallery.editorial-collage .elementor-widget-image,
.legacy-content .legacy-section-gallery.editorial-collage .elementor-widget-image > div {
  width: 100%;
  height: 100%;
}
.legacy-content .legacy-section-gallery.editorial-collage .elementor-widget-image {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(42, 40, 35, .16);
  border-radius: 18px;
  background: #f3f1eb;
  box-shadow: 0 22px 48px rgba(47, 42, 34, .14);
}
.legacy-content .legacy-section-gallery.editorial-collage .elementor-widget-image::after {
  content: none;
}
.legacy-content .legacy-section-gallery.editorial-collage img.legacy-image {
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  transition: transform .5s cubic-bezier(.2, .72, .2, 1);
}
.legacy-content .legacy-section-gallery.editorial-collage img.legacy-image-square.is-low-resolution {
  object-fit: contain !important;
}

/* Una imagen: presencia amplia, sin fingir una galería. */
.legacy-content .editorial-collage--single > .elementor-container { aspect-ratio: 16 / 7.4 !important; }
.legacy-content .editorial-collage--single > .elementor-container > .editorial-collage-item--1 {
  inset: 0 5%;
  z-index: 1;
}
.legacy-content .editorial-collage--single::before { left: 2%; width: 72%; height: 72%; }
.legacy-content .editorial-collage--single::after { right: 2%; width: 36%; height: 58%; }

/* Dos imágenes: una base dominante y otra pieza superpuesta. */
.legacy-content .editorial-collage--duo > .elementor-container > .editorial-collage-item--1 {
  z-index: 1;
  top: 0;
  left: 1%;
  width: 70% !important;
  height: 82%;
}
.legacy-content .editorial-collage--duo > .elementor-container > .editorial-collage-item--2 {
  z-index: 2;
  right: 1%;
  bottom: 0;
  width: 41% !important;
  height: 57%;
}
.legacy-content .editorial-collage--duo.editorial-collage--mixed > .elementor-container > .elementor-column:has(img.legacy-image-landscape) {
  z-index: 1;
  top: 0;
  right: auto;
  bottom: auto;
  left: 1%;
  width: 70% !important;
  height: 82%;
}
.legacy-content .editorial-collage--duo.editorial-collage--mixed > .elementor-container > .elementor-column:has(img.legacy-image-landscape) ~ .elementor-column:has(img),
.legacy-content .editorial-collage--duo.editorial-collage--mixed > .elementor-container > .elementor-column:has(img):not(:has(img.legacy-image-landscape)) {
  z-index: 2;
  top: auto;
  right: 1%;
  bottom: 0;
  left: auto;
  width: 41% !important;
  height: 57%;
}
.legacy-content .editorial-collage--duo.editorial-collage--portrait > .elementor-container,
.legacy-content .editorial-collage--duo.editorial-collage--square > .elementor-container { aspect-ratio: 16 / 10 !important; }
.legacy-content .editorial-collage--duo.editorial-collage--portrait > .elementor-container > .editorial-collage-item--1,
.legacy-content .editorial-collage--duo.editorial-collage--square > .elementor-container > .editorial-collage-item--1 {
  left: 8%;
  width: 48% !important;
  height: 88%;
}
.legacy-content .editorial-collage--duo.editorial-collage--portrait > .elementor-container > .editorial-collage-item--2,
.legacy-content .editorial-collage--duo.editorial-collage--square > .elementor-container > .editorial-collage-item--2 {
  right: 8%;
  width: 45% !important;
  height: 76%;
}

/* Tres imágenes: la tercera cierra el hueco inferior y evita una fila rígida. */
.legacy-content .editorial-collage--trio > .elementor-container { aspect-ratio: 16 / 10.2 !important; }
.legacy-content .editorial-collage--trio > .elementor-container > .editorial-collage-item--1 {
  z-index: 1;
  top: 3%;
  left: 0;
  width: 63% !important;
  height: 64%;
}
.legacy-content .editorial-collage--trio > .elementor-container > .editorial-collage-item--2 {
  z-index: 3;
  top: 0;
  right: 0;
  width: 38% !important;
  height: 50%;
}
.legacy-content .editorial-collage--trio > .elementor-container > .editorial-collage-item--3 {
  z-index: 2;
  right: 7%;
  bottom: 0;
  width: 49% !important;
  height: 48%;
}
.legacy-content .editorial-collage--trio.editorial-collage--mixed > .elementor-container > .elementor-column:has(img.legacy-image-portrait) {
  z-index: 3;
  top: 0;
  right: 0;
  bottom: auto;
  left: auto;
  width: 34% !important;
  height: 82%;
}

/* Cuatro y más: mosaico compacto, con una imagen que ordena la lectura. */
.legacy-content .editorial-collage--quad > .elementor-container,
.legacy-content .editorial-collage--mosaic > .elementor-container { aspect-ratio: 16 / 10 !important; }
.legacy-content .editorial-collage--quad > .elementor-container > .editorial-collage-item--1,
.legacy-content .editorial-collage--mosaic > .elementor-container > .editorial-collage-item--1 {
  z-index: 1;
  top: 0;
  left: 0;
  width: 64% !important;
  height: 63%;
}
.legacy-content .editorial-collage--quad > .elementor-container > .editorial-collage-item--2,
.legacy-content .editorial-collage--mosaic > .elementor-container > .editorial-collage-item--2 {
  z-index: 2;
  top: 3%;
  right: 0;
  width: 35% !important;
  height: 40%;
}
.legacy-content .editorial-collage--quad > .elementor-container > .editorial-collage-item--3,
.legacy-content .editorial-collage--mosaic > .elementor-container > .editorial-collage-item--3 {
  z-index: 3;
  right: 5%;
  bottom: 8%;
  width: 38% !important;
  height: 42%;
}
.legacy-content .editorial-collage--quad > .elementor-container > .editorial-collage-item--4,
.legacy-content .editorial-collage--mosaic > .elementor-container > .editorial-collage-item--4 {
  z-index: 2;
  bottom: 0;
  left: 8%;
  width: 35% !important;
  height: 33%;
}
.legacy-content .editorial-collage--mosaic > .elementor-container > .editorial-collage-item--5 {
  z-index: 4;
  bottom: 0;
  left: 41%;
  width: 27% !important;
  height: 31%;
}
.legacy-content .editorial-collage--mosaic > .elementor-container { aspect-ratio: 16 / 10.7 !important; }
.legacy-content .editorial-collage--mosaic > .elementor-container > .editorial-collage-item--1 {
  top: 0;
  left: 0;
  width: 62% !important;
  height: 100%;
}
.legacy-content .editorial-collage--mosaic > .elementor-container > .editorial-collage-item--2 {
  top: 0;
  right: 0;
  width: 37% !important;
  height: 42%;
}
.legacy-content .editorial-collage--mosaic > .elementor-container > .editorial-collage-item--3 {
  right: 0;
  bottom: 0;
  width: 37% !important;
  height: 55%;
}
.legacy-content .editorial-collage--mosaic .elementor-column > .elementor-widget-wrap {
  display: grid;
  grid-auto-rows: minmax(0, 1fr);
  gap: clamp(10px, 1vw, 14px);
}
.legacy-content .editorial-collage--mosaic .elementor-background-overlay { display: none; }
.legacy-content .editorial-collage--mosaic .elementor-widget-image,
.legacy-content .editorial-collage--mosaic .elementor-widget-image > div {
  min-height: 0;
}
.legacy-content .editorial-collage--mosaic .elementor-widget-image {
  height: auto !important;
  align-self: stretch;
}

@media (max-width: 800px) {
  .article-search-brief { grid-template-columns: 1fr; gap: 36px; }
  .team-history nav { grid-template-columns: 1fr; }
  .studio-practice-intro,
  .studio-practice-focus > header,
  .studio-practice-session,
  .studio-practice-before,
  .studio-practice-faq { grid-template-columns: 1fr; gap: 28px; }
  .studio-practice-focus > div { grid-template-columns: 1fr; }
  .studio-practice-focus article { min-height: 0; }
  .studio-practice-focus h3 { margin-top: 34px; }
  .studio-practice-session > div { margin-left: 0; }
  .studio-practice-session > p { margin-right: 0; }
  .studio-practice-next > div { grid-template-columns: 1fr; }
  .integrated-article-content { padding: 58px 20px 68px; }
  .integrated-article-header { grid-template-columns: 1fr; gap: 24px; margin-bottom: 42px; }
  .integrated-article-header h2 { font-size: clamp(2.35rem, 12vw, 4rem); }
  .integrated-article-body > h2,
  .integrated-article-body > h3 { margin-top: 44px; }
  .context-video { grid-template-columns: 1fr; width: calc(100% - 32px); gap: 32px; margin: 54px auto; padding: 30px 20px 24px; }
  .context-video-copy h2 { font-size: clamp(2rem, 10vw, 3.15rem); }
  .context-video-frame::before { inset: -7px 8px 8px -7px; }
  .related-blog-content .related-heading { grid-template-columns: 1fr; gap: 16px; }
  .related-blog-grid .blog-archive-card.is-shifted { margin-top: 0; }
  .integrated-article-body .legacy-section-longform { padding: 32px 20px !important; }
  .integrated-article-body .legacy-section-longform .elementor-widget-text-editor > div { column-count: 1; column-rule: 0; }
  .integrated-article-body .legacy-section-text,
  .integrated-article-body .legacy-section-text:nth-of-type(even),
  .integrated-article-body .legacy-section-text:nth-of-type(odd) { width: 100% !important; margin: 28px 0 !important; padding: 28px 20px !important; }
  .integrated-article-body .legacy-section-gallery { width: 100% !important; padding: 14px !important; }
  .article-page:not(.testimonial-page) .article-content > h2 { grid-template-columns: 34px minmax(0, 1fr); gap: 12px; font-size: clamp(1.72rem, 8.4vw, 2.65rem); }
  .article-page:not(.testimonial-page) .article-content > div:not([class]) > p:first-of-type,
  .article-page:not(.testimonial-page) .article-content > div:not([class]) > p.legacy-longform { padding: 24px 20px; column-count: 1; column-rule: 0; }
  .article-page:not(.testimonial-page) .article-content > div:not([class]) > h2 { padding-left: 0; font-size: clamp(1.72rem, 8.4vw, 2.65rem); }
  .article-page:not(.testimonial-page) .article-content .wp-block-columns { grid-template-columns: 1fr; gap: 26px; }
  .article-page:not(.testimonial-page) .article-content figure:has(> img)::before,
  .article-page:not(.testimonial-page) .article-content .elementor-widget-image::before { inset: -5px 6px 7px -6px; }
  .article-page:not(.testimonial-page) .legacy-media-row {
    grid-template-columns: 1fr;
    gap: 22px;
    align-items: start;
  }
  .integrated-article-body .legacy-section-text.editorial-panel-wide,
  .integrated-article-body .legacy-section-text.editorial-panel-wide:nth-of-type(even),
  .integrated-article-body .legacy-section-text.editorial-panel-wide:nth-of-type(odd) {
    padding: 32px 22px 38px !important;
  }
  .integrated-article-body .legacy-section-text.editorial-panel-wide .elementor-widget-text-editor > div {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .integrated-article-body .legacy-section-text.editorial-panel-wide .elementor-widget-text-editor > div > p:first-child,
  .integrated-article-body .legacy-section-text.editorial-panel-wide .elementor-widget-text-editor > div > p:last-child:not(:first-child) {
    grid-column: 1;
  }
  .integrated-article-body .legacy-section-text.editorial-panel-wide::after {
    right: 8px;
    bottom: -0.12em;
    font-size: 8rem;
  }
  .legacy-content .legacy-section-gallery.editorial-collage,
  .integrated-article-body .legacy-section-gallery.editorial-collage {
    margin: 44px auto 58px !important;
    padding: 10px 0 18px !important;
  }
  .legacy-content .legacy-section-gallery.editorial-collage::before,
  .integrated-article-body .legacy-section-gallery.editorial-collage::before {
    left: -4px;
    bottom: 4%;
    width: 70%;
    height: 58%;
    border-radius: 14px;
  }
  .legacy-content .legacy-section-gallery.editorial-collage::after {
    right: -4px;
    width: 52%;
    height: 42%;
    border-radius: 18px;
  }
  .legacy-content .legacy-section-gallery.editorial-collage > .elementor-container {
    width: 100%;
  }
  .legacy-content .legacy-section-gallery.editorial-collage .elementor-widget-image {
    border-radius: 14px;
  }
  .legacy-content .editorial-collage--single > .elementor-container { aspect-ratio: 4 / 2.9 !important; }
  .legacy-content .editorial-collage--single > .elementor-container > .editorial-collage-item--1 { inset: 0 3%; }
  .legacy-content .editorial-collage--duo > .elementor-container,
  .legacy-content .editorial-collage--duo.editorial-collage--portrait > .elementor-container,
  .legacy-content .editorial-collage--duo.editorial-collage--square > .elementor-container { aspect-ratio: 4 / 4.05 !important; }
  .legacy-content .editorial-collage--duo > .elementor-container > .editorial-collage-item--1,
  .legacy-content .editorial-collage--duo.editorial-collage--mixed > .elementor-container > .elementor-column:has(img.legacy-image-landscape) {
    top: 0;
    right: auto;
    bottom: auto;
    left: 0;
    width: 86% !important;
    height: 65%;
  }
  .legacy-content .editorial-collage--duo > .elementor-container > .editorial-collage-item--2,
  .legacy-content .editorial-collage--duo.editorial-collage--mixed > .elementor-container > .elementor-column:has(img.legacy-image-landscape) ~ .elementor-column:has(img),
  .legacy-content .editorial-collage--duo.editorial-collage--mixed > .elementor-container > .elementor-column:has(img):not(:has(img.legacy-image-landscape)) {
    top: auto;
    right: 0;
    bottom: 0;
    left: auto;
    width: 62% !important;
    height: 48%;
  }
  .legacy-content .editorial-collage--duo.editorial-collage--mixed > .elementor-container > .elementor-column:has(img.legacy-image-landscape) {
    top: 0;
    right: auto;
    bottom: auto;
    left: 0;
    width: 86% !important;
    height: 65%;
  }
  .legacy-content .editorial-collage--duo.editorial-collage--portrait > .elementor-container > .editorial-collage-item--1,
  .legacy-content .editorial-collage--duo.editorial-collage--square > .elementor-container > .editorial-collage-item--1 {
    left: 2%;
    width: 67% !important;
    height: 72%;
  }
  .legacy-content .editorial-collage--duo.editorial-collage--portrait > .elementor-container > .editorial-collage-item--2,
  .legacy-content .editorial-collage--duo.editorial-collage--square > .elementor-container > .editorial-collage-item--2 {
    right: 2%;
    width: 60% !important;
    height: 64%;
  }
  .legacy-content .editorial-collage--trio > .elementor-container { aspect-ratio: 4 / 5.1 !important; }
  .legacy-content .editorial-collage--trio > .elementor-container > .editorial-collage-item--1 {
    top: 0;
    left: 0;
    width: 82% !important;
    height: 45%;
  }
  .legacy-content .editorial-collage--trio > .elementor-container > .editorial-collage-item--2,
  .legacy-content .editorial-collage--trio.editorial-collage--mixed > .elementor-container > .elementor-column:has(img.legacy-image-portrait) {
    top: 29%;
    right: 0;
    width: 58% !important;
    height: 42%;
  }
  .legacy-content .editorial-collage--trio > .elementor-container > .editorial-collage-item--3 {
    right: auto;
    bottom: 0;
    left: 4%;
    width: 72% !important;
    height: 36%;
  }
  .legacy-content .legacy-section-gallery.editorial-collage.editorial-collage--quad > .elementor-container,
  .legacy-content .legacy-section-gallery.editorial-collage.editorial-collage--mosaic > .elementor-container {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    aspect-ratio: auto !important;
  }
  .legacy-content .legacy-section-gallery.editorial-collage.editorial-collage--quad > .elementor-container > .elementor-column,
  .legacy-content .legacy-section-gallery.editorial-collage.editorial-collage--mosaic > .elementor-container > .elementor-column {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    height: auto !important;
  }
  .legacy-content .editorial-collage--quad > .elementor-container > .elementor-column:first-child,
  .legacy-content .editorial-collage--mosaic > .elementor-container > .elementor-column:first-child {
    grid-column: 1 / -1;
  }
  .legacy-content .editorial-collage--quad .elementor-widget-image,
  .legacy-content .editorial-collage--mosaic .elementor-widget-image { aspect-ratio: 4 / 3; }
  .legacy-content .editorial-collage--mosaic .elementor-column > .elementor-widget-wrap {
    height: auto;
    gap: 12px;
  }
}

/* ---------------------------------------------------------------------------
   Guía de lectura. Reordena el contenido migrado en apartados navegables con
   un índice fijo. No cambia ni una palabra: solo el orden visual y el ritmo.
   Tipografía: se mantiene Instrument Sans (variable, 400-700, autoalojada).
   El carácter editorial se consigue con escala, peso, medida y aire, no con
   fuentes nuevas: añadirlas significaría peticiones externas antes del
   consentimiento y penalizar el LCP que acabamos de bajar.
--------------------------------------------------------------------------- */
.guia-lectura {
  width: 100%;
  margin: 0;
  padding: clamp(72px, 8vw, 126px) max(var(--pad), calc((100% - var(--container)) / 2));
  overflow: clip;
  background:
    radial-gradient(circle at 92% 3%, rgba(168,210,27,.13), transparent 27%),
    linear-gradient(180deg, #efede7 0%, #f7f4ef 42%, #efede7 100%);
  border-top: 1px solid var(--line-dark);
  border-bottom: 1px solid var(--line-dark);
  --guia-acento: var(--green);
  --guia-acento-oscuro: var(--green-dark);
}
.guia-lectura-studio {
  background:
    radial-gradient(circle at 92% 3%, rgba(225,0,113,.11), transparent 28%),
    linear-gradient(180deg, #efebe9 0%, #f8f5f2 42%, #eee9e7 100%);
  --guia-acento: var(--pink);
  --guia-acento-oscuro: var(--pink-dark);
}

.guia-cabecera {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr);
  align-items: end;
  gap: clamp(44px, 8vw, 132px);
  width: min(100%, var(--container));
  margin: 0 auto clamp(46px, 6vw, 74px);
  padding-bottom: clamp(30px, 3.4vw, 46px);
  border-bottom: 1px solid #c8c3bb;
}
.guia-cabecera h2 {
  max-width: 880px;
  margin: 0;
  font-size: clamp(2.45rem, 4.8vw, 5.55rem);
  line-height: .94;
  letter-spacing: -.065em;
  text-wrap: balance;
}
.guia-cabecera > p { max-width: 660px; margin: 0 0 6px; color: #4e4e4e; font-size: clamp(1.04rem, 1.3vw, 1.24rem); line-height: 1.65; }
.guia-metrica {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 26px;
  margin: clamp(24px, 3vw, 34px) 0 0;
  color: #6a675f;
  font-size: .78rem;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.guia-metrica span { position: relative; padding-left: 18px; }
.guia-metrica span::before { position: absolute; top: 50%; left: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--guia-acento); transform: translateY(-50%); content: ""; }

/* La cabecera respira a todo el ancho; el cuerpo de lectura se acota y se
   centra. Un bloque de texto de 1.150 px de ancho no se lee, y dejarlo
   alineado a la izquierda abria un hueco muerto a la derecha. */
.guia-cuerpo {
  display: grid;
  grid-template-columns: 232px minmax(0, 1fr);
  gap: clamp(38px, 4vw, 72px);
  width: min(100%, 1180px);
  margin: 0 auto;
}
.guia-lateral { position: relative; }
.guia-indice { position: sticky; top: 168px; padding-right: 24px; border-right: 1px solid var(--line-dark); }
.guia-indice-titulo { margin: 0 0 16px; color: #4a4a4a; font-size: .74rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.guia-indice ol { margin: 0; padding: 0; list-style: none; counter-reset: none; }
.guia-indice li { margin: 0; }
/* Solo los enlaces de la lista: el boton de cita no es una fila del indice. */
.guia-indice ol a {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 8px;
  align-items: baseline;
  padding: 9px 0;
  color: #5d5d5d;
  font-size: .84rem;
  line-height: 1.34;
  border-left: 2px solid transparent;
  padding-left: 12px;
  margin-left: -14px;
  transition: color .22s ease, border-color .22s ease;
}
.guia-indice ol a span { color: #a3a099; font-size: .72rem; font-variant-numeric: tabular-nums; letter-spacing: .06em; }
.guia-indice ol a:hover { color: var(--guia-acento-oscuro); }
.guia-indice ol a[aria-current="true"] { color: var(--ink); font-weight: 650; border-left-color: var(--guia-acento); }
.guia-indice ol a[aria-current="true"] span { color: var(--guia-acento-oscuro); }
.guia-indice-cita {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--line-dark);
  color: var(--guia-acento-oscuro);
  font-size: .84rem;
  font-weight: 700;
  white-space: nowrap;
}
.guia-indice-cita b { transition: transform .22s ease; }
.guia-indice-cita:hover b { transform: translateX(4px); }

.guia-secciones { width: min(100%, 100%); max-width: none; margin: 0; }
.guia-entradilla { margin: 0 0 clamp(34px, 4vw, 54px); }
/* Medida de lectura: la linea larga cansa. Entradilla y cuerpo comparten
   el mismo ancho maximo para que el ritmo no cambie al bajar. */
.guia-entradilla > p,
.guia-entradilla > ul,
.guia-entradilla > ol { width: min(100%, 800px); }
.guia-entradilla > p:first-of-type { width: min(100%, 820px); color: #2f2f2f; font-size: clamp(1.14rem, 1.5vw, 1.42rem); line-height: 1.62; }
/* La cabecera es pegajosa y mide 162px (146px compactada): el destino de
   cada enlace del indice se separa esa altura para no quedar debajo. */
.guia-seccion { margin: 0 0 clamp(48px, 6vw, 88px); scroll-margin-top: 170px; }
.guia-seccion:last-child { margin-bottom: 0; }
.guia-seccion-cabecera { margin: 0 0 clamp(20px, 2.4vw, 30px); padding-top: 22px; border-top: 2px solid var(--guia-acento); }
.guia-seccion-cabecera .label { margin: 0 0 12px; }
.guia-numero { font-variant-numeric: tabular-nums; }
.guia-seccion-cabecera h2,
.guia-seccion-cabecera h3 {
  max-width: 20ch;
  margin: 0;
  font-size: clamp(1.85rem, 3vw, 3.2rem);
  line-height: 1.02;
  letter-spacing: -.045em;
  text-wrap: balance;
}
.guia-seccion-cuerpo > p,
.guia-seccion-cuerpo > ul,
.guia-seccion-cuerpo > ol,
.guia-seccion-cuerpo > blockquote,
.guia-subseccion > p,
.guia-subseccion > ul,
.guia-subseccion > ol,
.guia-subseccion > blockquote { width: min(100%, 800px); }
.guia-seccion-cuerpo p,
.guia-seccion-cuerpo li,
.guia-entradilla p,
.guia-subseccion p { color: #3f3f3f; font-size: clamp(1.02rem, 1.12vw, 1.14rem); line-height: 1.76; hyphens: auto; }

.guia-subsecciones { margin-top: clamp(26px, 3vw, 40px); }
.guia-subseccion { width: 100%; margin: 0 0 clamp(24px, 3vw, 38px); scroll-margin-top: 170px; }
.guia-subseccion h3 { margin: 0 0 12px; font-size: clamp(1.2rem, 1.5vw, 1.5rem); letter-spacing: -.02em; }

/* Tres columnas fijas: el ancho de cada tarjeta lo decide el generador segun
   su contenido (data-ancho) y ninguna fila queda a medias. */
.guia-tarjetas {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-flow: row dense;
  gap: clamp(16px, 1.6vw, 24px);
  margin-top: clamp(26px, 3vw, 40px);
  /* Las tarjetas de una fila comparten altura: el borde inferior queda a la
     misma linea. Lo que evita el hueco no es dejarlas sueltas, sino que el
     generador elija el ancho de cada una segun su texto (data-ancho), de modo
     que en una misma fila acaben midiendo parecido. */
  align-items: stretch;
}
.guia-tarjeta {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(24px, 2.4vw, 34px);
  background: rgba(255,255,255,.72);
  border: 1px solid #ddd8ce;
  scroll-margin-top: 170px;
  transition: border-color .24s ease, background .24s ease, transform .24s ease;
}
.guia-tarjeta:hover { background: #fff; border-color: var(--guia-acento); transform: translateY(-2px); }
.guia-tarjeta-numero {
  display: block;
  margin-bottom: 14px;
  color: var(--guia-acento-oscuro);
  font-size: .74rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: .16em;
}
.guia-tarjeta h3 { margin: 0 0 14px; font-size: clamp(1.16rem, 1.4vw, 1.44rem); line-height: 1.14; letter-spacing: -.025em; }
/* En columna estrecha el texto justificado abre rios entre palabras: dentro
   de las tarjetas se alinea a la izquierda. En la medida ancha se mantiene
   justificado, con particion silabica (lang="es") para cerrar los huecos. */
.guia-tarjeta-cuerpo p,
.guia-tarjeta-cuerpo li { margin: 0 0 12px; color: #454545; font-size: .98rem; line-height: 1.7; text-align: left; }
.guia-tarjeta-cuerpo p:last-child { margin-bottom: 0; }
.guia-tarjeta-cuerpo img { width: 100%; height: auto; margin-top: 12px; }
.guia-tarjeta a { color: var(--guia-acento-oscuro); font-weight: 650; text-decoration: underline; text-underline-offset: 3px; }
.guia-ancla { display: block; height: 0; scroll-margin-top: 170px; }

.guia-tarjeta[data-ancho="2"] { grid-column: span 2; }
.guia-tarjeta[data-ancho="3"] { grid-column: span 3; }
/* La tarjeta ancha reparte su texto en dos columnas: una linea de 560 px no se
   lee mejor por ser mas larga. */
.guia-tarjeta[data-ancho="3"] .guia-tarjeta-cuerpo { columns: 2; column-gap: clamp(26px, 3vw, 48px); }
.guia-tarjeta[data-ancho="3"] .guia-tarjeta-cuerpo p { break-inside: avoid; }
.guia-tarjeta[data-ancho="3"] h3 { max-width: 24ch; font-size: clamp(1.3rem, 1.7vw, 1.72rem); }

/* ---------------------------------------------------------------------------
   Composicion de imagenes dentro de la guia. Nunca se deforman: el ancho manda
   y la altura es automatica, asi que conservan su proporcion original. Cuando
   van solas se montan unas sobre otras, con un marco desplazado y una trama de
   cuadricula difuminada detras que ocupa el aire sobrante.
--------------------------------------------------------------------------- */
.guia-figuras {
  position: relative;
  width: 100%;
  margin: clamp(38px, 4.6vw, 68px) 0;
  isolation: isolate;
}
.guia-figuras-trama {
  position: absolute;
  z-index: 0;
  inset: -9% -7%;
  background-image:
    linear-gradient(to right, rgba(18,18,18,.16) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(18,18,18,.16) 1px, transparent 1px);
  background-size: 46px 46px;
  filter: blur(1.1px);
  opacity: .6;
  -webkit-mask-image: radial-gradient(ellipse 82% 74% at 68% 44%, #000 0%, rgba(0,0,0,.55) 46%, transparent 78%);
  mask-image: radial-gradient(ellipse 82% 74% at 68% 44%, #000 0%, rgba(0,0,0,.55) 46%, transparent 78%);
  pointer-events: none;
}
.guia-figuras-marco {
  position: absolute;
  z-index: 0;
  top: 46%;
  bottom: 4%;
  left: -20px;
  width: min(36%, 250px);
  border: 2px solid var(--guia-acento);
  border-radius: 2px;
  pointer-events: none;
}
.guia-figura { position: relative; z-index: 1; }
.guia-figuras .guia-figura img {
  display: block;
  float: none;
  width: 100%;
  max-width: none;
  height: auto;
  margin: 0;
  background: var(--white);
  box-shadow: 0 26px 62px rgba(64,55,43,.16);
}
.guia-figuras .guia-figura figure { margin: 0; }

/* Una sola imagen: centrada y mas ancha que la columna de texto. */
.guia-figuras[data-figuras="1"] .guia-figura { width: min(100%, 860px); margin-inline: auto; }

/* Dos imagenes montadas. La segunda cae sobre la esquina de la primera. */
.guia-figuras[data-figuras="2"] { display: grid; grid-template-columns: repeat(12, 1fr); align-items: start; }
.guia-figuras[data-figuras="2"] .guia-figura:nth-child(3) { grid-area: 1 / 1 / 2 / 9; }
.guia-figuras[data-figuras="2"] .guia-figura:nth-child(4) { grid-area: 1 / 7 / 2 / 13; z-index: 2; margin-top: clamp(48px, 9vw, 132px); }

/* Tres o mas: mosaico montado, sin recortes. */
.guia-figuras[data-figuras="3"],
.guia-figuras[data-figuras="4"] { display: grid; grid-template-columns: repeat(12, 1fr); align-items: start; }
.guia-figuras[data-figuras="3"] .guia-figura:nth-child(3) { grid-area: 1 / 1 / 2 / 8; }
.guia-figuras[data-figuras="3"] .guia-figura:nth-child(4) { grid-area: 1 / 7 / 2 / 13; z-index: 2; margin-top: clamp(40px, 7vw, 96px); }
.guia-figuras[data-figuras="3"] .guia-figura:nth-child(5) { grid-area: 2 / 3 / 3 / 11; z-index: 3; margin-top: clamp(-96px, -6vw, -32px); }
.guia-figuras[data-figuras="4"] .guia-figura { grid-column: span 6; }
.guia-figuras[data-figuras="4"] .guia-figura:nth-child(even) { margin-top: clamp(28px, 4vw, 56px); }

@media (max-width: 1180px) {
  .guia-cuerpo { grid-template-columns: 1fr; }
  .guia-indice { position: static; top: auto; padding: 22px; padding-right: 22px; border: 1px solid var(--line-dark); border-right: 1px solid var(--line-dark); }
  .guia-indice ol a { margin-left: 0; }
}
@media (max-width: 900px) {
  .guia-cabecera { grid-template-columns: 1fr; align-items: start; gap: 24px; }
  .guia-tarjetas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .guia-tarjeta[data-ancho="3"] { grid-column: span 2; }
  .guia-tarjeta[data-ancho="3"] .guia-tarjeta-cuerpo { columns: auto; }
}
@media (max-width: 620px) {
  .guia-tarjetas { grid-template-columns: 1fr; }
  .guia-tarjeta[data-ancho="2"],
  .guia-tarjeta[data-ancho="3"] { grid-column: auto; }
  /* En movil las imagenes se apilan: montarlas dejaria trozos ilegibles. */
  .guia-figuras[data-figuras] { display: flex; flex-direction: column; gap: 18px; }
  .guia-figuras[data-figuras] .guia-figura { grid-area: auto; width: 100%; margin-top: 0; }
  .guia-figuras-marco { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .guia-tarjeta,
  .guia-indice ol a,
  .guia-indice-cita b { transition: none; }
  .guia-tarjeta:hover { transform: none; }
}

/* ---------------------------------------------------------------------------
   Test de alimentación: bloques de contexto. La página tenía el formulario y
   poco más — posición media 29,9 en Search Console, 4 clics en un año. Estas
   secciones explican para qué sirve, qué ocurre después y resuelven las dudas
   que frenan a alguien antes de dar 81 respuestas.
--------------------------------------------------------------------------- */
.nutrition-purpose,
.nutrition-flow,
.nutrition-faq,
.nutrition-next {
  width: 100%;
  max-width: none;
  padding: clamp(66px, 7.5vw, 118px) max(var(--pad), calc((100% - var(--container)) / 2));
}
.nutrition-purpose > header,
.nutrition-flow > header,
.nutrition-faq > header {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr);
  align-items: end;
  gap: clamp(36px, 6vw, 104px);
  margin-bottom: clamp(40px, 5vw, 68px);
}
.nutrition-purpose h2,
.nutrition-flow h2,
.nutrition-faq h2 {
  max-width: 18ch;
  margin: 0;
  font-size: clamp(2.1rem, 3.7vw, 4.1rem);
  line-height: .98;
  letter-spacing: -.055em;
  text-wrap: balance;
}
.nutrition-purpose > header > p,
.nutrition-flow > header > p { max-width: 620px; margin: 0 0 6px; color: #4e4e4e; font-size: clamp(1rem, 1.2vw, 1.16rem); line-height: 1.66; }
.nutrition-flow > header > p { color: #c2c2c2; }

.nutrition-purpose-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: clamp(18px, 2vw, 30px); }
.nutrition-purpose-grid article { padding: clamp(26px, 2.6vw, 38px); background: rgba(255,255,255,.66); border: 1px solid #ddd8ce; }
.nutrition-purpose-grid span { display: block; margin-bottom: 16px; color: var(--green-dark); font-size: .74rem; font-weight: 700; letter-spacing: .16em; }
.nutrition-purpose-grid h3 { margin: 0 0 12px; font-size: clamp(1.1rem, 1.35vw, 1.34rem); line-height: 1.16; letter-spacing: -.025em; }
.nutrition-purpose-grid p { margin: 0; color: #454545; font-size: .98rem; line-height: 1.7; }

.nutrition-flow ol { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: clamp(20px, 2.4vw, 40px); margin: 0; padding: 0; list-style: none; }
.nutrition-flow li { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 18px; padding-top: 22px; border-top: 2px solid var(--green); }
.nutrition-flow li span { color: var(--green-bright); font-size: .82rem; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: .1em; }
.nutrition-flow h3 { margin: 0 0 10px; color: #fff; font-size: clamp(1.08rem, 1.3vw, 1.3rem); line-height: 1.18; letter-spacing: -.02em; }
.nutrition-flow p { margin: 0; color: #bdbdbd; font-size: .96rem; line-height: 1.7; }

.nutrition-faq > div { border-top: 1px solid var(--line-dark); }
.nutrition-faq details { border-bottom: 1px solid var(--line-dark); }
.nutrition-faq summary { display: flex; justify-content: space-between; gap: 28px; padding: 24px 0; cursor: pointer; list-style: none; font-weight: 700; }
.nutrition-faq summary::-webkit-details-marker { display: none; }
.nutrition-faq summary b { color: var(--green-dark); font-size: 1.4rem; line-height: 1; transition: transform .24s ease; }
.nutrition-faq details[open] summary b { transform: rotate(45deg); }
.nutrition-faq details p { max-width: 820px; margin: 0 0 26px; color: #444; line-height: 1.74; }

.nutrition-next { display: grid; grid-template-columns: minmax(0, .5fr) minmax(0, 1.5fr); gap: clamp(28px, 4vw, 70px); align-items: center; border-top: 1px solid var(--line-dark); }
.nutrition-next > div { display: flex; flex-wrap: wrap; gap: 12px; }
.nutrition-next a { display: inline-flex; gap: 10px; align-items: center; padding: 14px 22px; border: 1px solid var(--line-dark); border-radius: 999px; font-weight: 650; transition: border-color .22s ease, background .22s ease; }
.nutrition-next a:hover { background: var(--white); border-color: var(--green); }

@media (max-width: 900px) {
  .nutrition-purpose > header,
  .nutrition-flow > header,
  .nutrition-faq > header,
  .nutrition-next { grid-template-columns: 1fr; align-items: start; gap: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .nutrition-faq summary b,
  .nutrition-next a { transition: none; }
}

/* ---------------------------------------------------------------------------
   Ampliación de artículos del blog. Se añade después del contenido migrado y
   hereda la tipografía de .legacy-content; aquí solo lo que no hereda.
--------------------------------------------------------------------------- */
.article-ampliacion { margin-top: clamp(40px, 5vw, 68px); padding-top: clamp(34px, 4vw, 54px); border-top: 2px solid var(--green); }
.article-ampliacion-intro { color: #2f2f2f; font-size: clamp(1.1rem, 1.4vw, 1.32rem); line-height: 1.62; }
.article-ampliacion h2 { margin: clamp(38px, 4.4vw, 62px) 0 16px; font-size: clamp(1.7rem, 2.5vw, 2.5rem); line-height: 1.04; letter-spacing: -.04em; }
.article-ampliacion h3 { margin: clamp(24px, 2.6vw, 34px) 0 10px; font-size: clamp(1.12rem, 1.4vw, 1.36rem); letter-spacing: -.02em; }
.article-ampliacion ul { margin: 0 0 18px; padding-left: 1.15em; }
.article-ampliacion li { margin-bottom: 9px; line-height: 1.7; }

/* Señales de alarma: tiene que verse distinto del resto del texto. */
.article-alerta { margin: clamp(34px, 4vw, 52px) 0; padding: clamp(24px, 2.6vw, 36px); background: rgba(236,25,134,.045); border-left: 3px solid var(--pink); }
.article-alerta h2 { margin-top: 0; color: var(--pink-dark); font-size: clamp(1.4rem, 1.9vw, 1.85rem); }
.article-alerta li { margin-bottom: 11px; }

.article-faq { margin-top: 8px; border-top: 1px solid var(--line-dark); }
.article-faq details { border-bottom: 1px solid var(--line-dark); }
.article-faq summary { display: flex; justify-content: space-between; gap: 24px; padding: 20px 0; cursor: pointer; list-style: none; font-weight: 700; }
.article-faq summary::-webkit-details-marker { display: none; }
.article-faq summary b { color: var(--green-dark); font-size: 1.3rem; line-height: 1; transition: transform .24s ease; }
.article-faq details[open] summary b { transform: rotate(45deg); }
.article-faq details p { margin: 0 0 22px; line-height: 1.74; }

.article-enlaces { margin-top: clamp(34px, 4vw, 52px); padding-top: 26px; border-top: 1px solid var(--line-dark); }
.article-enlaces .label { margin: 0 0 16px; }
.article-enlaces > div { display: flex; flex-wrap: wrap; gap: 10px; }
.article-enlaces a { display: inline-flex; gap: 9px; align-items: center; padding: 12px 20px; border: 1px solid var(--line-dark); border-radius: 999px; font-size: .92rem; font-weight: 650; transition: border-color .22s ease, background .22s ease; }
.article-enlaces a:hover { background: var(--white); border-color: var(--green); }
@media (prefers-reduced-motion: reduce) {
  .article-faq summary b,
  .article-enlaces a { transition: none; }
}

/* Puente hacia los servicios dentro del cuerpo del articulo (blog).
   Anadido en la auditoria final del 31-08-2026: el blog concentra el 92 % del
   trafico y no enlazaba a las paginas de servicio. */
.article-service-bridge { clear: both; margin: clamp(40px, 5vw, 68px) 0; padding: clamp(28px, 3.4vw, 44px); border: 1px solid var(--line-dark); border-left: 4px solid var(--green); background: linear-gradient(140deg, rgba(168,210,27,.10), rgba(242,240,235,0) 62%), var(--white); }
.article-service-bridge .label { margin: 0 0 10px; color: var(--green-dark); font-size: .78rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.article-service-bridge h2 { max-width: 30ch; margin: 0 0 14px; font-size: clamp(1.5rem, 2.3vw, 2.25rem); line-height: 1.08; letter-spacing: -.03em; }
.article-service-bridge .service-bridge-intro { max-width: 62ch; margin: 0; color: #4a4a4a; font-size: 1rem; line-height: 1.6; }
.article-service-bridge .service-bridge-list { margin: 26px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line-dark); }
.article-service-bridge .service-bridge-list li { border-bottom: 1px solid var(--line-dark); }
.article-service-bridge .service-bridge-list a { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 6px 18px; padding: 16px 4px; text-decoration: none; color: inherit; transition: background-color .18s ease, padding-left .18s ease; }
.article-service-bridge .service-bridge-list a:hover,
.article-service-bridge .service-bridge-list a:focus-visible { padding-left: 12px; background: rgba(168,210,27,.12); }
.article-service-bridge .service-bridge-list strong { font-size: 1.06rem; letter-spacing: -.01em; }
.article-service-bridge .service-bridge-list span { grid-column: 1 / -1; max-width: 66ch; color: #565656; font-size: .95rem; line-height: 1.5; }
.article-service-bridge .service-bridge-list b { color: var(--green-dark); font-size: 1.1rem; }
.article-service-bridge .service-bridge-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; margin: 26px 0 0; }
.article-service-bridge .service-bridge-phone { color: #565656; font-size: .95rem; }
.article-service-bridge .service-bridge-phone:hover { color: var(--green-dark); }

@media (max-width: 700px) {
  .article-service-bridge { padding: 24px 20px; }
  .article-service-bridge .service-bridge-cta .button { width: 100%; justify-content: center; }
}

/* Preguntas de la primera cita en las paginas de contacto. */
.contact-faq { width: min(100%, var(--container)); margin: 0 auto; padding: clamp(58px, 7vw, 104px) var(--pad); border-top: 1px solid var(--line-dark); display: grid; grid-template-columns: minmax(0, .85fr) minmax(320px, 1.15fr); gap: clamp(40px, 6vw, 110px); align-items: start; }
.contact-faq header h2 { max-width: 14ch; margin: 14px 0 18px; font-size: clamp(2rem, 3.4vw, 3.6rem); line-height: 1; letter-spacing: -.05em; }
.contact-faq header p { max-width: 46ch; margin: 0; color: #565656; }
.contact-faq-list { border-top: 1px solid var(--line-dark); }
.contact-faq-list details { border-bottom: 1px solid var(--line-dark); }
.contact-faq-list summary { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; padding: 20px 0; cursor: pointer; list-style: none; font-size: 1.06rem; }
.contact-faq-list summary::-webkit-details-marker { display: none; }
.contact-faq-list summary > b { color: var(--green-dark); font-size: 1.4rem; transition: transform .2s ease; }
.contact-faq-list details[open] summary > b { transform: rotate(45deg); }
.contact-faq-list details > p { max-width: 68ch; margin: 0 0 22px; color: #4a4a4a; line-height: 1.6; }
.studio-contact-page .contact-faq-list summary > b,
.studio-contact-page .contact-faq-list details[open] summary > b { color: var(--pink-dark); }

@media (max-width: 900px) {
  .contact-faq { grid-template-columns: 1fr; }
}

/* Landing de precios. */
.precios-preguntar { width: min(100%, var(--container)); margin: 0 auto; padding: clamp(58px, 7vw, 104px) var(--pad); display: grid; grid-template-columns: minmax(0, .95fr) minmax(320px, 1.05fr); gap: clamp(40px, 6vw, 110px); border-top: 1px solid var(--line-dark); }
.precios-preguntar h2 { max-width: 18ch; margin: 14px 0 18px; font-size: clamp(2rem, 3.4vw, 3.6rem); line-height: 1; letter-spacing: -.05em; }
.precios-preguntar > div > p:last-child { max-width: 52ch; margin: 0; color: #565656; }
.precios-preguntar ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line-dark); counter-reset: pregunta; }
.precios-preguntar li { position: relative; padding: 18px 0 18px 46px; border-bottom: 1px solid var(--line-dark); font-size: 1.08rem; counter-increment: pregunta; }
.precios-preguntar li::before { content: counter(pregunta, decimal-leading-zero); position: absolute; left: 0; top: 20px; color: var(--green-dark); font-size: .82rem; font-weight: 600; letter-spacing: .1em; }
.precios-tabla { width: min(100%, var(--container)); margin: 0 auto; padding: clamp(58px, 7vw, 104px) var(--pad); }
.precios-tabla table { width: 100%; border-collapse: collapse; margin-top: 28px; }
.precios-tabla th, .precios-tabla td { padding: 16px 12px; border-bottom: 1px solid var(--line-dark); text-align: left; }
.precios-tabla thead th { color: var(--green-dark); font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; }

@media (max-width: 900px) {
  .precios-preguntar { grid-template-columns: 1fr; }
}

/* Anclas de compatibilidad: mantienen vivas las direcciones #seccion historicas
   en las paginas cuyo contenido migrado se renumera con el prefijo "detail-".
   No ocupan espacio; solo desplazan el destino del salto para que el encabezado
   no quede tapado por la cabecera fija. */
.ancla-historica { display: block; position: relative; top: -110px; width: 0; height: 0; visibility: hidden; }

/* Numero de colegiado en la ficha de equipo. Senal de autoridad sanitaria:
   dos de las clinicas de Huelva analizadas lo publican y esta no lo hacia. */
.profile-story-plate .profile-colegiado { margin: 6px 0 0; font-size: .82rem; letter-spacing: .04em; opacity: .75; }
.precios-tabla .precios-aviso { max-width: 78ch; margin: 22px 0 0; color: #565656; font-size: .95rem; line-height: 1.6; }

/* Horario del herbolario junto a su banner. Negocio y web distintos: por eso
   no entra en el openingHoursSpecification de la clinica. */
.herbalist-card .herbalist-hours { display: block; margin-top: 6px; font-size: .8rem; letter-spacing: .03em; opacity: .8; }

/* Direccion y horario en el pie. Van en todas las paginas porque el bloque
   MedicalClinic que declara openingHoursSpecification tambien va en todas, y
   un dato estructurado sin respaldo visible es marcado invalido. */
.site-footer .footer-hours { display: flex; flex-wrap: wrap; gap: 6px 26px; margin: 0 0 18px; font-size: .88rem; opacity: .72; }
.site-footer .footer-hours span::before { content: "· "; opacity: .5; }
.site-footer .footer-hours span:first-child::before { content: none; }

/* Sesiones privadas del Studio: no ocupan hora fija, así que van fuera de la
   rejilla semanal. */
.schedule-private {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: clamp(24px, 4vw, 64px);
  width: min(100%, var(--container));
  margin: clamp(38px, 4.5vw, 62px) auto 0;
  padding-top: clamp(30px, 3.4vw, 44px);
  border-top: 1px solid var(--line-dark);
}
.schedule-private h3 { margin: 0; font-size: clamp(1.5rem, 2.2vw, 2.2rem); line-height: 1.04; letter-spacing: -.04em; }
.schedule-private ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; padding: 0; list-style: none; }
.schedule-private li { padding: 9px 16px; background: rgba(236,25,134,.07); border: 1px solid rgba(236,25,134,.22); border-radius: 999px; font-size: .9rem; }
@media (max-width: 900px) {
  .schedule-private { grid-template-columns: 1fr; gap: 20px; }
}

/* -------------------------------------------------------------------------
   2026-08-31 · Ajustes editoriales de imagen (petición de Juan).
   1) El collage de RPG/SGA (detail-5682b084) estrena fotos de alta
      resolución y va SIN el marco decorativo descentrado (borde verde y
      placa de fondo); composición y esquinas redondeadas se mantienen.
   2) La infografía de Tensegrity Touch, con esquinas redondeadas y sin
      fondo propio; la trama de líneas y el marco del montaje no se tocan.
------------------------------------------------------------------------- */
.legacy-content .legacy-section-gallery.editorial-collage[data-id="detail-5682b084"]::before,
.legacy-content .legacy-section-gallery.editorial-collage[data-id="detail-5682b084"]::after {
  content: none !important;
}
.guia-figuras .guia-figura img[src^="/wp-content/uploads/2025/06/Infografia_Tensegrity_Touch"] {
  background: none;
  border-radius: 18px;
}

/* 2026-08-31 · Figura destacada extraída de una guia-tarjeta (hoy, el flyer
   de la agenda de Salux Estética) y lightbox mínimo sin dependencias. */
.guia-tarjetas .guia-figura-destacada { grid-column: 1 / -1; }
.guia-figura-destacada {
  width: min(100%, 620px);
  margin: clamp(24px, 3.5vw, 44px) auto 0;
}
.guia-figura-destacada img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 18px;
  box-shadow: 0 26px 62px rgba(64, 55, 43, .18);
}
.js-lightbox img { cursor: zoom-in; }
.lightbox-overlay {
  position: fixed;
  inset: 0;
  z-index: 999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(16px, 4vw, 48px);
  background: rgba(20, 18, 14, .82);
  cursor: zoom-out;
  opacity: 0;
  transition: opacity .25s ease;
}
.lightbox-overlay.is-open { opacity: 1; }
.lightbox-overlay img {
  max-width: min(100%, 940px);
  max-height: 100%;
  width: auto;
  height: auto;
  border-radius: 12px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, .45);
}

/* ==================================================================
   2026-09-01 · Hero en móvil, navegación de categorías y paginador.
   ================================================================== */

/* --- Hero: art direction en móvil --------------------------------
   El hero sirve un recorte vertical propio en móvil mediante <picture>.
   Al envolver el <img>, este deja de ser hijo directo de .hero-media,
   así que hay que repetir el tratamiento sin exigir el hijo directo. */
.hero-media > picture { display: block; width: 100%; height: 100%; }
.hero-media picture > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.72) contrast(1.06);
}

@media (max-width: 760px) {
  /* La foto deja de atenuarse al 66 %: el recorte vertical está pensado
     para esta caja. Y el velo pasa de horizontal a vertical, porque en
     móvil el texto se apila sobre la imagen y el degradado de 90deg
     (86 % de negro en el borde izquierdo) oscurecía la pantalla entera. */
  .hero-media { opacity: 1; }
  .hero-media::after {
    background: linear-gradient(180deg,
      rgba(6,6,6,.76) 0%,
      rgba(6,6,6,.44) 30%,
      rgba(6,6,6,.42) 55%,
      rgba(6,6,6,.86) 88%,
      rgba(6,6,6,.95) 100%);
  }
  .hero-media picture > img { object-position: center center; }
}

/* --- Navegación de categorías del blog --------------------------- */
.topic-nav {
  gap: 4px;
  padding-top: 4px;
  border-bottom: 1px solid var(--line-dark);
  scroll-snap-type: x proximity;
  overscroll-behavior-x: contain;
}
.topic-nav a {
  align-items: center;
  min-height: 52px;
  padding: 14px 18px;
  color: #4a4d45;
  font-weight: 560;
  border-radius: 10px 10px 0 0;
  scroll-snap-align: start;
  transition: color .18s ease, background-color .18s ease, border-color .18s ease;
}
.topic-nav a span {
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 20px;
  padding: 0 6px;
  color: #5d6157;
  background: rgba(18, 18, 18, .07);
  border-radius: 999px;
  font-size: .7rem;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  transition: color .18s ease, background-color .18s ease;
}
.topic-nav a:hover { color: var(--ink); background: rgba(18, 18, 18, .045); }
.topic-nav a:hover span { background: rgba(18, 18, 18, .1); }
.topic-nav a.is-active {
  color: var(--ink);
  font-weight: 680;
  background: rgba(236, 25, 134, .05);
  border-color: var(--pink);
}
.topic-nav a.is-active span { color: var(--white); background: var(--pink); }
.topic-nav a:focus-visible { outline: 2px solid var(--green-dark); outline-offset: -3px; }

/* --- Índice completo de categorías -------------------------------
   Era una fila de texto entre dos filetes. Pasa a leerse como bloque
   desplegable, con su propia superficie y jerarquía. */
.taxonomy-directory {
  border: 1px solid var(--line-dark);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255, 255, 255, .72), rgba(255, 255, 255, .4));
  overflow: hidden;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.taxonomy-directory:hover { border-color: rgba(18, 18, 18, .3); }
.taxonomy-directory[open] { box-shadow: 0 18px 40px -30px rgba(18, 24, 10, .55); }
.taxonomy-directory summary {
  gap: 16px;
  min-height: 66px;
  padding: 14px clamp(18px, 2.4vw, 26px);
  transition: color .18s ease;
}
.taxonomy-directory summary:hover { color: var(--green-dark); }
.taxonomy-directory summary span {
  padding: 5px 11px;
  color: var(--green-dark);
  background: color-mix(in srgb, var(--green) 16%, transparent);
  border-radius: 999px;
  font-variant-numeric: tabular-nums;
}
.taxonomy-directory summary::after {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  color: var(--green-dark);
  background: color-mix(in srgb, var(--green) 18%, transparent);
  border-radius: 50%;
  font-size: 1.15rem;
  line-height: 1;
  transition: background-color .2s ease;
}
.taxonomy-directory summary:hover::after { background: color-mix(in srgb, var(--green) 30%, transparent); }
.taxonomy-directory-links { padding: 4px clamp(18px, 2.4vw, 26px) 22px; }
.taxonomy-directory-links a { border-bottom-color: rgba(22, 24, 18, .08); border-radius: 8px; }
.taxonomy-directory-links a:hover { background: rgba(143, 189, 24, .09); }

/* --- Paginador de archivos ---------------------------------------
   Ventana de páginas en lugar de la tira completa, indicadores sin
   círculo y dirección en botón de píldora. */
.archive-pagination { row-gap: 14px; padding-top: 22px; }
.pagination-side:last-of-type { text-align: right; }
.pagination-numbers { gap: 4px; }
.pagination-numbers a,
.pagination-numbers span {
  width: 44px;
  height: 44px;
  color: #4a4d45;
  background: none;
  border: 0;
  border-radius: 12px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  transition: color .18s ease, background-color .18s ease;
}
.pagination-numbers a:hover { color: var(--ink); background: rgba(18, 18, 18, .07); }
.pagination-numbers .is-current { color: var(--white); background: var(--ink); }
.pagination-numbers .pagination-gap { width: 26px; color: #9a9d95; }
.pagination-numbers a:focus-visible { outline: 2px solid var(--green-dark); outline-offset: 2px; }
.pagination-direction {
  padding: 11px 20px;
  border: 1px solid rgba(77, 108, 0, .35);
  border-radius: 999px;
  transition: color .18s ease, background-color .18s ease, border-color .18s ease;
}
.pagination-direction:hover { color: var(--white); background: var(--green-dark); border-color: var(--green-dark); }
.pagination-direction.is-disabled { border-color: rgba(18, 18, 18, .12); }
.pagination-direction.is-disabled:hover { color: #999; background: none; border-color: rgba(18, 18, 18, .12); }
.pagination-status {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--muted);
  text-align: center;
  font-size: .8rem;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 760px) {
  .pagination-side:first-of-type { grid-column: 1; grid-row: 2; justify-self: start; }
  .pagination-side:last-of-type { grid-column: 2; grid-row: 2; justify-self: end; }
  .pagination-status { grid-row: 3; }
  .pagination-numbers a,
  .pagination-numbers span { width: 42px; height: 42px; }
  .pagination-direction { padding: 10px 16px; }
  .topic-nav a { min-height: 48px; padding: 12px 14px; }
}

/* --- Trazo cromático del hero: más lento y más suave --------------
   Estaba en 1,18 s por pasada con salida brusca y 1,42 s de separación:
   se leía como cuatro latigazos. Se alarga el trazo a 2,4 s, se juntan
   las pasadas a 1,15 s para que se solapen y el conjunto fluya como una
   sola cinta, y se rebaja el pico de opacidad alargando la meseta. La
   secuencia completa termina en 5,85 s, dentro de los 6,5 s que dura
   cada escena del slideshow. */
.hero-chroma-pass-2 { --chroma-delay: 1.15s; }
.hero-chroma-pass-3 { --chroma-delay: 2.3s; }
.hero-chroma-pass-4 { --chroma-delay: 3.45s; }
.hero-chroma.is-playing path { animation: hero-chroma-trace 2.4s cubic-bezier(.33, .03, .24, 1) var(--chroma-delay) both; }
.hero-chroma.is-playing .hero-chroma-white { animation-delay: calc(var(--chroma-delay) + .14s); }
.hero-chroma.is-playing .hero-chroma-pink { animation-delay: calc(var(--chroma-delay) + .28s); }
.hero-chroma.is-playing circle { animation: hero-chroma-pulse .95s ease-in-out calc(var(--chroma-delay) + 1.25s) both; }
.hero-chroma.is-playing .hero-chroma-node-white { animation-delay: calc(var(--chroma-delay) + 1.36s); }
.hero-chroma.is-playing .hero-chroma-node-pink { animation-delay: calc(var(--chroma-delay) + 1.47s); }
@keyframes hero-chroma-trace {
  0%   { stroke-dashoffset: 1; opacity: 0; }
  22%  { opacity: .3; }
  58%  { stroke-dashoffset: 0; opacity: .28; }
  78%  { opacity: .2; }
  100% { stroke-dashoffset: -.55; opacity: 0; }
}
@keyframes hero-chroma-pulse {
  0%   { opacity: 0; transform: scale(.4); }
  45%  { opacity: .3; transform: scale(1); }
  100% { opacity: 0; transform: scale(1.6); }
}

@media (prefers-reduced-motion: reduce) {
  .hero-chroma.is-playing path,
  .hero-chroma.is-playing circle { animation: none; opacity: .18; stroke-dashoffset: 0; }
}

/* --- Titulares con el degradado de cada símbolo -------------------
   Verde medido sobre el símbolo real de Clínica Salux (icono-logo.png:
   #39681e → #8bb52c). El extremo claro real da 2,11:1 sobre el papel del
   sitio y no llega al 3:1 que WCAG pide para texto grande, así que se
   detiene en #5f8a1c (3,59:1) conservando el sentido del degradado. El
   símbolo de Studio es plano en su archivo (#e41884 uniforme): su
   degradado se construye con los colores de marca #a80b61 → #ec1986.

   Los dos titulares se cruzan: el de Clínica manda en verde y remata en
   el rosa de Studio, y el de Studio al revés. La transición se concentra
   en el último tercio para que el color dominante se lea sin dudas. Todo
   el recorrido, incluido el punto medio (#a65251), se mantiene por encima
   de 3,5:1 sobre el papel. */
#spaces-title { color: #39681e; }
.studio-manifesto h2 { color: #a80b61; }

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  #spaces-title,
  .studio-manifesto h2 {
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
  }
  #spaces-title { background-image: linear-gradient(95deg, #39681e 0%, #5f8a1c 62%, #ec1986 100%); }
  .studio-manifesto h2 { background-image: linear-gradient(95deg, #a80b61 0%, #ec1986 62%, #5f8a1c 100%); }
}

@media (forced-colors: active) {
  #spaces-title,
  .studio-manifesto h2 {
    background-image: none;
    color: CanvasText;
    -webkit-text-fill-color: CanvasText;
  }
}

/* --- Studio Salux · bloque de visión ------------------------------
   Petición de Alicia Sanz (01-09-2026). El mapa de práctica ya resuelve
   la orientación por objetivo, así que este bloque explica el porqué y
   no repite la elección. Superficie rosa muy diluida para marcar pausa
   entre el manifiesto (papel) y el mapa (fondo oscuro). */
.studio-vision {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: clamp(32px, 5vw, 88px);
  width: min(100% - 48px, var(--container));
  margin: clamp(46px, 6vw, 86px) auto;
  padding: clamp(38px, 5vw, 70px) clamp(26px, 4vw, 62px);
  background: linear-gradient(160deg, rgba(236, 25, 134, .06), rgba(236, 25, 134, .015) 62%, transparent);
  border: 1px solid rgba(236, 25, 134, .16);
  border-radius: 22px;
}
.studio-vision-copy h2 {
  margin: 12px 0 0;
  font-size: clamp(2rem, 3.4vw, 3.15rem);
  line-height: 1.02;
  letter-spacing: -.035em;
}
.studio-vision-copy .lead { margin-top: 22px; max-width: 46ch; }
.studio-vision-principles {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: none;
}
.studio-vision-principles li {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  column-gap: 18px;
  padding: 22px 0;
  border-top: 1px solid rgba(18, 18, 18, .12);
}
.studio-vision-principles li:first-child { border-top: 0; padding-top: 0; }
.studio-vision-principles li:last-child { padding-bottom: 0; }
.studio-vision-principles span {
  grid-row: 1 / span 2;
  color: var(--pink);
  font-size: .8rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: .06em;
  padding-top: .28em;
}
.studio-vision-principles h3 {
  margin: 0;
  font-size: clamp(1.05rem, 1.35vw, 1.22rem);
  line-height: 1.25;
  letter-spacing: -.015em;
}
.studio-vision-principles p {
  margin: 8px 0 0;
  color: #4a4d45;
  font-size: .97rem;
  line-height: 1.62;
  max-width: 54ch;
}

@media (max-width: 980px) {
  .studio-vision { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .studio-vision {
    width: min(100% - 36px, var(--container));
    padding: 30px 22px;
    border-radius: 18px;
  }
  .studio-vision-principles li { grid-template-columns: 34px minmax(0, 1fr); column-gap: 12px; padding: 18px 0; }
}

/* --- Capturas de reseñas en las páginas de testimonios ------------
   Dos límites encadenados dejaban la captura en un tamaño ilegible:

   1) `.testimonial-story-content` es una retícula de TRES columnas y las
      figuras llevan `grid-column: auto`, así que una captura suelta
      ocupaba un tercio del ancho del contenido (~340 px).
   2) Las imágenes se dimensionaban por ALTURA (`max-height`). Con una
      captura de móvil de 886×1920 —2,17 veces más alta que ancha—
      cualquier tope de altura razonable la deja en ~320 px de ancho, así
      que la altura no sirve para dimensionarla.

   En estas páginas la imagen es el documento, no un adorno: pasa a ocupar
   el ancho completo de la retícula y se dimensiona por ANCHO, sin tope de
   altura. La página se hace más larga, pero la reseña se lee. */
.testimonial-story-content > .legacy-media-row,
.testimonial-story-content > figure,
.testimonial-story-content > .wp-block-image { grid-column: 1 / -1; }

.testimonial-story-content .legacy-media-row {
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(22px, 3vw, 34px);
}
.testimonial-story-content .legacy-media-row .legacy-media-row-copy { align-self: stretch; }

.testimonial-story-content > figure,
.testimonial-story-content > .wp-block-image,
.article-content .testimonial-story-content .legacy-media-row > figure,
.article-content .testimonial-story-content .legacy-media-row > .wp-block-image {
  justify-self: center;
  width: min(100%, 760px);
  margin-inline: auto;
  padding: clamp(14px, 2vw, 24px);
  background: #eae7df;
  border-radius: 16px;
}

.testimonial-story-content figure img,
.testimonial-story-content .wp-block-image img,
.article-content .testimonial-story-content .legacy-media-row img,
.article-content .testimonial-story-content .legacy-media-row img.legacy-image-portrait,
.article-content .testimonial-story-content .legacy-media-row img.is-low-resolution {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: none;
  margin: 0 auto;
  border-radius: 8px;
  background: #fff;
}

/* Las capturas verticales, más estrechas: a 520 px de ancho una de 886 px
   se ve al 59 % y el texto queda en un tamaño legible. */
.testimonial-story-content img.legacy-image-portrait,
.article-content .testimonial-story-content .legacy-media-row img.legacy-image-portrait {
  width: min(100%, 520px);
}
.testimonial-story-content > figure:has(img.legacy-image-portrait),
.testimonial-story-content > .wp-block-image:has(img.legacy-image-portrait) {
  width: min(100%, 568px);
}

.article-content .testimonial-story-content .legacy-media-row a:focus-visible img {
  outline: 2px solid var(--green-dark);
  outline-offset: 3px;
}

@media (max-width: 760px) {
  .testimonial-story-content .legacy-media-row { gap: 18px; padding: 20px 0 24px; }
  .testimonial-story-content > figure,
  .testimonial-story-content > .wp-block-image,
  .article-content .testimonial-story-content .legacy-media-row > figure,
  .article-content .testimonial-story-content .legacy-media-row > .wp-block-image { padding: 10px; width: 100%; }
  .testimonial-story-content img.legacy-image-portrait { width: 100%; }
}

/* --- Botones flotantes en móvil: pegados al borde -----------------
   `.scroll-top` y `.whatsapp-button` tienen forma de media píldora
   (`border-radius: 999px 0 0 999px`): están diseñados para apoyarse en
   el borde derecho. En móvil quedaban separados —dos reglas seguidas
   dentro de la misma media query los dejaban en 12 px y luego en 20 px—
   y el lado recto flotaba en el aire, que es lo que se lee como
   «cortado». Se pegan al borde, respetando el área segura en apaisado. */
@media (max-width: 760px) {
  .floating-tools {
    right: env(safe-area-inset-right, 0px);
    box-shadow: none;
  }
  .scroll-top,
  .whatsapp-button { box-shadow: -6px 10px 28px rgba(0, 0, 0, .26); }
}

/* --- Reclamos decorativos recompuestos ---------------------------
   "RESTAURA TU MOVILIDAD" y "RESTAURA TU CUERPO" llegaron partidos de
   Elementor: la primera mitad en un <p> y la palabra final en un <h3>,
   y sueltas se leían como palabras huérfanas. Recompuestas en el
   generador, aquí se les da forma de reclamo con antetítulo. */
.legacy-claim {
  margin: clamp(30px, 4vw, 48px) 0 0;
  padding: clamp(22px, 3vw, 32px) 0 0;
  border-top: 1px solid rgba(18, 18, 18, .14);
}
.legacy-claim-eyebrow {
  margin: 0 0 8px;
  color: var(--pink-dark);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.legacy-claim h3 {
  margin: 0;
  color: var(--pink-dark);
  font-size: clamp(2.3rem, 5.6vw, 4.4rem);
  line-height: .92;
  letter-spacing: -.045em;
}

/* --- Reseña de Google reconstruida -------------------------------
   Sustituye a la captura de pantalla: nítida a cualquier tamaño,
   legible por buscadores y lectores de pantalla, y con el nombre según
   la política de testimonios. La captura queda como comprobación. */
.google-review-card {
  width: min(100%, 760px);
  margin: clamp(26px, 4vw, 44px) auto;
  padding: clamp(22px, 3vw, 34px);
  background: #fbfaf6;
  border: 1px solid rgba(18, 18, 18, .12);
  border-radius: 18px;
  box-shadow: 0 18px 46px -34px rgba(55, 48, 39, .55);
}
.google-review-head {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(18, 18, 18, .1);
}
.google-review-avatar {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  color: var(--white);
  background: var(--pink);
  border-radius: 50%;
  font-size: 1.15rem;
  font-weight: 700;
}
.google-review-who { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.google-review-who strong { font-size: 1.02rem; letter-spacing: -.01em; }
.google-review-who span { color: var(--muted); font-size: .8rem; }
.google-review-stars { color: #f5a623; font-size: 1.05rem; letter-spacing: .06em; white-space: nowrap; }
.google-review-card blockquote {
  margin: 20px 0 0;
  padding: 0;
  border: 0;
  color: #26291f;
  font-size: clamp(1.02rem, 1.35vw, 1.16rem);
  line-height: 1.62;
}
.google-review-card figcaption {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid rgba(18, 18, 18, .1);
  font-size: .84rem;
}
.google-review-card figcaption a { color: var(--green-dark); font-weight: 650; }
.google-review-card figcaption a:hover { text-decoration: underline; }
.google-review-card figcaption b { font-weight: 400; }

@media (max-width: 760px) {
  .google-review-card { padding: 18px; border-radius: 14px; }
  .google-review-head { grid-template-columns: 40px minmax(0, 1fr); row-gap: 10px; }
  .google-review-avatar { width: 40px; height: 40px; font-size: 1rem; }
  .google-review-stars { grid-column: 1 / -1; }
}

/* ==================================================================
   2026-09-02 · Escenas 02 y 04 del hero: fotos nuevas.
   ================================================================== */

/* --- Escena 02 (Clínica) ------------------------------------------
   2026-09-02 (2): la escena pasa a ser una sesión de terapia manual y
   el desplazamiento al 60 % que había aquí deja de tener sentido. Lo
   justificaba el rótulo de pared de la foto anterior, que se partía
   por la mitad; la foto nueva no tiene rótulo y sí tiene a la paciente
   ocupando el ancho completo —pies en un extremo, cabeza en el otro—.
   Medido a 1440 px, la caja recorta 181 px de ancho: centrado se van
   ~90 px por lado y no se pierde nada; al 60 % se comía la cabeza. Así
   que se vuelve al encuadre centrado, que es el que hereda. */

/* --- Escena 04 (Tu cita): tarjetas Clínica + Studio ---------------
   Es la única escena clara del hero (mármol y pared en tonos altos) y
   en móvil el texto se apila sobre ella. Medido sobre el recorte
   vertical con el velo actual, el peor píxel bajo el titular da 7,3:1
   y bajo el párrafo 3,8:1; la referencia del propio hero (escena 02)
   es 4,6:1 y 3,7:1. Una atenuación leve la sube a 8,8:1 y 4,9:1 sin
   apagar la escena, y de paso la integra en una sección oscura donde
   las otras tres fotos ya llegan filtradas. En escritorio el texto va
   en la columna izquierda, sobre negro, y no se solapa. */
.hero-slide-choice .hero-media picture > img {
  filter: saturate(.72) contrast(1.06) brightness(.86);
}


/* ==================================================================
   2026-09-02 (2) · Collage del manifiesto de Studio y entrada en
   cascada de los principios.
   ================================================================== */

/* --- Collage del manifiesto (index de Studio Salux) ---------------
   Sustituye a la figura única de 16/7. La composición viene de la
   referencia que trajo Juan (idiomas momo): una imagen principal, un
   marco desplazado que asoma por la izquierda y por abajo, y una
   tarjeta superpuesta con borde del color del papel. El marco va en
   magenta porque es el color de Studio.
   Las cuatro cajas tienen alto fijo y las fotos entran con `cover`,
   así que las proporciones declaradas en el HTML (las reales de cada
   archivo) solo sirven para reservar sitio; el encuadre lo fija
   `object-position`.

   TODAS las reglas van prefijadas con `.studio-manifesto .studio-collage`
   a propósito. El generador incrusta en el <head> una instantánea de
   site.css (assets/css/critical-studio.css) que puede ir por detrás, y
   al ir en línea gana a igualdad de especificidad: su
   `.studio-manifesto figure` mandaba las cuatro fotos a la columna 2 y
   les imponía 16/7, que es exactamente como se rompió esto la primera
   vez. Con el prefijo, el collage no depende de que esa instantánea
   esté al día. Si se toca esta sección, mantener el prefijo. */
.studio-manifesto .studio-collage {
  position: relative;
  display: grid;
  grid-template-columns: 1.34fr 1fr;
  grid-template-rows: 198px 198px;
  gap: 20px;
  margin: 22px 0 0;
  padding: 0 0 34px 26px;
}
.studio-manifesto .studio-collage figure {
  grid-column: auto;
  aspect-ratio: auto;
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: 16px;
}
.studio-manifesto .studio-collage img { width: 100%; height: 100%; object-fit: cover; }
.studio-manifesto .studio-collage .studio-collage-item-1 {
  grid-column: 1;
  grid-row: 1 / 3;
  z-index: 2;
  box-shadow: 0 26px 48px rgba(18, 18, 18, .14);
}
.studio-manifesto .studio-collage .studio-collage-item-2,
.studio-manifesto .studio-collage .studio-collage-item-3 {
  grid-column: 2;
  z-index: 2;
  box-shadow: 0 18px 34px rgba(18, 18, 18, .10);
}
.studio-manifesto .studio-collage .studio-collage-item-2 { grid-row: 1; }
.studio-manifesto .studio-collage .studio-collage-item-3 { grid-row: 2; }
.studio-manifesto .studio-collage .studio-collage-item-1 img { object-position: center 42%; }
.studio-manifesto .studio-collage .studio-collage-item-3 img { object-position: center 48%; }

/* El marco es decorativo: se ancla al contenedor, no a la foto, y su
   ancho replica el de la primera columna para que el desplazamiento se
   lea como intencionado y no como un desajuste. */
.studio-manifesto .studio-collage .studio-collage-frame {
  position: absolute;
  z-index: 0;
  left: 0;
  top: 26px;
  width: calc((1.34 / 2.34) * 100% - 12px);
  height: 416px;
  border: 2px solid var(--pink);
  border-radius: 16px;
}
.studio-manifesto .studio-collage .studio-collage-item-4 {
  position: absolute;
  z-index: 3;
  left: calc((1.34 / 2.34) * 100% - 108px);
  bottom: 0;
  width: 300px;
  height: 200px;
  border: 8px solid var(--paper);
  border-radius: 14px;
  box-shadow: 0 22px 44px rgba(18, 18, 18, .26);
}

@media (max-width: 700px) {
  /* La foto principal pasa a ocupar el ancho completo y las dos de
     apoyo se reparten la fila. La tarjeta baja hasta solaparse solo
     unos 24 px: con más solape tapaba la cabeza de la inversión de
     AeroYoga, que en el recorte apaisado queda en la parte baja. */
  .studio-manifesto .studio-collage {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 206px 152px;
    gap: 12px;
    padding: 0 0 128px 16px;
  }
  .studio-manifesto .studio-collage .studio-collage-item-1 { grid-column: 1 / 3; grid-row: 1; }
  .studio-manifesto .studio-collage .studio-collage-item-2 { grid-column: 1; grid-row: 2; }
  .studio-manifesto .studio-collage .studio-collage-item-3 { grid-column: 2; grid-row: 2; }
  .studio-manifesto .studio-collage .studio-collage-frame { top: 16px; width: calc(100% - 8px); height: 206px; }
  .studio-manifesto .studio-collage .studio-collage-item-4 {
    left: auto;
    right: 0;
    width: 64%;
    height: 136px;
    border-width: 7px;
  }
  .studio-manifesto .studio-collage .studio-collage-item-2 img { object-position: 48% center; }
  .studio-manifesto .studio-collage .studio-collage-item-3 img { object-position: 57% center; }
}

/* --- Principios de Studio: entrada en cascada ---------------------
   Encargo de Juan: los cuatro bloques entran escalonados 0,15 s y cada
   fila sube mientras su línea divisoria termina de trazarse.
   La línea era el `border-top` del <li> y no se puede animar en
   longitud. Se conserva —es lo que ve quien no tiene JavaScript o pide
   menos movimiento— y, mientras dura la animación, se vuelve
   transparente y la dibuja un ::before con `scaleX`. El borde sigue
   ocupando su píxel, así que la caja no cambia de altura ni provoca
   salto. El primer bloque no tiene línea (nunca la tuvo), pero
   mantiene su turno en la cadencia para que el ritmo no se rompa. */
.studio-vision-principles.is-reveal-ready li {
  position: relative;
  border-top-color: transparent;
  opacity: 0;
  transform: translateY(16px);
}
.studio-vision-principles.is-reveal-ready li::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  right: 0;
  height: 1px;
  background: rgba(18, 18, 18, .12);
  transform: scaleX(0);
  transform-origin: left center;
}
.studio-vision-principles.is-reveal-ready li:first-child::before { content: none; }
.studio-vision-principles.is-in-view li {
  opacity: 1;
  transform: none;
  transition: opacity .5s ease var(--fila-retraso, 0s),
              transform .55s cubic-bezier(.22, .61, .36, 1) var(--fila-retraso, 0s);
}
.studio-vision-principles.is-in-view li::before {
  transform: scaleX(1);
  transition: transform .38s cubic-bezier(.22, .61, .36, 1) var(--linea-retraso, 0s);
}
.studio-vision-principles li:nth-child(1) { --linea-retraso: 0s; --fila-retraso: .30s; }
.studio-vision-principles li:nth-child(2) { --linea-retraso: .15s; --fila-retraso: .45s; }
.studio-vision-principles li:nth-child(3) { --linea-retraso: .30s; --fila-retraso: .60s; }
.studio-vision-principles li:nth-child(4) { --linea-retraso: .45s; --fila-retraso: .75s; }

@media (prefers-reduced-motion: reduce) {
  .studio-vision-principles.is-reveal-ready li,
  .studio-vision-principles.is-in-view li {
    opacity: 1;
    transform: none;
    border-top-color: rgba(18, 18, 18, .12);
    transition: none;
  }
  .studio-vision-principles li::before { content: none; }
}

/* ------------------------------------------------------------------
   2026-09-03 · Estados de los formularios y alternativa sin JavaScript
   ------------------------------------------------------------------
   El mensaje de estado ya no es solo un «enviado»: distingue entregado,
   registrado sin entrega, duplicado, rechazo y fallo. Un fallo tiene que
   verse como tal, no con el mismo verde que un envío correcto. Y recibe el
   foco al terminar el envío, así que necesita marca de foco propia: sin
   `outline` el lector de pantalla lo anuncia pero nadie ve dónde ha ido el
   cursor.
   ------------------------------------------------------------------ */
.form-status { line-height: 1.5; }
.form-status:focus-visible { outline: 2px solid var(--green-dark); outline-offset: 3px; }
.form-status.is-error,
.contact-hub-studio .form-status.is-error,
.nutrition-form .form-status.is-error { color: var(--pink-dark, #a80b61); font-weight: 600; }
.form-status.is-error:focus-visible { outline-color: var(--pink-dark, #a80b61); }
.form-status-alternativa { display: block; margin-top: 4px; font-weight: 400; }
.form-status-alternativa a { text-decoration: underline; text-underline-offset: 2px; }

/* Solo se ve con JavaScript desactivado: el <noscript> no se pinta de otro
   modo. Sin JavaScript el formulario no puede enviarse, porque la
   comprobación antispam la emite el servidor, así que hay que ofrecer una
   salida real en vez de un botón que no hace nada útil. */
.form-sin-js {
  margin: 14px 0 0;
  padding: 12px 14px;
  color: var(--ink);
  background: rgba(236, 25, 134, .07);
  border-left: 3px solid var(--pink);
  font-size: .84rem;
  line-height: 1.5;
}
.form-sin-js a { text-decoration: underline; text-underline-offset: 2px; }

/* Aviso de consentimiento dentro del diálogo de vídeos: hereda el bloque de
   los mapas, pero allí vive sobre papel y aquí sobre el fondo oscuro del
   diálogo. */
.video-dialog .consent-frame-placeholder { max-width: 560px; margin: 0 auto; }

/* ------------------------------------------------------------------
   2026-09-03 · Escape cierra los submenús también en escritorio
   ------------------------------------------------------------------
   `.has-submenu:focus-within .submenu` mantenía el panel abierto después de
   pulsar Escape: `aria-expanded` pasaba a false y se quitaba `.is-open`, pero
   el foco seguía en el botón, que está DENTRO de `.has-submenu`, así que
   `:focus-within` seguía cumpliéndose. Resultado: estado accesible cerrado y
   estado visual abierto, que es la peor combinación posible.

   El JavaScript marca el elemento al cerrar con Escape y retira la marca
   cuando el foco sale de él. El ratón no se toca: si alguien está encima con
   el puntero, el submenú debe seguir viéndose.
   ------------------------------------------------------------------ */
.has-submenu[data-submenu-escape]:focus-within .submenu {
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
}
.has-submenu[data-submenu-escape]:focus-within .studio-discipline-submenu { transform: translate(-46%, -8px); }
@media (max-width: 1050px) {
  .has-submenu[data-submenu-escape]:focus-within .submenu { display: none; visibility: visible; opacity: 1; transform: none; }
}

/* ------------------------------------------------------------------
   2026-09-03 · Resumen del cuestionario de alimentación
   ------------------------------------------------------------------
   El último paso se llamaba «Revisión y envío» sin nada que revisar. Ahora
   muestra los datos y las respuestas marcadas —lo único que se envía— con un
   botón por bloque para volver a corregir. Se lista solo lo marcado: enseñar
   las 81 preguntas sería un muro que nadie lee, y revisar algo que nadie lee
   no es revisar.
   ------------------------------------------------------------------ */
.nutrition-resumen { display: grid; gap: 18px; margin-bottom: 26px; }
.nutrition-resumen-intro { margin: 0; color: #565656; font-size: .86rem; line-height: 1.5; }
.nutrition-resumen-bloque {
  padding: 16px 18px;
  background: rgba(255, 255, 255, .6);
  border: 1px solid rgb(203, 200, 193);
}
.nutrition-resumen-cabecera {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 10px;
}
.nutrition-resumen-cabecera h3 {
  margin: 0;
  color: var(--green-dark);
  font-size: .78rem;
  font-weight: 750;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.nutrition-resumen-corregir {
  flex: 0 0 auto;
  min-height: 34px;
  padding: 6px 14px;
  color: var(--ink);
  background: none;
  border: 1px solid rgb(170, 167, 160);
  border-radius: 999px;
  font: inherit;
  font-size: .78rem;
  cursor: pointer;
  transition: background-color .2s, border-color .2s;
}
.nutrition-resumen-corregir:hover { background: var(--paper); border-color: var(--green-dark); }
.nutrition-resumen-corregir:focus-visible { outline: 3px solid rgba(143, 189, 24, .34); outline-offset: 1px; }
.nutrition-resumen-datos { display: grid; grid-template-columns: minmax(0, 190px) minmax(0, 1fr); gap: 6px 16px; margin: 0; }
.nutrition-resumen-datos dt { color: #6b6b6b; font-size: .8rem; }
.nutrition-resumen-datos dd { margin: 0; font-size: .92rem; overflow-wrap: anywhere; }
.nutrition-resumen-datos dd.is-vacio { color: #8a8a8a; font-style: italic; }
.nutrition-resumen-lista { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.nutrition-resumen-lista li { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 8px; font-size: .89rem; line-height: 1.4; }
.nutrition-resumen-lista b { color: var(--green-dark); font-size: .76rem; font-weight: 750; letter-spacing: .05em; }
.nutrition-resumen-vacio { margin: 0; color: #8a8a8a; font-size: .86rem; font-style: italic; }
.nutrition-resumen-total { margin: 0; font-size: .9rem; font-weight: 650; }
.nutrition-step:focus { outline: none; }
.nutrition-step:focus-visible { outline: 3px solid rgba(143, 189, 24, .34); outline-offset: 6px; }

@media (max-width: 620px) {
  .nutrition-resumen-datos { grid-template-columns: 1fr; gap: 2px; }
  .nutrition-resumen-datos dd { margin-bottom: 8px; }
  .nutrition-resumen-cabecera { flex-wrap: wrap; }
}

/* ==========================================================================
   2026-09-09 · Revisión de diseño pedida por el cliente
   Documento «cambios web.docx» de Antonio Moro (07-09-2026) y notas de voz
   del 04-09-2026.

   Bloque de anulación al final del archivo: no modifica ninguna regla
   anterior y se retira borrando el bloque entero. Alcance: SOLO la home
   (body.home-page). Pendiente de revisión visual por Juan.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1 · HERO A SANGRE
   El hero era una rejilla de dos columnas (texto .82fr / foto 1.18fr): la foto
   ocupaba el 59 % derecho del ancho. Eso es lo que el cliente describe como
   «la imagen sale cortada por la mitad», poniendo de contraejemplo la portada
   de Finca Charco la Olla y la web actual.

   Se promueve a escritorio el MISMO apilado que el sitio ya usaba en móvil:
   foto al 100 % del ancho y texto encima. No cambia el marcado, ni el
   <picture> con art direction, ni la precarga del LCP.
   -------------------------------------------------------------------------- */
@media (min-width: 761px) {
  .hero-sangre .hero-slide { display: block; }

  .hero-sangre .hero-copy {
    position: relative;
    z-index: 2;
    min-height: 100%;
    max-width: min(720px, 58%);
    padding-bottom: clamp(158px, 17vh, 214px);
  }

  .hero-sangre .hero-media {
    position: absolute;
    z-index: 0;
    inset: 0;
    min-height: 100%;
    height: 100%;
  }

  /* 09-09-2026 — El velo direccional de aquí lo reemplaza el bloque «rev. 3»
     del final del archivo (velo de borde a borde + halo en el texto). Se deja
     la declaración por si alguien retira aquel bloque, pero la que manda es la
     posterior. Y las reglas cuelgan ya de `.hero-sangre`, no de la portada:
     Studio Salux usa el mismo sistema. */
  .hero-sangre .hero-media::after {
    background:
      linear-gradient(90deg,
        rgba(0,0,0,.78) 0%,
        rgba(0,0,0,.54) 26%,
        rgba(0,0,0,.12) 54%,
        rgba(0,0,0,0) 74%),
      linear-gradient(0deg,
        rgba(0,0,0,.62),
        rgba(0,0,0,.10) 30%,
        transparent 52%);
  }

  /* Antes: saturate(.72) contrast(1.06) — se veía apagada. */
  .hero-sangre .hero-media > img {
    filter: saturate(1) contrast(1.02) brightness(1.06);
    object-position: center 42%;
  }
}

/* --------------------------------------------------------------------------
   2 · GEOMETRÍA MÁS BLANDA
   «Se ve muy cuadrada, me gustan más los círculos».
   -------------------------------------------------------------------------- */

/* 2.a · Las dos tarjetas de espacios (Tratamiento clínico / Movimiento
   terapéutico). La barra de acento superior se separa de la esquina para que
   el redondeo no la recorte. */
body.home-page .space-editorial-card { border-radius: 26px; }

body.home-page .space-editorial-card::after {
  left: clamp(28px, 4vw, 54px);
  width: 64px;
  border-radius: 0 0 4px 4px;
}

/* 2.b · «Pide cita»: los logos de Clínica y Studio pasan a círculo, con aro
   verde y rosa, como en la web actual que el cliente aprueba. Se mantiene el
   fondo oscuro porque los dos logos son versiones en negativo. */
body.home-page .appointment-section .space-card,
body.home-page .appointment-section .herbalist-card { border-radius: 22px; }

body.home-page .appointment-section .space-logo {
  display: grid;
  width: clamp(124px, 12vw, 162px);
  height: clamp(124px, 12vw, 162px);
  flex: 0 0 auto;
  padding: clamp(9px, .9vw, 14px);
  border: 2px solid var(--green);
  border-radius: 50%;
  background: rgba(255,255,255,.05);
  place-items: center;
  overflow: hidden;
}

body.home-page .appointment-section .space-logo img {
  width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
}

body.home-page .appointment-section .studio-card .space-logo {
  border-color: var(--pink);
}

body.home-page .appointment-section .studio-card .space-logo img {
  object-position: center;
}

/* --------------------------------------------------------------------------
   3 · DENSIDAD DE LA HOME (añadido 2026-09-09, mismo bloque)
   «Hay tanta letra e información que satura un poco». No se quita contenido
   —el cliente acepta mantenerlo por SEO—: se le da aire y se jerarquiza, para
   que cada bloque se lea como idea principal + detalle en vez de como un
   muro. El FAQ, además, pasa al final de la home desde el generador.
   -------------------------------------------------------------------------- */

/* 3.a · Más respiración entre secciones editoriales de la home. */
body.home-page .editorial-section { padding-block: clamp(84px, 8vw, 122px); }

/* 3.b · Las tres tarjetas de la guía: el segundo párrafo baja de peso, así el
   ojo agarra primero la idea y el detalle queda de apoyo. */
body.home-page .home-guide-card p { max-width: 44ch; }

body.home-page .home-guide-card p + p {
  margin-top: 1.1em;
  color: #6a6862;
  font-size: .84rem;
}

body.home-page .home-guide-card-2 p + p { color: #9b9b9b; }
body.home-page .home-guide-card-3 p + p { color: #5c6349; }

/* 3.c · FAQ: más separación entre preguntas y medida más corta en la entrada. */
body.home-page .faq-column { gap: clamp(16px, 1.6vw, 24px); }
body.home-page .home-faq-intro > p { max-width: 46ch; }
/* --------------------------------------------------------------------------
   4 · EQUIPO EN RECORRIDO CIRCULAR (propuesta 2026-09-09)
   El equipo era un collage de tarjetas en paralelogramo alineadas en fila:
   angular y plano, justo lo que el cliente llama «muy cuadrada».

   Pasa a seis retratos circulares con aro de marca, en zigzag suave y unidos
   por arcos, en la línea del recorrido por pasos que pidió el cliente. Todo
   con el marcado actual: no cambia una sola etiqueta del generador.
   -------------------------------------------------------------------------- */

body.home-page .home-team-collage {
  --circle: clamp(104px, 11vw, 168px);
  --wave: clamp(18px, 2.2vw, 34px);
  position: relative;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  height: auto;
  align-self: start;
  align-items: start;
  gap: clamp(6px, .8vw, 16px);
  margin-top: clamp(26px, 3vw, 46px);
  padding: calc(var(--wave) + 34px) 2% calc(var(--wave) + 22px);
  overflow: visible;
}

body.home-page .team-collage-person {
  align-self: start;
  min-height: 0;
  margin-left: 0;
  transform: translateY(calc(var(--dir, -1) * var(--wave)));
}

body.home-page .team-collage-person:nth-child(odd)  { --dir: -1; }
body.home-page .team-collage-person:nth-child(even) { --dir:  1; }

/* El hover/foco no debe deshacer la onda. */
body.home-page .team-collage-person:focus-within {
  transform: translateY(calc(var(--dir, -1) * var(--wave) - 6px));
}

body.home-page .team-collage-person > a {
  position: relative;
  z-index: 1;
  height: auto;
  flex-direction: column;
  align-items: center;
  gap: calc(var(--circle) * .16);
  padding: 0;
  color: var(--white);
  background: transparent;
  clip-path: none;
  overflow: visible;
  text-align: center;
}

body.home-page .team-collage-person:nth-child(even) > a {
  height: auto;
  background: transparent;
  box-shadow: none;
  clip-path: none;
}

/* El retrato, en círculo con el aro de marca. */
body.home-page .team-collage-person figure {
  width: var(--circle);
  height: var(--circle);
  flex: 0 0 auto;
  border: 2px solid var(--green);
  border-radius: 50%;
  background: #101010;
  overflow: hidden;
  transition: border-color .3s ease, box-shadow .3s ease;
}

body.home-page .team-collage-person:nth-child(2) figure { border-color: var(--pink); }

body.home-page .team-collage-person img {
  transform: scale(1.03);
  object-position: center 26%;
  filter: grayscale(1) contrast(1.06);
}

/* Reencuadre por retrato: los valores antiguos estaban pensados para recortes
   verticales, y dentro de un círculo cortaban la cabeza. */
body.home-page .team-collage-person:nth-child(1) img { object-position: center 24%; }
body.home-page .team-collage-person:nth-child(2) img { object-position: center 20%; }
body.home-page .team-collage-person:nth-child(3) img { object-position: center 20%; }
body.home-page .team-collage-person:nth-child(4) img { object-position: center 18%; }
body.home-page .team-collage-person:nth-child(5) img { object-position: center 24%; }
body.home-page .team-collage-person:nth-child(6) img { object-position: center 30%; }

/* El barrido diagonal era del formato tarjeta; sin tarjeta solo ensucia. */
body.home-page .team-collage-person > a::after { content: none; }

body.home-page .team-collage-person > a:focus-visible figure {
  box-shadow: 0 0 0 6px rgba(168,210,27,.22);
}

body.home-page .team-collage-person:nth-child(2) > a:focus-visible figure {
  box-shadow: 0 0 0 6px rgba(236,25,134,.22);
}

body.home-page .team-collage-person > a:focus-visible { outline: 0; }

/* Rótulo debajo del círculo, siempre: los impares lo llevaban encima. */
body.home-page .team-collage-person:nth-child(odd) > a > div,
body.home-page .team-collage-person > a > div {
  order: 0;
  flex: 0 0 auto;
  max-width: 20ch;
  padding: 0;
  background: transparent;
}

body.home-page .team-collage-person > a > div span {
  margin-bottom: 5px;
  color: var(--green-bright);
  font-size: clamp(.56rem, .58vw, .66rem);
  white-space: normal;
  text-overflow: clip;
}

body.home-page .team-collage-person:nth-child(2) > a > div span { color: var(--pink); }

body.home-page .team-collage-person > a > div h3 {
  max-width: none;
  color: var(--white);
  font-size: clamp(.86rem, .95vw, 1.04rem);
  line-height: 1.12;
}

body.home-page .team-collage-person > a > div b {
  position: static;
  display: block;
  margin-top: 7px;
  color: var(--green-bright);
  font-size: .95rem;
}

body.home-page .team-collage-person:nth-child(2) > a > div b { color: var(--pink); }

/* Arcos que enlazan un retrato con el siguiente. Alternan hacia abajo y hacia
   arriba, que es lo que dibuja el zigzag. El último no lleva. */
body.home-page .team-collage-person::after {
  content: "";
  position: absolute;
  z-index: 0;
  left: 50%;
  width: calc(100% + clamp(6px, .8vw, 16px));
  height: calc(var(--wave) * 2);
  border-color: rgba(168,210,27,.38);
  border-style: solid;
  pointer-events: none;
}

body.home-page .team-collage-person:nth-child(odd)::after {
  top: calc(var(--circle) / 2);
  border-width: 0 0 2px;
  border-radius: 0 0 55% 55% / 0 0 100% 100%;
}

body.home-page .team-collage-person:nth-child(even)::after {
  top: calc(var(--circle) / 2 - var(--wave) * 2);
  border-width: 2px 0 0;
  border-radius: 55% 55% 0 0 / 100% 100% 0 0;
}

body.home-page .team-collage-person:last-child::after { content: none; }

/* Móvil y tablet: el zigzag se apaga y quedan los círculos en rejilla. */
@media (max-width: 1180px) {
  body.home-page .home-team-collage {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(24px, 3.5vw, 40px) clamp(12px, 2vw, 26px);
    padding-block: 24px;
  }
  body.home-page .team-collage-person { transform: none; }
  body.home-page .team-collage-person:focus-within { transform: translateY(-6px); }
  body.home-page .team-collage-person::after { content: none; }
}

@media (max-width: 620px) {
  body.home-page .home-team-collage {
    --circle: clamp(96px, 30vw, 132px);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 30px 14px;
  }
  body.home-page .team-collage-person > a > div { max-width: 100%; }
}

/* El bloque ya no necesita la altura del collage antiguo. */
body.home-page .team-showcase { padding-bottom: clamp(56px, 5vw, 84px); }
body.home-page .team-showcase-action { margin-top: clamp(18px, 2vw, 30px); }

/* --------------------------------------------------------------------------
   4.b · MOVIMIENTO (2026-09-09)

   Dos cosas distintas:

   a) Los círculos se comportan como en la web publicada. Allí los seis
      retratos circulares llevan `elementor-animation-shrink`: un
      `transform: scale(.9)` con `transition: transform .3s` al pasar por
      encima. Se reproduce ese gesto, con el aro reaccionando también.

   b) El recorrido curvo evoluciona de forma continua y lenta del verde de
      Clínica al rosa de Studio, con cada tramo desfasado respecto al
      anterior: la onda de color viaja del primer retrato al último, que es
      lo que da la sensación de continuidad.

   Todo se apaga con `prefers-reduced-motion`.
   -------------------------------------------------------------------------- */

/* a) Gesto de los círculos.
   La web publicada encoge la IMAGEN, no la ficha entera. Escalar el enlace
   completo arrastraba también el rótulo, y ese salto del nombre es lo que se
   percibía como brusco. Ahora solo encoge el retrato, menos (.955 en vez de
   .9) y con una curva de salida suave en vez de `ease`. */
body.home-page .team-collage-person figure {
  transition:
    transform .42s cubic-bezier(.22,.61,.36,1),
    border-color .3s ease,
    box-shadow .3s ease,
    filter .3s ease;
}

body.home-page .team-collage-person > a:hover figure,
body.home-page .team-collage-person > a:focus-visible figure {
  transform: scale(.955);
}

body.home-page .team-collage-person > a:hover figure {
  box-shadow: 0 0 0 5px rgba(168,210,27,.16);
}

body.home-page .team-collage-person:nth-child(2) > a:hover figure {
  box-shadow: 0 0 0 5px rgba(236,25,134,.16);
}

body.home-page .team-collage-person > a:hover img {
  filter: grayscale(0) contrast(1.02);
}

/* b) El recorrido, del verde de Clínica al rosa de Studio y vuelta. */
@keyframes salux-recorrido-equipo {
  0%   { border-color: rgba(168,210,27,.42); }
  50%  { border-color: rgba(236,25,134,.40); }
  100% { border-color: rgba(168,210,27,.42); }
}

@media (prefers-reduced-motion: no-preference) {
  body.home-page .team-collage-person::after {
    animation: salux-recorrido-equipo 18s ease-in-out infinite;
  }

  /* Desfase creciente: el color entra por el primer retrato y avanza hacia
     el último. Los retrasos son negativos para que no haya espera inicial. */
  body.home-page .team-collage-person:nth-child(1)::after { animation-delay: -9.0s; }
  body.home-page .team-collage-person:nth-child(2)::after { animation-delay: -7.2s; }
  body.home-page .team-collage-person:nth-child(3)::after { animation-delay: -5.4s; }
  body.home-page .team-collage-person:nth-child(4)::after { animation-delay: -3.6s; }
  body.home-page .team-collage-person:nth-child(5)::after { animation-delay: -1.8s; }
}

/* Entrada encadenada al asomar la sección. Mejora progresiva: donde el
   navegador no soporta animaciones ligadas al scroll, no pasa nada. */
@keyframes salux-equipo-entrada {
  from { opacity: 0; transform: translateY(20px) scale(.94); }
  to   { opacity: 1; transform: none; }
}

@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    body.home-page .team-collage-person > a {
      animation: salux-equipo-entrada linear both;
      animation-timeline: view();
      animation-range: entry 6% cover 24%;
    }
    /* Ya no hace falta anular la entrada al pasar el ratón: el hover actúa
       sobre el retrato y la animación de entrada sobre el enlace, así que no
       compiten por la misma propiedad. */
  }
}

/* --------------------------------------------------------------------------
   5 · AROS CIRCULARES ANIMADOS (2026-09-09)

   El cliente pasó la referencia: retrato en blanco y negro dentro de un aro
   fino, dos arcos gruesos girando alrededor y, por fuera, un anillo de trazo
   discontinuo girando en sentido contrario.

   Se aplica en los dos sitios donde aparece el equipo:
     · la home  (body.home-page  .team-collage-person)
     · la página de equipo (body.team-hub-page .team-ensemble-person)

   El color sale de --team-accent, que la página de equipo YA define por
   persona (verde, y rosa en .is-studio). En la home se define aquí igual,
   para que las dos usen la misma pieza.
   -------------------------------------------------------------------------- */

@keyframes salux-aro-giro { to { transform: rotate(360deg); } }

body.home-page .team-collage-person            { --team-accent: var(--green); --aro-tenue: rgba(168,210,27,.45); }
body.home-page .team-collage-person:nth-child(2) { --team-accent: var(--pink); --aro-tenue: rgba(236,25,134,.5); }
body.team-hub-page .team-ensemble-person       { --aro-tenue: rgba(77,108,0,.45); }
body.team-hub-page .team-ensemble-person.is-studio { --aro-tenue: rgba(168,11,97,.45); }

/* Anfitrión del círculo: la foto deja de recortar, para que los aros puedan
   salirse por fuera. El recorte lo hace ahora la propia imagen. */
body.home-page .team-collage-person figure,
body.team-hub-page .team-ensemble-person figure {
  position: relative;
  border: 0;
  /* La sombra heredada era cuadrada y dibujaba un rectángulo claro detrás del
     retrato: con el radio pasa a ser un halo circular. */
  border-radius: 50%;
  background: transparent;
  clip-path: none;
  overflow: visible;
}

body.home-page .team-collage-person img,
body.team-hub-page .team-ensemble-person img {
  border-radius: 50%;
  box-shadow: 0 0 0 2px var(--team-accent);
}

/* Anillo exterior de trazo discontinuo. */
body.home-page .team-collage-person figure::before,
body.team-hub-page .team-ensemble-person figure::before {
  position: absolute;
  z-index: 0;
  inset: calc(var(--circle) * -.115);
  content: "";
  border: 2px dashed var(--aro-tenue);
  border-radius: 50%;
  background: none;
  pointer-events: none;
}

/* Dos arcos gruesos, uno a cada lado, girando al revés. */
body.home-page .team-collage-person figure::after,
body.team-hub-page .team-ensemble-person figure::after {
  position: absolute;
  z-index: 0;
  inset: calc(var(--circle) * -.05);
  content: "";
  border: 3px solid transparent;
  border-right-color: var(--team-accent);
  border-left-color: var(--team-accent);
  border-top: 3px solid transparent;
  border-radius: 50%;
  background: none;
  pointer-events: none;
}

@media (prefers-reduced-motion: no-preference) {
  body.home-page .team-collage-person figure::before,
  body.team-hub-page .team-ensemble-person figure::before {
    animation: salux-aro-giro 26s linear infinite;
  }
  body.home-page .team-collage-person figure::after,
  body.team-hub-page .team-ensemble-person figure::after {
    animation: salux-aro-giro 15s linear infinite reverse;
  }
}

/* --- Página de equipo: el retrato pasa de paralelogramo a círculo. -------- */
body.team-hub-page .team-ensemble-person {
  --circle: clamp(124px, 11.5vw, 172px);
}

/* Con retratos circulares la rejilla necesita menos alto y algo más de aire
   entre filas: los aros se salen del cuadro de la foto. */
body.team-hub-page .team-ensemble-grid {
  height: auto;
  grid-template-rows: repeat(2, minmax(230px, auto));
  gap: clamp(54px, 4.4vw, 78px) clamp(24px, 2.6vw, 44px);
  /* Los aros sobresalen del retrato: sin este margen, los de los extremos se
     salían del contenedor y quedaban cortados. */
  padding-inline: clamp(18px, 2vw, 34px);
}

body.team-hub-page .team-ensemble-person > a { min-height: 0; }

body.team-hub-page .team-ensemble-person figure {
  width: var(--circle);
  height: var(--circle);
  height: var(--circle);
  justify-self: center;
  align-self: center;
  margin: 0 auto;
}

body.team-hub-page .team-ensemble-person img {
  object-position: center 24%;
}

body.team-hub-page .team-ensemble-person-1 img { object-position: center 24%; }
body.team-hub-page .team-ensemble-person-2 img { object-position: center 20%; }
body.team-hub-page .team-ensemble-person-3 img { object-position: center 20%; }
body.team-hub-page .team-ensemble-person-4 img { object-position: center 18%; }
body.team-hub-page .team-ensemble-person-5 img { object-position: center 24%; }
body.team-hub-page .team-ensemble-person-6 img { object-position: center 30%; }

/* Los fondos en paralelogramo de las tarjetas dejan de tener sentido. */
body.team-hub-page .team-ensemble-person > a::before { display: none; }

body.team-hub-page .team-ensemble-person > a:hover figure,
body.team-hub-page .team-ensemble-person > a:focus-visible figure {
  transform: scale(.955);
}

body.team-hub-page .team-ensemble-person figure {
  transition: transform .42s cubic-bezier(.22,.61,.36,1);
}

body.team-hub-page .team-ensemble-person > a:hover img,
body.team-hub-page .team-ensemble-person > a:focus-visible img {
  filter: grayscale(0) contrast(1.02);
  transform: none;
}

@media (max-width: 900px) {
  body.team-hub-page .team-ensemble-person { --circle: clamp(112px, 26vw, 150px); }
}

/* --------------------------------------------------------------------------
   5.b · PÁGINA DE EQUIPO: MISMO ORDEN EN LAS SEIS FICHAS (2026-09-09)
   La rejilla alternaba nombre-foto / foto-nombre. Con los retratos ya en
   círculo esa alternancia solo desordenaba la lectura, así que las seis
   fichas pasan a nombre a la izquierda y retrato a la derecha.
   -------------------------------------------------------------------------- */

body.team-hub-page .team-ensemble-person:nth-child(even) > a {
  grid-template-columns: minmax(0, .9fr) minmax(145px, 1.1fr);
  padding: 10px 12px;
}

body.team-hub-page .team-ensemble-person:nth-child(even) figure {
  grid-column: 2;
}

body.team-hub-page .team-ensemble-person:nth-child(even) .team-ensemble-meta {
  grid-column: 1;
  padding: 18px 4px 18px 20px;
  border-right: 0;
  border-left: 1px solid rgba(20,20,20,.28);
  text-align: left;
}

body.team-hub-page .team-ensemble-person:nth-child(even) .team-ensemble-meta::before {
  display: block;
  right: auto;
  left: -1px;
}

body.team-hub-page .team-ensemble-person:nth-child(even) .team-ensemble-number {
  right: 0;
  left: auto;
}

body.team-hub-page .team-ensemble-person:nth-child(even) > a:focus-visible .team-ensemble-meta {
  transform: translateX(5px);
}

/* 5.c · Por debajo de 1100 px el nombre al lado del círculo estrangula la
   columna de texto (los nombres se partían letra a letra). La ficha pasa a
   apilarse: retrato arriba, nombre debajo y centrado. */
@media (max-width: 1100px) {
  body.team-hub-page .team-ensemble-person { --circle: clamp(104px, 20vw, 150px); transform: none; }

  body.team-hub-page .team-ensemble-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(34px, 5vw, 56px) clamp(14px, 2vw, 26px);
  }

  body.team-hub-page .team-ensemble-person > a,
  body.team-hub-page .team-ensemble-person:nth-child(even) > a {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    padding: 8px;
    text-align: center;
  }

  /* La versión móvil del sitio montaba aquí un panel negro superpuesto,
     pensado para el retrato en paralelogramo. Con el círculo estorba. */
  body.team-hub-page .team-ensemble-person .team-ensemble-meta,
  body.team-hub-page .team-ensemble-person:nth-child(even) .team-ensemble-meta {
    width: auto;
    margin: 0;
    padding: 0;
    color: inherit;
    background: transparent;
    border: 0;
    text-align: center;
  }

  body.team-hub-page .team-ensemble-person .team-ensemble-meta h2 { color: var(--ink); }

  body.team-hub-page .team-ensemble-person figure,
  body.team-hub-page .team-ensemble-person:nth-child(even) figure {
    width: var(--circle);
    height: var(--circle);
    aspect-ratio: auto;
    clip-path: none;
  }

  body.team-hub-page .team-ensemble-person .team-ensemble-meta::before,
  body.team-hub-page .team-ensemble-person:nth-child(even) .team-ensemble-meta::before { display: none; }

  /* Los números grandes chocaban con los aros al reducir la ficha. */
  body.team-hub-page .team-ensemble-number { display: none; }
}

@media (max-width: 700px) {
  body.team-hub-page .team-ensemble-person { --circle: clamp(94px, 28vw, 128px); }
  body.team-hub-page .team-ensemble-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* --------------------------------------------------------------------------
   6 · BLOQUE «NO TRATAMOS SOLO DÓNDE DUELE» A SANGRE (2026-09-09)

   Mismo problema que el hero: la sección era una rejilla 50/50 con la foto
   ocupando el 61 % derecho y un panel negro sólido bajo el texto. El cliente
   pide lo mismo que arriba: imagen completa, parallax y texto encima.

   Se conserva intacto el parallax: las variables --parallax-* las sigue
   escribiendo el mismo JS y la imagen sigue moviéndose con ellas.
   -------------------------------------------------------------------------- */
@media (min-width: 901px) {
  /* Algo más de alto para que el recorte vertical no se coma las cabezas al
     pasar la foto de una caja de proporción 1,62 a una a sangre. */
  body.home-page .home-parallax-story {
    /* Una sola columna: con la rejilla 50/50 el ancho del texto se medía sobre
       media sección y la columna quedaba estrangulada. */
    grid-template-columns: 1fr;
    height: clamp(560px, 44vw, 760px);
  }

  body.home-page .home-parallax-story-media {
    right: auto;
    inset: 0;
    width: 100%;
    -webkit-mask-image: none;
    mask-image: none;
  }

  /* Fuera la máscara diagonal: existía para disolver el canto izquierdo de la
     foto contra el negro. A sangre no hay canto que disolver. */
  body.home-page .home-parallax-story-media img {
    top: -14px;
    height: calc(100% + 120px);
    object-position: center 18%;
    filter: saturate(.92) contrast(1.03) brightness(1.04);
    -webkit-mask-image: none;
    mask-image: none;
  }

  /* El velo sustituye al panel negro: oscurece la franja del texto y libera la
     foto a partir del 56 % del ancho. */
  body.home-page .home-parallax-story-media::before,
  body.home-page .home-parallax-story[data-parallax-active] .home-parallax-story-media::before {
    background:
      linear-gradient(90deg,
        rgba(7,7,6,.90) 0%,
        rgba(7,7,6,.74) 26%,
        rgba(7,7,6,.30) 52%,
        rgba(7,7,6,0) 74%),
      linear-gradient(0deg, rgba(5,5,4,.5), transparent 34%, transparent 76%, rgba(5,5,4,.28));
  }

  /* El óvalo blanco estaba calculado sobre la caja del 61 %: a sangre se
     convertía en una elipse enorme cruzando la sección. */
  body.home-page .home-parallax-story-media::after { content: none; }

  body.home-page .home-parallax-story-copy {
    width: min(640px, 52%);
    max-width: 640px;
    height: 100%;
    padding-right: clamp(24px, 3vw, 56px);
    background: none;
  }
}

@media (min-width: 901px) and (max-width: 1280px) {
  body.home-page .home-parallax-story { height: clamp(500px, 48vw, 640px); }
  body.home-page .home-parallax-story-copy { width: min(540px, 60%); max-width: 540px; }
}

/* ==========================================================================
   09-09-2026 — Megamenú de Tratamientos en dos bloques
   --------------------------------------------------------------------------
   El cliente lee mal el menú: cuatro columnas al mismo nivel, 34 filas
   encajonadas con borde y flecha propia, y rótulos sin jerarquía
   ("Técnicas I", "Técnicas II"). Pasa a dos bloques —Tratamientos y
   Técnicas—, separados por una línea vertical, con cabecera propia y un
   único enlace "ver todos" por bloque. Los enlaces dejan de ser cajas: texto
   plano, más aire entre líneas y una sola flecha por bloque.
   ========================================================================== */
.submenu-duo {
  left: -320px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  width: min(960px, calc(100vw - 40px));
  padding: 0;
}

.submenu-duo .submenu-block { min-width: 0; padding: 26px 26px 24px; }
.submenu-duo .submenu-block + .submenu-block { border-left: 1px solid var(--line); }

.submenu-duo .submenu-block-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.submenu-duo .submenu-block-head p {
  grid-column: auto;
  margin: 0;
  color: var(--white);
  font-size: 1.02rem;
  font-weight: 650;
  letter-spacing: -.01em;
  text-transform: none;
}
.submenu-duo .submenu-block-all {
  display: inline-flex !important;
  gap: 7px;
  min-height: 0 !important;
  padding: 0 !important;
  color: var(--green-bright);
  font-size: .74rem;
  letter-spacing: .02em;
  white-space: nowrap;
  border: 0;
}
.submenu-duo .submenu-block-all:hover { background: none; text-decoration: underline; }

.submenu-duo .submenu-block-columns {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0 26px;
}
.submenu-duo .submenu-block-columns ul { min-width: 0; margin: 0; padding: 0; list-style: none; }
.submenu-duo .submenu-block-columns li { margin: 0; }
.submenu-duo .submenu-block-columns a {
  display: block !important;
  min-height: 0 !important;
  padding: 7px 12px 7px 0 !important;
  color: #cfcfcf;
  font-size: .82rem;
  line-height: 1.32;
  overflow-wrap: break-word;
  border: 0;
}
.submenu-duo .submenu-block-columns a:hover,
.submenu-duo .submenu-block-columns a:focus-visible { color: var(--green-bright); background: none; }
.submenu-duo .submenu-block-columns a[aria-current="page"] { color: var(--white); font-weight: 600; }

/* El segundo bloque es el de técnicas: se marca en rosa para separarlo de un
   vistazo del bloque clínico, igual que hace el resto del sitio. */
.submenu-duo .submenu-block:last-child .submenu-block-all { color: var(--pink); }
.submenu-duo .submenu-block:last-child .submenu-block-columns a:hover,
.submenu-duo .submenu-block:last-child .submenu-block-columns a:focus-visible { color: var(--pink); }

@media (max-width: 1050px) {
  .submenu-duo {
    left: auto;
    grid-template-columns: 1fr;
    width: 100%;
    padding: 0 0 12px;
  }
  .submenu-duo .submenu-block { padding: 18px 12px 16px; }
  .submenu-duo .submenu-block + .submenu-block { border-left: 0; border-top: 1px solid var(--line); }
  .submenu-duo .submenu-block-head { flex-wrap: wrap; }
}

@media (max-width: 560px) {
  .submenu-duo .submenu-block-columns { grid-template-columns: 1fr; gap: 0; }
  .submenu-duo .submenu-block-columns a { padding: 9px 0 !important; }
}

/* ==========================================================================
   09-09-2026 (rev. 2) — Testimonios destacados en /testimonios/
   --------------------------------------------------------------------------
   Correcciones pedidas por Juan sobre la primera versión:
     · El módulo deja de tener cabecera propia. Se funde con el bloque «Una
       historia orienta. No sustituye una valoración.» y vive dentro de esa
       misma sección, así que hay un solo titular en vez de dos seguidos.
     · Fuera el fondo negro: se queda sobre el papel de la sección, con las
       tarjetas en blanco.
     · Retratos en círculo, con aro verde, como el resto del sitio.
     · La navegación por anclas se sustituye por botones. El ancla arrastraba
       también el scroll vertical de la página y dejaba las tarjetas a medias.

   Las clases se renombran a `testimonios-destacados-*`: `.testimonial-spotlight`
   ya existía en el sitio como otro componente (línea 2007, fondo #0c0c0c y
   texto claro), y el mío heredaba su fondo negro. Dos componentes distintos no
   pueden compartir nombre.
   ========================================================================== */
.testimonial-context.has-spotlight { padding-bottom: clamp(48px, 5vw, 76px); }
.testimonial-context-nota {
  max-width: 62ch;
  margin: 20px 0 0;
  color: #6a6a64;
  font-size: .92rem;
}

/* `min-width: 0` no es decorativo: el modulo es un item de rejilla y, con el
   `min-width: auto` por defecto, la pista se estiraba hasta caber entera en vez
   de recortarse. Resultado en movil: el carrusel no se desplazaba -era la
   pagina la que se iba de ancho-. */
.testimonios-destacados {
  grid-column: 1 / -1;
  min-width: 0;
  max-width: 100%;
  margin-top: clamp(4px, .8vw, 14px);
}

.testimonios-destacados-pista {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: min(520px, 80vw);
  gap: clamp(14px, 1.4vw, 22px);
  padding-bottom: 4px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-left: 0;
  scrollbar-width: none;
  min-width: 0;
  max-width: 100%;
}
.testimonios-destacados-pista::-webkit-scrollbar { display: none; }
.testimonios-destacados-pista:focus-visible { outline: 2px solid var(--green-dark); outline-offset: 4px; }

.testimonios-destacados-tarjeta {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: clamp(18px, 1.8vw, 28px);
  min-width: 0;
  height: clamp(268px, 21vw, 330px);
  padding: clamp(22px, 2vw, 32px);
  scroll-snap-align: start;
  background: #fff;
  border: 1px solid rgba(20,20,18,.10);
  border-radius: 24px;
  box-shadow: 0 10px 30px rgba(35,32,25,.05);
  transition: border-color .3s ease, box-shadow .3s ease;
}
.testimonios-destacados-tarjeta:hover,
.testimonios-destacados-tarjeta:focus-within {
  border-color: rgba(143,189,24,.55);
  box-shadow: 0 14px 38px rgba(35,32,25,.10);
}

/* Retrato circular con aro, el mismo gesto que «Pide cita» y el equipo. */
.testimonios-destacados-retrato {
  display: block;
  width: clamp(104px, 10.5vw, 148px);
  height: clamp(104px, 10.5vw, 148px);
  flex: 0 0 auto;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 0 0 2px var(--green), 0 0 0 8px rgba(143,189,24,.14);
}
.testimonios-destacados-retrato img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s cubic-bezier(.22,.61,.36,1);
}
.testimonios-destacados-tarjeta:hover .testimonios-destacados-retrato img { transform: scale(1.06); }

.testimonios-destacados-copia {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  height: 100%;
}
.testimonios-destacados-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin: 0;
  color: var(--green-dark);
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.testimonios-destacados-meta time { color: #83837c; letter-spacing: .08em; }
.testimonios-destacados-copia h3 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0;
  font-size: clamp(1.16rem, 1.5vw, 1.55rem);
  line-height: 1.16;
  letter-spacing: -.028em;
}
.testimonios-destacados-copia h3 a { color: var(--black); }
.testimonios-destacados-copia h3 a:hover { color: var(--green-dark); }
.testimonios-destacados-copia > p:not(.testimonios-destacados-meta) {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0;
  color: #55554f;
  font-size: .94rem;
  line-height: 1.6;
}
.testimonios-destacados-enlace {
  display: inline-flex;
  gap: 9px;
  margin-top: auto;
  color: var(--green-dark);
  font-size: .88rem;
  font-weight: 600;
}
.testimonios-destacados-enlace:hover { text-decoration: underline; }

/* Numeral fantasma: da escala sin añadir ruido. */
.testimonios-destacados-tarjeta::after {
  content: attr(data-indice);
  position: absolute;
  right: clamp(18px, 1.6vw, 28px);
  bottom: clamp(4px, .5vw, 10px);
  color: rgba(20,20,18,.055);
  font-size: clamp(3.2rem, 4.6vw, 5rem);
  font-weight: 700;
  line-height: .8;
  letter-spacing: -.05em;
  pointer-events: none;
}

/* Controles. Las flechas sólo aparecen cuando el JS ha tomado el mando: sin
   él la pista sigue siendo un desplazamiento horizontal nativo y no se pierde
   ni una tarjeta, pero unos botones que no hacen nada serían peor que nada. */
.testimonios-destacados-controles {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: clamp(18px, 2vw, 26px);
}
.testimonios-destacados-pasos { display: flex; flex-wrap: wrap; gap: 6px; }
.testimonios-destacados-pasos button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  min-height: 36px;
  padding: 0;
  color: #83837c;
  font-size: .72rem;
  font-family: inherit;
  letter-spacing: .1em;
  background: none;
  border: 1px solid rgba(20,20,18,.16);
  border-radius: 999px;
  cursor: pointer;
  transition: color .2s ease, border-color .2s ease, background .2s ease;
}
.testimonios-destacados-pasos button:hover { color: var(--green-dark); border-color: var(--green); }
.testimonios-destacados-pasos button.is-active {
  color: var(--black);
  background: rgba(143,189,24,.16);
  border-color: var(--green);
}

.testimonios-destacados-flechas { display: none; gap: 8px; }
[data-carrusel-listo] .testimonios-destacados-flechas { display: flex; }
.testimonios-destacados-flecha {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  color: var(--black);
  font-size: 1.1rem;
  background: none;
  border: 1px solid rgba(20,20,18,.18);
  border-radius: 50%;
  cursor: pointer;
  transition: color .2s ease, border-color .2s ease, background .2s ease, opacity .2s ease;
}
.testimonios-destacados-flecha:hover:not(:disabled) { color: var(--green-dark); background: rgba(143,189,24,.12); border-color: var(--green); }
.testimonios-destacados-flecha:disabled { opacity: .3; cursor: default; }

@media (max-width: 900px) {
  .testimonios-destacados-pista { grid-auto-columns: min(430px, 86vw); }
  .testimonios-destacados-tarjeta { height: auto; }
}

@media (max-width: 560px) {
  .testimonios-destacados-tarjeta {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 22px;
  }
  .testimonios-destacados-controles { flex-direction: column-reverse; align-items: stretch; gap: 14px; }
  .testimonios-destacados-flechas { justify-content: flex-end; }
}

@media (prefers-reduced-motion: no-preference) {
  .testimonios-destacados-pista { scroll-behavior: smooth; }
}

/* ==========================================================================
   09-09-2026 (rev. 3) — El hero sin recuadro: velo uniforme y halo en el texto
   --------------------------------------------------------------------------
   Juan descarta el panel: quiere "lo justo para que se vea bien el texto" y que
   la fotografía se respete a lo ancho, como en el hero de Finca Charco la Olla.
   Dos capas, ninguna con borde visible:

   1. Un velo PLANO sobre toda la imagen. Al no ser un degradado no tiene arista
      ni deja media foto más clara que la otra, que era la objeción de partida.
      Se le suma una franja inferior corta, necesaria para que los controles y
      las pestañas del carrusel se lean sobre la foto.
   2. Un halo de sombra en los propios caracteres. Oscurece únicamente los
      píxeles pegados a las letras: es la forma más barata de subir el contraste
      sin poner nada encima de la imagen.

   OJO: no tocar `position` en .hero-slide. La base las apila con
   `position: absolute` y sólo la activa pasa a `relative`; forzarlas todas a
   relative las pone en flujo y el carrusel deja de rotar.

   09-09-2026 — Las reglas colgaban de `body.home-page`. Ahora cuelgan de la
   clase `.hero-sangre`, que el generador pone en la propia sección: así el
   mismo sistema sirve para la portada y para la de Studio Salux sin duplicar
   nada. Cualquier hero futuro que quiera este tratamiento sólo tiene que
   llevar la clase.
   ========================================================================== */
.hero-sangre .hero-media::after {
  background:
    /* franja inferior: los controles y las pestañas van sobre la foto */
    linear-gradient(0deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.34) 13%, rgba(0,0,0,0) 27%),
    /* refuerzo lateral que recorre TODO el ancho, de borde a borde: al no
       terminar dentro de la imagen no deja arista ni parte la foto en dos, que
       era el problema del degradado anterior */
    linear-gradient(90deg, rgba(4,4,4,.52) 0%, rgba(4,4,4,.34) 42%, rgba(4,4,4,.16) 72%, rgba(4,4,4,0) 100%),
    /* velo plano sobre el conjunto */
    linear-gradient(rgba(6,6,6,.26), rgba(6,6,6,.26));
}

.hero-sangre .hero-copy .eyebrow,
.hero-sangre .hero-copy h1,
.hero-sangre .hero-copy h2,
.hero-sangre .hero-copy > p:not(.eyebrow),
.hero-sangre .hero-copy .text-link {
  text-shadow:
    0 1px 2px rgba(0,0,0,.9),
    0 2px 12px rgba(0,0,0,.85),
    0 4px 22px rgba(0,0,0,.72),
    0 8px 44px rgba(0,0,0,.6);
}

/* El párrafo del hero venía en #d2d2d2. Sobre las escenas claras se quedaba en
   1,7:1; en blanco gana un 50 % de contraste sin tocar la fotografía. */
.hero-sangre .hero-copy > p:not(.eyebrow) { color: #fff; }

/* Los botones son de contorno: el halo va en la caja, no en el glifo, para que
   el trazo del borde no se emborrone. */
.hero-sangre .hero-actions .button {
  background-color: rgba(6,6,6,.44);
  -webkit-backdrop-filter: blur(3px);
          backdrop-filter: blur(3px);
  box-shadow: 0 2px 26px rgba(0,0,0,.5);
  text-shadow: 0 1px 2px rgba(0,0,0,.8), 0 2px 10px rgba(0,0,0,.7);
}

@media (min-width: 761px) {
  .hero-sangre .hero-copy {
    position: absolute;
    z-index: 2;
    left: clamp(24px, 4.2vw, 92px);
    top: 50%;
    width: fit-content;
    min-width: 0;
    max-width: min(660px, 52%);
    min-height: 0;
    padding: 0;
    transform: translateY(calc(-50% - 34px));
  }
  .hero-sangre .hero-copy > p:not(.eyebrow) { max-width: 46ch; }
  .hero-sangre h1,
  .hero-sangre h2 { max-width: 100%; }
}

@media (max-width: 760px) {
  /* En móvil la copia va a todo el ancho, así que el refuerzo no puede ser
     lateral: baja desde el borde superior y muere antes de encontrarse con la
     franja de los controles. Entre las dos la foto queda más clara por el
     centro, que se lee como un viñeteado, no como una caja. */
  .hero-sangre .hero-media::after {
    background:
      linear-gradient(0deg, rgba(0,0,0,.74) 0%, rgba(0,0,0,.36) 14%, rgba(0,0,0,0) 30%),
      linear-gradient(180deg, rgba(4,4,4,.62) 0%, rgba(4,4,4,.46) 40%, rgba(4,4,4,.18) 66%, rgba(4,4,4,0) 86%),
      linear-gradient(rgba(6,6,6,.26), rgba(6,6,6,.26));
  }
  .hero-sangre .hero-copy {
    position: relative;
    min-height: 0;
    margin: clamp(26px, 6vh, 58px) var(--pad) 190px;
    padding: 0;
  }
}

/* ==========================================================================
   09-09-2026 — Capa de movimiento del hero: círculos que ascienden
   --------------------------------------------------------------------------
   Equivalente Salux de las hojas que caen en el hero de Finca Charco la Olla.
   Aquí el idioma de la marca son los círculos —es lo que el propio cliente
   pidió—, así que son motas circulares muy tenues que suben despacio y se
   apagan, en verde clínica, rosa studio y blanco.

   Cumple el método: sólo `transform` y `opacity`, cero JavaScript, cero
   dependencias, nada de movimiento sobre el elemento del LCP (son <i> decorativos
   hermanos del titular, no el titular), y se apagan por completo con
   «reducir movimiento». Son decorativas y van en un contenedor `aria-hidden`,
   así que no ocultan contenido: si algo fallara, no se pierde nada.
   ========================================================================== */
.hero-motes {
  position: absolute;
  z-index: 1;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.hero-motes i {
  position: absolute;
  bottom: -12%;
  display: block;
  width: var(--mota, 14px);
  height: var(--mota, 14px);
  border: 1px solid currentColor;
  border-radius: 50%;
  color: rgba(255,255,255,.5);
  opacity: 0;
  transform: translate3d(0, 0, 0);
}

.hero-motes i.is-green { color: rgba(168,210,27,.62); }
.hero-motes i.is-pink  { color: rgba(236,25,134,.55); }
.hero-motes i.is-solid { background: currentColor; border-color: transparent; opacity: 0; }

@keyframes salux-mota-asciende {
  0%   { opacity: 0; transform: translate3d(0, 0, 0) scale(.86); }
  12%  { opacity: 1; }
  78%  { opacity: 1; }
  100% { opacity: 0; transform: translate3d(var(--deriva, 26px), calc(var(--recorrido, 100vh) * -1), 0) scale(1.12); }
}

@media (prefers-reduced-motion: no-preference) {
  .hero-motes i {
    animation: salux-mota-asciende var(--dura, 26s) linear var(--retardo, 0s) infinite;
  }
}

/* Sin la preferencia atendida no queda ni rastro: el contenedor entero se
   retira, no se deja un círculo estático flotando en mitad de la foto. */
@media (prefers-reduced-motion: reduce) {
  .hero-motes { display: none; }
}

.hero-motes i:nth-child(1)  { left:  6%; --mota: 10px; --dura: 30s; --retardo: -2s;  --deriva:  34px; --recorrido: 96vh; }
.hero-motes i:nth-child(2)  { left: 13%; --mota: 22px; --dura: 41s; --retardo: -14s; --deriva: -28px; --recorrido: 92vh; }
.hero-motes i:nth-child(3)  { left: 21%; --mota:  7px; --dura: 25s; --retardo: -7s;  --deriva:  18px; --recorrido: 99vh; }
.hero-motes i:nth-child(4)  { left: 29%; --mota: 16px; --dura: 36s; --retardo: -21s; --deriva:  42px; --recorrido: 94vh; }
.hero-motes i:nth-child(5)  { left: 37%; --mota: 11px; --dura: 33s; --retardo: -5s;  --deriva: -36px; --recorrido: 97vh; }
.hero-motes i:nth-child(6)  { left: 44%; --mota: 26px; --dura: 46s; --retardo: -30s; --deriva:  22px; --recorrido: 90vh; }
.hero-motes i:nth-child(7)  { left: 52%; --mota:  9px; --dura: 28s; --retardo: -11s; --deriva: -20px; --recorrido: 98vh; }
.hero-motes i:nth-child(8)  { left: 59%; --mota: 18px; --dura: 39s; --retardo: -24s; --deriva:  30px; --recorrido: 93vh; }
.hero-motes i:nth-child(9)  { left: 66%; --mota: 13px; --dura: 31s; --retardo: -17s; --deriva: -44px; --recorrido: 96vh; }
.hero-motes i:nth-child(10) { left: 73%; --mota:  8px; --dura: 27s; --retardo: -3s;  --deriva:  16px; --recorrido: 99vh; }
.hero-motes i:nth-child(11) { left: 80%; --mota: 21px; --dura: 43s; --retardo: -35s; --deriva: -26px; --recorrido: 91vh; }
.hero-motes i:nth-child(12) { left: 87%; --mota: 12px; --dura: 34s; --retardo: -9s;  --deriva:  38px; --recorrido: 95vh; }
.hero-motes i:nth-child(13) { left: 93%; --mota: 15px; --dura: 37s; --retardo: -27s; --deriva: -18px; --recorrido: 94vh; }
.hero-motes i:nth-child(14) { left: 97%; --mota:  6px; --dura: 24s; --retardo: -19s; --deriva:  24px; --recorrido: 99vh; }

/* En móvil el hero es más estrecho y más alto: menos motas y más lentas, para
   no gastar batería pintando círculos que casi no se ven. */
@media (max-width: 760px) {
  .hero-motes i:nth-child(n+9) { display: none; }
  .hero-motes i { --dura: 42s; }
}

/* ==========================================================================
   09-09-2026 — Tarjetas de «Pide cita» en toda la web
   --------------------------------------------------------------------------
   Los logos en círculo con aro verde y rosa estaban acotados a `body.home-page`;
   pasan a aplicarse en todas las páginas, que es donde el bloque se repite.
   Además, por indicación de Juan: el texto bajo el logo crece (antes 0,82 rem
   sobre gris #aaa, se perdía) y la flecha sale del flujo para colocarse en la
   esquina superior derecha, más gruesa y girada 45º, apuntando arriba a la
   derecha — el mismo gesto que ya usa el botón de Herbolario.
   ========================================================================== */
.appointment-section .space-card,
.appointment-section .herbalist-card { border-radius: 22px; }

.appointment-section .space-logo {
  display: grid;
  flex: 0 0 auto;
  width: clamp(124px, 12vw, 162px);
  height: clamp(124px, 12vw, 162px);
  padding: clamp(9px, .9vw, 14px);
  background: rgba(255,255,255,.05);
  border: 2px solid var(--green);
  border-radius: 50%;
  place-items: center;
  overflow: hidden;
}
.appointment-section .studio-card .space-logo { border-color: var(--pink); }
.appointment-section .space-logo img {
  width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
}

.appointment-section .space-card {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  flex-direction: column;
  gap: clamp(16px, 1.7vw, 26px);
  min-height: 0;
  padding: clamp(26px, 2.4vw, 40px);
}

/* El texto descriptivo: era el elemento más pequeño de la tarjeta y llevaba
   todo el peso informativo. */
.appointment-section .space-card > span:not(.space-logo) {
  flex: 0 1 auto;
  max-width: 24ch;
  color: #dcdcdc;
  font-size: clamp(1.02rem, 1.15vw, 1.24rem);
  line-height: 1.38;
}

.appointment-section .space-card > b {
  position: absolute;
  top: clamp(18px, 1.5vw, 26px);
  right: clamp(18px, 1.5vw, 26px);
  font-size: clamp(1.9rem, 2.2vw, 2.6rem);
  font-weight: 700;
  line-height: 1;
  transform: rotate(-45deg);
  transform-origin: center;
}
.appointment-section .studio-card > b { color: var(--pink); }

@media (max-width: 700px) {
  .appointment-section .space-card { gap: 16px; padding: 24px; }
  .appointment-section .space-logo { width: clamp(96px, 26vw, 124px); height: clamp(96px, 26vw, 124px); }
  .appointment-section .space-card > span:not(.space-logo) { max-width: 100%; font-size: 1.02rem; }
}

/* Con el panel translúcido que pidió Juan, el rosa de Studio cae a 1,93:1 sobre
   la fotografía clara (medido). El color no da más de sí: `#ec1986` alcanza
   como máximo 5,05:1 contra negro puro. Se pasa a blanco sólo el rótulo y el
   texto del botón de esa diapositiva; la línea de acento y el borde del botón
   siguen siendo rosa, así que la diapositiva se lee igual de "Studio".
   Revertirlo es borrar estas dos reglas. */
.hero-sangre .hero-slide-studio .hero-copy .eyebrow,
.hero-sangre .hero-slide-studio .hero-copy .button-studio { color: #fff; }

/* 09-09-2026 — El hero pasa a cinco escenas: la tira de pestañas deja de estar
   fijada a cuatro columnas y se reparte sola, así añadir o quitar una escena no
   obliga a tocar el CSS. */
.hero-tabs {
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
}

/* El rótulo del hero usaba `--green` (#8fbd18). Sobre las diapositivas claras
   se quedaba en 4,38:1, por debajo de AA. Pasa a `--green-bright` (#a8d21b),
   que es el verde que ya usan los botones del propio hero: mismo color de
   marca, más luminancia, y sube por encima de 6:1 en las cinco escenas. */
.hero-sangre .hero-copy .eyebrow:not(.eyebrow-pink) { color: var(--green-bright); }

/* ==========================================================================
   09-09-2026 — Hero de Studio Salux
   --------------------------------------------------------------------------
   Misma mecánica que la portada (`.hero-sangre` + carrusel + motas), con dos
   escenas y textos que hablan sólo de Studio.

   La copia va abajo a la izquierda, no centrada: las dos fotografías llevan el
   logotipo de Studio Salux en el tercio superior izquierdo, justo donde caería
   el titular. Con el texto abajo, el logotipo se ve entero y el titular se
   apoya sobre pared y suelo limpios. Se probó extender el lienzo por la
   izquierda como en la escena 05 de la portada: no sirve aquí — para despejar
   el logotipo harían falta 1.400 px y el recorte de `cover` se comería a la
   protagonista.
   ========================================================================== */
@media (min-width: 761px) {
  body.studio-page .hero-sangre .hero-copy {
    top: auto;
    bottom: clamp(104px, 12vh, 148px);
    max-width: min(620px, 46%);
    padding-bottom: 0;
    transform: none;
  }
}

@media (max-width: 760px) {
  body.studio-page .hero-sangre .hero-copy {
    margin-top: clamp(150px, 26vh, 260px);
  }
}

/* Las motas de Studio se inclinan al rosa: es su color. */
body.studio-page .hero-motes i { color: rgba(255,255,255,.46); }
body.studio-page .hero-motes i.is-green { color: rgba(236,25,134,.42); }
body.studio-page .hero-motes i.is-pink { color: rgba(236,25,134,.58); }

/* En Studio la pestaña activa y su barra de progreso van en rosa. La regla
   base tiñe de rosa la tercera pestaña, porque en la portada esa es la de
   Studio; aquí todas lo son. */
body.studio-page .hero-tabs button.is-active { color: var(--pink); }

/* ==========================================================================
   09-09-2026 — Las dos tarjetas de espacio, con el color de cada rama
   --------------------------------------------------------------------------
   Petición de Juan: intensificar el color de cada rama y que el logotipo esté
   más presente.

   Marcas de agua: se sustituyen los dos ficheros. Clínica usaba
   `icono-logo.png`, que son 90×90 px declarados como 720 y ampliados siete
   veces —salía borroso—; ahora es `clinica-salux-simbolo.png`, 720×720 limpio
   y en verde de marca. Studio usaba `studio-salux-negativo.jpg` con un apaño de
   `invert + grayscale + multiply` que lo dejaba gris; ahora es
   `studio-salux-simbolo.png`, que ya viene en rosa con transparencia.

   Movimiento: sólo `transform` y `opacity`, deriva muy lenta y desfasada entre
   las dos tarjetas, y se apaga entera con «reducir movimiento».
   ========================================================================== */
.home-page .space-editorial-card {
  background: linear-gradient(150deg, rgba(143,189,24,.13) 0%, rgba(143,189,24,.05) 42%, rgba(255,255,255,0) 74%), #f7f5ef;
  border-color: rgba(143,189,24,.30);
}
.home-page .space-editorial-card.studio {
  background: linear-gradient(150deg, rgba(236,25,134,.11) 0%, rgba(236,25,134,.045) 42%, rgba(255,255,255,0) 74%), #f7f2f4;
  border-color: rgba(236,25,134,.26);
}
.home-page .space-editorial-card:hover { border-color: rgba(143,189,24,.62); }
.home-page .space-editorial-card.studio:hover { border-color: rgba(236,25,134,.55); }

/* La barra superior deja de ser un guión de 88 px. */
.home-page .space-editorial-card::after { width: 148px; height: 5px; }

/* Halo de color que respira, por detrás de todo. */
.home-page .space-editorial-card::before {
  position: absolute;
  z-index: -2;
  right: -18%;
  bottom: -26%;
  width: 78%;
  height: 78%;
  content: "";
  background: radial-gradient(circle at 50% 50%, rgba(143,189,24,.34), rgba(143,189,24,0) 68%);
  pointer-events: none;
}
.home-page .space-editorial-card.studio::before {
  background: radial-gradient(circle at 50% 50%, rgba(236,25,134,.28), rgba(236,25,134,0) 68%);
}

/* Marca de agua: el logotipo COMPLETO de cada rama, no sólo el símbolo, y con
   el desenfoque cocido en el propio PNG. Se desenfoca el fichero y no con
   `filter: blur()` porque el elemento se anima: desenfocar en cada fotograma
   una imagen de 950 px cuesta, y el resultado en pantalla es el mismo. */
.space-card-watermark {
  right: -5%;
  bottom: -14%;
  width: clamp(280px, 54%, 490px);
  height: auto;
  opacity: .34;
  filter: none;
  mix-blend-mode: normal;
  transform: rotate(-8deg);
}
.space-editorial-card.studio .space-card-watermark {
  right: -5%;
  bottom: -13%;
  width: clamp(268px, 51%, 460px);
  height: auto;
  opacity: .30;
  filter: none;
  mix-blend-mode: normal;
  transform: rotate(-6deg);
}

@keyframes salux-marca-deriva {
  0%   { transform: rotate(-8deg) translate3d(0, 0, 0) scale(1); }
  50%  { transform: rotate(-4.5deg) translate3d(-2.2%, -3.4%, 0) scale(1.045); }
  100% { transform: rotate(-8deg) translate3d(0, 0, 0) scale(1); }
}
@keyframes salux-marca-deriva-studio {
  0%   { transform: rotate(-6deg) translate3d(0, 0, 0) scale(1); }
  50%  { transform: rotate(-2.5deg) translate3d(-2.6%, -3%, 0) scale(1.05); }
  100% { transform: rotate(-6deg) translate3d(0, 0, 0) scale(1); }
}
@keyframes salux-halo-respira {
  0%, 100% { opacity: .72; transform: scale(1); }
  50%      { opacity: 1; transform: scale(1.09); }
}

@media (prefers-reduced-motion: no-preference) {
  .space-card-watermark { animation: salux-marca-deriva 26s ease-in-out infinite; }
  .space-editorial-card.studio .space-card-watermark { animation: salux-marca-deriva-studio 31s ease-in-out infinite -9s; }
  .home-page .space-editorial-card::before { animation: salux-halo-respira 19s ease-in-out infinite; }
  .home-page .space-editorial-card.studio::before { animation: salux-halo-respira 24s ease-in-out infinite -7s; }
}

/* ==========================================================================
   09-09-2026 (rev. 4) — Tres peticiones del cliente
   --------------------------------------------------------------------------
   A · MÉTODO SALUX: «demasiado texto». Los cuatro párrafos de la órbita bajan
       de 33-49 palabras a 19-22 (el recorte va en el generador, no aquí). Aquí
       se compensa el vacío subiendo el titular: de 1,5 rem a 2 rem. No se toca
       ni una etiqueta indexable: siguen siendo los mismos H3 con las mismas
       palabras. Las cuatro tarjetas suman 177 de las 6.693 palabras visibles
       de la home (2,6%); el recorte se lleva ~80, un 1,2% del total.

       Núcleo del círculo: 232 -> 300 px, símbolo 54 -> 92 px y «Tu proceso»
       2 -> 2,9 rem. 300 px es el techo cómodo: el aro discontinuo va a
       `inset:-14px` y la órbita dibujada tiene 380 px de diámetro, así que a
       partir de ~352 px el núcleo se comería el anillo.

   B · TARJETAS DE ESPACIO: el símbolo de cada rama en lugar del logotipo
       completo, y con inclinaciones opuestas para que el par no se lea como
       una repetición. Hay que redefinir los dos @keyframes porque llevan el
       ángulo de reposo cocido dentro; si no, la animación pisaría el `rotate`.
       La opacidad baja de .34/.30 a .20/.18: los PNG de símbolo están nítidos
       y los de logotipo iban desenfocados, así que a la misma opacidad el
       símbolo pesaría mucho más sobre el texto.

   C · TESTIMONIOS: botón que baja del carrusel destacado al archivo completo.
   ========================================================================== */

/* --- A · Órbita del método ------------------------------------------------ */
.method-orbit-core {
  width: 300px;
  height: 300px;
  padding: 26px;
}
.method-orbit-core img {
  width: 92px;
  height: 92px;
  margin-bottom: 10px;
  border-radius: 0;
}
.method-orbit-core span { font-size: .72rem; letter-spacing: .12em; }
.method-orbit-core strong {
  margin: 4px 0 6px;
  font-size: 2.9rem;
  letter-spacing: -.055em;
}
.method-orbit-core small {
  max-width: 20ch;
  color: #a6a6a6;
  font-size: .74rem;
  line-height: 1.35;
}

/* Con el titular a ~30 px las cuatro tarjetas necesitan 376 px para no partir
   en dos líneas. El hueco hasta el núcleo sigue siendo de 130 px. */
.method-orbit-node { width: min(29%, 376px); }
.method-orbit-node span { margin-bottom: 16px; font-size: .78rem; }
.method-orbit-node h3 {
  margin: 0 0 12px;
  font-size: clamp(1.45rem, 2vw, 2rem);
  line-height: 1.02;
  letter-spacing: -.042em;
  /* «Seguimiento comprensible» parte en dos líneas en algunas anchuras y las
     otras tres no. Reservando dos líneas siempre, los cuatro párrafos arrancan
     a la misma altura pase lo que pase con el titular. */
  min-height: 2.04em;
  text-wrap: balance;
}
.method-orbit-node p {
  color: #4f4f4f;
  font-size: .84rem;
  line-height: 1.62;
}

/* Con el texto recortado la tarjeta ya no necesita altura forzada. */
@media (max-width: 1050px) {
  .method-orbit-core { width: 244px; height: 244px; padding: 22px; }
  .method-orbit-core img { width: 74px; height: 74px; }
  .method-orbit-core strong { font-size: 2.15rem; }
  .method-orbit-core small { max-width: 22ch; }
  .method-orbit-node article { min-height: 0; }
}

/* --- B · Símbolo de marca en las dos tarjetas de espacio ------------------ */
.space-card-watermark {
  right: 6.5%;
  bottom: 13%;
  width: clamp(150px, 25%, 220px);
  opacity: .26;
  transform: rotate(-14deg);
}
.space-editorial-card.studio .space-card-watermark {
  right: 7%;
  bottom: 12%;
  width: clamp(138px, 22%, 198px);
  opacity: .24;
  transform: rotate(12deg);
}

/* Mismo nombre a propósito: la última definición gana y arrastra el nuevo
   ángulo de reposo. Si se borrara este bloque volverían las de arriba. */
@keyframes salux-marca-deriva {
  0%   { transform: rotate(-14deg) translate3d(0, 0, 0) scale(1); }
  50%  { transform: rotate(-9.5deg) translate3d(-2.2%, -3.4%, 0) scale(1.05); }
  100% { transform: rotate(-14deg) translate3d(0, 0, 0) scale(1); }
}
@keyframes salux-marca-deriva-studio {
  0%   { transform: rotate(12deg) translate3d(0, 0, 0) scale(1); }
  50%  { transform: rotate(7.5deg) translate3d(-2.6%, -3%, 0) scale(1.055); }
  100% { transform: rotate(12deg) translate3d(0, 0, 0) scale(1); }
}

/* --- C · Del carrusel destacado al archivo -------------------------------- */
#archivo-testimonios { scroll-margin-top: 132px; }

.testimonios-destacados-archivo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 13px 24px;
  color: var(--black);
  font-size: .82rem;
  font-weight: 650;
  letter-spacing: .01em;
  text-decoration: none;
  background: rgba(143,189,24,.14);
  border: 1px solid rgba(143,189,24,.5);
  border-radius: 999px;
  transition: color .2s ease, background .2s ease, border-color .2s ease;
}
.testimonios-destacados-archivo span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  font-size: 1rem;
  border-radius: 50%;
  transition: transform .25s ease;
}
.testimonios-destacados-archivo:hover {
  color: var(--white);
  background: var(--green-dark);
  border-color: var(--green-dark);
}
.testimonios-destacados-archivo:hover span { transform: translateY(3px); }
.testimonios-destacados-archivo:focus-visible {
  outline: 2px solid var(--green-dark);
  outline-offset: 3px;
}

@media (max-width: 560px) {
  /* El contenedor es `column-reverse`: el eje va de abajo arriba, así que el
     `order` más bajo queda ABAJO. Orden visual buscado: flechas, pasos y el
     botón cerrando el bloque a todo el ancho. */
  .testimonios-destacados-archivo { order: 1; justify-content: center; }
  .testimonios-destacados-pasos { order: 2; }
  .testimonios-destacados-flechas { order: 3; }
}

/* ==========================================================================
   09-09-2026 (rev. 5) — Isotipos de marca, a mayor tamaño
   --------------------------------------------------------------------------
   Los dos PNG de símbolo pasan a ser los isotipos ORIGINALES de marca, con su
   degradado: `clinica-salux-simbolo.png` a 900×900 (antes 720×720, trazado
   plano reconstruido desde el icono de 90 px) y `studio-salux-simbolo.png` a
   760×874 (antes 608×699). Las proporciones se conservan dentro del 0,1 %, así
   que los `width`/`height` del generador siguen siendo válidos y
   `validate-images` no protesta (tolera un 2 %).

   TAMAÑO: Clínica sube del 25 % al 38 % del ancho de la tarjeta y Studio del
   22 % al 37 %.

   La OPACIDAD baja de .26/.24 a .16 a propósito. Medido sobre los píxeles de
   glifo del render real (no sobre la caja del elemento): con la mancha grande a
   .22 el párrafo de Studio se quedaba en 4,21:1 y a .16 sube a 4,63:1. El
   estado anterior, con el símbolo pequeño a .24, estaba en 3,65:1. Es decir:
   el bloque gana tamaño Y contraste al mismo tiempo.

   TRAMPA, la de rev. 4 pero más apretada: la tarjeta tiene `overflow:hidden` y
   el símbolo girado ocupa una caja ~21 % mayor que la suya, así que el margen
   real por abajo es `bottom` MENOS la mitad de ese exceso. Con `bottom:7 %` el
   brazo inferior se cortaba; con 11 % quedan 17 px libres a 1440 px. Compro-
   bado a 360, 390, 480, 600, 700, 760, 900, 1100, 1200, 1440, 1600 y 1920 px:
   ningún borde negativo.

   Por debajo de 760 px la home pasa a una columna: la tarjeta conserva ~328 px
   de alto con el doble de ancho, y ahí el 38 % se salía por ARRIBA. De ahí el
   tope en píxeles del bloque @media.
   ========================================================================== */
.space-card-watermark {
  right: 8%;
  bottom: 11%;
  width: clamp(190px, 38%, 290px);
  opacity: .16;
  transform: rotate(-14deg);
}
.space-editorial-card.studio .space-card-watermark {
  right: 8%;
  bottom: 10%;
  width: clamp(180px, 37%, 280px);
  opacity: .16;
  transform: rotate(12deg);
}

@media (max-width: 760px) {
  .space-card-watermark { right: 7%; bottom: 9%; width: clamp(150px, 30%, 200px); }
  .space-editorial-card.studio .space-card-watermark { right: 7%; bottom: 9%; width: clamp(146px, 29%, 190px); }
}

/* Mismo nombre a propósito: la última definición del archivo gana y arrastra el
   ángulo de reposo. El recorrido se acorta porque la mancha es mayor. */
@keyframes salux-marca-deriva {
  0%   { transform: rotate(-14deg) translate3d(0, 0, 0) scale(1); }
  50%  { transform: rotate(-10deg) translate3d(-1.8%, -2.6%, 0) scale(1.035); }
  100% { transform: rotate(-14deg) translate3d(0, 0, 0) scale(1); }
}
@keyframes salux-marca-deriva-studio {
  0%   { transform: rotate(12deg) translate3d(0, 0, 0) scale(1); }
  50%  { transform: rotate(8deg) translate3d(-2%, -2.4%, 0) scale(1.04); }
  100% { transform: rotate(12deg) translate3d(0, 0, 0) scale(1); }
}

/* ==========================================================================
   09-09-2026 (rev. 6) — Método: título en cápsula y párrafo más grande
   --------------------------------------------------------------------------
   El número y el titular pasan a una sola cápsula: `<div class="method-orbit-tag">`
   envuelve al `<span>` y al `<h3>` (cambio en el GENERADOR). El H3 NO se toca
   por dentro: el número queda FUERA del texto del encabezado, así que lo que
   indexa Google sigue siendo «Valoración individual», no «01 Valoración
   individual». Ése es el motivo de envolver en vez de meter el span dentro
   del h3, que era lo cómodo.

   El titular baja de 2 rem a ~1,18 rem porque una cápsula de 2 rem sería un
   ladrillo; el peso visual lo sostiene ahora la caja, no el cuerpo de letra.
   El párrafo sube de .84 a .95 rem (+13 %) y se aclara un punto (#4a4a4a).

   Desaparece el `min-height: 2.04em` del H3 de rev. 4: con `white-space:nowrap`
   la cápsula nunca parte en dos líneas por encima de 1050 px, así que los
   cuatro párrafos arrancan solos a la misma altura. Medido a 1440 px: las
   cuatro cápsulas miden 243-287 px dentro de tarjetas de 376 px.

   ARREGLO DE UN FALLO VIVO (venía de rev. 4): aquella revisión dejó
   `.method-orbit-node { width: min(29%, 376px) }` al final del archivo, y por
   ser la última definición pisaba el `width: 100%` de la maquetación apilada.
   Resultado: por debajo de 1050 px las cuatro tarjetas se quedaban en el 29 %
   del ancho —101 px a 390 px— con el texto en columnas de dos palabras. Se
   repone aquí. Regla para la próxima vez: cualquier bloque nuevo al final del
   archivo que toque `width` de un elemento que se re-maqueta en @media tiene
   que reponer también las variantes de esos @media.
   ========================================================================== */
.method-orbit-tag {
  display: inline-flex;
  align-items: stretch;
  margin: 0 0 15px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(77,108,0,.34);
  border-radius: 999px;
  overflow: hidden;
  transition: background-color .3s ease, border-color .3s ease;
}
.method-orbit-node .method-orbit-tag span {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 11px 13px 12px 19px;
  color: var(--green-dark);
  font-size: .74rem;
  font-weight: 750;
  letter-spacing: .1em;
  border-right: 1px solid rgba(77,108,0,.22);
}
.method-orbit-node-1 .method-orbit-tag span { color: var(--pink-dark); }
.method-orbit-node .method-orbit-tag h3 {
  display: flex;
  align-items: center;
  min-height: 0;
  margin: 0;
  padding: 11px 21px 12px 14px;
  color: #121212;
  font-size: clamp(1rem, 1.12vw, 1.18rem);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -.012em;
  white-space: nowrap;
}
.method-orbit-node:hover .method-orbit-tag {
  background: rgba(168,210,27,.16);
  border-color: rgba(77,108,0,.62);
}
.method-orbit-node p {
  color: #4a4a4a;
  font-size: .95rem;
  line-height: 1.66;
}

@media (max-width: 1050px) {
  .method-orbit-node,
  .method-orbit-node-1,
  .method-orbit-node-2,
  .method-orbit-node-3,
  .method-orbit-node-4 { width: 100%; }
  .method-orbit-node .method-orbit-tag h3 { white-space: normal; }
}


/* ==========================================================================
   10-09-2026 (rev. 7) — Método: la órbita grande pasa a un núcleo compacto
   --------------------------------------------------------------------------
   El cliente sigue rechazando el bloque de la órbita. La referencia que
   aporta es un diagrama apaisado: cuatro cajas de esquina redondeada en
   rejilla 2x2 alrededor de un núcleo pequeño, con conectores curvos.

   QUÉ CAMBIA DE VERDAD, y es lo que él pide: la ALTURA. El escenario deja de
   ser una caja absoluta de 760-780 px y pasa a una rejilla que se ajusta al
   contenido. El bloque cabe entero en una pantalla de portátil.

   POR QUÉ SE CONSERVAN LAS CLASES `.method-orbit*`: el reveal por scroll y el
   paralaje de puntero de `site.js` cuelgan de `[data-method-orbit]` y de esos
   nombres. Renombrar obligaba a tocar el JS y a rehacer la entrada, que aquí
   sigue sirviendo. Este bloque sólo redefine geometría, caja y color.

   NÚCLEO EN CLARO, no negro. El cliente rechazó el fondo negro el 04-09 y el
   círculo negro del centro era el resto más visible de aquella dirección.

   TRES TRAMPAS de este montaje, por si hay que volver:

   1. El núcleo ya no es `position:absolute` con `translate(-50%,-50%)`: ahora
      lo centra `.method-orbit-hub`. Los keyframes `orbit-core-in` y
      `orbit-core-breathe` llevaban ese translate COCIDO dentro, así que hay
      que redefinirlos al final del archivo o el núcleo salta media caja.
      Mismo caso que `salux-marca-deriva` en rev. 5.
   2. `orbit-dot-pulse` se redefine en vez de crear un nombre nuevo. La regla
      `.method-orbit[data-method-orbit-state="in"] … article::after` que lo
      lanza tiene más especificidad que cualquier regla de este bloque sin el
      atributo: era eso, o repetir el atributo en ocho selectores.
   3. El SVG de conectores va a `preserveAspectRatio="none"` con
      `vector-effect="non-scaling-stroke"`. Su ancho es EXACTAMENTE la columna
      central, así que los extremos de los arcos caen sobre el borde interior
      de las tarjetas a cualquier anchura. Si se le pone `meet`, se centra por
      su cuenta y los arcos dejan de morder la caja.

   TRAMPA HEREDADA de rev. 4 y rev. 6, repuesta aquí: por debajo de 1050 px la
   maquetación se apila. Cualquier bloque nuevo al final del archivo que toque
   `width`, `position`, `display` o `grid-area` tiene que reponer también las
   variantes de ese @media o rompe el móvil sin que se note en escritorio.
   ========================================================================== */
.method-orbit-stage {
  --hub-col: clamp(196px, 17vw, 240px);
  --hub-gap: clamp(30px, 3vw, 46px);
  position: relative;
  width: min(100%, 1100px);
  height: auto;
  margin: 0 auto;
  padding: 0;
}
.method-orbit-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--hub-col) minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 0;
  row-gap: var(--hub-gap);
  align-items: stretch;
}

/* Las cuatro esquinas. El orden de lectura del HTML sigue siendo 01-02-03-04;
   aquí sólo se colocan. */
.method-orbit-node,
.method-orbit-node-1,
.method-orbit-node-2,
.method-orbit-node-3,
.method-orbit-node-4 {
  position: relative;
  left: auto;
  right: auto;
  top: auto;
  bottom: auto;
  width: auto;
}
.method-orbit-node-1 { grid-area: 1 / 1 / 2 / 2; }
.method-orbit-node-2 { grid-area: 1 / 3 / 2 / 4; }
.method-orbit-node-3 { grid-area: 2 / 3 / 3 / 4; }
.method-orbit-node-4 { grid-area: 2 / 1 / 3 / 2; }
.method-orbit-node::before { display: none; }

/* La caja de la referencia: contorno fino, esquina muy redondeada, sin sombra
   dura. La tarjeta ya no cuelga de una línea superior. */
.method-orbit-node article {
  display: flex;
  height: 100%;
  min-height: 0;
  flex-direction: column;
  padding: clamp(20px, 1.9vw, 27px) clamp(22px, 2.1vw, 30px) clamp(21px, 2vw, 28px);
  background: rgba(255,255,255,.62);
  border: 1px solid rgba(77,108,0,.26);
  border-radius: 22px;
  box-shadow: 0 10px 30px rgba(94,82,60,.06);
  transition: transform .3s cubic-bezier(.2,.72,.2,1), border-color .3s ease, box-shadow .3s ease, background-color .3s ease;
}
.method-orbit-node article::before { display: none; }
.method-orbit-node:hover article {
  transform: translateY(-3px);
  background: rgba(255,255,255,.88);
  border-color: rgba(77,108,0,.5);
  box-shadow: 0 16px 40px rgba(94,82,60,.11);
}

/* Punto de anclaje en la esquina INTERIOR, mirando al núcleo. La resta con
   `--hub-gap` lo deja siempre a la altura donde el SVG termina el arco. */
.method-orbit-node article::after {
  --halo: rgba(168,210,27,.14);
  position: absolute;
  left: auto;
  right: auto;
  top: auto;
  bottom: auto;
  width: 9px;
  height: 9px;
  content: "";
  background: var(--green-bright);
  border: 1px solid rgba(77,108,0,.5);
  border-radius: 50%;
  box-shadow: 0 0 0 4px var(--halo);
  animation: orbit-dot-pulse 4.8s ease-out infinite;
}
.method-orbit-node-1 article::after,
.method-orbit-node-4 article::after { right: -5.5px; }
.method-orbit-node-2 article::after,
.method-orbit-node-3 article::after { left: -5.5px; }
.method-orbit-node-1 article::after,
.method-orbit-node-2 article::after { bottom: calc(43.5px - var(--hub-gap) / 2); }
.method-orbit-node-3 article::after,
.method-orbit-node-4 article::after { top: calc(43.5px - var(--hub-gap) / 2); }
.method-orbit-node:hover article::after { box-shadow: 0 0 0 9px var(--halo); }

/* Se REDEFINE (no se crea otro nombre): ver trampa 2 de la cabecera. */
@keyframes orbit-dot-pulse {
  0%, 58%, 100% { box-shadow: 0 0 0 4px var(--halo); }
  14%           { box-shadow: 0 0 0 12px rgba(255,255,255,0); }
}

/* Núcleo y conectores: capa propia, centrada sobre la rejilla. */
.method-orbit-hub {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  display: grid;
  place-items: center;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.method-orbit-hub > * { grid-area: 1 / 1; }
.method-orbit-lines {
  position: static;
  width: var(--hub-col);
  height: 260px;
  inset: auto;
  overflow: visible;
}
.method-orbit-link { fill: none; stroke: rgba(77,108,0,.55); stroke-width: 1.4; stroke-linecap: round; }
/* Aro exterior discontinuo. Va en CSS y no en el SVG a propósito: el SVG
   lleva `preserveAspectRatio="none"` y una circunferencia dibujada dentro se
   convertiría en elipse al estrechar la columna. */
.method-orbit-halo {
  width: clamp(184px, 16vw, 228px);
  height: clamp(184px, 16vw, 228px);
  border: 1px dashed rgba(77,108,0,.32);
  border-radius: 50%;
  animation: method-core-spin 46s linear infinite reverse;
}
.method-orbit-core {
  position: static;
  z-index: 2;
  width: clamp(156px, 13.5vw, 188px);
  height: clamp(156px, 13.5vw, 188px);
  padding: 18px;
  color: var(--ink);
  background: radial-gradient(circle at 50% 26%, #ffffff 0%, #f5f3e9 60%, #e9e6d9 100%);
  border: 1px solid rgba(77,108,0,.42);
  box-shadow: 0 16px 40px rgba(94,82,60,.15);
  transform: none;
}
.method-orbit-core::before { display: none; }
.method-orbit-core img { width: 40px; height: 40px; margin-bottom: 7px; border-radius: 0; }
.method-orbit-core span { color: var(--green-dark); font-size: .56rem; letter-spacing: .13em; }
.method-orbit-core strong { margin: 3px 0 5px; font-size: clamp(1.22rem, 1.24vw, 1.42rem); letter-spacing: -.04em; }
.method-orbit-core small { max-width: 16ch; color: #5c5c5c; font-size: .6rem; line-height: 1.32; }

/* Texto: se conservan los cuerpos de rev. 6, que venían de una queja del
   cliente por letra pequeña. El `nowrap` de la cápsula cae a 1240 px, donde
   las columnas ya no dan de sí. */
.method-orbit-node p { margin-top: 0; padding-top: 0; color: #4a4a4a; font-size: .93rem; line-height: 1.62; }
.method-orbit-tag { align-self: flex-start; margin-bottom: 13px; }
.method-orbit-note { margin-top: clamp(22px, 2.4vw, 34px); }

/* Ver trampa 1: los keyframes del núcleo llevaban el centrado dentro. */
@keyframes orbit-core-in {
  from { opacity: 0; transform: scale(.86); }
  to   { opacity: 1; transform: scale(1); }
}
@keyframes orbit-core-breathe {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.022); }
}
@keyframes orbit-draw-link {
  from { stroke-dashoffset: 96; }
  to   { stroke-dashoffset: 0; }
}

@media (prefers-reduced-motion: no-preference) {
  .method-orbit[data-method-orbit-state] .method-orbit-core { transform: scale(.86); }
  .method-orbit[data-method-orbit-state] .method-orbit-halo { opacity: 0; }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-halo { animation: orbit-guide-in 1.2s ease .2s both, method-core-spin 46s linear .2s infinite reverse; }
  .method-orbit[data-method-orbit-state] .method-orbit-link { stroke-dasharray: 96; stroke-dashoffset: 96; }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-link { animation: orbit-draw-link .6s cubic-bezier(.3,.7,.3,1) both; }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-link-1 { animation-delay: .75s; }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-link-2 { animation-delay: .92s; }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-link-3 { animation-delay: 1.09s; }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-link-4 { animation-delay: 1.26s; }

  .method-orbit[data-method-orbit-state] .method-orbit-node-1,
  .method-orbit[data-method-orbit-state] .method-orbit-node-4 { transform: translate3d(-24px, 0, 0); }
  .method-orbit[data-method-orbit-state] .method-orbit-node-2,
  .method-orbit[data-method-orbit-state] .method-orbit-node-3 { transform: translate3d(24px, 0, 0); }

  /* Cascada del latido: el recorrido se lee 01 -> 04. */
  .method-orbit[data-method-orbit-state="in"] .method-orbit-node article::after { animation: orbit-dot-pulse 4.8s ease-out 1.6s infinite; }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-node-2 article::after { animation-delay: 2.8s; }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-node-3 article::after { animation-delay: 4s; }
  .method-orbit[data-method-orbit-state="in"] .method-orbit-node-4 article::after { animation-delay: 5.2s; }

  /* El tilt en 3D de toda la escena no aguanta con la caja compacta: movía
     los conectores respecto a las tarjetas. Se sustituye por una deriva
     mínima del núcleo. */
  .method-orbit[data-method-orbit-pointer] .method-orbit-stage { transform: none; }
  .method-orbit[data-method-orbit-pointer] .method-orbit-hub {
    transform: translate(-50%, -50%) translate3d(calc(var(--orbit-shift-x, 0px) * .5), calc(var(--orbit-shift-y, 0px) * .5), 0);
    transition: transform .3s ease-out;
  }
  .method-orbit[data-method-orbit-pointer] .method-orbit-lines { translate: none; }
}

@media (max-width: 1240px) {
  .method-orbit-node .method-orbit-tag h3 { white-space: normal; }
}

/* Apilado. Sin esto la rejilla de tres columnas sobrevive por debajo de
   1050 px y deja las tarjetas en un tercio del ancho. */
@media (max-width: 1050px) {
  .method-orbit-stage { width: 100%; }
  .method-orbit-list {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: none;
    row-gap: 14px;
  }
  .method-orbit-node,
  .method-orbit-node-1,
  .method-orbit-node-2,
  .method-orbit-node-3,
  .method-orbit-node-4 { grid-area: auto; width: 100%; }
  .method-orbit-node article::after { display: none; }
  .method-orbit-hub {
    position: relative;
    left: auto;
    top: auto;
    margin: 0 auto 32px;
    transform: none;
  }
  .method-orbit-lines { display: none; }
  .method-orbit-halo { width: 224px; height: 224px; }
  .method-orbit-core { width: 184px; height: 184px; }
}
@media (prefers-reduced-motion: reduce) {
  .method-orbit-node article::after { animation: none !important; }
}
