/* Cores extraídas do logótipo oficial. Fotografias: colocar ficheiros em assets/img/ (assets/img/...). */

:root{
    --navy:#17394a;
    --navy2:#0f2833;
    --teal:#4ba596;
    --teal2:#3a8a7c;
    --paper:#f6f4ef;
    --soft:#ebe8e0;
    --ink:#17394a;
    --mute:#5d7078;
    --on:#fff;
    color-scheme:light;
    box-sizing:border-box;
    padding-top:env(safe-area-inset-top,0px);
    padding-bottom:env(safe-area-inset-bottom,0px)
}

@media (prefers-color-scheme:dark){
    :root:not([data-theme="light"]){
        --paper:#0f2530;
        --soft:#133240;
        --ink:#e9f1ef;
        --mute:#9db4b5
    }
}

:root[data-theme="dark"]{
    --paper:#0f2530;
    --soft:#133240;
    --ink:#e9f1ef;
    --mute:#9db4b5
}

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

html{
    height:100%;
    scroll-behavior:smooth;
    scroll-padding-top:calc(env(safe-area-inset-top,0px) + 70px)
}

body{
    margin:0;
    min-height:100%;
    background:var(--paper);
    color:var(--ink);
    font:400 17px/1.65 Inter,system-ui,sans-serif;
    padding-bottom:76px;
    overflow-x:hidden
}

a{
    color:inherit
}

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

:focus-visible{
    outline:3px solid var(--teal);
    outline-offset:3px
}

.wrap{
    width:min(1200px,100% - 40px);
    margin-inline:auto
}

.serif,h1,h2,.big{
    font-family:Fraunces,Georgia,serif;
    font-weight:400;
    letter-spacing:-.025em;
    line-height:1.02
}

h1{
    font-size:clamp(3rem,10.5vw,6.6rem)
}

h2{
    font-size:clamp(2.2rem,6.4vw,4.6rem)
}

em{
    font-style:italic;
    color:var(--teal)
}

.tag{
    font-size:.74rem;
    font-weight:600;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--teal);
    display:block;
    margin-bottom:22px
}

.btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    min-height:56px;
    padding:0 32px;
    border-radius:999px;
    background:var(--teal);
    color:var(--navy2);
    font-weight:600;
    text-decoration:none;
    position:relative;
    overflow:hidden;
    transition:transform .3s,background .3s
}

.btn::after{
    content:"→";
    transition:transform .3s
}

.btn:hover{
    background:#fff;
    transform:translateY(-2px)
}

.btn:hover::after{
    transform:translateX(5px)
}

.btn.line{
    background:none;
    color:inherit;
    box-shadow:inset 0 0 0 1px currentColor;
    opacity:.92
}

.btn.line:hover{
    background:rgba(255,255,255,.75)
}

.row{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    margin-top:36px
}


/* =========================
   FOTOGRAFIA
========================= */

.photo{
    position:relative;
    overflow:hidden;
    background:linear-gradient(160deg,var(--navy),var(--tea12));
    color:rgba(255,255,255,0)
}

.photo::before{
    content:"";
    position:absolute;
    inset:-6% 0;
    background:var(--img) center/cover;
    z-index:1;
    transition:transform 1.2s cubic-bezier(.2,.7,.2,1)
}

.photo:hover::before{
    transform:scale(1.04)
}

[data-px]::before{
    transform:translateY(var(--y,0px)) scale(1.08)!important
}

.photo span{
    position:absolute;
    left:18px;
    bottom:14px;
    font-size:.72rem;
    letter-spacing:.06em;
    max-width:80%;
    z-index:0
}


/* =========================
   NAVBAR
========================= */

nav{
    --nav-height:130px;

    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:50;

    background:transparent;
    backdrop-filter:none;

    color:#fff;

    transform:translateY(0);
    transition:transform .35s ease,box-shadow .3s;
}

nav.s{
    box-shadow:none
}

nav.nav-hidden{
    transform:translateY(-110%);
}


/* =========================
   ESTRUTURA NAV
========================= */

