
/* ========================= RESET ========================= */

* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

html, body {
margin: 0;
padding: 0;
overflow-x: hidden;
}

/* ========================= LAYOUT WRAPPER ========================= */

.site {
max-width: 1300px;
margin: 0 auto;
min-height: 100vh;
display: flex;
flex-direction: column;
}

/* ensures footer sits at bottom */
main {
flex: 1;
}

/* ========================= BASE STYLES ========================= */

body {
font-family: Helvetica, Arial, sans-serif;
font-size: 15px;
color: #34704a;
text-align: center;
background-color: white;
}

/* ========================= LINKS ========================= */

a {
color: #34704a;
text-decoration: none;
font-weight: bold;
}

a:hover {
opacity: 0.6;
}

/* ========================= NAV ========================= */

.nav {
width: 100%;
position: fixed;
top: 0;
left: 0;
display: flex;
justify-content: space-around;
background-color: #ffffff;
z-index: 1000;
padding: 10px 0;
border-bottom: 1px solid rgba(0,0,0,0.08);
}

.btn {
border: none;
color: #34704a;
padding: 10px 18px;
cursor: pointer;
font-size: 16px;
display: inline-block;
font-weight: bold;

}

.btn:hover {
opacity: 0.6;
}

/* ========================= HERO ========================= */

.Heroimage {
width: 100%;
text-align: center;
margin: 10px auto 25px;
}

.Heroimage img {
display: block;
width: 90%;
max-width: 650px; /* or whatever size looks best */
height: auto;
margin: 0 auto;
}

/* ========================= BODY TEXT (ABOUT/GENERAL) ========================= */

.body {
font-size: 21px;
line-height: 1.4;
padding: 60px;
padding-bottom: 20px; /* was effectively 60px */
max-width: 1300px;
margin: 0 auto;
text-align: center;
}

/* About page override */
body.about .body {
font-size: 16px;
}

.body p {
margin-bottom: 24px;
}

.body p:last-child {
margin-bottom: 0;
}

/* ========================= CONTACT (FIXED STRUCTURE) ========================= */

.contact-page {
max-width: 900px;
margin: 20px auto 0;
padding: 0 24px 80px;
}

.contact-intro h1 {
font-size: 42px;
font-weight: normal;
letter-spacing: -0.02em;
margin-bottom: 10px;
}

.contact-intro p {
font-size: 15px;
opacity: 0.7;
}

.contact-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 60px 80px;
margin-top: 10px;
}

.contact-block h3 {
font-size: 12px;
letter-spacing: 0.12em;
text-transform: uppercase;
font-weight: normal;
opacity: 0.6;
margin-bottom: 12px;
}

.contact-block a {
font-size: 18px;
color: #34704a;
text-decoration: none;
font-weight: bold;
position: relative;
display: inline-block;
}

.contact-block a::after {
content: "";
position: absolute;
left: 0;
bottom: -4px;
width: 0%;
height: 1px;
background: #34704a;
transition: width 0.25s ease;
}

.contact-block a:hover::after {
width: 100%;
}

/* ========================= FOOTER (MARQUEE) ========================= */

.DPUB {
width: 100vw;
margin-left: calc(50% - 50vw);
background-color: #34704a;
color: #ffffff;
padding: 10px 0;
overflow: hidden;
position: relative;
white-space: nowrap;
}

.DPUB-track {
display: flex;
flex-wrap: nowrap;
width: max-content;
align-items: center;
animation: scrollFooter 22s linear infinite;
will-change: transform;
}

.DPUB-track span {
display: inline-block;
white-space: nowrap;
color: #ffffff;
font-size: 13px;
font-weight: normal;
padding-right: 100px;
}

.DPUB a {
color: #ffffff !important;
text-decoration: none;
font-weight: normal;
}

.DPUB a:hover {
opacity: 0.7;
}

@keyframes scrollFooter {
0% {
transform: translateX(0);
}
100% {
transform: translateX(-50%);
}
}

/* ========================= MOBILE ========================= */

@media (max-width: 768px) {

main {
padding-top: 55px; /* Mobile nav height */
}
.nav {
background-color: #ffffff;
padding: 0;
}

.btn {
font-size: 14px;
padding: 12px 10px;
background-color: #ffffff;
}

.body {
font-size: 18px;
line-height: 1.4;
padding: 25px;
}

.contact-page {
margin: 80px auto 0;
padding: 0 25px 60px;
}

.contact-intro h1 {
font-size: 30px;
}

.contact-grid {
grid-template-columns: 1fr;
gap: 35px;
}

.DPUB-track {
animation: scrollFooter 28s linear infinite;
}

.DPUB-track span {
padding-right: 60px;
font-size: 12px;
}
}