/* ==========================================================================
   GH-MOTO — Frontend-Stile (Modernist)
   Ablage:  wp-content/themes/<dein-theme>/gh-moto.css
   Einbinden (functions.php des Child-Themes):

     add_action('wp_enqueue_scripts', function () {
       wp_enqueue_style('gh-moto', get_stylesheet_directory_uri() . '/gh-moto.css', [], '1.0');
       wp_enqueue_script('gh-moto', get_stylesheet_directory_uri() . '/gh-moto.js', [], '1.0', true);
     });

   Alle Blöcke sind mit .gh- Klassen aufgebaut und in Elementor als
   HTML-Widget einsetzbar. Keine Abhängigkeiten, kein jQuery.
   ========================================================================== */

/* Archivo wird in functions.php per wp_enqueue_style geladen - ein @import hier
   wuerde eine Ladekette erzwingen (CSS -> Google-CSS -> woff2). */

:root {
  --gh-bg: #f3f2f2;
  --gh-surface: #eae9e9;
  --gh-ink: #201e1d;
  --gh-ink-soft: #605d5d;
  --gh-dark: #1a1918;
  --gh-darker: #121110;
  --gh-light: #f3f2f2;
  --gh-red: #e4000f;
  --gh-red-deep: #a8000b;
  --gh-red-press: #c7000d;
  --gh-red-light: #ff858d;
  --gh-rule: rgba(32, 30, 29, 0.4);
  --gh-rule-light: rgba(243, 242, 242, 0.2);
  --gh-font: "Archivo", system-ui, sans-serif;
  --gh-max: 1240px;
  --gh-pad: clamp(16px, 3vw, 40px);
}

/* --- Grundgerüst ------------------------------------------------------- */

.gh { font-family: var(--gh-font); color: var(--gh-ink); background: var(--gh-bg); }
.gh *, .gh *::before, .gh *::after { box-sizing: border-box; }
.gh p, .gh h1, .gh h2, .gh h3, .gh ul, .gh figure, .gh blockquote { margin: 0; }
.gh img { max-width: 100%; display: block; }
.gh a { color: inherit; text-decoration: none; transition: color .15s ease; }
.gh a:hover { color: var(--gh-red); }
.gh a:focus-visible, .gh button:focus-visible, .gh summary:focus-visible, .gh input:focus-visible {
  outline: 2px solid var(--gh-red); outline-offset: 2px;
}
.gh ::selection { background: rgba(236, 48, 19, .22); }

