/* Ekonatura F2 · Inner-page composition only (Home and /resenas/ excluded).
   ATO-545 + Visual system V1. No source copy, photography or overlay behavior
   changes; these selectors share one reusable family-level contract. */
body.ek-integrated:is(
 [data-template="problem-index"],[data-template="problem"],
 [data-template="service"],[data-template="method"],
 [data-template="profile"],[data-template="contact"]
){
 --ek-interior-section-gap:clamp(22px,3vw,32px);
 --ek-interior-footer-air:clamp(40px,5vw,72px);
 --ek-v1-focus:var(--ek-v1-coral-dark);
}
/* Editorial breathing room. A following text block is separated from the
   title, not fixed by changing typography or copying spacers per page. */
body.ek-integrated:is(
 [data-template="problem-index"],[data-template="problem"],
 [data-template="service"],[data-template="method"],
 [data-template="profile"],[data-template="contact"]
) main .reading.prose :is(h2,h3) + :is(p,ul,ol){
 margin-block-start:var(--ek-interior-section-gap);
}
body.ek-integrated:is(
 [data-template="problem-index"],[data-template="problem"],
 [data-template="service"],[data-template="method"],
 [data-template="profile"],[data-template="contact"]
) main :is(.ek-introduction,.ek-editorial-intro) :is(.ek-intro-editorial-head,.ek-intro-editorial-title) + :is(.ek-intro-editorial-copy,.ek-intro-editorial-row,p){
 margin-block-start:var(--ek-interior-section-gap);
}
body.ek-integrated:is(
 [data-template="problem-index"],[data-template="problem"],
 [data-template="service"],[data-template="method"],
 [data-template="profile"],[data-template="contact"]
) main .ek-section > h2 + .ek-section-body{
 margin-block-start:var(--ek-interior-section-gap);
}
/* Interiors: two separate flat graphite masses, with air before the closing
   invitation. The Home keeps its approved photographic compact footer. */
body.ek-integrated:is(
 [data-template="problem-index"],[data-template="problem"],
 [data-template="service"],[data-template="method"],
 [data-template="profile"],[data-template="contact"]
) .ek-footer{
 margin-block-start:var(--ek-interior-footer-air)!important;
 padding-block-start:clamp(18px,3vw,32px)!important;
 background:var(--ek-v1-graphite)!important;
}
body.ek-integrated:is(
 [data-template="problem-index"],[data-template="problem"],
 [data-template="service"],[data-template="method"],
 [data-template="profile"],[data-template="contact"]
) .ek-footer .ek-final-cta{
 background:var(--ek-v1-graphite-mid)!important;
 border:0!important;border-radius:18px!important;
 margin:0 0 clamp(22px,4vw,40px)!important;
 padding:clamp(28px,4.5vw,46px) clamp(22px,4vw,42px)!important;
 box-shadow:none!important;
}
body.ek-integrated:is(
 [data-template="problem-index"],[data-template="problem"],
 [data-template="service"],[data-template="method"],
 [data-template="profile"],[data-template="contact"]
) .ek-footer .ek-final-cta .cta-inner{
 gap:clamp(18px,4vw,48px)!important;align-items:center!important;
}
body.ek-integrated:is(
 [data-template="problem-index"],[data-template="problem"],
 [data-template="service"],[data-template="method"],
 [data-template="profile"],[data-template="contact"]
) .ek-footer .ek-final-cta .cta-copy{
 min-height:0!important;background:transparent!important;
 border:0!important;box-shadow:none!important;
 padding:0!important;gap:clamp(12px,2vw,20px);
}
body.ek-integrated:is(
 [data-template="problem-index"],[data-template="problem"],
 [data-template="service"],[data-template="method"],
 [data-template="profile"],[data-template="contact"]
) .ek-footer .ek-footer-main{
 padding-block-start:clamp(20px,3vw,38px)!important;
}
/* Card groups need a visible surface, not a decorative permanent outline.
   Focus/hover may reveal a quiet boundary. */
