/* ===========================================================
   Inselhopping (/aeroe-erleben/inselhopping-daenische-suedsee/)
   Ergänzt styles.css, wird nur auf dieser Seite geladen.
   Nutzt die bestehenden Tokens (--ink, --ink-soft, --accent,
   --wall, --cream, --sea …), Montserrat und die Breakpoints
   900px / 560px der Website.
   =========================================================== */

/* ---------- Hero ---------- */
.page-hero--wide { height: clamp(400px, 50vw, 580px); }

.page-hero-subtitle {
  margin: .7rem 0 0;
  font-size: clamp(1.05rem, 2vw, 1.3rem);
  font-weight: 600;
  color: rgba(255,255,255,.94);
  text-shadow: 0 1px 8px rgba(0,0,0,.3);
}

.ih-hero-credit {
  max-width: 1240px;
  margin: .4rem auto 0;
  padding: 0 1.5rem;
}

/* ---------- Fließtext ---------- */
.ih-prose p {
  font-size: .98rem;
  line-height: 1.8;
  color: var(--ink-soft);
  margin: 0 0 1.1rem;
}

.ih-prose h2 {
  font-size: clamp(1.3rem, 2.6vw, 1.7rem);
  font-weight: 800;
  color: var(--ink);
  margin: 0 0 1rem;
}

.ih-prose a:not(.cta-button) { color: var(--ink); font-weight: 600; }

.ih-intro {
  max-width: 720px;
  margin: 3rem auto 0;
  padding: 0 1.5rem;
  text-align: center;
}

.ih-intro p:first-child {
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--ink);
}

.ih-section {
  max-width: 720px;
  margin: 3.5rem auto;
  padding: 0 1.5rem;
}

.ih-wide {
  max-width: 1080px;
  margin: 4rem auto;
  padding: 0 1.5rem;
}

.ih-wide > .section-heading + .ih-lead {
  max-width: 680px;
  margin: -.6rem auto 2.2rem;
  text-align: center;
  font-size: .98rem;
  line-height: 1.75;
  color: var(--ink-soft);
}

.ih-quote {
  margin: 2rem 0 0;
  padding: 1.2rem 0 1.2rem 1.4rem;
  border-left: 3px solid var(--accent);
  font-size: 1.15rem;
  font-style: italic;
  font-weight: 500;
  line-height: 1.6;
  color: var(--ink);
}

/* ---------- Karte ---------- */
.ih-map {
  max-width: 1080px;
  margin: 0 auto;
}

.ih-map-frame {
  border-radius: 16px;
  overflow: hidden;
  background: #eaf1f6;
  box-shadow: 0 6px 20px rgba(20,35,90,.06);
}

.ih-map svg { display: block; width: 100%; height: auto; }

.ih-map .land { fill: #f6f1e4; stroke: rgba(20,35,90,.18); stroke-width: 1; }
.ih-map .land--aeroe { fill: var(--wall); stroke: var(--accent); stroke-width: 1.5; }
.ih-map .route { fill: none; stroke: var(--sea-light); stroke-width: 2; stroke-dasharray: 6 6; opacity: .75; }
.ih-map .route--island { stroke-width: 1.5; stroke-dasharray: 3 5; opacity: .55; }
.ih-map .dot { fill: var(--ink); }
.ih-map .dot--base { fill: var(--accent); }
.ih-map .home-ring { fill: none; stroke: var(--accent); stroke-width: 2; }
.ih-map .label { font-family: "Montserrat", sans-serif; font-size: 13px; font-weight: 600; fill: var(--ink); paint-order: stroke; stroke: rgba(246,241,228,.9); stroke-width: 3px; }
.ih-map .label--island { font-weight: 700; font-size: 14px; }
.ih-map .label--sea { font-size: 12px; font-weight: 500; font-style: italic; fill: var(--sea-light); stroke: none; letter-spacing: .08em; }
.ih-map .label--home { fill: var(--accent); font-weight: 700; }
.ih-map .label--aeroe { font-size: 16px; font-weight: 800; letter-spacing: .12em; fill: var(--ink); }

.ih-map-legend {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem 1.4rem;
  margin: 1rem 0 0;
  padding: 0;
  list-style: none;
  font-size: .78rem;
  color: var(--ink-soft);
}

.ih-map-legend li { display: flex; align-items: center; gap: .45rem; }
.ih-map-legend svg { width: 26px; height: 12px; }

.ih-map figcaption {
  margin-top: .8rem;
  font-size: .9rem;
  line-height: 1.6;
  color: var(--ink-soft);
}

.ih-map figcaption small { display: block; margin-top: .2rem; font-size: .72rem; opacity: .8; }

/* ---------- Inselkarten ---------- */
.ih-islands {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem 1.6rem;
}

.ih-island {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(20,35,90,.06);
}

.ih-island-media {
  position: relative;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: linear-gradient(160deg, var(--wall), var(--cream));
}

.ih-island-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .8s cubic-bezier(.16,.84,.44,1);
}

.ih-island:hover .ih-island-media img { transform: scale(1.03); }

