/* ================================================
   URBANSPACE DESIGN STUDIO - CUSTOM STYLES
   Kadence Child Theme Customizations
   ================================================ */

/* ================================================
   CSS VARIABLES & ROOT SETTINGS
   ================================================ */
:root {
    --gray-primary: #C6C2C2;
    --gray-dark: #838383;
    --black: #000000;
    --white: #FFFFFF;
    --transition-speed: 0.5s;
    --transition-speed-fast: 0.3s;
}

/* ================================================
   CUSTOM CURSOR STYLES
   ================================================ */
/* Enable custom cursor only on precise pointers that support hover */
@media (hover: hover) and (pointer: fine) {
    html, body { cursor: none !important; }

    /* Ensure descendants inherit cursor:none unless explicitly overridden */
    body *,
    body *::before,
    body *::after { cursor: inherit !important; }

    /* Keep native text cursor where typing/selecting text */
    input[type="text"],
    input[type="search"],
    input[type="email"],
    input[type="password"],
    textarea,
    [contenteditable="true"],
    select { cursor: text !important; }

    /* Hide pointer on typical clickable controls */
    a,
    a:link,
    a:visited,
    a:hover,
    a:focus,
    a *,
    a *:hover,
    a *:focus,
    button,
    button *,
    [role="button"],
    [role="button"] *,
    .wp-block-button__link,
    .wp-block-button__link *,
    .clickable,
    .clickable *,
    .splide__arrow,
    .splide__slide,
    .slick-arrow,
    .slick-slide,
    input[type="submit"],
    input[type="button"],
    label { cursor: none !important; }
}

.custom-cursor-wrapper {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 10000000 !important; /* above GLightbox (999999) */
}

.custom-cursor {
    position: absolute;
    /* Align the cursor tip (top-center) to the actual pointer */
    top: 0;
    left: -16px;
    width: 32px;
    height: 32px;
    pointer-events: none;
    will-change: transform;
}

/* Blend-mode cursor: invert against background without sampling */
/* Blend mode removed per request; sampling-based contrast is used. */

.custom-cursor-inner {
    width: 100%;
    height: 100%;
    /* Pivot around the tip so tilt doesn't move the click point */
    transform-origin: 16px 0px;
    transform-style: preserve-3d;
    /* Compose JS tilt and CSS hover scale via variables */
    transform: rotateZ(var(--rz, 0deg)) scale(var(--scale, 1));
    transition: transform 0.1s ease-out;
}

.cursor-svg {
    width: 100%;
    height: 100%;
    display: block;
}

/* Default: Dark mode cursor (for light backgrounds) */
.custom-cursor.cursor-dark-mode .cursor-outline {
    opacity: 0;
    stroke: none;
}

.custom-cursor.cursor-dark-mode .cursor-white-fill {
    opacity: 0;
}

.custom-cursor.cursor-dark-mode .cursor-fill {
    fill: #231f20;
    opacity: 1;
}

/* Light mode cursor (for dark backgrounds) */
.custom-cursor.cursor-light-mode .cursor-outline {
    opacity: 1;
    stroke: #ffffff;
    stroke-width: 1.5;
}

.custom-cursor.cursor-light-mode .cursor-white-fill {
    opacity: 0.95;
}

.custom-cursor.cursor-light-mode .cursor-fill {
    opacity: 0;
}

/* Force cursor to stay in proper mode over navigation */
body[data-cursor-dark-bg] .header-navigation a {
    /* Navigation links on dark background should keep light cursor */
    position: relative;
}

/* Hover state - subtle changes for links */
.custom-cursor.cursor-hover .cursor-dot {
    transform-origin: 16px 28.71px;
    transition: all 0.15s ease-out;
}

/* Make the dot slightly smaller on hover for a "click ready" feel */
.custom-cursor.cursor-hover .cursor-fill .cursor-dot {
    transform: scale(0.7);
}

.custom-cursor.cursor-hover .cursor-white-fill .cursor-dot {
    transform: scale(0.7);
}

