:root {
  --hb-ink: #172019;
  --hb-forest: #183f31;
  --hb-moss: #627260;
  --hb-paper: #f4f0e7;
  --hb-paper-light: #fbf9f3;
  --hb-line: #d9d1c2;
  --hb-sun: #e6a545;
}

.hb-academy-context .main-navigation { display: none; }
.hb-academy-context .site-header,
.hb-academy-context .site-footer { display:none; }
.hb-academy-context .widget-area { display: none; }
.hb-academy-context .site-content { display: block; }
.hb-academy-context .content-area { width: 100%; }
.hb-academy-context .generate-back-to-top { display:none !important; }
.hb-akademie-page .site.grid-container,
.hb-akademie-page .site-content.grid-container { max-width: none; }
.hb-akademie-page .site-content { display: block; padding: 0; }
.hb-akademie-page .content-area,
.hb-akademie-page .site-main { width: 100%; margin: 0; }
.hb-akademie-page .site-main > article,
.hb-akademie-page .inside-article { margin: 0; padding: 0; }
.hb-akademie-page .entry-header { display: none; }
.hb-akademie-page .entry-content { margin: 0; }
.hb-academy-context .hb-directory ~ * { display: none; }
.hb-academy-context:has(.hb-directory) .entry-header { display:none; }
.hb-academy-context:has(.hb-directory) .inside-article { padding:0; }
.hb-academy-context:has(.hb-directory) .site.grid-container,
.hb-academy-context:has(.hb-directory) .site-content.grid-container { max-width:none; }
.hb-article-page .entry-header { display:none; }
.hb-article-page .site.grid-container,
.hb-article-page .site-content.grid-container { max-width:none; }
.hb-article-page .inside-article { padding:0; }
.hb-legal-page .site.grid-container,
.hb-legal-page .site-content.grid-container { max-width:none; }
.hb-legal-page .site-content { padding:70px clamp(24px,6vw,90px); }
.hb-legal-page .inside-article { width:100%; max-width:1090px; margin:0 auto; padding:0; }

