/*
Theme Name: Urban Shell
Theme URI: https://urbanproperties.co.in/
Author: Urban Properties (Sagar)
Author URI: https://urbanproperties.co.in/
Description: Custom theme for Urban Properties. v2.2.0 ships homepage polish: 5-image hero slideshow (with admin manager), upgraded property cards (image carousel, click-to-call modal, heart save), photo-backed Categories, Budget Pills with city dropdowns, restored Journey CTA + Exclusive Services design, Contact section polish, deduplicated header. Three new Admin Hub managers: Hero Slideshow, New Launch Carousel, Featured Properties.
Version: 2.2.3
Tested up to: 6.5
Requires at least: 6.0
Requires PHP: 7.4
License: GNU GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: urban-shell
Tags: real-estate, custom-theme
*/

/* ==========================================================================
   Urban Properties Brand CSS Variables
   These are inherited by ALL CSS files (header.css, hero.css, slider.css, etc.)
   ========================================================================== */

:root{
  /* Brand colors */
  --urban-orange: #F5A623;
  --urban-orange-dark: #E29410;
  --urban-orange-darker: #B88018;
  --urban-charcoal: #2C2C2C;
  --urban-charcoal-soft: #3A3A3A;
  --urban-whatsapp: #25D366;
  --urban-whatsapp-dark: #1FB855;
  --urban-slate: #5A6E7A;
  --urban-slate-dark: #4A5C66;
  --urban-verified: #1D9E75;

  /* Surfaces */
  --urban-page-bg: #FAF7F2;
  --urban-card-bg: #FFFFFF;
  --urban-soft-peach: #FDF1E1;
  --urban-soft-blue: #E8F1FB;
  --urban-soft-green: #E1F7E8;

  /* Text */
  --urban-text-primary: #2C2C2C;
  --urban-text-muted: #6B7280;
  --urban-text-light: #9CA3AF;
  --urban-text-on-dark: rgba(255,255,255,0.92);

  /* Borders */
  --urban-border: #E5E5E5;
  --urban-border-soft: #F0EDDF;
  --urban-border-card: rgba(0,0,0,0.08);

  /* Layout */
  --urban-max-width: 1280px;
  --urban-container-padding: 32px;
  --urban-section-padding: 80px;
  --urban-radius-sm: 8px;
  --urban-radius-md: 12px;
  --urban-radius-lg: 16px;
  --urban-radius-xl: 18px;
  --urban-radius-pill: 999px;

  /* Shadows */
  --urban-shadow-sm: 0 4px 12px rgba(0,0,0,0.06);
  --urban-shadow-md: 0 12px 30px rgba(0,0,0,0.08);
  --urban-shadow-lg: 0 20px 60px rgba(0,0,0,0.12);

  /* Transitions */
  --urban-transition: all 0.2s ease;
  --urban-transition-slow: all 0.35s ease;
}

/* ==========================================================================
   Base reset (theme-scoped, conservative)
   ========================================================================== */

body.urban-shell-active {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  color: var(--urban-text-primary);
  background: var(--urban-page-bg);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body.urban-shell-active *,
body.urban-shell-active *::before,
body.urban-shell-active *::after {
  box-sizing: border-box;
}

body.urban-shell-active a {
  color: var(--urban-orange);
  text-decoration: none;
  transition: var(--urban-transition);
}

body.urban-shell-active a:hover {
  color: var(--urban-orange-dark);
}

body.urban-shell-active img {
  max-width: 100%;
  height: auto;
}

/* Skip link (a11y) */
.urban-skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 9999;
  background: var(--urban-charcoal);
  color: #fff;
  padding: 12px 20px;
  border-radius: var(--urban-radius-md);
}
.urban-skip-link:focus {
  left: 12px;
  top: 12px;
}

/* Visually hidden (a11y) */
.urban-sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* Container utility */
.urban-container {
  max-width: var(--urban-max-width);
  margin: 0 auto;
  padding-left: var(--urban-container-padding);
  padding-right: var(--urban-container-padding);
}