.custom-cursor.cursor-hover .cursor-outline .cursor-dot {
    transform: scale(0.8);
}

/* Add a subtle shrink to the entire cursor */
.custom-cursor.cursor-hover .custom-cursor-inner {
    transition: transform 0.15s ease-out;
    --scale: 0.95;
}

/* Respect reduced motion and touch/coarse pointers: disable custom cursor */
@media (prefers-reduced-motion: reduce), (hover: none), (pointer: coarse) {
    html, body { cursor: auto !important; }
    .custom-cursor-wrapper { display: none !important; }
}

/* Escape hatch: disable within a subtree or globally via attribute */
[data-no-custom-cursor],
[data-no-custom-cursor] * { cursor: auto !important; }
html[data-no-custom-cursor] .custom-cursor-wrapper,
body[data-no-custom-cursor] .custom-cursor-wrapper { display: none !important; }

/* Don’t hide cursor over the WordPress admin bar */
#wpadminbar, #wpadminbar * { cursor: auto !important; }

/* Ensure system cursor stays hidden over GLightbox (custom cursor remains) */
@media (hover: hover) and (pointer: fine) {
    .glightbox-container, .glightbox-container * { cursor: none !important; }
}

/* ================================================
   GLOBAL STYLES & RESETS
   ================================================ */
.grecaptcha-badge {
    opacity: 0;
    display: none;
}

.entry.single-entry {
    box-shadow: none;
}

/* ================================================
   PAGE TRANSITIONS
   ================================================ */
/* Remove default hidden body to avoid blank-first-paint; fades are class-driven */
body {
    opacity: 1;
}

.fade-in {
    opacity: 1;
    transition: opacity var(--transition-speed) ease-in;
}

.fade-out {
    opacity: 0;
    transition: opacity var(--transition-speed) ease-out;
}

/* ================================================
   NAVIGATION & HEADER
   ================================================ */

/* GLightbox tweaks: lighten overlay and ensure controls visible */
.glightbox-container .goverlay {
    background: rgba(0, 0, 0, 0.82) !important;
    z-index: 1 !important;            /* keep behind content */
    pointer-events: none !important;  /* never block clicks */
}
.glightbox-container .gcontainer { z-index: 2 !important; }
.glightbox-container .gslide.current { z-index: 3 !important; }
.glightbox-container .gclose,
.glightbox-container .gnext,
.glightbox-container .gprev {
    opacity: 1 !important;
    visibility: visible !important;
}

/* Center images perfectly and avoid white gaps */
.glightbox-container .gslide { background: transparent !important; }
.glightbox-container .gslide-media,
.glightbox-container .gslide-image {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
}
.glightbox-container .gslide-image img {
    display: block !important;
    margin: 0 auto !important;
    padding: 0 !important;
    max-width: 100vw !important;
    max-height: 100vh !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
}

/* Hide GLightbox description/caption area to remove bottom space */
.glightbox-container .gslide-description { display: none !important; }

/* Main Navigation */
.site-header-item.site-header-item-main-navigation {
    align-items: flex-end;
}

.site-header-section-left {
    max-width: 800px;
}

.main-navigation .primary-menu-container > ul > li.menu-item > a {
    padding: 0 0.6em 5px 0.6em;
    font-size: 0.94em;
    letter-spacing: 0.08em;
    transition: font-weight 0.2s ease;
}

.main-navigation .primary-menu-container > ul > li.menu-item > a:hover {
    font-weight: 700;
}

/* Active main navigation item */
.main-navigation .primary-menu-container > ul > li.current-menu-item > a,
.main-navigation .primary-menu-container > ul > li.current-menu-ancestor > a {
    font-weight: 700;
}

/* Header Elements */
.header-social-inner-wrap {
    padding-bottom: 5px;
}

.site-header-main-section-right .header-html-inner {
    padding-bottom: 3px;
    padding-right: 20px;
}

