/* Capa transversal de calidad: accesibilidad, conversión y componentes compartidos. */
html{
  scroll-behavior:smooth;
  scroll-padding-top:84px;
}

body{overflow-x:hidden}
img{max-width:100%;height:auto}

.skip-link{
  position:fixed;
  top:12px;
  left:12px;
  z-index:9999;
  padding:10px 14px;
  border-radius:8px;
  background:#171923;
  color:#fff;
  font:600 14px/1.2 var(--sans,system-ui,sans-serif);
  transform:translateY(-160%);
  transition:transform .18s ease;
}
.skip-link:focus{transform:translateY(0)}

:where(a,button,input,select,textarea,summary):focus-visible{
  outline:3px solid color-mix(in oklab,var(--accent,#8e72b7) 70%,#fff);
  outline-offset:3px;
}

.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

.trust-strip{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  margin-top:30px;
  overflow:hidden;
  border:1px solid var(--line,#e7e4e8);
  border-radius:18px;
  background:var(--line,#e7e4e8);
}
.trust-item{
  min-height:88px;
  padding:18px 20px;
  background:var(--bg-card,#fff);
}
.trust-item b{display:block;font-size:14px;color:var(--ink,#262735);margin-bottom:4px}
.trust-item span{display:block;font-size:12.5px;line-height:1.5;color:var(--ink-2,#565766)}

.journey-section{
  padding:96px 0;
  border-top:1px solid var(--line,#e7e4e8);
  border-bottom:1px solid var(--line,#e7e4e8);
  background:var(--bg-soft,#f5f2ed);
}
.journey-head{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:48px;
  align-items:end;
  margin-bottom:36px;
}
.journey-head h2{
  margin:16px 0 0;
  font-family:var(--serif,Georgia,serif);
  font-size:clamp(38px,5vw,62px);
  line-height:1.04;
}
.journey-head p{margin:0;color:var(--ink-2,#565766);font-size:16px;line-height:1.7}
.journey-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.journey-card{
  display:flex;
  min-height:250px;
  flex-direction:column;
  padding:26px;
  border:1px solid var(--line,#e7e4e8);
  border-radius:20px;
  background:var(--bg-card,#fff);
  color:inherit;
  text-decoration:none;
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.journey-card:hover{transform:translateY(-3px);border-color:var(--line-2,#d7d3da);box-shadow:0 18px 42px -30px rgba(30,30,55,.4)}
.journey-card .week{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3,#797a86)}
.journey-card h3{margin:18px 0 10px;font-family:var(--serif,Georgia,serif);font-size:27px;line-height:1.08}
.journey-card p{margin:0;color:var(--ink-2,#565766);font-size:13.5px;line-height:1.58}
.journey-card .more{margin-top:auto;padding-top:20px;font-size:12px;font-weight:600;color:var(--ink,#262735)}
.journey-note{margin:20px 0 0;color:var(--ink-3,#797a86);font-size:12.5px}

.service-more{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:24px;
  padding:20px 22px;
  border:1px solid var(--line,#e7e4e8);
  border-radius:16px;
  background:var(--bg-card,#fff);
}
.service-more p{margin:0;color:var(--ink-2,#565766);font-size:14px}
.service-more .links{display:flex;flex-wrap:wrap;gap:10px}

.referral-section{padding:88px 0;background:var(--ink,#262735);color:var(--bg,#faf8f4)}
.referral-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:64px;align-items:center}
.referral-section .eyebrow{color:color-mix(in oklab,var(--bg,#fff) 65%,transparent)}
.referral-section h2{margin:18px 0;font-family:var(--serif,Georgia,serif);font-size:clamp(38px,5vw,60px);line-height:1.03}
.referral-section p{max-width:64ch;color:color-mix(in oklab,var(--bg,#fff) 74%,transparent);font-size:15px;line-height:1.7}
.referral-points{display:grid;gap:12px}
.referral-point{padding:16px 18px;border:1px solid color-mix(in oklab,var(--bg,#fff) 18%,transparent);border-radius:14px;font-size:13px;color:color-mix(in oklab,var(--bg,#fff) 82%,transparent)}

.reviews-fallback{
  display:grid;
  grid-template-columns:1fr auto;
  gap:34px;
  align-items:center;
  padding:34px;
  border:1px solid var(--line-2,#d7d3da);
  border-radius:22px;
  background:var(--bg-card,#fff);
}
.reviews-fallback h3{margin:0 0 8px;font-family:var(--serif,Georgia,serif);font-size:31px;font-weight:400}
.reviews-fallback p{margin:0;max-width:64ch;color:var(--ink-2,#565766);font-size:14px;line-height:1.65}
.reviews-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}
.google-source{margin-top:16px;color:var(--ink-3,#797a86);font-size:12px}

.live-review-summary{display:flex;align-items:flex-end;gap:14px;margin:0 0 24px}
.live-review-rating{font-family:var(--serif,Georgia,serif);font-size:64px;line-height:.85}
.live-review-stars{color:#e3a400;letter-spacing:2px}
.live-review-meta{color:var(--ink-3,#797a86);font-size:12px}
.live-reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px}
.live-review-card{padding:24px;border:1px solid var(--line,#e7e4e8);border-radius:18px;background:var(--bg-card,#fff)}
.live-review-card blockquote{margin:14px 0 20px;color:var(--ink-2,#565766);font-size:14px;line-height:1.65}
.live-review-author{display:flex;align-items:center;gap:10px;font-size:12px}
.live-review-author img{width:34px;height:34px;border-radius:50%;object-fit:cover}
.live-review-author b{display:block;color:var(--ink,#262735)}
.live-review-author span{display:block;color:var(--ink-3,#797a86)}

.faq-section{padding:92px 0;border-top:1px solid var(--line,#e7e4e8);background:var(--bg,#faf8f4)}
.faq-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:64px;align-items:start}
.faq-section h2{margin:18px 0 0;font-family:var(--serif,Georgia,serif);font-size:clamp(38px,5vw,58px);line-height:1.04}
.faq-list{border-top:1px solid var(--line-2,#d7d3da)}
.faq-list details{border-bottom:1px solid var(--line-2,#d7d3da);padding:0}
.faq-list summary{position:relative;padding:22px 44px 22px 0;cursor:pointer;font-weight:600;list-style:none}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";position:absolute;right:4px;top:18px;font-size:24px;font-weight:300;color:var(--ink-3,#797a86)}
.faq-list details[open] summary::after{content:"−"}
.faq-list details p{margin:0;padding:0 38px 22px 0;color:var(--ink-2,#565766);font-size:14px;line-height:1.7}

.privacy-consent{display:flex;gap:10px;align-items:flex-start;margin:18px 0 8px;font-size:12.5px;line-height:1.5;color:inherit}
.privacy-consent input{width:18px;height:18px;flex:none;margin-top:1px;accent-color:var(--accent,#8e72b7)}
.privacy-consent a{text-decoration:underline}
.privacy-help{margin:8px 0 0;font-size:11.5px;line-height:1.5;color:color-mix(in oklab,currentColor 65%,transparent)}
.emergency-note{margin-top:18px;padding:14px 16px;border:1px solid color-mix(in oklab,#c23b3b 35%,transparent);border-radius:12px;background:color-mix(in oklab,#c23b3b 7%,transparent);font-size:12.5px;line-height:1.55}

.medical-disclaimer{
  max-width:1180px;
  margin:28px auto;
  padding:16px 20px;
  border:1px solid var(--line,#e7e4e8);
  border-radius:14px;
  background:var(--bg-soft,#f5f2ed);
  color:var(--ink-2,#565766);
  font:13px/1.6 var(--sans,system-ui,sans-serif);
}
.medical-disclaimer strong{color:var(--ink,#262735)}

@media(max-width:900px){
  .trust-strip{grid-template-columns:1fr}
  .journey-head,.referral-grid,.faq-grid{grid-template-columns:1fr;gap:28px}
  .journey-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .live-reviews-grid{grid-template-columns:1fr 1fr}
  .reviews-fallback{grid-template-columns:1fr}
  .reviews-actions{justify-content:flex-start}
}

@media(max-width:560px){
  .journey-section,.referral-section,.faq-section{padding:64px 0!important}
  .journey-grid,.live-reviews-grid{grid-template-columns:1fr}
  .journey-card{min-height:210px;padding:22px}
  .reviews-fallback{padding:24px}
  .reviews-actions,.reviews-actions .btn{width:100%}
  .reviews-actions .btn{justify-content:center}
  .service-more{align-items:flex-start}
  .service-more .links,.service-more .links .btn{width:100%}
  .service-more .links .btn{justify-content:center}
  .medical-disclaimer{margin:22px 18px}
}

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