:root {
    --night:#111c4c;
    --deep:#20245c;
    --violet:#53358f;
    --pink:#fb447e;
    --cyan:#12dce3;
    --paper:#f6f7fc;
    --ink:#17224a;
    --sub:#53617b
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth
}
body {
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font:16px/1.6 system-ui,-apple-system,'Segoe UI',Arial,sans-serif
}
a {
    color:inherit;
    text-decoration:none
}
button,a {
    touch-action:manipulation
}
a:focus-visible {
    outline:3px solid var(--cyan);
    outline-offset:4px
}
.wrap {
    max-width:1190px;
    margin-inline:auto;
    padding-inline:24px
}
.site-header {
    background:rgba(16,25,70,.97);
    color:white;
    border-bottom:1px solid rgba(255,255,255,.15)
}
.nav {
    min-height:74px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px
}
.logo {
    font-size:17px;
    font-weight:850;
    letter-spacing:.3px
}
.logo b {
    color:var(--pink)
}
.menu {
    display:flex;
    align-items:center;
    gap:22px;
    flex-wrap:wrap;
    font-size:14px;
    font-weight:650
}
.menu a:hover {
    color:var(--cyan)
}
.pill {
    border-radius:999px;
    border:1px solid rgba(255,255,255,.25);
    padding:9px 15px;
    background:rgba(255,255,255,.05)
}
.hero {
    position:relative;
    overflow:hidden;
    background:linear-gradient(119deg,#55318e 0%,#303e96 42%,#075996 100%);
    color:#fff;
    padding:58px 0 72px
}
.hero:before {
    content:'';
    position:absolute;
    inset:0;
    background:radial-gradient(circle at 30% 8%,rgba(251,68,126,.25),transparent 40%),radial-gradient(circle at 85% 70%,rgba(10,233,230,.18),transparent 33%);
    pointer-events:none
}
.hero .wrap {
    position:relative
}
.eyebrow {
    font-size:13px;
    text-transform:uppercase;
    font-weight:900;
    letter-spacing:.19em;
    color:var(--cyan)
}
.hero h1 {
    font-size:clamp(34px,5vw,64px);
    line-height:1.08;
    margin:16px 0 18px;
    letter-spacing:-.035em;
    max-width:780px
}
.hero h1 em {
    font-style:normal;
    color:var(--cyan)
}
.hero p {
    max-width:670px;
    font-size:clamp(16px,1.6vw,19px);
    color:#e6efff;
    margin:0 0 26px
}
.hero-actions {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:14px
}
.btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    border-radius:13px;
    font-size:16px;
    font-weight:850;
    padding:15px 24px;
    min-height:54px;
    transition:transform .2s,box-shadow .2s
}
.btn:hover {
    transform:translateY(-2px)
}
.btn-primary {
    color:#142356;
    background:linear-gradient(110deg,#19e7ee,#7cf3ff);
    box-shadow:0 10px 25px rgba(0,221,232,.2)
}
.btn-ghost {
    border:1px solid #a9c4ec;
    color:white
}
.hero-banner {
    display:block;
    margin-top:34px;
    max-width:100%;
    width:980px;
    overflow:hidden;
    border-radius:17px;
    box-shadow:0 18px 45px rgba(8,15,51,.27);
    border:1px solid rgba(255,255,255,.25)
}
.hero-banner img {
    display:block;
    width:100%;
    height:auto
}
.hero-note {
    color:#eaf5ff;
    font-size:13px;
    margin-top:15px
}
.hero-note strong {
    color:var(--cyan)
}
.section {
    padding:78px 0
}
.section-head {
    max-width:790px;
    margin-bottom:35px
}
.kicker {
    text-transform:uppercase;
    font-weight:900;
    letter-spacing:.17em;
    color:#7348b6;
    font-size:12px
}
.section h2 {
    font-size:clamp(28px,3.5vw,43px);
    line-height:1.15;
    letter-spacing:-.03em;
    margin:8px 0 18px
}
.section-head p {
    font-size:17px;
    color:var(--sub);
    margin:0
}
.intro {
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:50px;
    align-items:center
}
.intro p {
    color:var(--sub)
}
.art-panel {
    min-height:400px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:28px;
    background:radial-gradient(ellipse at 50% 40%,#604195 0%,#252a70 58%,#192755 100%);
    overflow:hidden;
    padding:12px;
    box-shadow:0 15px 40px rgba(33,31,93,.12)
}
.art-panel img {
    display:block;
    width:100%;
    height:auto;
    max-height:480px;
    object-fit:contain
}
.stat-row {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin-top:24px
}
.stat {
    background:#fff;
    border:1px solid #e3e7f2;
    padding:16px;
    border-radius:13px
}
.stat strong {
    font-size:23px;
    color:#55318e;
    display:block
}
.stat span {
    font-size:13px;
    color:var(--sub)
}
.journey {
    background:#eef2fb
}
.journey-layout {
    display:grid;
    grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);
    gap:36px;
    align-items:start
}
.steps {
    list-style:none;
    margin:0;
    padding:0;
    display:grid;
    gap:11px
}
.steps li {
    display:flex;
    align-items:center;
    gap:15px;
    background:#fff;
    border-radius:13px;
    padding:13px 16px;
    font-weight:650;
    box-shadow:0 3px 10px rgba(18,28,70,.035)
}
.steps span {
    color:#ce2867;
    font-weight:900
}
.schedule {
    padding:28px;
    border-radius:20px;
    background:linear-gradient(155deg,#4b358e,#154e98);
    color:white;
    box-shadow:0 20px 40px rgba(33,37,89,.16)
}
.schedule h3 {
    font-size:22px;
    margin:0 0 10px
}
.schedule p {
    color:#e4ebff
}
.times {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin:20px 0
}
.times span {
    border:1px solid rgba(255,255,255,.25);
    border-radius:10px;
    text-align:center;
    padding:10px 4px;
    font-weight:850;
    font-size:20px
}
.areas {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px
}
.area {
    background:white;
    border:1px solid #e4e5f1;
    border-radius:17px;
    padding:23px;
    min-height:196px;
    box-shadow:0 4px 13px rgba(18,28,60,.035);
    transition:transform .2s,border .2s
}
.area:hover {
    transform:translateY(-3px);
    border-color:#b898e0
}
.area-num {
    font-weight:900;
    color:#e83174;
    font-size:13px
}
.area h3 {
    font-size:18px;
    line-height:1.25;
    margin:13px 0 8px
}
.area p {
    font-size:14px;
    color:var(--sub);
    margin:0
}
.cta {
    background:linear-gradient(105deg,#4b2d88 0%,#263b8d 60%,#0a6a9c 100%);
    color:white;
    padding:76px 0
}
.cta-panel {
    display:grid;
    grid-template-columns:1.3fr .7fr;
    align-items:center;
    gap:34px
}
.cta h2 {
    font-size:clamp(28px,3.6vw,46px);
    margin:10px 0;
    line-height:1.15
}
.cta p {
    color:#e0e8ff;
    max-width:650px
}
.cta-action {
    text-align:center
}
.cta-action .btn {
    width:100%
}
.cta small {
    display:block;
    color:#d2e6ff;
    margin-top:12px
}
.service {
    background:#fff
}
.service-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:20px
}
.service-card {
    padding:20px;
    border-left:3px solid var(--pink);
    background:#f7f8fd;
    border-radius:0 12px 12px 0
}
.service-card strong {
    display:block;
    color:#55318e;
    margin-bottom:9px
}
.service-card span {
    font-size:14px;
    color:var(--sub)
}
.footer {
    background:#111b48;
    color:#b9c9eb;
    padding:26px 0
}
.footer-inner {
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:12px
}
.footer strong {
    color:white
}
/* Adaptações para diferentes tamanhos de tela. */
@media(max-width:900px) {
    .intro,.journey-layout,.cta-panel {
        grid-template-columns:1fr
    }
    .areas {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
    .service-grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
    .art-panel {
        min-height:300px
    }
    .cta-action {
        text-align:left;
        max-width:360px
    }
}
@media(max-width:620px) {
    .wrap {
        padding-inline:18px
    }
    .nav {
        padding-block:16px
    }
    .menu {
        gap:12px
    }
    .menu a:not(.pill) {
        display:none
    }
    .hero {
        padding:42px 0 56px
    }
    .hero-banner {
        border-radius:11px
    }
    .section {
        padding:54px 0
    }
    .areas,.service-grid,.stat-row {
        grid-template-columns:1fr
    }
    .area {
        min-height:0
    }
    .art-panel {
        min-height:260px
    }
    .cta {
        padding:54px 0
    }
}
@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }
    *,*:before,*:after {
        transition:none!important
    }
}

/* Marca do evento: imagem aprovada, sem reconstrução com texto. */
.logo {
    display: inline-flex;
    align-items: center;
    line-height: 0;
    flex-shrink: 0;
}
.logo img {
    display: block;
    width: 118px;
    height: auto;
    max-height: 68px;
    object-fit: contain;
}

/* Dados de contato e ícones no quadro de serviço. */
.contact-methods {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.contact-method {
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--sub);
    font-size: 14px;
}
.contact-method svg {
    flex-shrink: 0;
    color: #57328e;
}
.contact-method a {
    color: inherit;
    text-decoration: none;
}
.contact-method a:hover {
    text-decoration: underline;
}
