/* Self-hosted Inter; license: assets/fonts/Inter-OFL.txt. */
@font-face {
    font-family:'Inter';
    font-style:normal;
    font-weight:400 700;
    font-display:swap;
    src:url('assets/fonts/inter-latin-variable.woff2') format('woff2');
    unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD
}
@font-face {
    font-family:'Inter';
    font-style:normal;
    font-weight:400 700;
    font-display:swap;
    src:url('assets/fonts/inter-latin-ext-variable.woff2') format('woff2');
    unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF
}

:root {
    --color-primary:#06b6d4;
    --color-primary-dark:#08788c;
    --color-text:#2e2e2e;
    --color-muted:#626b73;
    --color-silver:#a7b0ba;
    --color-background:#fff;
    --color-surface:#faf9f6;
    --color-line:#dce1e3;
    --font-family:'Inter',Arial,sans-serif;
    --font-heading:'Inter',Arial,sans-serif;
    --content-width:1280px;
    --content-gutter:5%;
    --section-padding:96px;
    --radius-sm:4px;
    --radius-md:8px;
    --shadow-sm:0 4px 16px rgb(46 46 46 / 4%);
    --motion-fast:.2s ease
}

*,*::before,*::after {
    box-sizing:border-box
}

html {
    scroll-behavior:smooth;
    scroll-padding-top:104px
}

body {
    margin:0;
    font-family:var(--font-family);
    color:var(--color-text);
    background:var(--color-background);
    font-size:16px;
    line-height:1.65
}

img,svg,video,canvas {
    display:block;
    max-width:100%
}

img,video {
    height:auto
}

a {
    color:inherit;
    text-decoration:none
}

button,input,textarea,select {
    font:inherit
}

button,a,input,select,textarea {
    -webkit-tap-highlight-color:transparent
}

button {
    cursor:pointer
}

button:disabled {
    cursor:default
}

button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
    outline:3px solid var(--color-primary-dark);
    outline-offset:4px
}

h1,h2,h3,p {
    margin:0
}

h1,h2,h3 {
    font-family:var(--font-heading);
    font-weight:500;
    line-height:1.12
}

h1 {
    font-size:clamp(36px,4.2vw,64px);
    letter-spacing:-.05em
}

h2 {
    font-size:clamp(32px,3.2vw,48px);
    letter-spacing:-.04em
}

h3 {
    font-size:24px;
    letter-spacing:-.025em
}

p {
    color:var(--color-muted)
}

ul {
    padding:0;
    margin:0;
    list-style:none
}

[hidden] {
    display:none!important
}

.content-wrapper {
    position:relative;
    width:min(var(--content-width),calc(100% - var(--content-gutter)*2));
    margin:0 auto
}

.section {
    padding:var(--section-padding) 0
}

.split {
    display:flex;
    align-items:flex-start;
    gap:96px
}

.split>div,.split>form {
    flex:1;
    min-width:0
}

.section-copy h2 {
    margin-bottom:24px
}

.section-copy>p:not(.section-index) {
    max-width:560px
}

.section-index {
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.12em;
    color:var(--color-primary-dark);
    font-weight:600;
    margin-bottom:24px
}

.section-heading {
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:64px;
    margin-bottom:48px
}

.section-heading>div {
    max-width:680px
}

.section-heading>p {
    max-width:320px
}

.actions {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    align-items:center
}

.button {
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:20px;
    white-space:nowrap;
    font-size:14px;
    font-weight:600;
    padding:16px 24px;
    border:1px solid transparent;
    border-radius:var(--radius-sm);
    line-height:1.4;
    min-height:52px;
    transition:background var(--motion-fast),border-color var(--motion-fast)
}

.button--primary {
    background:var(--color-primary);
    color:var(--color-text)
}

.button--primary:hover {
    background:#28c5df
}

.button--secondary {
    border-color:var(--color-line);
    background:transparent;
    color:var(--color-text)
}