.gh-wrap { max-width: var(--gh-max); margin: 0 auto; padding-left: var(--gh-pad); padding-right: var(--gh-pad); }
.gh-section { padding-top: clamp(40px, 5vw, 72px); padding-bottom: clamp(40px, 5vw, 72px); }
.gh-section--tight { padding-top: clamp(28px, 3.5vw, 48px); padding-bottom: clamp(28px, 3.5vw, 48px); }
.gh-dark { background: var(--gh-dark); color: var(--gh-light); }
.gh-darker { background: var(--gh-darker); color: var(--gh-light); }
.gh-red-band { background: var(--gh-red); color: #fff; }
.gh-rule-top { border-top: 2px solid var(--gh-rule); }

/* --- Typografie -------------------------------------------------------- */

.gh-h1, .gh-h2, .gh-h3, .gh-h4 { font-family: var(--gh-font); font-weight: 700; letter-spacing: -0.03em; line-height: 1.06; }
.gh-h1 { font-size: clamp(30px, 4.8vw, 54px); }
.gh-h2 { font-size: clamp(26px, 3.2vw, 40px); line-height: 1.1; }
.gh-h3 { font-size: clamp(22px, 2.6vw, 30px); line-height: 1.14; letter-spacing: -0.025em; }
.gh-h4 { font-size: 19px; line-height: 1.2; letter-spacing: -0.015em; }
.gh-lead { font-size: 16.5px; line-height: 1.72; color: rgba(32, 30, 29, .87); }
.gh-text { font-size: 15px; line-height: 1.68; color: rgba(32, 30, 29, .82); }
.gh-small { font-size: 14px; line-height: 1.6; color: rgba(32, 30, 29, .72); }
.gh-kicker { font-size: 14px; font-weight: 600; color: var(--gh-red-deep); }
.gh-dark .gh-lead, .gh-dark .gh-text { color: rgba(243, 242, 242, .82); }
.gh-dark .gh-small { color: rgba(243, 242, 242, .7); }
/* Auf dunklem Grund den helleren Ramp-Schritt nehmen (Kontrast) */
.gh-dark .gh-kicker, .gh-darker .gh-kicker { color: var(--gh-red-light); }
.gh-dark .gh-row__link, .gh-darker .gh-row__link { color: var(--gh-red-light); }
.gh-num { font-variant-numeric: tabular-nums; }

/* --- Buttons (flach, Labels linksbündig) ------------------------------- */

.gh-btn {
  display: inline-flex; align-items: center; gap: 8px;
  font: 600 15px/1 var(--gh-font); text-align: left;
  padding: 13px 20px; border: 2px solid transparent; border-radius: 0;
  cursor: pointer; box-shadow: none; transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.gh-btn--primary { background: var(--gh-red); color: #fff; }
.gh-btn--primary:hover { background: var(--gh-red-press); color: #fff; }
.gh-btn--primary:active { background: var(--gh-red-deep); }
.gh-btn--secondary { background: transparent; color: var(--gh-ink); border-color: var(--gh-ink); }
.gh-btn--secondary:hover { background: var(--gh-ink); color: var(--gh-bg); }
.gh-btn--ghost { background: transparent; color: var(--gh-ink); border-color: var(--gh-rule); }
.gh-btn--ghost:hover { background: rgba(236, 48, 19, .1); border-color: var(--gh-red); color: var(--gh-red-deep); }
.gh-btn--light { background: transparent; color: #fff; border-color: #fff; }
.gh-btn--light:hover { background: #fff; color: var(--gh-ink); }
.gh-btn-row { display: flex; flex-wrap: wrap; gap: 12px; }

/* --- Bilder ------------------------------------------------------------ */

.gh-media { position: relative; overflow: hidden; background: var(--gh-surface); }
.gh-media img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05); }
.gh-media--contain img { object-fit: contain; filter: grayscale(1); }
.gh-ratio-16-9 { aspect-ratio: 16 / 9; }
.gh-ratio-16-10 { aspect-ratio: 16 / 10; }
.gh-ratio-4-3 { aspect-ratio: 4 / 3; }

/* --- Slider (Hero) ---------------------------------------------------- */

.gh-slider { position: relative; background: var(--gh-darker); }
.gh-slider__track {
  display: flex; overflow-x: auto; scroll-snap-type: x mandatory;
  scroll-behavior: smooth; scrollbar-width: none;
}
.gh-slider__track::-webkit-scrollbar { display: none; }
.gh-slide {
  position: relative; flex: 0 0 100%; scroll-snap-align: start;
  min-height: clamp(380px, 56vh, 580px); display: flex; align-items: flex-end;
}
.gh-slide__media { position: absolute; inset: 0; }
.gh-slide__media img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05); }
.gh-slide__inner {
  position: relative; width: 100%; max-width: var(--gh-max); margin: 0 auto;
  padding: 0 var(--gh-pad) clamp(24px, 4vw, 48px);
}
.gh-slide__panel {
  background: rgba(18, 17, 16, .85); color: var(--gh-light);
  border-left: 4px solid var(--gh-red);
  padding: 26px clamp(22px, 3vw, 34px); max-width: 580px;
}
.gh-slide__panel .gh-h1 { margin-bottom: 0; }
.gh-slide__panel .gh-kicker { display: block; margin-bottom: 12px; color: var(--gh-red-light); }
.gh-slide__panel .gh-text { color: rgba(243, 242, 242, .85); margin: 14px 0 22px; }
.gh-slider__nav {
  position: absolute; right: var(--gh-pad); bottom: clamp(24px, 4vw, 48px);
  display: flex; gap: 8px;
}
.gh-slider__dot {
  width: 30px; height: 6px; border: 0; padding: 0; cursor: pointer;
  background: rgba(243, 242, 242, .45); transition: background .15s ease;
}
.gh-slider__dot:hover { background: rgba(243, 242, 242, .8); }
.gh-slider__dot[aria-current="true"] { background: var(--gh-red); }
@media (max-width: 720px) { .gh-slider__nav { position: static; padding: 14px var(--gh-pad); justify-content: flex-start; background: var(--gh-darker); } }

/* --- Quicklink-Leiste ------------------------------------------------- */

.gh-quicklinks { background: var(--gh-bg); border-bottom: 2px solid var(--gh-rule); }
.gh-quicklinks__inner { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 18px; padding-bottom: 18px; }

/* --- Zwei-Spalten-Block ----------------------------------------------- */

.gh-split { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 32px clamp(32px, 5vw, 64px); align-items: start; }
.gh-split--center { align-items: center; }
.gh-split > * { min-width: 0; }
.gh-stack { display: grid; gap: 22px; justify-items: start; }
.gh-embed { position: relative; aspect-ratio: 16 / 9; background: var(--gh-darker); }
.gh-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* --- Listen mit Linien ------------------------------------------------ */

.gh-list { list-style: none; padding: 0; display: grid; }
.gh-list li { padding: 14px 0; border-top: 2px solid var(--gh-rule); font-size: 15.5px; line-height: 1.6; }
.gh-list li:last-child { border-bottom: 2px solid var(--gh-rule); }
.gh-dark .gh-list li { border-color: var(--gh-rule-light); color: rgba(243, 242, 242, .85); }

/* --- Zeilen (Cups, Events, News) -------------------------------------- */

.gh-rows { display: grid; }
.gh-row {
  display: grid; gap: 14px clamp(20px, 3vw, 44px); align-items: baseline;
  padding: 22px 0; border-top: 2px solid var(--gh-rule);
}
.gh-rows .gh-row:last-child { border-bottom: 2px solid var(--gh-rule); }
.gh-dark .gh-row { border-color: rgba(243, 242, 242, .25); }
.gh-red-band .gh-row { border-color: rgba(255, 255, 255, .45); }
.gh-row--cup { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) auto; }
.gh-row--event { grid-template-columns: 120px minmax(0, 1fr) auto; align-items: center; }
.gh-row--news { grid-template-columns: 150px minmax(0, 1fr) auto; }
.gh-row__date { font-weight: 700; font-size: 26px; line-height: 1; }
.gh-row__link { font-size: 14px; font-weight: 600; color: var(--gh-red-deep); white-space: nowrap; }
.gh-dark .gh-row__link, .gh-red-band .gh-row__link { color: inherit; }
@media (max-width: 720px) {
  .gh-row--cup, .gh-row--event, .gh-row--news { grid-template-columns: minmax(0, 1fr); }
  .gh-row__date { font-size: 20px; }
}

/* --- Leistungen (Textspalten) ----------------------------------------- */

.gh-features { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 0 clamp(28px, 4vw, 56px); }
.gh-feature { padding: 20px 0; border-top: 2px solid var(--gh-rule); }
.gh-feature h3 { margin-bottom: 8px; }

/* --- News-Leadstory --------------------------------------------------- */

.gh-lead-story { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px clamp(28px, 4vw, 56px); align-items: center; padding-bottom: 32px; border-bottom: 2px solid var(--gh-rule); }

/* --- Stimmen ---------------------------------------------------------- */

.gh-quotes { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 28px clamp(28px, 4vw, 56px); }
.gh-quote { border-top: 2px solid var(--gh-rule); padding-top: 20px; }
.gh-quote figcaption { font-weight: 600; font-size: 14.5px; margin-top: 16px; }

/* --- Formular / Newsletter -------------------------------------------- */

.gh-field { display: grid; gap: 7px; }
.gh-field label { font-size: 13.5px; font-weight: 600; }
.gh-input {
  font: 400 15px/1.4 var(--gh-font); color: inherit; background: transparent;
  border: 2px solid currentColor; border-radius: 0; padding: 12px 14px; width: 100%;
}
.gh-input::placeholder { color: currentColor; opacity: .5; }
.gh-form { display: grid; gap: 16px; }

/* --- Partner ---------------------------------------------------------- */

.gh-partners { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 20px 28px; align-items: center; }
.gh-partner { height: 46px; }

/* --- Akkordeon (Event-Details) ---------------------------------------- */

.gh-acc { border-bottom: 2px solid var(--gh-rule); }
.gh-acc summary { list-style: none; cursor: pointer; padding: 18px 0; }
.gh-acc summary::-webkit-details-marker { display: none; }
.gh-acc summary:hover { background: rgba(236, 48, 19, .07); }
.gh-acc__body { padding-bottom: 26px; display: grid; gap: 22px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }

/* --- Auftritt beim Laden ---------------------------------------------- */

.gh-reveal > * { animation: gh-rise .5s cubic-bezier(.2, .7, .3, 1) both; }
.gh-reveal > *:nth-child(2) { animation-delay: .07s; }
.gh-reveal > *:nth-child(3) { animation-delay: .14s; }
.gh-reveal > *:nth-child(4) { animation-delay: .21s; }
@keyframes gh-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .gh-reveal > * { animation: none; } }

