/* ============================= */
/* RESET */
/* ============================= */

*{
box-sizing:border-box;
margin:0;
padding:0;
}

body{
font-family:Arial, Helvetica, sans-serif;
}

/* ============================= */
/* HERO SECTION */
/* ============================= */

.hero{
position:relative;
min-height:95vh;
background-size:cover;
background-position:center 30%;
background-repeat:no-repeat;
}

/* ============================= */
/* TOP NAVIGATION */
/* ============================= */

.topbar{
position:absolute;
top:15px;
left:70px;
right:95px;
display:flex;
justify-content:space-between;
align-items:flex-start;
z-index:10;
}

/* Logo */

.brand__logo{
height:185px;
width:auto;
display:block;
}

/* Nav links */

.nav a{
text-decoration:none;
color:#2f3e46;
font-size:23px;
margin-left:30px;
font-family:'Inter', sans-serif;
font-weight:650;
position:relative;
top:50px;
right:30px;
}

.nav a:hover{
text-decoration:underline;
}

/* ============================= */
/* HERO CONTENT */
/* ============================= */

.hero-content{
position:absolute;
left:10%;
top:82%;
transform:translateY(-50%);
width:70%;
}

/* Button */

.btn{
display:inline-block;
background-color:#1f7f7a;
color:white;
padding:14px 28px;
border-radius:8px;
text-decoration:none;
font-weight:600;
margin-bottom:30px;
margin-left:40px;
}

/* ============================= */
/* CHECKLIST */
/* ============================= */

.checklist{
list-style:none;
display:grid;
grid-template-columns:1fr 1fr;
gap:16px 15px;
font-size:18px;
font-weight:600;
color:#2f3e46;
margin-left:15px;
}

.checklist li{
position:relative;
padding-left:28px;
}

.checklist li::before{
content:"✓";
position:absolute;
left:0;
top:0;
color:#1f7f7a;
font-weight:bold;
}

/* ============================= */
/* PAGE BACKGROUNDS */
/* ============================= */

.hero--home{
background-image:url("assets/home.png");
}

.hero--service{
background-image:url("assets/service.png");
background-size:95%;
background-position:center 85%;
background-repeat:no-repeat;
min-height:150vh;
}

.hero--about{
background-image:url("assets/about.png");
background-size:95%;
background-position:center 55%;
background-repeat:no-repeat;
min-height:150vh;
}

/* ============================= */
/* SERVICE PAGE */
/* ============================= */

.service-footer{
position:absolute;
left:48%;
bottom:5px;
transform:translateX(-50%);
z-index:10;
}

/* ============================= */
/* CONTACT PAGE */
/* ============================= */

.hero--contact{
background-image:url("assets/contact.png");
background-size:95%;
background-position:center 60%;
background-repeat:no-repeat;
min-height:120vh;
}

.hero--contact .nav a{
font-family:'Inter', sans-serif;
font-weight:600;
font-size:19px;
letter-spacing:.5px;
}

/* Contact content */

.hero-content--contact{
position:absolute;
left:10%;
top:0%;
transform:none;
width:560px;
max-width:90vw;
color:#2f3e46;
margin-top:150px;
}

.contact-title{
font-size:44px;
font-weight:700;
margin:0 0 12px 0;
}

.contact-subtext{
font-size:17px;
line-height:1.45;
margin:0;
max-width:650px;
color:#2f3e46;
font-family:'Inter', sans-serif;
}

.contact-subtext-1{margin-top:18px;}
.contact-subtext-2{margin-top:10px;}
.contact-subtext-3{margin-top:6px;}

/* Contact form */

.contact-form{
margin-top:22px;
display:flex;
flex-direction:column;
gap:14px;
}

.contact-input{
width:260px;
padding:14px 16px;
border-radius:10px;
border:1px solid rgba(47,62,70,0.30);
background:transparent;
font-size:15px;
color:#2f3e46;
outline:none;
transition:all .25s ease;
}

.contact-message{
width:100%;
padding:14px 16px;
border-radius:10px;
border:1px solid rgba(47,62,70,0.30);
background:transparent;
font-size:15px;
color:#2f3e46;
outline:none;
resize:none;
min-height:150px;
transition:all .25s ease;
}

.contact-input:focus,
.contact-message:focus{
border-color:#1f7f7a;
box-shadow:
0 0 0 2px rgba(31,127,122,0.35),
0 0 18px rgba(31,127,122,0.85);
}

.btn--contact{
width:170px;
margin-left:0;
margin-top:2px;
border:none;
cursor:pointer;
}