.button--secondary:hover {
    border-color:var(--color-text)
}

.button span {
    font-size:20px;
    line-height:1
}

.button__icon {
    width:20px;
    height:20px;
    flex-shrink:0
}

.button--small {
    background:var(--color-text);
    color:white;
    min-height:44px;
    padding:12px 20px;
    font-size:12px
}

.button--small:hover {
    background:#484848
}

.text-link {
    display:inline-flex;
    gap:20px;
    align-items:center;
    color:var(--color-primary-dark);
    font-weight:600;
    font-size:14px;
    border:0;
    padding:0;
    background:none;
    min-height:44px;
    text-align:left
}

.text-link:hover {
    text-decoration:underline;
    text-underline-offset:6px
}

.skip-link {
    position:fixed;
    top:-100px;
    left:16px;
    background:white;
    padding:12px;
    z-index:20
}

.skip-link:focus-visible {
    top:12px
}

.site-header {
    border-bottom:1px solid var(--color-line);
    background:white
}

.site-header__inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:32px;
    min-height:96px
}

.brand {
    display:block;
    width:208px;
    flex-shrink:0
}

.brand img {
    width:100%;
    height:auto
}

.navigation {
    display:flex;
    align-items:center;
    gap:28px;
    font-size:13px;
    font-weight:500
}

.navigation>a:not(.button):hover {
    color:var(--color-primary-dark)
}

.menu-toggle {
    display:none;
    background:white;
    border:1px solid var(--color-line);
    padding:8px 12px;
    border-radius:4px;
    min-height:44px
}

.sws-hero {
    position:relative;
    isolation:isolate;
    overflow:hidden;
    padding-top:96px;
    background:var(--color-surface)
}

.sws-hero__layout {
    display:flex;
    align-items:center;
    gap:64px;
    padding-bottom:96px
}

.sws-hero__copy {
    position:relative;
    z-index:3;
    flex:0 1 52%;
    max-width:640px;
    min-width:0
}

.sws-hero h1 {
    max-width:680px;
    text-wrap:balance
}

.sws-hero h1>span {
    color:var(--color-primary-dark)
}

.status-dot {
    display:inline-block;
    flex-shrink:0;
    width:8px;
    height:8px;
    background:var(--color-primary);
    border-radius:50%
}

.lead {
    font-size:17px;
    line-height:1.75;
    margin:24px 0 32px;
    max-width:580px
}

.benefit-list {
    margin:32px 0;
    padding-left:20px;
    list-style:disc;
    color:var(--color-text);
    font-size:14px
}

.benefit-list li {
    margin-bottom:16px
}

.benefit-list li::marker {
    color:var(--color-primary-dark)
}

.quiet {
    font-size:13px
}

.contact-form {
    border:1px solid var(--color-line);
    padding:32px;
    border-radius:8px;
    box-shadow:var(--shadow-sm)
}

.contact-form__heading {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin-bottom:12px
}

.contact-form h3 {
    font-size:22px
}

.prototype-label,.pending {
    font-size:10px;
    color:#59636b;
    text-transform:uppercase;
    letter-spacing:.06em;
    white-space:nowrap
}

.prototype-label {
    padding:4px 8px;
    background:#edf0f1;
    border-radius:4px
}

.form-note {
    font-size:12px;
    line-height:1.6
}

.contact-form>.form-note {
    margin-bottom:24px
}

.form-row {
    display:flex;
    gap:16px
}

.field {
    flex:1;
    min-width:0;
    display:flex;
    flex-direction:column;
    margin-bottom:16px
}

.field label {
    font-size:12px;
    font-weight:600;
    margin-bottom:8px
}

.field label span {
    color:var(--color-primary-dark)
}

input,select,textarea {
    border:1px solid #a7b0ba;
    border-radius:4px;
    background:white;
    color:var(--color-text);
    padding:12px;
    font-size:13px;
    width:100%;
    min-height:44px
}

