﻿:root {
    --red:#a30003;
    --black:#000000;
    --ink:#181818;
    --muted:#646464;
    --soft:#f5f3ef;
    --line:#e4e1dc
}

* {
    box-sizing:border-box
}

body {
    margin:0;
    background:#fff;
    color:var(--ink);
    font-family:Arial,Helvetica,sans-serif;
    font-size:16px;
    line-height:1.7
}

a {
    color:var(--red);
    text-decoration:none
}

a:hover {
    color:#750002;
    text-decoration:underline
}

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible {
    outline:3px solid #d15323;
    outline-offset:5px
}

img {
    max-width:100%;
    height:auto
}

h1,h2,h3 {
    font-family:Arial,Helvetica,sans-serif;
    font-weight:750;
    letter-spacing:-.045em;
    line-height:1.12;
    color:var(--black);
    margin:0 0 22px
}

h1 {
    font-size:clamp(38px,5.2vw,70px)
}

h2 {
    font-size:clamp(28px,3.3vw,43px)
}

h3 {
    font-size:25px
}

p {
    margin:0 0 22px
}

.container {
    width:calc(100% - 80px);
    max-width:1200px;
    margin:0 auto;
    padding:0
}

.container:before,.container:after {
    display:none
}

.eyebrow {
    font-size:11px;
    font-weight:800;
    letter-spacing:.18em;
    color:var(--red);
    margin-bottom:20px
}

.lead {
    font-size:20px;
    line-height:1.7;
    color:var(--muted);
    font-weight:400
}

.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    padding:16px 24px;
    background:var(--red);
    border:1px solid var(--red);
    color:white;
    font-size:14px;
    font-weight:700;
    text-decoration:none;
    border-radius:3px;
    line-height:1.4
}

.button:hover {
    background:#7b0002;
    color:white;
    text-decoration:none
}

.button-outline {
    background:transparent;
    color:var(--ink);
    border-color:#c7c3bd
}

.button-light {
    background:#fff;
    border-color:#fff;
    color:var(--red)
}

.button-row {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:30px
}

.text-link {
    font-size:14px;
    font-weight:700;
    display:inline-block
}

.skip-link {
    position:absolute;
    left:20px;
    top:-100px;
    z-index:100;
    background:#fff;
    padding:12px
}

.skip-link:focus {
    top:10px
}

.utility-bar {
    background:var(--black);
    color:#fff;
    font-size:10px;
    letter-spacing:.13em;
    font-weight:700;
    padding:10px 0
}

.utility-bar .container {
    display:flex;
    justify-content:space-between
}

.utility-bar a {
    color:white;
    letter-spacing:.06em
}

.site-header {
    background:#fff;
    border-bottom:1px solid var(--line)
}

.header-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:26px;
    min-height:122px
}

.brand img {
    width:148px;
    display:block
}

.primary-nav {
    display:flex;
    gap:28px;
    align-items:center
}

.primary-nav a {
    font-size:14px;
    font-weight:700;
    color:#343434;
    padding:15px 0
}

.primary-nav a[aria-current] {
    color:var(--red);
    box-shadow:0 2px var(--red)
}

.header-cta {
    font-size:12px;
    padding:14px 20px
}

.menu-toggle {
    display:none
}

.home-hero {
    background:var(--soft);
    padding:68px 0 76px
}

.hero-grid {
    display:grid;
    grid-template-columns:1.08fr 1fr;
    gap:58px;
    align-items:center
}

.hero-copy h1 {
    font-size:clamp(40px,4.6vw,65px)
}

.hero-copy h1 span {
    color:var(--red)
}

.hero-copy>p:not(.eyebrow) {
    max-width:510px;
    font-size:18px;
    color:#5c5a57
}

.hero-photo {
    position:relative;
    padding-bottom:32px
}

.hero-photo>img {
    width:100%;
    height:410px;
    object-fit:cover;
    border-radius:4px
}

.photo-note {
    position:absolute;
    bottom:0;
    right:-12px;
    background:var(--black);
    color:white;
    padding:25px 32px;
    border-left:5px solid var(--red);
    min-width:240px
}

.photo-note span {
    display:block;
    font-size:9px;
    letter-spacing:.18em;
    color:#d5d2ce;
    margin-bottom:12px
}

.photo-note strong {
    font-size:24px;
    line-height:1.25;
    display:block;
    letter-spacing:-.03em
}

.trust-strip {
    background:var(--black);
    color:white
}

.trust-strip .container {
    display:flex;
    justify-content:space-between;
    padding:22px 0;
    gap:20px;
    font-size:13px
}