nav .wrap,
.nav-inner{
    width:100%;
    max-width:none;
    margin:0;

    height:var(--nav-height);
    min-height:var(--nav-height);

    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:20px
}


/* =========================
   LOGÓTIPO
========================= */

.nav-logo{
    display:flex;
    align-items:center;
    justify-content:center;

    box-sizing:border-box;

    width:150px;
    min-width:150px;
    height:var(--nav-height);

    padding:10px 25px;

    /* FUNDO BRANCO DO LOGÓTIPO */
    background:#fff;

    border:0;
    border-radius:0;
    box-shadow:none;

    text-decoration:none;

    flex-shrink:0;

    overflow:hidden;

    transition:
        transform .3s ease,
        opacity .3s ease
}

.nav-logo:hover{
    transform:translateY(-1px);
    opacity:.94
}

.nav-logo img{
    display:block;

    width:auto;
    height:110px;

    max-width:100%;
    max-height:calc(var(--nav-height) - 20px);

    object-fit:contain
}


/* =========================
   MENU DESKTOP
========================= */

.nav-right{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:24px;

    min-width:0;
    margin-left:auto;
    padding-right:24px;
}

nav ul{
    display:none;

    list-style:none;
    margin:0;
    padding:0;

    gap:30px;

    font-size:.92rem
}

nav ul a{
    text-decoration:none;
    color:#fff;
    transition:opacity .25s
}

nav ul a:hover{
    color:#fff;
    opacity:.7
}

/* =========================
   BOTÃO AGENDAR — HEADER
========================= */

.nav-cta{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;

    min-height:46px;
    height:46px;

    padding:0 20px;

    border-radius:999px;
    border:0;

    background:var(--teal);
    color:var(--navy2);

    font-size:.82rem;
    font-weight:600;
    line-height:1;

    text-decoration:none;
    white-space:nowrap;

    position:relative;
    overflow:hidden;
    flex-shrink:0;

    box-shadow:0 8px 24px rgba(0,0,0,.12);

    transition:
        transform .3s ease,
        background .3s ease,
        box-shadow .3s ease;
}

.nav-cta::after{
    content:"→";

    display:inline-block;

    transition:transform .3s ease;
}

.nav-cta:hover{
    background:#fff;
    color:var(--navy2);

    transform:translateY(-2px);

    box-shadow:0 12px 28px rgba(0,0,0,.16);
}

.nav-cta:hover::after{
    transform:translateX(5px);
}

/* =========================
   BURGER
========================= */

.burger{
    display:flex;
    align-items:center;
    justify-content:center;

    background:none;
    border:0;

    width:44px;
    height:44px;

    padding:0;

    font-size:1.5rem;
    line-height:1;

    color:#fff;

    cursor:pointer;

    flex-shrink:0;

    position:relative
}

.burger span{
    position:absolute;
    left:10px;

    width:24px;
    height:2px;

    background:currentColor;

    transition:
        transform .3s ease,
        top .3s ease
}

.burger span:first-child{
    top:16px
}

.burger span:last-child{
    top:26px
}

nav.o .burger span:first-child{
    top:21px;
    transform:rotate(45deg)
}

nav.o .burger span:last-child{
    top:21px;
    transform:rotate(-45deg)
}


/* =========================
   MENU MOBILE ABERTO
========================= */

nav.o ul{
    display:flex;
    flex-direction:column;

    position:absolute;

    top:var(--nav-height);
    left:0;
    right:0;

    background:#fff;

    padding:20px;

    gap:18px;

    border-radius:0;
    box-shadow:none
}

nav.o ul a{
    color:#17394a
}


/* =========================
   HERO
========================= */

.hero{
    position:relative;
    min-height:100svh;
    display:flex;
    align-items:flex-end;
    background:var(--navy2);
    color:#fff;
    overflow:hidden;
    padding:110px 0 56px
}

.hero .photo{
    position:absolute;
    inset:0;
    z-index:0
}

.hero::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:2;
    background:linear-gradient(
        180deg,
        rgba(15,40,51,.5),
        rgba(15,40,51,.15) 35%,
        rgba(15,40,51,.88)
    )
}


