@font-face{
font-family:"Emfatik";
src:url("./assets/fonts/Emfatik.woff2") format("woff2"),
    url("./assets/fonts/Emfatik.woff") format("woff");
font-weight:400;
font-style:normal;
font-display:swap;
}

:root{
--bg:#06070b;
--bg-soft:#0d1017;
--panel:rgba(255,255,255,0.035);
--panel-hover:rgba(255,255,255,0.055);
--line:rgba(255,255,255,0.08);
--line-strong:rgba(255,255,255,0.12);
--text:#f3efe8;
--text-soft:#b7b2ba;
--brand:#ff6a00;
--accent:#ff7a59;
--accent-2:#d7418b;
/* Verde oficial herdado da linguagem do Studio. */
--guava-green:#5fbb97;
--guava-green-light:#8fd3b6;
--guava-green-deep:#3f8d71;
--guava-green-mist:#dff1e9;
--shadow:0 22px 60px rgba(0,0,0,0.26);
--section-gap:42px;
--container-max:1440px;
--container-gutter:32px;
--hero-visual-width:560px;
}

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

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

body{
margin:0;
overflow-x:hidden;
font-family:"Inter",sans-serif;
line-height:1.5;
color:var(--text);
background:
linear-gradient(rgba(255,255,255,0.024) 1px, transparent 1px),
linear-gradient(90deg, rgba(255,255,255,0.024) 1px, transparent 1px),
radial-gradient(circle at 84% 10%, rgba(215,65,139,0.14), transparent 24%),
radial-gradient(circle at 8% 90%, rgba(255,122,89,0.11), transparent 18%),
var(--bg);
background-size:56px 56px, 56px 56px, 100% 100%, 100% 100%, auto;
}

a{
color:inherit;
}

button,
input,
textarea{
font:inherit;
}

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

.container{
width:100%;
max-width:var(--container-max);
margin:0 auto;
padding:0 var(--container-gutter);
}

/* Header fixo simples, com a marca pequena e menu limpo. */
.site-header{
position:fixed;
top:0;
left:0;
width:100%;
z-index:40;
background:rgba(6,7,11,0.84);
backdrop-filter:blur(12px);
border-bottom:1px solid var(--line);
}

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

.site-brand{
display:inline-flex;
align-items:flex-start;
gap:6px;
text-decoration:none;
}

.site-brand__small{
font-size:13px;
font-weight:600;
line-height:1.1;
color:var(--text);
}

.site-brand__name{
font-family:"Emfatik","Space Grotesk",sans-serif;
font-size:32px;
line-height:1;
letter-spacing:-0.03em;
color:var(--brand);
}

.site-nav{
display:flex;
align-items:center;
flex-wrap:wrap;
gap:18px 22px;
}

.site-nav a{
text-decoration:none;
font-size:15px;
font-weight:500;
color:var(--text-soft);
transition:color .2s ease;
}

.site-nav a:hover{
color:var(--text);
}

.section{
padding:112px 0;
border-top:1px solid rgba(255,255,255,0.06);
}

.section--hero{
padding-top:148px;
padding-bottom:104px;
border-top:0;
}

/* Mesmo ritmo vertical para todas as seções internas. */
.section-stack{
display:grid;
grid-template-columns:minmax(0,1.1fr) minmax(0,0.95fr) minmax(0,0.95fr);
column-gap:28px;
row-gap:var(--section-gap);
align-items:start;
}

.section-stack--copy{
row-gap:32px;
}

.section-head{
display:grid;
gap:14px;
justify-items:start;
grid-column:1 / span 2;
}

.section-head--wide{
max-width:none;
}

.eyebrow{
font-size:clamp(17px, 1.15vw, 20px);
font-weight:700;
letter-spacing:0.14em;
text-transform:uppercase;
color:#f05c7d;
}

h1,
h2,
h3{
margin:0;
font-family:"Space Grotesk",sans-serif;
letter-spacing:-0.05em;
}

.hero__title{
max-width:16ch;
font-size:78px;
line-height:0.96;
text-wrap:balance;
}

.section-title{
max-width:860px;
font-size:clamp(58px, 5.15vw, 70px);
line-height:1.02;
text-wrap:balance;
}

.section-title--contact{
max-width:none;
font-size:clamp(46px, 5.6vw, 68px);
line-height:1;
}

h3{
font-size:20px;
line-height:1.14;
}

p{
margin:0;
color:var(--text-soft);
}

.hero__grid{
display:grid;
grid-template-columns:minmax(0,1.16fr) minmax(400px,1fr);
gap:72px;
align-items:center;
}

.hero__copy{
display:grid;
gap:24px;
max-width:760px;
}

.hero-brand{
width:min(100%, clamp(220px, 44vw, 320px));
margin-bottom:6px;
}

.hero-brand__image{
display:block;
width:100%;
height:auto;
}

.hero__lead{
max-width:108ch;
font-size:20px;
line-height:1.55;
}

.hero__actions{
display:flex;
flex-wrap:wrap;
gap:14px;
}

