/* ------------------------------------------------------------------------------------ */
/* modern reset */
/* ------------------------------------------------------------------------------------ */

*, *::before, *::after {
  box-sizing: border-box; /* The only rule you truly can't skip */
}

* {
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  font-family: serif; /* Sets a decent default immediately */
}

body {
	background-color:#faf8f4;
}

a {
	color: #8f8e8b;
}

img, svg {
  display: block;
  max-width: 100%;
  /* width:auto; */
  height:auto;
}

input, button, textarea, select {
  font: inherit; /* Makes forms stop looking like 1995 Windows */
}

button:focus {outline:0;}

.center-block {
    margin-left: auto;
    margin-right: auto;
}


.withBorder .col-content {
    border: 1px solid rgba(147, 128, 108, 0.5);
}

.col-content img {
	margin:0 auto;
}

.home-inset {
	max-width:1500px;
	margin:0 auto;
	padding:1rem 0px;
}

.split-text {
	padding:30px;
}

@media screen and (min-width: 1024px) {
	.split-text {
		padding:150px;
	}
}

.fade-in-section {
    opacity: 0;
    transform: translateY(50px);
    transition: opacity 1.5s ease-out, transform 1.5s ease-out;
}

.fade-in-section.is-visible {
    opacity: 1;
    transform: translateY(0);
    visibility: visible;
    pointer-events: auto;
}

.text-center {
	text-align:center;
}

.pb-0 {
	padding-bottom:0px;
}

.gh-link {
    color: #569d78;
    text-decoration: none;
    position: relative;
    text-transform: uppercase;
    font-style: italic;
    padding-bottom: 6px;
    font-size:18px;
}

.gh-link::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 115%; /* Makes the line 40% wider than the text */
    height: 1px;
    background-color: #569d78;
    transform: translateX(-50%); /* Centers the wider line under the text */
    transition: bottom 0.3s ease;
}

.gh-link:hover::after {
    bottom: 4px;
}

/* ------------------------------------------------------------------------------------ */
/* Block - Text */
/* ------------------------------------------------------------------------------------ */

.block-text {
	/* padding:40px 15px 30px 15px; */
	padding:20px 15px 30px 15px;
}
.block-text h2 {
	max-width:690px;
	margin-left: auto;
    margin-right: auto;
    text-align:center;
    margin-bottom:0px;
}
@media screen and (min-width: 768px) {
	.block-text {
		/* padding:55px 0px 50px 0px; */
		padding:35px 0px 50px 0px;
	}
}

/* ------------------------------------------------------------------------------------ */
/* fonts */
/* ------------------------------------------------------------------------------------ */

/* 
@font-face {
  font-family: 'Newsreader';
  src: url('fonts/Newsreader-VariableFont_opsz,wght.ttf') format('truetype-variations');
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Newsreader';
  src: url('fonts/Newsreader-Italic-VariableFont_opsz,wght.ttf') format('truetype-variations');
  font-weight: 200 800;
  font-style: italic;
  font-display: swap;
}
 */


@font-face {
  font-family: 'Newsreader';
  src: url('fonts/Newsreader.woff2') format('woff2-variations');
  font-weight: 200 800;
  font-style: normal;
  font-display: block; /* or optional */
}

@font-face {
  font-family: 'Newsreader';
  src: url('fonts/Newsreader-Italic.woff2') format('woff2-variations');
  font-weight: 200 800;
  font-style: italic;
  font-display: block; /* or optional */
}