/* Dropdown Navigation */
.header-navigation .header-menu-container ul ul li.menu-item,
.header-menu-container ul.menu > li.kadence-menu-mega-enabled > ul > li.menu-item > a {
    border-bottom: 0px;
}

.header-navigation .header-menu-container .sub-menu {
    padding: 1em 0;
    background: #000000 !important;
    background-color: #000000 !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    border-radius: 0 0 4px 4px;
}

.header-navigation .header-menu-container ul ul li.menu-item > a {
    font-size: 0.9em;
    padding: 0.6em 2em;
    width: 280px;
    text-transform: capitalize !important;
    transition: font-weight 0.2s ease, transform 0.2s ease;
    font-weight: 400;
    letter-spacing: 0.04em;
    line-height: 1.4;
    display: block;
    position: relative;
    background: transparent !important;
}

/* Submenu hover effect - bold text, no background change */
.header-navigation .header-menu-container ul ul li.menu-item > a:hover {
    font-weight: 700;
    transform: translateX(4px);
    background: transparent !important;
}

/* Active/Current submenu item */
.header-navigation .header-menu-container ul ul li.current-menu-item > a,
.header-navigation .header-menu-container ul ul li.current_page_item > a {
    font-weight: 700;
    color: var(--white);
}

/* Add subtle indicator for active item */
.header-navigation .header-menu-container ul ul li.current-menu-item > a::before,
.header-navigation .header-menu-container ul ul li.current_page_item > a::before {
    content: '';
    position: absolute;
    left: 1em;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 60%;
    background: var(--white);
    opacity: 0.8;
}

/* Menu Visibility (commented out as it may be controlled via admin) */
/* .primary-menu-container.header-menu-container,
.header-html {
    display: none;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
} */

.primary-menu-container.header-menu-container.show,
.header-html.show {
    display: block;
    opacity: 1;
}

/* Desktop Menu Toggle */
.desktop-menu-toggle {
    display: none;
    margin-bottom: 10px;
}

@media (min-width: 768px) {
    .desktop-menu-toggle {
        display: block;
    }
}

.desktop-menu-toggle svg {
    fill: var(--white);
    width: 25px;
    height: 25px;
}

/* Mobile Navigation */
.nav-drop-title-wrap {
    padding-right: 0px;
}

.drawer-sub-toggle {
    opacity: 0;
}

.dropdown-nav-toggle {
    display: none !important;
}

.site-header-item-mobile-navigation {
    padding-bottom: 50px;
}

.mobile-toggle-open-container .menu-toggle-open,
.mobile-toggle-open-container .menu-toggle-open:focus {
    opacity: 1 !important;
}

.mobile-menu-container .sub-menu a {
    text-transform: capitalize;
    margin-left: 10px;
}

.mobile-navigation ul ul {
    padding-left: 0;
}

.mobile-navigation ul li ul li a {
    padding: .3em;
}

/* (Intentionally no bolding of current items on mobile) */

.mobile-navigation ul.has-collapse-sub-nav .sub-menu.show-drawer {
    padding: 0px 0 40px;
}

/* (Intentionally no bolding/indicator for current items on mobile) */

/* Mobile Drawer */
.drawer-menu-container {
    text-align: left;
    padding: 0 30px;
}

.header-mobile-social-wrap {
    padding: 0 30px;
}

.mobile-html-inner p {
    margin: 30px 0px;
}

.mobile-html-inner {
    text-align: left;
    padding: 20px 35px 0;
}

.popup-drawer .drawer-content.content-align-center .site-header-item {
    justify-content: left;
}

.site-header-item.site-header-focus-item.site-header-item-mobile-navigation.mobile-navigation-layout-stretch-false {
    min-height: 50vh;
    margin-top: 5vh;
    align-items: flex-start;
}

/* ================================================
   ARCHIVE & PROJECT PAGES
   ================================================ */

/* Archive Pages */
.archive.content-style-unboxed h2 {
    text-transform: uppercase;
}