/* =========================
   HERO CONTEÚDO
========================= */

.hero-content{
    position:relative;
    z-index:3;

    width:min(1200px,100% - 40px);
    margin-inline:auto
}

.hero-main{
    width:100%
}

.hero-kicker{
    display:flex;
    align-items:center;
    gap:10px;

    margin-bottom:24px;

    font-size:.74rem;
    font-weight:600;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:#fff
}

.hero-kicker .dot{
    width:8px;
    height:8px;
    flex:0 0 8px;

    border-radius:50%;

    background:var(--teal)
}

.hero-index{
    display:flex;
    align-items:center;
    gap:12px;

    margin-bottom:14px;

    font-size:.72rem;
    letter-spacing:.14em;
    text-transform:uppercase;

    color:rgba(255,255,255,.72)
}

.hero-index span:first-child{
    color:var(--teal);
    font-weight:600
}


/* =========================
   TÍTULO HERO
========================= */

/*
   CORREÇÃO:
   "A recuperação começa onde se sente melhor."
   fica sem quebra forçada depois de "onde".
*/

.hero h1{
    max-width:1100px
}

.hero h1 em{
    display:inline;
    white-space:normal
}


/* =========================
   HERO BOTTOM
========================= */

.hero-bottom{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;

    gap:40px;

    margin-top:30px
}

.hero p.sub{
    font-size:clamp(1.05rem,2.2vw,1.35rem);
    max-width:34ch;
    margin-top:0;
    color:rgba(255,255,255,.88)
}


/*
   CORREÇÃO:
   Botões do hero alinhados à direita.
*/

.hero-bottom .row{
    margin-top:0;
    margin-left:auto;

    justify-content:flex-end;
    align-items:center;

    flex-shrink:0
}


/* =========================
   ARC
========================= */

.arc{
    position:absolute;
    z-index:2;
    right:-14vw;
    top:8%;
    width:min(78vw,760px);
    opacity:.55;
    pointer-events:none
}


/* =========================
   CHIP
========================= */

.chip{
    position:absolute;
    z-index:3;
    right:20px;
    top:96px;

    display:flex;
    gap:10px;
    align-items:center;

    font-size:.7rem;
    letter-spacing:.16em;
    text-transform:uppercase;

    border:1px solid rgba(255,255,255,.4);

    padding:10px 16px;
    border-radius:999px;

    backdrop-filter:blur(8px)
}

.chip i{
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--teal)
}


/* =========================
   SPINE
========================= */

.spine{
    position:absolute;
    z-index:3;
    left:20px;
    bottom:56px;

    display:none;
    flex-direction:column;
    gap:7px
}

.spine i{
    display:block;
    height:10px;
    border-radius:50%;
    background:var(--teal);
    animation:pulse 4s ease-in-out infinite
}

@keyframes pulse{
    50%{
        opacity:.25;
        transform:translateX(4px)
    }
}


/* =========================
   CARREGAMENTO
========================= */

.in{
    opacity:0;
    transform:translateY(26px);
    animation:up 1.1s cubic-bezier(.2,.7,.2,1) forwards;
    animation-delay:var(--d,0s)
}

@keyframes up{
    to{
        opacity:1;
        transform:none
    }
}

.rv{
    opacity:0;
    transform:translateY(34px);
    transition:opacity 1s,transform 1s cubic-bezier(.2,.7,.2,1);
    transition-delay:var(--d,0s)
}

.rv.v{
    opacity:1;
    transform:none
}

section{
    padding:96px 0
}


/* =========================
   DIFERENTE
========================= */

.dif .wrap{
    display:grid;
    gap:48px
}

.dif .photo{
    aspect-ratio:4/5;
    border-radius:999px 999px 24px 24px
}

.dif ol{
    list-style:none;
    padding:0;
    margin:44px 0 0;
    counter-reset:n
}

.dif li{
    counter-increment:n;
    display:grid;
    grid-template-columns:56px 1fr;
    padding:22px 0;
    border-top:1px solid rgba(23,57,74,.2)
}