.btn{
display:inline-flex;
align-items:center;
justify-content:center;
min-height:52px;
padding:0 22px;
border-radius:999px;
border:1px solid transparent;
text-decoration:none;
font-size:15px;
font-weight:600;
cursor:pointer;
}

.btn--primary{
background:linear-gradient(135deg, #ef5a7a, #ff8959);
color:#fff;
box-shadow:0 14px 34px rgba(239,90,122,0.24);
transition:transform .2s ease, box-shadow .2s ease, filter .2s ease, background .2s ease, color .2s ease;
}

.btn--primary:hover{
transform:translateY(-2px);
background:linear-gradient(135deg, #ff7f6a, #ffab74);
color:#fff;
box-shadow:0 20px 42px rgba(255,127,106,0.30);
filter:saturate(1.06) brightness(1.03);
}

.btn--ghost{
border-color:var(--line-strong);
background:rgba(255,255,255,0.02);
color:var(--text);
}

.hero__visual{
display:flex;
justify-content:flex-end;
}

/* Hero visual: o box foi removido e a imagem fica solta no layout. */
.hero-art{
width:min(100%,var(--hero-visual-width));
}

.hero-art__image{
display:block;
width:100%;
height:auto;
}

.section--about{
padding-top:104px;
}

/* Saida definitiva do Sobre:
   1) usa a mesma grade-base das outras seções
   2) título ocupa duas colunas da grade
   3) texto ocupa a largura editorial do bloco, sem max-width isolado no container */
.about-layout{
/* Painel largo do Sobre, baseado no mockup aprovado. */
--about-media-width:392px;
--about-media-offset-y:0px;
display:grid;
grid-template-columns:minmax(0,1.08fr) minmax(320px,0.74fr);
column-gap:clamp(40px,5vw,88px);
row-gap:18px;
align-items:center;
padding:clamp(32px,4vw,48px) clamp(28px,4vw,56px);
border:1px solid rgba(255,255,255,0.08);
border-radius:34px;
background:
radial-gradient(circle at 10% 92%, rgba(255,106,0,0.08), transparent 18%),
linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.02));
box-shadow:0 28px 64px rgba(0,0,0,0.18);
position:relative;
overflow:hidden;
}

.about-head{
grid-column:1;
max-width:560px;
position:relative;
z-index:1;
}

.about-title{
max-width:1260px;
font-size:clamp(50px, 5vw, 68px);
line-height:0.94;
letter-spacing:-0.06em;
text-wrap:balance;
}

.about-copy{
grid-column:1;
max-width:760px;
display:grid;
gap:14px;
justify-items:start;
position:relative;
z-index:1;
}
.about-copy p{
width:100%;
max-width:62ch;
font-size:18px;
line-height:1.56;
}

.about-media{
grid-column:2;
grid-row:1 / span 2;
align-self:center;
justify-self:end;
width:min(100%,var(--about-media-width));
transform:translateY(var(--about-media-offset-y));
padding:14px;
border-radius:18px;
background:rgba(255,255,255,0.08);
box-shadow:0 20px 50px rgba(0,0,0,0.22);
position:relative;
z-index:1;
}

.about-media__image{
display:block;
width:100%;
height:auto;
border-radius:4px;
}

.section-copy{
display:grid;
gap:18px;
}

.section-copy--about{
max-width:64ch;
}

.section-copy p,
.contact-text,
.contact-list a,
.contact-list span,
.info-card p{
font-size:17px;
line-height:1.72;
}

.info-grid{
display:grid;
gap:24px;
}

.info-grid--four{
grid-template-columns:repeat(4,minmax(0,1fr));
grid-column:1 / -1;
gap:28px;
}

/* Servicos mantem cards regulares; metodologia usa composicao alternada propria. */
.info-card{
min-height:280px;
padding:30px 28px;
border:1px solid var(--line-strong);
border-radius:20px;
background:var(--panel);
box-shadow:0 14px 34px rgba(0,0,0,0.14);
display:grid;
align-content:start;
gap:16px;
}

.method-timeline{
position:relative;
display:grid;
gap:84px;
grid-column:1 / -1;
padding:18px 0 12px;
/* Desloca a timeline inteira para a direita sem quebrar a alternancia interna. */
margin-left:28px;
width:calc(100% - 28px);
}

.method-timeline::before{
content:"";
position:absolute;
top:0;
bottom:44px;
left:50%;
width:2px;
border-radius:999px;
transform:translateX(-1px);
background:linear-gradient(
180deg,
rgba(210,74,136,0.28) 0%,
rgba(242,119,101,0.24) 36%,
rgba(231,162,143,0.22) 64%,
rgba(95,187,151,0.26) 100%
);
box-shadow:0 0 18px rgba(210,74,136,0.12);
}

.method-item{
position:relative;
display:grid;
grid-template-columns:minmax(0,1fr) 176px minmax(0,1fr);
align-items:center;
column-gap:40px;
min-height:248px;
}

.method-text{
display:grid;
gap:18px;
}

.method-item--left .method-text{
grid-column:1;
justify-items:end;
text-align:right;
padding-right:40px;
}

