/*
Theme Name: London Wedding Car Hire Child
Theme URI: https://londonweddingcarhire.co.uk
Description: Custom child theme for London Wedding Car Hire platform. Ultra-Premium Monochrome Design.
Author: Costinel Tiribejea
Author URI: https://londonweddingcarhire.co.uk
Template: hello-elementor
Version: 1.0.1
Text Domain: london-wedding-car
*/



:root{
  --black:#000000; --white:#FFFFFF;
  --gray-1:#F5F5F7;   /* Apple-style light gray background */
  --gray-2:#E8E8ED;
  --gray-text:#6E6E73; /* Apple-style secondary text gray */
  --ink:#1D1D1F;       /* near-black for primary text */
  --line:#D2D2D7;
  --black-2:#2C2C2E;   /* hover state for solid black elements */
  --shadow-md: 0 20px 45px rgba(0,0,0,.12);
  --font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --ease: cubic-bezier(.16,.84,.44,1);
}
*{box-sizing:border-box;margin:0;padding:0;}
body{ font-family:var(--font); background:var(--white); color:var(--ink); line-height:1.5; -webkit-font-smoothing:antialiased; letter-spacing:-0.01em; overflow-x:hidden; }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
.wrap{ max-width:1180px; margin:0 auto; padding:0 24px; }
@media (max-width:700px){ .wrap{ padding:0 20px; } }
section{ padding:110px 0; }

/* --- Apple-style scaled type: very large title, thin subtitle,
   normal body copy --- */
.tag{ font-size:19px; font-weight:600; color:var(--ink); margin-bottom:8px; }
h1{ font-family:var(--font); font-weight:600; font-size:clamp(38px,6vw,80px); line-height:1.05; letter-spacing:-0.03em; }
h2.display{ font-family:var(--font); font-weight:600; font-size:clamp(32px,5vw,64px); line-height:1.06; letter-spacing:-0.025em; text-align:center; }
h3.card-title{ font-weight:600; font-size:21px; letter-spacing:-0.01em; }
.subhead{ font-size:clamp(17px,1.6vw,21px); font-weight:400; color:var(--gray-text); line-height:1.45; }
.body-copy{ font-size:17px; color:var(--ink); max-width:70ch; }
.body-copy.centered{ margin:0 auto; text-align:center; }
.small-caption{ font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--gray-text); }

.gs-reveal{ opacity:0; transform:translateY(24px); }

/* --- Apple-style buttons: small pill, text-link with chevron --- */
.pill-btn{ display:inline-flex; align-items:center; gap:6px; padding:12px 22px; border-radius:980px; font-size:15px; font-weight:500; transition:transform .2s var(--ease), background .2s var(--ease); }
.pill-btn.solid{ background:var(--black); color:var(--white); }
.pill-btn.solid:hover{ background:var(--black-2); }
.text-link{ display:inline-flex; align-items:center; gap:4px; font-size:16px; font-weight:400; color:var(--ink); }
.text-link::after{ content:"\203A"; font-weight:400; }
.cta-row{ display:flex; gap:24px; justify-content:center; align-items:center; flex-wrap:wrap; margin-top:22px; }

/* ============================================================
   HERO
   ============================================================ */