/* ==========================================================================
   v2.2.2 — BUTTON TEXT FORCE-COLOR
   ==========================================================================
   These rules live in style.css (always loaded, can't be missed by cache
   optimization plugins) and use !important to guarantee button text
   visibility regardless of LiteSpeed/Autoptimize CSS merging/minification.
   
   Without these, the global `body.urban-shell-active a { color: orange }`
   rule wins, making button text invisible against same-colored backgrounds.
   ========================================================================= */

/* Exclusive Services CTAs */
body.urban-shell-active .urban-exclusive-card__cta--explore,
body.urban-shell-active .urban-exclusive-card__cta--explore:hover,
body.urban-shell-active .urban-exclusive-card__cta--explore:visited,
body.urban-shell-active .urban-exclusive-card__cta--whatsapp,
body.urban-shell-active .urban-exclusive-card__cta--whatsapp:hover,
body.urban-shell-active .urban-exclusive-card__cta--whatsapp:visited {
  color: #ffffff !important;
}

/* Property Card CTAs — Call (cream fill + orange text) */
body.urban-shell-active .urban-card-v2__cta--call,
body.urban-shell-active .urban-card-v2__cta--call:visited {
  background: #FFF8EC !important;
  color: #F5A623 !important;
  border-color: #F5A623 !important;
}
body.urban-shell-active .urban-card-v2__cta--call:hover {
  background: #F5A623 !important;
  color: #ffffff !important;
  border-color: #F5A623 !important;
}

/* Property Card CTAs — Chat (green + white text) */
body.urban-shell-active .urban-card-v2__cta--chat,
body.urban-shell-active .urban-card-v2__cta--chat:hover,
body.urban-shell-active .urban-card-v2__cta--chat:visited {
  color: #ffffff !important;
}

/* Property Card CTAs — View Details (orange + dark text) */
body.urban-shell-active .urban-card-v2__cta--details,
body.urban-shell-active .urban-card-v2__cta--details:visited {
  color: #2C2C2C !important;
}
body.urban-shell-active .urban-card-v2__cta--details:hover {
  color: #ffffff !important;
}

/* Card title link */
body.urban-shell-active .urban-card-v2__title a,
body.urban-shell-active .urban-card-v2__title a:visited {
  color: #2C2C2C !important;
}
body.urban-shell-active .urban-card-v2__title a:hover {
  color: #F5A623 !important;
}

/* Categories card text */
body.urban-shell-active .urban-cat-card-photo,
body.urban-shell-active .urban-cat-card-photo:hover,
body.urban-shell-active .urban-cat-card-photo:visited {
  color: #ffffff !important;
}
body.urban-shell-active .urban-cat-card-photo__cta {
  color: #2C2C2C !important;
}
body.urban-shell-active .urban-cat-card-photo:hover .urban-cat-card-photo__cta {
  color: #ffffff !important;
}

/* Journey CTA buttons */
body.urban-shell-active .urban-btn--primary {
  color: #2C2C2C !important;
}
body.urban-shell-active .urban-btn--primary:hover {
  color: #ffffff !important;
}
body.urban-shell-active .urban-btn--outline-light,
body.urban-shell-active .urban-btn--outline-light:hover {
  color: #ffffff !important;
}

/* Budget pill menu links */
body.urban-shell-active .urban-budget-menu__link,
body.urban-shell-active .urban-budget-menu__link:visited {
  color: #2C2C2C !important;
}
body.urban-shell-active .urban-budget-menu__link:hover,
body.urban-shell-active .urban-budget-menu__link:focus {
  color: #F5A623 !important;
}

/* Contact section cards */
body.urban-shell-active .urban-contact-card,
body.urban-shell-active .urban-contact-card:hover,
body.urban-shell-active .urban-contact-card:visited {
  color: #2C2C2C !important;
}
