/* Shared GGC night-blue surface, with the original component and button palette. */
:root {
  --ggc-brand: #2c6698;
  --ggc-brand-deep: #205482;
  --ggc-brand-hover: #3678ae;
  --ggc-page: #1c3145;
  --ggc-page-rgb: 28, 49, 69;
  --ggc-page-channels: 28 49 69;
  --ggc-deep: #192e40;
  --ggc-deep-rgb: 25, 46, 64;
  --ggc-deep-channels: 25 46 64;
  --ggc-panel: #1f2b3b;
  --ggc-panel-rgb: 31, 43, 59;
  --ggc-panel-channels: 31 43 59;
  --ggc-overlay-rgb: 12, 29, 45;
  --ggc-overlay-channels: 12 29 45;
  --ggc-focus: #a6d5f5;
  --ggc-card: #2e485d;
  --ggc-card-raised: #3a5971;
  --ggc-border: #82a2bc;
  --ggc-border-active: #9bbbd3;
  --ggc-card-shadow: 0 3px 12px rgba(3,12,24,.10);
  --ggc-card-shadow-hover: 0 5px 16px rgba(3,12,24,.14);
  --ggc-action-shadow: 0 2px 6px rgba(3,12,24,.12);
  --ggc-radius: 1rem;
  --ggc-page-gradient:linear-gradient(155deg,#233d53 0%,#1c3145 52%,#192b3d 100%);
  --ggc-nav-surface:var(--ggc-page);
  --ggc-nav-edge:rgba(193,214,230,.42);
  --ggc-nav-glass:rgba(33,59,82,.82);
  --ggc-nav-glass-scrolled:rgba(29,55,78,.75);
  --ggc-nav-glass-blur:blur(22px) saturate(120%);
  --ggc-nav-sheen:inset 0 1px rgba(221,237,250,.24), inset 0 16px 30px -17px rgba(193,214,230,.37);
  --brand: var(--ggc-brand);
  --nav-bg: var(--ggc-deep);
  --nav-border: rgba(91,159,212,.2);
  --gprh-focus: var(--ggc-focus);
  --gppw-focus: var(--ggc-focus);
  --gphh-focus: var(--ggc-focus);
  color-scheme: dark;
}
html { background: var(--ggc-page); }
body {
  background: var(--ggc-page) !important;
  background-image:var(--ggc-page-gradient) !important;
  background-attachment: fixed !important;
  color: #cad9e3;
}
body::before { background: none !important; }
body::after { opacity: .25; }
/* Shared glass material with an opaque fallback for browsers without backdrop blur. */
#main-nav,
.ggc-unified-page :is(.ggc-site-header,.site-header) {
  background:var(--ggc-nav-surface) !important;
  border-bottom:1px solid var(--ggc-nav-edge) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  box-shadow:none !important;
  transition:none !important;
}
@supports (backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px)) {
  #main-nav,
  .ggc-unified-page :is(.ggc-site-header,.site-header) {
    background:var(--ggc-nav-glass) !important;
    backdrop-filter:var(--ggc-nav-glass-blur) !important;
    -webkit-backdrop-filter:var(--ggc-nav-glass-blur) !important;
    box-shadow:var(--ggc-nav-sheen) !important;
  }
  #main-nav.scrolled,
  .ggc-unified-page :is(.ggc-site-header,.site-header).scrolled {
    background:var(--ggc-nav-glass-scrolled) !important;
  }
}
#main-nav {
  position:sticky !important;
  top:0;
  padding-top:4px;
}
#main-nav::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px;
  z-index: 2; pointer-events: none;
  background: linear-gradient(90deg,transparent 5%,#2a6496 30%,#8a6f2e 55%,#2a6496 80%,transparent 95%);
}
#main-nav > .ggc-nav-row { height:88px; min-height:88px; }
#main-nav > .ggc-nav-row > a:first-child {
  -webkit-tap-highlight-color:transparent;
  border-radius:.5rem;
}
#main-nav > .ggc-nav-row > a:first-child:active {
  background:transparent !important;
  box-shadow:none !important;
}
#main-nav > .ggc-nav-row > a:first-child:focus:not(:focus-visible) { outline:none; }
#main-nav > .ggc-nav-row > a:first-child img { height:56px !important; width:auto; max-width:180px; object-fit:contain; }
@media(max-width:1279px) {
  #main-nav #mob-toggle,
  .ggc-unified-page :is(.ggc-burger,.site-header .burger) {
    min-inline-size:44px;
    min-block-size:44px;
    touch-action:manipulation;
  }
  #main-nav #mob-toggle svg { margin-inline:auto; }
  #main-nav > .ggc-nav-row { height:80px; min-height:80px; }
  #main-nav > .ggc-nav-row > a:first-child img { height:52px !important; max-width:160px; }
}
@media(pointer:coarse),(max-width:767px) {
  body main .tk-btn { min-height:44px; align-items:center; }
}
/* Desktop navigation uses the existing underline without a painted tile. */
#main-nav .ggc-nav-row > ul > li > :is(a,button),
html.ggc-unified-page body :is(.ggc-main-nav,.site-header .nav) > a,
html.ggc-unified-page body :is(.ggc-main-nav,.site-header .nav) > a:is(:hover,:focus-visible,.active,[aria-current]) {
  background:transparent !important;
  border-color:transparent !important;
  box-shadow:none !important;
}
#main-nav .ggc-nav-row > ul > li:is(.current-menu-item,.current-menu-ancestor,[data-menu-open="true"]) > :is(a,button)::after,
#main-nav .ggc-nav-row > ul > li > :is(a,button):is([aria-current="page"],[aria-expanded="true"])::after {
  left:8px;
  right:8px;
}
/* Separate solid menu surfaces keep text clear over photographs and page content. */
#mob-menu, #main-nav .nav-dropdown {
  background: #1c2f42 !important;
  border-color: rgba(91,159,212,.25);
}
#main-nav .nav-dropdown {
  width:320px;
  min-width:min(320px,calc(100vw - 2rem)) !important;
  max-width:calc(100vw - 2rem);
  padding:8px;
  border:1px solid rgba(130,162,188,.28) !important;
  border-radius:1rem !important;
  box-shadow:var(--ggc-card-shadow-hover) !important;
}
#main-nav .nav-dropdown a {
  display:flex;
  align-items:center;
  min-height:46px !important;
  padding:10px 14px;
  border-radius:.6rem;
  font-size:1rem;
  line-height:1.45;
  white-space:normal;
  color:#dce7f0;
}
#mob-menu :is(a,button) {
  min-height:44px;
  font-size:1rem;
  line-height:1.45;
}