/* --- Mobile-Feinschliff ------------------------------------------------ */

@media (max-width: 767px) {
  /* Quicklinks (Kalender / Hall of Fame): zentriert, gleich breit, untereinander */
  .gh-quicklinks__inner { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; justify-items: stretch; }
  .gh-quicklinks__inner .gh-btn { justify-content: center; text-align: center; width: 100%; }

  /* Leistungen / Stimmen: Text nicht am Rand kleben lassen */
  .gh-feature, .gh-quote { padding-left: var(--gh-pad); padding-right: var(--gh-pad); }
  .gh-feature { padding-top: 22px; padding-bottom: 22px; }

  /* Partner: größere Logos, größere Überschrift */
  .partner_carousel .carousel_wrapper ul.carousel_list li .image_container img { height: 36px; max-width: 120px; }
  .partner_carousel .carousel_wrapper ul.carousel_list li .image_container { padding: 0.7em 1.2em; }
  .gh-partner { height: 56px; }
  .gh-partners { grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 24px 20px; }
}

/* --- Mobile: Logo & Elementor-Buttons (Verstärkung) ------------------- */

@media (max-width: 767px) {
  .elementor-widget-button:not(.gh-slide__panel .elementor-widget-button):not(header .elementor-widget-button) .elementor-button-wrapper { text-align: center !important; }
  .elementor-widget-button:not(.gh-slide__panel .elementor-widget-button):not(header .elementor-widget-button) .elementor-button { width: 100%; justify-content: center; text-align: center; }
  .elementor-widget-button .elementor-button-content-wrapper { justify-content: center; }
}

