/* Self-hosted brand fonts (heading = Cinzel, body = Urbanist). Served from this
   theme assets/fonts/, so no request goes to Google (GDPR-clean) and nothing can
   strip a Google link tag. Weights in use: 400/500/600/700. */
@font-face{font-family:'Cinzel';font-style:normal;font-weight:400;font-display:swap;src:url('/wp-content/themes/blocksy-child/assets/fonts/cinzel-400.woff2') format('woff2');}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:500;font-display:swap;src:url('/wp-content/themes/blocksy-child/assets/fonts/cinzel-500.woff2') format('woff2');}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:600;font-display:swap;src:url('/wp-content/themes/blocksy-child/assets/fonts/cinzel-600.woff2') format('woff2');}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:700;font-display:swap;src:url('/wp-content/themes/blocksy-child/assets/fonts/cinzel-700.woff2') format('woff2');}
@font-face{font-family:'Urbanist';font-style:normal;font-weight:400;font-display:swap;src:url('/wp-content/themes/blocksy-child/assets/fonts/urbanist-400.woff2') format('woff2');}
@font-face{font-family:'Urbanist';font-style:normal;font-weight:500;font-display:swap;src:url('/wp-content/themes/blocksy-child/assets/fonts/urbanist-500.woff2') format('woff2');}
@font-face{font-family:'Urbanist';font-style:normal;font-weight:600;font-display:swap;src:url('/wp-content/themes/blocksy-child/assets/fonts/urbanist-600.woff2') format('woff2');}
@font-face{font-family:'Urbanist';font-style:normal;font-weight:700;font-display:swap;src:url('/wp-content/themes/blocksy-child/assets/fonts/urbanist-700.woff2') format('woff2');}

/* ==========================================================================
   GMH CHAUFFEUR SERVICE — GLOBAL LUXURY DESIGN SYSTEM
   Loaded site-wide by the blocksy-child theme. Prefix: gmh-
   Per-page scoped styles may re-declare tokens inside their own wrappers.
   ========================================================================== */

/* ------------------------------------------------------------------ */
/* Blocksy overrides                                                    */
/* Suppress Blocksy's built-in page-title hero (.hero-section /         */
/* .page-title) — every GMH page ships its own bespoke hero, so this    */
/* removes the duplicate title bar above the content (and a 2nd H1).    */
/* ------------------------------------------------------------------ */
body.page .hero-section,
body.page .entry-header .page-title,
body.home .hero-section {
  display: none !important;
}

/* WordPress block layout (.entry-content.is-layout-constrained) caps direct
   children at content-size (~1290px) and centres them — which boxes our
   full-width page designs inside a column. The .entry-content already spans
   the content area, so let our gmh- page wrappers fill it edge-to-edge. */
.entry-content.is-layout-constrained > [class^="gmh-"],
.entry-content.is-layout-constrained > [class*=" gmh-"] {
  max-width: none !important;
  width: 100% !important;        /* Blocksy sets width:var(--theme-block-width) here too */
  margin-left: 0 !important;
  margin-right: 0 !important;
}
/* And remove any horizontal padding Blocksy puts on the page content container
   so hero/section backgrounds reach the viewport edges. */
body.page .entry-content,
body.home .entry-content {
  padding-left: 0 !important;
  padding-right: 0 !important;
  max-width: none !important;
}
/* Blocksy's content container adds top padding that drops full-bleed page heroes
   below the transparent fixed header (leaving a gap). Remove it on pages. */
body.page .ct-container-full,
body.home .ct-container-full {
  padding-top: 0 !important;
}