body.ek-integrated:is(
 [data-template="problem-index"],[data-template="problem"],
 [data-template="service"],[data-template="method"],
 [data-template="profile"],[data-template="contact"]
) main .related > ul > li > a:not(:has(>.related-image)){
 border-color:transparent!important;background:var(--ek-v1-stone)!important;
 color:var(--ek-v1-graphite)!important;box-shadow:none!important;
 transition:border-color .2s,background-color .2s;
}
body.ek-integrated:is(
 [data-template="problem-index"],[data-template="problem"],
 [data-template="service"],[data-template="method"],
 [data-template="profile"],[data-template="contact"]
) main .related > ul > li > a:not(:has(>.related-image)):is(:hover,:focus-visible){
 border-color:#aa9689!important;background:#e2dcd3!important;
}
/* Specific tall landing heroes — adjust height only; preserve the photography,
   approved overlay removals in F0 and all hero copy / controls. */
body.ek-integrated:is([data-route="/osteopatia/"],[data-route="/itv-corporal/"])
 main .ek-restored-hero:not(.ek-hero-locked){
 min-height:clamp(460px,68svh,680px)!important;
}
@media(max-width:700px){
 body.ek-integrated:is(
  [data-template="problem-index"],[data-template="problem"],
  [data-template="service"],[data-template="method"],
  [data-template="profile"],[data-template="contact"]
 ) .ek-footer{--ek-interior-footer-air:44px}
 body.ek-integrated:is(
  [data-template="problem-index"],[data-template="problem"],
  [data-template="service"],[data-template="method"],
  [data-template="profile"],[data-template="contact"]
 ) .ek-footer .ek-final-cta{
  border-radius:15px!important;margin-block-end:26px!important;
  padding:30px 22px!important;
 }
 body.ek-integrated:is([data-route="/osteopatia/"],[data-route="/itv-corporal/"])
  main .ek-restored-hero:not(.ek-hero-locked){
  min-height:clamp(420px,62svh,580px)!important;
 }
}
:root[data-ek-theme="dark"] body.ek-integrated:is(
 [data-template="problem-index"],[data-template="problem"],
 [data-template="service"],[data-template="method"],
 [data-template="profile"],[data-template="contact"]
){
 --ek-v1-focus:var(--ek-v1-coral);
}
:root[data-ek-theme="dark"] body.ek-integrated:is(
 [data-template="problem-index"],[data-template="problem"],
 [data-template="service"],[data-template="method"],
 [data-template="profile"],[data-template="contact"]
) main .related > ul > li > a:not(:has(>.related-image)){
 background:var(--ek-v1-graphite-mid)!important;
 color:var(--ek-v1-cream)!important;border-color:transparent!important;
}
:root[data-ek-theme="dark"] body.ek-integrated:is(
 [data-template="problem-index"],[data-template="problem"],
 [data-template="service"],[data-template="method"],
 [data-template="profile"],[data-template="contact"]
) main .related > ul > li > a:not(:has(>.related-image)):is(:hover,:focus-visible){
 background:#444b4a!important;border-color:#a99b91!important;
}

/* ATO-545 mobile CTA: flat full-bleed stripe, not nested card. The compact
   desktop/interior closing composition is preserved. Accent is coral, never
   green. The existing footer, contact links and legal controls are retained. */
