.elementor-10334 .elementor-element.elementor-element-1a2e327{--display:flex;}.elementor-10334 .elementor-element.elementor-element-42efed8{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-10334 .elementor-element.elementor-element-da18337 .fluentform-widget-wrapper .ff-el-group .ff-btn-submit{background-color:#1a7efb !important;color:#ffffff !important;}:root{--page-title-display:none;}/* Start custom CSS *//*
 * pt-ok-sound-roadshow-fullPage.css
 * Complete Elementor-ready PK Sound Roadshow stylesheet.
 */

/* ═══════════════════════════════════════════════════════════════
   variables.css
   publitec.tv – PK Sound Roadshow
   Design Tokens extracted from Elementor Kit (post-6.css)
   ═══════════════════════════════════════════════════════════════ */

:root {

  /* ─── Brand Colors ──────────────────────────────────────────── */
  /* Source: --e-global-color-* from Elementor Kit post-6.css     */
  --color-red:         #E2000A;   /* primary CTA, links, borders  */
  --color-teal-dark:   #006876;   /* form bg, dark accent         */
  --color-teal:        #00A1B0;   /* secondary accent, icons      */
  --color-purple:      #79336E;   /* tertiary accent              */
  --color-purple-lt:   #A23570;   /* lighter purple               */
  --color-orange:      #FF530D;   /* highlight, warm accent       */
  --color-orange-lt:   #FF8000;   /* lighter orange               */
  --color-yellow:      #FFED00;   /* badges, step numbers         */
  --color-sand:        #DEDCD3;   /* section backgrounds          */
  --color-white:       #FFFFFF;
  --color-dark:        #2c2d33;   /* body text, dark sections     */
  --color-secondary:   #54595F;   /* --e-global-color-secondary   */
  --color-text:        #7A7A7A;   /* --e-global-color-text        */
  --color-black:       #000000;

  /* ─── Semantic Aliases ──────────────────────────────────────── */
  --color-bg:          var(--color-white);
  --color-bg-dark:     var(--color-dark);
  --color-bg-alt:      var(--color-sand);
  --color-bg-teal:     var(--color-teal-dark);
  --color-border:      rgba(0, 0, 0, 0.1);
  --color-border-dark: rgba(255, 255, 255, 0.1);

  /* ─── Typography ────────────────────────────────────────────── */
  /* Source: --e-global-typography-* from Elementor Kit           */
  --font-main:   inherit;
  --fw-light:    300;   /* --e-global-typography-text-font-weight  */
  --fw-regular:  400;   /* --e-global-typography-secondary-weight  */
  --fw-medium:   500;   /* --e-global-typography-accent-weight     */
  --fw-bold:     700;   /* h1–h2                                   */
  --fw-extrabold:800;   /* --e-global-typography-primary-weight    */
  --fw-black:    900;   /* display headlines                       */

  --fs-xs:    13px;
  --fs-sm:    14px;
  --fs-body:  17px;   /* --e-global-typography-text-font-size    */
  --fs-md:    21px;   /* --e-global-typography-secondary-size    */
  --fs-lg:    25px;   /* --e-global-typography-accent-font-size  */
  --fs-xl:    38px;
  --fs-2xl:   51px;
  --fs-3xl:   72px;

  --lh-tight:  1.05;
  --lh-normal: 1.5;
  --lh-loose:  1.65;

  /* ─── Spacing ───────────────────────────────────────────────── */
  /* Source: --wp--preset--spacing--* from WordPress theme        */
  --space-2xs:  4px;
  --space-xs:   8px;
  --space-sm:  16px;
  --space-md:  24px;
  --space-lg:  40px;
  --space-xl:  64px;
  --space-2xl: 100px;

  /* ─── Layout ────────────────────────────────────────────────── */
  /* Source: --container-max-width from Elementor Kit             */
  --max-width:       1140px;
  --max-width-tablet: 1024px;
  --max-width-mobile:  767px;

  /* ─── Effects ───────────────────────────────────────────────── */
  --radius:      4px;
  --radius-sm:   2px;
  --shadow-sm:   0 2px 12px rgba(0, 0, 0, 0.08);
  --shadow-md:   0 4px 24px rgba(0, 0, 0, 0.12);
  --shadow-lg:   0 8px 40px rgba(0, 0, 0, 0.18);
  --transition:  0.2s ease;

  /* ─── Section Padding ───────────────────────────────────────── */
  --section-padding: var(--space-2xl) 0;
}

/* ─── Base Reset ─────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html  { scroll-behavior: smooth; }
body  {
  font-family: var(--font-main);
  font-size:   var(--fs-body);
  font-weight: var(--fw-light);
  color:       var(--color-dark);
  background:  var(--color-bg);
  line-height: var(--lh-normal);
}
a    { color: var(--color-red); text-decoration: none; }
a:hover { text-decoration: underline; }
img  { max-width: 100%; display: block; }

/* Keep Elementor/theme container rules from widening roadshow blocks. */
.pt-pk-sound-roadshow-full-page {
  width:      100%;
  max-width:  100%;
  margin:     0 auto;
  overflow-x: clip;
}

/* ─── Utility Classes ────────────────────────────────────────── */
.container {
  width: 100%;
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-sm);
}

.pt-pk-sound-roadshow-full-page .container,
.hero .container,
.usp-bar .container,
.tech-section .container,
.products-section .container,
.schedule-section .container,
.handson-banner .container,
.register-section .container,
.site-header .container,
.site-footer .container {
  width:         100%;
  max-width:     var(--max-width);
  margin-left:   auto;
  margin-right:  auto;
  padding-left:  var(--space-sm);
  padding-right: var(--space-sm);
  min-width:     0;
}

.pt-pk-sound-roadshow-full-page .container > * {
  min-width: 0;
}

.section-label {
  display: inline-block;
  font-size:      var(--fs-xs);
  font-weight:    var(--fw-black);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color:          var(--color-red);
  margin-bottom:  var(--space-sm);
}

.section-title {
  font-size:      clamp(28px, 3.5vw, 44px);
  font-weight:    var(--fw-black);
  text-transform: uppercase;
  line-height:    var(--lh-tight);
  color:          var(--color-dark);
  margin-bottom:  var(--space-md);
}
.section-title span { color: var(--color-red); }

.section-body {
  font-size:   18px;
  font-weight: var(--fw-light);
  color:       var(--color-secondary);
  line-height: var(--lh-loose);
  max-width:   600px;
}
.section-body + .section-body { margin-top: var(--space-sm); }
.section-body strong { color: var(--color-dark); font-weight: var(--fw-medium); }

/* ─── Button System ──────────────────────────────────────────── */
/* Source: .elementor-kit-6 button rules in post-6.css           */
.btn {
  display:        inline-flex;
  align-items:    center;
  justify-content:center;
  font-family:    inherit;
  font-size:      var(--fs-body);
  font-weight:    var(--fw-bold);
  letter-spacing: 0.07em;
  text-transform: uppercase;
  padding:        14px 32px;
  border-radius:  var(--radius);
  cursor:         pointer;
  border:         2px solid transparent;
  transition:     all var(--transition);
  text-decoration: none !important;
  line-height:    1;
  appearance:     none;
  -webkit-appearance: none;
}
.btn-primary {
  background:   var(--color-red);
  color:        var(--color-white) !important;
  border-color: var(--color-red);
}
.site-nav a.btn-primary {
  background:   var(--color-red);
  border-color: var(--color-red);
  color:        var(--color-white) !important;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.site-nav a.btn-primary:hover,
.site-nav a.btn-primary:focus,
.site-nav a.btn-primary:active {
  background:   #b0000a;
  border-color: #b0000a;
  color:        var(--color-white) !important;
  text-decoration: none;
}
.btn-outline {
  background:   transparent;
  color:        var(--color-white) !important;
  border-color: var(--color-white);
}
.btn-outline:hover,
.btn-outline:focus,
.btn-outline:active {
  background: var(--color-white);
  color:      var(--color-dark) !important;
}
.btn-teal {
  background:   var(--color-teal-dark);
  color:        var(--color-white) !important;
  border-color: var(--color-teal-dark);
}
.btn-teal:hover,
.btn-teal:focus,
.btn-teal:active {
  background:   #004f5a;
  border-color: #004f5a;
  color:        var(--color-white) !important;
}
.btn-lg { font-size: 19px; padding: 16px 40px; }
.btn-block { width: 100%; text-align: center; }

/* ═══════════════════════════════════════════════════════════════
   pt-header-roadshow.css
   ═══════════════════════════════════════════════════════════════ */


.site-header {
  background:    var(--color-white);
  border-bottom: 3px solid var(--color-red);
  position:      sticky;
  top:           0;
  z-index:       1000;
  box-shadow:    var(--shadow-sm);
}

.header-inner {
  max-width:      var(--max-width);
  margin:         0 auto;
  padding:        0 var(--space-sm);
  display:        flex;
  align-items:    center;
  justify-content:space-between;
  height:         70px;
}

.site-logo img { height: 48px; width: auto; }

.site-nav {
  display:     flex;
  gap:         var(--space-md);
  align-items: center;
}
.site-nav a {
  font-size:      16px;
  font-weight:    var(--fw-medium);
  color:          var(--color-secondary);
  letter-spacing: 0.03em;
  transition:     color var(--transition);
}
.site-nav a:hover { color: var(--color-red); text-decoration: none; }

.site-nav .nav-cta {
  font-size:   15px !important;
  padding:     8px 18px;
}

/* ── Mobile toggle (hidden on desktop) ───────── */
.nav-toggle {
  display:        none;
  flex-direction: column;
  gap:            5px;
  background:     none;
  border:         none;
  cursor:         pointer;
  padding:        4px;
}
.nav-toggle span {
  display:    block;
  width:      24px;
  height:     2px;
  background: var(--color-dark);
  transition: all var(--transition);
}

@media (max-width: 768px) {
  .nav-toggle { display: flex; }

  .site-nav {
    display:        none;
    position:       absolute;
    top:            70px;
    left:           0; right: 0;
    background:     var(--color-white);
    flex-direction: column;
    padding:        var(--space-md);
    gap:            var(--space-sm);
    border-top:     2px solid var(--color-red);
    box-shadow:     var(--shadow-md);
  }
  .site-nav.is-open { display: flex; }
  .site-nav a { font-size: 17px; }
}

/* ═══════════════════════════════════════════════════════════════
   pt-hero-roadshow.css
   ═══════════════════════════════════════════════════════════════ */


.hero {
  position:   relative;
  min-height: 92vh;
  display:    flex;
  align-items:center;
  overflow:   hidden;
  background: var(--color-dark);
}

/* Background: publitec event photo */
.hero-bg {
  position:          absolute;
  inset:             0;
  background-image:  url("https://publitec.tv/wp-content/uploads/2025/08/Dreamstate-Fire2.webp");
  background-size:   cover;
  background-position: center top;
  opacity:           0.9;
  transform:         scale(1.03);
}

.hero-inner {
  position: relative;
  z-index:  2;
  padding:  var(--space-xl) var(--space-sm);
  display:  grid;
  grid-template-columns: 1fr 1fr;
  gap:      var(--space-xl);
  align-items: center;
}

/* ── Badge ─────────────────────────────── */
.hero-badge {
  display:        inline-flex;
  align-items:    center;
  gap:            var(--space-xs);
  background:     var(--color-yellow);
  color:          var(--color-dark);
  font-size:      var(--fs-xs);
  font-weight:    var(--fw-black);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  padding:        5px 14px;
  margin-bottom:  var(--space-md);
}
.hero-badge::before { content: "★"; font-size: 12px; }

/* ── Headline ───────────────────────────── */
.hero h1 {
  font-size:      clamp(38px, 5vw, 68px);
  font-weight:    var(--fw-black);
  line-height:    var(--lh-tight);
  color:          var(--color-white);
  text-transform: uppercase;
  letter-spacing: -0.01em;
  margin-bottom:  var(--space-sm);
}
.hero h1 span { color: var(--color-red); }

/* ── Sub ────────────────────────────────── */
.hero-sub {
  font-size:     20px;
  font-weight:   var(--fw-light);
  color:         rgba(255, 255, 255, 0.82);
  max-width:     500px;
  margin-bottom: var(--space-lg);
  line-height:   var(--lh-loose);
}
.hero-sub strong { color: var(--color-white); font-weight: var(--fw-medium); }

.hero-actions { display: flex; gap: var(--space-sm); flex-wrap: wrap; }

/* ── Date Cards ─────────────────────────── */
.hero-date-cards { display: flex; flex-direction: column; gap: var(--space-sm); }

.hero-date-card {
  background:      rgba(255, 255, 255, 0.08);
  border:          1px solid rgba(255, 255, 255, 0.18);
  border-left:     4px solid var(--color-red);
  backdrop-filter: blur(8px);
  padding:         var(--space-sm) var(--space-md);
  display:         flex;
  align-items:     center;
  gap:             var(--space-md);
  transition:      background var(--transition), border-color var(--transition);
}
.hero-date-card:hover {
  background:   rgba(255, 255, 255, 0.14);
  border-left-color: var(--color-orange);
}

.hero-date-num {
  font-size:   40px;
  font-weight: var(--fw-black);
  color:       var(--color-white);
  line-height: 1;
  min-width:   44px;
}
.hero-date-sep {
  font-size:   24px;
  color:       var(--color-red);
  font-weight: var(--fw-black);
}
.hero-date-info { flex: 1; }
.hero-date-info strong {
  display:        block;
  color:          var(--color-white);
  font-size:      18px;
  font-weight:    var(--fw-bold);
  text-transform: uppercase;
}
.hero-date-info > span { color: rgba(255, 255, 255, 0.6); font-size: 14px; }

.hero-date-slots { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; }
.hero-date-slot {
  display:     inline-flex;
  align-items: center;
  gap:         6px;
  font-size:   13px;
  font-weight: var(--fw-medium);
  color:       var(--color-yellow);
  background:  rgba(255, 237, 0, 0.12);
  padding:     3px 10px;
  width:       fit-content;
}

/* ── Responsive ─────────────────────────── */
@media (max-width: 768px) {
  .hero-inner { grid-template-columns: 1fr; }
  .hero-right  { display: none; }
  .hero { min-height: 70vh; }
}

/* ═══════════════════════════════════════════════════════════════
   pt-usp-bar.css
   ═══════════════════════════════════════════════════════════════ */


.usp-bar { background: var(--color-red); padding: var(--space-md) 0; }

.usp-bar-inner {
  display:               grid;
  grid-template-columns: repeat(4, 1fr);
}

.usp-item {
  display:     flex;
  align-items: center;
  gap:         var(--space-sm);
  padding:     var(--space-sm) var(--space-md);
  color:       var(--color-white);
  border-right: 1px solid rgba(255, 255, 255, 0.2);
}
.usp-item:last-child { border-right: none; }

.usp-icon { font-size: 28px; flex-shrink: 0; line-height: 1; }

.usp-text strong {
  display:        block;
  font-size:      16px;
  font-weight:    var(--fw-bold);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.usp-text span { font-size: var(--fs-sm); font-weight: var(--fw-light); opacity: 0.85; }

@media (max-width: 1024px) {
  .usp-bar-inner { grid-template-columns: repeat(2, 1fr); }
  .usp-item:nth-child(2) { border-right: none; }
}
@media (max-width: 480px) {
  .usp-bar-inner { grid-template-columns: 1fr; }
  .usp-item { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.15); }
  .usp-item:last-child { border-bottom: none; }
}

/* ═══════════════════════════════════════════════════════════════
   pt-technology-roadshow.css
   ═══════════════════════════════════════════════════════════════ */


.tech-section { padding: var(--section-padding); }

/* ── Grid ───────────────────────────────── */
.intro-grid {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   var(--space-xl);
  align-items:           start;
}

/* ── Text Column ────────────────────────── */
.intro-text { display: flex; flex-direction: column; gap: var(--space-md); }

.intro-list {
  list-style: none;
  display:    flex;
  flex-direction: column;
  gap:        var(--space-xs);
}
.intro-list li {
  display:     flex;
  align-items: flex-start;
  gap:         var(--space-xs);
  font-size:   var(--fs-body);
  font-weight: var(--fw-light);
  color:       var(--color-secondary);
}
.intro-list li::before {
  content:     "→";
  color:       var(--color-red);
  font-weight: var(--fw-bold);
  flex-shrink: 0;
  margin-top:  1px;
}

/* ── Stat Cards Grid ────────────────────── */
.stat-cards {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   var(--space-sm);
}

.stat-card {
  background:    var(--color-dark);
  color:         var(--color-white);
  padding:       var(--space-md);
  border-bottom: 3px solid var(--color-teal);
}
.stat-card--red    { border-bottom-color: var(--color-red); }
.stat-card--orange { border-bottom-color: var(--color-orange); }
.stat-card--teal   { border-bottom-color: var(--color-teal); }
.stat-card--dark   { background: var(--color-teal-dark); border-bottom-color: var(--color-yellow); }

.stat-num {
  font-size:   38px;
  font-weight: var(--fw-black);
  color:       var(--color-white);
  line-height: 1;
  margin-bottom: 4px;
}
.stat-unit   { font-size: 19px; }
.stat-label  {
  font-size:      var(--fs-sm);
  font-weight:    var(--fw-medium);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity:        0.75;
}
.stat-desc {
  font-size:   13px;
  font-weight: var(--fw-light);
  opacity:     0.6;
  margin-top:  4px;
}

/* ── Responsive ─────────────────────────── */
@media (max-width: 768px) {
  .intro-grid  { grid-template-columns: 1fr; }
  .stat-cards  { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
  .stat-cards  { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════
   pt-products-roadshow.css
   ═══════════════════════════════════════════════════════════════ */


.products-section {
  background: var(--color-dark);
  padding:    var(--section-padding);
}

.products-header {
  text-align:    center;
  margin-bottom: var(--space-xl);
}

/* ── Grid ───────────────────────────────── */
.products-grid {
  display:               grid;
  grid-template-columns: repeat(4, 1fr);
  gap:                   var(--space-sm);
}

/* ── Card Base ──────────────────────────── */
.product-card {
  background:  rgba(255, 255, 255, 0.04);
  border:      1px solid rgba(255, 255, 255, 0.08);
  border-top:  3px solid var(--color-teal);
  padding:     var(--space-md);
  position:    relative;
  transition:  transform var(--transition), background var(--transition);
}
.product-card:hover {
  transform:  translateY(-4px);
  background: rgba(255, 255, 255, 0.08);
}

/* ── Card Color Modifiers ───────────────── */
.product-card--red    { border-top-color: var(--color-red); }
.product-card--orange { border-top-color: var(--color-orange); }
.product-card--teal   { border-top-color: var(--color-teal); }
.product-card--yellow { border-top-color: var(--color-yellow); }

/* ── Card Elements ──────────────────────── */
.product-badge {
  position:       absolute;
  top:            var(--space-sm);
  right:          var(--space-sm);
  background:     var(--color-yellow);
  color:          var(--color-dark);
  font-size:      11px;
  font-weight:    var(--fw-black);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding:        3px 8px;
}

.product-type {
  font-size:      12px;
  font-weight:    var(--fw-black);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color:          var(--color-teal);
  margin-bottom:  6px;
}
.product-card--red    .product-type { color: var(--color-red); }
.product-card--orange .product-type { color: var(--color-orange); }
.product-card--yellow .product-type { color: var(--color-yellow); }

.product-name {
  font-size:      26px;
  font-weight:    var(--fw-black);
  color:          var(--color-white);
  text-transform: uppercase;
  line-height:    1;
  margin-bottom:  var(--space-xs);
}

.product-full-name {
  font-size:     15px;
  font-weight:   var(--fw-medium);
  color:         rgba(255, 255, 255, 0.6);
  margin-bottom: var(--space-sm);
}

.product-features {
  list-style: none;
  display:    flex;
  flex-direction: column;
  gap:        5px;
}
.product-features li {
  display:     flex;
  align-items: flex-start;
  gap:         6px;
  font-size:   var(--fs-sm);
  font-weight: var(--fw-light);
  color:       rgba(255, 255, 255, 0.7);
}
.product-features li::before {
  content:     "▸";
  color:       var(--color-teal);
  flex-shrink: 0;
}
.product-card--red    .product-features li::before { color: var(--color-red); }
.product-card--orange .product-features li::before { color: var(--color-orange); }
.product-card--yellow .product-features li::before { color: var(--color-yellow); }

/* ── Responsive ─────────────────────────── */
@media (max-width: 1024px) { .products-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .products-grid { grid-template-columns: 1fr; } }

/* ═══════════════════════════════════════════════════════════════
   pt-schedule-roadshow.css
   ═══════════════════════════════════════════════════════════════ */


.schedule-section {
  background: var(--color-sand);
  padding:    var(--section-padding);
}

.schedule-header {
  text-align:    center;
  margin-bottom: var(--space-xl);
}

/* ── Grid ───────────────────────────────── */
.schedule-grid {
  display:               grid;
  grid-template-columns: minmax(0, 760px);
  justify-content:       center;
  gap:                   var(--space-lg);
}

/* ── Card ───────────────────────────────── */
.event-card {
  background:     var(--color-white);
  overflow:       hidden;
  box-shadow:     var(--shadow-md);
  display:        flex;
  flex-direction: column;
}

/* ── Card Header ────────────────────────── */
.event-card-top {
  padding:     var(--space-md) var(--space-lg);
  display:     flex;
  align-items: flex-end;
  gap:         var(--space-md);
}
.event-card-top--dark  { background: var(--color-dark); }
.event-card-top--teal  { background: var(--color-teal-dark); }

.event-card-day {
  font-size:   72px;
  font-weight: var(--fw-black);
  color:       var(--color-white);
  line-height: 1;
}
.event-card-month {
  font-size:      var(--fs-body);
  font-weight:    var(--fw-bold);
  color:          var(--color-yellow);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.event-card-meta { flex: 1; padding-bottom: 4px; }
.event-card-city {
  font-size:      28px;
  font-weight:    var(--fw-black);
  color:          var(--color-white);
  text-transform: uppercase;
}
.event-card-venue {
  font-size:   15px;
  font-weight: var(--fw-regular);
  color:       rgba(255, 255, 255, 0.7);
  margin-top:  4px;
}

/* ── Card Body ──────────────────────────── */
.event-card-body {
  padding:        var(--space-md) var(--space-lg) var(--space-lg);
  flex:           1;
  display:        flex;
  flex-direction: column;
  gap:            var(--space-sm);
}

/* ── Timeslots ──────────────────────────── */
.event-timeslots { display: flex; flex-direction: column; gap: var(--space-xs); }

.event-timeslot {
  display:     flex;
  align-items: flex-start;
  gap:         var(--space-sm);
  border-left: 3px solid var(--color-red);
  padding:     var(--space-xs) var(--space-sm);
  background:  rgba(226, 0, 10, 0.05);
}

.event-time {
  font-size:   21px;
  font-weight: var(--fw-black);
  color:       var(--color-red);
  white-space: nowrap;
  line-height: 1.2;
  min-width:   52px;
}
.event-slot-info { display: flex; flex-direction: column; }
.event-slot-info strong {
  font-size:   15px;
  font-weight: var(--fw-bold);
  color:       var(--color-dark);
}
.event-slot-info span {
  font-size:   var(--fs-sm);
  font-weight: var(--fw-light);
  color:       var(--color-text);
}

.event-duration {
  display:     inline-flex;
  align-items: center;
  gap:         6px;
  font-size:   var(--fs-sm);
  font-weight: var(--fw-medium);
  color:       var(--color-teal-dark);
}
.event-duration::before { content: "⏱"; }

.event-card .btn { margin-top: auto; align-self: flex-start; }

/* ── Responsive ─────────────────────────── */
@media (max-width: 768px) { .schedule-grid { grid-template-columns: 1fr; } }

/* ═══════════════════════════════════════════════════════════════
   pt-handson-roadshow.css
   ═══════════════════════════════════════════════════════════════ */


.handson-banner {
  background: var(--color-teal-dark);
  padding:    var(--space-xl) 0;
  position:   relative;
  overflow:   hidden;
}

/* Diagonal stripe texture overlay */
.handson-banner::before {
  content:  "";
  position: absolute;
  inset:    0;
  background: repeating-linear-gradient(
    -45deg,
    transparent,
    transparent 20px,
    rgba(255, 255, 255, 0.03) 20px,
    rgba(255, 255, 255, 0.03) 40px
  );
  pointer-events: none;
}

.handson-inner {
  position:              relative;
  z-index:               1;
  display:               grid;
  grid-template-columns: auto 1fr auto;
  gap:                   var(--space-xl);
  align-items:           center;
}

/* ── Icon ───────────────────────────────── */
.handson-icon { font-size: 72px; line-height: 1; }

/* ── Content ────────────────────────────── */
.handson-label {
  font-size:      var(--fs-xs);
  font-weight:    var(--fw-black);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color:          var(--color-yellow);
  margin-bottom:  8px;
}

.handson-title {
  font-size:      clamp(24px, 3vw, 38px);
  font-weight:    var(--fw-black);
  color:          var(--color-white);
  text-transform: uppercase;
  line-height:    1.1;
  margin-bottom:  var(--space-sm);
}

.handson-desc {
  font-size:   18px;
  font-weight: var(--fw-light);
  color:       rgba(255, 255, 255, 0.8);
  max-width:   520px;
}

/* ── Steps ──────────────────────────────── */
.handson-steps {
  display:        flex;
  flex-direction: column;
  gap:            var(--space-xs);
  min-width:      240px;
}

.handson-step {
  display:     flex;
  align-items: center;
  gap:         var(--space-sm);
  background:  rgba(255, 255, 255, 0.08);
  padding:     10px var(--space-sm);
  border-left: 3px solid var(--color-yellow);
}

.handson-step-num {
  width:            28px;
  height:           28px;
  background:       var(--color-yellow);
  color:            var(--color-dark);
  font-size:        15px;
  font-weight:      var(--fw-black);
  display:          flex;
  align-items:      center;
  justify-content:  center;
  flex-shrink:      0;
  border-radius:    var(--radius-sm);
}

.handson-step span {
  font-size:   15px;
  font-weight: var(--fw-medium);
  color:       var(--color-white);
}

/* ── Responsive ─────────────────────────── */
@media (max-width: 1024px) {
  .handson-inner { grid-template-columns: 1fr auto; }
  .handson-icon  { display: none; }
}
@media (max-width: 768px) {
  .handson-inner { grid-template-columns: 1fr; text-align: center; }
  .handson-steps { width: 100%; min-width: unset; }
  .handson-step  { justify-content: center; }
}

/* ═══════════════════════════════════════════════════════════════
   pt-register-roadshow.css
   ═══════════════════════════════════════════════════════════════ */


.register-section { padding: var(--section-padding); }

/* ── Layout ─────────────────────────────── */
.register-grid {
  display:               grid;
  grid-template-columns: 1fr 1.3fr;
  gap:                   var(--space-xl);
  align-items:           start;
}

/* ── Info Column ────────────────────────── */
.register-info { display: flex; flex-direction: column; gap: var(--space-md); }

.register-checklist {
  list-style: none;
  display:    flex;
  flex-direction: column;
  gap:        var(--space-sm);
}
.register-checklist li {
  display:     flex;
  align-items: flex-start;
  gap:         var(--space-sm);
  font-size:   var(--fs-body);
  color:       var(--color-secondary);
}
.register-checklist li::before {
  content:         "✓";
  display:         flex;
  align-items:     center;
  justify-content: center;
  width:           22px;
  height:          22px;
  flex-shrink:     0;
  background:      var(--color-red);
  color:           var(--color-white);
  font-size:       13px;
  font-weight:     var(--fw-black);
  margin-top:      1px;
}

.dach-badge {
  display:     flex;
  align-items: center;
  gap:         var(--space-sm);
  background:  rgba(226, 0, 10, 0.06);
  border:      1px solid rgba(226, 0, 10, 0.18);
  padding:     var(--space-sm) var(--space-md);
  margin-top:  var(--space-sm);
}
.dach-badge-icon { font-size: 32px; }
.dach-badge-text strong {
  display:        block;
  font-size:      15px;
  font-weight:    var(--fw-bold);
  color:          var(--color-red);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.dach-badge-text span { font-size: var(--fs-sm); color: var(--color-text); }

/* ── Form Wrapper ───────────────────────── */
.register-form-wrap {
  background: var(--color-dark);
  padding:    var(--space-lg);
}

/* ── Elementor + Fluent Forms integration ───────────────────── */
#register.register-section.register-grid {
  width:                 100%;
  max-width:             var(--max-width);
  margin:                0 auto;
  padding:               var(--space-2xl) var(--space-sm);
  display:               grid !important;
  grid-template-columns: 1fr 1.3fr;
  gap:                   var(--space-xl);
  align-items:           stretch;
}

#register.register-grid > .elementor-widget {
  align-self: stretch;
  min-width:  0;
  width:      100%;
  height:     100%;
}

#register.register-grid > .elementor-widget > .elementor-widget-container {
  height: 100%;
}

#register .register-info {
  height: 100%;
}

#register .register-info .dach-badge {
  margin-top: auto;
}

#register .register-form-wrap {
  padding:    var(--space-lg);
  height:     100%;
  background: var(--color-dark);
  border-top: 3px solid var(--color-red);
  box-shadow: var(--shadow-md);
}

#register .register-form-wrap > .elementor-widget-container::before {
  content:        "Termin sichern";
  display:        block;
  margin-bottom:  var(--space-md);
  padding-bottom: var(--space-sm);
  color:          var(--color-white);
  border-bottom:  2px solid var(--color-red);
  font-size:      22px;
  font-weight:    var(--fw-black);
  line-height:    1.2;
  text-transform: uppercase;
}