body {
  font-family: 'Newsreader', serif;
  /* font-size: 18px; */
  font-size: 20px;
  line-height: 1.6;
  color: #8f8e8b;
  /* Automatically adjusts the 'opsz' axis based on font-size */
  font-optical-sizing: auto; 
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3 {
  font-family: 'Newsreader', serif;
}

h1, h2, h3, h4, h5, h6 {
  	font-variation-settings: "opsz" 24, "wght" 300;
  	line-height: 1.3; /* Good practice for large text */
  	margin-top: 1rem;
  	/* margin-bottom: 1rem; */
  	margin-bottom: 1.3rem;
}

h1 {
  font-size: clamp(2.8rem, 7vw, 3.5rem);
}

h2 {
  font-size: clamp(2rem, 5vw, 2.5rem);
}

h3 {
  font-size: clamp(1.6rem, 4vw, 2rem);
}

h4 {
  font-size: clamp(1.3rem, 3vw, 1.5rem);
}

h5 {
  font-size: clamp(1.1rem, 2.5vw, 1.2rem);
}

h6 {
  font-size: clamp(1rem, 2vw, 1.05rem);
}

p {
  font-weight: 400; /* Regular */
  margin-bottom: 1.3em;
}

.caption {
  font-size: 0.85rem;
  font-weight: 500;
  /* Low 'opsz' makes small text more legible/sturdy */
  font-variation-settings: "opsz" 9; 
  color: #666;
}

.gh-testimonial {
	max-width:900px;
	text-align:center;
	margin-top:50px;
	margin-bottom:44px;
	margin-left:auto;
	margin-right:auto;
	padding:0 30px;
}
.gh-testimonial {
	font-size:22px;
	color:#8f8e8b;
	font-style:italic;
	/* background-color:#91b8d7; */
}
.gh-testimonial p:last-of-type {
	font-style:normal;
}

.gh-testimonial-name {
	font-style:normal;
}

/* blue testimonial section */
.gh-testimonial-section {
    font-size: 22px;
    color: #8f8e8b;
    font-style: italic;
    text-align: center;
    background-color:#9ec4e259;
    padding: 50px 30px 10px 30px;
}
	

/* ------------------------------------------------------------------------------------ */
/* home */
/* ------------------------------------------------------------------------------------ */

.hero {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    width: 100%; /* Ensure it spans the full width */
    
    /* The Magic Sauce */
    position: fixed; 
    top: 0;
    left: 0;
    z-index: -1; /* Push it behind everything else */
}

.hero-container {
  	height: 100%;
  	margin: auto;
  	display: flex;
  	align-items: center;
  	justify-content: center;
  	position: relative;
    z-index: 1; /* Ensures text stays on top */
}

.hero-container h1 {
  	font-size: 50px;
}

.home-text {
	position: absolute;
    /* bottom: 100px; */
    left: 50%;
    transform: translate(-50%, -20%);
    width: 100%;
    bottom:0;
}

.home-text h1 {
    text-align: center;
    color:#ffffff;
    font-size:42px;
}
 
.slideshow-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1; /* Keep the container in the back */
    overflow: hidden;
}

.slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    /* A 5.5s fade is very slow; ensure the JS interval is longer than this! */
    transition: opacity 1.5s ease-in-out; 
    z-index: 1; 
}

.slide.active {
    opacity: 1;
    z-index: 2; /* This ensures the fading slide sits ABOVE the previous one */
}

.main-home {
    position: relative;
    z-index: 1; 
    margin-top: 100vh; /* This pushes the content down so it doesn't start on top of the hero */
    background: #faf8f4; /* Give it a solid background so the hero isn't visible through it */
}

.home-logo-wrapper img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  padding: 20px;
}

@media screen and (min-width: 1075px) {
	.home-logo-wrapper img {
		padding: 30px;
	}
}

.home-logo-wrapper img#spruce {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  padding: 30px;
}

@media screen and (min-width: 1075px) {
	.home-logo-wrapper img#spruce {
		padding: 60px;
	}
}

.home-logo-wrapper img#artful {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  padding: 25px;
}

@media screen and (min-width: 1075px) {
	.home-logo-wrapper img#artful {
		padding: 50px;
	}
}

.home-logo-section {
  	align-items: center;
  	background-color: #91b8d7;
  	padding:36px 0px 10px 0px;
}

.home-logo-section p {
	text-align:center;
	color:#000000;
	letter-spacing:2px;
	margin-bottom:0px;
}

/* move to services */
.process-header-section {
	align-items: center;
  	background-color: #91b8d7;
  	padding:40px 0px 0px 0px;
  	text-align:center;
	color:#000000;
	letter-spacing:2px;
	margin-bottom:0px;
	text-transform:uppercase;
	font-size:28px;
	margin-top:30px;
}


/* ------------------------------------------------------------------------------------ */
/* slide-out nav */
/* ------------------------------------------------------------------------------------ */
 