/* Shimmer sweep pe butoane (clasa .lwch-pill pe butoane) */
.lwch-pill{ position:relative; overflow:hidden; }
.lwch-pill::before{ content:""; position:absolute; inset:0; background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,.35) 50%, transparent 70%); transform:translateX(-120%); transition:transform .8s cubic-bezier(.16,.84,.44,1); }
.lwch-pill:hover::before{ transform:translateX(120%); }
/* --- Buton premium cu shimmer la hover (NU nativ Elementor — referință) --- */
.pill-btn{ position:relative; overflow:hidden; display:inline-flex; padding:14px 30px; border-radius:980px; font-size:14px; font-weight:600; letter-spacing:.03em; text-decoration:none; transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.pill-btn.solid{ background:var(--black); color:var(--white); }
.pill-btn.solid:hover{ transform:translateY(-2px); box-shadow:0 14px 34px rgba(0,0,0,.25); }
.pill-btn.solid::before{ content:""; position:absolute; inset:0; background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,.35) 50%, transparent 70%); transform:translateX(-120%); transition:transform .8s var(--ease); }
.pill-btn.solid:hover::before{ transform:translateX(120%); }
.pill-btn.ghost{ border:1px solid var(--gold); color:var(--ink); background:transparent; }
.pill-btn.ghost:hover{ background:var(--gold); color:#fff; }

/* --- Reveal la scroll (echivalent vizual pt. "_animation" nativ Elementor) --- */
.reveal{ opacity:0; transform:translateY(38px); transition:opacity 1.1s var(--ease), transform 1.1s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal.d1.in{ transition-delay:.1s; } .reveal.d2.in{ transition-delay:.22s; } .reveal.d3.in{ transition-delay:.34s; } .reveal.d4.in{ transition-delay:.46s; }

/* --- Card premium: lift + umbră la hover (echivalent "hover_animation":"float") --- */
.card-lux{ background:#fff; border-radius:22px; transition:transform .5s cubic-bezier(.16,.84,.44,1), box-shadow .5s cubic-bezier(.16,.84,.44,1); box-shadow:0 10px 30px rgba(0,0,0,.06); }
.card-lux:hover{ transform:translateY(-10px); box-shadow:0 30px 70px rgba(0,0,0,.14); }

/* --- Zoom lent pe imagine în card (NU nativ, referință) --- */
.img-zoom{ overflow:hidden; border-radius:22px; }
.img-zoom img{ display:block; width:100%; transition:transform 1.4s var(--ease); }
.img-zoom:hover img{ transform:scale(1.08); }
.hero {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  padding-top: 6rem;
  overflow: hidden;
}

.hero h1{ max-width:15ch; margin:0 auto 18px; }
.hero .subhead{ max-width:52ch; margin:0 auto; }
.hero-media{ margin-top:56px; border-radius:28px; overflow:hidden; aspect-ratio:16/8; max-width:1180px; margin-left:auto; margin-right:auto; }
.hero-media img{ width:100%; height:100%; object-fit:cover; }
@media (max-width:700px){ .hero-media{ aspect-ratio:4/5; border-radius:18px; } }

.intro-copy{ max-width:760px; margin:56px auto 0; text-align:center; }

/* ============================================================
   ALTERNATING GRAY / WHITE SECTIONS
   ============================================================ */
.section-gray{ background:var(--gray-1); }
.section-head{ text-align:center; max-width:720px; margin:0 auto 50px; }
.section-head .small-caption{ display:block; margin-bottom:14px; }

/* ============================================================
   FLEET
   ============================================================ */
.fleet-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
@media (max-width:900px){ .fleet-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .fleet-grid{ grid-template-columns:1fr; } }
.tile{ background:var(--white); border-radius:22px; overflow:hidden; padding-bottom:26px; }
.tile .img{ aspect-ratio:1/1; overflow:hidden; }
.tile .img img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.tile:hover .img img{ transform:scale(1.05); }
.tile .body{ padding:22px 22px 0; text-align:center; }
.tile .kicker{ font-size:13px; color:var(--gray-text); margin-bottom:4px; }
.tile p.desc{ font-size:14px; color:var(--gray-text); margin:8px 0 14px; }
.section-footer-link{ text-align:center; margin-top:44px; }

/* ============================================================
   PACKAGES
   ============================================================ */
.packages-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media (max-width:800px){ .packages-grid{ grid-template-columns:1fr; } }
.package-tile{ background:var(--white); border-radius:22px; padding:40px 32px; text-align:center; }
.package-tile p{ font-size:14.5px; color:var(--gray-text); margin:12px 0 16px; }

/* ============================================================
   VENUES - dramatic black section, high-contrast
   ============================================================ */
.section-black{ background:var(--black); color:var(--white); }
.section-black .small-caption{ color:rgba(255,255,255,.55); }
.section-black .subhead{ color:rgba(255,255,255,.6); }
.venues-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:50px; }
@media (max-width:900px){ .venues-grid{ grid-template-columns:1fr 1fr; } }
.venue-tile{ position:relative; aspect-ratio:3/4; border-radius:20px; overflow:hidden; }
.venue-tile img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.venue-tile:hover img{ transform:scale(1.06); }
.venue-tile .label{ position:absolute; left:0; right:0; bottom:0; padding:20px; background:linear-gradient(0deg, rgba(0,0,0,.8), transparent); font-size:17px; font-weight:600; }

/* ============================================================
   AREAS WE COVER
   ============================================================ */
.areas-row{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:36px; }
.area-pill{ padding:12px 24px; border:1px solid var(--line); border-radius:980px; font-size:14.5px; font-weight:500; }

/* ============================================================
   REVIEWS
   ============================================================ */
.reviews-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media (max-width:800px){ .reviews-grid{ grid-template-columns:1fr; } }
.review-tile{ background:var(--white); border-radius:22px; padding:32px; }
.review-tile blockquote{ font-size:18px; font-weight:500; letter-spacing:-0.01em; margin-bottom:16px; }
.review-tile cite{ font-style:normal; font-size:13px; color:var(--gray-text); }

/* ============================================================
   BLOG TEASER
   ============================================================ */
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media (max-width:800px){ .blog-grid{ grid-template-columns:1fr; } }
.blog-tile{ border-radius:22px; overflow:hidden; background:var(--white); }
.blog-tile .img{ aspect-ratio:16/10; background:var(--gray-2); display:flex; align-items:center; justify-content:center; color:var(--gray-text); font-size:13px; }
.blog-tile .body{ padding:22px 24px 28px; }
.blog-tile p{ font-size:14px; color:var(--gray-text); margin-top:8px; }

/* ============================================================
   FAQ
   ============================================================ */
.faq-list{ max-width:800px; margin:0 auto; }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-head{ width:100%; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:26px 0; font-size:19px; font-weight:600; letter-spacing:-0.01em; text-align:left; background:none; border:none; cursor:pointer; color:var(--ink); }
.faq-head .plus{ font-size:22px; font-weight:300; transition:transform .3s var(--ease); flex-shrink:0; }
.faq-item.is-open .plus{ transform:rotate(45deg); }
.faq-body{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .35s var(--ease); }
.faq-item.is-open .faq-body{ grid-template-rows:1fr; }
.faq-body-inner{ overflow:hidden; }
.faq-body-inner p{ padding-bottom:26px; color:var(--gray-text); font-size:15.5px; max-width:68ch; }

/* ============================================================
   CLOSING STATEMENT
   ============================================================ */
.closing{ text-align:center; }
.closing h2.display{ max-width:18ch; margin:0 auto; }

/* ============================================================
   CTA FINAL
   ============================================================ */
.cta-section{ background:var(--gray-1); }
.cta-grid{ display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; }
@media (max-width:900px){ .cta-grid{ grid-template-columns:1fr; } }
.form-card{ background:var(--white); border-radius:22px; padding:34px; }
.field{ position:relative; margin-bottom:18px; }
.field input, .field select{ width:100%; padding:15px 14px 8px; font-size:15px; border:1px solid var(--line); border-radius:10px; background:var(--white); font-family:inherit; color:var(--ink); }
.field label{ position:absolute; left:14px; top:14px; font-size:14px; color:var(--gray-text); transition:all .2s var(--ease); pointer-events:none; }
.field input:focus + label, .field input:not(:placeholder-shown) + label{ top:5px; font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.field input::placeholder{ color:transparent; }
.pill-btn.full{ width:100%; justify-content:center; }
/* Utility classes to replace inline styles */
.mt-18 { margin-top: 18px; }
.m-0 { margin: 0; }
.mt-16 { margin-top: 16px; }
.mt-22 { margin-top: 22px; }
.mt-14 { margin-top: 14px; }
.text-left { text-align: left; }

/* ============================================================
   NAV BAR - glass, narrows on scroll
   (selectors prefixed with "body" for extra specificity so
   Elementor's own generated CSS is less likely to win ties)
   ============================================================ */
/* Stilizare pentru logo-ul imagine din header */
/* Forțăm înălțimea logo-ului crescând specificitatea selectorului */
img.header-logo-image {
    height: 85px !important;
    max-height: 85px !important;
    width: auto !important;
    min-width: 1px; /* Previne colapsarea în unele browsere */
    display: inline-block;
    object-fit: contain;
    transition: opacity 0.3s var(--ease);
}

/* Efectul de hover adaptat la noul selector */
#siteNav .nav-inner .nav-logo:hover img.header-logo-image {
    opacity: 0.8;
}
/* Efect subtil de hover, specific site-urilor premium */
#siteNav .nav-logo:hover .header-logo-image {
    opacity: 0.8;
}

/*
  IMPORTANT: everything below is scoped with the #siteNav ID selector
  (the header.php wrapper has id="siteNav") instead of the plain
  .site-nav class. An ID selector outranks almost any class-based rule
  that Elementor or the parent "hello-elementor" theme injects globally
  (e.g. generic `button`, `a`, `.nav-menu`, `.nav-link` resets/hover
  colors coming from the Elementor global kit), so our styles win
  regardless of stylesheet load order. Do not rename this ID.
*/
#siteNav{
  position:fixed; top:0; left:0; right:0; z-index:310;
  background:#fff; backdrop-filter:none;
  border-bottom:1px solid transparent;
  transition: padding .3s var(--ease), background .3s var(--ease), backdrop-filter .3s var(--ease), border-color .3s var(--ease);
}
#siteNav.is-scrolled{
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(14px) saturate(160%);
  border-bottom-color:var(--line);
}
#siteNav .nav-inner{ max-width:1320px; margin:0 auto; padding:10px 32px; display:flex; align-items:center; justify-content:space-between; gap:24px; transition:padding .3s var(--ease); }
#siteNav.is-scrolled .nav-inner{ padding:13px 32px; }
#siteNav .nav-logo{ font-family:var(--font); font-size:22px; white-space:nowrap; font-weight:600; letter-spacing:-0.02em; }
#siteNav .nav-logo em{ color:var(--ink); font-style:normal; }