#register #fluentform_3,
#register #fluentform_3 * {
  box-sizing: border-box;
}

#register #fluentform_3 .ff-t-container {
  display: flex;
  gap:     var(--space-sm);
}

#register #fluentform_3 .ff-column-container > .ff-t-cell {
  min-width: 0;
  flex:      1 1 0;
}

#register #fluentform_3 .ff-el-group {
  min-width:     0;
  margin-bottom: var(--space-sm);
}

#register #fluentform_3 .ff-el-input--label {
  margin-bottom: 6px;
}

#register #fluentform_3 .ff-el-input--label label {
  color:          rgba(255, 255, 255, 0.72);
  font-family:    inherit;
  font-size:      var(--fs-xs);
  font-weight:    var(--fw-bold);
  line-height:    1.3;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

#register #fluentform_3 .ff-el-is-required.asterisk-right label::after {
  color: var(--color-red);
}

#register #fluentform_3 .ff-el-form-control {
  width:         100%;
  min-width:     0;
  max-width:     100%;
  min-height:    44px;
  padding:       10px 14px;
  color:         var(--color-dark);
  background:    var(--color-white);
  border:        2px solid transparent;
  border-radius: var(--radius);
  outline:       none;
  font-family:   inherit;
  font-size:     16px;
  font-weight:   var(--fw-regular);
  line-height:   1.4;
  transition:    border-color var(--transition), box-shadow var(--transition);
}

