/* ==========================================================
   NARCIZO ADVOCACIA CRIMINAL
   STYLE.CSS
   VERSION FINAL
==========================================================*/

/* ==========================================================
01 - VARIÁVEIS
==========================================================*/

:root{

--primary:#6B5437;
--primary-dark:#554229;

--title:#5E482F;

--text:#444444;

--light:#F7F7F7;

--border:#E7E7E7;

--container:1180px;

--radius:12px;

--shadow:
0 15px 45px rgba(0,0,0,.08);

--transition:.28s ease;

}

/* ==========================================================
02 - BASE
==========================================================*/

body{

font-size:16px;

color:var(--text);

background:#ffffff;

line-height:1.8;

}

.container{

width:min(94%,var(--container));

margin:auto;

}

section{

position:relative;

width:100%;

}

/* ==========================================================
03 - TÍTULOS
==========================================================*/

.services h2,
.reviews h2,
.offices h2,
.contact h2{

font-size:42px;

font-weight:700;

line-height:1.2;

color:var(--title);

text-align:center;

margin-bottom:65px;

}

/* ==========================================================
04 - SERVIÇOS
==========================================================*/

.services{

padding:90px 0;

}

.services-grid{

display:grid;

grid-template-columns:

repeat(2,minmax(0,1fr));

gap:34px;

align-items:stretch;

}

.service-card{

display:flex;

flex-direction:column;

background:#F5F5F5;

border-radius:14px;

overflow:hidden;

border:1px solid var(--border);

box-shadow:var(--shadow);

transition:var(--transition);

height:100%;

}

.service-card:hover{

transform:translateY(-6px);

}

.service-image{

overflow:hidden;

}

.service-image img{

width:100%;

aspect-ratio:16/9;

object-fit:cover;

transition:.45s;

}

.service-card:hover .service-image img{

transform:scale(1.05);

}

.service-content{

display:flex;

flex-direction:column;

padding:30px;

height:100%;

}

.service-content h3{

font-size:28px;

color:var(--title);

margin-bottom:18px;

line-height:1.25;

}

.service-content p{

font-size:15px;

line-height:1.85;

margin-bottom:30px;

color:#555;

flex:1;

}

.service-content a{

display:flex;

align-items:center;

justify-content:center;

width:210px;

height:50px;

border-radius:40px;

background:var(--primary);

color:#fff;

font-size:14px;

font-weight:700;

letter-spacing:.6px;

text-transform:uppercase;

transition:.25s;

}

.service-content a:hover{

background:var(--primary-dark);

}
/* ==========================================================
05 - AVALIAÇÕES
==========================================================*/

.reviews{

padding:100px 0;

background:#fff;

}

.reviews h2{

margin-bottom:55px;

}

#google-reviews{

width:100%;

max-width:1180px;

margin:auto;

min-height:130px;

}

/* ==========================================================
06 - ESCRITÓRIOS
==========================================================*/

.offices{

padding:95px 0;

background:#fff;

}

.office-description{

max-width:900px;

margin:0 auto 60px;

text-align:center;

font-size:17px;

line-height:1.9;

color:#666;

}

.office-grid{

display:grid;

grid-template-columns:

repeat(3,minmax(0,1fr));

gap:30px;

align-items:stretch;

}

.office-card{

display:flex;

flex-direction:column;

background:#F5F5F5;

border:1px solid var(--border);

border-radius:14px;

overflow:hidden;

box-shadow:var(--shadow);

transition:var(--transition);

height:100%;

}

.office-card:hover{

transform:translateY(-6px);

}

.office-image{

overflow:hidden;

}

.office-image img{

width:100%;

aspect-ratio:16/9;

object-fit:cover;

transition:.45s;

}

.office-card:hover .office-image img{

transform:scale(1.05);

}

.office-content{

display:flex;

flex-direction:column;

padding:30px;

height:100%;

}

.office-content h3{

font-size:26px;

margin-bottom:16px;

color:var(--title);

line-height:1.2;

}

.office-content p{

font-size:15px;

line-height:1.85;

margin-bottom:30px;

color:#555;

flex:1;

}

.office-content a{

display:flex;

align-items:center;

justify-content:center;

width:210px;

height:50px;

border-radius:40px;

background:var(--primary);

color:#fff;

font-size:14px;

font-weight:700;

letter-spacing:.6px;

text-transform:uppercase;

transition:.25s;

}

.office-content a:hover{

background:var(--primary-dark);

}

/* ==========================================================
07 - CONTATO
==========================================================*/

.contact{

padding:100px 0;

background:#F8F8F8;

}