input::placeholder,textarea::placeholder {
    color:#626b73
}

textarea {
    resize:vertical
}

input:user-invalid,select:user-invalid,textarea:user-invalid {
    border-color:#a32a2a;
    outline-color:#a32a2a
}

.contact-form__bottom {
    display:flex;
    align-items:center;
    gap:16px;
    flex-wrap:wrap
}

.form-feedback {
    margin-top:16px;
    padding:12px;
    background:#edf6f7;
    color:#36515a;
    font-size:13px
}

.sws-proof {
    background:var(--color-surface)
}

.sws-proof .section-heading {
    display:block
}

.sws-proof .section-heading>p {
    max-width:680px;
    margin-top:20px
}

.proof-list {
    margin-top:40px
}

.proof-item {
    display:flex;
    align-items:center;
    gap:48px
}

.proof-item--reverse {
    flex-direction:row-reverse
}

.proof-item + .proof-item {
    margin-top:64px
}

.proof-item__copy {
    flex:1;
    min-width:0
}

.proof-item h3 {
    font-size:clamp(28px,3vw,44px);
    margin-bottom:16px;
    text-wrap:balance
}

.proof-item p {
    font-size:16px;
    line-height:1.7;
    max-width:400px
}

.proof-item__thumbnail {
    position:relative;
    display:block;
    flex:0 1 58%;
    width:58%;
    min-width:0;
    overflow:hidden;
    border-radius:var(--radius-md);
    box-shadow:0 0 16px rgb(46 46 46 / 13.3%),0 12px 28px rgb(46 46 46 / 2%)
}

.proof-item__thumbnail img {
    display:block;
    width:100%;
    height:auto;
    transition:transform 280ms cubic-bezier(.2,0,0,1)
}

.proof-item__overlay {
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgb(46 46 46 / 56%);
    opacity:0;
    transition:opacity 220ms cubic-bezier(.2,0,0,1)
}

.proof-item__overlay>span {
    padding:16px 28px;
    border-radius:var(--radius-sm);
    background:var(--color-primary);
    color:var(--color-text);
    font-size:16px;
    font-weight:600;
    transform:translateY(8px);
    transition:transform 240ms cubic-bezier(.2,0,0,1)
}

.proof-item__thumbnail:hover img,.proof-item__thumbnail:focus-visible img {
    transform:scale(1.025)
}

.proof-item__thumbnail:hover .proof-item__overlay,
.proof-item__thumbnail:focus-visible .proof-item__overlay {
    opacity:1
}

.proof-item__thumbnail:hover .proof-item__overlay>span,
.proof-item__thumbnail:focus-visible .proof-item__overlay>span {
    transform:translateY(0)
}

@media (max-width:767px) {
    .proof-item--case {
        flex-direction:column;
        align-items:flex-start;
        gap:24px
    }
    .proof-item__thumbnail {
        flex:auto;
        width:100%
    }
    .proof-item__copy {
        width:100%;
        text-align:center
    }
    .proof-item__copy p {
        margin-inline:auto
    }
}

@media (hover:none) {
    .proof-item__overlay {
        inset:auto 16px 16px auto;
        opacity:1;
        background:transparent
    }
    .proof-item__overlay>span {
        padding:12px 20px;
        transform:none
    }
}

@media (prefers-reduced-motion:reduce) {
    .proof-item__thumbnail img,.proof-item__overlay,.proof-item__overlay>span { transition:none }
    .proof-item__thumbnail:hover img,.proof-item__thumbnail:focus-visible img { transform:none }
}

