/* ===========================================================
   POSIDONIA — Estilos de secciones de página (Elementor)
   =========================================================== */

/* Acordeón de pasos (líneas continuas, click para abrir)
   Pitch configurable por página vía --acc-pt/--acc-pb (padding del head). */
.pos-acc{border-top:1px solid var(--acento-20);--acc-pt:19px;--acc-pb:19px}
.pos-acc__item{border-bottom:1px solid var(--acento-20)}
.pos-acc__head{display:flex;align-items:baseline;gap:22px;padding:var(--acc-pt) 0 var(--acc-pb);cursor:pointer}
.pos-acc__num{font-size:28px;line-height:32px;font-weight:500;color:var(--acento-20);min-width:46px;flex:0 0 auto;transition:color .3s ease}
.pos-acc__title{font-size:28px;line-height:32px;font-weight:500;color:var(--acento-20);transition:color .3s ease}
.pos-acc__item.is-open .pos-acc__num{color:var(--principal)}
.pos-acc__item.is-open .pos-acc__title{color:var(--acento)}
.pos-acc__body{overflow:hidden;height:0;opacity:0;padding-left:68px}
.pos-acc__item.is-open .pos-acc__body{margin:calc(12px - var(--acc-pb)) 0 32px}
.pos-acc__body p{font-size:16px;line-height:24px;font-weight:300;color:var(--acento);max-width:540px;margin:0}
@media (max-width:767px){
	.pos-acc{--acc-pt:12px;--acc-pb:42px}
	.pos-acc__head{gap:14px}
	.pos-acc__num{min-width:40px}
	.pos-acc__body{padding-left:0}
	.pos-acc__body p{font-size:18px;line-height:26px}
	.pos-acc__item.is-open .pos-acc__body{margin:calc(10px - var(--acc-pb)) 0 32px}
}
/* Variante FAQ: pregunta + chevron (sin número), arranca cerrado */
.pos-acc--faq{--acc-pt:24px;--acc-pb:24px;margin-top:90px}
@media (max-width:1023px){.pos-acc--faq{margin-top:24px}}
.pos-acc--faq .pos-acc__head{padding:var(--acc-pt) 0 var(--acc-pb);gap:24px;align-items:center}
.pos-acc--faq .pos-acc__title{font-size:24px;line-height:32px;font-weight:400;color:var(--acento)}
@media (max-width:767px){
	.pos-acc--faq{--acc-pt:20px;--acc-pb:20px}
	.pos-acc--faq .pos-acc__title{font-size:20px;line-height:26px}
	.pos-acc--faq .pos-acc__chev{width:18px;height:10px}
	.pos-acc--faq .pos-acc__body p{font-size:16px;line-height:24px}
}
.pos-acc--faq .pos-acc__item.is-open .pos-acc__title{color:var(--principal)}
.pos-acc--faq .pos-acc__chev{margin-left:auto;flex:0 0 auto;width:24px;height:14px;color:var(--acento);transition:transform .35s ease;display:inline-flex}
.pos-acc--faq .pos-acc__chev svg{width:100%;height:100%}
.pos-acc--faq .pos-acc__item.is-open .pos-acc__chev{transform:rotate(180deg)}
.pos-acc--faq .pos-acc__body{padding-left:0}
.pos-acc--faq .pos-acc__item.is-open .pos-acc__body{margin:-4px 0 26px}
.pos-acc--faq .pos-acc__body p{font-size:16px;line-height:24px;font-weight:400;color:var(--acento-60);max-width:760px}

