/* =========================================================
   1. IDENTIDADE VISUAL
   Edite estas variáveis para alterar cores e medidas gerais.
   ========================================================= */
:root{--petrol:#164f4a;--deep:#103934;--mint:#dde9e4;--terra:#b56f4f;--sand:#e8ded0;--gray:#f1f3f2;--white:#fff;--ink:#242a29;--muted:#66706e;--line:rgba(22,79,74,.18);--shadow:0 22px 55px rgba(16,57,52,.14);--radius:10px;--font:"Manrope",Arial,sans-serif;--mono:"IBM Plex Mono",monospace}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:78px;overflow-x:hidden}
body{margin:0;background:var(--white);color:var(--ink);font-family:var(--font);line-height:1.65;overflow-x:hidden}
body.modal-open{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
.container{width:min(calc(100% - 2rem),1180px);margin-inline:auto}
.section{padding:5rem 0}
.skip-link{position:fixed;left:1rem;top:-5rem;z-index:1000;padding:.75rem 1rem;background:#fff;border-radius:4px}
.skip-link:focus{top:1rem}
.kicker,.code{font:500 .68rem/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--terra)}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{line-height:1.08;letter-spacing:-.04em}
h1{font-size:clamp(2.55rem,11.8vw,5rem)}
h1 em{font-style:normal;color:var(--terra)}
h2{font-size:clamp(2rem,8.8vw,3.7rem)}
h3{font-size:1.25rem}
.lead,.large{font-size:clamp(1.05rem,2.5vw,1.25rem)}
.button{min-height:50px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--terra);background:var(--terra);color:#fff;padding:.8rem 1.2rem;font-weight:800;text-align:center;transition:transform .25s,background .25s}
.button:hover{background:#99583d;transform:translateY(-2px)}
.button-small{min-height:44px;padding:.55rem 1rem;font-size:.8rem}
.secondary{background:var(--petrol);border-color:var(--petrol)}
.ghost-link{min-height:44px;display:inline-flex;align-items:center;gap:.45rem;font-weight:700;border-bottom:1px solid}
.microcopy,.footnote{font-size:.74rem;color:var(--muted)}

/* 2. CABEÇALHO E MENU MOBILE */
.header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(15px)}
.navigation{min-height:72px;display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:.55rem;line-height:1}
.logo-symbol{width:38px;height:38px;display:grid;place-items:center;background:var(--petrol);color:#fff;font-size:1.3rem;font-weight:800;clip-path:polygon(0 0,100% 0,72% 50%,100% 100%,0 100%,28% 50%)}
.logo strong{font-size:1.15rem;letter-spacing:.08em}
.logo small{display:block;margin-top:.24rem;font-size:.48rem;letter-spacing:.1em;text-transform:uppercase}
.menu-toggle{width:46px;height:46px;border:0;background:transparent;display:grid;place-content:center;gap:5px}
.menu-toggle span{display:block;width:24px;height:2px;background:var(--deep);transition:.25s}
.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(7px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-7px) rotate(-45deg)}
.menu{position:absolute;inset:72px 0 auto;display:none;padding:1rem;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
.menu.open{display:grid}
.menu>a:not(.button){min-height:46px;display:flex;align-items:center;border-bottom:1px solid var(--line);font-weight:700}

/* 3. HERO */
.hero{padding:2.5rem 0 4.5rem;background:linear-gradient(125deg,#fff 0 65%,var(--mint) 65%)}
.hero-grid{display:grid;gap:2rem;align-items:center}
.hero-copy{order:0}
.hero-copy h1{max-width:820px}
.actions{display:grid;gap:.75rem;margin:1.5rem 0 .65rem}
.hero-visual{position:relative;min-height:400px;background:var(--deep);padding:0 0 1rem 1rem}
.hero-visual::before{content:"";position:absolute;inset:-12px 12px 12px -12px;border:1px solid var(--petrol);pointer-events:none}
.hero-visual img{width:100%;height:400px;object-fit:cover}
.coordinate{display:flex;justify-content:space-between;gap:.5rem;padding:1rem 1rem 0;color:#fff;font:400 .58rem var(--mono)}

/* 4. JORNADAS */
.journey{padding:4.5rem 0;background:var(--deep);color:#fff}
.section-title{max-width:760px;margin-bottom:2rem}
.journey-grid{display:grid;gap:.8rem}
.journey-card{width:100%;min-height:210px;padding:1.35rem;text-align:left;border:1px solid rgba(255,255,255,.2);background:transparent;color:#fff;transition:.25s}
.journey-card:hover,.journey-card:focus-visible{background:var(--petrol);transform:translateY(-3px)}
.journey-card>span{font:400 .7rem var(--mono);color:#a9c5bd}
.journey-card h3{margin-top:2rem}
.journey-card p{font-size:.86rem;color:#c8d8d4}
.journey-card b{font-size:.75rem;color:#efc7b5}

/* 5. SEÇÕES E SERVIÇOS */
.split,.section-heading,.contact-grid,.faq-layout,.about-grid,.responsibility-grid{display:grid;gap:2rem}
.problem{background:var(--gray)}
.technical-list{margin:0;padding:0;list-style:none}
.technical-list li{display:grid;grid-template-columns:42px 1fr;gap:.75rem;padding:1rem 0;border-bottom:1px solid var(--line);font-weight:600}
.technical-list span{font:500 .67rem var(--mono);color:var(--terra)}
.section-heading{margin-bottom:2.5rem}
.section-heading>p{max-width:480px;color:var(--muted)}
.service-grid{display:grid;gap:3rem}
.service-card{scroll-margin-top:90px;display:grid;border-top:1px solid var(--line);padding-top:1rem;gap:1.5rem}
.service-image{min-height:360px;overflow:hidden;background:var(--gray)}
.service-image img{width:100%;height:100%;min-height:360px;object-fit:cover}
.service-card ul{padding-left:1.1rem;color:var(--muted)}
.service-card a{font-weight:800;color:var(--petrol);border-bottom:1px solid;width:fit-content}
.notice{display:grid;gap:.35rem;margin:1rem 0;padding:1rem;border-left:3px solid var(--terra);background:var(--sand);font-size:.82rem}
.centered{text-align:center}

/* 6. PROCESSO */
.process{background:var(--deep);color:#fff}
.process .kicker{color:#e3ae94}
.process .section-heading>p,.process small{color:#b9ccca}
.steps{list-style:none;padding:0;display:grid;gap:.75rem}
.steps li{display:grid;grid-template-columns:42px 1fr;gap:.25rem .7rem;padding:1rem;border:1px solid rgba(255,255,255,.18)}
.steps span{grid-row:1/3;font:500 .7rem var(--mono);color:#e3ae94}
.steps small{display:block}

/* 7. PREPARO, PORTFÓLIO E RESPONSABILIDADE */
.prepare{background:var(--sand)}
.warning{padding:1rem;background:#fff;border-left:3px solid var(--terra);font-size:.8rem}
.prepare-grid{display:grid;gap:1rem}
.prepare-grid article{background:#fff;padding:1.25rem}
.prepare-grid ul{padding-left:1.1rem}
.portfolio-grid{display:grid;gap:.75rem}
.portfolio-item{position:relative;padding:0;border:0;min-height:360px;overflow:hidden;background:var(--gray);text-align:left}
.portfolio-item img{width:100%;height:100%;min-height:360px;object-fit:cover;transition:transform .45s}
.portfolio-item:hover img{transform:scale(1.04)}
.portfolio-item span{position:absolute;left:.75rem;bottom:.75rem;padding:.55rem .7rem;background:rgba(16,57,52,.9);color:#fff;font:500 .66rem var(--mono);text-transform:uppercase}
.responsibility{background:var(--petrol);color:#fff}
.large-number{font:800 clamp(4rem,20vw,9rem)/.75 var(--font);letter-spacing:-.08em;color:rgba(255,255,255,.12)}
.notice.light{color:var(--ink);background:var(--mint)}
.responsibility .footnote{color:#c2d2cf}
.about figure{margin:0;min-height:480px}
.about figure img{width:100%;height:100%;object-fit:cover}

/* 8. FAQ E FORMULÁRIO */
.faq-section{background:var(--gray)}
.faq-list details{padding:1rem 0;border-bottom:1px solid var(--line)}
.faq-list summary{min-height:44px;font-weight:800;cursor:pointer}
.faq-list p{padding-top:.75rem;color:var(--muted)}
.contact{background:var(--sand)}
.form{display:grid;gap:1rem;padding:1.2rem;background:#fff;box-shadow:var(--shadow)}
.field{display:grid;gap:.3rem}
.field label{font-size:.8rem;font-weight:800}
.field input,.field select,.field textarea{width:100%;min-height:50px;padding:.75rem;border:1px solid #97aaa6;border-radius:0;background:#fff}
.field textarea{resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid rgba(22,79,74,.18);border-color:var(--petrol)}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:#a13e2e}
.error{min-height:1em;color:#a13e2e;font-size:.68rem}
.consent{display:flex;gap:.7rem;align-items:flex-start;font-size:.75rem}
.consent input{width:20px;height:20px;flex:0 0 20px}
.consent button,.footer button{min-height:44px;display:inline-flex;align-items:center;padding:0;border:0;background:none;text-decoration:underline}
.form-status{margin:0;font-weight:700;color:var(--petrol)}

/* 9. RODAPÉ, MODAIS E CTA MOBILE */
.footer{padding:3.5rem 0 6.5rem;background:#071f1d;color:#dfe9e6}
.footer-grid{display:grid;gap:2rem}
.footer-grid>div{display:grid;gap:.35rem}
.footer-grid>div>strong{margin-bottom:.4rem}
.footer-logo .logo-symbol{background:var(--terra)}
.footer-bottom{display:grid;gap:.7rem;margin-top:2.5rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.15);font-size:.7rem}
.footer-bottom a{color:#e9b59c;font-weight:800}
.mobile-cta{position:fixed;z-index:90;left:.7rem;right:.7rem;bottom:.65rem;min-height:54px;display:flex;align-items:center;justify-content:space-between;padding:.8rem 1.1rem;background:var(--terra);color:#fff;font-weight:800;box-shadow:0 12px 30px rgba(16,57,52,.3);transition:.3s}
.mobile-cta.hidden{transform:translateY(140%);opacity:0}
dialog{border:0;padding:0;box-shadow:0 25px 80px rgba(0,0,0,.4)}
dialog::backdrop{background:rgba(7,31,29,.82);backdrop-filter:blur(4px)}
.image-modal{width:min(calc(100% - 1.5rem),800px);background:transparent;overflow:visible}
.image-modal img{max-height:calc(100svh - 2rem);margin:auto}
.legal-modal{width:min(calc(100% - 1.5rem),680px);max-height:calc(100svh - 1.5rem);padding:2rem 1.2rem;overflow:auto}
.modal-close{position:absolute;right:.5rem;top:.5rem;z-index:2;width:44px;height:44px;border:0;border-radius:50%;background:#fff;font-size:1.5rem}
.legal-modal h2{padding-right:2rem}

/* 10. ANIMAÇÕES CONTROLADAS PELO JAVASCRIPT */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:none}

/* TABLET */
@media(min-width:720px){
  .container{width:min(calc(100% - 3rem),1180px)}
  .section{padding:7rem 0}
  .hero{padding:5rem 0 7rem}
  .hero-grid{grid-template-columns:1.05fr .95fr;gap:4rem}
  .hero-copy{order:0}
  .hero-visual,.hero-visual img{min-height:610px}
  .actions{display:flex;align-items:center}
  .journey-grid{grid-template-columns:repeat(2,1fr)}
  .split{grid-template-columns:.9fr 1.1fr;gap:5rem}
  .section-heading{grid-template-columns:1fr auto;align-items:end}
  .service-card{grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center}
  .service-card.reverse .service-image{order:2}
  .steps{grid-template-columns:repeat(4,1fr)}
  .prepare-grid{grid-template-columns:1fr 1fr}
  .portfolio-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:270px}
  .portfolio-item,.portfolio-item img{min-height:0;height:100%}
  .portfolio-item.tall{grid-row:span 2}
  .portfolio-item.wide{grid-column:span 2}
  .responsibility-grid{grid-template-columns:.8fr 1.2fr;align-items:center}
  .about-grid{grid-template-columns:.95fr 1.05fr;gap:4rem;align-items:center}
  .faq-layout{grid-template-columns:.65fr 1.35fr;gap:5rem}
  .contact-grid{grid-template-columns:.8fr 1.2fr;gap:4rem}
  .form{grid-template-columns:1fr 1fr;padding:2rem}
  .full{grid-column:1/-1}
  .footer-grid{grid-template-columns:1.5fr .8fr 1.2fr}
  .footer-bottom{grid-template-columns:1fr auto}
}
/* DESKTOP */
@media(min-width:960px){
  .menu-toggle{display:none}
  .menu{position:static;display:flex;align-items:center;gap:1.3rem;padding:0;border:0;box-shadow:none}
  .menu>a:not(.button){min-height:44px;border:0;font-size:.8rem}
  .journey-grid{grid-template-columns:repeat(4,1fr)}
  .mobile-cta{display:none}
  .footer{padding-bottom:3rem}
}
/* Reduz animações quando solicitado pelo sistema do usuário. */
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}.reveal{opacity:1;transform:none}}
