:root {
--blue-main: #172b4d;
--blue-secondary: #203a5f;
--blue-dark: #10233f;
--blue-border: #30496b;
--blue-input: #526b8c;
--beige-main: #e8dcc8;
--beige-light: #f5ead8;
--beige-muted: #d8ccb9;
--white: #ffffff;
--font-heading: "DM Serif Display", Georgia, serif;
--font-body: "Inter", Arial, sans-serif;
}

* {
  box-sizing: border-box;
  }

html {
scroll-behavior: smooth;
}

body {
margin: 0;
background-color: var(--blue-main);
color: var(--beige-main);
font-family: var(--font-body);
font-size: 16px;
line-height: 1.7;
}

img {
display: block;
max-width: 100%;
}

a {
color: var(--beige-main);
text-decoration: none;
transition: color 0.2s ease;
}

a:hover {
color: var(--white);
}

h1,
h2,
h3,
h4 {
color: var(--beige-light);
font-family: var(--font-heading);
font-weight: 400;
line-height: 1.2;
}

h2 {
margin-bottom: 24px;
font-size: 42px;
}

h3 {
margin-bottom: 15px;
font-size: 26px;
}

p {
margin-bottom: 20px;
}

section {
scroll-margin-top: 90px;
}

.site-header {
min-height: 85px;
padding: 20px 5%;
display: flex;
align-items: center;
justify-content: space-between;
gap: 25px;
background-color: var(--blue-dark);
border-bottom: 1px solid var(--blue-border);
}

.logo {
color: var(--beige-light);
font-family: var(--font-heading);
font-size: 25px;
white-space: nowrap;
}

.site-header nav {
display: flex;
align-items: center;
justify-content: flex-end;
flex-wrap: wrap;
gap: 25px;
}

.site-header nav a {
color: var(--beige-main);
font-size: 13px;
font-weight: 600;
letter-spacing: 0.5px;
}

.site-header nav a:hover {
color: var(--white);
}

.hero {
min-height: calc(100vh - 85px);
display: flex;
align-items: center;
justify-content: center;
padding: 80px 30px;
text-align: center;
background-image:
linear-gradient(
rgba(10, 28, 52, 0.45),
rgba(10, 28, 52, 0.55)
),
url("landscape.jpg");
background-size: cover;
background-position: center;
color: var(--beige-main);
}

.hero-content {
width: 100%;
max-width: 850px;
}

.hero .eyebrow {
margin-bottom: 20px;
color: var(--beige-light);
font-size: 13px;
font-weight: 600;
letter-spacing: 4px;
}

.hero h1 {
margin: 0 0 25px;
color: var(--beige-light);
font-family: var(--font-heading);
font-size: 72px;
font-weight: 400;
line-height: 1.05;
text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
}

.hero-text {
max-width: 650px;
margin: 0 auto 35px;
color: var(--beige-light);
font-size: 19px;
line-height: 1.7;
text-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
}

.button,
.calculator button,
.contact-form button {
display: inline-block;
padding: 13px 28px;
border: 1px solid var(--beige-main);
border-radius: 2px;
background-color: var(--beige-main);
color: var(--blue-dark);
font-family: var(--font-body);
font-size: 13px;
font-weight: 700;
letter-spacing: 0.5px;
cursor: pointer;
transition:
background-color 0.2s ease,
color 0.2s ease,
border-color 0.2s ease;
}

.button:hover,
.calculator button:hover,
.contact-form button:hover {
border-color: var(--white);
background-color: var(--white);
color: var(--blue-dark);
}

.dark-button {
border-color: var(--blue-dark);
background-color: var(--blue-dark);
color: var(--beige-light);
}

.dark-button:hover {
border-color: var(--blue-secondary);
background-color: var(--blue-secondary);
color: var(--white);
}

.eyebrow {
color: var(--beige-muted);
font-size: 12px;
font-weight: 700;
letter-spacing: 3px;
line-height: 1.5;
}

.section-heading {
max-width: 750px;
margin: 0 auto 45px;
text-align: center;
}

.section-heading p:last-child {
margin-bottom: 0;
}

.intro {
max-width: 900px;
margin: 0 auto;
padding: 100px 30px;
text-align: center;
}

