/* =====================================================
RESET
===================================================== */

html{
overflow-y:scroll;
}

*,
*::before,
*::after{
box-sizing:border-box;
}

body{
margin:0;
font-family:'Inter',sans-serif;
font-weight:300;
font-size:16px;
line-height:1.8;
color:#2e2e2e;
letter-spacing:.2px;
background:#ffffff;
}

img{
max-width:100%;
height:auto;
display:block;
}


/* =====================================================
TYPOGRAPHY
===================================================== */

h1,
h2,
h3,
h4{
font-family:'Cormorant Garamond',serif;
font-weight:600;
color:#1c1c1c;
margin:0 0 20px;
}

h1{
font-size:42px;
}

h2{
font-size:30px;
}

h3{
font-size:22px;
}

h4{
font-size:16px;
}

p{
margin:0 0 18px;
}

a{
color:#1c1c1c;
text-decoration:none;
border-bottom:1px solid rgba(0,0,0,.25);
transition:.25s ease;
}

a:hover{
border-bottom-color:#1c1c1c;
}


/* =====================================================
CONTAINER SYSTEM
===================================================== */

.container,
.site-container{
width:92%;
max-width:1100px;
margin:0 auto;
}

.site-container{
padding:70px 0;
}


/* =====================================================
GRID SYSTEM
===================================================== */

.row{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:30px;
}

.col-4{
width:100%;
}


/* =====================================================
HEADER
===================================================== */

.site-header{
position:sticky;
top:0;
z-index:1000;
background:#e8e5df;
border-bottom:1px solid #ddd;
padding:12px 0;
box-shadow:0 2px 8px rgba(0,0,0,.04);
}

.header-inner{
display:flex;
justify-content:space-between;
align-items:flex-start;
}


/* =====================================================
LOGO
===================================================== */

.logo{
display:flex;
align-items:flex-start;
gap:18px;
border-bottom:none;
}

.logo img{
height:75px;
transform:translateY(2px);
}

.logo-text{
display:flex;
flex-direction:column;
line-height:1.05;
}

.firm-name{
font-family:'Cormorant Garamond',serif;
font-size:30px;
font-weight:600;
letter-spacing:1px;
}

.firm-tag{
font-size:12px;
letter-spacing:2px;
text-transform:uppercase;
color:#777;
margin-top:6px;
}


/* =====================================================
NAVIGATION
===================================================== */

.main-nav{
margin-top:6px;
}

.main-nav ul{
list-style:none;
margin:0;
padding:0;
display:flex;
gap:28px;
}

.main-nav a{
border-bottom:none;
font-size:13px;
letter-spacing:1.8px;
text-transform:uppercase;
position:relative;
opacity:.85;
transition:opacity .25s ease;
}

.main-nav a:hover{
opacity:1;
}

.main-nav a::after{
content:"";
position:absolute;
left:0;
bottom:-6px;
width:0;
height:1px;
background:#1c1c1c;
transition:width .35s ease;
}

.main-nav a:hover::after,
.main-nav a.active::after{
width:100%;
}


/* =====================================================
HERO
===================================================== */

.hero{
padding:100px 0 60px;
text-align:center;
}

.hero-inner{
max-width:750px;
margin:0 auto;
}

.hero h1{
font-size:48px;
margin-bottom:24px;
}

.hero p{
font-size:18px;
color:#555;
margin-bottom:40px;
}


/* =====================================================
SECTIONS
===================================================== */

.section{
padding:50px 0;
}

.section-light{
background:#f7f6f3;
}

.section-white{
background:#ffffff;
}

.section-border{
border-top:1px solid #ddd;
}

.text-center{
text-align:center;
}


/* =====================================================
PROJECTS GRID
===================================================== */

.projects-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:60px;
}

.project-card{
display:block;
color:inherit;
transition:.35s ease;
border-bottom:none;
}

.project-card:hover{
transform:translateY(-6px);
}

.project-image{
overflow:hidden;
}

.project-image img{
width:100%;
height:420px;
object-fit:cover;
transition:transform .8s ease;
}

.project-card:hover img{
transform:scale(1.05);
}

.project-content{
margin-top:16px;
}

.project-content h3{
font-size:20px;
margin-bottom:6px;
}

.project-content p{
font-size:14px;
color:#555;
line-height:1.6;
}


/* =====================================================
BUTTONS
===================================================== */

.button,
a.button,
button,
input[type="submit"]{
display:inline-flex;
align-items:center;
justify-content:center;
background:#6f6458;
color:#ffffff !important;
padding:15px 28px;
border:none;
font-size:12px;
letter-spacing:.12em;
text-transform:uppercase;
cursor:pointer;
transition:.25s ease;
border-radius:0;
}

.button:hover,
a.button:hover,
button:hover,
input[type="submit"]:hover{
background:#5c5247;
transform:translateY(-2px);
border-bottom:none;
}


/* =====================================================
CONTACT
===================================================== */

.contact-section{
padding:40px 0 90px 0;
}

.contact-grid{
display:grid;
grid-template-columns:1.2fr .8fr;
gap:80px;
align-items:start;
}

.contact-form-wrapper{
background:#ffffff;
padding:40px;
box-shadow:0 22px 50px rgba(0,0,0,.10);
border:1px solid #ece8e2;
}

.contact-form{
margin-top:0;
}

.contact-info{
padding-top:40px;
}

.contact-info .info-block{
margin-bottom:40px;
}

.contact-info h3{
font-size:15px;
letter-spacing:.05em;
text-transform:uppercase;
margin-bottom:6px;
color:#444;
}

.contact-info p{
margin:0;
font-size:17px;
line-height:1.7;
}

.form-note{
font-size:14px;
color:#666;
margin:0 0 30px 0;
line-height:1.6;
}