@media(max-width:700px){
 body.ek-integrated:is(
  [data-template="problem-index"],[data-template="problem"],
  [data-template="service"],[data-template="method"],
  [data-template="profile"],[data-template="contact"]
 ) .ek-footer{
  --ek-interior-footer-air:clamp(52px,8vw,70px);
  --ek-v1-cta-gutter:32px;
  padding-top:0!important;
  background:#292d2e!important;
 }
 body.ek-integrated:is(
  [data-template="problem-index"],[data-template="problem"],
  [data-template="service"],[data-template="method"],
  [data-template="profile"],[data-template="contact"]
 ) .ek-footer .ek-final-cta{
  box-sizing:border-box!important;
  width:auto!important;
  margin:0 calc(-1 * var(--ek-v1-cta-gutter)) 28px!important;
  padding:clamp(48px,8vw,60px) var(--ek-v1-cta-gutter) 34px!important;
  border:0!important;border-radius:0!important;
  background:#35393a!important;box-shadow:none!important;
 }
 body.ek-integrated:is(
  [data-template="problem-index"],[data-template="problem"],
  [data-template="service"],[data-template="method"],
  [data-template="profile"],[data-template="contact"]
 ) .ek-footer .ek-final-cta .cta-copy{
  min-height:0!important;background:transparent!important;
  padding:0!important;border:0!important;border-radius:0!important;
  box-shadow:none!important;
 }
 body.ek-integrated:is(
  [data-template="problem-index"],[data-template="problem"],
  [data-template="service"],[data-template="method"],
  [data-template="profile"],[data-template="contact"]
 ) .ek-footer .ek-final-cta .cta-banner__phone:is(:hover,:focus-visible){
  color:#dfa089!important;
 }
 body.ek-integrated:is(
  [data-template="problem-index"],[data-template="problem"],
  [data-template="service"],[data-template="method"],
  [data-template="profile"],[data-template="contact"]
 ) .ek-footer .ek-final-cta .cta-banner__button:is(:hover,:focus-visible){
  background:#dfa089!important;color:#292d2e!important;
 }
}
@media(max-width:650px){
 body.ek-integrated:is(
  [data-template="problem-index"],[data-template="problem"],
  [data-template="service"],[data-template="method"],
  [data-template="profile"],[data-template="contact"]
 ) .ek-footer{
  --ek-v1-cta-gutter:24px;
 }
}

/* ATO-545 /osteopatia/: clean section rhythm only, no content rewrite.
   Remove orphan separators under techniques and before first process section. */
body.ek-integrated[data-route="/osteopatia/"] main .approved-techniques{
 border-bottom:0!important;box-shadow:none!important
}
body.ek-integrated[data-route="/osteopatia/"] main .approved-techniques::after{
 content:none!important;border:0!important
}
body.ek-integrated[data-route="/osteopatia/"] main .approved-techniques + .reading.prose{
 border-top:0!important
}
body.ek-integrated[data-route="/osteopatia/"] main .reading.prose
 .ek-section:has(>h2#primero-hablamos-de-lo-que-te-pasa){
 border-top:0!important;border-bottom:0!important;box-shadow:none!important
}
body.ek-integrated[data-route="/osteopatia/"] main .reading.prose
 .ek-section:has(>h2#primero-hablamos-de-lo-que-te-pasa)::before,
body.ek-integrated[data-route="/osteopatia/"] main .reading.prose
 .ek-section:has(>h2#primero-hablamos-de-lo-que-te-pasa)::after{
 content:none!important
}
body.ek-integrated[data-route="/osteopatia/"] main .reading.prose
 .ek-section.help-section + .ek-section{
 border-top:0!important
}
/* ATO-545 /osteopatia/: the introduction reads as body text (17/16 px), not as a
   lede. The shared layer raises the first paragraph of an editorial intro, so
   this page-scoped rule repeats its own guards to stay in control of it. */
body.ek-integrated[data-route="/osteopatia/"]:not([data-route="/sobre-mi/detalle/"]):not([data-route="/sobre-mi/"])
 main .reading.prose .ek-introduction .ek-intro-editorial-copy > p:first-child{
 font-family:"Ekonatura Onest",system-ui,sans-serif!important;
 font-size:17px!important;line-height:1.65!important;letter-spacing:normal!important
}
body.ek-integrated[data-route="/osteopatia/"] main .reading.prose
 .ek-introduction .ek-intro-editorial-copy p{
 font-family:"Ekonatura Onest",system-ui,sans-serif!important;
 font-size:17px!important;line-height:1.65!important;letter-spacing:normal!important
}
@media(max-width:700px){
 body.ek-integrated[data-route="/osteopatia/"]:not([data-route="/sobre-mi/detalle/"]):not([data-route="/sobre-mi/"])
  main .reading.prose .ek-introduction .ek-intro-editorial-copy > p:first-child{
  font-size:16px!important;line-height:1.65!important
 }
 body.ek-integrated[data-route="/osteopatia/"] main .reading.prose
  .ek-introduction .ek-intro-editorial-copy p{
  font-size:16px!important;line-height:1.65!important
 }
}