.intro > p:not(.eyebrow) {
max-width: 720px;
margin-right: auto;
margin-left: auto;
color: var(--beige-muted);
}

.services-preview {
padding: 85px 5%;
background-color: var(--blue-secondary);
}

.service-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 30px;
max-width: 1200px;
margin: 0 auto;
}

.service-card {
width: 100%;
min-width: 0;
overflow: hidden;
padding-bottom: 25px;
background-color: var(--blue-main);
border: 1px solid var(--blue-border);
}

.service-card img {
width: 100%;
height: 260px;
object-fit: cover;
}

.service-card h3 {
margin: 25px 25px 12px;
}

.service-card p {
margin: 0 25px 20px;
color: var(--beige-muted);
font-size: 14px;
}

.service-card a {
display: inline-block;
margin: 0 25px;
font-size: 13px;
font-weight: 700;
}

.page-intro {
padding: 100px 25px 80px;
text-align: center;
background-color: var(--blue-main);
}

.page-intro .eyebrow {
margin-bottom: 20px;
}

.page-intro h1 {
max-width: 900px;
margin: 0 auto 25px;
font-size: 60px;
}

.page-intro > p:last-child {
max-width: 700px;
margin-right: auto;
margin-left: auto;
color: var(--beige-muted);
}

.portfolio-section {
padding: 65px 5%;
}

.portfolio-section:nth-of-type(even) {
background-color: var(--blue-secondary);
}

.portfolio-heading {
max-width: 800px;
margin: 0 auto 35px;
text-align: center;
}

.portfolio-heading p:last-child {
color: var(--beige-muted);
}

.gallery {
width: 100%;
max-width: 1100px;
margin: 0 auto;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 20px;
}

.gallery > div {
min-width: 0;
}

.gallery figure {
height: 100%;
margin: 0;
overflow: hidden;
background-color: var(--blue-main);
border: 1px solid var(--blue-border);
}

.gallery img {
display: block;
width: 100%;
max-width: none;
height: 300px;
object-fit: cover;
transition: transform 0.4s ease;
}

.gallery figcaption {
padding: 12px 14px;
color: var(--beige-main);
}

.gallery figure:hover img {
transform: scale(1.05);
}

.portfolio-grid {
display: grid !important;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 20px;
width: 100%;
max-width: 1100px;
margin: 0 auto;
}

.portfolio-grid > div {
width: auto;
max-width: none;
min-width: 0;
padding: 0;
}

.portfolio-section figure {
width: 100%;
height: 100%;
margin: 0;
overflow: hidden;
background-color: var(--blue-main);
border: 1px solid var(--blue-border);
}

.portfolio-section figure img {
display: block;
width: 100%;
height: 300px;
max-width: none;
object-fit: cover;
transition: transform 0.4s ease;
}

.portfolio-section figure:hover img {
transform: scale(1.05);
}

.portfolio-section figcaption {
padding: 12px 14px;
color: var(--beige-main);
}

.portfolio-cta {
padding: 80px 25px;
background-color: var(--beige-main);
color: var(--blue-dark);
text-align: center;
}

.portfolio-cta h2 {
color: var(--blue-dark);
}

.portfolio-cta p {
max-width: 650px;
margin: 0 auto 28px;
color: var(--blue-secondary);
}

.service-list {
padding: 30px 7%;
}

.service-list .large-service {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
gap: 24px;
max-width: 1100px;
margin: 0 auto;
padding: 45px 0;
border-bottom: 1px solid var(--blue-border);
}

.service-list .large-service > div:first-child {
flex: 1 1 auto;
min-width: 0;
}

.service-list .large-service p:not(.eyebrow) {
color: var(--beige-muted);
}

.service-list .service-number {
display: none;
}

.pricing-section {
padding: 85px 5%;
background-color: var(--blue-secondary);
}

.pricing-table {
width: 100%;
max-width: 1100px;
margin: 0 auto;
overflow-x: auto;
border: 1px solid var(--blue-border);
}

.pricing-table table {
width: 100%;
margin: 0;
border-collapse: collapse;
background-color: var(--blue-main);
color: var(--beige-main);
}