/* ============================= */
/* MOBILE — HOME PAGE ONLY */
/* ============================= */
@media (max-width: 768px){

body{
overflow-x: auto;
}

.hero--home{
min-width: 980px; /* less sideways scrolling */
min-height: 100vh;
background-size: 96%; /* slight zoom out */
background-position: top center;
background-repeat: no-repeat;
background-color: #f3f1f6;
}

/* top bar stays over the hero */
.hero--home .topbar{
position: absolute;
top: 95px;
left: 95px;
right: 95px;
padding: 0;
}

.hero--home .brand__logo{
height: 68px;
}

.hero--home .nav{
margin-top: 6px;
}

.hero--home .nav a{
position: static;
font-size: 16px;
margin-left: 18px;
}

/* move content block up so button sits right under paragraph */
.hero--home .hero-content{
position: absolute;
left: 120px;
top: 360px;
transform: none;
width: 640px;
}

/* smaller, cleaner button */
.hero--home .btn{
display: inline-block;
margin-left: 0;
margin-bottom: 16px;
padding: 10px 20px;
font-size: 15px;
border-radius: 10px;
}

/* checklist directly under button */
.hero--home .checklist{
grid-template-columns: 1fr;
gap: 10px;
font-size: 18px;
margin-left: 0;
max-width: 620px;
}

.hero--home .checklist li{
padding-left: 26px;
}
}

/* ============================= */
/* MOBILE LANDSCAPE — HOME PAGE */
/* ============================= */

@media (max-width: 932px) and (orientation: landscape){

.hero--home{
min-width: 100%;
min-height: 120vh;
background-size: cover;
background-position: center top;
background-repeat: no-repeat;
}

.hero--home .topbar{
position: absolute;
top: 55px;
left: 65px;
right: 65px;
padding: 0;
}

.hero--home .brand__logo{
height: 58px;
}

.hero--home .nav a{
position: static;
font-size: 15px;
margin-left: 18px;
}

.hero--home .hero-content{
position: absolute;
left: 90px;
top: 270px;
transform: none;
width: 520px;
}

.hero--home .btn{
margin-left: 0;
margin-top: 6px;
margin-bottom: 18px;
padding: 7px 14px;
font-size: 13px;
border-radius: 8px;
}

.hero--home .checklist{
grid-template-columns: 1fr;
gap: 6px;
font-size: 13px;
margin-left: 0;
max-width: 500px;
}

.hero--home .checklist li{
padding-left: 22px;
}

}

/* ============================= */
/* MOBILE PORTRAIT — SERVICE PAGE */
/* ============================= */
@media (max-width: 768px) and (orientation: portrait){

body{
overflow-x: auto;
overflow-y: auto;
}

.hero--service{
min-width: 980px;
min-height: 980px;
background-size: 96%;
background-position: top center;
background-repeat: no-repeat;
background-color: #f3f1f6;
}

.hero--service .topbar{
position: absolute;
top: 30px; /* moved higher */
left: 48px;
right: 48px;
padding: 0;
}

.hero--service .brand__logo{
height: 95px; /* slightly bigger */
}

.hero--service .nav a{
position: static;
font-size: 14px;
margin-left: 14px;
}

.hero--service .service-footer{
position: absolute;
left: 50%;
top: 580px; /* puts button right under bottom checklist */
bottom: auto;
transform: translateX(-50%);
z-index: 10;
}

.hero--service .btn{
margin: 0;
padding: 8px 18px;
font-size: 14px;
border-radius: 10px;
}
}

/* ============================= */
/* MOBILE LANDSCAPE — SERVICE PAGE */
/* ============================= */
@media (max-width: 932px) and (orientation: landscape){

body{
overflow-x: auto;
overflow-y: auto;
}

.hero--service{
min-width: 100%;
min-height: 132vh; /* more room so bottom isn't cut off */
background-size: cover;
background-position: center top;
background-repeat: no-repeat;
}

.hero--service .topbar{
position: absolute;
top: 0px; /* logo/nav higher */
left: 85px;
right: 85px;
padding: 0;
}

.hero--service .brand__logo{
height: 90px;
}

.hero--service .nav a{
position: static;
font-size: 15px;
margin-left: 18px;
}

.hero--service .nav{
    margin-top: 12px;
}

.hero--service .service-footer{
position: absolute;
left: 50%;
top: 470px; /* button sits right under checklist */
bottom: auto;
transform: translateX(-50%);
z-index: 10;
}

.hero--service .btn{
margin: 0;
padding: 8px 18px;
font-size: 14px;
border-radius: 10px;
}

}