.ih-island-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.1rem 1.6rem 1.6rem;
}

.ih-island-body .photo-credit { margin: 0 0 .9rem; }

.ih-island h3 {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--ink);
}

.ih-island-sub {
  margin: .2rem 0 .9rem;
  font-size: .9rem;
  font-style: italic;
  font-weight: 500;
  color: var(--ink-soft);
}

.ih-island-body > p:not(.ih-island-sub):not(.photo-credit) {
  margin: 0 0 .8rem;
  font-size: .93rem;
  line-height: 1.7;
  color: var(--ink-soft);
}

.ih-facts {
  margin: .4rem 0 1rem;
  padding: .9rem 1rem;
  border-radius: 12px;
  background: var(--cream);
  font-size: .84rem;
  line-height: 1.55;
}

.ih-facts div + div { margin-top: .35rem; }
.ih-facts dt { display: inline; font-weight: 700; color: var(--ink); }
.ih-facts dt::after { content: ": "; }
.ih-facts dd { display: inline; margin: 0; color: var(--ink-soft); }

.ih-note {
  display: block;
  margin-top: .35rem;
  font-size: .74rem;
  font-style: italic;
  color: var(--ink-soft);
}

.ih-tip {
  margin: 0 0 1.1rem;
  padding-left: .9rem;
  border-left: 3px solid var(--accent);
  font-size: .9rem;
  line-height: 1.6;
  color: var(--ink);
}

.ih-tip strong { color: var(--accent); }

.ih-links {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.2rem;
  margin: auto 0 0;
  font-size: .85rem;
  font-weight: 700;
}

.ih-links a { color: var(--accent); text-decoration: none; }
.ih-links a:hover { text-decoration: underline; }

/* ---------- Fährverbindungen ---------- */
.ih-routes {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.2rem;
}

.ih-route {
  display: flex;
  flex-direction: column;
  padding: 1.4rem 1.3rem 1.3rem;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 6px 20px rgba(20,35,90,.06);
  border-top: 3px solid var(--sea-light);
}

.ih-route h3 {
  margin: 0 0 .3rem;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--ink);
}

.ih-route-time {
  margin: 0 0 .8rem;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--accent);
}

.ih-route p:not(.ih-route-time) {
  margin: 0 0 1rem;
  font-size: .86rem;
  line-height: 1.6;
  color: var(--ink-soft);
}

.ih-route a {
  margin-top: auto;
  font-size: .84rem;
  font-weight: 700;
  color: var(--accent);
  text-decoration: none;
}

.ih-route a:hover { text-decoration: underline; }

.ih-routes-note {
  margin: 1rem 0 0;
  font-size: .78rem;
  font-style: italic;
  color: var(--ink-soft);
  text-align: center;
}

/* ---------- Fährbetreiber ---------- */
.ih-operators {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}

.ih-operator {
  padding: 1.5rem 1.4rem;
  border-radius: 16px;
  background: var(--wall);
}

.ih-operator h3 { margin: 0 0 .6rem; font-size: 1.05rem; font-weight: 800; color: var(--ink); }

.ih-operator ul {
  margin: 0 0 1rem;
  padding: 0;
  list-style: none;
  font-size: .86rem;
  line-height: 1.7;
  color: var(--ink-soft);
}

.ih-operator .cta-button { margin: .3rem .4rem 0 0; padding: .6rem 1.2rem; font-size: .8rem; }
.ih-operator .cta-button--ghost { padding: calc(.6rem - 2px) calc(1.2rem - 2px); }

/* ---------- Hinweisbox ---------- */
.ih-notice {
  max-width: 720px;
  margin: 2.5rem auto 0;
  padding: 1.3rem 1.5rem;
  border-radius: 14px;
  border: 1px solid rgba(20,35,90,.14);
  background: #fff;
}

.ih-notice h3 { margin: 0 0 .5rem; font-size: 1rem; font-weight: 800; color: var(--ink); }
.ih-notice p { margin: 0 0 .6rem; font-size: .9rem; line-height: 1.7; color: var(--ink-soft); }
.ih-notice p:last-child { margin-bottom: 0; }

/* ---------- Fahrrad-Abschnitt ---------- */
.ih-features {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: .4rem 0 0;
  padding: 0;
  list-style: none;
}

.ih-features li {
  padding: .4rem .95rem;
  border-radius: 999px;
  border: 1px solid rgba(20,35,90,.16);
  background: #fff;
  font-size: .8rem;
  font-weight: 600;
  color: var(--ink);
}

.ih-features li::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin: 0 .5rem .1rem 0;
  border-radius: 50%;
  background: var(--accent);
}

/* ---------- Persönlicher Tipp ---------- */
.ih-personal {
  max-width: 820px;
  margin: 4rem auto;
  padding: 2.6rem 2.6rem 2.4rem;
  border-radius: 18px;
  background: var(--wall);
  text-align: center;
}