.trust-strip span:before {
    content:'✓';
    color:#e34d50;
    margin-right:12px
}

.section {
    padding:85px 0
}

.section-soft {
    background:var(--soft)
}

.section-heading {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:35px;
    margin-bottom:36px
}

.section-heading h2 {
    max-width:620px;
    margin-bottom:0
}

.section-heading>a {
    flex-shrink:0
}

.card-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px
}

.link-card {
    display:flex;
    flex-direction:column;
    border:1px solid var(--line);
    background:#fff;
    padding:30px;
    color:var(--ink);
    border-radius:4px;
    transition:transform .2s,border-color .2s
}

.link-card:hover {
    border-color:var(--red);
    transform:translateY(-3px);
    color:var(--ink);
    text-decoration:none
}



.link-card h3 {
    font-size:25px
}

.link-card p {
    color:var(--muted);
    font-size:15px;
    line-height:1.75
}

.link-card .text-link {
    margin-top:auto;
    padding-top:15px;
    color:var(--red)
}

.split-section {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:80px
}

.area-links {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin:30px 0
}

.area-links a {
    border:1px solid #d6d2cb;
    background:white;
    padding:17px 23px;
    color:var(--ink);
    font-size:15px;
    font-weight:700
}

.area-links a:hover {
    border-color:var(--red);
    color:var(--red)
}

.area-links span {
    padding-left:22px;
    color:var(--red)
}

.cta-band {
    background:var(--red);
    color:white;
    padding:60px 0
}

.cta-inner {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:50px
}

.cta-inner h2 {
    color:white;
    max-width:650px;
    font-size:36px
}

.cta-inner p {
    margin-bottom:0
}

.cta-inner .eyebrow {
    color:#f2bcbf;
    margin-bottom:15px
}

.cta-inner .button {
    flex-shrink:0
}

.site-footer {
    background:var(--black);
    color:#c5c5c5;
    padding:60px 0 0;
    font-size:14px
}

.footer-grid {
    display:grid;
    grid-template-columns:1.5fr 1fr 1fr;
    gap:60px;
    padding-bottom:50px
}

.footer-logo {
    width:165px;
    background:#fff;
    padding:8px;
    border-radius:3px;
    margin-bottom:22px
}

.site-footer h2 {
    font-size:17px;
    color:white;
    letter-spacing:0;
    margin:15px 0 23px
}

.site-footer a {
    display:block;
    color:white;
    margin-bottom:12px
}

.footer-bottom {
    border-top:1px solid #303030;
    padding:22px 0;
    display:flex;
    justify-content:space-between;
    font-size:11px;
    color:#aaa
}

.page-hero {
    background:var(--soft);
    padding:65px 0
}

.page-hero h1 {
    max-width:950px
}

.page-hero .lead {
    max-width:820px;
    margin-bottom:0
}

.breadcrumbs {
    display:flex;
    gap:12px;
    padding-top:20px;
    padding-bottom:20px;
    font-size:12px;
    flex-wrap:wrap;
    color:var(--muted)
}

.detail-grid {
    display:grid;
    grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);
    gap:80px;
    align-items:start
}

.detail-grid article>h2 {
    margin-bottom:38px
}

.article-section {
    margin-bottom:34px
}

.article-section h2 {
    font-size:25px;
    letter-spacing:-.025em;
    margin-bottom:16px
}

.article-section p {
    color:#595959
}

.service-aside,.location-aside {
    background:var(--soft);
    border:1px solid var(--line)
}

.service-aside>img {
    width:100%;
    height:220px;
    object-fit:cover
}

.aside-body,.location-aside {
    padding:30px
}

.service-aside h2,.location-aside h2 {
    font-size:27px
}

.service-aside p,.location-aside p {
    font-size:15px
}

.service-aside .text-link {
    display:block;
    margin-top:20px
}

.location-aside .button {
    margin-bottom:25px
}

.related-links {
    display:flex;
    gap:15px;
    flex-wrap:wrap
}

.related-links a {
    border-bottom:1px solid var(--line);
    padding:14px 0;
    margin-right:20px;
    font-weight:700
}

.services-container {
    background:var(--soft);
    padding:38px 0
}

.services-container p {
    max-width:900px;
    font-size:18px;
    color:var(--muted);
    margin-bottom:0
}

.body-content {
    padding:60px 0 80px
}

.body-content h1 {
    margin-bottom:35px
}

.body-content h2 {
    font-size:25px
}

.body-content .form-control {
    border:1px solid #cbc8c2;
    border-radius:3px;
    box-shadow:none;
    min-height:48px;
    padding:12px
}

.body-content label {
    font-size:14px
}