/* ============================= */
/* MOBILE PORTRAIT — CONTACT PAGE */
/* ============================= */
@media (max-width: 768px) and (orientation: portrait){

body{
overflow-x: auto;
overflow-y: auto;
}

.hero--contact{
min-width: 980px;
min-height: 900px;
background-size: 95%;
background-position: top center;
background-repeat: no-repeat;
background-color: #f3f1f6;
}

.hero--contact .topbar{
position: absolute;
top: 18px;
left: 70px;
right: 70px;
padding: 0;
}

.hero--contact .brand__logo{
height: 72px;
margin-top: 0;
}

.hero--contact .nav a{
position: static;
font-size: 13px;
margin-left: 12px;
}

.hero-content--contact{
position: absolute;
left: 110px;
top: 55px;
transform: none;
width: 520px;
margin-top: 0;
}

.contact-title{
font-size: 52px;
margin-top: 0;
margin-bottom: 14px;
}

.contact-subtext{
font-size: 16px;
line-height: 1.42;
max-width: 520px;
margin-top: 0;
}

.contact-form{
max-width: 560px;
margin-top: 18px;
gap: 14px;
}

.contact-input,
.contact-message{
font-size: 16px;
padding: 14px;
width: 100%;
}

.contact-message{
min-height: 150px;
}

.btn--contact{
margin-top: -1px;
padding: 12px 24px;
font-size: 15px;
border-radius: 10px;
width: 220px;
}

}

/* ============================= */
/* MOBILE LANDSCAPE — CONTACT PAGE */
/* ============================= */
@media (max-width: 932px) and (orientation: landscape){

body{
overflow-x: auto;
overflow-y: auto;
}

.hero--contact{
min-width: 100%;
min-height: 130vh;
background-size: cover;
background-position: center top;
background-repeat: no-repeat;
}

.hero--contact .topbar{
position: absolute;
top: 8px;
left: 70px;
right: 70px;
padding: 0;
}

.hero--contact .brand__logo{
height: 58px;
margin-top: 0;
}

.hero--contact .nav a{
position: static;
font-size: 13px;
margin-left: 14px;
}

.hero--contact .nav{
margin-top: 6px;
}

.hero-content--contact{
position: absolute;
left: 95px;
top: 45px;
transform: none;
width: 430px;
margin-top: 0;
}

.contact-title{
font-size: 34px;
margin-top: 0;
margin-bottom: 8px;
}

.contact-subtext{
font-size: 13px;
line-height: 1.3;
max-width: 430px;
margin-top: 0;
}

.contact-form{
max-width: 430px;
margin-top: 10px;
gap: 10px;
}

.contact-input,
.contact-message{
font-size: 14px;
padding: 10px 12px;
width: 100%;
}

.contact-message{
min-height: 95px;
}

.btn--contact{
margin-top: 4px;
padding: 9px 18px;
font-size: 13px;
border-radius: 10px;
width: 170px;
}

}

/* ============================= */
/* MOBILE PORTRAIT — ABOUT PAGE */
/* ============================= */
@media (max-width: 768px) and (orientation: portrait){

body{
overflow-x: auto;
overflow-y: auto;
}

.hero--about{
min-width: 980px; /* allows sideways scroll */
min-height: 1200px; /* allows vertical scroll */
background-size: 92%; /* zoomed out more */
background-position: top center;
background-repeat: no-repeat;
background-color: #f3f1f6;
}

.hero--about .topbar{
position: absolute;
top: 35px;
left: 65px;
right: 65px;
padding: 0;
}

.hero--about .brand__logo{
height: 78px;
}

.hero--about .nav a{
position: static;
font-size: 14px;
margin-left: 14px;
}

.hero-content--about{
position: absolute;
left: 110px;
top: 120px;
transform: none;
width: 760px;
margin-top: 0;
}

.hero-content--about h1{
font-size: 44px;
margin-bottom: 20px;
}

.hero-content--about p{
font-size: 16px;
line-height: 1.5;
}

.hero-content--about h2{
font-size: 22px;
margin-bottom: 12px;
}

.about-columns{
gap: 40px;
margin-top: 30px;
}

.hero-content--about .checklist{
grid-template-columns: 1fr;
gap: 10px;
font-size: 16px;
margin-left: 0;
}
}

/* ============================= */
/* MOBILE LANDSCAPE — ABOUT PAGE */
/* ============================= */
@media (max-width: 932px) and (orientation: landscape){

body{
overflow-x: auto;
overflow-y: auto;
}

.hero--about{
min-width: 100%;
min-height: 125vh;
background-size: cover;
background-position: center top;
background-repeat: no-repeat;
}

.hero--about .topbar{
position: absolute;
top: 10px;
left: 85px;
right: 85px;
padding: 0;
}

.hero--about .brand__logo{
height: 72px;
}

.hero--about .nav a{
position: static;
font-size: 14px;
margin-left: 16px;
}

.hero--about .nav{
margin-top: 6px;
}

.hero-content--about{
position: absolute;
left: 95px;
top: 70px;
transform: none;
width: 760px;
margin-top: 0;
}

.hero-content--about h1{
font-size: 34px;
margin-bottom: 14px;
}

.hero-content--about p{
font-size: 15px;
line-height: 1.4;
}

.hero-content--about h2{
font-size: 18px;
margin-bottom: 10px;
}

.about-columns{
gap: 34px;
margin-top: 24px;
}

.hero-content--about .checklist{
grid-template-columns: 1fr;
gap: 8px;
font-size: 15px;
margin-left: 0;
}

}