.contact-box{

max-width:900px;

margin:auto;

text-align:center;

}

.contact-box p{

font-size:17px;

line-height:1.9;

color:#555;

margin-bottom:42px;

}

.contact-actions{

display:flex;

justify-content:center;

}

.contact-actions a{

display:flex;

align-items:center;

justify-content:center;

width:260px;

height:56px;

background:var(--primary);

border-radius:50px;

font-size:15px;

font-weight:700;

letter-spacing:.8px;

text-transform:uppercase;

color:#fff;

transition:.25s;

}

.contact-actions a:hover{

background:var(--primary-dark);

transform:translateY(-2px);

}

/* ==========================================================
08 - FOOTER
==========================================================*/

.footer{

background:#2D2D2D;

padding:60px 20px;

text-align:center;

}

.footer-logo{

margin-bottom:25px;

}

.footer-logo img{

width:180px;

margin:auto;

}

.footer p{

color:#fff;

font-size:15px;

line-height:1.8;

margin-bottom:10px;

opacity:.95;

}

.footer-copy{

margin-top:30px;

padding-top:25px;

border-top:1px solid rgba(255,255,255,.12);

}
/* ==========================================================
09 - UTILITÁRIOS
==========================================================*/

.hidden{

opacity:0;

transform:translateY(40px);

transition:
opacity .7s ease,
transform .7s ease;

}

.show{

opacity:1;

transform:none;

}

.text-center{

text-align:center;

}

.mt-20{

margin-top:20px;

}

.mt-40{

margin-top:40px;

}

.mt-60{

margin-top:60px;

}

.mb-20{

margin-bottom:20px;

}

.mb-40{

margin-bottom:40px;

}

.mb-60{

margin-bottom:60px;

}

.d-flex{

display:flex;

}

.align-center{

align-items:center;

}

.justify-center{

justify-content:center;

}

.w-100{

width:100%;

}

/* ==========================================================
10 - LINKS
==========================================================*/

a{

text-decoration:none;

}

a:focus-visible{

outline:3px solid #D4AE72;

outline-offset:3px;

border-radius:8px;

}

/* ==========================================================
11 - SCROLLBAR
==========================================================*/

::-webkit-scrollbar{

width:10px;

}

::-webkit-scrollbar-track{

background:#ECECEC;

}

::-webkit-scrollbar-thumb{

background:#6B5437;

border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

background:#554229;

}

/* ==========================================================
12 - SELECTION
==========================================================*/

::selection{

background:#6B5437;

color:#fff;

}

/* ==========================================================
13 - RESPONSIVIDADE
==========================================================*/

@media (max-width:1200px){

.container{

width:min(95%,1100px);

}

.services-grid{

grid-template-columns:repeat(2,1fr);

gap:28px;

}

.office-grid{

grid-template-columns:repeat(3,1fr);

gap:24px;

}

.services h2,
.reviews h2,
.offices h2,
.contact h2{

font-size:38px;

}

}

/* ====================== */

@media (max-width:992px){

.logo{

width:220px;

}

.services,
.reviews,
.offices,
.contact{

padding:75px 0;

}

.services-grid,
.office-grid{

grid-template-columns:1fr;

gap:30px;

}

.service-content,
.office-content{

padding:28px;

}

.service-content h3,
.office-content h3{

font-size:24px;

}

.contact-actions a{

width:100%;

max-width:320px;

}

}

/* ====================== */

@media (max-width:768px){

.services h2,
.reviews h2,
.offices h2,
.contact h2{

font-size:30px;

margin-bottom:40px;

}

.service-content,
.office-content{

padding:24px;

}

.service-content h3,
.office-content h3{

font-size:22px;

}

.service-content p,
.office-content p,
.contact-box p{

font-size:15px;

line-height:1.8;

}

.service-content a,
.office-content a{

width:100%;

}

.footer{

padding:45px 20px;

}

.footer-logo img{

width:150px;

}

}

/* ====================== */

@media (max-width:480px){

.services,
.reviews,
.offices,
.contact{

padding:60px 0;

}

.services h2,
.reviews h2,
.offices h2,
.contact h2{

font-size:25px;

}

.service-content,
.office-content{

padding:20px;

}

.service-content h3,
.office-content h3{

font-size:20px;

}

.hero-button a,
.contact-actions a{

height:52px;

font-size:14px;

}

.footer p{

font-size:14px;

}

}

/* ==========================================================
14 - REDUCED MOTION
==========================================================*/

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

*,
*::before,
*::after{

animation:none!important;

transition:none!important;

scroll-behavior:auto!important;

}

}