:root {
    --ink:#17131a;
    --muted:#77717c;
    --purple:#3a203f;
    --purple2:#6f286d;
    --pink:#e8a0c9;
    --paper:#f7f5f6;
    --white:#fff;
    --line:rgba(35,22,38,.12);
    --font:'DM Sans',sans-serif;
    --display:'Space Grotesk',sans-serif
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth
}
body {
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:var(--font);
    font-size:15px;
    line-height:1.6
}
a {
    color:inherit;
    text-decoration:none
}
img {
    display:block;
    max-width:100%
}
.wrap {
    width:min(1200px,calc(100% - 9vw));
    margin-inline:auto
}
.section-pad {
    padding:100px 0
}
.hero {
    min-height:680px;
    color:#fff;
    background:radial-gradient(ellipse at 80% 30%,rgba(168,53,128,.62),transparent 40%),linear-gradient(115deg,#28142f 0%,#51234f 54%,#822d76 100%);
    position:relative;
    overflow:hidden
}
.hero:after {
    content:"";
    position:absolute;
    inset:0;
    background-image:linear-gradient(120deg,transparent 70%,rgba(255,255,255,.035));
    pointer-events:none
}
.nav {
    height:92px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    position:relative;
    z-index:5
}
.brand {
    font:700 25px var(--display);
    letter-spacing:-1.6px;
    color:inherit
}
.brand-dot {
    color:#f1a4d0
}
.nav-links {
    display:flex;
    align-items:center;
    gap:34px;
    font-size:11px;
    letter-spacing:.06em;
    text-transform:uppercase
}
.nav-links>a:not(.nav-cta) {
    opacity:.78;
    transition:opacity .2s
}
.nav-links>a:hover {
    opacity:1
}
.nav-cta {
    border:1px solid rgba(255,255,255,.5);
    border-radius:30px;
    padding:10px 18px
}
.nav-cta span {
    margin-left:10px
}
.menu-toggle {
    display:none
}
.hero-main {
    min-height:505px;
    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:center;
    gap:24px;
    padding:20px 0 55px;
    position:relative;
    z-index:1
}
.hero-copy {
    max-width:560px
}
.eyebrow {
    font:600 10px var(--display);
    letter-spacing:.17em;
    text-transform:uppercase;
    color:#9a4e88;
    display:block;
    margin-bottom:15px
}
.eyebrow-light {
    color:#e8a6d1
}
.eyebrow-pink {
    color:#f0a5d0
}
.hero h1 {
    font:500 clamp(38px,4.4vw,64px)/1.03 var(--display);
    letter-spacing:-.055em;
    max-width:650px;
    margin:0 0 24px
}
.hero-copy p {
    font-size:15px;
    max-width:450px;
    color:rgba(255,255,255,.76);
    line-height:1.8;
    margin:0 0 30px
}
.button-row {
    display:flex;
    gap:12px;
    flex-wrap:wrap
}
.btn {
    min-height:45px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:22px;
    padding:0 20px;
    border-radius:28px;
    font-size:11px;
    font-weight:700;
    letter-spacing:.02em;
    transition:transform .2s,background .2s
}
.btn:hover {
    transform:translateY(-2px)
}
.btn-outline {
    border:1px solid rgba(255,255,255,.58);
    color:#fff
}
.btn-white {
    background:#fff;
    color:#211526
}
.hero-visual {
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:0
}
.hero-visual img {
    position:relative;
    z-index:1;
    width:115%;
    max-width:660px;
    filter:drop-shadow(0 35px 40px rgba(10,0,20,.22));
    transform:rotate(-2deg)
}
.visual-glow {
    position:absolute;
    width:65%;
    height:70%;
    background:#e56bbd;
    filter:blur(90px);
    opacity:.22
}
.hero-bottom {
    position:absolute;
    bottom:0;
    left:4.5%;
    right:4.5%;
    height:54px;
    border-top:1px solid rgba(255,255,255,.18);
    display:flex;
    align-items:center;
    justify-content:space-between;
    color:rgba(255,255,255,.55);
    font-size:9px;
    letter-spacing:.13em;
    text-transform:uppercase
}
.scroll-cue b {
    font-size:15px;
    color:#fff;
    margin-left:10px
}
.intro {
    text-align:center;
    max-width:1100px;
    margin:auto;
    padding-inline:7vw
}
.intro h2,.section-heading h2,.knowledge h2 {
    font:500 clamp(30px,3.2vw,44px)/1.15 var(--display);
    letter-spacing:-.05em;
    margin:0 auto 22px
}
.intro h2 em,.section-heading h2 em,.knowledge h2 em,.feature-card h3 em,.download-cta h2 em {
    font-style:normal;
    color:#b34d94
}
.intro>p {
    max-width:930px;
    margin:0 auto 28px;
    color:#6f6872;
    font-size:13px;
    line-height:1.9
}
.pill-link {
    display:inline-flex;
    gap:24px;
    align-items:center;
    border:1px solid #d3cbd5;
    padding:10px 22px;
    border-radius:30px;
    font-size:11px
}
.features-dark {
    background:#101011;
    color:#fff;
    padding-top:85px;
    padding-bottom:110px
}
.section-heading {
    text-align:center;
    max-width:850px;
    margin:0 auto 48px;
    padding-inline:5vw
}
.section-heading h2 {
    margin-bottom:16px
}
.section-heading p {
    font-size:13px;
    line-height:1.8;
    color:#77717c;
    margin:0 auto;
    max-width:760px
}
.light-heading h2 {
    color:#fff
}
.light-heading h2 em {
    color:#d68ab8
}
.light-heading p {
    color:#a39ca6
}
.stats {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:12px;
    margin-bottom:36px
}
.stat {
    background:#1d1c1f;
    border:1px solid rgba(255,255,255,.06);
    padding:22px 24px;
    min-height:120px;
    border-radius:3px
}
.stat span {
    font:600 9px var(--display);
    letter-spacing:.13em;
    color:#d68ab8;
    display:block;
    margin-bottom:9px
}
.stat strong {
    display:block;
    font:600 clamp(20px,2.1vw,29px) var(--display);
    letter-spacing:-.04em;
    margin-bottom:4px
}
.stat small {
    font-size:10px;
    color:#a6a0a9
}
.feature-stack {
    display:grid;
    gap:12px;
    max-width:1040px
}
.feature-card {
    background:#fbf7fa;
    color:var(--ink);
    border-radius:5px;
    min-height:205px;
    padding:28px 34px;
    display:grid;
    grid-template-columns:1.1fr .9fr;
    align-items:center;
    gap:30px;
    overflow:hidden
}
.feature-copy .eyebrow {
    font-size:9px;
    margin-bottom:8px
}
.feature-card h3 {
    font:500 clamp(24px,2.6vw,34px)/1.08 var(--display);
    letter-spacing:-.045em;
    margin:0 0 12px
}
.feature-card p {
    font-size:12px;
    line-height:1.7;
    color:#6c6570;
    max-width:470px;
    margin:0 0 16px
}
.tags {
    display:flex;
    gap:7px 16px;
    flex-wrap:wrap
}
.tags span {
    font-size:9px;
    color:#766e78
}
.tags span:before {
    content:'↗';
    font-size:10px;
    color:#c36ba7;
    margin-right:6px
}
.feature-image {
    height:150px;
    background:#eee1ee;
    border-radius:3px;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden
}
.feature-image img {
    width:100%;
    height:100%;
    object-fit:cover
}
.feature-image-blue {
    background:#d8d7d9
}
.feature-image-blue img {
    object-fit:contain
}
.events {
    background:#f8f6f7
}
.events .section-heading {
    margin-bottom:38px
}
.event-feature {
    display:grid;
    grid-template-columns:1fr 1.2fr;
    gap:0;
    min-height:330px;
    background:#eeeaee;
    border-radius:5px;
    overflow:hidden;
    position:relative
}
.event-photo {
    position:relative;
    min-height:330px;
    background:#d9d0d8
}
.event-photo img {
    width:100%;
    height:100%;
    position:absolute;
    inset:0;
    object-fit:cover
}
.photo-label {
    position:absolute;
    bottom:18px;
    left:20px;
    font:600 9px var(--display);
    letter-spacing:.15em;
    color:white;
    text-shadow:0 2px 10px #000
}
.event-info {
    padding:42px 42px 28px;
    position:relative;
    display:flex;
    flex-direction:column
}
.event-meta {
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    font:600 9px var(--display);
    letter-spacing:.1em;
    color:#a74e8e;
    margin-bottom:24px
}
.event-meta span+span {
    color:#8c858f
}
.event-info h3 {
    font:600 clamp(24px,2.6vw,35px)/1.1 var(--display);
    letter-spacing:-.04em;
    margin:0 0 14px
}
.event-info p {
    font-size:12px;
    line-height:1.9;
    color:#6f6872;
    margin:0 0 24px
}
.event-bottom {
    margin-top:auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px
}
.slider-dots {
    display:flex;
    gap:7px
}
.dot {
    width:20px;
    height:3px;
    padding:0;
    border:0;
    background:#d2c4d1;
    cursor:pointer
}
.dot.active {
    background:#bd5899
}
.dark-link {
    background:#171319;
    color:#fff;
    padding:10px 17px;
    border-radius:25px;
    font-size:10px
}
.dark-link span {
    margin-left:12px
}
.event-count {
    position:absolute;
    top:28px;
    right:28px;
    font:600 10px var(--display);
    letter-spacing:.12em;
    color:#b34d94
}
.benefits {
    background:#2b1a30;
    color:#fff;
    padding:62px 0
}
.benefit-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:34px
}
.benefit-grid article {
    border-top:1px solid rgba(255,255,255,.18);
    padding-top:18px
}
.benefit-grid .eyebrow {
    margin-bottom:12px
}
.benefit-grid h3 {
    font:500 16px/1.25 var(--display);
    margin:0 0 10px
}
.benefit-grid p {
    font-size:11px;
    line-height:1.8;
    color:#bdb2c1;
    margin:0
}
.milestones {
    background:#f8f6f7
}
.milestones .section-heading {
    margin-bottom:55px
}
.timeline {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px 90px;
    position:relative
}
.timeline:before {
    content:"";
    position:absolute;
    left:50%;
    top:0;
    bottom:0;
    width:1px;
    background:#e7dbe5
}
.timeline-card {
    display:flex;
    gap:18px;
    align-items:flex-start;
    background:#fff;
    padding:25px 27px;
    position:relative;
    border:1px solid #f0e9ef;
    min-height:150px
}
.timeline-card:nth-child(even) {
    transform:translateY(35px)
}
.timeline-number {
    display:flex;
    align-items:center;
    justify-content:center;
    width:32px;
    height:32px;
    flex:0 0 32px;
    border-radius:50%;
    background:#f8e6f1;
    color:#ad4e8e;
    font:600 11px var(--display)
}
.timeline-card .eyebrow {
    font-size:8px;
    margin-bottom:8px
}
.timeline-card h3 {
    font:600 17px/1.25 var(--display);
    margin:0 0 8px
}
.timeline-card p {
    font-size:11px;
    line-height:1.8;
    color:#77717c;
    margin:0
}
.knowledge {
    padding-bottom:110px
}
.knowledge-heading {
    display:flex;
    align-items:end;
    justify-content:space-between;
    margin-bottom:28px
}
.knowledge h2 {
    margin:0
}
.text-link {
    font-size:11px;
    border-bottom:1px solid #b34d94;
    padding-bottom:6px
}
.text-link span {
    margin-left:10px;
    color:#b34d94
}
.article-grid {
    display:grid;
    grid-template-columns:1.1fr 1fr .55fr;
    gap:14px
}
.article-card {
    height:310px;
    position:relative;
    overflow:hidden;
    background:#382b3a;
    color:#fff;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding:24px;
    border-radius:4px
}
.article-card img {
    position:absolute;
    width:100%;
    height:100%;
    inset:0;
    object-fit:cover;
    transition:transform .5s
}
.article-card:hover img {
    transform:scale(1.04)
}
.article-shade {
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,rgba(13,8,15,.02) 15%,rgba(13,8,15,.78) 100%)
}
.article-kicker,.article-card h3,.article-arrow {
    position:relative;
    z-index:1
}
.article-kicker {
    font:600 9px var(--display);
    letter-spacing:.13em;
    color:#efb4d9;
    margin-bottom:10px
}
.article-card h3 {
    font:500 23px/1.2 var(--display);
    letter-spacing:-.03em;
    margin:0;
    max-width:380px
}
.article-arrow {
    position:absolute;
    right:22px;
    bottom:22px;
    width:32px;
    height:32px;
    border:1px solid rgba(255,255,255,.55);
    border-radius:50%;
    display:grid;
    place-items:center
}
.article-third {
    min-width:0
}
.article-third h3 {
    font-size:18px
}
.faq {
    background:#f0edf0
}
.faq .section-heading {
    margin-bottom:38px
}
.faq .section-heading h2 {
    max-width:800px
}
.faq-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px
}
.faq-column {
    display:grid;
    align-content:start;
    gap:10px
}
.faq-item {
    background:#fff;
    border:1px solid #e8e0e8
}
.faq-item button {
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    text-align:left;
    background:transparent;
    border:0;
    padding:17px 18px;
    color:#302833;
    font:600 11px var(--font);
    cursor:pointer
}
.faq-item button span {
    font:400 20px var(--font);
    color:#a64d8a;
    transition:transform .2s
}
.faq-item button[aria-expanded="true"] span {
    transform:rotate(45deg)
}
.faq-answer {
    display:grid;
    grid-template-rows:0fr;
    transition:grid-template-rows .25s ease
}
.faq-answer p {
    overflow:hidden;
    margin:0;
    padding:0 18px;
    color:#766f79;
    font-size:11px;
    line-height:1.8
}
.faq-item.open .faq-answer {
    grid-template-rows:1fr
}
.faq-item.open .faq-answer p {
    padding-bottom:18px
}
.download-cta {
    background:linear-gradient(115deg,#25152d,#5c285a);
    color:#fff;
    padding:72px 0
}
.download-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px
}
.download-cta h2 {
    font:500 clamp(35px,4vw,54px)/1.02 var(--display);
    letter-spacing:-.05em;
    margin:0 0 15px
}
.download-cta h2 em {
    color:#f0a5d0
}
.download-cta p {
    color:#c9bdcb;
    font-size:13px;
    margin:0
}
.download-cta .btn {
    flex-shrink:0
}
.footer {
    background:#111;
    color:#fff;
    padding:60px 0 22px
}
.footer-main {
    display:grid;
    grid-template-columns:2fr 1fr 1fr 1.3fr;
    gap:45px;
    padding-bottom:48px
}
.footer-brand p {
    max-width:260px;
    color:#aaa1ac;
    font-size:11px;
    line-height:1.8;
    margin:18px 0 22px
}
.socials {
    display:flex;
    gap:8px
}
.socials a {
    width:30px;
    height:30px;
    border:1px solid #4a414b;
    border-radius:50%;
    display:grid;
    place-items:center;
    font-size:10px
}
.footer-col {
    display:flex;
    flex-direction:column;
    gap:12px
}
.footer-col h4 {
    font:600 11px var(--display);
    margin:6px 0 7px
}
.footer-col a {
    font-size:11px;
    color:#aaa1ac;
    transition:color .2s
}
.footer-col a:hover {
    color:#fff
}
.footer-bottom {
    border-top:1px solid #302a32;
    padding-top:18px;
    display:flex;
    justify-content:space-between;
    color:#817985;
    font-size:10px
}
.footer-bottom a {
    color:#bfb5c2
}
@media(max-width:900px) {
    .hero {
        min-height:610px
    }
    .hero-main {
        min-height:460px;
        grid-template-columns:1.05fr .95fr
    }
    .hero h1 {
        font-size:clamp(34px,5.2vw,50px)
    }
    .nav-links {
        gap:17px
    }
    .stats {
        grid-template-columns:repeat(2,1fr)
    }
    .feature-card {
        padding:24px;
        gap:20px
    }
    .event-info {
        padding:32px 28px 24px
    }
    .benefit-grid {
        grid-template-columns:repeat(2,1fr)
    }
    .timeline {
        gap:20px 45px
    }
    .article-card {
        height:260px
    }
    .footer-main {
        gap:28px
    }
}
@media(max-width:640px) {
    body {
        font-size:14px
    }
    .wrap {
        width:calc(100% - 36px)
    }
    .section-pad {
        padding:70px 0
    }
    .hero {
        min-height:auto
    }
    .nav {
        height:74px
    }
    .brand {
        font-size:23px
    }
    .menu-toggle {
        display:flex;
        width:40px;
        height:40px;
        border:1px solid rgba(255,255,255,.4);
        border-radius:50%;
        background:transparent;
        align-items:center;
        justify-content:center;
        flex-direction:column;
        gap:5px;
        z-index:8
    }
    .menu-toggle span {
        width:15px;
        height:1px;
        background:#fff
    }
    .nav-links {
        position:absolute;
        top:64px;
        left:0;
        right:0;
        padding:18px;
        background:#29172f;
        border:1px solid rgba(255,255,255,.12);
        border-radius:8px;
        display:none;
        flex-direction:column;
        align-items:stretch;
        gap:0
    }
    .nav-links.open {
        display:flex
    }
    .nav-links>a {
        padding:12px 8px
    }
    .nav-cta {
        text-align:center;
        margin-top:8px
    }
    .hero-main {
        display:flex;
        flex-direction:column;
        align-items:stretch;
        padding:38px 0 45px;
        gap:5px
    }
    .hero-copy {
        max-width:none
    }
    .hero h1 {
        font-size:clamp(39px,10vw,54px);
        max-width:540px
    }
    .hero-copy p {
        font-size:13px
    }
    .hero-visual {
        min-height:200px;
        margin-top:5px
    }
    .hero-visual img {
        width:110%;
        max-width:480px
    }
    .hero-bottom {
        left:18px;
        right:18px;
        height:42px;
        font-size:8px
    }
    .hero-bottom>span:first-child {
        display:none
    }
    .hero-bottom .scroll-cue {
        margin:auto
    }
    .intro {
        padding-inline:22px
    }
    .intro h2,.section-heading h2,.knowledge h2 {
        font-size:32px
    }
    .intro>p {
        font-size:12px
    }
    .features-dark {
        padding-top:70px;
        padding-bottom:75px
    }
    .section-heading {
        padding-inline:18px;
        margin-bottom:34px
    }
    .section-heading p {
        font-size:12px
    }
    .stats {
        grid-template-columns:1fr 1fr;
        gap:8px
    }
    .stat {
        padding:16px 14px;
        min-height:110px
    }
    .stat strong {
        font-size:22px
    }
    .stat small {
        font-size:9px
    }
    .feature-card {
        grid-template-columns:1fr;
        padding:22px;
        gap:18px
    }
    .feature-card h3 {
        font-size:29px
    }
    .feature-card p {
        font-size:12px
    }
    .feature-image {
        height:175px;
        grid-row:1
    }
    .feature-copy {
        grid-row:2
    }
    .event-feature {
        grid-template-columns:1fr
    }
    .event-photo {
        min-height:230px
    }
    .event-info {
        padding:28px 22px 24px;
        min-height:310px
    }
    .event-count {
        top:25px;
        right:20px
    }
    .event-info p {
        font-size:11px
    }
    .event-meta {
        padding-right:50px;
        gap:7px
    }
    .benefits {
        padding:48px 0
    }
    .benefit-grid {
        grid-template-columns:1fr 1fr;
        gap:26px 20px
    }
    .benefit-grid h3 {
        font-size:14px
    }
    .benefit-grid p {
        font-size:10px
    }
    .timeline {
        grid-template-columns:1fr;
        gap:12px
    }
    .timeline:before {
        left:16px
    }
    .timeline-card,.timeline-card:nth-child(even) {
        transform:none;
        margin-left:26px;
        padding:21px 18px;
        min-height:0
    }
    .timeline-number {
        position:absolute;
        left:-26px;
        top:20px;
        width:22px;
        height:22px;
        font-size:9px
    }
    .milestones .section-heading {
        margin-bottom:35px
    }
    .knowledge-heading {
        align-items:start;
        flex-direction:column;
        gap:18px
    }
    .article-grid {
        grid-template-columns:1fr 1fr;
        gap:10px
    }
    .article-card {
        height:220px;
        padding:16px
    }
    .article-large {
        grid-column:1/-1;
        height:250px
    }
    .article-card h3 {
        font-size:18px
    }
    .article-third h3 {
        font-size:16px
    }
    .article-kicker {
        font-size:8px
    }
    .article-arrow {
        width:27px;
        height:27px;
        right:14px;
        bottom:14px
    }
    .faq-grid {
        grid-template-columns:1fr;
        gap:10px
    }
    .faq-item button {
        padding:17px
    }
    .download-cta {
        padding:55px 0
    }
    .download-inner {
        align-items:flex-start;
        flex-direction:column
    }
    .download-cta h2 {
        font-size:43px
    }
    .footer {
        padding-top:48px
    }
    .footer-main {
        grid-template-columns:1fr 1fr;
        gap:34px 24px
    }
    .footer-brand {
        grid-column:1/-1
    }
    .footer-bottom {
        gap:14px;
        flex-wrap:wrap;
        font-size:9px
    }
}
@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }
    *,*:before,*:after {
        transition:none!important
    }
}