.form-row{
margin-bottom:26px;
}

.form-row label{
display:block;
font-size:12px;
letter-spacing:.08em;
text-transform:uppercase;
margin:0 0 8px 0;
color:#555;
}

.form-row input,
.form-row textarea,
.form-row select{
width:100%;
padding:13px 14px;
border:1px solid #ddd;
font-size:15px;
font-family:inherit;
background:#fff;
transition:border .25s ease;
appearance:none;
}

.form-row textarea{
resize:vertical;
}

.form-row input:focus,
.form-row textarea:focus,
.form-row select:focus{
outline:none;
border-color:#777;
}

.contact-form .button{
width:100%;
padding:16px 26px;
}

.form-direct{
padding-top:22px;
border-top:1px solid #ece8e2;
margin-top:28px;
font-size:14px;
color:#777;
}


/* =====================================================
PROCESS
===================================================== */

.process-section{
padding:40px 0 80px 0;
}

.process-title{
margin-bottom:22px;
}

.process-grid{
display:grid;
grid-template-columns:repeat(2,1fr);
gap:40px 70px;
}

.process-item span{
display:block;
font-size:13px;
letter-spacing:.08em;
color:#777;
margin-bottom:10px;
}

.process-item h4{
font-size:18px;
margin-bottom:10px;
}

.process-item p{
font-size:16px;
line-height:1.6;
color:#555;
margin:0;
}


/* =====================================================
MAP
===================================================== */

.contact-map{
margin:24px 0 0 0;
padding-top:16px;
border-top:1px solid #e5e3df;
}

.contact-map iframe{
width:100%;
height:220px;
display:block;
border:0;
filter:grayscale(90%) contrast(95%) brightness(102%);
transition:filter .35s ease;
}

.contact-map:hover iframe{
filter:grayscale(0%);
}


/* =====================================================
REVIEW MODAL
===================================================== */

.review-modal{
position:fixed;
inset:0;
background:rgba(0,0,0,.55);
display:none;
align-items:center;
justify-content:center;
padding:40px;
z-index:99999;
}

.review-modal.active{
display:flex;
}

.review-modal-content{
background:#ffffff;
width:100%;
max-width:760px;
padding:50px;
box-shadow:0 28px 70px rgba(0,0,0,.18);
overflow-y:auto;
max-height:90vh;
border-radius:2px;
}

.review-modal-content h3{
font-size:32px;
margin-bottom:30px;
}

.review-actions{
display:flex;
gap:16px;
margin-top:40px;
flex-wrap:wrap;
}

.button-secondary{
background:#d9d5cf;
color:#222 !important;
}

.button-secondary:hover{
background:#c9c3bb;
}

.review-field{
padding:14px 0;
border-bottom:1px solid #ece8e2;
}

.review-field:last-child{
border-bottom:none;
}

.review-field strong{
display:block;
font-size:11px;
letter-spacing:.08em;
text-transform:uppercase;
margin-bottom:6px;
color:#777;
}


/* =====================================================
SUCCESS MODAL
===================================================== */

.success-modal{
position:fixed;
inset:0;
background:rgba(0,0,0,.55);
display:none;
align-items:center;
justify-content:center;
padding:40px;
z-index:999999;
}

.success-modal.active{
display:flex;
animation:fadeIn .3s ease;
}

.success-modal-content{
background:#ffffff;
width:100%;
max-width:620px;
padding:70px 60px;
text-align:center;
box-shadow:0 28px 70px rgba(0,0,0,.18);
}

.success-check{
width:84px;
height:84px;
border-radius:50%;
background:#f3f0eb;
margin:0 auto 30px auto;
display:flex;
align-items:center;
justify-content:center;
font-size:34px;
color:#6f6458;
font-weight:600;
}

.success-modal-content h3{
font-size:42px;
margin-bottom:18px;
line-height:1.1;
}

.success-modal-content p{
font-size:17px;
line-height:1.8;
color:#555;
max-width:440px;
margin:0 auto 36px auto;
}

@keyframes fadeIn{
from{
opacity:0;
transform:translateY(10px);
}
to{
opacity:1;
transform:translateY(0);
}
}


/* =====================================================
FOOTER
===================================================== */

.site-footer{
background:#e8e5df;
padding:80px 0 40px;
margin-top:120px;
border-top:1px solid #ddd;
}

.footer-bottom{
margin-top:60px;
border-top:1px solid #ddd;
padding-top:20px;
text-align:center;
font-size:13px;
color:#555;
}


/* =====================================================
RESPONSIVE
===================================================== */

@media(max-width:1000px){

.projects-grid{
grid-template-columns:repeat(2,1fr);
}

}

@media(max-width:900px){

.header-inner{
flex-direction:column;
gap:20px;
}

.main-nav ul{
flex-wrap:wrap;
justify-content:center;
gap:18px;
}

.contact-grid{
grid-template-columns:1fr;
gap:60px;
}

.process-grid{
grid-template-columns:1fr;
}

.row{
grid-template-columns:1fr;
}

}

@media(max-width:700px){

.projects-grid{
grid-template-columns:1fr;
}

.project-image img{
height:300px;
}

.review-modal{
padding:20px;
}

.review-modal-content{
padding:32px;
}

.review-actions{
flex-direction:column;
}

.review-actions .button{
width:100%;
}

.success-modal{
padding:20px;
}

.success-modal-content{
padding:50px 32px;
}

.success-modal-content h3{
font-size:34px;
}

.success-check{
width:72px;
height:72px;
font-size:28px;
}

}

@media(max-width:600px){

.logo img{
height:55px;
}

h1{
font-size:30px;
}

.hero h1{
font-size:38px;
}

}
