/* Prom page + homepage prom feature. Scoped so existing pages remain unchanged. */
.prom-page{--prom-pink:#ff4fa3;--prom-violet:#8d5cff;--prom-blue:#42cfff;--prom-gold:#efc67a;--prom-ink:#f7f5f4;--prom-muted:#b8bec8;background:#050609}
.prom-page .prom-hero{min-height:760px;display:grid;align-items:end;position:relative;overflow:hidden;padding:150px clamp(24px,6vw,100px) 82px;background:#08090d}
.prom-page .prom-hero-media{position:absolute;inset:0}
.prom-page .prom-hero-media img{width:100%;height:100%;object-fit:cover;object-position:62% 50%;filter:saturate(1.08) contrast(1.04) brightness(.83)}
.prom-page .prom-hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,6,9,.97) 0,rgba(5,6,9,.87) 31%,rgba(5,6,9,.42) 58%,rgba(5,6,9,.08) 83%),linear-gradient(0deg,rgba(5,6,9,.72),transparent 40%)}
.prom-page .prom-hero-inner{position:relative;z-index:2;width:min(780px,100%)}
.prom-page .prom-hero .eyebrow{color:var(--prom-gold)}
.prom-page .prom-hero h1{margin:12px 0 24px;max-width:760px;font-size:clamp(4.2rem,7.7vw,9rem);line-height:.82;letter-spacing:-.065em;text-transform:uppercase}
.prom-page .prom-hero h1 span{color:var(--prom-blue)}
.prom-page .prom-hero .hero-intro{max-width:660px;margin:0;color:#e5e6ea;font-size:clamp(1.02rem,1.45vw,1.26rem);line-height:1.7}
.prom-page .prom-hero .page-actions{margin-top:32px}
.prom-page .prom-hero .primary{background:linear-gradient(105deg,var(--prom-violet),#6557ff 46%,#169fc0)}
.prom-page .prom-hero .line-link{color:#fff;border-color:rgba(255,255,255,.72)}

.prom-shell{width:min(1320px,calc(100% - 48px));margin:0 auto}
.prom-section{padding:clamp(78px,8vw,116px) 0}
.prom-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.75fr);gap:clamp(30px,7vw,100px);align-items:end;margin-bottom:46px}
.prom-head h2{margin:0;font-size:clamp(3.2rem,6vw,7rem);line-height:.84;letter-spacing:-.06em;text-transform:uppercase}
.prom-head h2 span{color:var(--prom-violet)}
.prom-head>p{margin:0;color:var(--prom-muted);line-height:1.75;font-size:1.02rem}
.prom-page .eyebrow{color:var(--prom-blue)}
.prom-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.prom-card{min-height:300px;padding:30px;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.105);border-radius:17px;background:linear-gradient(145deg,rgba(255,255,255,.052),rgba(255,255,255,.015));box-shadow:0 22px 56px rgba(0,0,0,.18)}
.prom-card::before{content:"";position:absolute;left:0;right:46%;top:0;height:2px;background:linear-gradient(90deg,var(--prom-blue),transparent)}
.prom-card:nth-child(2)::before{background:linear-gradient(90deg,var(--prom-violet),transparent)}
.prom-card:nth-child(3)::before{background:linear-gradient(90deg,var(--prom-gold),transparent)}
.prom-card:nth-child(4)::before{background:linear-gradient(90deg,var(--prom-pink),transparent)}
.prom-card>span{display:block;color:var(--prom-blue);font-size:.64rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase}
.prom-card h3{margin:58px 0 14px;font-size:clamp(1.75rem,2.4vw,2.7rem);line-height:.94;letter-spacing:-.045em;text-transform:uppercase}
.prom-card p{margin:0;color:var(--prom-muted);line-height:1.65}

.prom-journey{background:linear-gradient(180deg,#090b10,#050609);border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06)}
.prom-flow-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid rgba(255,255,255,.1);border-radius:18px;overflow:hidden;background:rgba(255,255,255,.018)}
.prom-flow-grid article{min-height:285px;padding:30px;border-right:1px solid rgba(255,255,255,.09)}
.prom-flow-grid article:last-child{border-right:0}
.prom-flow-grid span{font-size:.64rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:var(--prom-gold)}
.prom-flow-grid h3{margin:54px 0 13px;font-size:clamp(1.75rem,2.25vw,2.55rem);line-height:.94;text-transform:uppercase;letter-spacing:-.04em}
.prom-flow-grid p{margin:0;color:var(--prom-muted);line-height:1.65}

.prom-gallery{padding:0;background:#050609}
.prom-gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px}
.prom-gallery figure{margin:0;min-height:clamp(300px,30vw,500px);position:relative;overflow:hidden;background:#111}
.prom-gallery img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;transition:transform .6s ease,filter .35s ease;filter:saturate(1.02) contrast(1.03)}
.prom-gallery figure:hover img{transform:scale(1.025)}
.prom-gallery figcaption{position:absolute;z-index:2;left:22px;right:22px;bottom:20px;padding-top:18px;border-top:1px solid rgba(255,255,255,.42);font-size:.67rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase;text-shadow:0 2px 18px #000}
.prom-gallery figure::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,6,9,.78),transparent 48%);pointer-events:none}

