/*
 * =============================================
 *  SITE COLOR PALETTE — edit here to restyle
 *  the entire website instantly.
 *
 *  After saving, just refresh the browser.
 *  No other files need to be touched.
 * =============================================
 */

:root {
  /* Primary accent — used for highlights, buttons,
     section backgrounds, timeline dots            */
  --primary: #ffffff;

  /* 20% opacity version of primary                */
  --primary-20: rgba(247, 247, 247, 0.2);

  /* Secondary — used for cards & panels           */
  --secondary: #000;

  /* Main dark — body background                   */
  --black: #303030;

  /* Text / titles                                 */
  --white: #000000;

  /* Alternate section background                  */
  --light-gray: #f7f7f7;

  /* Fully transparent                             */
  --transparent: rgba(0, 0, 0, 0);

  /* Preloader background color                    */
  --preloader-bg: #f7f7f7;

  --gray-bg : #404040
}

/* ── Preloader animations ──────────────────────── */
@keyframes logo-fade {
  0% {
    opacity: 1;
  }
  60% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}

@keyframes background-fade {
  0% {
    opacity: 1;
  }
  60% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    display: none;
  }
}

.preloader {
  background-color: var(--preloader-bg) !important;
  animation: background-fade 3s ease-in-out forwards;
}

.preloader-logo {
  position: relative;
  z-index: 10;
  animation: logo-fade 3s ease-in-out forwards;
}

/* ── Body & nav override for light theme ─────── */
body {
  background-color: #ffffff !important;
  color: #000000 !important;
}

.navbar-dark,
.navbar {
  background-color: #ffffff !important;
}

/* Disable invert filter on nav — was for dark backgrounds */
.nav-menu.invert,
.invert.w-nav-menu {
  filter: none !important;
}

/* Nav link color & weight */
a.link,
a.link.w-nav-link,
a.link.w--current {
  color: #303030 !important;
  font-weight: 700 !important;
}

a.link:hover {
  color: #404040 !important;
}

/* ── Logo size — change max-height to resize ─── */
.logo {
  max-height: 30px !important;
  width: auto !important;
}

.preloader-image-wrapper {
  min-width: unset !important;
  max-width: unset !important;
  width: auto !important;
}

.preloader-image {
  height: 45px !important;
  width: auto !important;
}

/* ── Hero: Construction/Experts block ────────── */
.center-title {
  background-color: var(--secondary) !important;
}
.center-title .outline,
.center-title h1.outline {
  color: var(--white) !important;
  -webkit-text-stroke-color: var(--white) !important;
}

/* ── Hero: arrow buttons ─────────────────────── */
.left-arrow,
.right-arrow {
  background-color: var(--secondary) !important;
}

/* ── Fix: text must be white (#fff) not var(--white)
   which equals #000 in this light palette ────── */
.center-title .outline,
.center-title h1.outline {
  color: #ffffff !important;
  -webkit-text-stroke-color: #ffffff !important;
  -webkit-text-stroke-width: 0 !important;
}


/* ── Hero text block border radius ───────────────
   All blocks: bottom-right rounded
   First block only ("Exceptional"): top-left too  */
.center-title {
  border-bottom-right-radius: 20px !important;
}
.center-title.first-block {
  border-top-left-radius: 20px !important;
}

/* ── Hero text size ──────────────────────────────
   Change font-size to make "Exceptional/Living"
   bigger or smaller                               */
.center-title h1 {
  font-size: 45px !important;
  line-height: 62px !important;
  margin-left: 10px !important;
  margin-top: 10px !important;
}

/* ── Hero image ──────────────────────────────────
   object-fit: cover  = fills frame (more zoomed)
   object-fit: contain = shows full image
   Change border-radius to adjust rounded corners  */
.hero-image {
  object-fit: cover !important;
  border-top-left-radius: 20px !important;
  border-top-right-radius: 20px !important;
  border-bottom-left-radius: 20px !important;
  border-bottom-right-radius: 20px !important;
}

/* ── About section image ─────────────────────── */
.image-parallax {
  object-fit: cover !important;
  transform: scale(1) !important;  /* 0.8 = 80% zoom, shows more image. Lower = more visible */
  border-radius: 20px !important;
  margin-bottom: 50px !important;
}

/* ── Footer logo size ──────────────────────────── */
.footer-logo {
  max-height: 60px !important;  /* Adjust to make bigger/smaller */
  width: auto !important;
}

/* ── Footer text colors ────────────────────────── */
.footer-link {
  color: #000000 !important;
}

.footer-link:hover {
  color: #404040 !important;
}

/* ── Color utilities ──────────────────────────── */
.color-black {
  color: #000000 !important;
}

/* ── Hero image — fill full width ── */
.projects-hero-large-image {
  background-size: cover !important;
  background-position: center !important;
}

/* ── Project details text color ── */
.rich-text-block h2,
.rich-text-block h3,
.rich-text-block p,
.rich-text-block li {
  color: #000000 !important;
}

/* ── Spacing utilities ── */
.space-20px {
  height: 20px !important;
  display: block !important;
}

.space-32px {
  height: 32px !important;
  display: block !important;
}

.space-64px {
  height: 64px !important;
  display: block !important;
}

/* ── Mobile Menu (only on mobile) ── */
/* Desktop menu stays visible by default */

.w-nav-menu.w--open {
  display: flex !important;
  flex-direction: column !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100vh !important;
  background-color: #ffffff !important;
  padding: 80px 20px 40px !important;
  z-index: 999 !important;
}

