/* Estilos principais: header, hero, sections, footer, componentes */

*{margin:0;padding:0;box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
    font-family:var(--sans);
    color:var(--texto);
    background:var(--branco);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }

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

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

ul{list-style:none;}

button{font-family:inherit;cursor:pointer;border:none;background:none;}

::selection{background:var(--dourado-soft);}

/* Signature element: margin binding line, like a legal codex spine */

.spine{
    position:fixed;
    top:0; left:28px;
    width:1px; height:100%;
    background:linear-gradient(to bottom, transparent 0%, var(--dourado) 8%, var(--dourado) 92%, transparent 100%);
    opacity:0.35;
    z-index:1;
    pointer-events:none;
  }

.container{
    max-width:1180px;
    margin:0 auto;
    padding:0 64px;
    position:relative;
    z-index:1;
  }

.eyebrow{
    font-family:var(--sans);
    font-size:12px;
    font-weight:600;
    letter-spacing:0.22em;
    text-transform:uppercase;
    color:var(--dourado);
    display:flex;
    align-items:center;
    gap:12px;
  }

.eyebrow::before{
    content:"";
    width:22px; height:1px;
    background:var(--dourado);
    display:inline-block;
  }

/* NAV */

header{
    position:fixed;
    top:0; left:0; right:0;
    z-index:100;
    padding:26px 0;
    transition:all .4s ease;
  }

header.scrolled{
    background:rgba(13,38,56,0.92);
    backdrop-filter:blur(10px);
    padding:16px 0;
    box-shadow:0 1px 0 rgba(176,141,87,0.2);
  }

.nav-inner{
    max-width:1180px;
    margin:0 auto;
    padding:0 64px;
    display:flex;
    align-items:center;
    justify-content:space-between;
  }

.logo{
    font-family:var(--serif);
    font-size:20px;
    font-weight:500;
    color:var(--bege);
    letter-spacing:0.01em;
  }

.logo span{ color:var(--dourado); font-style:italic; }

nav.menu{ display:flex; gap:36px; }

nav.menu a{
    font-size:13px;
    font-weight:500;
    letter-spacing:0.03em;
    color:var(--bege);
    opacity:0.82;
    transition:opacity .25s ease;
    position:relative;
    padding-bottom:3px;
  }

nav.menu a::after{
    content:"";
    position:absolute;
    left:0; bottom:0;
    width:0; height:1px;
    background:var(--dourado);
    transition:width .3s cubic-bezier(.16,.7,.24,1);
  }

.nav-cta{
    font-size:13px;
    font-weight:600;
    color:var(--azul);
    background:var(--dourado);
    padding:11px 22px;
    border-radius:2px;
    letter-spacing:0.02em;
    transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease;
  }

.menu-toggle{ display:none; color:var(--bege); font-size:24px; }

/* HERO */

