:root {
    --g: #1f6b3a;
    --gd: #154d2b;
    --r: #b21f2d;
    --c: #f5f1e7;
    --t: #29271f;
    --m: #747168;
    --l: #dfdbcf;
}

/* =========================================================
   BASE
========================================================= */

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: var(--c);
    color: var(--t);
    font-family: "DM Sans", sans-serif;
}

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

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

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

.hero {
    min-height: 620px;
    display: flex;
    align-items: center;
    color: #fff;
    background: linear-gradient(
        90deg,
        #153f2a 0%,
        #275d3f 48%,
        #6b9d79 100%
    );
}

.hero-layout {
    min-height: 620px;
    display: grid;
    grid-template-columns: 1.02fr 0.98fr;
    gap: 62px;
    align-items: center;
}

.hero .in {
    max-width: 700px;
    padding: 76px 0;
}

/* =========================================================
   VÍDEO DO HERO
========================================================= */

.hero-visual {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 28px;
    background: #000;
    box-shadow: 0 22px 55px rgba(0, 0, 0, 0.20);
}

/* Caso seja utilizada uma imagem */
.hero-visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Vídeo HD 16:9 sem cortar as laterais */
.hero-visual video {
    position: relative;
    z-index: 2;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #000;
}

/*
   Camada visual do Hero.

   IMPORTANTE:
   z-index abaixo do vídeo para não ficar
   sobre os controles Play/Pause/Volume.
*/
.hero-visual::after {
    content: "";
    position: absolute;
    z-index: 1;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(
        90deg,
        rgba(21, 63, 42, 0.16),
        transparent 45%
    );
}

/* =========================================================
   TEXTOS DO HERO
========================================================= */

.tag {
    color: #dfbd78;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 2.2px;
    text-transform: uppercase;
}

.hero h1,
.hero h2,
.hero h3,
.copy h2,
.founder h2,
.values h2,
.card h3,
.v h3,
.cta h2 {
    font-family: "Playfair Display", serif;
}

.hero h1 {
    margin: 14px 0 22px;
    font-size: clamp(32px, 5vw, 54px);
    line-height: 1.02;
}

.hero p {
    color: #eee;
    font-size: 19px;
    line-height: 1.7;
}

/* =========================================================
   BOTÕES
========================================================= */

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 24px;
    padding: 14px 20px;
    border-radius: 9px;
    background: var(--g);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
}

/* =========================================================
   SEÇÕES
========================================================= */

section {
    padding: 90px 0;
}

.grid {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 70px;
    align-items: center;
}

/* =========================================================
   FOTOS
========================================================= */

.photo {
    height: 610px;
    overflow: hidden;
    background: #ddd;
    border-radius: 25px;
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.13);
}

.photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* =========================================================
   CONTEÚDO / TEXTOS
========================================================= */

.redtag {
    color: var(--r);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.copy h2,
.founder h2,
.values h2 {
    margin: 10px 0 24px;
    font-size: clamp(35px, 4vw, 50px);
    line-height: 1.1;
}

.copy p,
.founder p {
    color: var(--m);
    font-size: 16px;
    line-height: 1.8;
}

.copy .lead {
    color: var(--t);
    font-family: "Playfair Display", serif;
    font-size: 20px;
    line-height: 1.55;
}

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

.quote {
    min-height: 500px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    text-align: center;

    background-image:
        linear-gradient(
            rgba(44, 24, 8, 0.68),
            rgba(44, 24, 8, 0.68)
        ),
        url("/franquias/img/sabores_do_nonno_massas_recheadas_pizza lasanhas_nhoques_seja-um-franqueado.png");

    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

.quote blockquote {
    max-width: 920px;
    margin: auto;
    font-family: "Playfair Display", serif;
    font-size: clamp(27px, 4vw, 43px);
    font-weight: 600;
    line-height: 1.35;
}

.quote small {
    display: block;
    margin-top: 20px;
    color: #e7c982;
    font-weight: 800;
    letter-spacing: 2px;
}

/* =========================================================
   FUNDADOR
========================================================= */

.founder {
    background: #fff;
}

.founder .grid {
    grid-template-columns: 1.1fr 0.9fr;
}

.card {
    padding: 38px;
    background: var(--c);
    border: 1px solid var(--l);
    border-radius: 24px;
}

.portrait {
    width: 190px;
    height: 190px;
    overflow: hidden;
    background: #ddd;
    border-radius: 50%;
}

.portrait img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.card h3 {
    margin: 22px 0 5px;
    font-size: 31px;
}

.role {
    margin-bottom: 14px;
    color: var(--g);
    font-weight: 800;
}

/* =========================================================
   VALORES
========================================================= */

.values {
    text-align: center;
}

.values .intro {
    max-width: 720px;
    margin: auto;
}

.cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 40px;
    text-align: left;
}

.v {
    padding: 30px;
    background: #fff;
    border: 1px solid var(--l);
    border-radius: 18px;
}

.v b {
    color: var(--r);
}

.v h3 {
    margin: 12px 0;
    font-size: 26px;
}

.v p {
    color: var(--m);
    font-size: 14px;
    line-height: 1.65;
}

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

.cta {
    background: var(--gd);
    color: #fff;
}

.cta .inner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 40px;
    align-items: center;
}

.cta h2 {
    margin: 10px 0;
    font-size: 45px;
}

.cta p {
    color: rgba(255, 255, 255, 0.74);
}

.cta .btn {
    margin: 0;
    background: #fff;
    color: var(--gd);
}

/* =========================================================
   RESPONSIVO - TABLET
========================================================= */

@media (max-width: 900px) {

    .hero-layout {
        grid-template-columns: 1fr;
        gap: 0;
        padding: 50px 0;
    }

    .hero .in {
        padding: 20px 0 42px;
    }

    .hero-visual {
        width: 100%;
        aspect-ratio: 16 / 9;
    }

    .grid,
    .founder .grid,
    .cta .inner {
        grid-template-columns: 1fr;
    }

    .cards {
        grid-template-columns: 1fr;
    }

    .photo {
        height: 480px;
    }
}

/* =========================================================
   RESPONSIVO - CELULAR
========================================================= */

@media (max-width: 600px) {

    .wrap {
        width: calc(100% - 28px);
    }

    .hero {
        min-height: 570px;
    }

    .hero-layout {
        padding: 32px 0;
    }

    .hero h1 {
        font-size: clamp(32px, 10vw, 46px);
    }

    .hero-visual {
        width: 100%;
        aspect-ratio: 16 / 9;
        border-radius: 20px;
    }

    .hero-visual video {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    section {
        padding: 62px 0;
    }

    .quote {
        min-height: 400px;

        /*
           Em celulares o background fixed pode apresentar
           problemas, principalmente no Safari.
        */
        background-attachment: scroll;
    }

    .photo {
        height: 400px;
    }

    .cta h2 {
        font-size: 36px;
    }

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