/* Google Fonts – elegant & filigran */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=Lato:wght@300;400;700&display=swap');

:root {
  --hc-rose:        #c9748a;
  --hc-rose-dark:   #a85570;
  --hc-rose-deep:   #8b3a54;
  --hc-rose-light:  #f7e6ea;
  --hc-rose-pale:   #fdf3f5;
  --hc-blush:       #e8b4be;
  --hc-mauve:       #b07a8a;
  --hc-dark:        #3d1f2a;
  --hc-text:        #4a3040;
  --hc-muted:       #9e7a88;
  --hc-border:      #f0d5db;
  --hc-bg:          #fffbfc;
}

/* Base */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  background: var(--hc-bg);
  color: var(--hc-text);
  font-family: 'Lato', system-ui, sans-serif;
  font-weight: 300;
  line-height: 1.7;
}

/* No text decoration on ALL links */
a { text-decoration: none !important; color: var(--hc-rose); }
a:hover { color: var(--hc-rose-dark); }
a:hover { text-decoration: none !important; }

/* Headings – elegant serif */
h1, h2, h3, h4, h5, h6,
.hc-brand, .display-1, .display-2, .display-3, .display-4 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 400;
  letter-spacing: 0.02em;
}

/* --- Navbar --- */
.hc-navbar {
  background: #fff;
  border-bottom: 1px solid var(--hc-border);
  box-shadow: 0 2px 16px rgba(180,80,110,.06);
}
.hc-brand {
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--hc-dark) !important;
  letter-spacing: 0.01em;
}
.hc-brand-dot { color: var(--hc-rose); }
.navbar-nav .nav-link { color: var(--hc-text) !important; font-weight: 400; letter-spacing: 0.03em; }
.navbar-nav .nav-link:hover { color: var(--hc-rose) !important; }
.btn-outline-hc {
  border-color: var(--hc-rose);
  color: var(--hc-rose-dark);
  font-weight: 400;
  letter-spacing: 0.05em;
  font-size: .85rem;
}
.btn-outline-hc:hover { background: var(--hc-rose); color: #fff; border-color: var(--hc-rose); }

/* --- Buttons --- */
.btn-hc {
  background: var(--hc-rose);
  border-color: var(--hc-rose);
  color: #fff;
  font-weight: 400;
  letter-spacing: 0.06em;
  font-size: .9rem;
}
.btn-hc:hover { background: var(--hc-rose-dark); border-color: var(--hc-rose-dark); color: #fff; }
.btn-hc:focus { box-shadow: 0 0 0 .25rem rgba(201,116,138,.3); }

/* --- Hero --- */
.hc-hero {
  background: linear-gradient(145deg, #3d1f2a 0%, #6b2d45 40%, #8b3a54 100%);
  color: #fff;
  padding: 80px 0 70px;
  position: relative;
  overflow: hidden;
}
.hc-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 60% at 20% 50%, rgba(232,180,190,.12) 0%, transparent 70%),
    radial-gradient(ellipse 40% 40% at 80% 20%, rgba(255,220,230,.08) 0%, transparent 60%);
}
.hc-hero-content { position: relative; z-index: 1; }
.hc-hero h1 {
  font-size: clamp(2.2rem, 5vw, 3.8rem);
  font-weight: 300;
  letter-spacing: 0.03em;
  line-height: 1.2;
}
.hc-hero .hc-accent { color: var(--hc-blush); }
.hc-hero .lead { color: rgba(255,255,255,.75); font-weight: 400; }

/* --- Search box --- */

.hc-search-box {
  background: rgba(255,255,255,.97);
  border-radius: 20px;
  padding: 16px;
  box-shadow: 0 12px 48px rgba(80,20,40,.2);
}
.hc-search-box .form-control {
  border-color: var(--hc-border);
  color: var(--hc-text);
  font-weight: 400;
}
.hc-search-box .form-control:focus {
  border-color: var(--hc-rose);
  box-shadow: 0 0 0 .25rem rgba(201,116,138,.15);
}
.hc-search-box .input-group-text {
  background: transparent;
  border-color: var(--hc-border);
  color: var(--hc-muted);
}

/* --- Category pills --- */
.hc-category-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 16px;
  background: #fff;
  border: 1px solid var(--hc-border);
  border-radius: 50px;
  color: var(--hc-text);
  font-size: .85rem;
  font-weight: 300;
  letter-spacing: 0.03em;
  transition: all .2s;
  white-space: nowrap;
}
.hc-category-pill:hover, .hc-category-pill.active {
  border-color: var(--hc-rose);
  background: var(--hc-rose-light);
  color: var(--hc-rose-deep);
}