.prom-boundaries{background:#efeeeb;color:#090a0d}
.prom-boundaries .prom-shell{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:clamp(40px,7vw,100px);align-items:center}
.prom-boundaries .eyebrow{color:#6b24df}
.prom-boundaries h2{margin:10px 0 22px;font-size:clamp(3.2rem,6.5vw,7.4rem);line-height:.84;letter-spacing:-.06em;text-transform:uppercase}
.prom-boundaries p{margin:0;color:#50565f;font-size:1.05rem;line-height:1.75}
.prom-boundaries-box{padding:34px;border:1px solid rgba(8,9,13,.17);border-radius:18px;background:rgba(255,255,255,.58)}
.prom-boundaries-box b{display:block;margin-bottom:14px;font-size:clamp(1.5rem,2.2vw,2.35rem);line-height:1;text-transform:uppercase;letter-spacing:-.035em}
.prom-boundaries-box p+p{margin-top:14px}

.prom-planning-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.prom-planning-grid article{min-height:255px;padding:28px;border:1px solid rgba(255,255,255,.1);border-radius:15px;background:#0a0c11}
.prom-planning-grid span{display:block;margin-bottom:42px;color:var(--prom-blue);font-size:.63rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase}
.prom-planning-grid h3{margin:0 0 12px;font-size:clamp(1.55rem,2.1vw,2.35rem);line-height:.98;text-transform:uppercase;letter-spacing:-.035em}
.prom-planning-grid p{margin:0;color:var(--prom-muted);line-height:1.65}

.prom-production{background:linear-gradient(140deg,#0c0f16,#090a0e)}
.prom-production-inner{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(36px,7vw,90px);align-items:center}
.prom-production figure{margin:0;min-height:500px;position:relative;overflow:hidden;border-radius:18px;border:1px solid rgba(255,255,255,.1)}
.prom-production figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.prom-production-copy h2{margin:10px 0 22px;font-size:clamp(3rem,5.5vw,6.2rem);line-height:.85;letter-spacing:-.055em;text-transform:uppercase}
.prom-production-copy>p{color:var(--prom-muted);line-height:1.75}
.prom-production-points{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:28px}
.prom-production-points div{padding-top:17px;border-top:1px solid rgba(255,255,255,.14)}
.prom-production-points b{display:block;margin-bottom:8px;text-transform:uppercase;font-size:.72rem;letter-spacing:.12em}
.prom-production-points p{margin:0;color:#aeb5be;line-height:1.55;font-size:.93rem}

.prom-faq{background:#050609}
.prom-faq-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.prom-faq details{padding:22px 24px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:rgba(255,255,255,.025)}
.prom-faq summary{cursor:pointer;font-weight:900;letter-spacing:-.015em;list-style:none;padding-right:30px;position:relative}
.prom-faq summary::-webkit-details-marker{display:none}
.prom-faq summary::after{content:"+";position:absolute;right:0;top:-2px;color:var(--prom-blue);font-size:1.35rem}
.prom-faq details[open] summary::after{content:"–"}
.prom-faq details p{margin:16px 0 0;color:var(--prom-muted);line-height:1.65}

.prom-cta{padding:clamp(94px,10vw,140px) 24px;text-align:center;background:radial-gradient(circle at 18% 15%,rgba(255,79,163,.16),transparent 30%),radial-gradient(circle at 82% 18%,rgba(66,207,255,.14),transparent 28%),linear-gradient(120deg,#492170,#2f2e7d 55%,#0a6077)}
.prom-cta p{max-width:1100px;margin:0 auto;font-size:clamp(3rem,6.5vw,7.2rem);line-height:.86;letter-spacing:-.06em;text-transform:uppercase;font-weight:950}
.prom-cta p span{color:#f2d49f}
.prom-cta .page-actions{justify-content:center;margin-top:36px}
.prom-cta .primary{background:#fff!important;color:#090a0d!important}
.prom-cta .line-link{color:#fff;border-color:rgba(255,255,255,.74)}

/* Homepage: a dedicated prom route without disturbing the existing five service cards. */
.home-prom-feature{padding:56px clamp(20px,5vw,72px);background:#07090d;border-top:1px solid rgba(255,255,255,.055);border-bottom:1px solid rgba(255,255,255,.055)}
.home-prom-feature-inner{width:min(1400px,100%);min-height:560px;margin:0 auto;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.13);border-radius:28px;background:#111;box-shadow:0 28px 90px rgba(0,0,0,.28)}
.home-prom-feature img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 50%;filter:saturate(1.06) contrast(1.04) brightness(.82)}
.home-prom-feature-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,6,9,.96),rgba(5,6,9,.80) 36%,rgba(5,6,9,.26) 68%,rgba(5,6,9,.07)),linear-gradient(0deg,rgba(5,6,9,.48),transparent 48%)}
.home-prom-feature-copy{position:relative;z-index:2;min-height:560px;width:min(690px,62%);padding:68px 0 58px clamp(28px,5vw,72px);display:flex;flex-direction:column;justify-content:center}
.home-prom-feature .kicker{color:#efc67a;margin-bottom:14px}
.home-prom-feature h2{margin:0;font-size:clamp(3.4rem,6vw,6.8rem);line-height:.84;letter-spacing:-.06em;text-transform:uppercase}
.home-prom-feature h2 span{color:#42cfff}
.home-prom-feature-copy>p:not(.kicker){max-width:620px;color:#d6d9de;line-height:1.67;font-size:1.03rem}
.home-prom-feature .page-actions{margin-top:24px}
.home-prom-feature .primary{background:linear-gradient(105deg,#8d5cff,#6557ff 46%,#169fc0)}
.home-prom-feature .line-link{color:#fff;border-color:rgba(255,255,255,.7)}
.home-prom-badge{width:max-content;margin-bottom:24px;padding:8px 12px;border:1px solid rgba(239,198,122,.38);border-radius:999px;background:rgba(5,6,9,.4);color:#f1d39d;font-size:.64rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}

@media(max-width:980px){
  .prom-card-grid,.prom-flow-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .prom-flow-grid article:nth-child(2){border-right:0}.prom-flow-grid article:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.09)}
  .prom-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .prom-gallery figure{min-height:420px}
  .prom-planning-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .prom-production-inner,.prom-boundaries .prom-shell{grid-template-columns:1fr}
  .prom-production figure{min-height:520px}
}
@media(max-width:720px){
  .prom-shell{width:min(100% - 34px,1320px)}
  .prom-page .prom-hero{min-height:700px;padding:118px 18px 42px;align-items:end}
  .prom-page .prom-hero-media img{object-position:69% 50%}
  .prom-page .prom-hero-media::after{background:linear-gradient(0deg,rgba(5,6,9,.99) 0,rgba(5,6,9,.91) 50%,rgba(5,6,9,.34) 76%,rgba(5,6,9,.08) 100%),linear-gradient(90deg,rgba(5,6,9,.52),transparent 78%)}
  .prom-page .prom-hero h1{margin:10px 0 18px;font-size:clamp(3.35rem,15.5vw,5.2rem);line-height:.84}
  .prom-page .prom-hero .hero-intro{font-size:.98rem;line-height:1.6}
  .prom-page .prom-hero .page-actions{margin-top:24px}
  .prom-section{padding:68px 0}
  .prom-head{grid-template-columns:1fr;gap:16px;margin-bottom:30px}
  .prom-head h2{font-size:clamp(2.8rem,13vw,4.4rem);line-height:.88}
  .prom-card-grid,.prom-flow-grid,.prom-gallery-grid,.prom-planning-grid,.prom-faq-list{grid-template-columns:1fr}
  .prom-card{min-height:0;padding:26px 24px}.prom-card h3{margin:42px 0 12px}
  .prom-flow-grid article{min-height:0;padding:26px 24px;border-right:0;border-bottom:1px solid rgba(255,255,255,.09)}.prom-flow-grid article:last-child{border-bottom:0}.prom-flow-grid h3{margin:42px 0 12px}
  .prom-gallery figure{min-height:0;aspect-ratio:16/10}
  .prom-gallery figcaption{left:18px;right:18px;bottom:16px;padding-top:14px}
  .prom-boundaries h2{font-size:clamp(2.8rem,13vw,4.4rem);line-height:.88}
  .prom-boundaries-box{padding:26px 24px}
  .prom-planning-grid article{min-height:0;padding:25px 23px}.prom-planning-grid span{margin-bottom:34px}
  .prom-production figure{min-height:0;aspect-ratio:16/10}
  .prom-production-copy h2{font-size:clamp(2.8rem,12.5vw,4.4rem);line-height:.88}
  .prom-production-points{grid-template-columns:1fr;gap:14px}
  .prom-faq details{padding:20px}
  .prom-cta{padding:76px 20px}.prom-cta p{font-size:clamp(2.8rem,13vw,4.5rem);line-height:.89}.prom-cta .page-actions{margin-top:28px}
  .home-prom-feature{padding:34px 16px}
  .home-prom-feature-inner{min-height:720px;border-radius:22px}
  .home-prom-feature img{object-position:68% 48%}
  .home-prom-feature-shade{background:linear-gradient(0deg,rgba(5,6,9,.98),rgba(5,6,9,.84) 50%,rgba(5,6,9,.18) 78%)}
  .home-prom-feature-copy{width:100%;min-height:720px;padding:300px 20px 28px;justify-content:flex-end}
  .home-prom-feature h2{font-size:clamp(2.7rem,13vw,4.2rem)}
  .home-prom-feature-copy>p:not(.kicker){font-size:.94rem;line-height:1.58}
}
@media(prefers-reduced-motion:reduce){.prom-gallery img{transition:none}}