:root {
  /* Brand colors */
  --gmh-gold: #c5a059;
  --gmh-gold-2: #d4af37;
  --gmh-gold-hover: #e0b86c;
  --gmh-gold-gradient: linear-gradient(135deg, #ffdc71 0%, #e9bc32 100%);
  --gmh-dark: #111111;
  --gmh-charcoal: #1a1a1a;
  --gmh-black: #050505;
  --gmh-light-bg: #f9f9f9;
  --gmh-white: #ffffff;
  --gmh-border-light: #eeeeee;
  --gmh-border-gold: rgba(197, 160, 89, 0.2);
  --gmh-text-main: #222222;
  --gmh-text-muted: #666666;

  /* Blocksy palette lock — force GMH gold palette regardless of theme_mod
     (palette theme_mod did not survive migration; without this the theme
     falls back to Blocksy's default BLUE palette). */
  --theme-palette-color-1: #c5a059;
  --theme-palette-color-2: #111111;
  --theme-palette-color-3: #000000;
  --theme-palette-color-4: #e3bc61;
  --theme-palette-color-5: #e1e8ed;
  --theme-palette-color-6: #f2f5f7;
  --theme-palette-color-7: #FAFBFC;
  --theme-palette-color-8: #ffffff;
  --theme-headings-color: #e3bc61;
  --theme-text-color: #000000;
  --theme-link-initial-color: #c5a059;
  --theme-link-hover-color: #111111;
  --theme-border-color: #e1e8ed;

  /* Typography */
  --gmh-font-serif: 'Cinzel', serif;
  --gmh-font-sans: 'Urbanist', sans-serif;

  /* Motion */
  --gmh-ease: cubic-bezier(0.165, 0.84, 0.44, 1);
  --gmh-ease-out: cubic-bezier(0.22, 1, 0.36, 1);

  /* Layout */
  --gmh-container: 1300px;
}

/* ------------------------------------------------------------------ */
/* Layout helpers                                                      */
/* ------------------------------------------------------------------ */
.gmh-container {
  max-width: var(--gmh-container);
  margin: 0 auto;
  padding: 0 25px;
  box-sizing: border-box;
}

/* Home intro image (The GMH Standard): phones forced a short 16/10 ratio so the
   DBS-Checked badge overlapped the vehicle. Restore a taller portrait ratio on
   phones so the vehicle sits above the badge. Overrides inline mobile style. */
/* DBS-Checked badge stays at the top of the image at all widths. */
.gmh-h-intro-badge { top: 24px !important; bottom: auto !important; }

@media (max-width: 768px) {
  .gmh-h-intro-img { aspect-ratio: 4 / 5 !important; }
  
}

.gmh-section-spacer { padding: 100px 0; }
@media (max-width: 768px) { .gmh-section-spacer { padding: 60px 0; } }

/* ------------------------------------------------------------------ */
/* Headlines & eyebrows                                                */
/* ------------------------------------------------------------------ */
.gmh-title-luxury {
  font-family: var(--gmh-font-serif);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--gmh-dark);
  line-height: 1.25;
}

.gmh-pre-title-gold {
  font-family: var(--gmh-font-sans);
  font-size: 13px;
  font-weight: 700;
  color: var(--gmh-gold);
  text-transform: uppercase;
  letter-spacing: 3px;
  margin-bottom: 12px;
  display: block;
}

/* ------------------------------------------------------------------ */
/* Buttons                                                             */
/* ------------------------------------------------------------------ */
.gmh-btn-luxury,
.gmh-btn-gold-fill,
.gmh-btn-outline {
  display: inline-block;
  text-decoration: none;
  font-family: var(--gmh-font-sans);
  font-size: 13px;
  font-weight: 700;
  padding: 14px 36px;
  border-radius: 50px;
  text-transform: uppercase;
  letter-spacing: 2px;
  cursor: pointer;
  text-align: center;
  transition: all 0.4s var(--gmh-ease);
}

.gmh-btn-luxury {
  color: var(--gmh-white);
  background-color: var(--gmh-dark);
  border: 1px solid var(--gmh-border-gold);
}
.gmh-btn-luxury:hover {
  background-color: var(--gmh-gold);
  color: var(--gmh-dark);
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(197, 160, 89, 0.15);
}

.gmh-btn-gold-fill {
  color: var(--gmh-dark);
  background: var(--gmh-gold-gradient);
  border: none;
  box-shadow: 0 4px 15px rgba(233, 188, 50, 0.2);
}
.gmh-btn-gold-fill:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(233, 188, 50, 0.35);
  filter: brightness(1.05);
}

.gmh-btn-outline {
  color: var(--gmh-dark);
  background: transparent;
  border: 1.5px solid var(--gmh-gold);
}
.gmh-btn-outline:hover {
  background-color: var(--gmh-dark);
  color: var(--gmh-white);
  border-color: var(--gmh-dark);
  transform: translateY(-2px);
}

/* ------------------------------------------------------------------ */
/* Image hover-zoom + card link                                        */
/* ------------------------------------------------------------------ */
.gmh-hover-zoom { overflow: hidden; }
.gmh-hover-zoom img { transition: transform 0.6s var(--gmh-ease); }
.gmh-hover-zoom:hover img { transform: scale(1.05); }

