/* Közös mozgásrendszer: minden oldal ugyanarra a ritmusra reagál. */
:root { --motion-ease: cubic-bezier(.22,1,.36,1); }

/* A preloader CSS-ből is lezárul, így egy script-hiba sem takarhatja el az oldalt. */
.page-loader { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; overflow: hidden; pointer-events: auto; color: #fff; background: #080d13; animation: loader-away .38s var(--motion-ease) .9s forwards; }
.page-loader::before { content: ''; position: absolute; inset: -60%; background: conic-gradient(from 0deg,transparent 0 62%,rgba(185,55,56,.13) 69%,transparent 78%); animation: loader-beam 2.8s linear infinite; }
.page-loader__orbit { position: absolute; width: 116px; height: 116px; border: 1px solid rgba(255,255,255,.17); border-radius: 50%; box-shadow: 0 0 0 16px rgba(255,255,255,.025),0 0 55px rgba(207,70,66,.12); animation: loader-orbit 1.15s ease-in-out infinite alternate; }
.page-loader__orbit::before,.page-loader__orbit::after { content: ''; position: absolute; width: 6px; height: 6px; border-radius: 50%; background: #ec695f; box-shadow: 0 0 16px #ec695f; }
.page-loader__orbit::before { left: 18px; top: 10px; }.page-loader__orbit::after { right: 12px; bottom: 15px; animation: loader-dot .8s ease-in-out infinite alternate; }
.page-loader__core { position: absolute; width: 70px; height: 70px; border: 2px solid rgba(255,255,255,.75); border-left-color: #d83d3d; border-right-color: #d83d3d; border-radius: 50%; animation: loader-beam 1.6s linear infinite; }
.page-loader__core::after { content: ''; position: absolute; inset: 17px; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; box-shadow: inset 0 0 16px rgba(213,68,65,.25); }
.page-loader__brand { position: absolute; top: calc(50% + 90px); font-size: .8rem; font-weight: 800; letter-spacing: .28em; }.page-loader__brand span { color: #e95752; }
.page-loader__line { position: absolute; bottom: 0; left: 0; height: 3px; width: 100%; background: linear-gradient(90deg,#842b33,#ec695f,#f4b7a7); transform-origin: left; animation: loader-line .94s var(--motion-ease) both; }
@keyframes loader-away { to { opacity: 0; visibility: hidden; transform: translateY(-2%); } }
@keyframes loader-beam { to { transform: rotate(360deg); } }
@keyframes loader-orbit { to { transform: scale(1.12) rotate(25deg); opacity: .7; } }
@keyframes loader-dot { to { opacity: .25; } }
@keyframes loader-line { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* Az öt film azonos tipográfiai méretben és ugyanabban a képkivágásban jelenik meg. */
.page-home .hero__copy .display,.page-home .hero__copy--medium .display,.page-home .hero__copy--long .display { width: min(100%,920px); max-width: 20ch; font-size: clamp(2.8rem,4.45vw,5rem); line-height: 1.035; letter-spacing: -.052em; font-weight: 650; }
.page-home .hero__video { object-position: center center; }
.page-home .hero__shade { background: linear-gradient(90deg,rgba(4,9,14,.93),rgba(4,9,14,.61) 47%,rgba(4,9,14,.18)),linear-gradient(0deg,rgba(4,9,14,.68),transparent 42%); }
.page-home .hero__index button { transition: transform .25s var(--motion-ease),background .25s,border-color .25s,box-shadow .25s; }
.page-home .hero__index button:hover { transform: scale(1.15); box-shadow: 0 0 0 7px rgba(235,104,93,.12); }
.page-home .hero__index i { position: relative; overflow: hidden; }
.page-home .hero__index i::after { content: ''; position: absolute; inset: 0; background: #f16b62; transform: translateX(-100%); animation: hero-index-flow 5s linear infinite; }
@keyframes hero-index-flow { 65%,100% { transform: translateX(100%); } }

/* Aloldali képek lassú, egyenletes életet kapnak; nincs kamerarázkódás. */
.phero--media .phero__image,.area-hero > img { animation: inner-image-breathe 19s ease-in-out infinite alternate; translate: var(--pointer-x,0px) var(--pointer-y,0px); transition: translate .65s var(--motion-ease); will-change: transform,translate; }
@keyframes inner-image-breathe { from { transform: scale(1.035) translate3d(0,0,0); } to { transform: scale(1.09) translate3d(-.7%,.45%,0); } }
.phero--media .phero__bg { opacity: .24; }
.phero--media .eyebrow::after,.area-hero .eyebrow::after { content: ''; display: inline-block; width: 5px; height: 5px; margin-left: 12px; vertical-align: middle; border-radius: 50%; background: #ed766c; box-shadow: 0 0 0 0 rgba(237,118,108,.5); animation: signal-pulse 2.5s ease-out infinite; }
@keyframes signal-pulse { 50% { box-shadow: 0 0 0 8px rgba(237,118,108,0); } }

/* A szolgáltatási pontok ténylegesen felfedezhetők és animáltan nyílnak. */
.capability { display: block; position: relative; min-height: 0; padding-top: 0; padding-bottom: 0; overflow: hidden; }
.capability:nth-child(even) { padding-top: 0; padding-bottom: 0; }
.capability__details { position: relative; width: 100%; }
.capability__details summary { display: grid; grid-template-columns: 44px minmax(0,1fr) 30px; align-items: center; gap: 14px; min-height: 112px; padding: 22px 0; cursor: pointer; list-style: none; outline-offset: -4px; }
.capability__details summary::-webkit-details-marker { display: none; }
.capability__details summary::marker { content: ''; }
.capability__title { font-size: clamp(1.05rem,1.4vw,1.28rem); font-weight: 650; line-height: 1.3; }
.capability__toggle { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid var(--border); border-radius: 50%; color: var(--accent); font-size: 1.25rem; font-weight: 400; transition: transform .35s var(--motion-ease),background .25s,color .25s; }
.capability:hover .capability__toggle { transform: rotate(90deg); background: var(--accent); color: #fff; }
.capability__details[open] .capability__toggle { transform: rotate(45deg); background: var(--accent); color: #fff; }
.capability__body { margin: -5px 40px 27px 58px; animation: detail-enter .42s var(--motion-ease) both; }
.capability__body p { max-width: 58ch; margin: 0 0 17px; color: var(--muted); line-height: 1.65; }
.capability__body .link-arrow { font-size: .88rem; }
@keyframes detail-enter { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: none; } }
.capability__details summary:focus-visible { outline: 2px solid var(--accent); }

/* Kézzel mozgatható fény az aktív felületeken. */
.motion-spot { position: relative; isolation: isolate; --spot-x: 50%; --spot-y: 50%; }
.motion-spot::before { content: ''; position: absolute; inset: 0; z-index: 0; border-radius: inherit; background: radial-gradient(320px circle at var(--spot-x) var(--spot-y),color-mix(in srgb,var(--accent) 12%,transparent),transparent 70%); opacity: 0; transition: opacity .3s; pointer-events: none; }
.motion-spot:hover::before,.motion-spot:focus-within::before { opacity: 1; }
.service-plan,.case--editorial,.journal__item,.reason,.area-services a,.sector-list li,.contact__big,.faq__item { transition: transform .4s var(--motion-ease),background .35s,border-color .35s,box-shadow .4s; }
.service-plan:hover,.case--editorial:hover,.journal__item:hover,.area-services a:hover,.contact__big:hover { transform: translateY(-5px); }
.reason:hover,.sector-list li:hover,.faq__item:hover { transform: translateX(6px); }
.journal__item:hover .journal__image img,.about-values__image:hover img { transform: scale(1.055); }
.area-services a:hover .ic,.journal__item:hover .ic,.link-arrow:hover .ic { transform: translateX(5px); }
.area-services a .ic,.journal__item .ic,.link-arrow .ic { transition: transform .3s var(--motion-ease); }
.service-visual img,.feature__image img { transition: transform 1.2s var(--motion-ease) !important; }
.service-visual:hover img,.feature:hover .feature__image img { transform: scale(1.055) !important; }

/* Szekciók belépése: az aloldalak dokumentum- és tartalmi részein is. */
.motion-item { opacity: 0; transform: translateY(26px); filter: blur(3px); transition: opacity .75s var(--motion-ease),transform .75s var(--motion-ease),filter .75s var(--motion-ease); transition-delay: var(--motion-delay,0ms); }
.motion-item.is-in { opacity: 1; transform: none; filter: none; }
.document-hero .h1,.document-page .h1 { background: linear-gradient(110deg,var(--text) 35%,var(--accent) 50%,var(--text) 65%); background-size: 240% 100%; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation: title-light 8s ease-in-out infinite; }
.error-hero .h1 { background: linear-gradient(110deg,#fff 35%,#ed766c 50%,#fff 65%); background-size: 240% 100%; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation: title-light 8s ease-in-out infinite; }
@keyframes title-light { 0%,38%,100% { background-position: 100% 0; } 64% { background-position: 0 0; } }
.article__body a,.document-body a,.document-page a { text-decoration-thickness: 1px; text-underline-offset: 4px; transition: color .2s,text-decoration-color .2s; }
.article__body a:hover,.document-body a:hover,.document-page a:hover { color: var(--accent); }
.stats .stat__num { transition: transform .4s var(--motion-ease),text-shadow .4s; }
.stats .stat:hover .stat__num { transform: translateY(-4px); text-shadow: 0 8px 24px color-mix(in srgb,var(--accent) 35%,transparent); }

@media (max-width: 700px) {
  .page-home .hero__copy .display,.page-home .hero__copy--medium .display,.page-home .hero__copy--long .display { max-width: 100%; font-size: clamp(2.1rem,7.2vw,2.8rem); line-height: 1.08; }
  .capability__details summary { grid-template-columns: 32px minmax(0,1fr) 28px; min-height: 80px; gap: 9px; padding-block: 18px; }
  .capability__body { margin: 0 18px 24px 41px; }
  .service-plan:hover,.case--editorial:hover,.journal__item:hover,.area-services a:hover,.contact__big:hover,.reason:hover,.sector-list li:hover,.faq__item:hover { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .page-loader { animation: loader-away .18s ease .12s forwards; }.page-loader::before,.page-loader__orbit,.page-loader__core,.page-loader__line,.page-home .hero__index i::after,.phero--media .phero__image,.area-hero > img,.phero--media .eyebrow::after,.area-hero .eyebrow::after,.document-hero .h1,.document-page .h1,.error-hero .h1 { animation: none; }
  .document-hero .h1,.document-page .h1,.error-hero .h1 { background: none; -webkit-text-fill-color: currentColor; }
  .motion-item,.motion-item.is-in { opacity: 1; transform: none; filter: none; transition: none; }
  .capability__body { animation: none; }.service-plan,.case--editorial,.journal__item,.reason,.area-services a,.sector-list li,.contact__big,.faq__item { transition: none; }
}