/* --- desktop menu --- */
#siteNav .nav-menu{ display:flex; align-items:center; gap:4px; position:relative; flex:1; justify-content:center; }
#siteNav .nav-item{ position:relative; }
#siteNav .nav-link,
#siteNav .nav-link:link,
#siteNav .nav-link:visited{
  display:flex; align-items:center; gap:6px; padding:12px 16px; font-size:14px; font-weight:600; color:var(--ink) !important; border-radius:999px; position:relative; z-index:2;
  /* .nav-link is a real <button> element in header.php (the data-trigger buttons for
     Fleet/Services/Venues/Areas/Company). Elementor's global kit styles buttons and
     links with an accent color (this is what was showing up as the pink/red hover
     live). background/color/border/outline are forced with !important here so no
     theme or Elementor rule can repaint them, on every interactive state. */
  background:none !important; border:none !important; box-shadow:none !important; font-family:inherit; appearance:none; -webkit-appearance:none; cursor:pointer;
}
#siteNav .nav-link:hover,
#siteNav .nav-link:focus,
#siteNav .nav-link:active,
#siteNav .nav-item.is-open .nav-link{
  background:var(--gray-1) !important;
  color:var(--ink) !important;
  outline:none !important;
}
#siteNav .nav-link:focus-visible{
  outline:2px solid var(--ink) !important;
  outline-offset:2px;
}
#siteNav .nav-link .chevron{ width:9px; height:9px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); margin-top:-3px; transition:transform .25s var(--ease); }
#siteNav .nav-item.is-open .nav-link .chevron{ transform:rotate(-135deg); margin-top:3px; }
#siteNav .nav-underline{ position:absolute; top:0; left:0; height:100%; background:var(--gray-1); border-radius:999px; z-index:1; opacity:0; pointer-events:none; }