/* Carrusel Swiper full-bleed a la derecha (alineado al contenido por la izquierda) */
.pos-swiper{margin-right:calc(50% - 50vw)}
.pos-swiper .swiper-slide{height:auto}
/* Carruseles con slidesPerView:auto → la diapositiva se ajusta al ancho de la tarjeta */
.pos-swiper[data-spv="auto"] .swiper-slide{width:auto}
.pos-swiper__nav{display:flex;gap:8px;margin-top:28px;justify-content:flex-end}
.pos-swiper__prev,.pos-swiper__next{width:30px;height:48px;border:1px solid var(--acento);border-radius:5px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;background:none;transition:background .2s ease,color .2s ease;color:var(--acento)}
.pos-swiper__prev:hover,.pos-swiper__next:hover{background:var(--acento);color:#fff}
.pos-swiper__prev.swiper-button-disabled,.pos-swiper__next.swiper-button-disabled{opacity:.35;cursor:default}
.pos-swiper__prev svg,.pos-swiper__next svg{width:14px;height:14px}
.pos-swiper__prev{transform:rotate(180deg)}

/* Iconos propios SVG */
.pos-svgicon{display:inline-flex;line-height:0}
.pos-svgicon svg{width:100%;height:100%;display:block}

/* El hero es full-bleed hasta arriba; la cabecera flota POR ENCIMA del hero (sin banda blanca). */
body{background:#ffffff}
.page-hero .pos-site-main,.page-hero .pos-site-main > .elementor{margin-top:0 !important;padding-top:0 !important}
.page-hero .pos-site-main > .elementor > :first-child{margin-top:0 !important}
/* Widget html que solo inyecta <style> al inicio: sin margen que empuje el hero */
.elementor > .elementor-widget-html:first-child{margin:0 !important}
.page-hero{margin-top:0 !important}

/* Reveal por elemento (transición CSS como la landing de referencia).
   Oculto SOLO si JS activa html.js-anim; .is-in lo revela. */
html.js-anim .pos-reveal{
	opacity:0;transform:translateY(28px);
	transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);
	will-change:opacity,transform;
}
html.js-anim .pos-reveal.is-in{opacity:1;transform:translateY(0)}

/* Centrar todos los contenedores boxed (incl. anidados): contenido 1320 en frame 1440 */
.e-con.e-con-boxed{margin-left:auto !important;margin-right:auto !important}

/* Eyebrow con punto (dot + label en mayúsculas) */
.pos-eyebrow{display:flex !important;align-items:center !important;gap:0 !important}
.pos-eyebrow::before{content:'';display:inline-block;width:13px;height:13px;border-radius:50%;background:var(--principal);margin-right:11px;flex-shrink:0}
.pos-eyebrow p{font-size:16px;line-height:24px;letter-spacing:.05em;text-transform:uppercase;color:var(--principal);margin:0;white-space:nowrap}

/* Rejilla de tarjetas (sustituye carruseles por grid responsive) */
.pos-cards{display:grid;gap:13px}
.pos-cards--4{grid-template-columns:repeat(4,1fr)}
.pos-cards--3{grid-template-columns:repeat(3,1fr)}
.pos-cards--2{grid-template-columns:repeat(2,1fr)}
@media (max-width:1023px){.pos-cards--4{grid-template-columns:repeat(2,1fr)}.pos-cards--3{grid-template-columns:1fr}.pos-cards--2{grid-template-columns:1fr}}
@media (max-width:600px){.pos-cards--4{grid-template-columns:1fr}}

/* Rejilla de features (icono + texto) */
.pos-features{display:grid;gap:36px 32px}
.pos-features--6{grid-template-columns:repeat(6,1fr)}
.pos-features--3{grid-template-columns:repeat(3,1fr)}
@media (max-width:1023px){.pos-features--6{grid-template-columns:repeat(3,1fr)}.pos-features--3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.pos-features--6,.pos-features--3{grid-template-columns:repeat(2,1fr)}}
.pos-feature__icon i,.pos-feature__icon svg{color:var(--principal-2);width:24px;height:24px;font-size:22px}

/* Timeline numerada "Cómo trabajamos" */
.pos-steps{border-top:1px solid var(--acento-20)}
.pos-step{display:flex;gap:18px;padding:18px 0;border-bottom:1px solid var(--acento-20);align-items:baseline}
.pos-step__num{font-size:28px;line-height:32px;font-weight:500;flex-shrink:0;min-width:42px}
.pos-step__title{font-size:28px;line-height:32px;font-weight:500}
.pos-step--muted .pos-step__num,.pos-step--muted .pos-step__title{color:var(--acento-20)}
.pos-step__desc{font-size:16px;line-height:24px;font-weight:300;color:var(--acento);margin-top:10px;max-width:460px}

/* Tarjeta CTA oscura con imagen */
.pos-ctacard{position:relative;overflow:hidden;border-radius:10px}
.pos-ctacard__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.9}