.method-item--right .method-text{
grid-column:3;
justify-items:start;
text-align:left;
padding-left:40px;
}

.method-number{
font-family:"Space Grotesk",sans-serif;
font-size:82px;
line-height:0.9;
letter-spacing:-0.06em;
opacity:0.24;
}

.method-number--rose{
color:#d24a88;
}

.method-number--coral{
color:#f27765;
}

.method-number--sand{
color:#e7a28f;
}

.method-number--mint{
color:var(--guava-green);
}

.method-number--magenta{
color:#c24885;
}

.method-text h3{
font-size:52px;
line-height:1.02;
letter-spacing:-0.05em;
}

.method-text p{
max-width:25ch;
font-size:17px;
line-height:1.68;
}

.method-visual{
position:relative;
display:grid;
place-items:center;
grid-column:2;
width:176px;
height:176px;
justify-self:center;
}

.method-chip{
display:inline-flex;
align-items:center;
justify-content:center;
width:148px;
height:148px;
box-shadow:0 18px 34px rgba(0,0,0,0.2);
transition:transform .24s ease, box-shadow .24s ease;
}

.method-chip__icon{
display:block;
width:110px;
height:110px;
object-fit:contain;
}

.method-chip--rose{
background:#d24a88;
}

.method-chip--coral{
background:#f27765;
}

.method-chip--sand{
background:#e7a28f;
}

.method-chip--mint{
background:var(--guava-green);
}

.method-chip--magenta{
background:#d24a88;
}

.method-dot{
position:absolute;
top:50%;
width:14px;
height:14px;
border-radius:50%;
transform:translateY(-50%);
}

.method-item--left .method-dot{
right:-22px;
}

.method-item--right .method-dot{
left:-22px;
}

.method-dot--rose{
background:#d24a88;
}

.method-dot--coral{
background:#f27765;
}

.method-dot--sand{
background:#e7a28f;
}

.method-dot--mint{
background:var(--guava-green);
}

.method-dot--magenta{
background:#d24a88;
}

.method-item:hover .method-chip,
.method-chip:hover{
transform:translateY(-5px);
box-shadow:0 24px 38px rgba(0,0,0,0.24);
}

.method-chip:focus-visible{
outline:2px solid rgba(255,255,255,0.35);
outline-offset:6px;
}

.method-cta{
grid-column:1 / -1;
display:grid;
justify-items:center;
gap:24px;
padding-top:20px;
text-align:center;
/* Mantem o CTA no mesmo eixo horizontal da timeline deslocada. */
margin-left:28px;
width:calc(100% - 28px);
}

.method-cta p{
font-size:18px;
line-height:1.5;
color:var(--text-soft);
}

.method-cta .btn{
min-width:340px;
min-height:60px;
}

.card-top{
display:flex;
align-items:flex-start;
justify-content:flex-start;
gap:14px;
margin-bottom:2px;
}

.card-icon{
display:inline-flex;
align-items:center;
justify-content:center;
flex:0 0 auto;
}

.card-icon svg{
width:30px;
height:30px;
fill:none;
stroke:currentColor;
stroke-width:2;
stroke-linecap:round;
stroke-linejoin:round;
}

.info-card--service{
min-height:280px;
gap:16px;
}

.card-icon{
width:56px;
height:56px;
color:#ff7d6b;
}

.card-icon svg{
width:40px;
height:40px;
}

.info-card--service h3{
font-size:26px;
line-height:1.08;
}

.info-card--service p{
max-width:none;
}

.project-grid{
display:grid;
grid-template-columns:repeat(12,minmax(0,1fr));
gap:24px;
grid-column:1 / -1;
grid-template-areas:
"a a a a a a b b b b b b"
"f f f f f f f f f f f f"
"c c c c d d d d e e e e";
align-items:stretch;
}

.project-card{
display:grid;
grid-template-rows:auto auto;
gap:16px;
padding:18px;
border:1px solid rgba(255,255,255,0.08);
border-radius:24px;
background:
radial-gradient(circle at 10% 10%, rgba(255,106,0,0.08), transparent 22%),
linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.028));
box-shadow:0 22px 48px rgba(0,0,0,0.2);
backdrop-filter:blur(10px);
-webkit-backdrop-filter:blur(10px);
overflow:hidden;
transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease, background-color .24s ease;
}

.project-card--large{
min-height:286px;
grid-template-rows:clamp(240px, 26vw, 340px) auto;
}

.project-card--small{
min-height:238px;
grid-template-rows:clamp(196px, 21vw, 250px) auto;
}

.project-card--feature{
min-height:0;
grid-template-rows:auto auto;
}

.project-card:hover{
transform:translateY(-6px);
border-color:rgba(255,255,255,0.14);
background:
radial-gradient(circle at 10% 10%, rgba(255,106,0,0.1), transparent 24%),
linear-gradient(180deg, rgba(255,255,255,0.068), rgba(255,255,255,0.036));
box-shadow:0 28px 52px rgba(0,0,0,0.24);
}