.dif li::before{
    content:"0" counter(n);
    font-family:Fraunces,serif;
    color:var(--teal);
    font-size:1.3rem
}

.dif li b{
    font-weight:600;
    display:block;
    font-size:1.1rem
}

.dif li p{
    color:var(--mute);
    font-size:.95rem
}


/* =========================
   HISTÓRIA
========================= */

.story{
    background:var(--teal2);
    color:#fff;
    padding:120px 0
}

.story .big{
    font-size:clamp(2.2rem,7vw,5.2rem);
    opacity:.22;
    transition:opacity .8s;
    margin-bottom:.45em
}

.story .big.v{
    opacity:1
}

.story .big:last-child{
    margin:0
}

.story .big em{
    color:var(--navy2)
}


/* =========================
   TIMELINE
========================= */

.how{
    background:var(--soft)
}

.tl{
    position:relative;
    margin-top:64px;
    padding-left:44px
}

.tl::before,
.tl i{
    content:"";
    position:absolute;
    left:11px;
    top:6px;
    bottom:6px;
    width:2px;
    background:rgba(23,57,74,.15)
}

.tl i{
    background:var(--teal);
    bottom:auto;
    height:var(--p,0%);
    transition:height .15s
}

.st{
    position:relative;
    padding-bottom:56px
}

.st:last-child{
    padding-bottom:0
}

.st::before{
    content:"";
    position:absolute;
    left:-41px;
    top:8px;
    width:16px;
    height:16px;
    border-radius:50%;
    background:var(--paper);
    border:2px solid var(--teal)
}

.st small{
    font-size:.74rem;
    letter-spacing:.18em;
    color:var(--teal2);
    font-weight:600
}

.st h3{
    font-family:Fraunces,serif;
    font-weight:400;
    font-size:clamp(2rem,5vw,3.2rem);
    letter-spacing:-.02em;
    line-height:1.1;
    margin:6px 0 8px
}

.st p{
    color:var(--mute);
    max-width:46ch
}

.ph{
    background:#fff3cd;
    color:#6b5200;
    padding:1px 8px;
    border-radius:6px;
    font-size:.82em;
    font-weight:600
}


/* =========================
   SERVIÇOS
========================= */

.sv{
    margin-top:56px;
    border-bottom:1px solid rgba(23,57,74,.2)
}

.sv button{
    all:unset;
    box-sizing:border-box;
    width:100%;
    cursor:pointer;

    display:flex;
    align-items:baseline;
    gap:20px;

    padding:26px 0;

    border-top:1px solid rgba(23,57,74,.2);

    font-family:Fraunces,serif;
    font-size:clamp(1.7rem,4.6vw,3.2rem);
    letter-spacing:-.02em;
    line-height:1.1;

    transition:padding .4s,color .3s
}

.sv button small{
    font:600 .75rem Inter;
    color:var(--teal);
    letter-spacing:.14em
}

.sv button:hover,
.sv button[aria-expanded=true]{
    color:var(--teal2);
    padding-left:14px
}

.sv button:focus-visible{
    outline:3px solid var(--teal)
}

.sv .pn{
    display:none;
    grid-gap:24px;
    padding:0 0 32px
}

.sv .pn.a{
    display:grid
}

.sv .pn .photo{
    aspect-ratio:16/9;
    border-radius:20px
}

.sv .pn p{
    color:var(--mute);
    max-width:52ch
}


/* =========================
   CREDIBILIDADE
========================= */

.cred{
    background:var(--navy);
    color:#fff
}

.cred .wrap{
    display:grid;
    gap:48px
}

.cred .photo{
    aspect-ratio:4/5;
    border-radius:24px 24px 999px 24px
}

.cred .num{
    font-size:clamp(4.4rem,16vw,10rem);
    color:var(--teal);
    line-height:.95
}

.cred dl{
    margin:36px 0 0
}

.cred dt{
    font-size:.74rem;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--teal);
    margin-top:20px
}

.cred dd{
    margin:2px 0 0;
    font-size:1.15rem
}


/* =========================
   CITAÇÃO
========================= */