/* --- WooCommerce: Mein Konto / Warenkorb / Checkout -------------------- */

.woocommerce, .woocommerce-page { font-family: var(--gh-font); color: var(--gh-ink); }

/* Hinweise ohne Aktions-Buttons, "E-Mail bestätigen" ausblenden */
.woocommerce-MyAccount-content .woocommerce-Message .button,
.woocommerce-MyAccount-content .woocommerce-Message .woocommerce-Button,
.woocommerce-MyAccount-content .woocommerce-info .button,
.woocommerce-MyAccount-content .woocommerce-message .button,
.woocommerce-MyAccount-content .woocommerce-info a.wc-forward { display: none !important; }
.woocommerce-MyAccount-content .woocommerce-info:has(a[href*="confirm"]),
.woocommerce-MyAccount-content .woocommerce-info:has(a[href*="email"]),
.woocommerce-MyAccount-content .woocommerce-message:has(a[href*="confirm"]) { display: none !important; }

/* Notices im Corporate Design */
.woocommerce-info, .woocommerce-message, .woocommerce-error, .woocommerce-notice {
  background: var(--gh-surface) !important; color: var(--gh-ink) !important;
  border: 0 !important; border-left: 4px solid var(--gh-red) !important; border-radius: 0 !important;
  padding: 16px 20px !important; margin: 0 0 24px !important; font-size: 15px; list-style: none;
}
.woocommerce-info::before, .woocommerce-message::before, .woocommerce-error::before { display: none !important; }
.woocommerce-error li { margin: 0; }