.project-card__media{
position:relative;
overflow:hidden;
border-radius:18px;
background:#f6f4ef;
min-height:0;
height:100%;
}

.project-card__media img{
width:100%;
height:100%;
min-height:172px;
object-fit:cover;
transition:transform .45s ease, filter .45s ease;
}

.project-card:hover .project-card__media img{
transform:scale(1.04);
filter:saturate(1.04) contrast(1.02);
}

.project-card__copy{
display:grid;
gap:6px;
color:var(--text);
}

.project-card__eyebrow{
font-size:11px;
font-weight:700;
letter-spacing:.16em;
text-transform:uppercase;
color:rgba(243,239,232,0.58);
}

.project-card__copy h3{
margin:0;
font-size:clamp(1.12rem, 2.2vw, 1.6rem);
line-height:1.04;
letter-spacing:-0.04em;
color:var(--text);
}

.project-card--large .project-card__media img{
min-height:208px;
}

.project-card--a{
grid-area:a;
}

.project-card--b{
grid-area:b;
/* Card Huit: fundo externo acompanha o azul-cinza da imagem editorial. */
background:
radial-gradient(circle at 54% 12%, rgba(168,189,192,0.16), transparent 32%),
linear-gradient(180deg, rgba(142,166,170,0.13), rgba(255,255,255,0.028));
}

.project-card--c{
grid-area:c;
}

.project-card--d{
grid-area:d;
}

.project-card--e{
grid-area:e;
}

.project-card--f{
grid-area:f;
}

.project-card--a .project-card__media{
background:linear-gradient(135deg, rgba(255,188,128,0.36), rgba(255,255,255,0.2));
}