.pricing-table th,
.pricing-table td {
padding: 17px 20px;
border-bottom: 1px solid var(--blue-border);
text-align: left;
vertical-align: top;
}

.pricing-table th {
background-color: var(--blue-dark);
color: var(--beige-light);
font-size: 13px;
font-weight: 700;
}

.pricing-table td {
font-size: 14px;
}

.pricing-table tr:last-child td {
border-bottom: none;
}

.pricing-table tbody tr:hover {
background-color: var(--blue-secondary);
}

.calculator-section {
padding: 85px 25px;
}

.calculator {
width: 100%;
max-width: 550px;
margin: 0 auto;
padding: 35px;
border: 1px solid var(--blue-border);
background-color: var(--blue-secondary);
}

.calculator label {
display: block;
margin-bottom: 8px;
color: var(--beige-light);
font-size: 14px;
font-weight: 600;
}

.calculator select,
.calculator input {
display: block;
width: 100%;
min-height: 46px;
margin-bottom: 22px;
padding: 10px 12px;
border: 1px solid var(--blue-input);
border-radius: 2px;
background-color: var(--blue-dark);
color: var(--beige-light);
font: inherit;
}

.calculator button {
width: 100%;
margin-top: 5px;
}

#price-result {
margin: 25px 0 0;
color: var(--beige-light);
font-size: 19px;
font-weight: 600;
}

.about-main.container {
display: block;
width: 100%;
max-width: 1200px;
margin: 0 auto;
padding: 50px 12px 70px;
}

.about-main > .row {
align-items: center;
}

.about-main .about-image {
width: 100%;
min-width: 0;
overflow: hidden;
border: 1px solid var(--blue-border);
}

.about-main .about-image img {
display: block;
width: 100%;
height: 420px;
max-height: none;
object-fit: cover;
object-position: center;
}

.about-main .about-text {
min-width: 0;
}

.about-main .about-text h2 {
margin-bottom: 22px;
}

.about-main .about-text p:not(.eyebrow) {
color: var(--beige-muted);
line-height: 1.8;
}

.values-section.container {
width: 100%;
max-width: 100%;
margin: 0;
padding: 75px max(5%, calc((100% - 1150px) / 2));
background-color: var(--blue-secondary);
}

.values-section .section-heading {
max-width: 750px;
margin: 0 auto 40px;
text-align: center;
}

.values-section .values-grid {
display: flex;
flex-wrap: wrap;
max-width: 1150px;
margin: 0 auto;
}

.values-section .values-grid > div {
min-width: 0;
}

.values-section .value-card {
height: 100%;
padding: 28px;
border: 1px solid var(--blue-border);
background-color: var(--blue-main);
color: var(--beige-main);
}

.values-section .value-card h3 {
margin-bottom: 16px;
color: var(--beige-light);
}

.values-section .value-card p {
margin-bottom: 0;
color: var(--beige-muted);
font-size: 14px;
line-height: 1.7;
}

.about-quote {
padding: 75px 25px;
text-align: center;
}

.about-quote p {
max-width: 850px;
margin: 0 auto;
color: var(--beige-light);
font-family: var(--font-heading);
font-size: 36px;
line-height: 1.4;
}

.contact-section {
display: grid;
grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
gap: 60px;
max-width: 1200px;
margin: 0 auto;
padding: 60px 5% 90px;
}

.contact-info p {
color: var(--beige-muted);
overflow-wrap: anywhere;
}

.contact-info h3 {
margin-top: 35px;
}

.contact-info a {
overflow-wrap: anywhere;
text-decoration: underline;
text-underline-offset: 3px;
}

.contact-form {
min-width: 0;
padding: 35px;
border: 1px solid var(--blue-border);
background-color: var(--blue-secondary);
}

.contact-form form {
display: flex;
flex-direction: column;
}

.contact-form label {
margin: 0 0 8px;
color: var(--beige-light);
font-size: 14px;
font-weight: 600;
}

.contact-form input,
.contact-form select,
.contact-form textarea {
width: 100%;
min-height: 46px;
margin-bottom: 22px;
padding: 12px;
border: 1px solid var(--blue-input);
border-radius: 2px;
background-color: var(--blue-dark);
color: var(--beige-light);
font-family: var(--font-body);
font-size: 14px;
}

