
:root{
  --gm-blue:#00C2FD;
  --gm-bg:#0B0E1D;
  --gm-card:#10152A;
  --gm-border:#1C2340;
  --gm-slate:#A7B2C3;
  --gm-purple:#7C3AED;
  --gm-shadow: 0 18px 60px rgba(0,0,0,.35);
  --gm-glow: 0 0 0 1px rgba(0,194,253,.20), 0 0 32px rgba(0,194,253,.18);
}

/* Base */
body{
  background: var(--gm-bg);
  color:#fff;
}
::selection{ background: rgba(0,194,253,.25); }

a{ text-decoration: none; }
a:hover{ text-decoration: none; }

/* Container helpers */
.gm-container{
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 1.25rem;
}

/* Header */
.gm-header{
  position: sticky;
  top: 0;
  z-index: 60;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  background: rgba(11,14,29,.65);
  border-bottom: 1px solid rgba(28,35,64,.75);
}
.gm-header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding: .9rem 0;
}
.gm-brand{
  display:flex; align-items:center; gap:.75rem;
}
.gm-logo{
  width:40px; height:40px; border-radius: 12px;
  background: radial-gradient(circle at 20% 20%, rgba(0,194,253,.45), rgba(124,58,237,.15) 55%, rgba(11,14,29,0) 70%),
              rgba(16,21,42,.9);
  box-shadow: var(--gm-glow);
  border: 1px solid rgba(0,194,253,.25);
}
.gm-brand-title{
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-size: 1rem;
}
.gm-brand-sub{
  font-size: .85rem; color: var(--gm-slate);
  margin-top: -2px;
}

/* Nav */
.gm-nav ul{
  display:flex; list-style:none; gap:1rem; padding:0; margin:0;
  align-items:center;
}
.gm-nav a{
  display:inline-flex;
  padding: .55rem .75rem;
  border-radius: 999px;
  color: rgba(255,255,255,.86);
  font-weight: 650;
  transition: transform .18s ease, background .18s ease, color .18s ease;
}
.gm-nav a:hover{
  background: rgba(0,194,253,.12);
  color: #fff;
  transform: translateY(-1px);
}

/* CTA Button */
.gm-cta{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding: .65rem 1rem;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(0,194,253,1), rgba(124,58,237,.85));
  color: #0B0E1D;
  font-weight: 900;
  box-shadow: 0 16px 40px rgba(0,194,253,.16);
  border: 1px solid rgba(255,255,255,.10);
  transition: transform .18s ease, filter .18s ease;
}
.gm-cta:hover{
  transform: translateY(-1px);
  filter: brightness(1.06);
}

/* Hero */
.gm-hero{
  position: relative;
  overflow:hidden;
  padding: clamp(3rem, 6vw, 6rem) 0;
}
.gm-hero::before{
  content:"";
  position:absolute;
  inset:-40% -10% auto -10%;
  height: 520px;
  background: radial-gradient(circle at 20% 20%, rgba(0,194,253,.35), rgba(11,14,29,0) 60%);
  pointer-events:none;
}
.gm-hero::after{
  content:"";
  position:absolute;
  inset:auto -20% -55% -20%;
  height: 520px;
  background: radial-gradient(circle at 80% 20%, rgba(124,58,237,.22), rgba(11,14,29,0) 60%);
  pointer-events:none;
}
.gm-badge{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  border-radius: 999px;
  padding:.35rem .7rem;
  background: rgba(16,21,42,.85);
  border:1px solid rgba(0,194,253,.18);
  box-shadow: 0 0 0 1px rgba(0,0,0,.1);
  color: rgba(255,255,255,.9);
  font-weight: 700;
  font-size:.9rem;
}
.gm-title{
  font-size: clamp(2.2rem, 4.5vw, 3.8rem);
  margin: 1rem 0 .75rem;
  letter-spacing: -0.02em;
}
.gm-lead{
  color: rgba(167,178,195,.95);
  font-size: 1.125rem;
  max-width: 62ch;
}
.gm-hero-grid{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 2rem;
  align-items: center;
}
@media (max-width: 960px){
  .gm-hero-grid{ grid-template-columns: 1fr; }
}

/* Cards */
.gm-card{
  background: linear-gradient(180deg, rgba(16,21,42,.92), rgba(16,21,42,.78));
  border:1px solid rgba(28,35,64,.85);
  border-radius: 22px;
  box-shadow: var(--gm-shadow);
}
.gm-card-inner{ padding: 1.25rem; }
.gm-card-title{ font-weight: 900; margin: 0 0 .25rem; }
.gm-card-sub{ color: var(--gm-slate); margin: 0 0 1rem; }
.gm-chip{
  display:inline-flex;
  align-items:center;
  padding:.25rem .6rem;
  border-radius: 999px;
  background: rgba(0,194,253,.10);
  border:1px solid rgba(0,194,253,.20);
  color: rgba(255,255,255,.9);
  font-weight: 750;
  font-size:.85rem;
}

/* Pricing */
.gm-pricing{
  padding: clamp(2.5rem, 5vw, 4rem) 0;
}
.gm-pricing-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
@media (max-width: 960px){
  .gm-pricing-grid{ grid-template-columns: 1fr; }
}
.gm-price{
  font-size: 2.25rem;
  font-weight: 950;
  letter-spacing:-0.02em;
}
.gm-muted{ color: var(--gm-slate); }

/* Footer */
.gm-footer{
  border-top: 1px solid rgba(28,35,64,.75);
  background: rgba(11,14,29,.92);
  padding: 2rem 0;
}
.gm-footer small{ color: rgba(167,178,195,.85); }

/* WooCommerce tweaks (light touch) */
.woocommerce .woocommerce-breadcrumb,
.woocommerce .woocommerce-result-count{
  color: rgba(167,178,195,.85);
}
.woocommerce div.product .price,
.woocommerce ul.products li.product .price{
  color: #fff;
  font-weight: 900;
}
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button{
  border-radius: 999px !important;
  font-weight: 900 !important;
  background: var(--gm-blue) !important;
  color: #0B0E1D !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  box-shadow: 0 16px 40px rgba(0,194,253,.10);
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover{
  filter: brightness(1.05);
}

/* Animations */
.gm-reveal{
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .65s cubic-bezier(.2,.8,.2,1), transform .65s cubic-bezier(.2,.8,.2,1);
  will-change: transform, opacity;
}
.gm-reveal.is-visible{
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce){
  .gm-reveal{ opacity: 1; transform: none; transition:none; }
}

/* Utility classes for blocks */
.gm-section{ padding: clamp(2.75rem, 5vw, 4.5rem) 0; }
.gm-center{ text-align:center; }
.gm-kicker{
  color: rgba(0,194,253,.95);
  font-weight: 900;
  letter-spacing: .10em;
  text-transform: uppercase;
  font-size: .85rem;
}

/* Booking placeholder box */
.gm-booking-shell{
  background: linear-gradient(180deg, rgba(16,21,42,.92), rgba(16,21,42,.78));
  border:1px dashed rgba(0,194,253,.35);
  border-radius: 22px;
  padding: 1.25rem;
}
