/* Kordo – öffentliche Webseite (kordo.at und Mandanten-Websites)
   Farben und Rundungen über Variablen, damit das gewählte Design (themes.css) auch die Website prägt. */
:root { --k-site-page: #fff; --k-site-card: var(--k-surface, #fff); --k-site-alt: #f7f8fa; --k-site-ink: #1f2937; --k-site-text: #4b5563; --k-site-link: #374151;
  --k-site-nav-bg: rgba(255, 255, 255, .92); --k-site-footer-bg: #fafbfc; --k-site-radius: 1rem; --k-site-radius-sm: .75rem; --k-site-shadow: 0 10px 30px -15px rgba(31, 41, 55, .2); }
body.k-site { background: var(--k-site-page); color: var(--k-site-ink); }
.k-site-nav { background: var(--k-site-nav-bg); backdrop-filter: blur(8px); border-bottom: 1px solid var(--k-border); }
.k-site-nav .nav-link { color: var(--k-site-link); font-weight: 500; }
.k-site-nav .nav-link:hover { color: var(--k-primary); }

.k-hero { padding: clamp(3rem, 8vw, 6rem) 0 clamp(2.5rem, 6vw, 5rem); background: radial-gradient(1200px 500px at 85% -10%, var(--k-primary-soft), transparent 60%), var(--k-site-page); }
.k-eyebrow { display: inline-block; font-size: .8rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--k-primary); margin-bottom: 1rem; }
.k-hero-title { font-size: clamp(2.1rem, 5vw, 3.4rem); font-weight: 750; letter-spacing: -.03em; line-height: 1.08; margin-bottom: 1.25rem; }
.k-hero-lead { font-size: 1.15rem; color: var(--k-site-text); max-width: 34rem; margin-bottom: 1.75rem; }
.k-hero-points { list-style: none; padding: 0; margin: 1.75rem 0 0; display: grid; gap: .4rem; color: var(--k-site-text); }
.k-hero-points .bi { color: var(--k-primary); margin-right: .5rem; font-size: 1.1rem; }