/* --- Coupon card --- */
.hc-coupon-card {
  background: #fff;
  border-radius: 18px;
  border: 1px solid var(--hc-border);
  overflow: hidden;
  transition: transform .25s, box-shadow .25s;
  height: 100%;
}
.hc-coupon-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 36px rgba(180,80,110,.15);
}
.hc-coupon-card .hc-card-header {
  background: linear-gradient(135deg, var(--hc-rose-pale), #fff);
  padding: 16px 18px;
  border-bottom: 1px solid var(--hc-border);
}
.hc-discount-badge {
  display: inline-block;
  background: var(--hc-rose);
  color: #fff;
  font-weight: 400;
  font-size: .85rem;
  padding: 3px 12px;
  border-radius: 20px;
  letter-spacing: 0.04em;
}
.hc-coupon-card .hc-benefit {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 500;
  font-size: 1.15rem;
  color: var(--hc-dark);
  line-height: 1.3;
}
.hc-coupon-card .hc-provider { font-size: .82rem; color: var(--hc-muted); }
.hc-coupon-card .hc-card-body { padding: 16px 18px; }

/* --- Stats --- */
.hc-stat-card {
  background: #fff;
  border-radius: 16px;
  padding: 24px;
  text-align: center;
  border: 1px solid var(--hc-border);
}
.hc-stat-number {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 2.8rem;
  font-weight: 300;
  color: var(--hc-rose-dark);
  line-height: 1;
}

/* --- Coupon detail --- */
.hc-coupon-detail { background: #fff; border-radius: 20px; border: 1px solid var(--hc-border); overflow: hidden; }
.hc-coupon-detail-header {
  background: linear-gradient(145deg, #3d1f2a, #6b2d45);
  padding: 36px;
  color: #fff;
}
.hc-coupon-detail-header .hc-discount-big {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 2.2rem;
  font-weight: 300;
  color: var(--hc-blush);
}
.hc-coupon-detail-header h1 {
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  font-weight: 400;
}

/* --- QR box --- */
.hc-qr-box {
  background: #fff;
  border: 1.5px solid var(--hc-rose);
  border-radius: 16px;
  padding: 24px;
  text-align: center;
}

/* --- Provider --- */
.hc-provider-hero {
  background: linear-gradient(145deg, #3d1f2a, #6b2d45);
  color: #fff;
  padding: 52px 0;
}
.hc-provider-logo-big {
  width: 84px; height: 84px;
  border-radius: 16px;
  object-fit: cover;
  border: 2px solid var(--hc-blush);
  background: var(--hc-rose-light);
}

/* --- Dashboard --- */
.hc-dashboard-body { background: #f9f2f4; }
.hc-dashboard-nav { background: var(--hc-dark); }
.hc-sidebar { background: #fff; border-right: 1px solid var(--hc-border); min-height: calc(100vh - 56px); }
.hc-sidebar .nav-link { color: var(--hc-text); border-radius: 10px; margin-bottom: 2px; padding: 10px 16px; font-weight: 400; }
.hc-sidebar .nav-link:hover, .hc-sidebar .nav-link.active { background: var(--hc-rose-light); color: var(--hc-rose-deep); font-weight: 400; }
.hc-sidebar .nav-link i { margin-right: 8px; }
.hc-kpi-card { background: #fff; border-radius: 14px; padding: 20px; border-left: 3px solid var(--hc-rose); box-shadow: 0 2px 10px rgba(180,80,110,.08); }
.hc-kpi-number { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 2.4rem; font-weight: 400; color: var(--hc-rose-dark); }

/* --- Redemption --- */
.hc-redeem-success { background: linear-gradient(135deg, #1a4e3c, #0d3026); color: #fff; border-radius: 20px; padding: 40px; text-align: center; }
.hc-redeem-invalid { background: #fff8e1; border: 1.5px solid #f9c74f; border-radius: 16px; padding: 24px; }
.hc-device-active { background: linear-gradient(135deg, var(--hc-dark), var(--hc-rose-deep)); color: #fff; padding: 16px 24px; border-radius: 12px; }

/* --- Wallet --- */
.hc-wallet-card { background: #fff; border-radius: 16px; overflow: hidden; border: 1px solid var(--hc-border); transition: all .2s; }
.hc-wallet-card:hover { box-shadow: 0 4px 20px rgba(180,80,110,.12); }
.hc-wallet-card-inner { padding: 20px; }
.hc-wallet-icon { font-size: 1.6rem; background: var(--hc-rose-light); width: 52px; height: 52px; border-radius: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.hc-status-valid   { color: #2d7a5a; }
.hc-status-redeemed{ color: var(--hc-muted); }
.hc-status-expired { color: #c0392b; }

/* --- Footer --- */
.hc-footer { background: var(--hc-dark); color: #c8a8b4; }
.hc-footer a { color: #c8a8b4 !important; }
.hc-footer a:hover { color: var(--hc-blush) !important; }

/* --- Map --- */
#hc-map { height: 400px; border-radius: 12px; }

/* --- Nationwide badge --- */
.hc-nationwide-badge { background: var(--hc-rose-light); color: var(--hc-rose-deep); font-size: .72rem; padding: 2px 9px; border-radius: 20px; font-weight: 400; letter-spacing: 0.03em; }

/* --- Mobile nav (dashboard) --- */
.hc-mobile-nav { background: #fff; border-bottom: 1px solid var(--hc-border); overflow-x: auto; }

/* --- Cards / general --- */
.card { border-color: var(--hc-border) !important; }
.form-control:focus { border-color: var(--hc-rose); box-shadow: 0 0 0 .25rem rgba(201,116,138,.15); }
.form-select:focus { border-color: var(--hc-rose); box-shadow: 0 0 0 .25rem rgba(201,116,138,.15); }

/* --- Alert overrides --- */
.alert-success { background: #f0faf5; border-color: #a8d5bc; color: #1e5c3a; }
.alert-danger   { background: #fdf2f4; border-color: #e8a0b0; color: #7a1f35; }
.alert-info     { background: #f3f0fb; border-color: #c5b8e8; color: #3d2880; }
.alert-warning  { background: #fffbf0; border-color: #f5d98a; color: #7a5a00; }

/* --- Tables --- */
.table > :not(caption) > * > * { color: var(--hc-text); }

/* --- Mobile --- */
@media (max-width: 768px) {
  .hc-hero { padding: 52px 0 44px; }
  
.hc-search-box { padding: 18px; }
}

/* --- Divider ornament --- */
.hc-divider { text-align: center; color: var(--hc-blush); font-size: 1.4rem; letter-spacing: 0.5em; margin: 12px 0; }

/* === Wallet Navbar Button === */
.btn-hc-wallet {
  display: inline-flex;
  align-items: center;
  background: linear-gradient(135deg, var(--hc-rose), var(--hc-rose-dark));
  color: #fff !important;
  border-radius: 50px;
  font-family: 'Lato', sans-serif;
  font-weight: 400;
  font-size: .9rem;
  letter-spacing: .03em;
  transition: transform .15s, box-shadow .15s;
  box-shadow: 0 2px 8px rgba(169,85,112,.3);
  text-decoration: none !important;
}
.btn-hc-wallet:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(169,85,112,.45);
  color: #fff !important;
}

/* === Kategorien-Übersichtsseite Karten === */
.hc-cat-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.5rem 1rem;
  background: #fff;
  border: 1px solid #f0dde3;
  border-radius: 12px;
  text-align: center;
  transition: transform .15s, box-shadow .15s, border-color .15s;
  color: var(--hc-dark);
  height: 100%;
  text-decoration: none !important;
}
.hc-cat-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(169,85,112,.15);
  border-color: var(--hc-rose);
  color: var(--hc-rose-dark);
}
.hc-cat-icon { font-size: 2.2rem; line-height: 1; margin-bottom: .5rem; }
.hc-cat-name { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 1.05rem; font-weight: 500; }
.hc-cat-count { font-size: .78rem; color: #999; margin-top: .2rem; }

/* === Kategorie-Übersicht: vollwertige Cards === */
.hc-cat-card-full {
  display: flex;
  flex-direction: column;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid #f0dde3;
  background: #fff;
  text-decoration: none !important;
  color: var(--hc-dark);
  height: 100%;
  transition: transform .18s, box-shadow .18s, border-color .18s;
  box-shadow: 0 2px 8px rgba(169,85,112,.06);
}
.hc-cat-card-full:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(169,85,112,.18);
  border-color: var(--hc-rose);
}
.hc-cat-card-top {
  background: linear-gradient(135deg, var(--hc-rose-pale), var(--hc-rose-light));
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.6rem 1rem;
}
.hc-cat-card-icon {
  font-size: 2.8rem;
  line-height: 1;
}
.hc-cat-card-body {
  padding: .9rem 1rem 1rem;
  display: flex;
  flex-direction: column;
  gap: .4rem;
}
.hc-cat-card-name {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--hc-dark);
}
.badge-hc-count {
  display: inline-block;
  font-size: .72rem;
  background: var(--hc-rose-light);
  color: var(--hc-rose-dark);
  border-radius: 20px;
  padding: .15rem .65rem;
}
.badge-hc-soon {
  display: inline-block;
  font-size: .72rem;
  background: #f5f5f5;
  color: #aaa;
  border-radius: 20px;
  padding: .15rem .65rem;
}

/* === So einfach geht's Steps === */
.hc-step-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--hc-rose-light);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  color: var(--hc-rose);
}
.hc-step-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 1.1rem;
  color: var(--hc-dark);
}

/* === Search Box: einheitliche Höhe & Icon-Breite === */
.hc-search-box .form-control,
.hc-search-box .form-control-lg,
.hc-search-box .input-group-text,
.hc-search-box #btn-use-location {
  height: 48px !important;
  font-size: 1rem !important;
  line-height: 1.5;
}
.hc-search-box .input-group-text {
  width: 44px;
  justify-content: center;
}
.hc-search-box .btn-hc {
  height: 48px !important;
  font-size: 1rem !important;
}

/* === Form Checkbox rose === */
.form-check-input {
  border-color: var(--hc-rose) !important;
  cursor: pointer;
}
.form-check-input:checked {
  background-color: var(--hc-rose) !important;
  border-color: var(--hc-rose) !important;
}
.form-check-input:focus {
  box-shadow: 0 0 0 .25rem rgba(201,116,138,.2) !important;
  border-color: var(--hc-rose) !important;
}
.form-check-label {
  cursor: pointer;
  color: var(--hc-text);
}
