/* Portada · órbita de trabajo y preguntas frecuentes.
   Secciones aisladas: no alteran la barra, la galería ni el pie compartido. */
.home-orbit,
.home-services,
.home-about,
.home-faq{
  position:relative;
  width:min(100%,1180px);
  margin-inline:auto;
  padding:clamp(84px,9vw,140px) 0;
  color:var(--ui-text,var(--deep));
  text-align:left;
}
/* Separación dentro del ancho de lectura; no invade la salida fotográfica
   ni añade espacio al recorrido o un segundo borde sobre el pie. */
.home-orbit::before,
.home-services::before,
.home-about::before,
.home-faq::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  width:min(100%,980px);
  height:1px;
  margin-inline:auto;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--ui-text,var(--deep)) 28%,transparent) 22% 78%,transparent);
  pointer-events:none;
}
/* La órbita termina sin relleno inferior: se aprovecha el hueco ya reservado
   antes de Dudas para que la línea respire por ambos lados. */
.home-services::before{top:calc(var(--home-wordroll-gap,clamp(70px,7vw,110px)) / 2)}
.home-orbit ::selection,
.home-faq ::selection{background:var(--ui-action,var(--olive));color:var(--cream)}
.home-orbit__heading,
.home-about__heading,
.home-faq__heading{
  max-width:20ch;
  margin:0 auto;
  font-size:clamp(34px,4.4vw,62px);
  font-weight:800;
  line-height:1.08;
  letter-spacing:-.035em;
  text-align:center;
  text-wrap:balance;
}
.home-orbit__intro,
.home-about__intro,
.home-faq__intro{
  max-width:54ch;
  margin:22px auto 0;
  font-size:var(--type-subtitle,clamp(22px,2vw,26px));
  font-weight:800;
  line-height:1.5;
  text-align:center;
  text-wrap:pretty;
}
.home-about{scroll-margin-top:100px}
#nosotros .home-about__heading{text-align:center}
.home-about__points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,56px);width:min(100%,980px);margin:clamp(36px,4vw,56px) auto 0}
.home-about__point{border-top:1px solid color-mix(in srgb,var(--ui-text,var(--deep)) 28%,transparent);padding-top:20px}
.home-about__point h3{margin:0 0 12px;font-size:clamp(20px,2vw,24px);font-weight:800;line-height:1.2;letter-spacing:-.025em}
.home-about__point p{margin:0;font-size:var(--type-small,16px);font-weight:500;line-height:1.7;text-wrap:pretty}
.home-about__point p a{color:inherit;text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px}
.home-about__point p a:focus-visible{outline:2px solid var(--ui-focus,var(--olive));outline-offset:3px;border-radius:2px}
@media(max-width:650px){.home-about{padding-block:72px}.home-about__points{grid-template-columns:1fr;gap:28px}}
.home-orbit__layout{margin-top:clamp(36px,5vw,72px)}
.home-orbit{padding-top:clamp(56px,7vw,96px)}
.home-orbit__stage[hidden],.home-orbit__hint[hidden],.home-orbit__panel[hidden]{display:none}
.home-orbit__stage{position:relative;z-index:3;width:100%;height:var(--orbit-height,620px);pointer-events:none}
.home-orbit__arc{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:visible;pointer-events:none;color:var(--ui-border-accent,var(--olive))}
.home-orbit__arc[hidden]{display:none}
.home-orbit__arc path{fill:none;stroke:currentColor;stroke-width:1;opacity:.36}
.home-orbit--ready .home-orbit__layout::before{content:"";position:absolute;z-index:0;left:50%;top:50%;width:calc(var(--orbit-radius-x,240px) * 2);height:calc(var(--orbit-radius-y,260px) * 2);border:1px solid color-mix(in srgb,var(--ui-border-accent,var(--olive)) 28%,transparent);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}
.home-orbit--ready .home-orbit__layout::after{content:"";position:absolute;z-index:1;left:50%;top:calc(50% - var(--orbit-radius-y,260px) + var(--orbit-node-size,54px) / 2);width:1px;height:var(--orbit-connector-height,0px);background:color-mix(in srgb,var(--ui-border-accent,var(--olive)) 26%,transparent);opacity:0;pointer-events:none;transition:opacity .24s ease}
.home-orbit--ready[data-orbit-state="selected"] .home-orbit__layout::after{opacity:1}
.home-orbit__node{position:absolute;left:50%;top:50%;display:flex;width:var(--orbit-node-width,128px);align-items:center;flex-direction:column;gap:9px;border:0;padding:0;background:transparent;color:var(--ui-text,var(--deep));font:inherit;font-size:var(--type-small,16px);font-weight:700;line-height:1.4;text-align:center;cursor:pointer;pointer-events:auto;transform:translate3d(var(--orbit-x,0px),var(--orbit-y,0px),0) translate(-50%,calc(var(--orbit-node-size,54px) * -.5));-webkit-tap-highlight-color:transparent}
.home-orbit__node[data-orbit-label="above"]{flex-direction:column-reverse;transform:translate3d(var(--orbit-x,0px),var(--orbit-y,0px),0) translate(-50%,calc(-100% + var(--orbit-node-size) * .5))}
.home-orbit__node-icon{display:grid;width:var(--orbit-node-size,54px);height:var(--orbit-node-size,54px);place-items:center;flex:none;border:1px solid color-mix(in srgb,var(--ui-border-accent,var(--olive)) 45%,transparent);border-radius:50%;background:var(--ui-surface,var(--cream));color:var(--ui-link,var(--olive));transition:background .24s ease,color .24s ease,border-color .24s ease,box-shadow .24s ease}
.home-orbit__node svg{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.home-orbit__node:hover .home-orbit__node-icon{border-color:var(--ui-border-accent,var(--olive));box-shadow:0 0 0 3px color-mix(in srgb,var(--ui-border-accent,var(--olive)) 12%,transparent)}
.home-orbit__node[aria-selected="true"] .home-orbit__node-icon{background:var(--ui-link,var(--olive));color:var(--ui-surface,var(--cream));border-color:var(--ui-link,var(--olive))}
.home-orbit__node:focus-visible{outline:2px solid var(--ui-focus,var(--olive));outline-offset:6px;border-radius:12px}
.home-orbit__hint{margin:24px auto 0;max-width:42ch;color:var(--ui-text,var(--deep));font-size:var(--type-small,16px);font-weight:500;line-height:1.7;text-align:center}
.home-orbit__panels{display:grid;gap:28px}
.home-orbit__panel{padding:22px;border:1px solid color-mix(in srgb,var(--ui-border-accent,var(--olive)) 15%,transparent);border-radius:20px;background:var(--ui-surface,var(--cream));scroll-margin:110px 0 24px}
.home-orbit__panel:focus-visible{outline-offset:7px}
.home-orbit__panel h3{margin:0 0 14px;font-size:26px;font-weight:800;line-height:1.15;letter-spacing:-.025em;overflow-wrap:anywhere}
.home-orbit__panel p{max-width:56ch;margin:0;font-size:var(--type-body,17px);font-weight:400;line-height:1.7;text-wrap:pretty}
.home-orbit__points{display:grid;gap:7px;margin:16px 0 0;padding:0;list-style:none}
.home-orbit__points li{position:relative;padding-left:14px;font-size:var(--type-small,16px);font-weight:500;line-height:1.65}
.home-orbit__points li::before{content:"";position:absolute;left:0;top:.6em;width:4px;height:4px;border-radius:50%;background:currentColor}
.home-orbit--ready .home-orbit__layout{--orbit-node-width:128px;--orbit-node-size:54px;position:relative;width:var(--home-orbit-core,100%);max-width:100%;margin-inline:auto}
.home-orbit--ready .home-orbit__panels{position:absolute;z-index:2;left:50%;top:50%;display:block;width:var(--orbit-panel-width,400px);max-width:none;opacity:0;visibility:hidden;transform:translate(-50%,calc(-50% + 8px));transition:opacity .24s ease,transform .32s cubic-bezier(.22,.72,.2,1),visibility .24s}
.home-orbit--ready .home-orbit__panel{max-height:none;padding:18px;overflow:visible}
.home-orbit--ready[data-orbit-state="selected"] .home-orbit__panels{opacity:1;visibility:visible;transform:translate(-50%,-50%)}
.home-orbit--ready[data-orbit-panel="below"] .home-orbit__layout::before{top:calc(var(--orbit-height,620px) / 2)}
.home-orbit--ready[data-orbit-panel="below"] .home-orbit__layout::after{display:none}
.home-orbit--ready[data-orbit-panel="below"] .home-orbit__panels{position:relative;left:auto;top:auto;width:var(--orbit-panel-width,100%);max-width:100%;margin:28px auto 0;transform:none}
.home-orbit--ready[data-orbit-panel="below"]:not([data-orbit-state="selected"]) .home-orbit__panels{display:none}
@media(max-width:999px){
  .home-orbit--ready .home-orbit__layout{--orbit-node-width:96px;--orbit-node-size:46px;width:var(--home-orbit-core,100%);max-width:100%;margin-inline:auto}
  .home-orbit__node{gap:8px;line-height:1.4;overflow-wrap:anywhere}
  .home-orbit__node svg{width:22px;height:22px}
  .home-orbit--ready .home-orbit__panel{padding:18px 16px;border-radius:18px}
  .home-orbit__panel h3{font-size:22px;margin-bottom:12px}
  .home-orbit__panel p{line-height:1.7}
  .home-orbit__points{margin-top:14px;gap:6px}
  .home-orbit__hint{max-width:32ch}
}
@media(max-width:650px){
  .home-orbit--ready[data-orbit-presentation="arc"] .home-orbit__layout::before,
  .home-orbit--ready[data-orbit-presentation="arc"] .home-orbit__layout::after{display:none}
  .home-orbit--ready[data-orbit-presentation="arc"] .home-orbit__node{width:var(--orbit-node-size);min-width:0;gap:0}
  /* El nombre completo del elegido encabeza la tarjeta. Los cinco botones
     conservan su texto accesible sin apretar etiquetas dentro del arco. */
  .home-orbit--ready[data-orbit-presentation="arc"] .home-orbit__node>span:not(.home-orbit__node-icon){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .home-orbit--ready[data-orbit-presentation="arc"] .home-orbit__node:focus-visible{border-radius:50%}
  .home-orbit--ready[data-orbit-presentation="arc"] .home-orbit__panels{margin-top:20px}
  .home-orbit--ready[data-orbit-presentation="arc"] .home-orbit__panel h3{text-align:center;white-space:nowrap;overflow-wrap:normal}
}

.home-services{--home-pack-title-size:clamp(22px,1.8vw,26px);--home-pack-width:max(214px,calc(var(--home-pack-title-size) * 7.2 + 48px));scroll-margin-top:100px}
.home-services-text-source{position:fixed;top:0;left:0;width:256px;height:96px;opacity:0;pointer-events:none;overflow:hidden;contain:strict}
.home-services .svc-services-hero{padding:0 0 clamp(32px,4vw,56px);gap:22px}
.home-services__heading{margin:0;font:inherit;text-align:center}
.home-services .svc-hero__title{display:block;max-width:20ch;margin:0 auto;font-size:clamp(34px,4.4vw,62px);font-weight:800;line-height:1.08;letter-spacing:-.035em;text-wrap:balance}
.home-services .svc-services-hero__intro{font-size:var(--type-subtitle,clamp(22px,2vw,26px));font-weight:800;line-height:1.5}
.home-services .svc-services{display:flex;flex-direction:column;align-items:center;gap:64px;width:100%;grid-column:auto;grid-row:auto}
.home-services .svc-services__grid{width:100%;height:auto;align-self:stretch;grid-auto-flow:column;grid-auto-columns:minmax(210px,1fr);grid-template-columns:none;grid-template-rows:auto;gap:20px;padding:4px 3px 28px;overflow-x:auto;scrollbar-width:none;scroll-padding-inline:3px}
.home-services .svc-services__grid::-webkit-scrollbar{display:none}
.home-services .svc-services__grid--draggable,.home-services .svc-services__grid--draggable .svc-service-card{cursor:grab}
.home-services .svc-services__grid--dragging,.home-services .svc-services__grid--dragging .svc-service-card{cursor:grabbing;user-select:none;-webkit-user-select:none}
.home-services .svc-service-card{grid-column:auto;aspect-ratio:auto;align-self:stretch;justify-content:flex-start;min-height:clamp(360px,32vw,430px);gap:28px;padding:28px 24px;touch-action:auto}
.home-services .svc-service-card__title{font-size:var(--home-pack-title-size)}
.home-pack-popular{display:inline-flex;align-items:center;gap:3px;flex:none;padding:4px 6px;border-radius:999px;background:var(--ui-surface-tint);color:var(--ui-link);font-size:11px;font-weight:600;line-height:1;white-space:nowrap}
.home-pack-popular svg{width:11px;height:11px;flex:none}
.home-services .svc-services__actions{padding:0;min-height:96px}
:root .home-services .svc-services__actions .cta-web.cta-web--hero:is(button){display:grid;grid-template-columns:minmax(0,1fr);padding-inline:48px}
.home-services .svc-services__actions .cta-web>span{width:100%;text-align:center}
.home-services .svc-services__actions .cta-web>svg{position:absolute;right:22px;top:50%;translate:0 -50%;width:20px;height:24px}
.home-faq{--home-contact-gap:calc(clamp(80px,9vw,130px) / 3);padding-top:clamp(70px,7vw,110px);padding-bottom:max(var(--home-contact-gap),calc(var(--home-faq-reference-overhang,0px) + 12px))}
/* El navegador no compensa el crecimiento de las respuestas con otro scroll. */
html.home-faq-changing{overflow-anchor:none}
.home-faq__heading{max-width:17ch}
.home-faq__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:40px 32px;
  /* Reserva la mayor apertura: las preguntas crecen dentro, el CTA no baja. */
  height:var(--home-faq-reserved-height,auto);
  max-width:980px;
  margin:clamp(36px,5vw,64px) auto 0;
  align-items:start;
  align-content:start;
}
.home-faq__column{display:grid;gap:40px;align-content:start}
@media (min-width:601px){
  .home-faq__column:first-child,
  .home-faq__grid>.home-faq__group:nth-child(odd){--home-faq-align:right;--home-faq-justify:flex-end}
  .home-faq__column:last-child,
  .home-faq__grid>.home-faq__group:nth-child(even){--home-faq-align:left;--home-faq-justify:flex-start}
  .home-faq__column:last-child summary::after,
  .home-faq__grid>.home-faq__group:nth-child(even) summary::after{left:27px;right:auto}
}
.home-faq__group h3{
  margin:0 0 14px;
  font-size:21px;
  font-weight:800;
  line-height:1.5;
  letter-spacing:0;
  text-align:var(--home-faq-align,left);
}
.home-faq__group details{
  margin-top:10px;
  border-radius:12px;
  background:var(--ui-surface,var(--cream));
  overflow:clip;
  transition:background-color .24s ease;
}
.home-faq__group details[open]:not([data-faq-expanded="false"]){background:var(--ui-surface-tint,var(--pale))}
.home-faq__group summary{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:var(--home-faq-justify,flex-start);
  min-height:var(--home-faq-summary-height,80px);
  padding:22px 52px;
  color:var(--ui-text,var(--deep));
  font-size:18px;
  font-weight:700;
  line-height:1.5;
  text-align:var(--home-faq-align,left);
  list-style:none;
  cursor:pointer;
}
.home-faq__group summary::-webkit-details-marker{display:none}
.home-faq__group summary::after{
  content:"";
  position:absolute;
  top:calc(50% - 4px);
  right:27px;
  width:8px;
  height:8px;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:translateY(-2px) rotate(45deg);
  transition:transform .38s cubic-bezier(.22,.72,.2,1);
}
.home-faq__group details[open]>summary::after{transform:translateY(2px) rotate(225deg)}
.home-faq__group details[data-faq-expanded="false"]>summary::after{transform:translateY(-2px) rotate(45deg)}
.home-faq__group details[data-faq-expanded="true"]>summary::after{transform:translateY(2px) rotate(225deg)}
.home-faq__answer{display:flow-root;text-align:var(--home-faq-align,left)}
.home-faq__group summary:focus-visible{
  outline:2px solid var(--ui-focus,var(--olive));
  outline-offset:-5px;
  border-radius:12px;
}
.home-faq__group details p{
  max-width:65ch;
  margin:0 auto;
  padding:0 24px 26px;
  font-size:var(--type-body,17px);
  font-weight:400;
  line-height:1.7;
  text-align:var(--home-faq-align,left);
  text-wrap:pretty;
}
.home-faq__contact{
  display:flex;
  justify-content:center;
  margin:max(12px,calc(var(--home-contact-gap) - var(--home-faq-reference-overhang,0px))) auto 0;
}
:root .home-faq__contact a.cta-web.cta-web--hero{padding-inline:24px}

@media (min-width:1101px){
  .home-services .svc-services__grid{align-self:center;width:min(calc(var(--home-pack-width) * 5 + 86px),calc(100vw - 40px));grid-auto-columns:var(--home-pack-width)}
}
/* En pantallas de escritorio con poca altura, reservamos más espacio para
   el contenido interactivo sin recortar las respuestas al desplegarlas. */
@media (min-width:1101px) and (max-height:1100px){
  .home-orbit__heading{max-width:32ch}
  .home-orbit__intro,.home-faq__intro{margin-top:16px}
  .home-orbit__layout{margin-top:18px}
  .home-faq__grid{max-width:1100px;margin-top:24px;column-gap:28px}
  .home-faq__column{gap:24px}
  .home-faq__group summary{padding:16px 42px}
}
@media (min-width:1101px) and (max-height:900px){
  .home-services .svc-services-hero{gap:16px;padding-bottom:32px}
  .home-services .svc-services{gap:32px}
  .home-services .svc-service-card{min-height:340px;gap:18px;padding:20px}
}
@media (max-width:1100px){
  .home-services .svc-services__grid{grid-auto-columns:clamp(240px,48vw,300px)}
  .home-services .svc-service-card{grid-column:auto;padding:26px;gap:26px}
}
@media (max-width:860px){
  .home-services .svc-services{gap:56px}
  .home-faq__grid{gap:32px 20px}
  .home-faq__column{gap:32px}
}
@media (max-width:600px){
  .home-services .svc-services{gap:48px}
  .home-services{padding-block:72px}
  .home-services .svc-services__grid{grid-auto-columns:clamp(240px,78vw,300px)}
  .home-services .svc-service-card{min-height:0;padding:24px;gap:24px}
  .home-orbit{padding-block:72px}
  .home-faq{padding-top:72px}
  .home-orbit__intro,
  .home-faq__intro{margin-top:18px}
  .home-orbit__layout{margin-top:30px}
  .home-faq__grid{grid-template-columns:minmax(0,1fr);gap:30px}
  .home-faq__group summary{padding:22px 44px}
  .home-faq__group summary::after{right:23px}
  .home-faq__group details p{padding:0 20px 24px}
}
@media (prefers-reduced-motion:reduce){
  .home-orbit *,
  .home-faq *{transition:none!important;scroll-behavior:auto!important}
}