/* Acordeón FAQ (Elementor) ajustado */
.pos-faq .elementor-accordion .elementor-accordion-item{border:0;border-top:1px solid var(--acento-20)}
.pos-faq .elementor-accordion .elementor-tab-title{font-size:24px;line-height:32px;font-weight:400;color:var(--acento);padding:22px 0;background:none}
.pos-faq .elementor-accordion .elementor-tab-content{padding:0 0 22px;font-size:16px;line-height:24px;color:var(--acento-60);background:none;border:0}
.pos-faq .elementor-accordion .elementor-tab-title.elementor-active{color:var(--principal)}

/* Tarjeta de contacto (sección Hablemos de tu proyecto) */
.pos-contactcard{background:var(--sec-40);border-radius:10px}

/* Bloques de ayudas I+D */
.pos-aid__tag{font-size:16px;line-height:24px;font-weight:700;color:var(--acento)}
.pos-aid__text{font-size:16px;line-height:24px;font-weight:300;color:var(--acento)}

/* Botón pill outline */
.pos-outline .elementor-button{background:transparent;border:1px solid var(--principal);color:var(--principal)}
.pos-outline .elementor-button:hover{background:var(--principal);color:var(--sec-20)}

/* Lista con bullets (2 columnas en desktop) */
.pos-ulist{list-style:none;margin:0;padding:0;columns:2;column-gap:48px}
@media (max-width:767px){.pos-ulist{columns:1}}
.pos-ulist li{position:relative;padding-left:22px;margin-bottom:14px;font-size:16px;line-height:24px;color:var(--principal-80);break-inside:avoid}
.pos-ulist li::before{content:'';position:absolute;left:0;top:9px;width:8px;height:8px;border-radius:50%;background:var(--principal-2)}
.pos-ulist--1col{columns:1}

/* Frase destacada (quote) */
.pos-quote .elementor-heading-title,.pos-quote{font-style:normal}

/* Nota destacada (verde claro) */
.pos-note{background:var(--principal-2-40);border-radius:11px;padding:16px 20px;font-size:16px;line-height:24px;color:var(--acento)}

/* Tarjetas de equipo (imagen de altura uniforme) */
.pos-teamimg img{width:100%;height:360px !important;object-fit:cover;border-radius:10px;display:block}
@media (max-width:1023px){.pos-teamimg img{height:300px !important}}

/* Badge VÍDEO: cristal esmerilado */
.pos-videobadge{backdrop-filter:blur(11px);-webkit-backdrop-filter:blur(11px)}

/* Vídeo de fondo del hero (sustituye el placeholder "VÍDEO N") */
.pos-has-herovideo{position:relative;overflow:hidden}
.pos-herovideo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;border-radius:inherit;pointer-events:none;background:#0a0e2f}
.pos-has-herovideo > :not(.pos-herovideo){position:relative;z-index:1}
.pos-herovideo--dark::after{content:'';position:absolute;inset:0;background:rgba(0,0,0,.28);z-index:0;pointer-events:none}