/* Mein Konto: Navigation + Inhalt */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 32px clamp(28px, 5vw, 64px); align-items: start; max-width: var(--gh-max); margin: 0 auto; padding: clamp(28px, 4vw, 56px) var(--gh-pad); }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-bottom: 2px solid var(--gh-rule); }
.woocommerce-MyAccount-navigation li { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--gh-rule); }
.woocommerce-MyAccount-navigation li::marker { content: none; }
.woocommerce-MyAccount-navigation a { display: block; padding: 14px 0; font-weight: 600; font-size: 15.5px; color: var(--gh-ink); text-decoration: none; transition: color .15s ease, padding .15s ease; }
.woocommerce-MyAccount-navigation a:hover { color: var(--gh-red); padding-left: 6px; }
.woocommerce-MyAccount-navigation li.is-active a { color: var(--gh-red-deep); box-shadow: inset 4px 0 0 var(--gh-red); padding-left: 16px; }
.woocommerce-MyAccount-content { font-size: 15.5px; line-height: 1.68; }
.woocommerce-MyAccount-content a:not(.button) { color: var(--gh-red-deep); }
.woocommerce-MyAccount-content h2, .woocommerce-MyAccount-content h3,
.woocommerce-checkout h3, .woocommerce-cart h2, .cart_totals h2 { font-family: var(--gh-font); font-weight: 700; letter-spacing: -0.03em; line-height: 1.1; }
@media (max-width: 767px) {
  .woocommerce-account .woocommerce { grid-template-columns: minmax(0, 1fr); }
}

/* Buttons (flach, rot) */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce button.button.alt, .woocommerce a.button.alt, #place_order, .wc-block-components-button {
  font: 600 15px/1 var(--gh-font) !important; border-radius: 0 !important; padding: 14px 22px !important;
  background: var(--gh-red) !important; color: #fff !important; border: 2px solid transparent !important; box-shadow: none !important; text-transform: none; transition: background .15s ease;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, #place_order:hover { background: var(--gh-red-press) !important; color: #fff !important; }
.woocommerce a.button.disabled, .woocommerce button.button:disabled { opacity: .5; }

/* Formulare */
.woocommerce form .form-row label { font-size: 13.5px; font-weight: 600; margin-bottom: 6px; }
.woocommerce form .form-row .input-text, .woocommerce form .form-row select, .woocommerce form .form-row textarea,
.select2-container--default .select2-selection--single {
  font: 400 15px/1.4 var(--gh-font); background: #fff; border: 2px solid var(--gh-ink) !important; border-radius: 0 !important; padding: 10px 14px; box-shadow: none;
}
.woocommerce form .form-row .input-text:focus, .woocommerce form .form-row select:focus, .woocommerce form .form-row textarea:focus { outline: 2px solid var(--gh-red); outline-offset: 2px; }
.woocommerce form .form-row .input-text, .woocommerce form .form-row select { height: 46px; box-sizing: border-box; padding-top: 0; padding-bottom: 0; line-height: normal; }
.woocommerce form .form-row textarea { box-sizing: border-box; }
/* Select2 (Land/Region): feste Höhe, Text vertikal zentriert */
.select2-container--default .select2-selection--single { box-sizing: border-box; height: 46px; padding: 0 14px; display: flex; align-items: center; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: normal; padding: 0; width: 100%; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; top: 0; right: 8px; }
.woocommerce form.login, .woocommerce form.register, .woocommerce-EditAccountForm fieldset { border: 2px solid var(--gh-rule); border-radius: 0; padding: 24px; }

/* Tabellen: Warenkorb, Bestellungen, Checkout-Übersicht */
.woocommerce table.shop_table { border: 0 !important; border-collapse: collapse; border-radius: 0; font-size: 15px; }
.woocommerce table.shop_table th { font-weight: 700; border-top: 0; border-bottom: 2px solid var(--gh-ink); padding: 12px 10px; text-align: left; }
.woocommerce table.shop_table td { border-top: 2px solid var(--gh-rule) !important; padding: 14px 10px; background: transparent; }
.woocommerce table.shop_table tfoot th, .woocommerce table.shop_table tfoot td { border-top: 2px solid var(--gh-rule); }
.woocommerce table.shop_table .order-total th, .woocommerce table.shop_table .order-total td { font-size: 18px; font-weight: 700; border-top: 2px solid var(--gh-ink) !important; }

/* Checkout */
.woocommerce-checkout #customer_details { padding-right: clamp(0px, 2vw, 24px); }
.woocommerce-checkout #order_review_heading { margin-top: 8px; }
.woocommerce-checkout #order_review, .woocommerce-cart .cart_totals { background: var(--gh-surface); padding: 22px; }
.woocommerce-checkout #payment { background: transparent !important; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 2px solid var(--gh-rule); padding: 0 0 12px; }
.woocommerce-checkout #payment div.payment_box { background: #fff; border-radius: 0; color: var(--gh-ink); }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment div.form-row { padding: 16px 0 0; }
#place_order { width: 100%; font-size: 17px !important; padding: 18px 22px !important; }