.gmh-card-link-luxury {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  font-size: 14px;
  font-weight: 700;
  color: var(--gmh-dark);
  text-transform: uppercase;
  letter-spacing: 1px;
  transition: color 0.3s ease;
}
.gmh-card-link-luxury::after { content: "\2192"; transition: transform 0.3s ease; }
.gmh-card-link-luxury:hover { color: var(--gmh-gold); }
.gmh-card-link-luxury:hover::after { transform: translateX(4px); }

/* ------------------------------------------------------------------ */
/* Glass card                                                          */
/* ------------------------------------------------------------------ */
.gmh-glass-card {
  background: rgba(26, 26, 26, 0.95);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid var(--gmh-border-gold);
  border-radius: 16px;
  padding: 40px;
  color: var(--gmh-white);
}

/* ==================================================================== */
/* MOTION — scroll reveal (driven by gmh-reveal inline script)          */
/* Add data-gmh-reveal (optionally with a variant + data-gmh-delay).    */
/* ==================================================================== */
[data-gmh-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s var(--gmh-ease-out), transform 0.7s var(--gmh-ease-out);
  will-change: opacity, transform;
}
[data-gmh-reveal="left"]  { transform: translateX(-32px); }
[data-gmh-reveal="right"] { transform: translateX(32px); }
[data-gmh-reveal="zoom"]  { transform: scale(0.94); }
[data-gmh-reveal="fade"]  { transform: none; }

.gmh-revealed {
  opacity: 1 !important;
  transform: none !important;
}


/* ==================================================================== */
/* Complianz consent banner: brand styling                              */
/* Complianz shipped a bright-blue "Accept" button that clashed with the */
/* gold/charcoal brand and read as an intrusive third-party popup. Bring */
/* it on-brand and lighten it so it feels part of the site. Accept + Deny */
/* stay side-by-side and equally visible to remain GDPR-compliant.        */
/* ==================================================================== */
#cmplz-cookiebanner-container .cmplz-cookiebanner {
  border: 1px solid rgba(197, 160, 89, 0.3) !important;
  border-radius: 14px !important;
  box-shadow: 0 14px 44px rgba(0, 0, 0, 0.22) !important;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn.cmplz-accept {
  background-color: #c5a059 !important;
  color: #111111 !important;
  border-color: #c5a059 !important;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn.cmplz-accept:hover {
  background-color: #b28f4a !important;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn.cmplz-deny {
  background-color: transparent !important;
  color: #222222 !important;
  border: 1px solid rgba(17, 17, 17, 0.35) !important;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn.cmplz-deny:hover {
  background-color: #111111 !important;
  color: #ffffff !important;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences,
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-links a {
  color: #8a6d2f !important;
  background: transparent !important;
}

/* ==================================================================== */
/* Homepage service cards: reveal the image context                     */
/* .gmh-h-svc-scrim laid a near-black gradient over the WHOLE card (~10% */
/* at the top ramping to ~92% at the bottom) which, on top of already-   */
/* dark imagery, hid what each photo shows (the plane, red carpet, shop  */
/* fronts, event lights). Pull the scrim down to a band behind the text  */
/* only, lift the images slightly, and shadow the labels so they stay    */
/* legible. Scoped to .gmh-h-svc so it only affects the services grid.   */
/* ==================================================================== */
.gmh-h-svc {
  aspect-ratio: 3 / 2 !important;
}
.gmh-h-svc img {
  object-position: center;
  filter: brightness(1.1) contrast(1.04);
}
.gmh-h-svc:hover img {
  filter: brightness(1.16) contrast(1.04);
}
.gmh-h-svc-scrim {
  background: linear-gradient(to top,
    rgb(8 8 8 / 0.90) 8%,
    rgb(8 8 8 / 0.42) 50%,
    rgb(8 8 8 / 0.16) 100%) !important;
}
.gmh-h-svc:hover .gmh-h-svc-scrim {
  background: linear-gradient(to top,
    rgb(8 8 8 / 0.94) 10%,
    rgb(20 20 20 / 0.50) 55%,
    rgb(197 160 89 / 0.16) 100%) !important;
}
.gmh-h-svc-body h3 {
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.9), 0 1px 4px rgba(0, 0, 0, 0.7);
}
.gmh-h-svc-body p {
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.95), 0 1px 3px rgba(0, 0, 0, 0.7);
}
.gmh-mega-inner .gmh-mega-stage-img {
  object-fit: contain !important;
}