nav {
  	display: block;
  	/* Use dvh (Dynamic Viewport Height) if targeting modern browsers */
  	height: 100dvh; 
  	width: auto;
  	min-width: 250px; /* Example: ensure it has a clickable footprint */
  
  	position: fixed;
  	top: 0;
  	right: -33em;
  	z-index: 2000;
  
  	/* Critical for height calculations */
  	box-sizing: border-box; 
  	overflow-y: auto; 
  	overflow-x: hidden;

  	transition: right 1s ease-in-out;
  	background-color: rgba(145, 184, 215, 0.80);
  
  	/* width: 36vw; */
  	width:auto;
	min-width:375px;
}

.nav-expanded nav {
  	right: 0;
}


/* ------------------- */
/* menu section */
/* ------------------- */

.menu-section {
    font-size: 30px;
    padding: 100px 150px;
}
.menu-section a {
    text-decoration:none;
    color:#ffffff;
    transition: all .6s ease-in;
}
/* 
.menu-section a:hover {
	color:#1d3557;
}
 */
.menu-section a:hover {
    /* 29, 53, 87 is the RGB equivalent of #1d3557 */
    color: rgba(29, 53, 87, 0.5); 
}

.menu-section ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.menu-section li {
    margin: 0;
    padding: 0;
    padding-bottom: 14px;
    font-weight:300;
    text-transform:uppercase;
    letter-spacing:1px;
}

.menu-section-logo {
	width:86px;
	height:auto;
	padding-bottom:30px;"
}


/* ------------------- */
/* hamburger */
/* ------------------- */

.hamburger {
	top:8px;
	right:20px;
	z-index:2000;
	position:fixed;
	color:#ffffff;
}

.hamburger-inner, 
.hamburger-inner::before, 
.hamburger-inner::after {
    background-color: #ffffff;
    border-radius: 0px;
    
    /* Horizontal, Vertical, Blur, Color */
    /* This adds a soft gray glow slightly below the lines */
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
    
    /* Ensure the shadow animates smoothly with the bars */
    transition-property: transform, box-shadow;
}

/* Ensure the shadow stays present when the "X" is active */
.hamburger.is-active .hamburger-inner, 
.hamburger.is-active .hamburger-inner::before, 
.hamburger.is-active .hamburger-inner::after {
    background-color: #ffffff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); /* Slightly deeper shadow when active */
}


/* ------------------------------------------------------------------------------------ */
/* footer */
/* ------------------------------------------------------------------------------------ */

footer {
	background-color:#DEDBD6;
	padding:40px 30px 20px 30px;
	border-bottom:30px solid #F4C8D7;
}

.footer-tagline {
	color:#666666;
	padding-top:15px;
	font-size: 22px;
}

.gh-shadow {
  	-webkit-filter: drop-shadow( 0px 0px 10px rgba(99, 99, 99, .35));
  	filter: drop-shadow( 0px 0px 10px rgba(99, 99, 99, .35));
}

.social-icon svg {
    width: 30px;
    height: 30px;
    fill: #999999;
    margin-left: 15px;
    margin-right: 15px;
}

/* The main wrapper */
.footer-content {
  display: flex;
  flex-direction: column; /* Stacks the two ULs vertically */
  align-items: center;    /* Centers both ULs horizontally */
  gap: 20px;              /* Space between the icon row and text row */
}

/* Base styles for both lists */
.footer-content ul {
  display: flex;
  justify-content: center;
  list-style: none;
  padding: 0;
  margin: 0;
  gap: 25px;
}

/* Styling the text links specifically */
.footer-text-links a {
  text-decoration: none;
  color: #666;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.footer-text-links a:hover {
  text-decoration: underline;
}

ul.social-links {
	padding:30px 0px 20px 0px;
}

.legal {
	text-align:center;
	font-size:18px;
}

@media (max-width: 600px) {
  .footer-text-links {
    flex-direction: column; /* Switches from row to stack */
    gap: 12px;              /* Reduces the gap for a tighter stack */
    text-align: center;     /* Ensures text stays centered in the column */
  }

  .footer-content {
    gap: 30px;              /* Adds more space between the icon row and the text stack */
  }
}