#archive-container h2 {
    font-size: 20px;
}

#archive-container .entry-header {
    margin-bottom: 0;
}

#archive-container .entry-summary,
#archive-container .entry-summary p {
    margin-top: 0;
}

#archive-container {
    padding: 2.5em;
}

@media (min-width: 1069px) {
    #archive-container {
        padding: 4.5em 0;
        max-width: 1250px;
        margin: 0 auto;
    }
}

/* Project Pages */
.single-project #inner-wrap {
    opacity: 1;
    transition: opacity 1s ease-out;
}

/* Constrain main content width under the hero */
.single-project .frame { max-width: 1400px; margin-left: auto; margin-right: auto; }

.single-project .project-header .project-title {
    margin-bottom: 16px;
}

/* Fullscreen Project Hero */
.single-project .project-hero-full {
    position: relative;
    width: 100%;
    height: 80vh;
    min-height: 480px;
    max-height: 100vh;
    overflow: hidden;
}

.single-project .project-hero-full .project-hero-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* no overlay */

/* ================================================
   CONTACT FORM (GRAVITY FORMS ID 1)
   Clean, minimal, tile-based choices
   ================================================ */
:root {
    --brand: #111; /* adjust to brand */
    --ink: #222;
    --muted: #6b6b6b;
    --line: #e6e6e6;
    --bg: #fafafa;
}

/* Field spacing */
#gform_fields_1 .gfield { margin-bottom: 22px; }

/* Labels and legends */
#gform_fields_1 .gfield_label,
#gform_fields_1 legend.gfield_label {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--muted);
  font-weight: 500;
  margin-bottom: 8px;
}
#gform_fields_1 .gfield_required_text { display: none; }

/* Inputs & textarea & select */
#gform_fields_1 input[type="text"],
#gform_fields_1 input[type="email"],
#gform_fields_1 textarea,
#gform_fields_1 select {
  width: 100%;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 14px 16px;
  font-size: 16px;
  line-height: 1.4;
  color: var(--ink);
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
#gform_fields_1 input:focus,
#gform_fields_1 textarea:focus,
#gform_fields_1 select:focus {
  outline: none;
  background: #fff;
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(17,17,17,.06);
}

/* Custom select caret for any remaining selects */
#gform_fields_1 select {
  -webkit-appearance: none;
  appearance: none;
  padding-right: 40px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 20 20' fill='none' stroke='%236b6b6b' stroke-width='1.5'><path d='M5 7l5 5 5-5'/></svg>");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px;
}

/* Position textarea counter neatly */
#gform_fields_1 .ginput_container_textarea { position: relative; }
#gform_fields_1 .ginput_counter {
  position: absolute;
  top: 10px;
  right: 12px;
  font-size: 12px;
  color: #999;
  background: transparent;
}

/* Turn checkbox/radio groups into tiles */
#gform_fields_1 .gfield--type-checkbox .gfield_checkbox,
#gform_fields_1 .gfield--type-radio .gfield_radio {
  display: grid;
  grid-template-columns: repeat(2, minmax(120px, 1fr));
  gap: 10px;
}
@media (min-width: 900px) {
  #gform_fields_1 .gfield--type-checkbox .gfield_checkbox,
  #gform_fields_1 .gfield--type-radio .gfield_radio {
    grid-template-columns: repeat(3, minmax(160px, 1fr));
  }
}
/* Hide the native controls but keep accessible */
#gform_fields_1 .gfield-choice-input {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}
#gform_fields_1 .gfield--type-checkbox label,
#gform_fields_1 .gfield--type-radio label {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 10px 12px;
  background: var(--bg);
  color: var(--ink);
  cursor: pointer;
  transition: background .2s, color .2s, border-color .2s, box-shadow .2s;
}
#gform_fields_1 .gfield-choice-input:focus + label {
  box-shadow: 0 0 0 3px rgba(17,17,17,.06);
}
#gform_fields_1 .gfield-choice-input:checked + label {
  background: var(--brand);
  color: #fff;
  border-color: var(--brand);
}