/* Contact page — shares the existing Nelieca navigation and footer styles. */
.contact-nav {
    height: 92px;
    color: #fff;
    background: linear-gradient(115deg, #28142f 0%, #51234f 54%, #822d76 100%);
    width: 100%;
    padding-inline: max(4.5vw, calc((100% - 1200px) / 2));
}
.contact-nav .nav-links {
    gap: clamp(12px, 2vw, 28px);
}
.contact-page {
    padding: 72px 0 88px;
    background: var(--paper);
}
.contact-section {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, .9fr);
    align-items: center;
    gap: clamp(32px, 6vw, 78px);
}
.contact-copy h1 {
    margin: 8px 0 16px;
    font: 500 clamp(32px, 4vw, 50px)/1.1 var(--display);
    letter-spacing: -.045em;
}
.contact-copy h1 em {
    color: var(--purple2);
    font-style: normal;
}
.contact-copy > p {
    color: var(--muted);
    line-height: 1.8;
}
.contact-form {
    display: grid;
    gap: 16px;
    margin-top: 26px;
}
.contact-field {
    display: grid;
    gap: 7px;
}
.contact-field label,
.contact-roles legend {
    font-size: 13px;
    font-weight: 700;
}
.contact-field input {
    width: 100%;
    min-height: 48px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    font: inherit;
}
.contact-field input:focus {
    outline: 2px solid var(--pink);
    outline-offset: 2px;
}
.phone-input {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-left: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}
.phone-input span {
    white-space: nowrap;
    color: var(--muted);
    font-size: 13px;
}
.phone-input input {
    border: 0;
    border-left: 1px solid var(--line);
    border-radius: 0 8px 8px 0;
}
.contact-roles {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    border: 0;
}
.contact-roles legend {
    grid-column: 1 / -1;
    margin-bottom: 2px;
}
.contact-role {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-height: 90px;
    padding: 15px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #fff;
    cursor: pointer;
}
.contact-role input {
    margin-top: 5px;
    accent-color: var(--purple2);
}
.contact-role span {
    display: grid;
    gap: 5px;
}
.contact-role strong {
    font-size: 14px;
}
.contact-role small {
    color: var(--muted);
    font-size: 11px;
    line-height: 1.5;
}
.contact-submit {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    min-height: 50px;
    padding: 13px 18px;
    border: 0;
    border-radius: 8px;
    background: var(--purple);
    color: #fff;
    font: 600 14px var(--font);
    cursor: pointer;
}
.contact-submit:hover {
    background: var(--purple2);
}
.contact-note {
    margin: -7px 0 0;
    color: var(--muted);
    font-size: 12px;
}
.contact-visual {
    position: relative;
    min-height: 520px;
    overflow: hidden;
    border-radius: 16px;
    background: var(--purple);
}
.contact-visual img {
    width: 100%;
    height: 520px;
    object-fit: cover;
    filter: brightness(.65);
}
.contact-visual p {
    position: absolute;
    right: 28px;
    bottom: 24px;
    left: 28px;
    margin: 0;
    color: #fff;
    font: 500 clamp(23px, 2.5vw, 34px)/1.15 var(--display);
    letter-spacing: -.03em;
}
@media (max-width: 800px) {
    .contact-nav {
        padding-inline: 5vw;
    }
    .contact-section {
        grid-template-columns: 1fr;
    }
    .contact-visual,
    .contact-visual img {
        min-height: 360px;
        height: 360px;
    }
}
@media (max-width: 520px) {
    .contact-page {
        padding: 44px 0 60px;
    }
    .contact-roles {
        grid-template-columns: 1fr;
    }
    .contact-visual,
    .contact-visual img {
        min-height: 300px;
        height: 300px;
    }
}

.button-row {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 32px;
    margin-top: 24px;
    flex-wrap: wrap;
}

.button-row .explore-link,
.button-row .download-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 40px;
    padding: 0;
    margin: 0;
    line-height: 1.4;
    text-decoration: none;
    vertical-align: middle;
}

.button-row .explore-link {
    color: #fff;
    font-size: 16px;
    font-weight: 400;
}

.button-row .download-link {
    color: #fff;
    font-size: 14px;
    font-weight: 600;
}

.button-row .arrow {
    display: inline-block;
    font-size: 18px;
    line-height: 1;
}

/* Keep both links aligned on smaller screens */
@media (max-width: 600px) {
    .button-row {
        gap: 20px;
    }
}

.event-photo img,
.event-info h3,
.event-info > p {
    transition: opacity 0.25s ease;
}

.slider-dots .dot {
    cursor: pointer;
}

.slider-dots .dot.active {
    opacity: 1;
}