.project-card--b .project-card__media{
/* A imagem é mais vertical que o card; este degradê evita faixas bege nas laterais. */
background:
radial-gradient(circle at 52% 12%, rgba(195,211,214,0.82), transparent 42%),
linear-gradient(180deg, #a9bec1 0%, #9db5b9 48%, #849fa4 100%);
}

.project-card--b .project-card__media img{
object-fit:contain;
object-position:center;
filter:drop-shadow(0 16px 28px rgba(0,0,0,0.22));
}

.project-card--b:hover .project-card__media img{
filter:drop-shadow(0 18px 30px rgba(0,0,0,0.24)) saturate(1.04) contrast(1.02);
}

.project-card--c .project-card__media,
.project-card--d .project-card__media{
background:linear-gradient(135deg, rgba(95,187,151,0.18), rgba(255,255,255,0.14));
}

.project-card--e .project-card__media{
background:linear-gradient(180deg, #c5d0dd 0%, #e8ebef 100%);
}

.project-card--e .project-card__media img{
object-fit:contain;
object-position:center;
padding:0;
}

.project-card__media--feature{
background:transparent;
height:auto;
aspect-ratio:16 / 9;
}

.project-feature-stage{
display:grid;
place-items:center;
height:100%;
min-height:0;
padding:0;
border-radius:24px;
background:linear-gradient(180deg, #eee9e2 0%, #ded6d2 100%);
overflow:hidden;
}

.project-feature-stage img{
width:100%;
max-width:none;
height:100%;
max-height:none;
object-fit:contain;
}

.contact-grid{
display:grid;
grid-template-columns:minmax(0,1fr) minmax(0,1fr);
gap:24px;
}

.contact-card{
padding:36px;
border:1px solid var(--line-strong);
border-radius:24px;
background:var(--panel);
box-shadow:var(--shadow);
}

.contact-card--copy{
display:grid;
align-content:start;
gap:18px;
}

.contact-list{
display:grid;
gap:10px;
}

.contact-list a{
text-decoration:none;
}

.contact-form{
display:grid;
gap:16px;
}

.contact-form__honeypot{
position:absolute;
left:-9999px;
width:1px;
height:1px;
opacity:0;
pointer-events:none;
}

.field{
display:grid;
gap:8px;
}

.field span{
font-size:14px;
font-weight:600;
color:var(--text);
}

.field input,
.field textarea{
width:100%;
padding:14px 16px;
border:1px solid var(--line-strong);
border-radius:14px;
background:#11131a;
color:var(--text);
outline:none;
transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.field input::placeholder,
.field textarea::placeholder{
color:#8f8a93;
}

.field input:focus,
.field textarea:focus{
border-color:rgba(95,187,151,0.42);
box-shadow:0 0 0 3px rgba(95,187,151,0.12);
background:#141721;
}

.field textarea{
min-height:160px;
resize:vertical;
}

.contact-form__actions{
display:grid;
gap:14px;
justify-items:start;
align-items:start;
}

.contact-form__actions .btn{
justify-self:center;
width:auto;
min-height:0;
padding:14px 26px;
line-height:1.2;
}

.contact-response-time{
margin:0;
font-size:14px;
line-height:1.5;
color:var(--text-soft);
}

.contact-disclaimer{
margin:0;
font-size:14px;
line-height:1.6;
color:var(--text-soft);
}

.contact-disclaimer__link{
display:inline;
padding:0;
border:0;
background:none;
font:inherit;
color:var(--guava-green);
cursor:pointer;
}

.contact-disclaimer__link:hover{
text-decoration:underline;
}

.form-status{
min-height:24px;
margin:0;
font-size:14px;
line-height:1.5;
color:var(--text-soft);
}

.form-status.is-success{
color:var(--guava-green);
}

.form-status.is-error{
color:#ff9a8a;
}

body.body--modal-open{
overflow:hidden;
}

.site-footer{
border-top:1px solid rgba(255,255,255,0.06);
}

.site-footer__inner{
display:flex;
justify-content:space-between;
align-items:flex-start;
gap:28px;
padding:28px 32px 34px;
font-size:15px;
color:var(--text-soft);
}

.site-footer__brand{
display:grid;
gap:10px;
max-width:34rem;
}

.site-footer__copy{
font-size:14px;
line-height:1.65;
color:var(--text-soft);
}

.site-footer__meta{
display:grid;
justify-items:end;
gap:18px;
}

.footer-legal{
display:flex;
flex-wrap:wrap;
justify-content:flex-end;
gap:10px 14px;
}

.footer-legal__link{
padding:0;
border:0;
background:none;
font:inherit;
font-size:14px;
color:var(--text-soft);
cursor:pointer;
transition:color .2s ease;
}

.footer-legal__link:hover{
color:var(--text);
}

.footer-legal__link[aria-current="page"]{
color:var(--text);
}

.cookie-banner[hidden],
.cookie-settings-modal[hidden]{
display:none !important;
}

.legal-main{
padding-top:72px;
}

.section--legal-hero{
padding-top:156px;
padding-bottom:72px;
border-top:0;
}

.section--legal-content{
padding-top:0;
}

.legal-hero{
position:relative;
overflow:hidden;
}

.legal-hero::before{
content:"";
position:absolute;
inset:0;
background:
radial-gradient(circle at 85% 12%, rgba(255,255,255,0.11), transparent 18%),
radial-gradient(circle at 0% 100%, rgba(255,255,255,0.08), transparent 22%);
pointer-events:none;
}

.legal-hero--privacy{
--legal-page-accent:#d24a88;
}

.legal-hero--cookies{
--legal-page-accent:var(--guava-green);
}

.legal-hero--terms{
--legal-page-accent:#f27765;
}

.legal-hero__inner{
position:relative;
z-index:1;
display:grid;
gap:18px;
max-width:860px;
}

.legal-hero__title{
margin:0;
display:flex;
flex-wrap:wrap;
gap:0.4rem;
font-family:"Space Grotesk",sans-serif;
font-size:clamp(42px,6vw,72px);
line-height:0.95;
letter-spacing:-0.05em;
color:var(--text);
}

.legal-hero__title strong{
color:var(--legal-page-accent);
font-weight:700;
}

.legal-hero__description{
max-width:48rem;
font-size:18px;
line-height:1.72;
color:rgba(244,239,233,0.82);
}

.legal-hero__actions{
display:flex;
flex-wrap:wrap;
gap:14px;
}

.legal-layout{
display:grid;
grid-template-columns:minmax(240px,0.36fr) minmax(0,1fr);
gap:24px 28px;
align-items:start;
}

.legal-sidebar{
position:sticky;
top:104px;
display:grid;
gap:16px;
}

.legal-sidebar__card{
display:grid;
gap:12px;
padding:22px 22px 24px;
border:1px solid rgba(255,255,255,0.08);
border-radius:22px;
background:rgba(255,255,255,0.025);
box-shadow:var(--shadow);
}

.legal-sidebar__label{
font-size:12px;
font-weight:700;
letter-spacing:0.16em;
text-transform:uppercase;
color:var(--legal-page-accent);
}

.legal-sidebar__card strong{
font-size:22px;
font-family:"Space Grotesk",sans-serif;
line-height:1.1;
color:var(--text);
}

.legal-sidebar__card p{
font-size:14px;
line-height:1.7;
}

.legal-sidebar__card a{
text-decoration:none;
color:var(--text);
}

.legal-sidebar__nav{
display:grid;
gap:10px;
}

.legal-sidebar__nav a{
display:flex;
align-items:center;
justify-content:space-between;
gap:14px;
padding:12px 14px;
border:1px solid rgba(255,255,255,0.08);
border-radius:16px;
background:rgba(255,255,255,0.02);
text-decoration:none;
color:var(--text-soft);
transition:border-color .2s ease, background .2s ease, color .2s ease, transform .2s ease;
}

.legal-sidebar__nav a::after{
content:"->";
font-size:14px;
line-height:1;
color:var(--legal-page-accent);
}

.legal-sidebar__nav a:hover{
transform:translateY(-1px);
border-color:rgba(255,255,255,0.18);
background:rgba(255,255,255,0.05);
color:var(--text);
}

.legal-article{
padding:36px 38px 42px;
border:1px solid rgba(255,255,255,0.08);
border-radius:28px;
background:linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.02));
box-shadow:var(--shadow);
}

.legal-article h1,
.legal-article h2,
.legal-article h3,
.legal-article h4{
color:var(--text);
}

.legal-article h1{
margin:0 0 20px;
font-size:42px;
line-height:0.98;
}

.legal-article h2{
margin:34px 0 14px;
font-size:28px;
line-height:1.05;
}

.legal-article h3{
margin:24px 0 10px;
font-size:20px;
line-height:1.14;
}

.legal-article p,
.legal-article li{
font-size:16px;
line-height:1.76;
color:var(--text-soft);
}

.legal-article strong{
color:var(--text);
}

.legal-article ul{
margin:12px 0 18px 20px;
display:grid;
gap:8px;
}

.legal-article a{
color:#f6c7ab;
text-decoration:none;
}

.legal-article a:hover{
text-decoration:underline;
}

.cookie-banner{
position:fixed;
left:50%;
bottom:20px;
transform:translateX(-50%);
z-index:55;
width:min(calc(100% - 28px),900px);
padding:18px 20px;
border:1px solid rgba(255,255,255,0.08);
border-radius:22px;
background:rgba(10,12,18,0.92);
backdrop-filter:blur(12px);
box-shadow:0 24px 60px rgba(0,0,0,0.28);
}

.cookie-banner__content{
display:grid;
grid-template-columns:minmax(0,1fr) auto auto;
align-items:center;
gap:16px 18px;
}

.cookie-banner__content p{
margin:0;
font-size:14px;
line-height:1.65;
color:var(--text-soft);
}

.cookie-banner__actions{
display:flex;
flex-wrap:wrap;
gap:10px;
}

.cookie-banner__button,
.cookie-banner__link,
.cookie-settings-modal__save{
font:inherit;
cursor:pointer;
transition:transform .2s ease, opacity .2s ease, border-color .2s ease, background .2s ease, color .2s ease;
}

.cookie-banner__button:hover,
.cookie-banner__link:hover,
.cookie-settings-modal__save:hover{
transform:translateY(-1px);
}

.cookie-banner__button{
padding:10px 16px;
border-radius:999px;
border:1px solid transparent;
}

.cookie-banner__button--primary{
background:var(--guava-green);
color:#08110d;
}

.cookie-banner__button--secondary{
background:#20242f;
color:var(--text);
}

.cookie-banner__button--ghost{
background:transparent;
border-color:rgba(255,255,255,0.14);
color:var(--text-soft);
}

.cookie-banner__link{
padding:0;
border:0;
background:none;
color:#f6c7ab;
text-decoration:none;
}

.cookie-settings-modal{
position:fixed;
inset:0;
z-index:65;
display:grid;
place-items:center;
padding:24px;
}

.cookie-settings-modal__backdrop{
position:absolute;
inset:0;
background:rgba(7,10,17,0.76);
backdrop-filter:blur(6px);
}

.cookie-settings-modal__dialog{
position:relative;
z-index:1;
width:min(100%,460px);
display:grid;
gap:18px;
padding:28px;
border:1px solid rgba(255,255,255,0.08);
border-radius:24px;
background:#11131a;
box-shadow:0 24px 60px rgba(0,0,0,0.34);
}

.cookie-settings-modal__close{
position:absolute;
top:16px;
right:16px;
padding:8px 12px;
border:1px solid rgba(255,255,255,0.1);
border-radius:999px;
background:rgba(255,255,255,0.03);
color:var(--text-soft);
font:inherit;
cursor:pointer;
}

.cookie-settings-modal__dialog h2{
margin:0;
padding-right:60px;
font-family:"Space Grotesk",sans-serif;
font-size:34px;
line-height:1;
letter-spacing:-0.04em;
}

.cookie-settings-option{
display:flex;
justify-content:space-between;
gap:18px;
padding:18px 0;
border-top:1px solid rgba(255,255,255,0.08);
}

.cookie-settings-option h3{
margin:0 0 6px;
font-size:18px;
font-family:"Space Grotesk",sans-serif;
color:var(--text);
}

.cookie-settings-option p,
.cookie-settings-option span{
margin:0;
font-size:14px;
line-height:1.6;
color:var(--text-soft);
}

.cookie-settings-option input[type="checkbox"]{
width:20px;
height:20px;
accent-color:var(--guava-green);
}

.cookie-settings-modal__save{
padding:14px 18px;
border:0;
border-radius:999px;
background:var(--guava-green);
color:#08110d;
font-weight:700;
}

.footer-socials{
display:flex;
align-items:center;
gap:12px;
}

.footer-social{
display:inline-flex;
align-items:center;
justify-content:center;
width:42px;
height:42px;
border:1px solid rgba(255,255,255,0.08);
border-radius:999px;
color:var(--text-soft);
background:rgba(255,255,255,0.02);
text-decoration:none;
transition:border-color .2s ease, color .2s ease, transform .2s ease, background .2s ease;
}

.footer-social svg{
width:18px;
height:18px;
fill:none;
stroke:currentColor;
stroke-width:1.8;
stroke-linecap:round;
stroke-linejoin:round;
}

.footer-social:hover{
transform:translateY(-2px);
color:var(--text);
border-color:rgba(95,187,151,0.28);
background:rgba(95,187,151,0.08);
}

.footer-social--static{
cursor:default;
}

.footer-social--static:hover{
transform:none;
color:var(--text-soft);
border-color:rgba(255,255,255,0.08);
background:rgba(255,255,255,0.02);
}

@media (max-width:1100px){
.hero__grid{
grid-template-columns:1fr;
gap:48px;
}

.hero__visual{
justify-content:flex-start;
}

.section-stack,
.about-layout{
grid-template-columns:1fr;
column-gap:0;
}

.section-head,
.about-head,
.about-copy,
.about-media,
.info-grid--four,
.method-timeline,
.project-grid{
grid-column:auto;
}

.info-grid--four{
grid-template-columns:repeat(2,minmax(0,1fr));
}

.project-grid{
grid-template-columns:repeat(2,minmax(0,1fr));
grid-template-areas:
"a b"
"f f"
"c d"
"e e";
gap:22px;
}
}

@media (max-width:860px){
.section{
padding:88px 0;
}

.section--hero{
padding-top:132px;
padding-bottom:88px;
}

.contact-grid,
.method-timeline,
.project-grid{
grid-template-columns:1fr;
}

.project-grid{
grid-template-areas:
"a"
"b"
"f"
"c"
"d"
"e";
gap:20px;
}

.project-card--large,
.project-card--small,
.project-card--feature{
grid-column:auto;
min-height:220px;
}

.about-media{
justify-self:start;
width:min(100%,560px);
transform:none;
}

.contact-card{
padding:28px;
}

.method-timeline{
gap:72px;
}

.method-timeline::before{
left:56px;
bottom:96px;
}

.method-item{
grid-template-columns:112px minmax(0,1fr);
column-gap:28px;
min-height:auto;
align-items:start;
}

.method-item--left .method-text,
.method-item--right .method-text{
grid-column:2;
grid-row:1;
justify-items:start;
text-align:left;
padding-left:0;
padding-right:0;
}

.method-item--left .method-visual,
.method-item--right .method-visual{
grid-column:1;
grid-row:1;
justify-self:start;
width:112px;
height:112px;
align-self:start;
}

.method-chip{
width:96px;
height:96px;
}

.method-chip__icon{
width:53px;
height:53px;
}

.method-number{
font-size:58px;
}

.method-text h3{
font-size:44px;
}

.method-dot{
display:none;
}

.method-cta{
justify-items:start;
text-align:left;
}

.site-footer__inner{
flex-direction:column;
}

.site-footer__meta{
width:100%;
justify-items:start;
}

.footer-legal{
justify-content:flex-start;
}

.legal-layout{
grid-template-columns:1fr;
}

.legal-sidebar{
position:static;
}

.cookie-banner__content{
grid-template-columns:1fr;
justify-items:start;
}
}

@media (max-width:640px){
.container{
padding:0 20px;
}

.site-header__inner{
min-height:auto;
padding:14px 0;
flex-direction:column;
align-items:flex-start;
}

.site-nav{
gap:10px 16px;
}

.hero__title{
font-size:52px;
max-width:100ch;
}

.section-title{
max-width:100%;
font-size:44px;
}

.hero__lead,
.section-copy p,
.about-copy p,
.contact-text,
.contact-list a,
.contact-list span,
.info-card p{
font-size:16px;
}

.about-title{
max-width:100%;
font-size:48px;
}

.info-grid--four{
grid-template-columns:1fr;
}

.method-timeline{
gap:56px;
}

.method-timeline::before{
left:40px;
}

.method-item{
grid-template-columns:80px minmax(0,1fr);
column-gap:20px;
}

.method-item--left .method-visual,
.method-item--right .method-visual{
width:80px;
height:80px;
}

.method-chip{
width:72px;
height:72px;
}

.method-chip__icon{
width:38px;
height:38px;
}

.method-number{
font-size:44px;
}

.method-text{
gap:14px;
}

.method-text h3{
font-size:34px;
}

.method-text p{
max-width:100%;
font-size:16px;
}

.method-cta .btn{
min-width:100%;
}

.info-card{
min-height:248px;
padding:26px 22px;
}

.hero-art{
width:100%;
}

.cookie-settings-modal__dialog{
width:100%;
}

.legal-main{
padding-top:118px;
}

.section--legal-hero{
padding-top:72px;
padding-bottom:48px;
}

.legal-hero__title{
font-size:36px;
}

.legal-article,
.cookie-settings-modal__dialog{
padding-left:20px;
padding-right:20px;
}

.legal-article{
padding-top:24px;
padding-bottom:28px;
}

.cookie-banner{
width:calc(100% - 20px);
padding:16px;
}

.cookie-banner__actions{
width:100%;
}

.cookie-banner__button{
width:100%;
}

.cookie-settings-option{
flex-direction:column;
align-items:flex-start;
}

.site-footer__inner{
padding-left:20px;
padding-right:20px;
flex-direction:column;
}

.site-footer__meta{
justify-items:start;
}
}



/* =========================================================
   AJUSTES V1 PREMIUM - HERO
   Reduz a largura da headline e do apoio para melhorar impacto.
   ========================================================= */
.hero__copy .btn--primary{
  min-width:188px;
}

/* =========================================================
   AJUSTES V1 PREMIUM - SERVICOS
   Hover um pouco mais refinado para elevar percepcao de valor.
   ========================================================= */
.info-card--service{
  transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease, background .24s ease;
}

.info-card--service:hover{
  transform:translateY(-4px);
  border-color:rgba(255,255,255,0.16);
  background:rgba(255,255,255,0.05);
  box-shadow:0 18px 38px rgba(0,0,0,0.18);
}

/* =========================================================
   AJUSTES V1 PREMIUM - CONTATO
   Mais presenca visual no fechamento da pagina.
   ========================================================= */
.contact-card--copy{
  background:linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.025));
}