/* Submit button */
#gform_wrapper_1 .gform_footer input[type="submit"] {
  background: var(--brand);
  color: #fff;
  border: 0;
  border-radius: 999px;
  padding: 14px 22px;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-weight: 600;
  transition: opacity .2s ease, transform .02s ease;
}
#gform_wrapper_1 .gform_footer input[type="submit"]:hover { opacity: .9; }
#gform_wrapper_1 .gform_footer input[type="submit"]:active { transform: translateY(1px); }

/* Budget select -> mirrored tiles container */
.gf-budget-tiles {
  display: grid;
  grid-template-columns: repeat(2, minmax(140px,1fr));
  gap: 10px;
  margin-top: 8px;
}
.gf-budget-tiles .gfield-choice-input {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}
.gf-budget-tiles label {
  display:flex; align-items:center; justify-content:center; min-height:44px;
  border:1px solid var(--line); border-radius:12px; padding:10px 12px;
  background:var(--bg); cursor:pointer; transition:.2s; color: var(--ink);
}
.gf-budget-tiles .gfield-choice-input:focus + label { box-shadow: 0 0 0 3px rgba(17,17,17,.06); }
.gf-budget-tiles .gfield-choice-input:checked + label { background: var(--brand); color:#fff; border-color: var(--brand); }

/* Force two-across for "How did you hear about us" */
#field_1_8 .gfield_checkbox {
  display: grid;
  grid-template-columns: repeat(2, minmax(140px, 1fr)) !important;
  gap: 10px;
}


.single-project .project-hero-full .project-hero-content {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 0 24px;
}

.single-project .project-hero-full .project-hero-title {
    color: #fff;
    text-align: center;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    line-height: 1.1;
    font-size: clamp(28px, 6.5vw, 64px);
}

.single-project .project-intro .project-intro-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 60px; /* match gallery gap */
    align-items: end; /* align columns to image bottom */
}

.single-project .project-intro-square { grid-column: span 6; align-self: stretch; min-height: 420px; }

.single-project .project-intro-square img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.single-project .project-intro-text {
    grid-column: span 6;
    display: grid; /* two columns when both present */
    grid-template-columns: 2fr 1fr; /* use fr units so gap doesn't overflow */
    gap: 60px; /* desktop spacing between description and info */
    align-items: end;     /* align items to bottom */
    align-content: end;   /* pack grid content to bottom */
}

/* Ensure inner blocks sit on the bottom edge and remove stray spacing */
.single-project .project-intro-text > * { align-self: end; margin: 0; min-width: 0; }
.single-project .project-description p:last-child { margin-bottom: 0; }

.single-project .project-info { margin: 0; }

/* Make project details column slightly smaller than description */
.single-project .project-info { font-size: 0.95em; line-height: 1.55; }
.single-project .project-info p,
.single-project .project-info li,
.single-project .project-info dd,
.single-project .project-info dt { font-size: inherit; line-height: inherit; }
.single-project .project-info p {margin-bottom:0;}
@media (min-width: 1025px) {
  .single-project .project-info { font-size: 0.92em; }
}

@media (max-width: 767px) {
  .single-project .project-intro { margin-top: 20px; margin-bottom: 20px; }
  .single-project .project-intro .project-intro-grid { grid-template-columns: 1fr !important; gap: 20px; }
  .single-project .project-intro-text { grid-row: 1; grid-column: 1 / -1 !important; grid-template-columns: 1fr !important; width: 100% !important; align-items: start; align-content: start; overflow: visible; gap: 16px; }
  .single-project .project-intro-square { grid-row: 2; grid-column: 1 / -1 !important; min-height: unset; justify-self: stretch; }
  .single-project .project-intro-square a { display: block; width: 100%; }
  .single-project .project-intro-square img { width: 100% !important; height: auto !important; object-fit: cover; display: block; margin: 0; }
  .single-project .project-intro-text > * { align-self: start; }
}