.k-hero-mock { border: 1px solid var(--k-border); border-radius: 1rem; background: #fff; box-shadow: 0 30px 60px -20px rgba(31, 41, 55, .25); overflow: hidden; }
.k-mock-bar { display: flex; gap: .35rem; padding: .7rem .9rem; border-bottom: 1px solid var(--k-border); background: #fafbfc; }
.k-mock-bar span { width: 10px; height: 10px; border-radius: 50%; background: #e5e7eb; }
.k-mock-body { display: grid; grid-template-columns: 56px 1fr; min-height: 320px; }
.k-mock-side { border-right: 1px solid var(--k-border); padding: .9rem .6rem; display: grid; gap: .55rem; align-content: start; }
.k-mock-side i { height: 26px; border-radius: .4rem; background: #f1f3f5; }
.k-mock-side i.on { background: var(--k-primary); }
.k-mock-main { padding: 1rem; display: grid; gap: .9rem; grid-template-rows: auto 1fr; }
.k-mock-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; }
.k-mock-kpis b { border: 1px solid var(--k-border); border-radius: .6rem; padding: .55rem .7rem; font-size: 1.2rem; display: flex; flex-direction: column; }
.k-mock-kpis small { font-size: .7rem; color: var(--k-muted); font-weight: 500; }
.k-mock-cal { position: relative; border: 1px solid var(--k-border); border-radius: .6rem; min-height: 220px;
  background-image: repeating-linear-gradient(to bottom, transparent 0, transparent 35px, #f1f3f5 35px, #f1f3f5 36px); }
.k-mock-cal .ev { position: absolute; left: 8px; right: 8px; border-radius: .4rem; border-left: 3px solid var(--k-primary); background: color-mix(in srgb, var(--k-primary) 13%, #fff); font-size: .72rem; font-weight: 600; padding: .2rem .45rem; color: #1f2937; overflow: hidden; }
.k-mock-cal .ev.gap span { position: absolute; left: 0; right: 0; top: 40%; height: 45%; background: repeating-linear-gradient(135deg, rgba(255,255,255,.8) 0 5px, transparent 5px 10px); font-weight: 500; color: #6b7280; text-align: right; padding-right: .4rem; font-size: .62rem; }
.k-mock-cal .ev.in { right: 8px; z-index: 1; box-shadow: 0 2px 6px rgba(0,0,0,.12); }
.k-mock-cal .ev.block { border-left-color: #9ca3af; color: #6b7280; background: repeating-linear-gradient(135deg, #f3f4f6 0 6px, #e9eaee 6px 12px); }
.k-mock-cal .ev.on { border-left-color: var(--k-secondary); background: color-mix(in srgb, var(--k-secondary) 16%, #fff); }

.k-section { padding: clamp(3rem, 7vw, 5.5rem) 0; }
.k-section-alt { background: var(--k-site-alt); }
.k-section-title { font-size: clamp(1.7rem, 3.5vw, 2.3rem); font-weight: 720; letter-spacing: -.025em; margin-bottom: .6rem; }
.k-section-lead { color: var(--k-site-text); font-size: 1.08rem; max-width: 40rem; margin-bottom: 2.5rem; }
.k-feature { height: 100%; padding: 1.5rem; border: 1px solid var(--k-border); border-radius: var(--k-site-radius); background: var(--k-site-card); }
.k-feature-icon { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: .75rem; background: var(--k-primary-soft); color: var(--k-primary); font-size: 1.3rem; margin-bottom: 1rem; }
.k-feature h3, .k-audience h3, .k-step h3 { font-size: 1.1rem; font-weight: 650; margin-bottom: .4rem; }
.k-feature p, .k-audience p, .k-step p { color: var(--k-site-text); margin: 0; }
.k-audience { height: 100%; padding: 1.5rem; border-radius: var(--k-site-radius); background: var(--k-site-card); border: 1px solid var(--k-border); }
.k-audience > .bi { font-size: 1.6rem; color: var(--k-secondary); display: block; margin-bottom: .75rem; }
.k-step { position: relative; padding: 1.5rem 1.5rem 1.5rem 4.25rem; }
.k-step > span { position: absolute; left: 1.25rem; top: 1.4rem; width: 2.2rem; height: 2.2rem; border-radius: 50%; display: grid; place-items: center; font-weight: 700; background: var(--k-primary); color: var(--k-primary-contrast); }
.k-cta { margin-top: 3rem; padding: clamp(1.5rem, 4vw, 2.5rem); border-radius: 1.25rem; background: var(--k-primary); color: var(--k-primary-contrast); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1.25rem; }
.k-thanks-icon { font-size: 3.5rem; color: var(--k-primary); }
.k-legal h2 { margin-top: 1.5rem; }
.k-site-footer { border-top: 1px solid var(--k-border); padding: 2rem 0; background: var(--k-site-footer-bg); }
.k-site-footer a { color: var(--k-site-link); text-decoration: none; }
.k-site-footer a:hover { color: var(--k-primary); text-decoration: underline; }

.k-teaser { display: block; height: 100%; padding: 1.75rem; border: 1px solid var(--k-border); border-radius: var(--k-site-radius); background: var(--k-site-card); color: inherit; text-decoration: none; transition: border-color .15s, transform .15s; }
.k-teaser:hover { border-color: var(--k-primary); transform: translateY(-2px); }
.k-teaser > .bi { font-size: 1.6rem; color: var(--k-primary); }
.k-teaser h2 { font-size: 1.2rem; font-weight: 650; margin: .75rem 0 .4rem; }
.k-teaser p { color: var(--k-site-text); }
.k-teaser span { color: var(--k-primary); font-weight: 600; font-size: .95rem; }
.k-checklist { list-style: none; padding: 0; margin: 1rem 0 0; display: grid; gap: .35rem; }
.k-checklist li { padding-left: 1.5rem; position: relative; color: var(--k-site-link); }
.k-checklist li::before { content: "\F26E"; font-family: "bootstrap-icons"; position: absolute; left: 0; color: var(--k-primary); }
.k-site-card { background: var(--k-site-card); border: 1px solid var(--k-border); border-radius: var(--k-site-radius); padding: 1.5rem; box-shadow: var(--k-site-shadow); }
.k-hours { display: grid; grid-template-columns: auto 1fr; gap: .35rem 1.25rem; margin: 0; }
.k-hours dt { font-weight: 600; }
.k-hours dd { margin: 0; color: var(--k-site-text); font-variant-numeric: tabular-nums; }
.k-price-list { display: grid; gap: .5rem; }
.k-price-item { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border: 1px solid var(--k-border); border-radius: var(--k-site-radius-sm); background: var(--k-site-card); }
.k-price-item strong { font-variant-numeric: tabular-nums; white-space: nowrap; }
.k-booking-services { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .75rem; }
.k-booking-service { display: flex; flex-direction: column; gap: .2rem; padding: .9rem 1rem; border: 1px solid var(--k-border); border-radius: var(--k-site-radius-sm); background: var(--k-site-card); color: inherit; text-decoration: none; }
.k-booking-service:hover { border-color: var(--k-primary); }
.k-booking-service.is-active { border-color: var(--k-primary); box-shadow: 0 0 0 2px rgba(var(--bs-primary-rgb), .25); background: var(--k-primary-soft); }
.k-booking-days { display: grid; gap: 1rem; }
.k-booking-day { padding: 1rem; border: 1px solid var(--k-border); border-radius: var(--k-site-radius-sm); background: var(--k-site-card); }

/* Buchung: Wochenansicht */
.k-booking-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .5rem; }
.k-booking-weekday { border: 1px solid var(--k-border, #e3e6ea); border-radius: var(--k-site-radius-sm); padding: .6rem; background: var(--k-site-card); min-width: 0; }
.k-booking-weekday.is-empty { background: var(--k-site-alt); }
.k-booking-weekday .btn { padding: .15rem .25rem; font-size: .8rem; }
@media (max-width: 767.98px) { .k-booking-week { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Mobile Hero-Zeilen dürfen nicht breiter als ihr Container sein. */
@media (max-width: 767.98px) { .k-hero > .container > .row { --bs-gutter-x: 1.5rem; } }