/* --- CTA area --- */
#siteNav .nav-cta{ display:flex; align-items:center; gap:16px; white-space:nowrap; }
#siteNav .nav-phone,
#siteNav .nav-phone:hover,
#siteNav .nav-phone:visited{ display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:700; color:var(--ink) !important; }
#siteNav .nav-phone svg{ width:16px; height:16px; stroke:var(--ink); }
#siteNav .btn-quote,
#siteNav .btn-quote:visited{ padding:12px 24px; border-radius:999px; background:var(--black) !important; color:var(--white) !important; font-size:13.5px; font-weight:700; }
#siteNav .btn-quote:hover,
#siteNav .btn-quote:focus{ background:var(--black-2) !important; color:var(--white) !important; }

/* ============================================================
   DROPDOWN PANELS (desktop) - simple list + mega menu
   ============================================================ */
#siteNav .dropdown-panel{
  position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%);
  background:var(--white); border-radius:18px; box-shadow:var(--shadow-md); border:1px solid var(--line);
  opacity:0; visibility:hidden; pointer-events:none;
  padding:22px; min-width:260px;
}
#siteNav .nav-item.is-open .dropdown-panel{ pointer-events:auto; }

#siteNav .dropdown-simple a{ display:flex; flex-direction:column; padding:11px 14px; border-radius:10px; font-size:14px; font-weight:600; color:var(--ink); }
#siteNav .dropdown-simple a:hover{ background:var(--gray-1); }
#siteNav .dropdown-simple a span.sub{ font-size:12px; font-weight:400; color:var(--gray-text); margin-top:2px; }
#siteNav .dropdown-simple .view-all{ margin-top:8px; padding-top:12px; border-top:1px solid var(--line); font-size:12.5px; font-weight:700; color:var(--ink); text-align:center; }

