/* FerryEU reusable individual ferry-operator page styles */
.operator-page {
  --operator-blue: #0d5f8f;
  --operator-blue-dark: #073f6d;
  --operator-pale: #eaf5fb;
  --operator-ink: #14354f;
}
.operator-page section[id] { scroll-margin-top: 88px; }
.breadcrumb-bar { border-bottom: 1px solid #e6edf2; background: #f8fbfd; }
.breadcrumbs { display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0;padding:11px 0;list-style:none;color:#607487;font-size:.82rem; }
.breadcrumbs li { display:inline-flex;align-items:center;gap:8px; }
.breadcrumbs li:not(:last-child)::after { content:"/";color:#a2b2bf; }
.breadcrumbs a { color:#315b79;text-decoration:none; }
.breadcrumbs a:hover { color:var(--operator-blue);text-decoration:underline;text-underline-offset:3px; }
.operator-page .primary-nav-clean a.active { background:transparent;color:#0870b7;border-bottom-color:#0870b7; }

.operator-hero { position:relative;min-height:500px;display:grid;align-items:center;overflow:hidden;background:#062b4f; }
.operator-hero-image { position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:68% 47%;transform:scale(1.24); }
.operator-hero-overlay { position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,29,55,.96) 0%,rgba(3,39,72,.89) 31%,rgba(4,45,80,.58) 54%,rgba(4,35,65,.16) 82%,rgba(4,35,65,.06) 100%),linear-gradient(0deg,rgba(2,24,46,.25),transparent 48%); }
.operator-hero-content { position:relative;z-index:2;padding-top:52px;padding-bottom:112px;color:#fff; }
.operator-eyebrow { display:inline-block;margin-bottom:15px;color:#f2bd4b;font-size:.8rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase; }
.operator-hero-content h1 { max-width:720px;margin:0;color:#fff;font-size:clamp(3.6rem,7.2vw,6.9rem);line-height:.92;letter-spacing:-.055em;text-shadow:0 3px 18px rgba(0,0,0,.3); }
.operator-hero-lead { max-width:690px;margin:23px 0 24px;color:#e8f2f8;font-size:clamp(1.08rem,1.55vw,1.34rem);line-height:1.52; }
.operator-hero-badges { display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:28px; }
.operator-hero-badges span { display:inline-flex;align-items:center;gap:8px;min-height:37px;padding:7px 12px;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:rgba(4,39,70,.66);color:#f4f8fb;font-size:.88rem;font-weight:750;backdrop-filter:blur(8px); }
.operator-hero-badges img { filter:brightness(0) invert(1); }
.operator-hero-actions,.operator-inline-actions { display:flex;align-items:center;flex-wrap:wrap;gap:13px; }

.operator-booking-shell { position:relative;z-index:12;margin-top:-82px; }
.operator-booking-card { padding:24px 26px 18px;border:7px solid #07396e;border-radius:17px;background:#fff;box-shadow:0 18px 48px rgba(5,39,74,.24); }
.operator-booking-heading { display:grid;grid-template-columns:minmax(270px,.85fr) minmax(300px,1.15fr);gap:28px;align-items:end;margin-bottom:17px; }
.operator-booking-heading .section-kicker { margin-bottom:5px; }
.operator-booking-heading h2 { margin:0;color:var(--navy);font-size:clamp(1.55rem,2.7vw,2.15rem);line-height:1.12; }
.operator-booking-heading p { margin:0;color:var(--muted); }
.operator-pseudo-search { display:grid;grid-template-columns:1.15fr 1fr .9fr 1.1fr .86fr;gap:10px; }
.operator-pseudo-field { position:relative;min-height:70px;display:flex;flex-direction:column;justify-content:center;padding:10px 42px 9px 14px;border:1px solid #d7e1e8;border-radius:8px;background:#fff;color:#173a59;text-decoration:none; }
.operator-pseudo-field:hover,.operator-pseudo-field:focus-visible { border-color:#7db3d4;background:#fbfdff; }
.operator-pseudo-field small { margin-bottom:4px;color:#6b7f91;font-size:.71rem; }
.operator-pseudo-field strong { color:#314f68;font-size:.91rem;line-height:1.25; }
.operator-pseudo-field>img { position:absolute;right:13px;top:50%;width:20px;height:20px;transform:translateY(-50%);opacity:.86; }
.operator-search-button { display:grid;place-items:center;min-height:70px;padding:0 20px;border-radius:8px;background:var(--gold);color:var(--navy-deep);text-align:center;text-decoration:none;font-weight:850;box-shadow:inset 0 -2px 0 rgba(0,0,0,.08); }
.operator-search-button:hover,.operator-search-button:focus-visible { background:#ffc943; }
.operator-booking-note { margin:10px 2px 0;color:#708394;font-size:.78rem; }

.operator-section-nav { position:relative;top:auto;z-index:80;margin-top:26px;border-top:1px solid #e2eaf0;border-bottom:1px solid #e2eaf0;background:#fff;box-shadow:0 5px 18px rgba(5,38,68,.05); }
.operator-section-nav-inner { display:flex;align-items:center;gap:4px;overflow-x:auto;scrollbar-width:none; }
.operator-section-nav-inner::-webkit-scrollbar { display:none; }
.operator-section-nav a { flex:0 0 auto;padding:16px 13px 14px;border-bottom:3px solid transparent;color:#526b7e;text-decoration:none;font-size:.83rem;font-weight:760;white-space:nowrap; }
.operator-section-nav a:hover,.operator-section-nav a.active { color:#062b4f;border-bottom-color:#0d6fa8;background:#f4f9fc; }

.operator-heading { max-width:850px; }
.operator-heading.centered { max-width:850px; }
.operator-overview-grid { display:grid;grid-template-columns:minmax(0,1.14fr) minmax(0,1fr) minmax(260px,.62fr);gap:35px;align-items:start; }
.operator-overview-media { position:relative;height:100%;min-height:560px;overflow:hidden;border-radius:21px;box-shadow:0 17px 42px rgba(6,43,79,.14); }
.operator-overview-media>img { width:100%;height:100%;min-height:560px;object-fit:cover;object-position:center; }
.image-caption { position:absolute;left:16px;right:16px;bottom:15px;display:flex;justify-content:flex-start; }
.image-caption span { padding:7px 11px;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:rgba(4,36,66,.78);color:#fff;font-size:.75rem;font-weight:700;backdrop-filter:blur(8px); }
.operator-overview-copy h2,.planning-grid h2 { margin:0 0 17px;color:var(--navy);font-size:clamp(2rem,3.4vw,3rem);line-height:1.08;letter-spacing:-.035em; }
.operator-overview-copy p,.planning-grid p { margin:0 0 16px;color:var(--muted); }
.operator-official-link { display:inline-flex;align-items:center;gap:7px;color:#0d5f8f;text-decoration:none;font-size:.91rem;font-weight:800; }
.operator-official-link:hover { text-decoration:underline;text-underline-offset:3px; }
.operator-facts { padding:24px;border:1px solid #d7e3eb;border-radius:18px;background:#f8fbfd;box-shadow:0 10px 30px rgba(6,43,79,.06); }
.operator-facts h2 { margin:0 0 16px;color:var(--navy);font-size:1.3rem; }
.operator-facts dl { margin:0; }
.operator-facts dl>div { padding:11px 0;border-top:1px solid #e1e9ee; }
.operator-facts dl>div:first-child { border-top:0;padding-top:0; }
.operator-facts dt { margin-bottom:3px;color:#728595;font-size:.69rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase; }
.operator-facts dd { margin:0;color:#24455f;font-size:.91rem;font-weight:700;line-height:1.35; }

.operator-route-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px; }
.operator-route-card { padding:28px;border:1px solid #d8e3ea;border-radius:20px;background:#fff;box-shadow:0 12px 35px rgba(6,43,79,.08); }
.operator-route-card.featured { border-top:5px solid #0d6fa8; }
.route-card-topline { display:flex;justify-content:space-between;gap:10px;margin-bottom:23px;color:#667d8f;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em; }
.route-card-topline span:last-child { color:#0d5f8f; }
.route-port-pair { display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center;margin-bottom:20px; }
.route-port-pair>div:last-child { text-align:right; }
.route-port-pair small { display:block;color:#6e8292;font-size:.75rem; }
.route-port-pair strong { display:block;color:#062b4f;font-size:clamp(1.25rem,1.8vw,1.55rem);line-height:1.1; }
.route-arrow { display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#edf6fb; }
.route-arrow img { width:31px; }
.operator-route-card p { color:#5e7486; }
.operator-route-card ul { margin:20px 0 24px;padding:0;list-style:none; }
.operator-route-card li { position:relative;margin:9px 0;padding-left:25px;color:#405b70;font-size:.93rem; }
.operator-route-card li::before { content:"✓";position:absolute;left:0;color:#0d6fa8;font-weight:900; }
.operator-map-panel { display:grid;grid-template-columns:.72fr 1.28fr;gap:34px;align-items:center;margin-top:40px;padding:30px;border:1px solid #d8e4eb;border-radius:22px;background:#fff; }
.operator-map-copy h3 { margin:0 0 15px;color:#062b4f;font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.12; }
.operator-map-copy>p { margin:0 0 20px;color:#607487; }
.operator-map-figure { margin:0;overflow:hidden;border:1px solid #d6e1e8;border-radius:16px;background:#eef6fa;box-shadow:0 12px 32px rgba(6,43,79,.09); }
.operator-map-figure img { width:100%;height:auto; }
.operator-map-figure figcaption { padding:10px 14px;color:#667c8d;background:#fff;font-size:.75rem; }
.operator-alert { display:flex;align-items:flex-start;gap:12px;padding:14px 15px;border-radius:12px; }
.operator-alert img { flex:0 0 auto;margin-top:2px; }
.operator-alert p { margin:0;font-size:.88rem;line-height:1.5; }
.info-alert { border:1px solid #cce2ef;background:#eef8fd;color:#315d79; }
.warning-alert { border:1px solid #ecd6a2;background:#fff8e6;color:#674f1a; }

.accommodation-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px; }
.accommodation-card { display:flex;flex-direction:column;min-height:295px;padding:25px;border:1px solid #dbe5eb;border-radius:18px;background:#fff;transition:transform .18s ease,box-shadow .18s ease; }
.accommodation-card:hover { transform:translateY(-3px);box-shadow:0 15px 34px rgba(6,43,79,.1); }
.accommodation-icon { width:52px;height:52px;display:grid;place-items:center;margin-bottom:17px;border-radius:14px;background:#eaf5fb; }
.accommodation-icon img { width:30px;height:30px; }
.accommodation-card h3 { margin:0 0 10px;color:#062b4f;font-size:1.2rem; }
.accommodation-card p { margin:0 0 18px;color:#607487;font-size:.94rem; }
.accommodation-card strong { margin-top:auto;color:#0d5f8f;font-size:.76rem;text-transform:uppercase;letter-spacing:.07em; }
.accommodation-card>span:last-child { color:#455f72;font-size:.88rem;font-weight:650; }
.operator-tip-strip { display:grid;grid-template-columns:auto 1fr;gap:17px;align-items:center;margin-top:24px;padding:17px 21px;border-left:5px solid #f2bd4b;border-radius:10px;background:#f7fafc; }
.operator-tip-strip strong { color:#062b4f;white-space:nowrap; }
.operator-tip-strip p { margin:0;color:#5e7385;font-size:.92rem; }

.onboard-grid { position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px; }
.onboard-grid article { padding:27px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(255,255,255,.058); }
.onboard-grid img { margin-bottom:16px;filter:brightness(0) invert(1); }
.onboard-grid h3 { margin:0 0 9px;color:#fff;font-size:1.16rem; }
.onboard-grid p { margin:0;color:#cbd9e3;font-size:.92rem; }
.onboard-disclaimer { position:relative;z-index:2;margin:24px auto 0;max-width:850px;color:#aebfcb;text-align:center;font-size:.82rem; }

.travel-type-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px; }
.travel-type-card { padding:28px;border:1px solid #dbe5eb;border-radius:20px;background:#fff;box-shadow:0 10px 30px rgba(6,43,79,.06); }
.travel-type-icon { width:58px;height:58px;display:grid;place-items:center;margin-bottom:19px;border-radius:16px;background:#eaf5fb; }
.travel-type-card h3 { margin:0 0 11px;color:#062b4f;font-size:1.25rem; }
.travel-type-card>p { margin:0 0 18px;color:#607487; }
.travel-type-card ul { margin:0;padding:0;list-style:none; }
.travel-type-card li { position:relative;margin:10px 0;padding-left:24px;color:#415c70;font-size:.9rem; }
.travel-type-card li::before { content:"•";position:absolute;left:6px;color:#0d6fa8;font-weight:900; }

.fleet-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px; }
.fleet-card { padding:27px;border:1px solid #d5e1e8;border-radius:20px;background:#fff;box-shadow:0 10px 30px rgba(6,43,79,.07); }
.fleet-card-featured { border-top:5px solid #0d6fa8; }
.fleet-card-heading span { display:block;margin-bottom:5px;color:#0d6fa8;font-size:.7rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase; }
.fleet-card-heading h3 { margin:0 0 10px;color:#062b4f;font-size:1.65rem; }
.fleet-card>p { margin:0 0 18px;color:#607487; }
.fleet-card dl { display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 17px; }
.fleet-card dl>div { padding:11px 8px;border-radius:10px;background:#f2f7fa;text-align:center; }
.fleet-card dt { color:#778a98;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em; }
.fleet-card dd { margin:3px 0 0;color:#173d5c;font-size:.86rem;font-weight:800;line-height:1.2; }
.fleet-card small { display:block;color:#6b7f8e;line-height:1.5; }
.fleet-alert { margin-top:22px; }

.practical-grid { display:grid;grid-template-columns:1.08fr .92fr;gap:28px;align-items:start; }
.boarding-timeline,.document-panel { padding:29px;border:1px solid #dae4ea;border-radius:20px;background:#fff;box-shadow:0 10px 30px rgba(6,43,79,.06); }
.boarding-timeline h3,.document-panel h3 { margin:0 0 22px;color:#062b4f;font-size:1.4rem; }
.boarding-timeline ol { margin:0;padding:0;list-style:none;counter-reset:steps; }
.boarding-timeline li { counter-increment:steps;position:relative;display:grid;grid-template-columns:115px 1fr;gap:22px;padding:0 0 25px 44px; }
.boarding-timeline li:not(:last-child)::after { content:"";position:absolute;left:16px;top:31px;bottom:0;width:2px;background:#d6e7f0; }
.boarding-timeline li::before { content:counter(steps);position:absolute;left:0;top:0;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#0d6fa8;color:#fff;font-size:.82rem;font-weight:850;z-index:2; }
.boarding-timeline li>span { padding-top:5px;color:#0d5f8f;font-size:.74rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em; }
.boarding-timeline strong { display:block;margin-bottom:4px;color:#173d5c; }
.boarding-timeline p { margin:0;color:#667b8b;font-size:.9rem; }
.document-list { margin:0 0 21px;padding:0;list-style:none; }
.document-list li { display:grid;grid-template-columns:32px 1fr;gap:12px;padding:13px 0;border-top:1px solid #e3eaef; }
.document-list li:first-child { border-top:0;padding-top:0; }
.document-list img { margin-top:2px; }
.document-list strong { display:block;color:#173d5c; }
.document-list span { display:block;margin-top:3px;color:#667b8b;font-size:.88rem; }

.planning-grid { display:grid;grid-template-columns:1.15fr .85fr;gap:55px;align-items:start; }
.planning-checklist { padding:28px;border-radius:20px;background:#062b4f;color:#fff;box-shadow:0 17px 40px rgba(6,43,79,.18); }
.planning-checklist h3 { margin:0 0 16px;color:#fff;font-size:1.35rem; }
.planning-checklist ul { margin:0 0 24px;padding:0;list-style:none; }
.planning-checklist li { position:relative;margin:10px 0;padding-left:27px;color:#d2e0e9;font-size:.93rem; }
.planning-checklist li::before { content:"✓";position:absolute;left:0;color:#f2bd4b;font-weight:900; }
.planning-checklist .button { width:100%;background:#f2bd4b;color:#031f3b; }

.faq-container { max-width:900px; }
.faq-list { border-top:1px solid #dce5eb; }
.faq-list details { border-bottom:1px solid #dce5eb; }
.faq-list summary { position:relative;padding:21px 48px 21px 0;color:#143d5c;font-size:1.05rem;font-weight:780;cursor:pointer;list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:"+";position:absolute;right:8px;top:50%;width:29px;height:29px;display:grid;place-items:center;transform:translateY(-50%);border-radius:50%;background:#edf6fb;color:#0d5f8f;font-size:1.3rem; }
.faq-list details[open] summary::after { content:"−"; }
.faq-list details>div { padding:0 45px 21px 0; }
.faq-list p { margin:0;color:#607487; }

.related-operators { border-top:1px solid #ebf0f3; }
.related-heading { display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:26px; }
.related-heading h2 { margin:0;color:#062b4f;font-size:clamp(1.85rem,3vw,2.55rem);line-height:1.12; }
.related-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px; }
.related-grid>a { position:relative;display:flex;flex-direction:column;min-height:150px;padding:24px 52px 24px 24px;border:1px solid #dce5eb;border-radius:17px;background:#fff;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease; }
.related-grid>a:hover { transform:translateY(-3px);box-shadow:0 14px 34px rgba(6,43,79,.1); }
.related-grid strong { color:#062b4f;font-size:1.12rem; }
.related-grid span { margin-top:7px;color:#607487;font-size:.9rem; }
.related-grid>a>img { position:absolute;right:20px;bottom:22px; }

@media (max-width:1180px) {
  .operator-overview-grid { grid-template-columns:1fr 1fr; }
  .operator-facts { grid-column:1/-1; }
  .operator-facts dl { display:grid;grid-template-columns:repeat(4,1fr);gap:0 20px; }
  .operator-facts dl>div:nth-child(-n+4) { border-top:0; }
  .operator-pseudo-search { grid-template-columns:repeat(2,1fr); }
  .operator-search-button { grid-column:1/-1;min-height:58px; }
}
@media (max-width:960px) {
  .operator-hero { min-height:490px; }
  .operator-hero-content { padding-top:50px;padding-bottom:108px; }
  .operator-booking-heading { display:block; }
  .operator-booking-heading p { margin-top:9px; }
  .operator-overview-grid,.operator-map-panel,.practical-grid,.planning-grid { grid-template-columns:1fr; }
  .operator-overview-media { height:440px;min-height:0; }
  .operator-overview-media>img { min-height:0; }
  .operator-facts { grid-column:auto; }
  .operator-route-grid,.accommodation-grid,.onboard-grid,.travel-type-grid,.fleet-grid,.related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .operator-map-copy { order:2; }
  .operator-map-figure { order:1; }
  .operator-facts dl { grid-template-columns:repeat(2,1fr); }
  .operator-facts dl>div:nth-child(3),.operator-facts dl>div:nth-child(4) { border-top:1px solid #e1e9ee; }
  .related-heading { align-items:flex-start;flex-direction:column; }
}
@media (max-width:720px) {
  .operator-page section[id] { scroll-margin-top:70px; }
  .operator-hero { min-height:525px; }
  .operator-hero-image { object-position:68% 50%;transform:scale(1.24); }
  .operator-hero-overlay { background:linear-gradient(90deg,rgba(3,29,55,.94),rgba(3,39,72,.73)),linear-gradient(0deg,rgba(2,24,46,.25),transparent 48%); }
  .operator-hero-content { padding-top:46px;padding-bottom:100px; }
  .operator-hero-content h1 { font-size:clamp(3.1rem,15vw,5rem); }
  .operator-hero-actions { display:grid; }
  .operator-hero-actions .button { width:100%; }
  .operator-booking-shell { margin-top:-60px; }
  .operator-booking-card { padding:20px 17px 15px;border-width:5px; }
  .operator-pseudo-search { grid-template-columns:1fr; }
  .operator-search-button { grid-column:auto; }
  .operator-section-nav { margin-top:18px; }
  .operator-route-grid,.accommodation-grid,.onboard-grid,.travel-type-grid,.fleet-grid,.related-grid { grid-template-columns:1fr; }
  .operator-overview-media { height:340px; }
  .operator-tip-strip { grid-template-columns:1fr;gap:5px; }
  .fleet-card dl { grid-template-columns:repeat(2,1fr); }
  .boarding-timeline li { grid-template-columns:1fr;gap:3px;padding-left:45px; }
  .boarding-timeline li>span { padding-top:5px; }
  .related-grid>a { min-height:130px; }
}
@media (max-width:520px) {
  .operator-booking-heading h2 { font-size:1.55rem; }
  .operator-overview-grid { gap:28px; }
  .operator-facts dl { grid-template-columns:1fr; }
  .operator-facts dl>div:nth-child(2) { border-top:1px solid #e1e9ee; }
  .route-port-pair { gap:8px; }
  .route-port-pair strong { font-size:1.25rem; }
  .route-arrow { width:44px;height:44px; }
  .operator-map-panel,.boarding-timeline,.document-panel { padding:20px; }
  .operator-route-card,.travel-type-card,.fleet-card { padding:22px; }
  .operator-hero-badges { gap:7px; }
  .operator-hero-badges span { font-size:.78rem; }
  .operator-inline-actions { align-items:flex-start;flex-direction:column; }
  .operator-inline-actions .button { width:100%; }
}
@media (prefers-reduced-motion:reduce) {
  .accommodation-card,.related-grid>a { transition:none; }
}


/* Reusable editorial image components introduced for ANEK Lines */
.operator-route-grid.route-grid-three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.operator-route-grid.route-grid-three .operator-route-card { min-height:100%; }

.operator-story-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px; }
.operator-story-card { overflow:hidden;border:1px solid #d9e4ea;border-radius:20px;background:#fff;box-shadow:0 11px 32px rgba(6,43,79,.07); }
.operator-story-media { position:relative;aspect-ratio:16/10;overflow:hidden;background:#dfeaf0; }
.operator-story-media img { width:100%;height:100%;object-fit:cover;transition:transform .35s ease; }
.operator-story-card:hover .operator-story-media img { transform:scale(1.035); }
.operator-story-copy { padding:22px 23px 24px; }
.operator-story-copy span { display:block;margin-bottom:7px;color:#0d6fa8;font-size:.7rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase; }
.operator-story-copy h3 { margin:0 0 10px;color:#062b4f;font-size:1.28rem;line-height:1.2; }
.operator-story-copy p { margin:0;color:#607487;font-size:.93rem; }
.operator-story-copy a { display:inline-flex;align-items:center;gap:7px;margin-top:15px;color:#0b679b;font-size:.88rem;font-weight:800;text-decoration:none; }
.operator-story-copy a:hover { text-decoration:underline;text-underline-offset:3px; }

.operator-photo-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:27px 0 30px; }
.operator-photo-grid.photo-grid-three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.operator-photo-grid.photo-grid-two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.operator-photo-card { position:relative;min-height:220px;margin:0;overflow:hidden;border-radius:17px;background:#dce9ef;box-shadow:0 11px 28px rgba(4,34,63,.12); }
.operator-photo-card img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover; }
.operator-photo-card::after { content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(2,25,47,.82),rgba(2,25,47,.08) 65%); }
.operator-photo-card figcaption { position:absolute;left:0;right:0;bottom:0;z-index:2;padding:42px 18px 16px;color:#fff;font-size:.88rem;font-weight:800;line-height:1.3; }
.navy-section .operator-photo-card { border:1px solid rgba(255,255,255,.13);box-shadow:none; }
.navy-section .operator-photo-grid { position:relative;z-index:2; }

.operator-media-intro { max-width:840px;margin:0 auto 25px;text-align:center; }
.operator-media-intro p { margin:0;color:#607487; }
.navy-section .operator-media-intro p { color:#cbd9e3; }

.travel-type-grid.travel-grid-four { grid-template-columns:repeat(2,minmax(0,1fr)); }

.operator-travel-visuals { margin-top:26px; }
.operator-travel-visuals .operator-photo-card { min-height:250px; }

.operator-practical-gallery { margin-bottom:28px; }
.operator-practical-gallery .operator-photo-card { min-height:260px; }

.fleet-card-idle { border-style:dashed;background:#fbfcfd; }
.fleet-card-idle .fleet-card-heading span { color:#7a6a48; }
.fleet-status { display:inline-flex;align-items:center;gap:7px;margin:0 0 14px;padding:6px 10px;border-radius:999px;background:#fff4d6;color:#654b13;font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em; }
.fleet-status::before { content:"";width:8px;height:8px;border-radius:50%;background:#d29a24; }

.operator-history-note { margin-top:22px;padding:17px 19px;border-left:5px solid #0d6fa8;border-radius:10px;background:#eef7fc;color:#405f75;font-size:.91rem; }
.operator-history-note strong { color:#062b4f; }
.operator-source-note { margin-top:22px;color:#6b7f8e;font-size:.8rem;line-height:1.55; }

@media (max-width:1100px) {
  .operator-route-grid.route-grid-three { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .operator-route-grid.route-grid-three .operator-route-card:last-child { grid-column:1/-1; }
  .operator-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:960px) {
  .operator-story-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .operator-story-card:last-child { grid-column:1/-1; }
}
@media (max-width:720px) {
  .operator-route-grid.route-grid-three,.operator-story-grid,.operator-photo-grid,.operator-photo-grid.photo-grid-three,.operator-photo-grid.photo-grid-two { grid-template-columns:1fr; }
  .operator-route-grid.route-grid-three .operator-route-card:last-child,.operator-story-card:last-child { grid-column:auto; }
  .operator-photo-card,.operator-travel-visuals .operator-photo-card,.operator-practical-gallery .operator-photo-card { min-height:230px; }
}
@media (prefers-reduced-motion:reduce) {
  .operator-story-media img { transition:none; }
}


/* Site-wide sticky header compatibility retained from the approved FerryEU navigation. */
.operator-page section[id]{scroll-margin-top:158px}
.operator-section-nav{top:var(--ferryeu-sticky-header-height,78px);z-index:900}
@media(max-width:720px){.operator-page section[id]{scroll-margin-top:150px}}
@media(max-width:520px){.operator-bornholmslinjen .operator-hero-content h1{font-size:clamp(2.05rem,9vw,3.4rem);letter-spacing:-.045em;white-space:nowrap}}

/* Change 4: smaller route-card headings only. */
.operator-route-card > h3,
.route-card > h3 { font-size:1.25rem; }
/* Bornholmslinjen route-card footer retained beneath the ANEK-style route header. */
.route-card-footer {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid #e1e9ee;
  color:#667d8f;
  font-size:.82rem;
  font-weight:700;
}
.route-card-footer a { color:#0d5f8f;text-decoration:none;font-weight:800; }
.route-card-footer a:hover { text-decoration:underline;text-underline-offset:3px; }
@media (max-width:720px) { .route-card-footer { align-items:flex-start;flex-direction:column; } }


/* Final operator-page refinement: image-overlay informational text uses regular weight. */
.image-caption span,
.image-caption span *,
.operator-photo-card figcaption,
.operator-photo-card figcaption * {
  font-weight: 400;
}


/* Operator scrolling refinement — 8 Aug 2026
   The main site header remains sticky, while the ANEK-style operator section
   navigation stays in normal document flow. */
.operator-section-nav {
  position: relative !important;
  top: auto !important;
  z-index: 80 !important;
}
.operator-page section[id] {
  scroll-margin-top: 92px;
}
@media (max-width: 720px) {
  .operator-page section[id] {
    scroll-margin-top: 92px;
  }
}


/* FerryEU approved operator-master refinement candidate — 13 August 2026
   Scoped to .operator-master-v2 until the ANEK master is approved. */
.operator-master-v2 .section{padding-top:52px;padding-bottom:52px}
.operator-master-v2 .section-heading{margin-bottom:30px}

/* About the operator: media and at-a-glance panel finish at the same height. */
.operator-master-v2 .operator-overview-grid{align-items:stretch;gap:30px}
.operator-master-v2 .operator-overview-media{height:auto;min-height:0}
.operator-master-v2 .operator-overview-media>img{height:100%;min-height:0;object-fit:cover}
.operator-master-v2 .operator-overview-copy,.operator-master-v2 .operator-facts{height:100%}
.operator-master-v2 .operator-overview-copy p{margin-bottom:13px;line-height:1.52}
.operator-master-v2 .operator-inline-actions{margin-top:2px}

/* Routes / illustrative network: reduce excess white space and balance map/copy. */
.operator-master-v2 .operator-routes.section{padding-bottom:36px}
.operator-master-v2 .operator-map-panel{align-items:stretch;gap:30px;margin-top:28px;padding:26px}
.operator-master-v2 .operator-map-copy{display:flex;flex-direction:column;justify-content:center;min-height:100%}
.operator-master-v2 .operator-map-copy>p{margin:0 0 12px;color:#607487;line-height:1.48}
.operator-master-v2 .operator-map-copy .operator-alert{margin-top:3px}
.operator-master-v2 .operator-map-figure{align-self:stretch}

/* Destinations and accommodation: tighter, even section rhythm. */
.operator-master-v2 .operator-destinations.section{padding-top:34px;padding-bottom:44px}
.operator-master-v2 .operator-accommodation.section{padding-top:36px;padding-bottom:48px}
.operator-master-v2 .operator-tip-strip{margin-top:20px}
.operator-master-v2 .operator-photo-grid{margin-top:22px;margin-bottom:25px}

/* Onboard: materially reduce the navy band's top and bottom padding. */
.operator-master-v2 .operator-onboard.section{padding-top:40px;padding-bottom:40px}
.operator-master-v2 .operator-onboard .section-heading{margin-bottom:24px}
.operator-master-v2 .operator-onboard .operator-photo-grid{margin-top:20px;margin-bottom:22px}
.operator-master-v2 .onboard-grid article{padding:23px}
.operator-master-v2 .onboard-grid img{margin-bottom:12px}
.operator-master-v2 .onboard-disclaimer{margin-top:18px}

/* Vehicles/pets retains moderate separation before the practical section. */
.operator-master-v2 .operator-travel-types.section{padding-top:50px;padding-bottom:46px}

/* Travel information: pull heading upward and keep both practical boxes equal height. */
.operator-master-v2 .operator-practical.section{padding-top:28px;padding-bottom:46px}
.operator-master-v2 .operator-practical .section-heading{margin-bottom:24px}
.operator-master-v2 .operator-practical-gallery{margin-top:18px;margin-bottom:22px}
.operator-master-v2 .practical-grid{align-items:stretch;gap:24px}
.operator-master-v2 .boarding-timeline,.operator-master-v2 .document-panel{height:100%;padding:25px}
.operator-master-v2 .boarding-timeline h3,.operator-master-v2 .document-panel h3{margin-bottom:17px}
.operator-master-v2 .boarding-timeline li{gap:18px;padding-bottom:20px}
.operator-master-v2 .boarding-timeline p{line-height:1.45}
.operator-master-v2 .document-list{margin-bottom:16px}
.operator-master-v2 .document-list li{padding:10px 0}
.operator-master-v2 .document-list span{line-height:1.42}

/* Planning, FAQs and related operators: compact but readable. */
.operator-master-v2 .operator-planning.section{padding-top:46px;padding-bottom:46px}
.operator-master-v2 .planning-grid{align-items:stretch;gap:42px}
.operator-master-v2 .planning-checklist{height:100%;padding:25px}
.operator-master-v2 .operator-faq.section{padding-top:44px;padding-bottom:44px}
.operator-master-v2 .operator-faq .section-heading{margin-bottom:18px}
.operator-master-v2 .faq-list summary{padding:13px 46px 13px 0;line-height:1.28}
.operator-master-v2 .faq-list details>div{padding:0 42px 13px 0}
.operator-master-v2 .faq-list p{line-height:1.42}
.operator-master-v2 .related-operators.section{padding-top:46px;padding-bottom:46px}
.operator-master-v2 .related-heading{margin-bottom:22px}

/* Footer: visible FerryEU logo and a shorter navigation band. */
.operator-master-v2 .site-footer .footer-grid{gap:34px;padding-top:38px;padding-bottom:28px}
.operator-master-v2 .site-footer .footer-brand img{width:180px;height:auto;margin-bottom:10px}
.operator-master-v2 .site-footer .footer-brand p{margin:0;line-height:1.45}
.operator-master-v2 .site-footer .footer-heading{margin-bottom:10px}
.operator-master-v2 .site-footer li{margin:5px 0}
.operator-master-v2 .site-footer .footer-bottom{padding-top:13px;padding-bottom:16px}

@media (max-width:1180px){
  .operator-master-v2 .operator-overview-grid{align-items:start}
  .operator-master-v2 .operator-overview-media{height:440px}
  .operator-master-v2 .operator-overview-media>img{height:100%}
  .operator-master-v2 .operator-facts{height:auto}
}
@media (max-width:900px){
  .operator-master-v2 .section{padding-top:44px;padding-bottom:44px}
  .operator-master-v2 .operator-routes.section,
  .operator-master-v2 .operator-destinations.section,
  .operator-master-v2 .operator-accommodation.section,
  .operator-master-v2 .operator-onboard.section,
  .operator-master-v2 .operator-travel-types.section,
  .operator-master-v2 .operator-practical.section,
  .operator-master-v2 .operator-planning.section,
  .operator-master-v2 .operator-faq.section,
  .operator-master-v2 .related-operators.section{padding-top:40px;padding-bottom:40px}
  .operator-master-v2 .operator-map-copy{display:block}
  .operator-master-v2 .boarding-timeline,.operator-master-v2 .document-panel{height:auto}
}
@media (max-width:640px){
  .operator-master-v2 .section{padding-top:36px;padding-bottom:36px}
  .operator-master-v2 .operator-overview-media{height:330px}
  .operator-master-v2 .operator-map-panel{padding:20px}
  .operator-master-v2 .site-footer .footer-grid{gap:24px;padding-top:30px;padding-bottom:22px}
}