.ih-personal .eyebrow { margin-bottom: .6rem; }
.ih-personal h2 { margin: 0 0 1.2rem; font-size: clamp(1.35rem, 2.8vw, 1.9rem); font-weight: 800; color: var(--ink); }
.ih-personal p { max-width: 640px; margin: 0 auto 1rem; font-size: 1rem; line-height: 1.8; color: var(--ink-soft); }
.ih-personal p:last-child { margin-bottom: 0; font-weight: 600; color: var(--ink); }

/* ---------- Beispiel-Tage ---------- */
.ih-days {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.4rem;
}

.ih-day {
  display: flex;
  flex-direction: column;
  padding: 1.5rem 1.4rem;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 6px 20px rgba(20,35,90,.06);
}

.ih-day-label {
  margin: 0 0 .5rem;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.ih-day h3 { margin: 0 0 1rem; font-size: 1.1rem; font-weight: 800; color: var(--ink); }

.ih-steps {
  margin: 0 0 1.1rem;
  padding: 0 0 0 1.1rem;
  list-style: none;
  border-left: 2px dashed rgba(44,63,124,.35);
}

.ih-steps li {
  position: relative;
  padding: .22rem 0;
  font-size: .88rem;
  color: var(--ink);
}

.ih-steps li::before {
  content: "";
  position: absolute;
  left: calc(-1.1rem - 5px);
  top: .62rem;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--sea-light);
}

.ih-steps li:first-child::before,
.ih-steps li:last-child::before { background: var(--accent); }

.ih-best {
  margin: auto 0 0;
  font-size: .82rem;
  color: var(--ink-soft);
}

.ih-best strong { color: var(--ink); }

/* ---------- FAQ ---------- */
.ih-faq h3 { margin: 1.6rem 0 .4rem; font-size: 1rem; font-weight: 700; color: var(--ink); }
.ih-faq h2 + h3 { margin-top: 0; }

/* ---------- CTA mit Eyebrow ---------- */
.cta-band-eyebrow {
  margin: 0 0 .5rem;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--window);
}

/* ---------- Tastatur-Fokus ---------- */
.ih-links a:focus-visible,
.ih-route a:focus-visible,
.ih-prose a:focus-visible,
.ih-island .photo-credit a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  border-radius: 2px;
}

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .ih-routes { grid-template-columns: repeat(2, 1fr); }
  .ih-operators, .ih-days { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .ih-islands, .ih-routes { grid-template-columns: 1fr; }
  .ih-personal { margin: 3rem 1rem; padding: 2rem 1.3rem; }
  .page-hero--wide { height: 440px; }
  .ih-island-body { padding: 1rem 1.2rem 1.3rem; }
}

@media (prefers-reduced-motion: reduce) {
  .ih-island-media img { transition: none; }
  .ih-island:hover .ih-island-media img { transform: none; }
}

/* ---------- Große Teaser-Karte auf /aeroe-erleben/ ---------- */
.ih-feature {
  max-width: 1080px;
  margin: 3.5rem auto 4rem;
  padding: 0 1.5rem;
}

.ih-feature-card {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: clamp(340px, 42vw, 480px);
  border-radius: 18px;
  overflow: hidden;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 10px 30px rgba(20,35,90,.12);
}

.ih-feature-card picture,
.ih-feature-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.ih-feature-card img {
  object-fit: cover;
  transition: transform 1s cubic-bezier(.16,.84,.44,1);
}

.ih-feature-card:hover img,
.ih-feature-card:focus-visible img { transform: scale(1.03); }

.ih-feature-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10,18,45,0) 30%, rgba(10,18,45,.72) 100%);
}

.ih-feature-body {
  position: relative;
  z-index: 1;
  max-width: 640px;
  padding: 2.2rem 2.4rem;
}

.ih-feature-eyebrow {
  margin: 0 0 .5rem;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--window);
}

.ih-feature-title {
  margin: 0 0 .7rem;
  font-size: clamp(1.5rem, 3.4vw, 2.3rem);
  font-weight: 800;
  line-height: 1.2;
  color: #fff;
  text-shadow: 0 2px 12px rgba(0,0,0,.25);
}

.ih-feature-text {
  margin: 0 0 1.2rem;
  font-size: clamp(1rem, 1.8vw, 1.2rem);
  font-style: italic;
  line-height: 1.6;
  color: rgba(255,255,255,.95);
}

.ih-feature-cta {
  display: inline-block;
  padding: .7rem 1.5rem;
  border-radius: 999px;
  background: var(--accent);
  font-size: .86rem;
  font-weight: 700;
  color: #fff;
  transition: background .3s ease;
}

.ih-feature-card:hover .ih-feature-cta { background: var(--roof-dark); }
.ih-feature-card:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.ih-feature .photo-credit { margin-top: .5rem; }

@media (max-width: 560px) {
  .ih-feature-body { padding: 1.5rem 1.4rem; }
  .ih-feature-card { min-height: 380px; }
}

@media (prefers-reduced-motion: reduce) {
  .ih-feature-card img { transition: none; }
  .ih-feature-card:hover img, .ih-feature-card:focus-visible img { transform: none; }
}