.hb-academy { color: var(--hb-ink); background: var(--hb-paper-light); font-size: 18px; line-height: 1.65; }
.hb-academy *, .hb-academy *::before, .hb-academy *::after { box-sizing: border-box; }
.hb-academy h1, .hb-academy h2, .hb-academy h3 { color: var(--hb-ink); font-family: Georgia, 'Times New Roman', serif; line-height: 1.05; letter-spacing: -.025em; }
.hb-academy a { text-decoration: none; }
.hb-eyebrow { display: block; margin-bottom: 14px; color: var(--hb-moss); font-size: 13px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.hb-site-header { position:relative; z-index:5; min-height:82px; padding:18px clamp(24px,6vw,90px); background:#fff; border-bottom:1px solid var(--hb-line); }
.hb-site-header-inner { display:flex; justify-content:space-between; align-items:center; gap:28px; width:100%; max-width:1090px; margin:0 auto; }
.hb-brand { display:inline-flex; flex-direction:column; color:var(--hb-ink); font:800 14px/1 Arial,sans-serif; letter-spacing:.14em; }
.hb-brand span { color:var(--hb-moss); }
.hb-brand--header { flex-direction:row; align-items:center; gap:12px; }
.hb-brand--header > img { width:48px; height:48px; flex:0 0 48px; border:1px solid var(--hb-line); border-radius:50%; object-fit:cover; }
.hb-brand-copy { display:inline-flex; flex-direction:column; }
.hb-site-header nav { display:flex; gap:28px; align-items:center; }
.hb-site-header nav a { padding:10px 12px 7px; border-bottom:3px solid transparent; color:var(--hb-ink); font-weight:800; text-decoration:none; transition:background .18s,color .18s,border-color .18s; }
.hb-site-header nav a:hover,.hb-site-header nav a:focus-visible { border-bottom-color:var(--hb-sun); background:var(--hb-paper); color:var(--hb-forest); }
.hb-site-header nav a:focus-visible { outline:2px solid var(--hb-sun); outline-offset:3px; }
.hb-site-header nav a:last-child { padding:10px 14px 7px; border:1px solid var(--hb-line); border-bottom:4px solid var(--hb-sun); }
.hb-site-header nav a:last-child:hover,.hb-site-header nav a:last-child:focus-visible { border-color:var(--hb-forest); border-bottom-color:var(--hb-sun); background:var(--hb-forest); color:#fff; }
.hb-search-utility { padding:18px clamp(24px,6vw,90px) 24px; background:#fff; }
.hb-search-utility-inner { display:flex; justify-content:flex-end; width:100%; max-width:1090px; margin:0 auto; }
.hb-search-utility form { width:min(100%,480px); }
.hb-search-utility label { display:block; margin-bottom:6px; color:var(--hb-moss); font-size:13px; font-weight:800; }
.hb-search-utility form > div { display:grid; grid-template-columns:minmax(0,1fr) auto; }
.hb-search-utility input { width:100%; min-height:48px; padding:11px 14px; border:1px solid var(--hb-line); border-right:0; border-radius:3px 0 0 3px; background:var(--hb-paper-light); color:var(--hb-ink); font:inherit; }
.hb-search-utility button { min-height:48px; padding:11px 16px 8px; border:0; border-bottom:4px solid var(--hb-sun); border-radius:0 3px 3px 0; background:var(--hb-forest); color:#fff; font-weight:800; cursor:pointer; }
.hb-search-utility input:focus-visible,.hb-search-utility button:focus-visible { position:relative; z-index:1; outline:3px solid rgba(230,165,69,.7); outline-offset:2px; }
.hb-search-utility button:hover { background:#0e3025; }
.hb-site-footer { padding:42px clamp(24px,6vw,90px); background:var(--hb-ink); color:#fff; }
.hb-site-footer-inner { display:grid; grid-template-columns:180px 1fr auto; gap:30px; align-items:center; width:100%; max-width:1090px; margin:0 auto; }
.hb-site-footer .hb-brand,.hb-site-footer a { color:#fff; text-decoration:none; }
.hb-site-footer p { margin:0; color:#d8ddd8; font-size:15px; }
.hb-site-footer nav { display:flex; gap:20px; font-size:14px; }
.hb-site-footer a:hover,.hb-site-footer a:focus-visible { color:#f0c675; }
.hb-site-footer .hb-brand:hover strong,.hb-site-footer .hb-brand:hover span,
.hb-site-footer .hb-brand:focus-visible strong,.hb-site-footer .hb-brand:focus-visible span { color:#f0c675; }
.hb-site-footer a:focus-visible { outline:2px solid #f0c675; outline-offset:4px; }
.hb-back-to-top { position:fixed; z-index:50; right:clamp(18px,3vw,42px); bottom:clamp(18px,3vw,42px); display:grid; place-items:center; width:54px; height:54px; padding:0; border:0; border-radius:50%; background:var(--hb-forest); color:#fff; box-shadow:0 10px 28px rgba(0,0,0,.24); font:700 25px/1 Arial,sans-serif; cursor:pointer; opacity:0; visibility:hidden; transform:translateY(12px); transition:opacity .2s,visibility .2s,transform .2s,background .2s; }
.hb-back-to-top.is-visible { opacity:1; visibility:visible; transform:translateY(0); }
.hb-back-to-top:hover,.hb-back-to-top:focus-visible { background:#0e3025; outline:3px solid rgba(230,165,69,.65); outline-offset:3px; }

.hb-hero { display:grid; width:100%; max-width:1090px; margin:0 auto; background:var(--hb-paper); overflow:hidden; }
.hb-hero__copy { padding:clamp(54px,6vw,78px) clamp(28px,7vw,74px) clamp(46px,5vw,64px); }
.hb-hero h1 { margin:0 0 28px; font-size:clamp(46px,5vw,64px); }
.hb-hero h1 span { display:block; }
.hb-hero p { max-width: 680px; margin: 0 0 34px; font-size: 20px; }
.hb-button { display:inline-flex; gap:18px; align-items:center; padding:15px 20px 12px; border:0; border-bottom:4px solid var(--hb-sun); border-radius:3px; background:var(--hb-forest); color:#fff !important; font-weight:800; transition:background .18s,color .18s,transform .18s; }
.hb-button:hover,.hb-button:focus-visible { background:#0e3025; color:#fff !important; outline:3px solid rgba(230,165,69,.65); outline-offset:3px; transform:translateY(-1px); }
.hb-button:hover *,.hb-button:focus-visible * { color:#fff !important; }
.hb-hero__visual { position:relative; min-height:0; background:var(--hb-forest); overflow:hidden; }
.hb-hero__visual img { display:block; width:100%; height:auto; aspect-ratio:2.5/1; object-fit:cover; object-position:center; }
.hb-map-lines { position: absolute; inset: 0; opacity: .34; background: radial-gradient(circle at 74% 28%, transparent 0 80px, #d8d1a9 82px 84px, transparent 86px), repeating-radial-gradient(ellipse at 45% 80%, transparent 0 42px, rgba(255,255,255,.35) 44px 46px, transparent 48px 76px); transform: rotate(-8deg) scale(1.2); }
.hb-notebook { position: absolute; width: min(360px, 72%); min-height: 250px; top: 50%; left: 50%; padding: 45px 42px; transform: translate(-50%,-50%) rotate(-3deg); background: #eee8d9; box-shadow: 0 28px 60px rgba(0,0,0,.28); }
.hb-notebook::before { content: ''; position: absolute; top: 0; bottom: 0; left: 26px; border-left: 2px solid rgba(200,75,45,.28); }
.hb-notebook small, .hb-notebook strong, .hb-notebook span { display:block; }
.hb-notebook strong { margin: 6px 0 30px; font: 800 34px/1 Georgia,serif; }
.hb-notebook span { font-size: 16px; }

.hb-section { padding: clamp(70px, 8vw, 120px) clamp(24px, 7vw, 110px); }
.hb-section__heading { display: grid; grid-template-columns: 1fr minmax(280px,520px); gap: 50px; align-items: end; max-width: 1090px; margin: 0 auto 48px; }
.hb-section__heading h2 { margin: 0; font-size: clamp(40px, 4.5vw, 68px); }
.hb-section__heading p { margin: 0; }
.hb-area-list { max-width: 1090px; margin: 0 auto; border-top: 1px solid var(--hb-line); }
.hb-area-row { display: grid; grid-template-columns: 76px minmax(250px,1fr) 130px 180px; gap: 28px; align-items: center; padding: 30px 12px; color: var(--hb-ink) !important; border-bottom: 1px solid var(--hb-line); transition: background .18s, padding .18s; }
.hb-area-row:hover, .hb-area-row:focus-visible { padding-left: 24px; padding-right: 24px; background: #fff; }
.hb-area-icon { display:grid; place-items:center; width:60px; height:60px; background:#e5e7da; border-radius:50%; }
.hb-area-icon svg { width:34px; height:34px; fill:none; stroke:var(--hb-forest); stroke-width:2; }
.hb-area-copy strong, .hb-area-copy small { display:block; }
.hb-area-copy strong { margin-bottom: 6px; font: 700 27px/1.15 Georgia,serif; }
.hb-area-copy small { font-size: 16px; color:#4f5b52; }
.hb-area-count { font-size: 14px; color: var(--hb-moss); }
.hb-area-row b { font-size: 15px; text-align:right; }

.hb-recent { background: #e9e5db; }
.hb-post-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:stretch; max-width:1090px; margin:0 auto; }
.hb-post-card { display:flex; flex-direction:column; min-height:100%; padding:32px; background:#fff; border-top:4px solid var(--hb-sun); }
.hb-post-card > span { color:var(--hb-moss); font-size:14px; }
.hb-post-card h3 { margin:14px 0; font-size:28px; }
.hb-post-card h3 a { color:var(--hb-ink); }
.hb-post-card > a { color:var(--hb-forest); font-weight:800; }
.hb-post-card > a:last-child { align-self:flex-start; margin-top:auto; padding-top:22px; }

.hb-travel-tools { padding-top:0; }
.hb-travel-tool-card { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:40px; align-items:center; max-width:1090px; margin:0 auto; padding:42px; border-left:6px solid var(--hb-sun); background:var(--hb-paper); }
.hb-travel-tool-card h2 { margin:0 0 16px; font-size:clamp(34px,4vw,50px); }
.hb-travel-tool-card p { max-width:720px; margin:0; }

.hb-ferry-tool { position:relative; left:50%; width:min(1090px,calc(100vw - 48px)); max-width:none; margin-left:0; margin-right:0; padding-left:0; padding-right:0; transform:translateX(-50%); }
.hb-ferry-detail { position:relative; left:50%; width:min(1090px,calc(100vw - 48px)); max-width:none; margin-left:0; margin-right:0; transform:translateX(-50%); }
.hb-ferry-origins { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin-bottom:22px; }
.hb-ferry-origins button,.hb-ferry-routes button { min-height:52px; padding:12px 16px 9px; border:1px solid var(--hb-line); border-bottom:4px solid var(--hb-sun); border-radius:3px; background:#fff; color:var(--hb-ink); font:inherit; font-weight:800; cursor:pointer; transition:background .18s,color .18s,border-color .18s; }
.hb-ferry-origins button:hover,.hb-ferry-origins button:focus-visible,.hb-ferry-origins button.is-active,
.hb-ferry-routes button:hover,.hb-ferry-routes button:focus-visible,.hb-ferry-routes button.is-active { border-color:var(--hb-forest); border-bottom-color:var(--hb-sun); background:var(--hb-forest); color:#fff; outline:none; }
.hb-ferry-map-layout { display:grid; grid-template-columns:1fr; gap:24px; align-items:start; }
.hb-ferry-map-stage { position:relative; min-width:0; overflow:hidden; border:1px solid var(--hb-line); border-radius:5px; background:#eaf3f5; }
.hb-ferry-map-stage svg { display:block; width:100%; height:auto; aspect-ratio:790/648; }
.hb-ferry-map-stage > p { position:absolute; top:14px; left:14px; margin:0; padding:7px 10px; border-radius:3px; background:rgba(255,255,255,.9); font-size:14px; }
.hb-ferry-base-map { opacity:.88; }
.hb-ferry-map-credit { display:block; padding:8px 12px; color:var(--hb-moss); background:#fff; font-size:11px; line-height:1.4; }
.hb-ferry-map-credit a { color:inherit; text-decoration:underline; }
.hb-ferry-route { fill:none; stroke:#416f76; stroke-width:3.5; stroke-linecap:round; stroke-linejoin:round; opacity:0; pointer-events:none; transition:opacity .18s,stroke-width .18s,stroke .18s; }
.hb-ferry-route.is-visible { opacity:.6; pointer-events:stroke; cursor:pointer; }
.hb-ferry-route.is-active { opacity:1; stroke:var(--hb-forest); stroke-width:7; }
.hb-ferry-port { opacity:.25; transition:opacity .18s; }
.hb-ferry-port.is-visible { opacity:1; }
.hb-ferry-port circle { fill:#fff; stroke:#6f7c77; stroke-width:2; }
.hb-ferry-port.is-origin circle,.hb-ferry-port.is-active circle { fill:var(--hb-sun); stroke:var(--hb-forest); }
.hb-ferry-port text { fill:var(--hb-ink); paint-order:stroke; stroke:#fff; stroke-width:4px; font:700 13px Arial,sans-serif; }
.hb-ferry-selection { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.7fr); gap:16px 36px; padding:30px; border-top:4px solid var(--hb-sun); background:var(--hb-paper); }
.hb-ferry-selection,.hb-ferry-routes { scroll-margin-top:110px; }
.hb-ferry-selection .hb-eyebrow,.hb-ferry-selection h2,.hb-ferry-selection p,.hb-ferry-selection dl { margin:0; }
.hb-ferry-selection .hb-eyebrow,.hb-ferry-selection h2,.hb-ferry-selection > p { grid-column:1; }
.hb-ferry-selection dl { grid-column:2; grid-row:1 / span 4; }
.hb-ferry-selection h2 { font-size:34px; }
.hb-ferry-selection dl { display:grid; gap:12px; }
.hb-ferry-selection dl[hidden] { display:none; }
.hb-ferry-selection dl div { display:grid; grid-template-columns:100px 1fr; gap:12px; }
.hb-ferry-selection dt { color:var(--hb-moss); }
.hb-ferry-selection dd { margin:0; font-weight:700; }
.hb-ferry-selection .hb-button { grid-column:1; justify-self:start; }
.hb-ferry-selection .hb-button[hidden] { display:none; }
.hb-ferry-destinations { display:flex; flex-wrap:wrap; gap:10px; }
.hb-ferry-destinations > span { display:inline-flex; align-items:center; gap:8px; padding:7px 11px; border:1px solid var(--hb-line); border-radius:3px; background:#fff; font-weight:700; }
.hb-ferry-routes button > span { display:inline-flex; align-items:center; gap:9px; }
.hb-ferry-routes button > span > b { font-weight:400; }
.hb-country-flag { position:relative; display:inline-block; width:24px; height:16px; flex:0 0 24px; overflow:hidden; border:1px solid rgba(23,32,25,.22); border-radius:2px; background:#fff; }
.hb-country-flag--de { background:linear-gradient(to bottom,#171717 0 33.333%,#d71920 33.333% 66.666%,#f3c742 66.666% 100%); }
.hb-country-flag--se { background:#1768a6; }
.hb-country-flag--se::before { content:""; position:absolute; top:6px; left:0; width:100%; height:3px; background:#f3cf3f; }
.hb-country-flag--se::after { content:""; position:absolute; top:0; bottom:0; left:7px; width:3px; background:#f3cf3f; }
.hb-country-flag--dk { background:#c8102e; }
.hb-country-flag--dk::before { content:""; position:absolute; top:6px; left:0; width:100%; height:3px; background:#fff; }
.hb-country-flag--dk::after { content:""; position:absolute; top:0; bottom:0; left:7px; width:3px; background:#fff; }
.hb-country-flag--fi::before { content:""; position:absolute; top:6px; left:0; width:100%; height:3px; background:#003580; }
.hb-country-flag--fi::after { content:""; position:absolute; top:0; bottom:0; left:7px; width:3px; background:#003580; }
.hb-country-flag--no { background:#ba0c2f; }
.hb-country-flag--no::before { content:""; position:absolute; top:5px; left:0; width:100%; height:5px; border-top:1px solid #fff; border-bottom:1px solid #fff; background:#00205b; }
.hb-country-flag--no::after { content:""; position:absolute; top:0; bottom:0; left:6px; width:5px; border-left:1px solid #fff; border-right:1px solid #fff; background:#00205b; }
.hb-country-flag--lv { background:linear-gradient(to bottom,#9e3039 0 40%,#fff 40% 60%,#9e3039 60% 100%); }
.hb-country-flag--lt { background:linear-gradient(to bottom,#fdb913 0 33.333%,#006a44 33.333% 66.666%,#c1272d 66.666% 100%); }
.hb-ferry-routes { margin-top:38px; }
.hb-ferry-routes h2 { margin:0 0 20px; font-size:38px; }
.hb-ferry-routes > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.hb-ferry-routes button { display:flex; justify-content:space-between; gap:18px; text-align:left; }
.hb-ferry-routes button[hidden] { display:none; }
.hb-ferry-routes small { color:inherit; font-weight:400; }
.hb-ferry-disclaimer,.hb-ferry-checked { margin:28px 0 0; color:var(--hb-moss); font-size:14px; }

.hb-ferry-detail { display:grid; gap:34px; }
.hb-ferry-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.hb-ferry-facts div { display:grid; gap:6px; padding:26px; border-top:4px solid var(--hb-sun); background:var(--hb-paper); }
.hb-ferry-facts span { color:var(--hb-moss); font-size:14px; }
.hb-ferry-facts strong { font:700 25px/1.25 Georgia,serif; }
.hb-ferry-journey { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,.75fr) minmax(0,1fr); gap:22px; align-items:center; padding:36px 0; border-top:1px solid var(--hb-line); border-bottom:1px solid var(--hb-line); }
.hb-ferry-journey article { display:grid; grid-template-columns:auto 1fr; gap:13px; }
.hb-ferry-journey article > span { width:17px; height:17px; margin-top:8px; border-radius:50%; background:var(--hb-forest); }
.hb-ferry-journey h2 { margin:0 0 12px; font-size:31px; }
.hb-ferry-journey p,.hb-ferry-sea p { margin:0; }
.hb-ferry-sea { text-align:center; color:var(--hb-moss); }
.hb-ferry-sea b { display:block; color:var(--hb-sun); font-size:36px; }
.hb-ferry-practice,.hb-ferry-practical { padding:38px; border:1px solid var(--hb-line); border-left:6px solid var(--hb-sun); background:#fff; }
.hb-ferry-practice h2,.hb-ferry-practical h2 { margin:0 0 18px; font-size:38px; }
.hb-ferry-practice p,.hb-ferry-practical p { max-width:820px; }
.hb-ferry-practice p:last-child,.hb-ferry-practical p:last-child { margin-bottom:0; }
.hb-ferry-operator-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 24px; margin-top:24px; }
.hb-ferry-operator-links p { margin:0; }
.hb-affiliate-note { margin-top:20px; color:var(--hb-moss); font-size:14px; font-style:italic; }
.hb-ferry-onward h2 { margin:0 0 24px; font-size:42px; }
.hb-ferry-onward > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.hb-ferry-onward article { padding:30px; background:var(--hb-paper); }
.hb-ferry-onward article p { margin:0; }
.hb-ferry-practical { background:var(--hb-paper); }
.hb-ferry-practical a,.hb-ferry-back { color:var(--hb-forest); font-weight:800; text-decoration:underline; text-decoration-color:var(--hb-sun); text-decoration-thickness:2px; text-underline-offset:4px; }
.hb-ferry-back { justify-self:start; }

.hb-page-intro { padding: 70px clamp(24px,7vw,110px) 76px; background:var(--hb-paper); }
.hb-page-intro-inner { width:100%; max-width:1090px; margin:0 auto; }
.hb-page-intro h1 { margin:18px 0 22px; font-size:clamp(52px,6vw,84px); }
.hb-page-intro-inner > p { max-width:780px; margin:0; font-size:20px; }
.hb-breadcrumbs { display:flex; flex-wrap:wrap; gap:9px; margin-bottom:60px; color:var(--hb-moss); font-size:14px; }
.hb-breadcrumbs a { color:var(--hb-forest); font-weight:700; }
.hb-app-list { max-width:1090px; margin:0 auto; border-top:1px solid var(--hb-line); }
.hb-app-list > a { display:grid; grid-template-columns:70px 1fr 150px; gap:26px; align-items:center; padding:30px 10px; color:var(--hb-ink); border-bottom:1px solid var(--hb-line); }
.hb-app-list strong,.hb-app-list small { display:block; }
.hb-app-list strong { margin-bottom:5px; font:700 28px/1.15 Georgia,serif; }
.hb-app-list small { color:#4f5b52; font-size:16px; }
.hb-app-list b { text-align:right; }
.hb-app-mark { display:grid; place-items:center; width:58px; height:58px; overflow:hidden; border:1px solid var(--hb-line); border-radius:16px; background:#fff; color:var(--hb-forest); font:800 18px/1 Arial,sans-serif; }
.hb-app-mark img { display:block; width:calc(100% - 18px); height:calc(100% - 18px); padding:0; object-fit:contain; object-position:center; }
.hb-app-mark svg { display:block; width:36px; height:36px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.hb-app-title { display:flex; gap:24px; align-items:center; }
.hb-app-title .hb-app-mark { width:82px; height:82px; flex:0 0 82px; font-size:23px; }
.hb-app-title .hb-app-mark img { width:calc(100% - 22px); height:calc(100% - 22px); padding:0; }
.hb-app-title .hb-app-mark svg { width:50px; height:50px; }
.hb-app-title h1 { margin:5px 0 12px; }
.hb-app-title p { margin:0; }
.hb-series-chips { display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }
.hb-series-chips a { padding:11px 16px 8px; border:1px solid var(--hb-forest); border-bottom:4px solid var(--hb-sun); border-radius:3px; background:#fff; color:var(--hb-forest); font-size:15px; font-weight:800; transition:background .18s,color .18s,transform .18s; }
.hb-series-chips a:hover,.hb-series-chips a:focus-visible { background:var(--hb-forest); color:#fff; outline:3px solid rgba(230,165,69,.65); outline-offset:3px; transform:translateY(-1px); }
.hb-recent { scroll-margin-top:20px; }
.hb-series-grid { display:grid; gap:28px; max-width:1090px; margin:0 auto; }
.hb-series-card { scroll-margin-top:30px; background:#fff; border:1px solid var(--hb-line); }
.hb-series-card > header { padding:34px 38px 28px; }
.hb-series-card h3 { margin:0 0 10px; font-size:38px; }
.hb-series-card header p { margin:0; }
.hb-series-card ol { margin:0; padding:0; list-style:none; border-top:1px solid var(--hb-line); counter-reset:lesson; }
.hb-series-card li { counter-increment:lesson; }
.hb-series-card li a { display:grid; grid-template-columns:1fr 30px; gap:20px; padding:18px 38px; color:var(--hb-ink); border-bottom:1px solid #ece7de; }
.hb-series-card li:last-child a { border-bottom:0; }
.hb-series-card li a span::before { content:counter(lesson, decimal-leading-zero); display:inline-block; width:42px; color:var(--hb-moss); font-size:13px; font-weight:800; }
.hb-series-card li a:hover { background:var(--hb-paper-light); }
.hb-article-header { padding:70px clamp(24px,8vw,130px); background:var(--hb-paper); }
.hb-article-header-inner { width:100%; max-width:1090px; margin:0 auto; }
.hb-article-header h1 { max-width:1050px; margin:30px 0 24px; font-size:clamp(48px,6vw,78px); }
.hb-article-kicker { display:flex; gap:16px; align-items:center; }
.hb-article-kicker b,.hb-article-kicker small,.hb-byline span,.hb-byline small { display:block; }
.hb-byline { margin-top:28px; }
.hb-byline span { font-weight:800; }
.hb-byline small { color:var(--hb-moss); }
.hb-article-layout { display:grid; grid-template-columns:240px minmax(0,780px); justify-content:center; gap:70px; padding:70px 24px; background:#fff; }
.hb-article-toc { position:sticky; top:24px; align-self:start; padding:20px 0; border-top:3px solid var(--hb-sun); }
.hb-article-toc strong { display:block; margin-bottom:15px; }
.hb-article-toc nav { display:grid; gap:9px; }
.hb-article-toc a { color:var(--hb-moss); font-size:14px; line-height:1.35; }
.hb-article-toc-toggle { display:none; }
.hb-article-content { min-width:0; font-size:19px; line-height:1.75; }
.hb-article-content h2 { scroll-margin-top:28px; margin:58px 0 18px; font-size:38px; }
.hb-article-content h2:first-child { margin-top:0; }
.hb-article-content h2.hb-map-heading { margin-top:32px; }
.hb-article-content img { max-width:100%; height:auto; }
.hb-article-content iframe[src*="google.com/maps"] { display:block; position:static !important; width:100% !important; max-width:100% !important; height:600px !important; min-height:600px; border:0; }
.hb-article-content > .hb-map-embed-active { position:relative; width:100%; max-width:100%; min-height:600px; margin-bottom:48px; overflow:hidden; }
.hb-article-content > .hb-map-embed-active > * { max-width:100% !important; }
.hb-article-content .wp-block-group.has-background { padding:28px !important; border:1px solid var(--hb-line); border-left:5px solid var(--hb-sun); border-radius:3px !important; background:var(--hb-paper-light) !important; box-shadow:none !important; }
.hb-article-content .wp-block-group.hb-learning-box { position:relative; display:block !important; margin-bottom:38px !important; padding:34px 36px 30px 92px !important; border:0 !important; border-top:4px solid var(--hb-sun) !important; background:var(--hb-paper) !important; }
.hb-article-content .hb-learning-box::before { content:'✓'; position:absolute; top:34px; left:32px; display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:var(--hb-forest); color:#fff; font-weight:800; }
.hb-article-content .hb-learning-box h4 { margin:0 0 14px; color:var(--hb-forest); font:700 29px/1.2 Georgia,serif; }
.hb-article-content .hb-learning-box p { margin:0; line-height:2; }
.hb-article-content .hb-affiliate-box { position:relative; padding:38px !important; border:1px solid var(--hb-line) !important; border-left:0 !important; background:#fff !important; box-shadow:inset 7px 0 0 var(--hb-sun) !important; }
.hb-article-content .hb-affiliate-box::before { content:'Aus meiner Praxis'; display:inline-block; margin:0 0 16px; padding:6px 9px; background:var(--hb-paper); color:var(--hb-forest); font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.hb-article-content .hb-affiliate-box h5 { margin:0 0 18px; font:700 29px/1.2 Georgia,serif; }
.hb-article-content .hb-affiliate-text-link { color:var(--hb-forest); text-decoration:underline; text-decoration-color:var(--hb-sun); text-decoration-thickness:2px; text-underline-offset:3px; }
.hb-article-content .hb-affiliate-text-link:hover,.hb-article-content .hb-affiliate-text-link:focus-visible { color:#0e3025; text-decoration-thickness:3px; outline:none; }
.hb-article-content .hb-quick-download { margin-bottom:48px !important; padding:38px !important; border:0 !important; background:var(--hb-paper) !important; text-align:center; }
.hb-article-content .hb-quick-download h2 { margin:0 0 12px; font-size:38px; }
.hb-article-content .hb-quick-download .wp-block-buttons { justify-content:center; }
.hb-article-content .hb-quick-download .wp-block-button__link { padding:15px 22px 13px; border:0; border-bottom:4px solid var(--hb-sun); border-radius:3px; background:var(--hb-forest); color:#fff; font-weight:800; box-shadow:none; transition:background .18s,color .18s,transform .18s; }
.hb-article-content .hb-quick-download .wp-block-button__link::after { content:'  ↓'; }
.hb-article-content .hb-quick-download .wp-block-button__link:hover,
.hb-article-content .hb-quick-download .wp-block-button__link:focus-visible { background:#0e3025; color:#fff; outline:3px solid rgba(230,165,69,.65); outline-offset:3px; transform:translateY(-1px); }
.hb-article-content > .wp-block-spacer { height:40px !important; max-height:40px !important; }
.hb-article-content > .wp-block-spacer.hb-before-map { height:0 !important; max-height:0 !important; margin:0 !important; }
.hb-article-feedback { display:grid; grid-template-columns:1fr auto; gap:8px 28px; align-items:center; width:min(1090px,calc(100% - 48px)); margin:18px auto 48px; padding:22px 26px; border:1px solid var(--hb-line); border-left:4px solid var(--hb-sun); background:#fff; }
.hb-article-feedback div { display:grid; gap:4px; }
.hb-article-feedback div span,.hb-article-feedback small { color:var(--hb-muted); }
.hb-article-feedback-actions { display:flex !important; flex-wrap:wrap; justify-content:flex-end; gap:10px 18px !important; }
.hb-article-feedback-actions a,.hb-article-feedback-actions button { padding:0; border:0; background:transparent; color:var(--hb-forest); font:inherit; font-weight:800; text-decoration:underline; text-decoration-color:var(--hb-sun); text-decoration-thickness:2px; text-underline-offset:4px; cursor:pointer; }
.hb-article-feedback-actions a:hover,.hb-article-feedback-actions a:focus-visible,.hb-article-feedback-actions button:hover,.hb-article-feedback-actions button:focus-visible { color:#0e3025; text-decoration-thickness:3px; outline:none; }
.hb-article-feedback-address,.hb-copy-status { grid-column:1 / -1; color:var(--hb-muted); font-size:13px; }
.hb-copy-status:empty { display:none; }
.hb-copy-status:not(:empty) { color:var(--hb-forest); font-weight:700; }
.hb-article-feedback small { grid-column:1 / -1; font-size:12px; }
.hb-article-feedback small a { color:inherit; text-decoration:underline; }
.hb-learning-links { padding:70px clamp(24px,8vw,130px); background:var(--hb-paper); }
.hb-learning-links-inner { width:100%; max-width:1090px; margin:0 auto; }
.hb-learning-links h2 { margin:0 0 30px; font-size:46px; }
.hb-next-lesson { display:grid; grid-template-columns:1fr auto; gap:6px 30px; padding:28px 32px; background:var(--hb-forest); color:#fff; }
.hb-next-lesson small,.hb-next-lesson strong { display:block; }
.hb-next-lesson strong { font:700 28px/1.2 Georgia,serif; }
.hb-next-lesson b { grid-column:2; grid-row:1/3; align-self:center; }
.hb-learning-links .hb-next-lesson:hover,
.hb-learning-links .hb-next-lesson:focus-visible { background:#0e3025; color:#fff; outline:3px solid rgba(230,165,69,.65); outline-offset:3px; }
.hb-learning-links .hb-next-lesson:hover *,
.hb-learning-links .hb-next-lesson:focus-visible * { color:#fff; }
.hb-related-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-top:18px; }
.hb-related-grid a { display:grid; gap:8px; padding:24px 28px; background:#fff; color:var(--hb-ink); border:1px solid var(--hb-line); }
.hb-related-grid strong { font:700 23px/1.25 Georgia,serif; }
.hb-related-grid a:hover,.hb-related-grid a:focus-visible { background:#f7f3e9; color:var(--hb-ink); outline:2px solid var(--hb-sun); outline-offset:0; }
.hb-special-page { min-height:70vh; }
.hb-special-hero { max-width:900px; margin:0 auto; padding:80px 28px 90px; }
.hb-special-hero h1 { margin:15px 0 24px; font-size:clamp(52px,7vw,82px); }
.hb-confirmation { display:inline-flex; gap:10px; align-items:center; margin-bottom:34px; padding:9px 13px; background:#e1eadf; color:var(--hb-forest); border-radius:3px; }
.hb-confirmation span { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; background:var(--hb-forest); color:#fff; }
.hb-download-button { display:grid; grid-template-columns:54px 1fr 30px; gap:18px; align-items:center; margin-top:34px; padding:22px 24px 18px; border-bottom:4px solid var(--hb-sun); background:var(--hb-forest); color:#fff; transition:background .18s,color .18s,transform .18s; }
.hb-download-button:hover,.hb-download-button:focus-visible { background:#0e3025; color:#fff; outline:3px solid rgba(230,165,69,.65); outline-offset:3px; transform:translateY(-1px); }
.hb-download-button:hover *,.hb-download-button:focus-visible * { color:inherit; }
.hb-download-button > span { display:grid; place-items:center; height:46px; background:#fff; color:var(--hb-forest); font-size:13px; font-weight:800; }
.hb-download-button:hover > span,.hb-download-button:focus-visible > span { background:#fff; color:var(--hb-forest) !important; }
.hb-download-help { margin-top:18px; padding:20px 24px; background:#eee8dc; border-left:4px solid var(--hb-sun); }
.hb-download-help p { margin:6px 0 0; }
.hb-special-follow { padding:70px clamp(24px,6vw,90px); background:#e9e5db; }
.hb-special-follow-inner { display:grid; grid-template-columns:1fr minmax(280px,420px); gap:40px; align-items:center; width:100%; max-width:1090px; margin:0 auto; }
.hb-special-follow h2 { margin:0 0 15px; font-size:44px; }
.hb-special-follow-inner > a { display:flex; justify-content:space-between; gap:20px; padding:26px; background:#fff; color:var(--hb-ink); border-top:4px solid var(--hb-sun); }
.hb-welcome-actions { display:flex; flex-wrap:wrap; gap:24px; align-items:center; margin-top:32px; }
.hb-welcome-actions > a:not(.hb-button) { color:var(--hb-forest); font-weight:800; }
.hb-informed { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:50px; align-items:center; width:100%; max-width:1090px; margin:0 auto; background:var(--hb-forest); color:#fff; }
.hb-informed h2 { margin:8px 0 18px; color:#fff; font-size:clamp(38px,5vw,58px); }
.hb-informed p { max-width:760px; margin:0; }
.hb-informed .hb-eyebrow { color:#d9c993; }
.hb-informed a.hb-button,.hb-informed a.hb-button:visited { white-space:nowrap; background:#fff; color:var(--hb-forest) !important; }
.hb-informed a.hb-button:hover,.hb-informed a.hb-button:focus-visible { background:#f7f3e9; color:var(--hb-forest) !important; }
.hb-informed a.hb-button * { color:inherit !important; }
.hb-not-found-code { display:block; margin-bottom:14px; color:var(--hb-sun); font:800 18px/1 Arial,sans-serif; letter-spacing:.18em; }
.hb-not-found-options { background:#e9e5db; }
.hb-not-found-card { display:flex; flex-direction:column; min-height:210px; padding:30px; border-top:4px solid var(--hb-sun); background:#fff; color:var(--hb-ink); }
.hb-not-found-card small { color:var(--hb-moss); }
.hb-not-found-card strong { margin:18px 0; font:700 27px/1.15 Georgia,serif; }
.hb-not-found-card b { margin-top:auto; }
.hb-not-found-card:hover,.hb-not-found-card:focus-visible { background:#f7f3e9; color:var(--hb-ink); outline:2px solid var(--hb-sun); outline-offset:0; }

.hb-search-results-page { min-height:70vh; }
.hb-search-hero { padding:70px clamp(24px,7vw,110px) 76px; background:var(--hb-paper); }
.hb-search-inner { width:100%; max-width:1090px; margin:0 auto; }
.hb-search-hero .hb-breadcrumbs { margin-bottom:50px; }
.hb-search-hero h1 { max-width:900px; margin:12px 0 34px; font-size:clamp(48px,6vw,76px); }
.hb-search-form { max-width:760px; }
.hb-search-form > label { display:block; margin-bottom:8px; color:var(--hb-moss); font-size:14px; font-weight:800; }
.hb-search-form > div { display:grid; grid-template-columns:minmax(0,1fr) auto; }
.hb-search-form input { width:100%; min-height:58px; padding:14px 18px; border:1px solid var(--hb-line); border-right:0; border-radius:3px 0 0 3px; background:#fff; color:var(--hb-ink); font:inherit; }
.hb-search-form button { min-height:58px; padding:14px 22px 11px; border:0; border-bottom:4px solid var(--hb-sun); border-radius:0 3px 3px 0; background:var(--hb-forest); color:#fff; font:800 16px/1.2 Arial,sans-serif; cursor:pointer; }
.hb-search-form input:focus-visible,.hb-search-form button:focus-visible { position:relative; z-index:1; outline:3px solid rgba(230,165,69,.7); outline-offset:2px; }
.hb-search-form button:hover { background:#0e3025; }
.hb-search-content { padding:70px clamp(24px,7vw,110px) 100px; background:#fff; }
.hb-search-count { margin:0 0 24px; color:var(--hb-moss); font-weight:800; }
.hb-search-result-list { border-top:1px solid var(--hb-line); }
.hb-search-result { display:grid; grid-template-columns:minmax(0,1fr) 180px; gap:34px; align-items:center; padding:34px 10px; border-bottom:1px solid var(--hb-line); }
.hb-search-result-context { color:var(--hb-moss); font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.hb-search-result h2 { margin:8px 0 12px; font-size:clamp(28px,3vw,38px); }
.hb-search-result h2 a { color:var(--hb-ink); }
.hb-search-result p { max-width:760px; margin:0; color:#3f4a42; }
.hb-search-result-open { justify-self:end; padding:12px 14px 9px; border-bottom:4px solid transparent; color:var(--hb-forest); font-weight:800; white-space:nowrap; }
.hb-search-result:hover { background:var(--hb-paper-light); }
.hb-search-result:hover .hb-search-result-open,.hb-search-result-open:focus-visible { border-bottom-color:var(--hb-sun); background:var(--hb-paper); }
.hb-search-result-open:focus-visible,.hb-search-result h2 a:focus-visible { outline:2px solid var(--hb-sun); outline-offset:3px; }
.hb-search-pagination { margin-top:44px; }
.hb-search-pagination ul { display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none; }
.hb-search-pagination a,.hb-search-pagination span { display:block; min-width:44px; padding:10px 13px; border:1px solid var(--hb-line); color:var(--hb-forest); text-align:center; }
.hb-search-pagination .current { border-color:var(--hb-forest); background:var(--hb-forest); color:#fff; }
.hb-search-empty { max-width:760px; padding:20px 0 30px; }
.hb-search-empty h2 { margin:10px 0 18px; font-size:clamp(38px,5vw,56px); }
.hb-search-empty p { margin:0 0 28px; }

@media (max-width: 900px) {
    .hb-ferry-origins { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .hb-hero__visual { min-height:0; }
  .hb-section__heading { grid-template-columns:1fr; gap:20px; }
  .hb-area-row { grid-template-columns:64px 1fr; }
  .hb-area-count { grid-column:2; }
  .hb-area-row b { grid-column:2; text-align:left; }
  .hb-post-grid { grid-template-columns:1fr; }
  .hb-app-list > a { grid-template-columns:60px 1fr; }
  .hb-app-list b { grid-column:2; text-align:left; }
  .hb-site-footer-inner { grid-template-columns:1fr; }
  .hb-article-layout { grid-template-columns:1fr; gap:20px; }
  .hb-article-toc { position:static; margin-bottom:18px; padding:16px 0; }
  .hb-article-toc > strong { margin-bottom:10px; }
  .hb-article-toc button.hb-article-toc-toggle { display:flex; justify-content:space-between; align-items:center; width:100%; padding:11px 14px 9px; border:1px solid var(--hb-forest) !important; border-bottom:4px solid var(--hb-sun) !important; border-radius:2px 2px 0 0; background:var(--hb-forest) !important; color:#fff !important; font-weight:800; text-align:left; box-shadow:none; }
  .hb-article-toc button.hb-article-toc-toggle:hover,.hb-article-toc button.hb-article-toc-toggle:focus-visible { background:#0e3025 !important; color:#fff !important; outline:3px solid rgba(230,165,69,.65); outline-offset:2px; }
  .hb-article-toc-toggle::after { content:'+'; font-size:22px; line-height:1; }
  .hb-article-toc.is-open .hb-article-toc-toggle::after { content:'−'; }
  .hb-article-toc nav { display:none; padding:14px; border:1px solid var(--hb-line); border-top:0; background:#fff; }
  .hb-article-toc.is-open nav { display:grid; }
  .hb-article-toc nav a { padding:5px 0; font-size:16px; }
  .hb-related-grid,.hb-special-follow-inner,.hb-informed { grid-template-columns:1fr; }
  .hb-travel-tool-card,.hb-ferry-map-layout,.hb-ferry-journey,.hb-ferry-selection { grid-template-columns:1fr; }
  .hb-ferry-selection .hb-eyebrow,.hb-ferry-selection h2,.hb-ferry-selection > p,.hb-ferry-selection dl,.hb-ferry-selection .hb-button { grid-column:1; grid-row:auto; }
  .hb-travel-tool-card .hb-button { justify-self:start; }
  .hb-ferry-journey { align-items:start; }
  .hb-ferry-sea { padding-left:30px; text-align:left; }
  .hb-search-result { grid-template-columns:1fr; gap:18px; padding:28px 4px; }
  .hb-search-result-open { justify-self:start; }
}

@media (max-width: 560px) {
  .hb-academy { font-size:17px; }
  .hb-article-feedback { grid-template-columns:1fr; width:calc(100% - 48px); margin:12px auto 36px; padding:22px 20px; }
  .hb-article-feedback-actions { justify-content:flex-start; }
  .hb-article-feedback-address,.hb-copy-status { grid-column:auto; }
  .hb-article-feedback small { grid-column:auto; }
  .hb-hero__copy { padding:64px 22px; }
  .hb-hero h1 { font-size:45px; }
  .hb-hero h1 span { display:inline; }
  .hb-hero h1 span + span::before { content:' '; }
  .hb-section { padding:64px 20px; }
  .hb-area-row { gap:16px; padding:24px 0; }
  .hb-area-icon { width:52px; height:52px; }
  .hb-site-header-inner { align-items:flex-start; }
  .hb-site-header nav { gap:10px; flex-direction:column; align-items:flex-end; }
  .hb-search-utility { padding:16px 20px 22px; }
  .hb-search-utility-inner { display:block; }
  .hb-search-utility form { width:100%; }
  .hb-search-utility form > div { grid-template-columns:1fr; gap:8px; }
  .hb-search-utility input { border-right:1px solid var(--hb-line); border-radius:3px; }
  .hb-search-utility button { width:100%; border-radius:3px; }
  .hb-article-content iframe[src*="google.com/maps"],.hb-article-content > .hb-map-embed-active { min-height:480px; height:480px !important; }
  .hb-article-content .wp-block-group.hb-learning-box { padding:28px 24px 26px !important; }
  .hb-article-content .hb-learning-box::before { position:static; width:36px; height:36px; margin:0 0 16px; }
  .hb-article-content .hb-learning-box h2,
  .hb-article-content .hb-learning-box h3,
  .hb-article-content .hb-learning-box h4 { margin:0 0 16px; font-size:31px; }
  .hb-article-content .hb-learning-box ul { margin:0; padding-left:24px; }
  .hb-article-content .hb-learning-box li { margin-bottom:8px; overflow-wrap:normal; word-break:normal; }
  .hb-article-content .hb-affiliate-box { padding:28px 24px !important; }
  .hb-article-content .hb-affiliate-box h2,
  .hb-article-content .hb-affiliate-box h3,
  .hb-article-content .hb-affiliate-box h4,
  .hb-article-content .hb-affiliate-box h5 { font-size:31px; }
  .hb-back-to-top { right:14px; width:48px; height:48px; }
  .hb-search-form > div { grid-template-columns:1fr; gap:10px; }
  .hb-search-form input { border-right:1px solid var(--hb-line); border-radius:3px; }
  .hb-search-form button { border-radius:3px; }
  .hb-ferry-origins,.hb-ferry-routes > div,.hb-ferry-facts,.hb-ferry-onward > div,.hb-ferry-operator-links { grid-template-columns:1fr; }
  .hb-ferry-map-stage svg { min-height:0; }
  .hb-ferry-selection,.hb-ferry-practice,.hb-ferry-practical,.hb-travel-tool-card { padding:26px 22px; }
  .hb-ferry-routes button { flex-direction:column; gap:3px; }
}

@media (prefers-reduced-motion: reduce) {
  .hb-back-to-top { transition:none; }
}