.hero{
    background:radial-gradient(120% 100% at 85% 0%, var(--azul-2) 0%, var(--azul) 55%, #081821 100%);
    min-height:100vh;
    display:flex;
    align-items:center;
    position:relative;
    padding-top:120px;
    overflow:hidden;
  }

.hero-decor{
    position:absolute;
    top:-15%; right:-10%;
    width:640px; height:640px;
    max-width:70vw; max-height:70vw;
    border-radius:50%;
    background:radial-gradient(circle, rgba(176,141,87,0.14) 0%, transparent 68%);
    z-index:0;
    pointer-events:none;
    will-change:transform;
  }

.hero-grid{
    display:grid;
    grid-template-columns:1.3fr 0.85fr;
    gap:40px;
    align-items:center;
    width:100%;
    position:relative;
    z-index:1;
  }

.hero h1{
    font-family:var(--serif);
    font-weight:400;
    font-size:clamp(38px, 5.2vw, 62px);
    line-height:1.08;
    color:var(--bege);
    margin:22px 0 26px;
    max-width:640px;
  }

.hero h1 em{
    font-style:italic;
    color:var(--dourado);
    font-weight:400;
  }

.hero p.lead{
    font-size:17px;
    line-height:1.7;
    color:rgba(243,236,221,0.72);
    max-width:520px;
    margin-bottom:38px;
    font-weight:300;
  }

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

.btn-primary{
    background:var(--dourado);
    color:var(--azul);
    padding:16px 30px;
    font-size:14px;
    font-weight:600;
    letter-spacing:0.02em;
    border-radius:2px;
    transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease, background .25s ease;
    display:inline-block;
  }

.btn-ghost{
    border:1px solid rgba(243,236,221,0.35);
    color:var(--bege);
    padding:16px 28px;
    font-size:14px;
    font-weight:500;
    border-radius:2px;
    display:inline-flex;
    align-items:center;
    gap:10px;
    transition:border-color .25s ease, background .25s ease, transform .25s cubic-bezier(.34,1.56,.64,1);
  }

/* Hero photo — Dra. Sarah, protagonista da primeira dobra */

.foto-wrap{
    display:flex; justify-content:center; align-items:center;
    position:relative;
    padding:10px;
  }

.decor-circle{
    position:absolute;
    top:-8%; right:6%;
    width:72%; aspect-ratio:1/1;
    border:1px solid var(--dourado);
    border-radius:50%;
    opacity:0.16;
    z-index:0;
    pointer-events:none;
    will-change:transform;
  }

.decor-line{
    position:absolute;
    bottom:-6%; left:4%;
    width:1px; height:58%;
    background:linear-gradient(to bottom, transparent, var(--dourado) 40%, transparent);
    opacity:0.45;
    z-index:0;
    pointer-events:none;
    will-change:transform;
  }

.foto-parallax{
    width:100%;
    display:flex;
    justify-content:center;
    will-change:transform;
  }

.foto-frame{
    position:relative;
    z-index:1;
    width:100%;
    max-width:320px;
    border-radius:14px;
    overflow:hidden;
    border:1px solid var(--dourado);
    box-shadow:0 34px 64px -22px rgba(0,0,0,0.6), 0 12px 26px rgba(176,141,87,0.14);
  }

.foto-frame img.in-view{ transform:scale(1); }

.scroll-cue{
    position:absolute;
    bottom:36px; left:64px;
    display:flex; align-items:center; gap:12px;
    color:rgba(243,236,221,0.5);
    font-size:11px;
    letter-spacing:0.18em;
    text-transform:uppercase;
  }

.scroll-cue .line{ width:36px; height:1px; background:rgba(243,236,221,0.4); position:relative; overflow:hidden; }

.scroll-cue .line::after{
    content:""; position:absolute; left:0; top:0; height:100%; width:14px;
    background:var(--dourado);
    animation:slide 2.2s ease-in-out infinite;
  }

section{ position:relative; padding:120px 0; }

.section-bege{ background:var(--bege); }

.section-white{ background:var(--branco); }

.section-azul{ background:var(--azul); color:var(--bege); position:relative; overflow:hidden; }

.section-decor{
    position:absolute;
    top:8%; right:-90px;
    width:360px; height:360px;
    border:1px solid rgba(176,141,87,0.14);
    border-radius:50%;
    pointer-events:none;
    z-index:0;
    will-change:transform;
  }

h2.section-title{
    font-family:var(--serif);
    font-weight:400;
    font-size:clamp(30px, 3.6vw, 44px);
    line-height:1.16;
    margin:18px 0 0;
    max-width:640px;
  }

.section-white h2.section-title, .section-bege h2.section-title{ color:var(--azul); }

.section-azul h2.section-title{ color:var(--bege); }

h2.section-title em{ font-style:italic; color:var(--dourado); }

/* SOBRE */

.sobre-grid{
    display:grid;
    grid-template-columns:0.95fr 1.05fr;
    gap:80px;
    align-items:start;
    margin-top:56px;
  }

.sobre-quote{
    font-family:var(--serif);
    font-style:italic;
    font-size:clamp(22px, 2.6vw, 30px);
    line-height:1.5;
    color:var(--azul);
    border-left:2px solid var(--dourado);
    padding-left:28px;
  }

.sobre-text p{
    font-size:16px;
    line-height:1.85;
    color:var(--cinza);
    margin-bottom:22px;
    font-weight:400;
  }

.sobre-text p strong{ color:var(--azul); font-weight:600; }

.checklist{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
    margin-top:32px;
  }

.check-item{
    display:flex;
    gap:12px;
    align-items:flex-start;
    font-size:14.5px;
    color:var(--azul);
    font-weight:500;
  }

.check-item svg{ flex-shrink:0; margin-top:2px; }

/* AREAS - styled as legal articles / codex index */

.areas-head{ margin-bottom:56px; }

.areas-list{
    display:grid;
    grid-template-columns:1fr 1fr;
    border-top:1px solid var(--bege-2);
  }

.area-item{
    padding:34px 36px 34px 0;
    border-bottom:1px solid var(--bege-2);
    display:flex;
    gap:22px;
  }

.areas-list .area-item:nth-child(odd){ border-right:1px solid var(--bege-2); padding-right:36px; }

.areas-list .area-item:nth-child(even){ padding-left:36px; }

.area-num{
    font-family:var(--serif);
    font-style:italic;
    font-size:15px;
    color:var(--dourado);
    white-space:nowrap;
    padding-top:2px;
  }

.area-body h3{
    font-family:var(--serif);
    font-size:20px;
    font-weight:500;
    color:var(--azul);
    margin-bottom:8px;
  }

.area-body p{
    font-size:14.5px;
    line-height:1.65;
    color:var(--cinza);
  }

/* DIFERENCIAIS */

.dif-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:1px;
    background:rgba(243,236,221,0.14);
    margin-top:56px;
    border:1px solid rgba(243,236,221,0.14);
  }