/* Mein Konto: feste Platzierung (verhindert Verrutschen durch Zusatz-Elemente) */
.woocommerce-account .woocommerce > * { grid-column: 1 / -1; }
.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation { grid-column: 1; grid-row: 1; }
.woocommerce-account .woocommerce > .woocommerce-MyAccount-content { grid-column: 2; grid-row: 1; }
@media (max-width: 767px) {
  .woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation,
  .woocommerce-account .woocommerce > .woocommerce-MyAccount-content { grid-column: 1; grid-row: auto; }
}
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-MyAccount-content .woocommerce-address-fields__field-wrapper,
.woocommerce-MyAccount-content form .form-row-first, .woocommerce-MyAccount-content form .form-row-last { box-sizing: border-box; }
.woocommerce-MyAccount-content form .form-row { width: 100%; float: none; }
.woocommerce-MyAccount-content form .form-row-first, .woocommerce-MyAccount-content form .form-row-last { width: calc(50% - 8px); float: left; }
.woocommerce-MyAccount-content form .form-row-first { margin-right: 16px; }
.woocommerce-MyAccount-content form .form-row-wide, .woocommerce-MyAccount-content form p.form-row:not(.form-row-first):not(.form-row-last) { clear: both; }
.woocommerce-MyAccount-content form .form-row .input-text, .woocommerce-MyAccount-content form .form-row select { width: 100%; }
.woocommerce-MyAccount-navigation li.is-active a { padding-left: 16px; }
.woocommerce-MyAccount-navigation ul { border-top: 0; }
.woocommerce-MyAccount-navigation li:first-child { border-top: 0; }

/* --- Checkout: Bestellübersicht (Elementor-Checkout überschreiben) ------ */

.woocommerce-checkout a, .elementor-widget-woocommerce-checkout-page a { color: var(--gh-red-deep); }
.woocommerce-checkout a:hover, .elementor-widget-woocommerce-checkout-page a:hover { color: var(--gh-red); }

/* Karten: Gutschein-Hinweis, Bestellbox -> flach, Linien statt Rahmen */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info,
.elementor-widget-woocommerce-checkout-page .woocommerce-form-coupon-toggle .woocommerce-info { background: var(--gh-surface) !important; border-left: 4px solid var(--gh-red) !important; border-radius: 0 !important; }
.e-checkout__order_review, .e-checkout__order_review-2, .woocommerce-checkout #order_review,
.elementor-widget-woocommerce-checkout-page .e-checkout__order_review-2 {
  background: transparent !important; border: 0 !important; border-top: 2px solid var(--gh-ink) !important; border-radius: 0 !important; box-shadow: none !important; padding: 24px 0 0 !important;
}
#order_review_heading, .e-checkout__order_review h3, .woocommerce-checkout h3 {
  font: 700 clamp(22px, 2.6vw, 30px)/1.14 var(--gh-font) !important; letter-spacing: -0.025em; color: var(--gh-ink) !important; margin: 0 0 20px;
}

/* AGB-Checkbox */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper,
.woocommerce-checkout .legal,
.woocommerce-checkout .validate-required.legal, .woocommerce-checkout .form-row.validate-required:has(input[type="checkbox"]) {
  background: var(--gh-surface) !important; box-shadow: none !important; border-radius: 0 !important; border-left: 4px solid var(--gh-red); padding: 14px 18px !important; margin: 0 0 24px !important;
}
/* Germanized-Platzhalter: leere ausblenden, Box nur am inneren Checkbox-Feld (sonst doppelter Rahmen) */
.woocommerce-checkout .wc-gzd-checkbox-placeholder:empty { display: none !important; }
.woocommerce-checkout .wc-gzd-checkbox-placeholder { background: none !important; border: 0 !important; padding: 0 !important; margin: 0 !important; }
.woocommerce-checkout label.checkbox, .woocommerce-checkout .woocommerce-form__label-for-checkbox { font-size: 14.5px !important; font-weight: 500 !important; color: var(--gh-ink) !important; line-height: 1.5; }
.woocommerce-checkout input[type="checkbox"] { accent-color: var(--gh-red); width: 18px; height: 18px; border-radius: 0; }