/* --- mega menu (Fleet) - fixed, centered on viewport --- */
#siteNav .mega-panel{
  position:fixed; left:50%; right:auto; top:86px;
  transform:translateX(-50%);
  width:min(1080px, 92vw); min-width:0;
  padding:40px;
}
#siteNav .mega-grid{ display:grid; grid-template-columns:1fr 1fr 1fr 1.15fr; gap:20px; }
#siteNav .mega-col h5{ font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); margin-bottom:10px; padding:0 12px; }
#siteNav .mega-car-link{ display:flex; align-items:center; gap:14px; padding:13px 14px; border-radius:12px; }
#siteNav .mega-car-link:hover{ background:var(--gray-1); }
#siteNav .mega-car-thumb{ width:52px; height:52px; border-radius:8px; object-fit:cover; flex-shrink:0; background:var(--gray-1); }
#siteNav .mega-car-info{ display:flex; flex-direction:column; }
#siteNav .mega-car-name{ font-size:14.5px; font-weight:700; color:var(--ink); }
#siteNav .mega-car-price{ font-size:12.5px; color:var(--ink); font-weight:700; margin-top:1px; }
#siteNav .mega-promo{ background:linear-gradient(160deg,var(--black),var(--black-2)); border-radius:14px; padding:28px; color:var(--white); display:flex; flex-direction:column; justify-content:space-between; }
#siteNav .mega-promo img{ border-radius:10px; margin-bottom:14px; aspect-ratio:16/10; object-fit:cover; }
#siteNav .mega-promo h4{ font-family:var(--font); font-size:21px; margin-bottom:6px; color:var(--white); }
#siteNav .mega-promo p{ font-size:12.5px; color:rgba(255,255,255,.72); margin-bottom:14px; }
#siteNav .mega-promo a{ font-size:12.5px; font-weight:800; color:var(--gray-2); }

/* ============================================================
   MOBILE - hamburger + full screen overlay
   ============================================================ */
#siteNav .hamburger{ display:none; width:44px; height:44px; border-radius:50%; align-items:center; justify-content:center; position:relative; flex-shrink:0; background:var(--gray-1) !important; border:none; transition:background .3s var(--ease); }
#siteNav .hamburger span{ position:absolute; width:20px; height:1.6px; background:var(--ink); border-radius:2px; transition:transform .3s var(--ease), opacity .2s var(--ease), top .3s var(--ease), background .3s var(--ease); }
#siteNav .hamburger span:nth-child(1){ top:16px; }
#siteNav .hamburger span:nth-child(2){ top:22px; }
#siteNav .hamburger span:nth-child(3){ top:28px; }
#siteNav .hamburger.is-active{ background:var(--black) !important; box-shadow:0 6px 18px rgba(0,0,0,.35); }
#siteNav .hamburger.is-active span{ background:var(--white); }
#siteNav .hamburger.is-active span:nth-child(1){ top:22px; transform:rotate(45deg); }
#siteNav .hamburger.is-active span:nth-child(2){ opacity:0; }
#siteNav .hamburger.is-active span:nth-child(3){ top:22px; transform:rotate(-45deg); }