.w-nav-menu.w--open .link-wrapper {
  margin-bottom: 30px !important;
  padding: 0 !important;
}

.w-nav-menu.w--open .link {
  font-size: 18px !important;
  font-weight: 600 !important;
  color: #303030 !important;
}

/* ── Mobile Responsiveness (Tablet & Below) ────── */
@media (max-width: 768px) {
  /* Logo sizing on mobile */
  .logo {
    max-height: 24px !important;
  }

  .preloader-image-wrapper {
    width: auto !important;
    min-width: unset !important;
    max-width: unset !important;
  }

  .preloader-image {
    height: 50px !important;
    width: auto !important;
  }

  /* Hero text sizing */
  .center-title h1 {
    font-size: 32px !important;
    line-height: 44px !important;
  }

  /* Spacing adjustments */
  .space-112px {
    height: 40px !important;
  }

  .space-64px {
    height: 32px !important;
  }

  .space-32px {
    height: 16px !important;
  }

  /* Footer logo smaller on mobile */
  .footer-logo {
    max-height: 40px !important;
  }

  /* Text wrapping and overflow fixes */
  p {
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    max-width: 100% !important;
  }

  h1, h2, h3, h4, h5, h6 {
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
  }

  /* Container padding for mobile */
  .container {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  /* Footer display */
  .section.background-light-gray {
    display: block !important;
  }

  footer,
  .footer-footer-top,
  .footer-footer-bottom {
    display: block !important;
    width: 100% !important;
  }

  /* Preloader full height */
  .preloader {
    min-height: 100vh !important;
  }

  /* Hide menu by default on mobile, show when opened */
  .w-nav-menu {
    display: none !important;
  }

  /* Featured text block width constraint */
  .featured-text-block {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 16px !important;
  }

  .featured-text-block p {
    max-width: 100% !important;
    word-break: break-word !important;
  }

  /* CTA section mobile spacing - move text lower */
  .cta-container {
    padding-top: 0 !important;
    padding-bottom: 40px !important;
  }

  .cta-wrapper {
    padding-top: 0 !important;
  }

  .cta-card {
    min-height: auto !important;
    max-height: none !important;
    height: auto !important;
    padding-top: 50px !important;
    background-position: 50% -50px !important;
  }

  .cta-title {
    margin-top: 10px !important;
  }
}

/* ── Mobile Responsiveness (Small Phones) ─────── */
@media (max-width: 480px) {
  /* Text sizing for small phones */
  body {
    font-size: 14px !important;
  }

  .center-title h1 {
    font-size: 24px !important;
    line-height: 32px !important;
  }

  h2 {
    font-size: 20px !important;
  }

  h3 {
    font-size: 18px !important;
  }

  /* Aggressive spacing reduction */
  .space-112px {
    height: 24px !important;
  }

  .space-64px {
    height: 20px !important;
  }

  .space-32px {
    height: 12px !important;
  }

  /* Padding for containers */
  .container {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* Logo sizing */
  .logo {
    max-height: 20px !important;
  }

  .preloader-image-wrapper {
    width: auto !important;
    min-width: unset !important;
    max-width: unset !important;
  }

  .preloader-image {
    height: 40px !important;
    width: auto !important;
  }

  .footer-logo {
    max-height: 32px !important;
  }

  /* Text overflow fixes */
  p, h1, h2, h3, h4, h5, h6 {
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    max-width: 100% !important;
  }

  /* Ensure footer is visible */
  footer,
  .footer-footer-top,
  .footer-footer-bottom,
  .section.background-light-gray {
    display: block !important;
    width: 100% !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  /* Footer section styling */
  .section.background-light-gray {
    background-color: #f7f7f7 !important;
    padding: 40px 16px !important;
    margin-top: 40px !important;
  }

  .footer-footer-top,
  .footer-footer-bottom {
    width: 100% !important;
    margin: 0 !important;
  }

  .footer-line {
    display: block !important;
    width: 100% !important;
    margin: 20px 0 !important;
  }

  /* Preloader full viewport */
  .preloader {
    min-height: 100vh !important;
    width: 100% !important;
    height: 100vh !important;
  }

  /* Featured text block width constraint */
  .featured-text-block {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 16px !important;
  }

  .featured-text-block p {
    max-width: 100% !important;
    word-break: break-word !important;
    font-size: 14px !important;
  }

  /* CTA section mobile spacing - move text lower */
  .cta-container {
    padding-top: 0 !important;
    padding-bottom: 30px !important;
  }

  .cta-wrapper {
    padding-top: 0 !important;
  }

  .cta-card {
    min-height: auto !important;
    max-height: none !important;
    height: auto !important;
    padding-top: 50px !important;
    background-position: 50% -50px !important;
  }

  .cta-title {
    margin-top: 8px !important;
    font-size: 24px !important;
  }

  /* Mobile menu toggle */
  .w-nav-menu {
    display: none !important;
  }

  .w-nav-menu.w--open {
    display: flex !important;
    flex-direction: column !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    background-color: #ffffff !important;
    padding: 80px 20px 40px !important;
    z-index: 999 !important;
  }

  .link-wrapper {
    margin-bottom: 30px !important;
    padding: 0 !important;
  }

  .link {
    font-size: 18px !important;
    font-weight: 600 !important;
    color: #303030 !important;
    text-decoration: none !important;
  }

  .link:hover {
    color: #404040 !important;
  }
}