/* Tablet: stack rows but show text first and use two columns in text */
@media (min-width: 768px) and (max-width: 1024px) {
  .single-project .project-intro .project-intro-grid { grid-template-columns: 1fr; gap: 24px; }
  /* Ensure full-width items on the single column grid */
  .single-project .project-intro-text { grid-row: 1; grid-column: 1 / -1; grid-template-columns: 2fr 1fr; gap: 60px; align-items: start; align-content: start; }
  .single-project .project-intro-square { grid-row: 2; grid-column: 1 / -1; justify-self: stretch; }
  .single-project .project-intro-square a { display: block; width: 100%; }
  .single-project .project-intro-square img { width: 100%; height: auto; object-fit: cover; display: block; }
 
}

.single-project .frame.project-intro { padding-bottom: 0;}
.single-project .project-gallery-section { margin-top: 30px; padding-top: 0; }

/* When there is no description/info, use single column */
.single-project .project-intro-grid.single-col { grid-template-columns: 1fr; }
.single-project .project-intro-grid.single-col .project-intro-square { grid-column: auto; }

/* When text/info present, make right column wider */
/* When both description and info exist, give text more room (5/7 split) */
.single-project .project-intro-grid.has-description.has-info .project-intro-square { grid-column: span 5; }
.single-project .project-intro-grid.has-description.has-info .project-intro-text { grid-column: span 7; }

/* When only info (no description), use 50/50 and bottom-align */
.single-project .project-intro-grid.info-only .project-intro-square { grid-column: span 6; }
.single-project .project-intro-grid.info-only .project-intro-text { grid-column: span 6; grid-template-columns: 1fr; }
/* Defer rendering below-the-fold gallery work to improve responsiveness */
.single-project .project-gallery-section {
    content-visibility: auto;
    contain-intrinsic-size: 800px;
}

.previous-next-project a {
    color: var(--black);
    text-transform: uppercase;
    text-decoration: none;
}
@media (max-width: 1024px) {
    .single-project .project-intro-grid.has-description.has-info .project-intro-text,
    .single-project .project-intro-grid.has-description.has-info .project-intro-square {
        grid-column: span 6 ;
    }
}
@media (max-width: 768px) {
    /* No explicit span needed on 1-col grid; let auto-placement flow */
    .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next,
    .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous {
        font-size: 20px;
    }
}

@media (max-width: 468px) {
    .previous-next-project a {
        font-size: .8em;
    }
}

/* ================================================
   RESPONSIVE SLIDERS
   ================================================ */
@media (max-width: 764px) {
    .mobile-slider {
        display: block;
    }
    .homepage-slider {
        display: none;
    }
}

@media (min-width: 764px) {
    .mobile-slider {
        display: none;
    }
    .homepage-slider {
        display: block;
    }
}

/* Homepage Slider Enhancements */
@media (hover: hover) and (pointer: fine) {
    .homepage-slider {
        position: relative;
        cursor: none !important;
    }
}

/* Dark fade-to-black effects for directional navigation on hover */
.homepage-slider::before,
.homepage-slider::after {
    content: '';
    position: absolute;
    top: 0;
    width: 200px;
    height: 100%;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
    z-index: 10;
}

/* Left side fade-to-black effect */
.homepage-slider::before {
    left: 0;
    background: linear-gradient(90deg, 
        rgba(0,0,0,0.8) 0%, 
        rgba(0,0,0,0.5) 30%,
        rgba(0,0,0,0.2) 60%, 
        rgba(0,0,0,0) 100%);
}

/* Right side fade-to-black effect */
.homepage-slider::after {
    right: 0;
    background: linear-gradient(270deg, 
        rgba(0,0,0,0.8) 0%, 
        rgba(0,0,0,0.5) 30%,
        rgba(0,0,0,0.2) 60%, 
        rgba(0,0,0,0) 100%);
}