/* Text stays constrained; the card viewport spans the screen during vertical scrolling. */
.sws-services { padding:0; background:var(--color-surface) }
.sws-services__stage { padding:48px 0 }
.sws-services__layout { display:flex; flex-direction:column; align-items:stretch; gap:32px }
.sws-services__intro.section-heading { display:block; text-align:left }
.sws-services__intro.section-heading>div { max-width:880px; margin:0 }
.sws-services__intro.section-heading h2 { font-size:40px; line-height:1.16 }
.sws-services__intro.section-heading>p { max-width:680px; margin:20px 0 0 }
.sws-services__viewport { flex:1; min-width:0; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:none; scroll-snap-type:x mandatory }
.service-list { display:flex; gap:24px; width:max-content; padding:8px max(5vw, calc((100vw - 1280px) / 2)) 24px }
.service { position:relative; overflow:hidden; flex:0 0 360px; width:360px; min-height:392px; display:flex; flex-direction:column; padding:32px; border:2px solid #a8c9ce; border-radius:16px; background:var(--color-background); box-shadow:0 4px 12px rgb(8 56 65 / 7.2%),0 12px 24px -8px rgb(8 56 65 / 9.6%); scroll-snap-align:start }
.service::after { content:''; position:absolute; top:-1px; right:0; width:96.768px; height:96.768px; background:#def3f6; clip-path:polygon(0 0,100% 0,100% 100%); pointer-events:none }
.service:nth-child(even)::after { background:#c5e8ed }
.service:nth-child(even) { background:#edf6f6 }
.service__top { display:flex; justify-content:space-between; align-items:center; margin-bottom:48px }
.service__icon { display:block; width:64px; height:64px; flex:none; background:center / contain no-repeat }
.service__icon--sites { background-image:url('assets/images/servico-sites-192.webp') }
.service__icon--infraestrutura { background-image:url('assets/images/servico-infraestrutura-192.webp') }
.service__icon--ia { background-image:url('assets/images/servico-ia-192.webp') }
.service__icon--melhorias { background-image:url('assets/images/servico-melhorias-192.webp') }
.service__icon--consultoria { background-image:url('assets/images/servico-consultoria-192.webp') }
.service__icon--integracoes { background-image:url('assets/images/servico-integracoes-192.webp') }
.service h3 { font-size:28px; line-height:1.2; margin-bottom:20px }
.service p { font-size:16px; margin-bottom:0 }

.service p strong,.faq-item__answer p strong {
    font-weight:600
}
.sws-services__viewport::-webkit-scrollbar { display:none }
.sws-services.is-scroll-linked .sws-services__stage { position:sticky; top:0 }
.sws-services.is-scroll-linked .sws-services__viewport { scroll-snap-type:none; scrollbar-width:none }
@media(max-width:991px) {
    .sws-services__stage { padding:32px 0 }
    .sws-services__layout { flex-direction:column; gap:32px; align-items:stretch }
    .sws-services__intro.section-heading { flex:auto; text-align:left }
    .sws-services__intro.section-heading>p { margin:20px 0 0 }
    .sws-services__intro.section-heading h2 { font-size:36px }
}
@media(max-width:767px) {
    .sws-services__stage { padding:24px 0 }
    .sws-services__intro.section-heading h2 { font-size:28px }
    .sws-services .service { flex:0 0 288px; width:288px; min-height:360px; padding:24px }
    .sws-services .service h3 { font-size:24px }
    .sws-services .service__top { margin-bottom:32px }
    .service-list { gap:16px }
}

.sws-founder {
    background:var(--color-surface)
}

.sws-founder .split {
    align-items:center
}

.founder-portrait {
    height:auto;
    width:100%;
    max-width:540px;
    padding:0 64px;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    position:relative;
    isolation:isolate;
    background:#303638;
    overflow:hidden
}

.founder-portrait::before {
    content:'';
    position:absolute;
    inset:0;
    z-index:-1;
    /* Broad studio light separates the dark jacket from the graphite backdrop. */
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' opacity='.05' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E"),radial-gradient(ellipse at 50% 32%,#78807f 0%,#50595a 44%,#303638 80%);
    opacity:1
}

.founder-portrait::after {
    content:'';
    position:absolute;
    bottom:0;
    left:16%;
    right:16%;
    height:24px;
    border-radius:50%;
    background:rgb(0 0 0 / 32%);
    filter:blur(12px);
    z-index:-1
}

.founder-portrait__crop {
    position:relative;
    flex:none;
    min-height:0;
    width:100%;
    /* Cut above the visible hand in this portrait, without stretching the image. */
    aspect-ratio:971 / 1200;
    overflow:hidden
}

.founder-portrait img {
    position:absolute;
    top:0;
    left:0;
    display:block;
    flex:none;
    width:100%;
    height:auto
}

.founder-signature {
    border-top:1px solid var(--color-line);
    padding-top:24px;
    margin-top:32px;
    margin-bottom:16px
}

.founder-signature h3 {
    font-size:20px;
    margin-bottom:8px
}

.founder-signature p {
    font-size:12px
}

.sws-faq .split {
    gap:96px
}

.sws-faq .section-copy {
    flex:.75
}

.sws-faq .text-link {
    margin-top:24px
}

.faq-list {
    border-top:1px solid var(--color-line)
}

.faq-item {
    border-bottom:1px solid var(--color-line)
}

.faq-item h3 {
    font-family:var(--font-heading)
}

.faq-item__trigger {
    width:100%;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:24px;
    border:0;
    background:transparent;
    text-align:left;
    font-weight:500;
    font-size:14px;
    color:var(--color-text);
    padding:24px 0;
    line-height:1.6
}

.faq-item__symbol {
    color:var(--color-primary-dark);
    font-size:24px;
    line-height:1
}

.faq-item__answer {
    overflow:hidden;
    padding:0 32px 24px 0;
    font-size:14px
}

.sws-final {
    background:var(--color-text);
    color:white;
    padding:72px 0
}

.sws-final__inner {
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    gap:32px
}

.sws-final h2 {
    max-width:800px;
    font-size:clamp(32px,3.6vw,52px)
}

.sws-final p {
    color:#d0d5da;
    max-width:660px;
    margin:24px auto 0
}

.sws-final .button--secondary {
    color:white;
    border-color:#747d84
}

.sws-final .button--secondary:hover {
    border-color:white
}

.site-footer {
    padding-top:64px;
    background:white
}

.footer-layout {
    display:flex;
    gap:64px;
    justify-content:space-between;
    padding-bottom:56px
}

.footer-brand {
    flex:1.3;
    max-width:340px
}

.footer-brand p {
    font-size:13px;
    margin-top:24px
}

.footer-layout>div:not(.footer-brand) {
    flex:1
}

.footer-layout h2 {
    font-family:var(--font-heading);
    font-size:12px;
    font-weight:600;
    letter-spacing:0;
    margin-bottom:20px
}

.footer-layout ul {
    font-size:12px;
    color:var(--color-muted)
}

.footer-layout li {
    margin-bottom:8px
}

.footer-layout li a,.footer-layout li button {
    display:inline-block;
    padding:4px 0
}

.footer-layout button {
    border:0;
    background:none;
    font-size:inherit;
    color:inherit;
    text-align:left
}

.footer-layout a:hover,.footer-layout button:hover {
    color:var(--color-primary-dark)
}

.footer-bottom {
    border-top:1px solid var(--color-line);
    padding:24px 0;
    display:flex;
    justify-content:space-between;
    gap:24px;
    color:var(--color-muted);
    font-size:11px
}

.footer-bottom a {
    text-decoration:underline;
    text-underline-offset:4px;
    transition:color var(--motion-fast)
}

.footer-bottom a:hover,.footer-bottom a:focus-visible {
    color:var(--color-primary-dark);
    text-decoration-thickness:2px
}

.notice-dialog {
    border:1px solid var(--color-line);
    border-radius:8px;
    max-width:480px;
    width:90%;
    padding:32px;
    color:var(--color-text)
}

.notice-dialog::backdrop {
    background:rgb(0 0 0 / 40%)
}

.notice-dialog__inner {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:24px
}

.notice-dialog h2 {
    font-size:28px
}

.notice-dialog p {
    font-size:14px
}

@media(max-width:1199px) {
    .split {
        gap:56px
    }

    .sws-hero__layout {
        gap:40px
    }

    .navigation {
        gap:20px
    }

    .footer-layout {
        gap:32px
    }

    .sws-faq .split {
        gap:56px
    }

}

@media(max-width:991px) {
    :root {
        --section-padding:64px
    }

    .site-header__inner {
        min-height:80px;
        flex-wrap:wrap;
        gap:0
    }

    .brand {
        width:180px
    }

    .menu-toggle:not([hidden]) {
        display:flex;
        gap:16px;
        align-items:center
    }

    .navigation {
        flex-basis:100%;
        flex-wrap:wrap;
        justify-content:flex-start;
        padding:16px 0;
        gap:20px
    }

    .navigation .button {
        display:none
    }

    .js-ready .navigation {
        display:none
    }

    .js-ready .navigation.is-open {
        display:flex
    }

    .sws-hero {
        padding-top:48px;
        background:var(--color-surface)
    }

    .sws-hero__layout {
        flex-direction:column;
        gap:40px;
        text-align:center;
        padding-bottom:40px
    }

    .sws-hero__copy {
        flex:auto;
        max-width:720px
    }

    .actions {
        justify-content:center
    }

    .sws-hero h1 {
        font-size:clamp(40px,6vw,56px);
        max-width:680px
    }

    .lead {
        margin-left:auto;
        margin-right:auto
    }

    .split {
        flex-direction:column;
        gap:40px
    }

    .split>div,.split>form {
        width:100%;
        flex:auto
    }

    .section-copy {
        max-width:680px;
        margin:auto;
        text-align:center
    }

    .section-copy>p:not(.section-index) {
        margin-left:auto;
        margin-right:auto
    }

    .benefit-list {
        text-align:left;
        max-width:480px;
        margin-left:auto;
        margin-right:auto
    }

    .contact-form {
        max-width:680px;
        margin:auto
    }

    .section-heading {
        gap:24px;
        align-items:center;
        text-align:center;
        flex-direction:column
    }

    .section-heading>p {
        max-width:560px
    }

    .sws-founder .section-copy {
        margin:0;
        text-align:left
    }

    .sws-founder .section-copy>p:not(.section-index) {
        margin-left:0;
        margin-right:0
    }

    .sws-founder .founder-signature {
        text-align:left
    }

    .founder-portrait {
        width:100%;
        max-width:540px;
        flex:auto!important
    }

    .founder-signature {
        text-align:left
    }

    .sws-faq .split {
        gap:40px
    }

    .sws-faq .section-copy {
        flex:auto
    }

    .faq-list {
        max-width:720px;
        margin:auto
    }

    .footer-layout {
        flex-wrap:wrap
    }

    .footer-brand {
        flex-basis:100%;
        max-width:none
    }

    .footer-brand p {
        max-width:400px
    }

    .footer-layout>div:not(.footer-brand) {
        flex:1 1 25%
    }

}

@media(max-width:767px) {
    :root {
        --section-padding:48px
    }

    body {
        font-size:14px
    }

    html {
        scroll-padding-top:24px
    }

    .brand {
        width:164px
    }

    .site-header__inner {
        min-height:72px
    }

    .navigation {
        flex-direction:column;
        align-items:stretch;
        padding-bottom:24px;
        text-align:left;
        gap:4px
    }

    .navigation>a {
        padding:12px
    }

    .sws-hero {
        padding-top:40px
    }

    .sws-hero h1 {
        font-size:clamp(36px,7.5vw,48px);
        max-width:520px;
        margin:auto
    }

    .lead {
        font-size:14px;
        line-height:1.7;
        margin:20px 0 24px
    }

    .actions {
        gap:12px
    }

    .button {
        padding:12px 20px;
        font-size:12px;
        min-height:48px;
        gap:16px
    }

    .sws-hero__layout {
        gap:32px;
        padding-bottom:32px
    }

    .section-index {
        margin-bottom:16px;
        font-size:10px
    }

    .section-copy h2 {
        font-size:32px;
        margin-bottom:20px
    }

    .contact-form {
        padding:24px 20px
    }

    .contact-form__heading {
        align-items:flex-start
    }

    .contact-form h3 {
        font-size:20px
    }

    .form-row {
        flex-direction:column;
        gap:0
    }

    .contact-form__bottom {
        gap:12px
    }

    .contact-form__bottom .button {
        width:auto
    }

    .section-heading {
        margin-bottom:32px
    }

    .section-heading h2 {
        font-size:32px
    }

    .service__top {
        margin-bottom:24px
    }

    .service h3 {
        max-width:none;
        font-size:24px
    }

    .service p {
        margin-bottom:16px
    }

    .founder-signature {
        text-align:center
    }

    .founder-portrait {
        max-width:356px;
        padding:0 32px;
        height:auto
    }

    .sws-faq .split {
        gap:32px
    }

    .faq-item__trigger {
        font-size:13px;
        padding:20px 0;
        gap:16px
    }

    .faq-item__answer {
        font-size:13px;
        padding-right:24px
    }

    .sws-final {
        padding:48px 0
    }

    .sws-final p {
        font-size:14px
    }

    .sws-final .actions {
        flex-direction:column
    }

    .site-footer {
        padding-top:40px
    }

    .footer-layout {
        gap:32px 24px;
        padding-bottom:32px
    }

    .footer-layout>div:not(.footer-brand) {
        flex:1 1 calc(50% - 24px)
    }

    .footer-bottom {
        font-size:10px;
        gap:12px;
        flex-wrap:wrap
    }

    .notice-dialog {
        padding:24px
    }

}

/* Fixed scene: the LCP image never enters or transforms. */
.hero-scene {
    position:absolute;
    inset:0;
    left:96px;
    right:-96px;
    z-index:0;
    pointer-events:none
}

.hero-scene__background {
    position:relative;
    z-index:1;
    opacity:1;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:right center;
    left:10px;
}

.hero-scene::after {
    content:'';
    position:absolute;
    inset:0;
    z-index:2;
    background:linear-gradient(90deg,#faf9f6 0%,#faf9f6 36%,rgb(250 249 246 / 96%) 45%,rgb(250 249 246 / 70%) 52%,transparent 66%)
}

/* Foreground layers share the background's responsive coordinate system. */
.hero-scene__layer {
    position:absolute;
    display:block;
    pointer-events:none;
    opacity:1;
    background:var(--layer-image) center / contain no-repeat;
    translate:-50% -50%
}
.hero-entry-pending .hero-scene__layer {
    opacity:0
}
@media(prefers-reduced-motion:reduce) {
    .hero-entry-pending .hero-scene__layer {
        opacity:1
    }
}
.hero-scene__layer--diagram {
    --layer-image:url('assets/images/hero-diagrama-768.webp');
    left:calc(var(--art-left, 0px) + var(--art-width, 100vw) * 0.64);
    top:calc(var(--art-top, 0px) + var(--art-height, 600px) * 0.25);
    width:calc(var(--art-width, 100vw) * 0.18);
    aspect-ratio:1;
    z-index:0
}
.hero-scene__layer--engineer {
    --layer-image:url('assets/images/hero-engenheiro-672.webp');
    left:calc(var(--art-left, 0px) + var(--art-width, 100vw) * 0.6);
    top:calc(var(--art-top, 0px) + var(--art-height, 600px) * 0.7);
    width:calc(var(--art-width, 100vw) * 0.17);
    aspect-ratio:1122 / 1402;
    z-index:5
}
.hero-scene__layer--wave {
    --layer-image:url('assets/images/hero-onda-1536.webp');
    left:calc(var(--art-left, 0px) + var(--art-width, 100vw) * 0.77);
    top:calc(var(--art-top, 0px) + var(--art-height, 600px) * 0.86);
    width:calc(var(--art-width, 100vw) * 0.48);
    aspect-ratio:2172 / 724;
    z-index:4;
    /* display: none; */
}

/* Keep the engineer clear of the copy in the compact desktop layout. */
@media(min-width:992px) and (max-width:1199px) {
    .hero-scene__layer--engineer {
        left:calc(var(--art-left, 0px) + var(--art-width, 100vw) * 0.83);
        width:calc(var(--art-width, 100vw) * 0.14)
    }
    .hero-scene__layer--wave {
        left:calc(var(--art-left, 0px) + var(--art-width, 100vw) * 0.91);
        width:calc(var(--art-width, 100vw) * 0.32)
    }
}

@media(max-width:991px) {
    .sws-hero {
        display:flex;
        flex-direction:column
    }

    .sws-hero__layout {
        order:0
    }

    .sws-hero__copy {
        flex:auto;
        max-width:720px
    }

    .hero-scene {
        position:relative;
        order:1;
        inset:auto;
        /* The main artwork occupies the right side of the transparent asset. */
        left:-23%;
        width:100%;
        height:320px
    }

    .hero-scene__background {
        object-fit:contain;
        object-position:right center
    }

    .hero-scene::after {
        display:none
    }

    

    

    

}

@media(max-width:767px) {
    .hero-scene {
        /* Cover renders a 660px-wide scene: center its visible artwork. */
        left:calc(180px - 50%);
        height:220px
    }

    .hero-scene__background {
        object-fit:cover
    }

    

    

    

}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }

    *,*::before,*::after {
        transition:none!important;
        animation:none!important
    }

}


.privacy-banner {
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:20;
    padding:20px 0;
    background:var(--color-background);
    border-top:1px solid var(--color-line);
    box-shadow:0 -4px 16px rgb(46 46 46 / 6%)
}
.privacy-banner[hidden] { display:none }
.privacy-banner__inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:32px
}
.privacy-banner h2 { font-size:18px; margin-bottom:8px }
.privacy-banner p { font-size:14px; line-height:1.5; max-width:720px }
.privacy-banner__actions { display:flex; align-items:center; gap:24px; flex-shrink:0 }
.privacy-banner__actions a,.privacy-banner__actions button { min-height:44px }
.privacy-banner__actions a { display:inline-flex; align-items:center }
.privacy-page { padding:64px 0 80px }
.privacy-page__content { max-width:760px; line-height:1.7 }
.privacy-page h1 { font-size:clamp(32px,4vw,48px); margin-bottom:40px; line-height:1.2 }
.privacy-page h2 { font-size:24px; margin:32px 0 16px }
.privacy-page p { margin-bottom:16px; overflow-wrap:anywhere }
@media (max-width:767px) {
    .privacy-page { padding:40px 0 48px }
    .privacy-page h1 { margin-bottom:32px }
    .privacy-page h2 { font-size:20px }
}
@media (max-width:767px) {
    .privacy-banner { padding:16px 0 }
    .privacy-banner__inner { flex-direction:column; align-items:flex-start; gap:12px }
    .privacy-banner__actions { gap:24px; justify-content:space-between; width:100% }
}

/* Progressive enhancement: content remains visible without JavaScript. */
.is-entry-pending { opacity: 0; }
@media (prefers-reduced-motion: reduce) {
    .is-entry-pending { opacity: 1; }
}

.contact-challenge { width:100%; min-width:0; margin-bottom:16px }
.contact-challenge-note { margin:0 0 8px }


.navigation a[aria-current='page'] { color:var(--color-primary-dark); text-decoration:underline; text-underline-offset:6px }