.dif-card{
    background:var(--azul);
    padding:40px 30px;
  }

.dif-card svg{ margin-bottom:24px; }

.dif-card h3{
    font-family:var(--serif);
    font-size:18px;
    font-weight:500;
    margin-bottom:12px;
    color:var(--bege);
  }

.dif-card p{
    font-size:14px;
    line-height:1.7;
    color:rgba(243,236,221,0.62);
  }

/* JORNADA */

.jornada{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:0;
    margin-top:64px;
    position:relative;
  }

.jornada::before{
    content:"";
    position:absolute;
    top:23px; left:0; right:0;
    height:1px;
    background:var(--dourado-soft);
  }

.passo{ position:relative; padding-right:24px; }

.passo-num{
    width:46px; height:46px;
    border:1px solid var(--dourado);
    background:var(--bege);
    color:var(--azul);
    font-family:var(--serif);
    font-style:italic;
    font-size:16px;
    display:flex; align-items:center; justify-content:center;
    border-radius:50%;
    margin-bottom:22px;
    position:relative; z-index:2;
  }

.passo h3{
    font-family:var(--serif);
    font-size:18px;
    font-weight:500;
    color:var(--azul);
    margin-bottom:10px;
  }

.passo p{ font-size:14px; line-height:1.7; color:var(--cinza); }

/* CONTATO */

.contato-grid{
    display:grid;
    grid-template-columns:1.1fr 0.9fr;
    gap:64px;
    margin-top:56px;
  }

.contato-info{ display:flex; flex-direction:column; gap:26px; }

.info-row{ display:flex; gap:18px; align-items:flex-start; }

.info-row svg{ flex-shrink:0; margin-top:3px; }

.info-row .label{ font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--dourado); margin-bottom:4px; }

.info-row .value{ font-size:16px; color:var(--bege); line-height:1.6; }

.contato-card{
    background:var(--azul-2);
    border:1px solid rgba(176,141,87,0.3);
    padding:44px;
  }

.contato-card h3{
    font-family:var(--serif);
    font-size:24px;
    font-weight:400;
    color:var(--bege);
    margin-bottom:14px;
  }

.contato-card p{
    font-size:14.5px;
    color:rgba(243,236,221,0.65);
    line-height:1.7;
    margin-bottom:28px;
  }

.btn-whatsapp{
    width:100%;
    text-align:center;
  }

footer{
    background:#081821;
    padding:32px 0;
    text-align:center;
    font-size:12.5px;
    color:rgba(243,236,221,0.4);
    letter-spacing:0.02em;
  }

/* Discreet hover elevation for card-like elements */

.area-item{ transition:background .25s ease, box-shadow .25s ease, transform .25s ease, opacity .65s cubic-bezier(.16,.7,.24,1); }

.dif-card{ transition:background .25s ease, box-shadow .25s ease, transform .25s ease, opacity .65s cubic-bezier(.16,.7,.24,1); }

.passo{ transition:transform .25s ease, opacity .65s cubic-bezier(.16,.7,.24,1); }


.info-row{ transition:transform .25s ease, opacity .65s cubic-bezier(.16,.7,.24,1); }

/* Utilitários extraídos de estilos inline do HTML original */
.sobre-intro{ margin-top:32px; }