.body-content .btn-default {
    background:var(--red);
    color:white;
    border:0;
    padding:15px 32px
}

.body-content .form-group {
    margin-bottom:22px
}

.project-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px
}

.project-grid>h1,.project-grid>p {
    grid-column:1/-1
}

.project-tile img {
    width:100%;
    height:250px;
    object-fit:cover;
    border-radius:3px
}

.project-tile a {
    display:block
}

.sent-container {
    padding:20px
}

.alert-danger {
    padding:15px
}


@media(min-width:1000px) {
    .card-grid .link-card:nth-child(4):last-child {
    grid-column:auto
}


}


@media(max-width:1000px) {
    .header-cta {
    display:none
}

.hero-grid {
    gap:30px
}

.hero-photo>img {
    height:380px
}

.detail-grid {
    gap:35px
}

.card-grid {
    grid-template-columns:repeat(2,1fr)
}

.split-section {
    gap:40px
}

.hero-copy h1 {
    font-size:46px
}


}


@media(max-width:700px) {
    .container {
    width:calc(100% - 40px)
}

.header-inner {
    min-height:100px;
    flex-wrap:wrap;
    gap:0;
    position:relative
}

.brand img {
    width:120px
}

.menu-toggle {
    display:block;
    background:#fff;
    border:1px solid var(--line);
    padding:10px 14px;
    border-radius:3px;
    font-size:14px;
    font-weight:700
}

.menu-toggle span {
    margin-left:12px
}

.primary-nav {
    display:none;
    flex-basis:100%;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:10px 0 20px
}

.primary-nav.is-open {
    display:flex
}

.primary-nav a {
    padding:12px
}

.hero-grid,.split-section,.detail-grid {
    grid-template-columns:1fr
}

.home-hero {
    padding:42px 0
}

.hero-copy h1 {
    font-size:43px
}

.hero-photo {
    margin-top:15px
}

.hero-photo>img {
    height:290px
}

.photo-note {
    right:0;
    padding:20px 25px;
    min-width:210px
}

.photo-note strong {
    font-size:21px
}

.trust-strip .container {
    flex-direction:column;
    gap:9px;
    padding:20px 0
}

.section {
    padding:52px 0
}

.section-heading {
    display:block
}

.section-heading>a {
    margin-top:20px
}

.card-grid {
    grid-template-columns:1fr
}

.link-card {
    padding:25px
}



.split-section {
    gap:18px
}

.area-links {
    display:grid;
    grid-template-columns:1fr;
    margin:25px 0
}

.area-links a {
    display:flex;
    justify-content:space-between
}

.cta-inner {
    display:block
}

.cta-inner .button {
    margin-top:25px
}

.cta-inner h2 {
    font-size:30px
}

.cta-band {
    padding:45px 0
}

.footer-grid {
    grid-template-columns:1fr;
    gap:15px
}

.footer-bottom {
    display:block
}

.footer-bottom span {
    display:block;
    margin-bottom:8px
}

.page-hero {
    padding:42px 0
}

.page-hero h1 {
    font-size:39px
}

.lead {
    font-size:18px
}

.detail-grid {
    gap:25px
}

.project-grid {
    grid-template-columns:repeat(2,1fr);
    gap:12px
}

.project-tile img {
    height:170px
}

.body-content {
    padding:40px 0
}

.breadcrumbs {
    font-size:11px
}

.utility-bar {
    font-size:8px
}

.button-row {
    flex-direction:column;
    align-items:stretch
}


}


@media(prefers-reduced-motion:reduce) {
    * {
    transition:none!important;
    scroll-behavior:auto!important
}


}



/* Original project photography, with space reserved by intrinsic dimensions. */
.footer-bottom { align-items: flex-start; gap: 24px; }
.footer-licenses { text-align: right; font-size: 12px; line-height: 1.8; }
.footer-licenses p { margin: 0; }
.footer-licenses strong { color: #d5d5d5; font-weight: 600; }
@media (max-width: 700px) { .footer-licenses { text-align: left; margin-top: 16px; } }
.project-feature { margin: 30px 0 0; }
.project-feature img { display: block; width: 100%; height: auto; border-radius: 4px; }
.project-feature figcaption { margin-top: 12px; color: var(--muted); font-size: 12px; line-height: 1.7; }
.project-feature-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.project-feature-grid .project-feature { margin-top: 0; }
.project-feature-grid img { aspect-ratio: 3 / 2; object-fit: cover; }
.location-aside + .project-feature { margin-top: 24px; }
.body-content .project-feature { margin: 24px 0; }
@media (max-width: 700px) { .project-feature-grid { grid-template-columns: 1fr; } }
