/* Prisyn Labs Core — service pages + [prisyn_services] list */
body.single-pl_service { background: #0A0A0B; color: #fff; margin: 0; }
.pls { --o: #F07B2B; --m: #4ED8A5; --mu: #A39E96; --pa: #F3EFE8; --ln: rgba(255,255,255,.12); font-family: Manrope, system-ui, sans-serif; color: #fff; overflow-x: clip; }
.pls *, .pls *::before, .pls *::after { box-sizing: border-box; }
.pls-wrap { width: 100%; max-width: 1560px; margin: 0 auto; padding: 0 6vw; }
.pls h1, .pls h2, .pls h3, .pls p { margin: 0; }

.pls-label { font-size: 12px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: var(--m); }
.pls-h2 { margin-top: 22px !important; font: 600 clamp(36px, 4.6vw, 76px)/1.02 Sora, system-ui, sans-serif; letter-spacing: -.045em; color: #fff; max-width: 15ch; }
.pls-h2 span { color: var(--o); }

/* Buttons */
.pls-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }
.pls-btn { display: inline-flex; align-items: center; gap: 10px; flex-shrink: 0; font: 700 15px/1 Manrope, system-ui, sans-serif; color: #0A0A0B; background: var(--o); border: 1px solid var(--o); border-radius: 999px; padding: 18px 28px; text-decoration: none; transition: background-color .35s ease, color .35s ease, border-color .35s ease, transform .35s cubic-bezier(.2,.8,.2,1); }
.pls-btn:hover { background: #fff; border-color: #fff; color: #0A0A0B; transform: translateY(-2px); }
.pls-btn-ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.28); }
.pls-btn-ghost:hover { background: transparent; border-color: var(--o); color: var(--o); }
.pls-btn-dark { background: #0A0A0B; border-color: #0A0A0B; color: #fff; }
.pls-btn-dark:hover { background: #fff; border-color: #fff; color: #0A0A0B; }
.pls-btn:focus-visible, .pls-link:focus-visible, .pls-others a:focus-visible, .pls-q summary:focus-visible { outline: 2px solid var(--m); outline-offset: 4px; }
.pls-link { display: inline-flex; gap: 10px; align-items: center; font-weight: 700; font-size: 15px; color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.3); padding-bottom: 6px; transition: color .3s, border-color .3s; }
.pls-link:hover { color: var(--o); border-color: var(--o); }

/* Hero */
.pls-hero { padding: 110px 0 0; background: linear-gradient(200deg, #22160D 0%, #0A0A0B 46%); }
.pls-hero .plps-back { display: inline-flex; gap: 10px; align-items: center; font-size: 12px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--mu); text-decoration: none; transition: color .3s; }
.pls-hero .plps-back:hover { color: var(--o); }
.pls-hero-grid { display: flex; justify-content: space-between; align-items: flex-end; gap: 6vw; margin-top: 44px; }
.pls-hero-main { flex: 1 1 auto; min-width: 0; }
.pls-kicker { font-size: 12px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: var(--m); }
.pls-title { margin-top: 26px !important; font: 600 clamp(52px, 8.6vw, 156px)/.92 Sora, system-ui, sans-serif; letter-spacing: -.055em; color: #fff; max-width: 9ch; overflow-wrap: break-word; }
.pls-dot { color: var(--o); }
.pls-hero-side { flex: 0 0 min(440px, 34%); padding-bottom: 10px; }
.pls-headline { font: 500 clamp(20px, 1.7vw, 26px)/1.35 Sora, system-ui, sans-serif; letter-spacing: -.02em; color: #fff; }
.pls-lead { margin-top: 18px !important; font-size: 17px; line-height: 1.7; color: var(--mu); }

.pls-media-row { display: flex; gap: 24px; margin-top: 96px; align-items: stretch; }
.pls-media { position: relative; overflow: hidden; border-radius: 4px; background: #141416; }
.pls-media img { display: block; width: 100%; height: 100% !important; max-width: none; object-fit: cover; transform: scale(1.001); transition: transform 1.4s cubic-bezier(.2,.8,.2,1); }
.pls-media:hover img { transform: scale(1.05); }
.pls-media-main { flex: 1 1 68%; aspect-ratio: 16 / 10; }
.pls-media-stack { flex: 1 1 32%; display: flex; flex-direction: column; gap: 24px; }
.pls-media-stack .pls-media { flex: 1 1 0; min-height: 0; }

/* Marquee */
.pls-marquee { margin-top: 110px; border-top: 1px solid var(--ln); border-bottom: 1px solid var(--ln); overflow: hidden; padding: 30px 0; }
.pls-marquee-track { display: flex; width: max-content; animation: plsMarquee 38s linear infinite; }
.pls-marquee:hover .pls-marquee-track { animation-play-state: paused; }
.pls-marquee-set { display: flex; align-items: center; gap: 44px; padding-right: 44px; }
.pls-marquee-set span { font: 500 clamp(26px, 3vw, 48px)/1 Sora, system-ui, sans-serif; letter-spacing: -.035em; color: #fff; white-space: nowrap; }
.pls-marquee-set em { font-style: normal; font-size: 22px; color: var(--o); }
@keyframes plsMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* Sections */
.pls-section { padding: 140px 0; }
.pls-section-tight { padding-top: 0; }
.pls-head { margin-bottom: 72px; }
.pls-head-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap; }

/* Offer grid */
.pls-offer { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 48px; row-gap: 12px; }
.pls-offer-item { position: relative; padding: 34px 0 44px; border-top: 1px solid var(--ln); }
.pls-offer-item::before { content: ""; position: absolute; left: 0; top: -1px; height: 1px; width: 0; background: var(--o); transition: width .7s cubic-bezier(.2,.8,.2,1); }
.pls-offer-item:hover::before { width: 100%; }
.pls-offer-num { display: block; font-size: 13px; font-weight: 700; letter-spacing: .12em; color: var(--o); }
.pls-offer-item h3 { margin-top: 26px !important; font: 500 clamp(22px, 1.8vw, 28px)/1.2 Sora, system-ui, sans-serif; letter-spacing: -.03em; color: #fff; transition: color .35s; }
.pls-offer-item:hover h3 { color: var(--o); }
.pls-offer-item p { margin-top: 14px !important; font-size: 16px; line-height: 1.7; color: var(--mu); max-width: 380px; }

.pls-prose-grid { display: flex; gap: 7vw; align-items: flex-start; }
.pls-prose-grid .pls-label { flex: 0 0 24%; }
.pls-prose-grid .plps-content { flex: 1 1 auto; }

/* Process (light) */
.pls-light { background: var(--pa); color: #0A0A0B; }
.pls-light .pls-label { color: #0A0A0B; opacity: .6; }
.pls-light .pls-h2 { color: #0A0A0B; }
.pls-light .pls-h2 span { color: #E05D17; }
.pls-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; counter-reset: none; }
.pls-step { padding-top: 30px; border-top: 1px solid rgba(10,10,11,.18); }
.pls-step-num { display: block; font: 600 clamp(56px, 6vw, 96px)/.9 Sora, system-ui, sans-serif; letter-spacing: -.06em; color: transparent; -webkit-text-stroke: 1.4px #0A0A0B; transition: color .5s ease; }
.pls-step:hover .pls-step-num { color: #E05D17; -webkit-text-stroke-color: #E05D17; }
.pls-step h3 { margin-top: 34px !important; font: 600 24px/1.2 Sora, system-ui, sans-serif; letter-spacing: -.03em; color: #0A0A0B; }
.pls-step p { margin-top: 14px !important; font-size: 16px; line-height: 1.7; color: #4A4640; }

/* FAQ */
.pls-faq-grid { display: flex; gap: 7vw; align-items: flex-start; }
.pls-faq-grid .pls-head { flex: 0 0 34%; position: sticky; top: 140px; }
.pls-faq { flex: 1 1 auto; border-bottom: 1px solid var(--ln); }
.pls-q { border-top: 1px solid var(--ln); }
.pls-q summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 30px 0; font: 500 clamp(19px, 1.6vw, 24px)/1.35 Sora, system-ui, sans-serif; letter-spacing: -.02em; color: #fff; transition: color .3s; }
.pls-q summary::-webkit-details-marker { display: none; }
.pls-q summary:hover { color: var(--o); }
.pls-q summary i { position: relative; flex: 0 0 34px; height: 34px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; transition: transform .45s cubic-bezier(.2,.8,.2,1), background-color .3s, border-color .3s; }
.pls-q summary i::before, .pls-q summary i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 1.5px; background: currentColor; transform: translate(-50%, -50%); }
.pls-q summary i::after { transform: translate(-50%, -50%) rotate(90deg); transition: opacity .3s; }
.pls-q[open] summary i { transform: rotate(180deg); background: var(--o); border-color: var(--o); color: #0A0A0B; }
.pls-q[open] summary i::after { opacity: 0; }
.pls-q p { padding: 0 60px 32px 0; font-size: 17px; line-height: 1.75; color: var(--mu); animation: plsFade .5s ease; }
@keyframes plsFade { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

/* Other services */
.pls-others-section { padding-top: 0; }
.pls-others { margin-top: 36px; border-bottom: 1px solid var(--ln); }
.pls-others a { display: flex; align-items: center; gap: 32px; padding: 34px 0; border-top: 1px solid var(--ln); color: #fff; text-decoration: none; transition: padding .5s cubic-bezier(.2,.8,.2,1), color .3s; }
.pls-others small { flex: 0 0 48px; font-size: 13px; font-weight: 700; letter-spacing: .12em; color: var(--mu); }
.pls-others strong { flex: 1 1 auto; font: 600 clamp(30px, 4.4vw, 72px)/1 Sora, system-ui, sans-serif; letter-spacing: -.05em; }
.pls-others em { font-style: normal; font: 300 clamp(28px, 3vw, 48px)/1 Sora, system-ui, sans-serif; color: var(--o); transition: transform .5s cubic-bezier(.2,.8,.2,1); }
.pls-others a:hover { color: var(--o); padding-left: 18px; }
.pls-others a:hover em { transform: translateX(10px); }

/* CTA */
.pls-cta { background: var(--o); color: #0A0A0B; padding: 130px 0; text-align: left; }
.pls-cta .pls-label { color: #0A0A0B; opacity: .7; }
.pls-cta h2 { margin: 22px 0 44px !important; font: 600 clamp(48px, 8vw, 140px)/.95 Sora, system-ui, sans-serif; letter-spacing: -.055em; color: #0A0A0B; }
.pls-cta h2 span { color: #fff; }

/* Motion */
.pls-rise { animation: plsRise 1s cubic-bezier(.2,.8,.2,1) both; }
.pls-hero-main .pls-rise:nth-child(2) { animation-delay: .08s; }
.pls-hero-side.pls-rise { animation-delay: .22s; }
@keyframes plsRise { from { opacity: 0; transform: translateY(36px); } to { opacity: 1; transform: none; } }
.pls-js .pls-reveal { opacity: 0; transform: translateY(40px); transition: opacity .9s ease, transform .9s cubic-bezier(.2,.8,.2,1); }
.pls-js .pls-reveal.is-in { opacity: 1; transform: none; }

/* Responsive */
@media (max-width: 1024px) {
	.pls-hero-grid { flex-direction: column; align-items: flex-start; gap: 36px; }
	.pls-hero-side { flex-basis: auto; max-width: 560px; }
	.pls-offer { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pls-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 56px; }
	.pls-faq-grid { flex-direction: column; }
	.pls-faq-grid .pls-head { position: relative; top: 0; flex-basis: auto; margin-bottom: 24px; }
	.pls-section { padding: 110px 0; }
}
@media (max-width: 767px) {
	.pls-wrap { padding: 0 22px; }
	.pls-hero { padding-top: 56px; }
	.pls-hero-grid { margin-top: 32px; }
	.pls-title { font-size: clamp(44px, 13vw, 64px); max-width: none; }
	.pls-actions .pls-btn { flex: 1 1 auto; justify-content: center; }
	.pls-media-row { flex-direction: column; margin-top: 56px; gap: 14px; }
	.pls-media-main { aspect-ratio: 4 / 3; }
	.pls-media-stack { flex-direction: row; gap: 14px; }
	.pls-media-stack .pls-media { aspect-ratio: 1 / 1; }
	.pls-marquee { margin-top: 72px; padding: 22px 0; }
	.pls-section { padding: 84px 0; }
	.pls-section-tight, .pls-others-section { padding-top: 0; }
	.pls-head { margin-bottom: 44px; }
	.pls-offer, .pls-steps { grid-template-columns: 1fr; }
	.pls-offer-item { padding: 26px 0 30px; }
	.pls-prose-grid { flex-direction: column; gap: 20px; }
	.pls-q p { padding-right: 0; }
	.pls-others a { gap: 18px; padding: 26px 0; }
	.pls-others small { flex-basis: 28px; }
	.pls-cta { padding: 88px 0; }
}
@media (prefers-reduced-motion: reduce) {
	.pls-marquee-track, .pls-rise { animation: none; }
	.pls-js .pls-reveal { opacity: 1; transform: none; transition: none; }
	.pls-media img, .pls-others a, .pls-others em { transition: none; }
}

/* [prisyn_services] linked list */
.plsl { display: flex; flex-direction: column; border-bottom: 1px solid rgba(255,255,255,.12); font-family: Manrope, system-ui, sans-serif; }
.plsl-item { display: flex; align-items: center; gap: 24px; padding: 26px 0; border-top: 1px solid rgba(255,255,255,.12); color: #fff; text-decoration: none; transition: color .3s, padding .45s cubic-bezier(.2,.8,.2,1); }
.plsl-num { flex: 0 0 40px; font-size: 13px; font-weight: 700; color: #A39E96; }
.plsl-title { flex: 1 1 auto; font: 500 clamp(22px, 2.4vw, 36px)/1.1 Sora, system-ui, sans-serif; letter-spacing: -.03em; }
.plsl-arrow { color: #F07B2B; font-size: 24px; transition: transform .45s cubic-bezier(.2,.8,.2,1); }
.plsl-item:hover { color: #F07B2B; padding-left: 12px; }
.plsl-item:hover .plsl-arrow { transform: translateX(8px); }

/* Areas served */
.pls-areas { padding-top: 0; }
.pls-areas-grid { display: flex; gap: 7vw; align-items: flex-start; border-top: 1px solid var(--ln); padding-top: 110px; }
.pls-areas-grid .pls-head { flex: 0 0 42%; margin-bottom: 0; }
.pls-areas-body { flex: 1 1 auto; }
.pls-areas-body p { font-size: 18px; line-height: 1.75; color: var(--mu); max-width: 620px; }
.pls-towns { list-style: none; margin: 32px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.pls-towns li { padding: 11px 18px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; font-size: 14px; font-weight: 600; color: #fff; transition: border-color .3s, color .3s; }
.pls-towns li:first-child { border-color: var(--o); color: var(--o); }
.pls-towns li:hover { border-color: var(--m); color: var(--m); }
@media (max-width: 1024px) { .pls-areas-grid { flex-direction: column; gap: 32px; padding-top: 84px; } .pls-areas-grid .pls-head { flex-basis: auto; } }
@media (max-width: 767px) { .pls-areas-grid { padding-top: 64px; } .pls-towns li { padding: 9px 14px; font-size: 13px; } }