.contact-form textarea {
min-height: 150px;
resize: vertical;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder {
color: var(--beige-muted);
opacity: 0.8;
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
border-color: var(--beige-main);
outline: 2px solid transparent;
box-shadow: 0 0 0 2px rgba(232, 220, 200, 0.2);
}

.contact-form button {
align-self: flex-start;
}

#form-message {
margin: 18px 0 0;
color: var(--beige-light);
font-size: 14px;
}

.location-section {
padding: 75px 5%;
background-color: var(--blue-secondary);
}

.map {
max-width: 1100px;
margin: 0 auto;
overflow: hidden;
border: 1px solid var(--blue-border);
}

.map iframe {
display: block;
width: 100%;
max-width: 100%;
}

.site-footer {
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
padding: 30px 5%;
background-color: var(--blue-dark);
border-top: 1px solid var(--blue-border);
}

.site-footer p {
margin: 0;
color: var(--beige-muted);
font-size: 12px;
}

.container,
.container-fluid {
color: inherit;
}

.btn:focus-visible,
.button:focus-visible,
.site-header a:focus-visible {
outline: 2px solid var(--beige-light);
outline-offset: 4px;
}

@media (max-width: 991px) {
.about-main .about-image img {
height: 350px;
}
}

@media (max-width: 900px) {
.site-header {
flex-direction: column;
justify-content: center;
gap: 15px;
}

```
.site-header nav {
    justify-content: center;
    gap: 15px 22px;
}

.hero {
    min-height: calc(100vh - 120px);
}

.hero h1 {
    font-size: 56px;
}

.service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.portfolio-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contact-section {
    gap: 35px;
}

.page-intro h1 {
    font-size: 48px;
}
```

}

@media (max-width: 600px) {
body {
font-size: 15px;
}

```
h2 {
    font-size: 34px;
}

.site-header {
    padding: 20px 15px;
}

.logo {
    font-size: 23px;
    text-align: center;
    white-space: normal;
}

.site-header nav {
    gap: 10px 16px;
}

.site-header nav a {
    font-size: 12px;
}

.hero {
    min-height: 75vh;
    padding: 55px 22px;
}

.hero h1 {
    font-size: 43px;
}

.hero-text {
    font-size: 16px;
}

.hero .eyebrow {
    font-size: 11px;
    letter-spacing: 3px;
}

.intro {
    padding: 65px 22px;
}

.services-preview,
.portfolio-section,
.pricing-section,
.values-section {
    padding: 60px 20px;
}

.service-grid {
    grid-template-columns: 1fr;
    gap: 25px;
}

.gallery,
.portfolio-grid {
    grid-template-columns: 1fr;
    gap: 25px;
}

.service-card img {
    height: 240px;
}

.page-intro {
    padding: 65px 22px 50px;
}

.page-intro h1 {
    font-size: 40px;
}

.service-list {
    padding: 20px 22px;
}

.service-list .large-service {
    gap: 12px;
    padding: 35px 0;
}

.pricing-table th,
.pricing-table td {
    padding: 12px;
    font-size: 12px;
}

.calculator {
    padding: 25px 20px;
}

.about-main.container {
    padding: 35px 22px 50px;
}

.about-main .about-image img {
    height: 300px;
}

.values-section.container {
    padding: 55px 20px;
}

.values-section .value-card {
    padding: 22px;
}

.about-quote {
    padding: 55px 22px;
}

.about-quote p {
    font-size: 28px;
}

.contact-section {
    grid-template-columns: 1fr;
    gap: 35px;
    padding: 40px 22px 65px;
}

.contact-form {
    padding: 25px 20px;
}

.location-section {
    padding: 55px 20px;
}

.map iframe {
    height: 300px;
}

.portfolio-cta {
    padding: 60px 22px;
}

.site-footer {
    flex-direction: column;
    gap: 8px;
    padding: 25px 20px;
    text-align: center;
}

}

@media (prefers-reduced-motion: reduce) {
html {
scroll-behavior: auto;
}

*,
*::before,
*::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
}

}