.qt{
    text-align:center
}

.qt .big{
    font-size:clamp(1.9rem,5vw,3.6rem);
    max-width:20ch;
    margin:0 auto 24px
}


/* =========================
   CTA
========================= */

.band{
    position:relative;
    color:#fff;
    text-align:center;
    padding:140px 0
}

.band .photo{
    position:absolute;
    inset:0
}

.band::after{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(15,40,51,.62);
    z-index:2
}

.band .wrap{
    position:relative;
    z-index:3
}

.band .row{
    justify-content:center
}


/* =========================
   FAQ
========================= */

.faq{
    max-width:800px;
    margin:44px auto 0
}

details{
    border-top:1px solid rgba(23,57,74,.2)
}

details:last-child{
    border-bottom:1px solid rgba(23,57,74,.2)
}

summary{
    cursor:pointer;
    list-style:none;
    padding:22px 36px 22px 0;
    font-family:Fraunces,serif;
    font-size:1.35rem;
    position:relative
}

summary::-webkit-details-marker{
    display:none
}

summary::after{
    content:"+";
    position:absolute;
    right:0;
    color:var(--teal);
    transition:transform .3s
}

details[open] summary::after{
    transform:rotate(45deg)
}

details p{
    color:var(--mute);
    padding-bottom:22px
}


/* =========================
   FINAL
========================= */

.end{
    background:var(--navy2);
    color:#fff;
    text-align:center;
    padding:150px 0 110px;
    position:relative;
    overflow:hidden
}

.end .photo{
    position:absolute;
    inset:0;
    opacity:.45
}

.end .wrap{
    position:relative;
    z-index:2
}

.end .row{
    justify-content:center
}

.end h2{
    font-size:clamp(3rem,11vw,8rem)
}


/* =========================
   FOOTER
========================= */

footer{
    background:var(--navy2);
    color:rgba(255,255,255,.7);
    font-size:.88rem;
    padding:44px 0 30px;
    border-top:1px solid rgba(255,255,255,.12)
}

footer .wrap{
    display:grid;
    gap:24px
}

footer a{
    text-decoration:none
}

footer a:hover{
    color:var(--teal)
}

footer .logo{
    background:#fff;
    border-radius:14px;
    padding:6px 12px;
    display:inline-block;
    width:fit-content
}

footer .logo img{
    height:50px
}


/* =========================
   BOTÃO STICKY MOBILE
========================= */

.sticky{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:60;

    padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));

    background:rgba(15,40,51,.85);
    backdrop-filter:blur(12px)
}

.sticky .btn{
    width:100%;
    justify-content:center
}


/* =========================
   MOBILE
========================= */

@media (max-width:859px){

    nav{
        --nav-height:88px;
    }

    nav .wrap,
    .nav-inner{
        height:var(--nav-height);
        min-height:var(--nav-height);
    }

    .nav-logo{
        width:105px;
        min-width:105px;
        height:var(--nav-height);

        padding:8px 18px;

        background:#fff
    }

    .nav-logo img{
        height:72px;
        max-height:calc(var(--nav-height) - 16px);
    }

    nav .btn,
    .nav-cta{
        display:none;
    }

    .burger{
        margin-right:12px;
    }

    nav.o ul{
        top:var(--nav-height);
    }

    .chip{
        top:104px;
        right:20px;
    }


    /* -------------------------
       HERO MOBILE
    ------------------------- */

    .hero{
        padding:120px 0 56px
    }

    .hero-content{
        width:min(1200px,100% - 40px);
        padding-left:20px
    }

    .hero-kicker{
        margin-bottom:22px
    }

    .hero-index{
        margin-bottom:12px
    }

    .hero h1{
        font-size:clamp(3rem,10.5vw,6.6rem)
    }

    /*
       Mantém "onde se sente melhor."
       sem quebra forçada.
    */

    .hero h1 em{
        display:inline;
        white-space:normal
    }

    .hero-bottom{
        display:block;
        margin-top:28px
    }

    .hero p.sub{
        max-width:34ch
    }

    /*
       No mobile os botões passam para baixo
       e ficam alinhados à esquerda,
       evitando esmagar o conteúdo.
    */

    .hero-bottom .row{
        margin-top:26px;
        margin-left:0;

        justify-content:flex-start;
        align-items:center
    }
}