#register #fluentform_3 textarea.ff-el-form-control {
  resize:     vertical;
}

#register #fluentform_3 .ff-el-form-control:focus {
  border-color: var(--color-teal);
  box-shadow:   0 0 0 3px rgba(0, 161, 176, 0.18);
}

#register #fluentform_3 .ff_list_buttons .ff-el-input--content,
#register #fluentform_3 .ff_list_2col .ff-el-input--content {
  display:               grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:                   var(--space-xs) var(--space-sm);
}

#register #fluentform_3 .ff_list_3col > .ff-el-input--content {
  display:               grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:                   var(--space-xs) var(--space-sm);
}

#register #fluentform_3 .ff_list_3col .ff-el-form-check,
#register #fluentform_3 .ff_list_3col .ff-el-form-check-label {
  width:     100% !important;
  min-width: 0;
}

#register #fluentform_3 .ff_list_3col .ff-el-form-check-label > span {
  min-width: 0;
  flex:      1 1 auto;
}

#register #fluentform_3 .ff-el-form-check {
  margin: 0;
}

#register #fluentform_3 .ff-el-form-check-label {
  display:       flex;
  align-items:   flex-start;
  gap:           9px;
  margin:        0;
  padding:       9px 10px;
  color:         rgba(255, 255, 255, 0.82);
  background:    rgba(255, 255, 255, 0.06);
  border-left:   2px solid rgba(255, 255, 255, 0.18);
  cursor:        pointer;
  font-family:   inherit;
  font-size:     15px;
  line-height:   1.4;
  transition:    background var(--transition), border-color var(--transition);
}