/* Show side shadows based on hover position */
.homepage-slider.hover-left::before {
    opacity: 1;
}

.homepage-slider.hover-right::after {
    opacity: 1;
}

/* Hide arrow buttons but keep functionality */
.homepage-slider .splide__arrow,
.homepage-slider .slick-arrow,
.homepage-slider button[aria-label*="Previous"]:not(.kb-gallery-carousel-nav-prev):not(.kb-gallery-carousel-nav-next),
.homepage-slider button[aria-label*="Next"]:not(.kb-gallery-carousel-nav-prev):not(.kb-gallery-carousel-nav-next),
.homepage-slider .splide__arrows button,
.homepage-slider .slick-prev,
.homepage-slider .slick-next,
.homepage-slider .kb-gallery-carousel-nav-prev,
.homepage-slider .kb-gallery-carousel-nav-next,
.homepage-slider .kt-blocks-carousel-nav-prev,
.homepage-slider .kt-blocks-carousel-nav-next {
    opacity: 0 !important;
    z-index: 11;
    position: relative;
}

/* Click zones for navigation - works for both desktop and mobile */
.homepage-slider-click-zone,
.mobile-slider .homepage-slider-click-zone {
    position: absolute;
    top: 0;
    height: 100%;
    width: 40%;
    z-index: 9;
}
@media (hover: hover) and (pointer: fine) {
    .homepage-slider-click-zone { cursor: none !important; }
}

.homepage-slider-click-zone.prev,
.mobile-slider .homepage-slider-click-zone.prev {
    left: 0;
}

.homepage-slider-click-zone.next,
.mobile-slider .homepage-slider-click-zone.next {
    right: 0;
}

/* Mobile slider specific styles */
.mobile-slider {
    position: relative;
    cursor: pointer;
}

/* Hide desktop-style click zones on mobile slider */
.mobile-slider .homepage-slider-click-zone {
    display: none !important;
}

/* Hide navigation arrows on mobile slider */
.mobile-slider .splide__arrows,
.mobile-slider .splide__arrow,
.mobile-slider .splide__arrow--prev,
.mobile-slider .splide__arrow--next,
.mobile-slider .slick-prev,
.mobile-slider .slick-next,
.mobile-slider button[aria-label*="Previous"],
.mobile-slider button[aria-label*="Next"] {
    display: none !important;
}

/* Also hide pagination dots if you want */
.mobile-slider .splide__pagination {
    display: none !important;
}

/* Click to advance indication */
@media (hover: hover) and (pointer: fine) {
    .homepage-slider .splide__track,
    .homepage-slider .slick-list,
    .homepage-slider .kt-blocks-carousel-init,
    .homepage-slider .wp-block-kadence-advancedgallery {
        cursor: none !important;
    }
}

/* ================================================
   FORMS - GRAVITY FORMS CUSTOMIZATION
   ================================================ */

/* General Form Styles */
.gform_wrapper.gravity-theme input::placeholder,
.gform_wrapper.gravity-theme textarea::placeholder {
    color: var(--gray-primary);
}

.gform_wrapper.gravity-theme input[type=color],
.gform_wrapper.gravity-theme input[type=date],
.gform_wrapper.gravity-theme input[type=datetime-local],
.gform_wrapper.gravity-theme input[type=datetime],
.gform_wrapper.gravity-theme input[type=email],
.gform_wrapper.gravity-theme input[type=month],
.gform_wrapper.gravity-theme input[type=number],
.gform_wrapper.gravity-theme input[type=password],
.gform_wrapper.gravity-theme input[type=search],
.gform_wrapper.gravity-theme input[type=tel],
.gform_wrapper.gravity-theme input[type=text],
.gform_wrapper.gravity-theme input[type=time],
.gform_wrapper.gravity-theme input[type=url],
.gform_wrapper.gravity-theme input[type=week],
.gform_wrapper.gravity-theme select,
.gform_wrapper.gravity-theme textarea {
    border-radius: 10px;
    border-color: var(--gray-primary) !important;
}

