.hb-tool{--hb-navy:#0e2a47;--hb-accent:#1e88c7;--hb-free:#1c8a4d;--hb-bg:#f6f8fa;--hb-line:#e3e8ee;
  font-family:inherit;background:#fff;border:1px solid var(--hb-line);border-radius:16px;
  padding:24px;max-width:760px;margin:24px auto;box-shadow:0 6px 24px rgba(14,42,71,.06)}
.hb-tool__title{margin:0 0 4px;font-size:1.35rem;color:var(--hb-navy);font-weight:700}
.hb-tool__sub{margin:0 0 18px;color:#5b6b7b;font-size:.95rem}
.hb-form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.hb-form label{display:flex;flex-direction:column;font-size:.8rem;color:#5b6b7b;gap:4px;flex:1 1 90px}
.hb-form input,.hb-form select{padding:10px 12px;border:1px solid var(--hb-line);border-radius:10px;
  font-size:1rem;background:var(--hb-bg)}
.hb-form input:focus,.hb-form select:focus{outline:none;border-color:var(--hb-accent);background:#fff}
.hb-form button{flex:0 0 auto;padding:11px 22px;border:0;border-radius:10px;background:var(--hb-navy);
  color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s}
.hb-form button:hover{background:var(--hb-accent)}
.hb-result{margin-top:20px;border-top:1px solid var(--hb-line);padding-top:18px}
.hb-result__head{margin:0 0 14px;color:var(--hb-navy);font-size:1.1rem}
.hb-loading,.hb-empty{color:#7a8896;font-style:italic;margin:6px 0}
.hb-error{color:#c0392b}
.hb-fare{margin-bottom:18px}
.hb-fare__head{font-size:.95rem;color:#33475b;margin-bottom:10px}
.hb-fit-block{margin-bottom:16px}
.hb-fit-block__head{font-weight:700;color:#33475b;margin-bottom:8px}
.hb-fit-block__head--free{color:var(--hb-free)}
.hb-pills{display:flex;flex-wrap:wrap;gap:6px}
.hb-pill{background:var(--hb-bg);border:1px solid var(--hb-line);border-radius:999px;
  padding:5px 12px;font-size:.82rem;color:#33475b}
.hb-pill--free{background:#e8f6ee;border-color:#bfe6cd;color:var(--hb-free)}
.hb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.hb-card{display:flex;flex-direction:column;border:1px solid var(--hb-line);border-radius:12px;
  overflow:hidden;text-decoration:none;color:inherit;background:#fff;transition:box-shadow .15s,transform .15s}
.hb-card:hover{box-shadow:0 8px 20px rgba(14,42,71,.1);transform:translateY(-2px)}
.hb-card img{width:100%;aspect-ratio:1;object-fit:cover;background:var(--hb-bg)}
.hb-card__body{display:flex;flex-direction:column;gap:3px;padding:10px 12px}
.hb-card__title{font-size:.85rem;font-weight:600;color:var(--hb-navy);line-height:1.25}
.hb-card__meta{font-size:.75rem;color:#7a8896}
.hb-card__price{font-size:.9rem;font-weight:700;color:var(--hb-navy)}
.hb-badge{align-self:flex-start;font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.02em}
.hb-badge--free{background:#e8f6ee;color:var(--hb-free)}
.hb-badge--cabin{background:#e7f1f9;color:var(--hb-accent)}
@media(max-width:560px){.hb-tool{padding:18px;border-radius:12px}.hb-form label{flex-basis:42%}}

/* ---- tabs (3 tools in 1 widget) ---- */
.hb-tooltabs{max-width:760px;margin:24px auto}
.hb-tooltabs__nav{display:flex;gap:5px}
.hb-tooltabs__tab{flex:1;padding:.7rem .4rem;border:0;background:rgba(255,255,255,.14);color:#fff;
  border-radius:12px 12px 0 0;cursor:pointer;font-family:inherit;font-weight:500;font-size:.86rem;
  transition:background .15s}
.hb-tooltabs__tab:hover{background:rgba(255,255,255,.24)}
.hb-tooltabs__tab.is-active{background:#fff;color:var(--hb-navy)}
.hb-tooltabs__panel{display:none}
.hb-tooltabs__panel.is-active{display:block}
.hb-tooltabs .hb-tool{margin:0;border-radius:0 0 16px 16px;max-width:none}
@media(max-width:560px){.hb-tooltabs__tab{font-size:.76rem;padding:.6rem .3rem}}

/* ===== Vergelijkingstabel (airline overview) ===== */
.hb-airlines{--hb-navy:#0e2a47;--hb-accent:#1e88c7;--hb-free:#1c8a4d;--hb-line:#e3e8ee;--hb-muted:#5b6b7b;margin:0 auto}
.hb-airlines__scroll{overflow-x:auto;border:1px solid var(--hb-line);border-radius:16px}
.hb-airlines__table{width:100%;border-collapse:collapse;font-size:.95rem;min-width:560px}
.hb-airlines__table thead th{text-align:left;background:#f6f8fa;color:var(--hb-navy);font-weight:700;
  padding:14px 16px;border-bottom:1px solid var(--hb-line);font-size:.9rem;vertical-align:top}
.hb-airlines__table thead th span{display:block;font-weight:400;color:var(--hb-muted);font-size:.74rem;margin-top:2px}
.hb-airlines__table tbody td{padding:13px 16px;border-bottom:1px solid var(--hb-line);color:#33475b}
.hb-airlines__table tbody tr:last-child td{border-bottom:0}
.hb-airlines__table tbody tr:hover{background:#fafcfe}
.hb-airlines__name{color:var(--hb-navy);font-weight:600}
.hb-airlines__name a{color:inherit;text-decoration:none;display:flex;align-items:center;gap:9px}
.hb-airlines__name a:hover{color:var(--hb-accent);text-decoration:underline}
.hb-airlines__logo{width:17px;height:17px;border-radius:4px;object-fit:contain;flex:0 0 auto;opacity:.92}
.hb-airlines__kg{display:inline-block;margin-left:6px;font-size:.72rem;color:var(--hb-muted);
  background:#eef2f6;border-radius:999px;padding:1px 7px}
.hb-airlines__none{color:#9aa7b4;font-style:italic;font-size:.85rem}
.hb-airlines__cta{color:var(--hb-accent);font-weight:600;text-decoration:none;white-space:nowrap}
.hb-airlines__note{font-size:.84rem;color:var(--hb-muted);margin:14px 2px 0;line-height:1.55}
.hb-airlines__note a{color:var(--hb-accent);font-weight:600;text-decoration:none}

/* ===== FAQ accordeon ===== */
.hb-faq{--hb-navy:#0e2a47;--hb-accent:#1e88c7;--hb-line:#e3e8ee;max-width:780px;margin:0 auto}
.hb-faq__item{border:1px solid var(--hb-line);border-radius:14px;margin:0 0 12px;background:#fff;overflow:hidden}
.hb-faq__item[open]{box-shadow:0 8px 24px rgba(14,42,71,.07)}
.hb-faq__q{cursor:pointer;list-style:none;padding:18px 52px 18px 20px;font-weight:600;color:var(--hb-navy);
  font-size:1.04rem;position:relative}
.hb-faq__q::-webkit-details-marker{display:none}
.hb-faq__q::after{content:"";position:absolute;right:20px;top:50%;width:11px;height:11px;
  border-right:2px solid var(--hb-accent);border-bottom:2px solid var(--hb-accent);
  transform:translateY(-60%) rotate(45deg);transition:transform .2s}
.hb-faq__item[open] .hb-faq__q::after{transform:translateY(-30%) rotate(-135deg)}
.hb-faq__a{padding:0 20px 20px;color:#41525f;line-height:1.65}
.hb-faq__a p{margin:0}

/* ===== Paklijst-generator ===== */
.hb-packlist{--hb-navy:#0e2a47;--hb-accent:#1e88c7;--hb-free:#1c8a4d;--hb-line:#e3e8ee;--hb-muted:#5b6b7b;
  max-width:900px;margin:0 auto;background:#fff;border:1px solid var(--hb-line);border-radius:18px;padding:22px}
.hb-packlist__bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:10px}
.hb-packlist__count{font-weight:700;color:var(--hb-navy)}
.hb-packlist__actions{display:flex;gap:8px}
.hb-packlist__btn{border:0;border-radius:10px;padding:9px 16px;font-size:.86rem;font-weight:600;cursor:pointer;
  background:var(--hb-navy);color:#fff;transition:background .15s}
.hb-packlist__btn:hover{background:var(--hb-accent)}
.hb-packlist__btn--ghost{background:#eef2f6;color:var(--hb-navy)}
.hb-packlist__progress{height:8px;background:#eef2f6;border-radius:999px;overflow:hidden;margin-bottom:20px}
.hb-packlist__progress span{display:block;height:100%;width:0;background:var(--hb-free);transition:width .25s}
.hb-packlist__cols{columns:2;column-gap:32px}
@media(max-width:620px){.hb-packlist__cols{columns:1}}
.hb-packlist__group{break-inside:avoid;margin:0 0 18px}
.hb-packlist__group h3{font-size:.95rem;color:var(--hb-navy);margin:0 0 8px;padding-bottom:6px;border-bottom:1px solid var(--hb-line)}
.hb-packlist__item{display:flex;align-items:center;gap:10px;padding:6px 0;color:#41525f;cursor:pointer;font-size:.95rem}
.hb-packlist__item input{width:18px;height:18px;accent-color:var(--hb-free);cursor:pointer;flex:0 0 auto}
.hb-packlist__item input:checked + span{color:#9aa7b4;text-decoration:line-through}
@media print{.hb-packlist__actions,.hb-packlist__progress{display:none}}

/* ===== Nieuwsbrief ===== */
.hb-news{--hb-navy:#0e2a47;--hb-accent:#1e88c7;--hb-line:#e3e8ee;display:flex;flex-wrap:wrap;gap:18px 28px;
  align-items:center;justify-content:space-between;background:#0e2a47;color:#fff;border-radius:18px;padding:28px 30px;max-width:1000px;margin:0 auto}
.hb-news__title{margin:0 0 4px;font-size:1.4rem;color:#fff}
.hb-news__text{margin:0;color:#c2d4e6;font-size:.95rem;max-width:42ch;line-height:1.55}
.hb-news__form{display:flex;gap:8px;flex:1 1 280px;max-width:420px}
.hb-news__form input{flex:1;padding:13px 15px;border:0;border-radius:11px;font-size:1rem}
.hb-news__form button{border:0;border-radius:11px;padding:13px 22px;background:var(--hb-accent);color:#fff;
  font-weight:600;cursor:pointer;transition:background .15s,transform .12s}
.hb-news__form button:hover{background:#1576ad;transform:translateY(-1px)}
.hb-news__form button:disabled{opacity:.7;cursor:default}
.hb-news__msg{flex-basis:100%;margin:4px 0 0;font-size:.9rem}
.hb-news__msg.is-ok{color:#8fe0ad}
.hb-news__msg.is-err{color:#ffb3a8}

/* ===== Airline landing ===== */
.hb-landing{--hb-navy:#0e2a47;--hb-accent:#1e88c7;--hb-free:#1c8a4d;--hb-line:#e3e8ee;--hb-muted:#5b6b7b;max-width:1040px;margin:0 auto}
.hb-landing__h{font-size:1.5rem;color:var(--hb-navy);margin:0 0 16px;font-weight:700}
.hb-landing__rules{margin:0 0 38px}
.hb-landing__fares{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.hb-landing__fare{border:1px solid var(--hb-line);border-radius:14px;padding:18px 20px;background:#fff}
.hb-landing__fare h3{margin:0 0 10px;font-size:1.05rem;color:var(--hb-navy)}
.hb-landing__fare ul{list-style:none;margin:0;padding:0}
.hb-landing__fare li{padding:6px 0;color:#41525f;font-size:.95rem;border-top:1px solid #f0f3f6}
.hb-landing__fare li:first-child{border-top:0}
.hb-landing__tag{display:inline-block;font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:999px;margin-right:6px;vertical-align:1px}
.hb-landing__tag.is-free{background:rgba(28,138,77,.12);color:var(--hb-free)}
.hb-landing__tag.is-cabin{background:rgba(30,136,199,.12);color:var(--hb-accent)}
.hb-landing__none{color:#9aa7b4;font-style:italic;font-size:.9rem}
.hb-landing__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-top:6px}
.hb-landing__card{display:flex;flex-direction:column;border:1px solid var(--hb-line);border-radius:14px;overflow:hidden;
  text-decoration:none;color:inherit;background:#fff;transition:box-shadow .16s,transform .16s}
.hb-landing__card:hover{box-shadow:0 14px 32px rgba(14,42,71,.12);transform:translateY(-3px)}
.hb-landing__card img{width:100%;aspect-ratio:1/1;object-fit:cover;background:#f6f8fa;display:block}
.hb-landing__cardbody{padding:12px 14px 16px;display:flex;flex-direction:column;gap:3px}
.hb-landing__badge{align-self:flex-start;font-size:.66rem;font-weight:700;padding:2px 8px;border-radius:999px;margin-bottom:4px}
.hb-landing__badge.is-free{background:rgba(28,138,77,.12);color:var(--hb-free)}
.hb-landing__badge.is-cabin{background:rgba(30,136,199,.12);color:var(--hb-accent)}
.hb-landing__title{font-weight:600;color:var(--hb-navy);font-size:.95rem;line-height:1.25}
.hb-landing__dims{color:var(--hb-muted);font-size:.8rem}
.hb-landing__price{color:var(--hb-navy);font-weight:700;margin-top:2px}
.hb-landing__cta{margin:18px 2px 0;font-size:.92rem}
.hb-landing__cta a{color:var(--hb-accent);font-weight:600;text-decoration:none}

/* ===== Koffer-kiezer (wizard) ===== */
.hb-wizard{--hb-navy:#0e2a47;--hb-accent:#1e88c7;--hb-free:#1c8a4d;--hb-line:#e3e8ee;--hb-muted:#5b6b7b;
  max-width:760px;margin:0 auto;background:#fff;border:1px solid var(--hb-line);border-radius:18px;
  padding:26px;box-shadow:0 10px 30px rgba(14,42,71,.07)}
.hb-wizard__bar{height:6px;background:#eef2f6;border-radius:999px;overflow:hidden;margin-bottom:22px}
.hb-wizard__bar span{display:block;height:100%;background:var(--hb-accent);transition:width .3s}
.hb-wizard__step{display:none}
.hb-wizard__step.is-active{display:block;animation:hbwz .25s ease}
@keyframes hbwz{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.hb-wizard__q{margin:0 0 16px;font-size:1.25rem;color:var(--hb-navy);font-weight:700}
.hb-wizard__select{width:100%;padding:13px 15px;border:1px solid var(--hb-line);border-radius:11px;font-size:1rem;background:#f6f8fa;margin-bottom:16px}
.hb-wizard__btn{border:0;border-radius:11px;background:var(--hb-accent);color:#fff;font-weight:600;font-size:1rem;padding:12px 24px;cursor:pointer;transition:background .15s,transform .12s}
.hb-wizard__btn:hover{background:#1576ad;transform:translateY(-1px)}
.hb-wizard__opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.hb-wizard__opts button{display:flex;flex-direction:column;gap:3px;text-align:left;border:2px solid var(--hb-line);
  border-radius:14px;background:#fff;padding:16px 18px;cursor:pointer;transition:border-color .15s,transform .12s,box-shadow .15s}
.hb-wizard__opts button:hover{border-color:var(--hb-accent);transform:translateY(-2px);box-shadow:0 10px 22px rgba(14,42,71,.08)}
.hb-wizard__opts strong{color:var(--hb-navy);font-size:1.05rem}
.hb-wizard__opts span{color:var(--hb-muted);font-size:.85rem}
.hb-wizard__back{margin-top:16px;border:0;background:none;color:var(--hb-muted);cursor:pointer;font-size:.9rem;padding:4px}
.hb-wizard__back:hover{color:var(--hb-navy)}
.hb-wizard__rh{margin:0 0 16px;font-size:1.3rem;color:var(--hb-navy)}
.hb-wizard__cards{display:grid;gap:14px}
.hb-wizard__card{display:flex;gap:16px;align-items:center;border:1px solid var(--hb-line);border-radius:14px;
  padding:14px;text-decoration:none;color:inherit;background:#fff;position:relative;transition:box-shadow .16s,transform .16s}
.hb-wizard__card:hover{box-shadow:0 14px 30px rgba(14,42,71,.12);transform:translateY(-2px)}
.hb-wizard__card.is-top{border-color:rgba(28,138,77,.4);background:#fbfdfb}
.hb-wizard__card img{width:90px;height:90px;object-fit:contain;background:#fff;border-radius:10px;flex:0 0 auto}
.hb-wizard__badge{position:absolute;top:-9px;left:14px;background:var(--hb-free);color:#fff;font-size:.68rem;font-weight:700;padding:2px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}
.hb-wizard__cb{display:flex;flex-direction:column;gap:2px}
.hb-wizard__ct{font-weight:600;color:var(--hb-navy);line-height:1.25}
.hb-wizard__reason{color:var(--hb-free);font-size:.85rem;font-weight:600}
.hb-wizard__dims{color:var(--hb-muted);font-size:.82rem}
.hb-wizard__price{color:var(--hb-navy);font-weight:700;margin-top:2px}