#register #fluentform_3 .ff-el-form-check-label:hover {
  background:        rgba(255, 255, 255, 0.1);
  border-left-color: var(--color-red);
}

#register #fluentform_3 .ff-el-form-check-input {
  width:        17px;
  height:       17px;
  margin:       1px 0 0;
  flex:         0 0 auto;
  accent-color: var(--color-red);
}

#register #fluentform_3 .ff_submit_btn_wrapper {
  margin: var(--space-md) 0 0;
}

#register #fluentform_3 .ff-btn-submit {
  display:        inline-flex;
  align-items:    center;
  justify-content:center;
  width:          100%;
  min-height:     50px;
  padding:        14px 32px;
  color:          var(--color-white) !important;
  background:     var(--color-red) !important;
  border:         2px solid var(--color-red) !important;
  border-radius:  var(--radius);
  box-shadow:     none;
  cursor:         pointer;
  font-family:    inherit;
  font-size:      var(--fs-body);
  font-weight:    var(--fw-bold);
  line-height:    1;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  transition:     background var(--transition), border-color var(--transition);
}

#register #fluentform_3 .ff-btn-submit:hover,
#register #fluentform_3 .ff-btn-submit:focus-visible {
  color:        var(--color-white) !important;
  background:   #b0000a !important;
  border-color: #b0000a !important;
}