/* =========================
   DESKTOP
========================= */

@media (min-width:860px){

    nav{
        --nav-height:130px;
    }

    nav ul{
        display:flex;
    }

    .burger{
        display:none;
    }

    .spine{
        display:flex;
    }

    .dif .wrap,
    .cred .wrap{
        grid-template-columns:1fr 1fr;
        gap:96px;
        align-items:center
    }

    .cred .photo{
        order:2
    }

    .sv .pn.a{
        grid-template-columns:1fr 1fr;
        align-items:center
    }

    section{
        padding:150px 0
    }

    .story{
        padding:200px 0
    }

    .band{
        padding:220px 0
    }

    .end{
        padding:240px 0 140px
    }

    .sticky{
        display:none
    }

    body{
        padding-bottom:0
    }

    .chip{
        right:40px
    }

    footer .wrap{
        grid-template-columns:1.3fr 1fr 1fr
    }


    /* -------------------------
       HERO DESKTOP
    ------------------------- */

    .hero-bottom{
        display:flex;
        align-items:flex-end;
        justify-content:space-between;
        gap:40px
    }

    .hero-bottom .row{
        margin-top:0;
        margin-left:auto;

        justify-content:flex-end;
        align-items:center;

        flex-shrink:0
    }
}


/* =========================
   REDUZIR ANIMAÇÕES
========================= */

@media (prefers-reduced-motion:reduce){

    *{
        animation:none!important;
        transition:none!important
    }

    .in,
    .rv,
    .story .big{
        opacity:1;
        transform:none
    }
}



/* =========================
   TESTEMUNHOS — FISIOAVANÇADA
========================= */

.qt {
    position: relative;
    overflow: hidden;
    text-align: center;
}

.qt .wrap {
    max-width: 1000px;
}

/* Cabeçalho */

.qt-heading {
    max-width: 760px;
    margin: 0 auto 54px;
}

.qt-heading .tag {
    margin-bottom: 24px;
}

.qt-title {
    margin: 0 auto;
    font-size: 50px;
}

.qt-title em {
    color: var(--teal);
}

.qt-intro {
    padding-top: 30px;
    max-width: 48ch;
    margin: 22px auto 0;
    color: var(--mute);
    font-size: 1rem;
}

/* Cartão principal */

.qt-card {
    position: relative;
    max-width: 820px;
    margin: 0 auto;
    padding: clamp(26px, 5vw, 54px);

    text-align: left;

    background: var(--soft);
    border: 1px solid rgba(23, 57, 74, .09);
    border-radius: 24px;

    box-shadow:
        0 18px 50px rgba(15, 40, 51, .055),
        0 2px 8px rgba(15, 40, 51, .025);

    transition:
        transform .4s ease,
        box-shadow .4s ease;
}

.qt-card:hover {
    transform: translateY(-4px);

    box-shadow:
        0 24px 60px rgba(15, 40, 51, .09),
        0 4px 12px rgba(15, 40, 51, .035);
}

/* Topo do cartão */

.qt-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;

    padding-bottom: 22px;
    border-bottom: 1px solid rgba(23, 57, 74, .12);
}

.qt-label {
    display: inline-flex;
    align-items: center;
    gap: 9px;

    color: var(--teal2);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .15em;
}

.qt-label::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--teal);
}

/* Estrelas */

.qt-stars {
    color: #C18A35;
    font-size: 1.05rem;
    letter-spacing: 3px;
    white-space: nowrap;
}

/* Aspas decorativas */

.qt-quote-mark {
    display: block;
    height: 70px;
    margin-top: 14px;

    color: var(--teal);
    font-family: Fraunces, Georgia, serif;
    font-size: 7rem;
    line-height: 1;
    opacity: .65;
}

/* Texto do testemunho */