/* Tabelle */
.woocommerce-checkout-review-order-table { width: 100%; table-layout: auto; background: transparent !important; }
.woocommerce-checkout-review-order-table thead th { background: transparent !important; color: var(--gh-ink-soft) !important; font-size: 13px; font-weight: 600; text-transform: none; border-bottom: 2px solid var(--gh-ink) !important; padding: 10px 0 !important; }
.woocommerce-checkout-review-order-table th, .woocommerce-checkout-review-order-table td { background: transparent !important; color: var(--gh-ink) !important; padding: 16px 0 !important; vertical-align: top; }
.woocommerce-checkout-review-order-table .product-total, .woocommerce-checkout-review-order-table thead th:last-child,
.woocommerce-checkout-review-order-table tfoot td { text-align: right !important; width: 120px; white-space: nowrap; }
.woocommerce-checkout-review-order-table .product-name { font-weight: 600; line-height: 1.5; }
.woocommerce-checkout-review-order-table .product-name small, .woocommerce-checkout-review-order-table .product-name dl { font-size: 13.5px; font-weight: 400; color: var(--gh-ink-soft); margin: 4px 0 0; }
.woocommerce-checkout-review-order-table .product-quantity { font-weight: 500; color: var(--gh-ink-soft); }
.woocommerce-checkout-review-order-table tbody td { border-top: 0 !important; border-bottom: 2px solid var(--gh-rule) !important; }
.woocommerce-checkout-review-order-table tfoot th { font-weight: 600; font-size: 15px; color: var(--gh-ink-soft) !important; text-align: left; border-top: 0 !important; }
.woocommerce-checkout-review-order-table tfoot td { font-size: 15px; font-weight: 600; border-top: 0 !important; }
.woocommerce-checkout-review-order-table tfoot .order-total th, .woocommerce-checkout-review-order-table tfoot .order-total td {
  font-size: 22px; font-weight: 700; color: var(--gh-ink) !important; border-top: 2px solid var(--gh-ink) !important; padding-top: 18px !important;
}
.woocommerce-checkout-review-order-table .tm-cart-edit-options, .woocommerce-checkout-review-order-table .cart_item a[href*="edit"] { display: none !important; }

/* Zahlung + Button */
.woocommerce-checkout #payment { margin-top: 8px; }
#place_order { margin-top: 8px; text-transform: none !important; letter-spacing: 0; }

/* --- Mobiler Header: Logo links, Menü + Warenkorb + Buchen in einer Reihe --- */

@media (max-width: 767px) {
  header .elementor-element-1595b350 { flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; justify-content: space-between !important; gap: 8px !important; padding: 8px 12px !important; }
  header .elementor-element-4f97862f { flex: 0 1 auto !important; width: auto !important; min-width: 0; }
  header .elementor-element-28808046 img { width: 150px !important; max-width: 100% !important; height: auto !important; }
  header .elementor-element-255e2877 { flex: 0 0 auto !important; width: auto !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; justify-content: flex-end !important; gap: 12px !important; }
  header .elementor-element-255e2877 > .elementor-widget { width: auto !important; margin: 0 !important; }
  header .elementor-element-506f2c3a .elementor-menu-toggle { margin: 0 !important; padding: 8px !important; }
  header .elementor-element-5aab0cc .elementor-icon { font-size: 22px; display: flex; align-items: center; }
  header .elementor-element-495eb552 .elementor-button { width: auto !important; padding: 11px 14px !important; font-size: 12px !important; line-height: 1 !important; white-space: nowrap; letter-spacing: .08em; }
}

/* --- Partner-Slider: Logos vertikal mittig --- */
/* Das Widget-CSS legt margin:22px 26px auf .elementor-carousel-image. Das Element
   ist 100% hoch, der Margin schiebt es also nach unten statt es zu verkleinern –
   die Logos sitzen dadurch 22px zu tief. Hier als Padding nachgebaut. */

.gh-partner-slider .elementor-carousel-image {
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 22px 26px !important;
  background-origin: content-box !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
}

/* Hover-Akzente auf Logo-Rot statt des alten Orange */
.gh-partner-slider .swiper-slide:hover { border-color: var(--gh-red) !important; }
.gh-partner-slider .elementor-swiper-button:hover { background: var(--gh-red) !important; }