#register #fluentform_3 > .apbct_special_field,
#register #fluentform_3 > .ct_no_cookie_hidden_field {
  display: none !important;
}

#register .dach-badge-icon img.emoji {
  width:  32px;
  height: 32px;
}

.register-form-title {
  font-size:      22px;
  font-weight:    var(--fw-black);
  text-transform: uppercase;
  color:          var(--color-white);
  margin-bottom:  var(--space-md);
  padding-bottom: var(--space-sm);
  border-bottom:  2px solid var(--color-red);
}

/* ── Form Elements ──────────────────────── */
.form-row {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   var(--space-sm);
}

.form-group {
  display:        flex;
  flex-direction: column;
  gap:            6px;
  margin-bottom:  var(--space-sm);
  min-width:      0;
}

.form-group label {
  font-size:      var(--fs-xs);
  font-weight:    var(--fw-bold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color:          rgba(255, 255, 255, 0.7);
}

.form-group input,
.form-group select,
.form-group textarea {
  font-family:  inherit;
  font-size:    16px;
  font-weight:  var(--fw-regular);
  background:   var(--color-white);
  color:        var(--color-dark);
  border:       2px solid transparent;
  padding:      10px 14px;
  outline:      none;
  transition:   border-color var(--transition);
  width:        100%;
  min-width:    0;
  max-width:    100%;
  border-radius: var(--radius);
  appearance:   none;
}
.form-group input:focus,
.form-group select:focus  { border-color: var(--color-teal); }
.form-group select        { cursor: pointer; }

.form-consent {
  display:     flex;
  align-items: flex-start;
  gap:         10px;
  margin:      var(--space-xs) 0 var(--space-sm);
}

.form-consent input[type="checkbox"] {
  width:       18px;
  height:      18px;
  margin:      2px 0 0;
  flex-shrink: 0;
  accent-color: var(--color-red);
  cursor:      pointer;
}

.form-consent label {
  font-size:   var(--fs-sm);
  font-weight: var(--fw-light);
  line-height: var(--lh-normal);
  color:       rgba(255, 255, 255, 0.72);
  cursor:      pointer;
}

.form-consent a {
  color:           var(--color-white);
  text-decoration: underline;
}

.form-consent a:hover,
.form-consent a:focus {
  color: var(--color-yellow);
}

.form-submit  { margin-top: var(--space-sm); }

.form-note {
  font-size:   13px;
  font-weight: var(--fw-light);
  color:       rgba(255, 255, 255, 0.35);
  margin-top:  var(--space-xs);
  text-align:  center;
}

/* ── Responsive ─────────────────────────── */
@media (max-width: 1024px) {
  .register-grid,
  #register.register-section.register-grid { grid-template-columns: 1fr; }
  #register #fluentform_3 .ff_list_3col > .ff-el-input--content {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  #register.register-section.register-grid {
    padding: var(--space-xl) var(--space-sm);
  }
  #register .register-form-wrap { padding: var(--space-md); }
  #register #fluentform_3 .ff-t-container { display: block; }
  #register #fluentform_3 .ff-t-cell {
    width:      100% !important;
    flex-basis: 100% !important;
  }
  #register #fluentform_3 .ff_list_buttons .ff-el-input--content,
  #register #fluentform_3 .ff_list_2col .ff-el-input--content,
  #register #fluentform_3 .ff_list_3col > .ff-el-input--content {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 480px)  { .form-row { grid-template-columns: 1fr; } }