.qt-testimonial {
    margin: 0;
    max-width: 62ch;

    color: var(--ink);
    font-family: Fraunces, Georgia, serif;
    font-size: clamp(1.25rem, 2.5vw, 1.7rem);
    font-weight: 400;
    letter-spacing: -.018em;
    line-height: 1.55;
}

/* Identificação do paciente */

.qt-card-footer {
    display: flex;
    align-items: center;
    gap: 15px;

    margin-top: 34px;
    padding-top: 25px;

    border-top: 1px solid rgba(23, 57, 74, .12);
}

.qt-author-avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 48px;

    width: 48px;
    height: 48px;

    border-radius: 50%;
    background: var(--navy);
    color: #fff;

    font-family: Inter, system-ui, sans-serif;
    font-size: .82rem;
    font-weight: 600;
    letter-spacing: .04em;
}

.qt-author-info {
    min-width: 0;
}

.qt-author {
    color: var(--ink);
    font-size: .98rem;
    font-weight: 600;
    line-height: 1.4;
}

.qt-location {
    margin-top: 4px;
    color: var(--mute);
    font-size: .82rem;
    line-height: 1.4;
}

.qt-verified {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 28px;

    width: 28px;
    height: 28px;
    margin-left: auto;

    border: 1px solid rgba(58, 138, 124, .35);
    border-radius: 50%;

    color: var(--teal2);
    font-size: .85rem;
}

/* Nota final */

.qt-note {
    margin: 28px auto 0;
    color: var(--mute);
    font-size: .83rem;
}

/* =========================
   TESTEMUNHOS — MOBILE
========================= */

@media (max-width: 600px) {

    .qt-heading {
        margin-bottom: 36px;
    }

    .qt-intro {
        font-size: .94rem;
    }

    .qt-card {
        padding: 25px 22px;
        border-radius: 18px;
    }

    .qt-card-top {
        align-items: flex-start;
        padding-bottom: 18px;
    }

    .qt-label {
        font-size: .61rem;
        letter-spacing: .11em;
    }

    .qt-stars {
        font-size: .9rem;
        letter-spacing: 2px;
    }

    .qt-quote-mark {
        height: 55px;
        margin-top: 12px;
        font-size: 5.7rem;
    }

    .qt-testimonial {
        font-size: 1.22rem;
        line-height: 1.55;
    }

    .qt-card-footer {
        gap: 12px;
        margin-top: 26px;
        padding-top: 20px;
    }

    .qt-author-avatar {
        flex-basis: 42px;
        width: 42px;
        height: 42px;
    }

    .qt-author {
        font-size: .91rem;
    }

    .qt-location {
        font-size: .78rem;
    }
}

/* Respeitar as preferências de movimento */

@media (prefers-reduced-motion: reduce) {
    .qt-card {
        transition: none;
    }
}

/* GRELHA DE TESTEMUNHOS */
.qt-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    align-items: stretch;
}
.qt-grid .qt-card {
    width: 100%;
    max-width: none;
    margin: 0;
    display: flex;
    flex-direction: column;
}
.qt-grid .qt-testimonial {
    flex: 1;
}
/* Ecrãs pequenos: um cartão por linha */
@media (max-width: 700px) {
    .qt-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }
}


/* TESTEMUNHOS — TEXTO EXPANSÍVEL */

.qt-review-content {
    margin-top: 4px;
}

.qt-review-content .qt-testimonial {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    overflow: hidden;
}

.qt-review-content.is-expanded .qt-testimonial {
    display: block;
    overflow: visible;
}

.qt-read-more {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-top: 16px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--teal2);
    font: 600 .88rem/1.5 Inter, system-ui, sans-serif;
    cursor: pointer;
    transition: color .2s ease;
}

.qt-read-more:hover {
    color: var(--navy);
}

.qt-read-more span {
    display: inline-block;
    transition: transform .25s ease;
}

.qt-read-more[aria-expanded="true"] span {
    transform: rotate(180deg);
}

.qt-read-more:focus-visible {
    outline: 2px solid var(--teal);
    outline-offset: 5px;
    border-radius: 3px;
}
