/* ============================================
   GOOGLE FONTS IMPORT
   ============================================ */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&family=Roboto:wght@300;400;500&display=swap');

/* ============================================
   NAVBAR STYLES
   ============================================ */
.navbar {
    background-color: #ffffff !important;
    margin-bottom: 40px !important;
    width: 100% !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 80px !important;
    z-index: 1000 !important;
    display: flex !important;
    justify-content: center !important;
}

/* ============================================
   NAVBAR BRAND / LOGO STYLES
   ============================================ */
.navbar-brand {
    position: absolute !important;
        left: 50% !important;
    right: auto !important;
    top: 50% !important;
        transform: translate(-50%, -50%) !important;
    font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif !important;
    font-weight: 400 !important;
    letter-spacing: -0.03em !important;
    font-size: 3.2rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    color: #222222 !important;
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.12) !important;
}

/* Responsive design: navbar-brand font size on small screens */
@media (max-width: 576px) {
    .navbar-brand {
        font-size: 1.8rem !important;
    }
}

/* ============================================
   BODY & GLOBAL TEXT STYLES
   ============================================ */
body {
    background-color: #ffffff !important;
    color: #2b2b2b !important;
    font-family: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important;
}

/* Navigation links color */
/* .navbar-brand rules are combined above */
.navbar-nav .nav-item .nav-link {
    color: #2b2b2b !important;
}

/* ============================================
   MAIN CONTAINER
   ============================================ */
.tm-container {
    margin-top: 90px !important;
}

/* ============================================
   CAROUSEL STYLES
   ============================================ */
/* Remove default col padding for full-width carousel */
.row > .col {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Ensure carousel is full-width */
.carousel {
    width: 100% !important;
}

/* ============================================
   OFFCANVAS / MOBILE MENU STYLES
   ============================================ */
/* Blur the page when the offcanvas menu is open */
.offcanvas-backdrop.show {
    background-color: rgba(255, 255, 255, 0.12) !important;
    backdrop-filter: blur(6px) !important;
    -webkit-backdrop-filter: blur(6px) !important;
    transition: backdrop-filter 200ms linear, background-color 200ms linear !important;
}

/* Fallback: apply a subtle dark overlay on older browsers */
.offcanvas-backdrop.show::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.15);
    pointer-events: none;
}

/* Larger, touch-friendly menu items inside offcanvas */
.offcanvas .nav-link {
    font-size: 1.4rem !important;
    padding: 0.9rem 1rem !important;
    color: #222222 !important;
}

@media (max-width: 576px) {
    .offcanvas .nav-link {
        font-size: 1.25rem !important;
    }
}

/* ============================================
   FADE-IN ANIMATIONS
   ============================================ */
/* Simple fade-in animations (2s) */
.fade-in-left {
    animation: fadeInLeft 2s ease both;
}
.fade-in-right {
    animation: fadeInRight 2s ease both;
}
.fade-in-top {
    animation: fadeInTop 2s ease both;
}
.fade-in-bottom {
    animation: fadeInBottom 2s ease both;
}

/* ============================================
   KEYFRAME ANIMATIONS
   ============================================ */
@keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translateX(-20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes fadeInRight {
    from {
        opacity: 0;
        transform: translateX(20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes fadeInTop {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInBottom {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ============================================
   ACCESSIBILITY: RESPECT USER MOTION PREFERENCES
   ============================================ */
/* Respect user preference for reduced motion */
@media (prefers-reduced-motion: reduce) {
    .fade-in-left,
    .fade-in-right,
    .fade-in-top,
    .fade-in-bottom {
        animation: none !important;
    }
}

/* ============================================
   FOOTER STYLES
   ============================================ */
/* Header height is 80px; footer should be double that (160px) */
.site-footer {
    position: relative;
    left: 0;
    width: 100% !important;
    height: 200px !important;
    background-color: #2b2b2b !important;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
.site-footer .container-fluid {
    width: 100% !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Ensure body has enough bottom padding so content doesn't overlap the fixed footer (if footer becomes fixed later) */
@media (min-width: 0) {
    body {
        padding-bottom: 0 !important;
    }
}

/* Footer text styling */
.site-footer .footer-content p {
    color: #ffffff !important;
    margin: 0 !important;
}

/* Footer links/buttons */
.site-footer .footer-nav {
    display: flex;
    gap: 1.25rem;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
} 
.site-footer .footer-link {
    color: #ffffff !important;
    text-decoration: none !important;
    font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif !important;
    font-weight: 600 !important;
    transition: opacity 150ms ease !important;
}
.site-footer .footer-link:hover {
    opacity: 0.8 !important;
    text-decoration: underline !important;
}
form {
    color: #ffffff !important;
    font-size: 1rem !important;
}

.btn {
  color: rgb(255, 255, 255);
  text-transform: uppercase;
  text-decoration: none;
  border: 2px solid rgb(255, 255, 255);
  padding: 10px 20px;
  font-size: 17px;
  cursor: pointer;
  font-weight: bold;
  background: transparent;
  position: relative;
  transition: all 1s;
  overflow: hidden;
  border-radius: 0px !important;
}

.btn:hover {
  color: rgb(0, 0, 0);
  border-radius: 0px !important;
}

.btn::before {
  content: "";
  position: absolute;
  height: 100%;
  width: 0%;
  top: 0;
  left: -40px;
  transform: skewX(45deg);
  background-color: rgb(255, 255, 255);
  z-index: -1;
  transition: all 1s;
  border-radius: 0px !important;
}

.btn:hover::before {
  width: 160%;
}

.space {
    height: 30vh;
}

/* Featured images should display at a consistent size */
.featured-img {
    display: block;
    width: 100% !important;
    height: 260px !important;
    object-fit: cover;
}

/* Philosophy text styling */
.philosophy-text {
    font-family: 'Montserrat', sans-serif;
    font-size: 2rem;
    font-weight: 400;
    font-style: italic;
    line-height: 1.6;
    color: #2b2b2b;
    margin: 0;
    border-top: 2px solid #000;
    border-bottom: 2px solid #000;
    padding: 1rem 0;
}

@media (max-width: 768px) {
    .philosophy-text {
        font-size: 1.5rem;
    }
}
.text-front {
    font-size: large;
    margin: 10px;
    border-bottom: solid 1px #000;
    border-top: solid 1px #000;
}

.background-text.container {
  position: relative;
  text-align: center;
  color: white;
}

.top-left {
  position: absolute;
  top: 150px;
  left: 50px;
  right: 50px;
  z-index: 200;
}

.overlay-text {
  color: rgb(44, 44, 44);
  font-size: 1.5rem;
  font-weight: 500 !important;
}

/* Desktop font size for overlay text */
@media (min-width: 769px) {
  .overlay-text {
    font-size: 3rem;
  }
}

.layer {
  background-image: url('./cropped/5.jpg');
  background-color: rgba(53, 53, 53, 0.021);
  background-blend-mode: screen;
  top: 20px;
  width: 100vw;
  height: 100%;
}

.i-believe-text {
    position: relative;

}

.shadow {
    border-top: #ffffff;
    box-shadow: inset 0 0 0 200px rgb(white, white, white, 0.5);
}

/* Hero section responsive sizing */
@media (max-width: 768px) {
    .hero-section {
        max-width: 90% !important;
        margin: 0 auto !important;
    }
}

footer {
  margin: 0 !important;
  padding: 0 !important;
}

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

.smaller-text {
    @media screen and (max-width:769px) {
        body {
            font-size: 2rem !important;
        }
    }
}

.nav-item {
    background-color: white !important;
}

.navbar-collapse {
    margin-top: 20px !important;
}