.contact-card--copy .section-title--contact{
  max-width:12ch;
}

/* =========================================================
   AJUSTES V1 PREMIUM - RESPONSIVO
   Garante leitura e evita quebra estranha no temporario.
   ========================================================= */
@media (max-width: 1080px){
  .hero__grid{
    grid-template-columns:1fr;
    gap:40px;
  }

  .hero__visual{
    justify-content:flex-start;
  }

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

@media (max-width: 820px){
  .site-header__inner{
    align-items:flex-start;
    padding:14px 0;
  }

  .site-nav{
    width:100%;
    gap:12px 14px;
  }

  .hero__title{
    font-size:clamp(46px, 12vw, 62px);
    max-width:12ch;
  }

  .section-title{
    font-size:clamp(38px, 10vw, 54px);
  }

  .section-title--contact{
    font-size:clamp(34px, 10vw, 48px);
  }
}

@media (max-width: 560px){
  .container{
    padding:0 20px;
  }

  .site-brand__name{
    font-size:26px;
  }

  .btn{
    width:100%;
  }

  .hero__actions{
    width:100%;
  }

  .hero__lead{
    font-size:18px;
    max-width:24ch;
  }
}


/* =========================================================
   PATCH FINAL / HERO CIRÚRGICO
   Ajustes finais para limpar o menu, controlar a headline
   e evitar quebras ruins no texto do hero.
   ========================================================= */

/* HERO / GRID PRINCIPAL */
.hero__grid{
  grid-template-columns:minmax(560px, 1.05fr) minmax(420px, 0.95fr);
  gap:72px;
}

/* HERO / BLOCO DE TEXTO */
.hero__copy{
  gap:24px;
  max-width:760px;
}

/* HERO / HEADLINE */
.hero__title{
  display:grid;
  gap:2px;
  margin:0;
  max-width:11ch;
  font-size:78px;
  line-height:0.94;
  letter-spacing:-0.055em;
  text-wrap:unset;
}

.hero__title span{
  display:block;
  white-space:nowrap;
}

/* HERO / TEXTO DE APOIO */
.hero__lead{
  width:max-content;
  max-width:100%;
  font-size:clamp(12.8px, 3.12vw, 20px);
  line-height:1.42;
  letter-spacing:-0.015em;
  color:var(--text-soft);
}

.hero__lead-line{
  display:block;
  white-space:nowrap;
}

/* HERO / FECHAMENTO */
.hero__closing{
  margin:0;
  font-size:20px;
  line-height:1.4;
  font-weight:500;
  color:var(--text);
}

/* HERO / BOTÃO PRINCIPAL */
.hero__copy .btn--primary{
  min-width:188px;
}

/* SERVIÇOS / HOVER */
.info-card--service{
  transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease, background .24s ease;
}

.info-card--service:hover{
  transform:translateY(-4px);
  border-color:rgba(255,255,255,0.16);
  background:rgba(255,255,255,0.05);
  box-shadow:0 18px 38px rgba(0,0,0,0.18);
}

/* CONTATO / FECHAMENTO */
.contact-card--copy{
  background:linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.025));
}

.contact-card--copy .section-title--contact{
  max-width:12ch;
}

/* RESPONSIVO / HERO */
@media (max-width: 1200px){
  .hero__grid{
    grid-template-columns:minmax(0,1fr) minmax(360px,0.9fr);
    gap:56px;
  }

  .hero__title{
    font-size:64px;
    max-width:11ch;
  }

  .hero__lead,
  .hero__closing{
    font-size:19px;
  }
}

@media (max-width: 980px){
  .hero__grid{
    grid-template-columns:1fr;
    gap:40px;
  }

  .hero__visual{
    justify-content:flex-start;
  }

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

  .hero__title{
    font-size:54px;
    max-width:11ch;
  }

  .hero__lead{
    max-width:100%;
  }

  .hero__closing{
    font-size:20px;
  }
}

@media (max-width: 640px){
  .hero__title{
    font-size:42px;
    max-width:11ch;
    line-height:0.96;
  }

  .hero__lead{
    max-width:100%;
  }

  .hero__closing{
    font-size:20px;
  }

  .hero__actions{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
  }
}