.gform_wrapper.gravity-theme .gfield_label {
    font-weight: normal;
    font-size: .8em;
    margin-bottom: 15px;
}

.gform_wrapper.gravity-theme .gfield_required {
    display: none;
}

.gform_wrapper.gravity-theme .gform_fields {
    grid-row-gap: 25px;
}

.gform_wrapper.gravity-theme .gfield-choice-input+label {
    font-weight: normal;
    font-size: 1em;
    margin-left: 5px;
    line-height: 1.25em;
    text-transform: capitalize;
}

/* Submit Button */
#gform_submit_button_1 {
    background-color: var(--gray-primary);
    min-width: 50%;
    border-radius: 12px;
}

#gform_submit_button_1:hover {
    box-shadow: none;
}

/* Character Counter */
.charleft.ginput_counter.gfield_description {
    display: none;
}
#field_1_10 {display:none;}
/* Range Slider Styles */
.noUi-connect {
    background: var(--black);
}

.noUi-horizontal .noUi-handle {
    width: 20px;
    height: 22px;
    border: 0px;
    border-radius: 0;
    top: -7px;
}

.noUi-handle {
    background: var(--gray-primary);
    box-shadow: none;
}

.noUi-target {
    margin-top: 10px;
    margin-bottom: 40px !important;
    box-shadow: none;
}

.noUi-handle:before,
.noUi-handle:after {
    display: none;
}

.noUi-tooltip {
    font-weight: bold;
    font-size: 1.2em;
    border: 0px;
    left: 50%;
    bottom: -150% !important;
}

.noUi-horizontal {
    height: 7px;
}

#gfrs_rangeslider_9 {
    max-width: 95%;
}

@media (max-width: 768px) {
    #gfrs_rangeslider_9 {
        max-width: 90%;
        margin: 0 auto;
    }
}

/* ================================================
   CONTACT PAGE
   ================================================ */
#post-474 h2 {
    font-weight: normal;
    margin-bottom: 40px;
}

h2.contact-h2 {
    margin-bottom: 0px !important;
}

/* ================================================
   FOOTER
   ================================================ */
.home footer {
    display: none;
}

@media (min-width: 768px) {
    footer {
        display: none;
    }
}

footer {
    margin-top: 40px;
}

footer a,
footer a:hover {
    color: var(--gray-dark) !important;
}

.footer-social-wrap .footer-social-inner-wrap {
    justify-content: center;
}

.footer-social-wrap .footer-social-inner-wrap a {
    color: var(--white) !important;
}

.site-footer-row.site-footer-row-columns-1 .site-footer-section {
    justify-content: center;
    flex-direction: column;
}

.ft-ro-dir-row .footer-section-inner-items-2 .footer-widget-area {
    margin-left: 0;
}

/* ================================================
   LAYOUT & SPACING
   ================================================ */
.frame {
    padding: 1.5em;
}

@media (min-width: 768px) {
    .frame {
        padding: 3em;
    }
}

.grid-lg-col-2 {
    column-gap: 6%;
}

/* ================================================
   GLOBAL ELEMENTS
   ================================================ */
.entry-content-wrap a,
.entry-content-wrap a:hover {
    color: var(--black);
    text-decoration: none;
}

#wrapper {
    border-bottom: 50px solid var(--black);
}

.home #wrapper {
    border-bottom: 0px;
}

/* ================================================
   MOBILE RESPONSIVE ADJUSTMENTS
   ================================================ */
@media (max-width: 764px) {
    .archive.content-style-unboxed h2 {
        font-size: 1.1em;
        line-height: 1.2em;
    }
    
    .archive.content-style-unboxed .entry-content-wrap {
        margin: 0 15px;
    }
    
    .footer-widget-area-inner {
        text-align: center;
    }
    
    .footer-widget-area-inner .wp-block-kadence-image .alignright {
        float: none !important;
        margin: 0 auto;
        text-align: center;
        width: 100%;
    }
}