#mobileOverlay{
  position:fixed; inset:0; z-index:300; background:var(--white);
  display:flex; flex-direction:column; padding:100px 28px 40px;
  opacity:0; visibility:hidden; overflow-y:auto;
}
#mobileOverlay .mobile-link-group{ border-bottom:1px solid var(--line); }
#mobileOverlay .mobile-link-head{
  width:100%; display:flex; justify-content:space-between; align-items:center; padding:20px 4px;
  font-family:var(--font); font-size:21px; font-weight:600; color:var(--ink) !important;
  background:none !important; border:none !important; text-align:left; cursor:pointer; appearance:none;
}
#mobileOverlay .mobile-link-head .chevron{ width:9px; height:9px; border-right:1.5px solid var(--gray-text); border-bottom:1.5px solid var(--gray-text); transform:rotate(45deg); transition:transform .25s var(--ease); }
#mobileOverlay .mobile-link-group.is-open .mobile-link-head .chevron{ transform:rotate(-135deg); }
#mobileOverlay .mobile-sub{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .35s var(--ease); }
#mobileOverlay .mobile-link-group.is-open .mobile-sub{ grid-template-rows:1fr; }
#mobileOverlay .mobile-sub-inner{ overflow:hidden; }
#mobileOverlay .mobile-sub-item{ display:flex; justify-content:space-between; padding:12px 4px 12px 14px; font-size:14.5px; color:var(--gray-text); }
#mobileOverlay .mobile-sub-item .price{ color:var(--ink); font-weight:700; }
/* "View all" links inside mobile submenus - previously used an undefined
   var(--emerald) inline style in header.php, which fell back to whatever
   color the theme/Elementor happened to inherit. Replaced with a real,
   defined style here. */
#mobileOverlay .mobile-view-all{ font-weight:700; color:var(--ink) !important; }
#mobileOverlay .mobile-direct-link{ display:block; padding:20px 4px; font-family:var(--font); font-size:21px; font-weight:600; color:var(--ink) !important; border-bottom:1px solid var(--line); }
#mobileOverlay .mobile-cta{ margin-top:auto; padding-top:30px; display:flex; flex-direction:column; gap:12px; }
#mobileOverlay .mobile-cta .btn-quote{ text-align:center; padding:16px; font-size:15px; background:var(--black) !important; color:var(--white) !important; }
#mobileOverlay .mobile-cta .nav-phone{ justify-content:center; font-size:15px; color:var(--ink) !important; }
#mobileOverlay .mo-item{ opacity:0; transform:translateY(16px); }

/*
  THE MOBILE-MENU FIX: hidden with !important so no Elementor / parent
  "hello-elementor" theme rule (which may load after this stylesheet and
  target the same, fairly generic, class names) can force these back to
  display:flex on small screens.
*/
@media (max-width:980px){
  #siteNav .nav-menu,
  #siteNav .nav-cta .nav-phone{ display:none !important; }
  #siteNav .nav-cta .btn-quote{ display:none !important; }
  #siteNav .hamburger{ display:flex !important; }
}

/* ============================================================
   MOBILE QUICK ACTIONS - phone + Book button always visible
   in the compact header, next to the hamburger
   ============================================================ */
#siteNav .mobile-quick{ display:none; align-items:center; gap:8px; }
@media (max-width:980px){ #siteNav .mobile-quick{ display:flex !important; } }
#siteNav .mobile-quick .icon-btn{ width:40px; height:40px; border-radius:50%; background:var(--gray-1) !important; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
#siteNav .mobile-quick .icon-btn svg{ width:17px; height:17px; stroke:var(--ink); }
#siteNav .mobile-quick .book-pill,
#siteNav .mobile-quick .book-pill:visited{ padding:10px 16px; border-radius:999px; background:var(--black) !important; color:var(--white) !important; font-size:12.5px; font-weight:700; white-space:nowrap; }

/* ============================================================
   STICKY BOTTOM ACTION BAR - floating rounded card, with
   Book Now as an overlapping FAB-style chip
   ============================================================ */
#stickyActions{
  position:fixed; left:12px; right:12px; bottom:12px; z-index:250;
  display:none; align-items:center; justify-content:space-around;
  padding:14px 10px 12px;
  background:rgba(255,255,255,.97); backdrop-filter:blur(16px) saturate(160%);
  border:1px solid var(--line); border-radius:24px;
  box-shadow:var(--shadow-md);
}
@media (max-width:980px){
  #stickyActions{ display:flex !important; }
  body{ padding-bottom:100px; }
}
#stickyActions .sticky-action,
#stickyActions .sticky-action:visited{ display:flex; flex-direction:column; align-items:center; gap:5px; font-size:10.5px; font-weight:700; color:var(--gray-text) !important; flex:1; }
#stickyActions .sticky-action svg{ width:20px; height:20px; stroke:var(--ink); }

/* Book Now chip: square-ish rounded block, icon + label together */
#stickyActions .sticky-book-chip{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
  width:64px; padding:10px 4px;
  border-radius:16px;
  background:linear-gradient(135deg,var(--black),var(--black-2));
  box-shadow:0 8px 20px rgba(0,0,0,.38);
}
#stickyActions .sticky-book-chip svg{ width:18px; height:18px; stroke:var(--white); }
#stickyActions .sticky-book-chip span{ font-size:10px; font-weight:800; color:var(--white); }