/* Carrusel horizontal de fases (HTML widget) */
.pos-faserow{display:flex;flex-wrap:nowrap;gap:20px;overflow-x:auto;padding-bottom:14px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin-right:calc(50% - 50vw);padding-right:max(24px,calc(50vw - 50%))}
.pos-fasecard{flex:0 0 315px;width:315px;height:100%;scroll-snap-align:start;background:var(--sec-20,#faf9f8);border-radius:15px;padding:32px 32px 28px 16px;display:flex;flex-direction:column;box-sizing:border-box}
.pos-swiper .swiper-wrapper{align-items:stretch}
@media(max-width:600px){.pos-fasecard{width:80%}}
.pos-fasetag{align-self:flex-start;background:var(--principal-2,#8fa7a3);color:#e9eeed;font-size:15px;font-weight:500;letter-spacing:.3px;border-radius:100px;padding:5px 18px 6px;margin-bottom:21px}
.pos-fasecard h3{font-family:'Saans';font-weight:500;font-size:18px;line-height:22px;color:var(--principal,#0a0e2f);margin:0 0 16px}
.pos-fasecard p{font-family:'Saans';font-weight:300;font-size:14px;line-height:20px;color:var(--acento-60,#787878);margin:0}
.pos-faserow::-webkit-scrollbar{height:6px}
.pos-faserow::-webkit-scrollbar-thumb{background:var(--acento-20);border-radius:3px}
@media (max-width:600px){.pos-fasecard{flex:0 0 80%}}

/* Bloque cuadrante con líneas divisorias (Decidir / Cercanía) */
.pos-quad{border-top:1px solid var(--acento-20)}
.pos-quad__col--l{border-right:1px solid var(--acento-20)}
@media (max-width:1023px){.pos-quad__col--l{border-right:0}}

/* Imagen banner ancha (landscape) */
.pos-wideimg img{width:100%;height:460px !important;object-fit:cover;border-radius:10px;display:block}
@media (max-width:1023px){.pos-wideimg img{height:300px !important}}
@media (max-width:600px){.pos-wideimg img{height:220px !important}}

/* ===========================================================
   RESPONSIVE GLOBAL (Figma frames responsive, 440px)
   =========================================================== */

/* En móvil, sin padding por defecto de contenedores (el diseño usa margen fijo
   de 18px que ya ponen las secciones); los paddings explícitos no se ven afectados. */
@media (max-width:767px){
	.e-con{--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px}
}

/* Paginación de carruseles: dots (móvil) — 8px inactivo, barra 25px activo */
.pos-swiper__dots{display:none;justify-content:center;align-items:center;gap:7px;margin-top:50px}
.pos-swiper__dots .swiper-pagination-bullet{width:8px;height:8px;border-radius:10px;background:#6b6e82;opacity:1;transition:width .25s ease,background .25s ease;margin:0 !important}
.pos-swiper__dots .swiper-pagination-bullet-active{width:25px;background:#0a0e2f}
@media (max-width:767px){
	.pos-swiper[data-dots] ~ .pos-swiper__nav,.pos-swiper[data-dots] + .pos-swiper__nav{display:none}
	.pos-swiper__dots{display:flex}
}

/* Banner salvia: una línea; en móvil corre en marquee */
.pos-banner__ticker{overflow:hidden;width:100%}
.pos-banner__track{display:flex;justify-content:center;white-space:nowrap;gap:80px;color:#faf9f8;font-family:'Saans';font-size:24px;line-height:24px;letter-spacing:.48px;margin:0}
.pos-banner__track span{flex-shrink:0}
.pos-banner__track span+span{display:none}
@media (max-width:767px){
	.pos-banner__track{justify-content:flex-start;font-size:20px;line-height:24px;letter-spacing:.4px;padding-right:80px;animation:marquee-scroll 24s linear infinite}
	.pos-banner__track span+span{display:inline}
}

/* Botón con flecha: en móvil el diseño lo muestra sin flecha y centrado */
@media (max-width:767px){
	.btn-arrow .elementor-button-icon{display:none}
}

/* Eyebrow pequeño (FAQ): punto de 8px y texto 14px en móvil */
.pos-eyebrow--sm::before{width:8px;height:8px;margin-right:13px}
@media (max-width:767px){
	.pos-eyebrow--sm p{font-size:14px;letter-spacing:.7px}
}