/* ═══════════════════════════════════════════════════════════════
   pt-footer-roadshow.css
   ═══════════════════════════════════════════════════════════════ */


.site-footer {
  background:  var(--color-dark);
  border-top:  3px solid var(--color-red);
  padding-top: var(--space-xl);
}

/* ── 4-Column Grid ──────────────────────── */
.footer-grid {
  display:               grid;
  grid-template-columns: 1.2fr 1fr 1fr 1fr;
  gap:                   var(--space-xl);
  padding-bottom:        var(--space-lg);
}

/* ── Brand ──────────────────────────────── */
.footer-logo {
  filter:        brightness(0) invert(1);
  max-width:     140px;
  margin-bottom: var(--space-sm);
}
.footer-tagline {
  font-size:   15px;
  font-weight: var(--fw-light);
  color:       rgba(255, 255, 255, 0.45);
  line-height: var(--lh-loose);
}

/* ── Nav Columns ────────────────────────── */
.footer-col-title {
  font-size:      var(--fs-xs);
  font-weight:    var(--fw-black);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color:          var(--color-white);
  margin-bottom:  var(--space-sm);
  padding-bottom: 8px;
  border-bottom:  1px solid rgba(255, 255, 255, 0.1);
}

.footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 8px; }
.footer-col ul li a {
  font-size:   15px;
  font-weight: var(--fw-light);
  color:       rgba(255, 255, 255, 0.45);
  transition:  color var(--transition);
}
.footer-col ul li a:hover { color: var(--color-white); text-decoration: none; }

/* ── Bottom Bar ─────────────────────────── */
.footer-bottom {
  padding-top:    var(--space-md);
  padding-bottom: var(--space-lg);
  border-top:     1px solid rgba(255, 255, 255, 0.08);
  display:        flex;
  align-items:    center;
  justify-content:space-between;
  flex-wrap:      wrap;
  gap:            var(--space-sm);
}

.footer-copy { font-size: var(--fs-sm); color: rgba(255, 255, 255, 0.28); }

.footer-legal { display: flex; gap: var(--space-md); }
.footer-legal a {
  font-size: var(--fs-sm);
  color:     rgba(255, 255, 255, 0.28);
  transition: color var(--transition);
}
.footer-legal a:hover { color: var(--color-white); text-decoration: none; }

/* ── Responsive ─────────────────────────── */
@media (max-width: 1024px) { .footer-grid { grid-template-columns: 1fr 1fr; gap: var(--space-lg); } }
@media (max-width: 480px)  { .footer-grid { grid-template-columns: 1fr; } }/* End custom CSS */