
/* HOME PAGE — page-specific styles */
.hero{min-height:700px;height:700px}
.hero-slide{height:700px;min-height:700px;overflow:hidden;background:none!important;position:relative}
.hero-media{position:absolute;inset:0;overflow:hidden;background:var(--purple-dark);--hero-overlay:.38}.hero-media:after{content:"";position:absolute;inset:0;background:rgba(25,12,38,var(--hero-overlay));pointer-events:none;z-index:2}
.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transform:scale(1.04);transition:opacity .65s ease,transform 1.1s cubic-bezier(.2,.65,.25,1)}
.hero-media img.is-visible{opacity:1;transform:scale(1)}
.hero-slide:before{z-index:1}
.hero-content{z-index:3;opacity:1}
.hero-content.hero-text-enter .eyebrow,.hero-content.hero-text-enter h1,.hero-content.hero-text-enter .hero-copy,.hero-content.hero-text-enter .hero-actions{animation:heroTextIn .7s cubic-bezier(.2,.7,.2,1) both}
.hero-content.hero-text-enter h1{animation-delay:.07s}.hero-content.hero-text-enter .hero-copy{animation-delay:.14s}.hero-content.hero-text-enter .hero-actions{animation-delay:.21s}
.hero-media img.hero-image-enter{animation:heroImageIn 1s cubic-bezier(.2,.7,.2,1) both}
@keyframes heroTextIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes heroImageIn{from{opacity:0;transform:scale(1.075)}to{opacity:1;transform:scale(1)}}
.hero-progress{height:3px}

.home-gallery{background:#fff}
.home-gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:28px}
.home-gallery-card{border:1px solid var(--line);border-radius:15px;overflow:hidden;background:#fff;cursor:pointer;box-shadow:0 8px 24px rgba(53,32,80,.06);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.home-gallery-card:hover{transform:translateY(-5px);box-shadow:0 18px 35px rgba(53,32,80,.12);border-color:#d8c9e5}
.home-gallery-card .home-gallery-image{height:210px;overflow:hidden;background:var(--soft)}
.home-gallery-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.home-gallery-card:hover img{transform:scale(1.05)}
.home-gallery-body{padding:16px 17px 18px}
.home-gallery-body h3{font-size:17px;margin:9px 0 5px}
.home-gallery-body p{margin:0;color:var(--muted);font-size:12px;line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.home-gallery-more{display:flex;justify-content:center;margin-top:28px}

.partner-logo-img{width:100%;height:100%;object-fit:contain;padding:16px 22px;display:block}
.logo-card{padding:0;overflow:hidden}

.home-cta{position:relative;overflow:hidden;min-height:340px;display:flex;align-items:center;background:var(--purple-dark);border-radius:22px;padding:55px 60px;color:#fff}
.home-cta:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(53,32,80,.94),rgba(53,32,80,.72),rgba(53,32,80,.38));z-index:1}
.home-cta-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transform:scale(1.02)}
.home-cta-content{position:relative;z-index:2;max-width:780px}
.home-cta-content h2{color:#fff}
.home-cta-content p{color:#f0eaf4}
.home-cta .eyebrow{color:var(--orange)}
.home-cta .btn.primary{background:var(--orange);color:var(--purple-dark)}
.home-cta .btn.primary:hover{background:#ffb632}

.gallery-modal{position:fixed;inset:0;background:rgba(20,12,29,.88);display:none;align-items:center;justify-content:center;padding:22px;z-index:120}
.gallery-modal.open{display:flex}
.gallery-modal-box{width:min(1040px,100%);max-height:min(90vh,850px);background:#fff;border-radius:18px;overflow:hidden;position:relative;display:grid;grid-template-columns:1.35fr .65fr;box-shadow:0 30px 90px rgba(0,0,0,.45)}
.gallery-modal-media{background:#111;min-height:420px;display:flex;align-items:center;justify-content:center}
.gallery-modal-media img{width:100%;height:100%;max-height:78vh;object-fit:contain;display:block}
.gallery-modal-copy{padding:35px 32px;display:flex;flex-direction:column;justify-content:center}
.gallery-modal-copy .tag{align-self:flex-start}
.gallery-modal-copy h3{font-size:30px;margin:14px 0 12px}
.gallery-modal-copy p{color:var(--muted);font-size:14px;line-height:1.75}
.gallery-modal-close{position:absolute;right:12px;top:12px;width:40px;height:40px;border:0;border-radius:50%;background:#fff;color:var(--purple);font-size:24px;line-height:1;cursor:pointer;z-index:3;box-shadow:0 5px 18px rgba(0,0,0,.18)}
.gallery-modal-close:hover{background:var(--orange)}
@media(max-width:1050px){.home-gallery-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){
 .hero,.hero-slide{height:620px;min-height:620px}
 .hero-content{padding:80px 0}
 .home-gallery-grid{grid-template-columns:repeat(2,1fr)}
 .home-gallery-card .home-gallery-image{height:180px}
 .home-cta{min-height:390px;padding:40px 28px;border-radius:18px}
 .gallery-modal-box{grid-template-columns:1fr;max-height:92vh;overflow:auto}
 .gallery-modal-media{min-height:260px;height:42vh}
 .gallery-modal-copy{padding:25px 22px 30px}
 .gallery-modal-copy h3{font-size:25px}
}
@media(max-width:480px){.home-gallery-grid{grid-template-columns:1fr}.home-gallery-card .home-gallery-image{height:210px}}
body.modal-open{overflow:hidden}
.home-gallery-card:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
@media(max-width:760px){.home-gallery-card{cursor:pointer}}

.work-card .icon svg{width:28px;height:28px;display:block;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.work-card .work-view{margin-top:14px;border:0;background:none;color:var(--purple);font:inherit;font-weight:700;font-size:12px;cursor:pointer;padding:0}.work-card .work-view:hover{color:var(--orange)}
.work-modal{position:fixed;inset:0;background:rgba(20,12,29,.82);display:none;align-items:center;justify-content:center;padding:22px;z-index:125}.work-modal.open{display:flex}.work-modal-box{width:min(760px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:18px;padding:36px;position:relative;box-shadow:0 30px 90px rgba(0,0,0,.45)}.work-modal-close{position:absolute;right:12px;top:12px;width:40px;height:40px;border:0;border-radius:50%;background:#fff;color:var(--purple);font-size:24px;cursor:pointer;box-shadow:0 5px 18px rgba(0,0,0,.15)}.work-modal-description{color:var(--muted);font-size:14px;line-height:1.8;white-space:pre-line}.modal{position:fixed;inset:0;background:rgba(20,12,29,.88);display:none;align-items:center;justify-content:center;padding:22px;z-index:130}.modal.open{display:flex}.modal-box{position:relative;width:min(1050px,100%);background:#111;border-radius:18px;overflow:hidden;box-shadow:0 30px 100px rgba(0,0,0,.55);padding:0}.modal-close{position:absolute;right:12px;top:12px;width:40px;height:40px;border:0;border-radius:50%;background:#fff;color:var(--purple);font-size:24px;line-height:1;cursor:pointer;z-index:2}.modal-close:hover{background:var(--orange)}