#main-nav #mob-menu { max-height:calc(100vh - var(--ggc-nav-bottom,85px)) !important; max-height:calc(100dvh - var(--ggc-nav-bottom,85px)) !important; overscroll-behavior:contain; }
#mob-overlay { top:var(--ggc-nav-bottom,85px) !important; }
#main-nav a[style*="box-shadow"] { box-shadow:var(--ggc-action-shadow) !important; }
#main-nav:has(#mob-toggle[aria-expanded="true"]),
.ggc-unified-page :is(.ggc-site-header,.site-header).ggc-nav-open {
  background:var(--ggc-nav-surface) !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
/* A single page gradient continues behind the full-width sections and footer. */
body main > section:is([class~="bg-[#111c2c]/60"],[class~="bg-[#0e1622]/60"],#platzinfo) { background:transparent !important; }
body main > section > div.pointer-events-none.absolute.inset-0[class*="radial-gradient"] { background:none !important; }
footer { background: transparent !important; }
/* One frame, radius and quiet shadow for equivalent cards on every site. */
body main :where(.glass,.glass-light,.gppk-content-card,.gppk-person-card,.pcc-card,.tk-card,.news-card,.gppk-rating-panel,.ggc-booking,.gppk-consent-placeholder,[class*="rounded-2xl"][class*="border"],article[class*="rounded-"][class*="border"],a[class*="min-h-"][class*="rounded-"][class*="border"]) {
  background:var(--ggc-card) !important;
  border:1px solid var(--ggc-border) !important;
  border-radius:var(--ggc-radius);
  box-shadow:var(--ggc-card-shadow) !important;
}
body main :where(.gppk-content-card,.ggc-booking,[class*="rounded-2xl"][class*="border"]) :where(.glass-light,.gppk-consent-placeholder,[class*="rounded-2xl"][class*="border"]) {
  background:var(--ggc-card-raised) !important;
}
body main :where(.glass,.glass-light,.gppk-content-card,.gppk-person-card,.pcc-card,.tk-card,.news-card):is(:hover,:focus-within) {
  border-color:var(--ggc-border-active) !important;
  box-shadow:var(--ggc-card-shadow-hover) !important;
}
body main .gppk-person-card:hover { transform:none; }
body main :where(.pcc-datebox,.tk-datebox,[class*="shadow-["]):where(:not(img):not([class*="drop-shadow"])) { box-shadow:var(--ggc-card-shadow) !important; }
/* Offer shells do not add a second frame around the actual offer card. */
body main .gppw-course-shell { background:transparent !important; border:0 !important; box-shadow:none !important; backdrop-filter:none; -webkit-backdrop-filter:none; }
body main .gppw-course-offer {
  background:var(--ggc-card-raised) !important;
  border:1px solid var(--ggc-border) !important;
  border-radius:var(--ggc-radius);
  box-shadow:var(--ggc-card-shadow) !important;
}
body main .gppw-course-price {
  background:#dce9f3 !important; color:#17364e !important;
  border:1px solid #b1cddd !important; box-shadow:none !important;
}
body main .gppw-course-price :is(span,strong) { color:#17364e !important; }
body main :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea) {
  border:1px solid var(--ggc-border); border-radius:.65rem;
}
body :is(.ggc-primary-action,.gppw-course-download,.ggc-button,.gppk-rating-form button,.gppk-consent-placeholder button),
body main a[class~="bg-[#2a6496]"],
body main a[class*="rounded-xl"][href*=".pdf"]:not(.gppk-content-image-link) {
  background:linear-gradient(135deg,var(--ggc-brand),var(--ggc-brand-deep)) !important;
  color:#fff !important; border:1px solid var(--ggc-border-active) !important;
  box-shadow:var(--ggc-action-shadow) !important;
  text-decoration:none;
}
body :is(.ggc-primary-action,.gppw-course-download,.ggc-button,.gppk-rating-form button,.gppk-consent-placeholder button):hover,
body main a[class~="bg-[#2a6496]"]:hover,
body main a[class*="rounded-xl"][href*=".pdf"]:not(.gppk-content-image-link):hover {
  background:var(--ggc-brand-hover) !important; color:#fff !important; border-color:#c4ddeb !important;
}
.muted { color: #afc6d7; }
.muted-sm { color: #a1bbce; }
.pcc-course,.pcc-meta,.tk-course,.tk-fallback { color: #a8c3d4; }
body main :where(.gppk-content-card,.gppk-person-card,.pcc-card,.tk-card,.gppw-course-offer,[class*="rounded-2xl"][class*="border"]) :is([class*="text-[#7da3bc]"],[class*="text-[#7aaac8]"],[class*="text-[#90b0c5]"],[class*="text-[#86a8bd]"],.muted-sm) {
  color:#c3d8e7;
}
/* Only the new shared booking components need their own original-blue action. */
.ggc-button {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-height: 2.75rem; padding: .75rem 1.1rem; border: 1px solid #5b9fd466;
  border-radius: .75rem; font-weight: 600; color: #fff;
  background: linear-gradient(135deg,var(--ggc-brand),var(--ggc-brand-deep));
}
.ggc-button:hover { background: var(--ggc-brand-hover); color: #fff; }
.ggc-booking {
  padding: clamp(1.25rem,3vw,2rem); border: 1px solid #2a649650;
  border-radius: 1rem; background: rgba(26,37,53,.7); color: #cad9e3;
}
.calendly-inline-widget { background: var(--ggc-page); border-radius: .75rem; }
body :is(a,button,input,select,textarea,summary):focus-visible {
  outline: 2px solid var(--ggc-focus); outline-offset: 3px;
}
body :is(button:disabled,input:disabled,select:disabled,[aria-disabled="true"]) {
  opacity: .55; cursor: not-allowed;
}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more) {
  #main-nav,#main-nav.scrolled,
  .ggc-unified-page :is(.ggc-site-header,.site-header),
  .ggc-unified-page :is(.ggc-site-header,.site-header).scrolled {
    background:var(--ggc-nav-surface) !important;
    box-shadow:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
}
@media(prefers-reduced-transparency:reduce) {
  #main-nav .nav-dropdown,.glass,.glass-light { backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
}
@media(prefers-contrast:more) {
  :root { --ggc-nav-edge:#8ab4d4; }
  .muted,.muted-sm { color:#edf5fa; }
}

/* Hotel logos sit directly on their cards, without an added light/dark plaque.
   Keep existing image dimensions, links, transforms and photograph fitting. */
.ggc-hotels :is(.ggc-hotel-logo,.gphh-hotel-logo,.gppw-hotel-logo) {
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.ggc-hotels .ggc-hotel-logo img,
.ggc-hotels img.gppk-content-media--logo {
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* The same quiet outline for every mobile navigation item, with or without children. */
@media(max-width:1279px) {
  :root {
    --ggc-mobile-menu-border:rgba(193,214,230,.18);
    --ggc-mobile-menu-fill:rgba(130,162,188,.025);
  }
  #main-nav #mob-menu { border-top-color:var(--ggc-mobile-menu-border) !important; box-shadow:none !important; }
  #mob-menu > div > a:not([style*="linear-gradient"]),
  #mob-menu > div > div:has(> button[aria-expanded]),
  body .ggc-site-header .ggc-mobile-menu > a:not(.cta):not(.ggc-header-cta):not(.ggc-btn-primary),
  body .site-header .mobile > a:not(.cta) {
    box-sizing:border-box;
    border:1px solid var(--ggc-mobile-menu-border) !important;
    border-radius:12px !important;
    background:var(--ggc-mobile-menu-fill) !important;
    box-shadow:none !important;
    margin:0 0 6px !important;
  }
  #mob-menu > div > a:not([style*="linear-gradient"]),
  body .ggc-site-header .ggc-mobile-menu > a:not(.cta):not(.ggc-header-cta):not(.ggc-btn-primary),
  body .site-header .mobile > a:not(.cta) {
    display:flex; align-items:center; min-height:48px;
    padding:11px 16px !important;
    color:#cad9e3 !important;
  }
  #mob-menu > div > div:has(> button[aria-expanded]) > button {
    min-height:46px; padding:11px 16px !important;
    background:transparent !important; border:0 !important; box-shadow:none !important;
  }
  #mob-menu > div > div:has(> button[aria-expanded]) > div {
    background:transparent !important;
    border-top:1px solid rgba(193,214,230,.10);
  }
  #mob-menu > div > div:has(> button[aria-expanded="true"]) { border-color:rgba(193,214,230,.26) !important; }
  #mob-menu > div > a:not([style*="linear-gradient"]):hover,
  #mob-menu > div > div > button:hover,
  body .ggc-site-header .ggc-mobile-menu > a:not(.cta):not(.ggc-header-cta):not(.ggc-btn-primary):hover,
  body .site-header .mobile > a:not(.cta):hover { background:rgba(130,162,188,.07) !important; }
  html.ggc-unified-page body :is(.ggc-mobile-menu,.site-header .mobile) {
    border-top-color:var(--ggc-mobile-menu-border) !important; box-shadow:none !important;
  }
}

/* Keep booking actions in the same minimally brighter blue on every site. */
#main-nav a[style*="linear-gradient"],
html.ggc-unified-page body .ggc-mobile-menu > .cta {
  background:linear-gradient(135deg,var(--ggc-brand),var(--ggc-brand-deep)) !important;
}