/* --- dummy page content, only to see the scroll shrink --- */
.demo-hero{ padding:200px 32px 100px; max-width:900px; margin:0 auto; text-align:center; }
.demo-hero h1{ font-family:var(--font); font-weight:600; font-size:clamp(32px,5vw,58px); }
.demo-hero p{ color:var(--gray-text); margin-top:16px; }
.demo-filler{ height:1200px; background:linear-gradient(var(--white), var(--gray-1)); display:flex; align-items:center; justify-content:center; color:var(--gray-text); font-family:var(--font); font-style:italic; }

/* ============================================================
   FOOTER
   ============================================================ */
/*
  Footer scoped to #siteFooter (id set on the <footer> tag in footer.php)
  for the same reason as the nav above: an ID selector beats the class-
  based link/background/color rules Elementor's global kit or the parent
  theme may apply to a plain "site-footer"/"footer-col a" class, which is
  what was making the footer render with the wrong colors/columns.
*/
#siteFooter{
  background:var(--black) !important; color:rgba(255,255,255,.72); padding:80px 32px 34px;
  /* Full-bleed fix: footer.php is rendered inside a theme/Elementor page
     wrapper that has its own max-width, which was clipping the black
     background before it reached the viewport edge. This breaks the
     footer out of that container regardless of what the parent width is. */
  width:100vw;
  max-width:100vw;
  position:relative;
  left:50%;
  right:50%;
  margin-left:-50vw;
  margin-right:-50vw;
}
#siteFooter .footer-inner{ max-width:1240px; margin:0 auto; }
#siteFooter .footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr 1.1fr; gap:36px; padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.14); }
@media (max-width:980px){ #siteFooter .footer-top{ grid-template-columns:1fr 1fr; row-gap:34px; } }
#siteFooter .footer-brand .foot-logo{ font-family:var(--font); font-size:24px; font-weight:600; color:var(--white) !important; margin-bottom:12px; }
#siteFooter .footer-brand .foot-logo em{ color:var(--gray-2) !important; font-style:normal; }
#siteFooter .footer-brand p{ font-size:13.5px; max-width:30ch; line-height:1.6; color:rgba(255,255,255,.72); }
#siteFooter .footer-social{ display:flex; gap:10px; margin-top:20px; }
#siteFooter .footer-social a{ width:36px; height:36px; border-radius:50%; border:1px solid rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; transition:background .2s var(--ease), border-color .2s var(--ease); }
#siteFooter .footer-social a:hover{ background:rgba(255,255,255,.1); border-color:var(--white); }
#siteFooter .footer-social svg{ width:15px; height:15px; stroke:var(--white); }

#siteFooter .footer-col h5{ font-size:11.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--gray-2) !important; margin-bottom:18px; }
#siteFooter .footer-col a,
#siteFooter .footer-col a:visited{ display:block; font-size:14px; margin-bottom:12px; color:rgba(255,255,255,.72) !important; transition:color .2s var(--ease); }
#siteFooter .footer-col a:hover{ color:var(--white) !important; }

#siteFooter .footer-contact-item{ display:flex; align-items:flex-start; gap:10px; font-size:13.5px; margin-bottom:14px; color:rgba(255,255,255,.72); }
#siteFooter .footer-contact-item svg{ width:16px; height:16px; stroke:var(--white); flex-shrink:0; margin-top:2px; }

#siteFooter .footer-bottom{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; padding-top:26px; font-size:12px; color:rgba(255,255,255,.5); }
#siteFooter .footer-legal{ max-width:70ch; line-height:1.6; }
#siteFooter .footer-bottom-links{ display:flex; gap:18px; flex-wrap:wrap; }
#siteFooter .footer-bottom-links a,
#siteFooter .footer-bottom-links a:visited{ color:rgba(255,255,255,.5) !important; }
#siteFooter .footer-bottom-links a:hover{ color:var(--white) !important; }

/* Safety spacing on mobile - the footer must not be covered by
   the sticky bottom bar (floating card + margins). Extra padding
   is added directly on the footer, not just on body, so it stays
   correct regardless of what other content follows it in production. */
@media (max-width:980px){
  #siteFooter{ padding-bottom:calc(34px + 100px) !important; }
}