/*
Theme Name: NZ Cruise Life v2.10.17
Theme URI: https://nzcruiselife.com/
Author: NZ Cruise Life
Description: A lightweight editorial WordPress theme for NZ Cruise Life: Cruise × New Zealand × Japanese.
Version: 2.10.17
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: nz-cruise-life-v2
*/

:root {
  --ncl-blue: #0b7cc1;
  --ncl-blue-dark: #075f94;
  --ncl-text: #17212b;
  --ncl-muted: #63707b;
  --ncl-bg: #ffffff;
  --ncl-bg-soft: #f5f7f8;
  --ncl-border: #dfe5e8;
  --ncl-max-width: 1260px;
  --ncl-content-width: 760px;
  --ncl-radius: 12px;
  --ncl-space-section: clamp(76px, 6.8vw, 104px);
  --ncl-shadow-soft: 0 20px 60px rgba(23, 33, 43, .08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ncl-text);
  background: var(--ncl-bg);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", YuGothic, Meiryo, sans-serif;
  font-size: 17px;
  line-height: 1.85;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--ncl-blue); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: var(--ncl-blue-dark); }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid rgba(11,124,193,.35); outline-offset: 3px; }
button, input, textarea, select { font: inherit; }

.ncl-shell { width: min(calc(100% - 48px), var(--ncl-max-width)); margin-inline: auto; }
.ncl-content-shell { width: min(calc(100% - 48px), var(--ncl-content-width)); margin-inline: auto; }
.ncl-section { padding: var(--ncl-space-section) 0; }
.ncl-section--soft { background: var(--ncl-bg-soft); }
.ncl-eyebrow {
  margin: 0 0 14px;
  color: var(--ncl-blue);
  font-size: 12px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.ncl-section h2,
.ncl-hub-hero h1,
.ncl-article-header h1,
.ncl-page-header h1 {
  margin: 0;
  line-height: 1.28;
  letter-spacing: -.025em;
}
.ncl-section h2 { font-size: clamp(32px, 3.5vw, 44px); }
.ncl-section-lead { max-width: 800px; margin: 20px 0 0; color: #33414d; font-size: 18px; }
.ncl-link-arrow { display: inline-flex; gap: .45em; align-items: center; font-weight: 700; text-decoration: none; }
.ncl-link-arrow::after { content: "→"; transition: transform .18s ease; }
.ncl-link-arrow:hover::after { transform: translateX(3px); }

/* Header */
.ncl-site-header {
  position: relative;
  z-index: 30;
  background: rgba(255,255,255,.97);
  border-bottom: 1px solid var(--ncl-border);
}
.ncl-header-inner {
  min-height: 88px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
.ncl-brand { color: var(--ncl-text); font-size: 25px; font-weight: 800; letter-spacing: -.03em; text-decoration: none; white-space: nowrap; }
.ncl-primary-nav { margin-left: auto; }
.ncl-primary-nav ul { list-style: none; display: flex; align-items: center; gap: 22px; margin: 0; padding: 0; }
.ncl-primary-nav a { color: var(--ncl-text); font-size: 14.5px; font-weight: 650; text-decoration: none; }
.ncl-primary-nav a:hover, .ncl-primary-nav .current-menu-item > a { color: var(--ncl-blue); }
.ncl-header-actions { display: flex; align-items: center; gap: 8px; }
.ncl-search-link, .ncl-menu-toggle {
  width: 44px; height: 44px; display: inline-grid; place-items: center;
  border: 0; border-radius: 50%; background: transparent; color: var(--ncl-text); cursor: pointer; text-decoration: none;
}
.ncl-search-link:hover, .ncl-menu-toggle:hover { background: var(--ncl-bg-soft); }
.ncl-menu-toggle { display: none; }
.ncl-menu-toggle span, .ncl-menu-toggle::before, .ncl-menu-toggle::after { width: 20px; height: 2px; background: currentColor; content: ""; display: block; transition: .2s ease; }
.ncl-menu-toggle span { margin: 4px 0; }
.ncl-menu-toggle[aria-expanded="true"] span { opacity: 0; }
.ncl-menu-toggle[aria-expanded="true"]::before { transform: translateY(6px) rotate(45deg); }
.ncl-menu-toggle[aria-expanded="true"]::after { transform: translateY(-6px) rotate(-45deg); }

/* Hero */
.ncl-hero { padding: clamp(82px, 7vw, 108px) 0 clamp(88px, 7.5vw, 116px); overflow: hidden; }
.ncl-hero-grid { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(400px, .82fr); align-items: center; gap: clamp(52px, 5.5vw, 78px); }
.ncl-hero h1 { max-width: 760px; margin: 0; font-size: clamp(48px, 4.6vw, 64px); line-height: 1.17; letter-spacing: -.045em; }
.ncl-hero-kicker { margin: 30px 0 0; font-size: clamp(20px, 1.7vw, 22px); font-weight: 750; line-height: 1.65; }
.ncl-hero-copy { max-width: 700px; margin: 18px 0 0; color: #42505b; font-size: 18px; }
.ncl-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 24px; margin-top: 34px; }
.ncl-button {
  min-height: 50px; display: inline-flex; align-items: center; justify-content: center;
  padding: 12px 22px; border-radius: 999px; background: var(--ncl-blue); color: #fff; font-weight: 800; text-decoration: none;
}
.ncl-button:hover { background: var(--ncl-blue-dark); color: #fff; }
.ncl-hero-visual { position: relative; min-height: 500px; border-radius: 32px; overflow: hidden; box-shadow: var(--ncl-shadow-soft); background: linear-gradient(180deg,#d9eef8 0%,#f5fbfd 40%,#8ac1d2 40.2%,#0d6d93 64%,#075273 100%); }
.ncl-hero-visual::before { content:""; position:absolute; left:-8%; right:-8%; top:38%; height:20%; background:rgba(255,255,255,.62); border-radius:50%; filter:blur(18px); transform:rotate(-2deg); }
.ncl-hero-visual::after { content:""; position:absolute; width:70%; height:38%; left:15%; bottom:-8%; border-radius:50% 50% 0 0; background:rgba(255,255,255,.10); border-top:1px solid rgba(255,255,255,.36); }
.ncl-horizon-label { position:absolute; left:30px; right:30px; bottom:28px; color:#fff; z-index:2; }
.ncl-horizon-label small { display:block; opacity:.85; letter-spacing:.12em; text-transform:uppercase; font-weight:800; }
.ncl-horizon-label strong { display:block; max-width:310px; margin-top:8px; font-size:28px; line-height:1.35; }


/* Desktop hero line control */
.ncl-hero-line { display: block; }
@media (min-width: 1041px) {
  .ncl-hero-line { white-space: nowrap; }
}

/* Homepage navigation maps */
.ncl-topic-list { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; margin-top: 38px; }
.ncl-topic-list--5 { grid-template-columns: repeat(5, minmax(0,1fr)); }
.ncl-topic-card { min-height: 150px; padding: 26px; border: 1px solid var(--ncl-border); border-radius: var(--ncl-radius); background: #fff; color: var(--ncl-text); text-decoration: none; display: flex; flex-direction: column; justify-content: space-between; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.ncl-section:not(.ncl-section--soft) .ncl-topic-card { background: var(--ncl-bg-soft); }
.ncl-topic-card:hover { color: var(--ncl-text); transform: translateY(-2px); border-color: #b9d7e7; box-shadow: 0 12px 30px rgba(23,33,43,.06); }
.ncl-topic-card small { color: var(--ncl-blue); font-size: 11px; letter-spacing: .12em; font-weight: 850; text-transform: uppercase; }
.ncl-topic-card strong { font-size: 19px; line-height: 1.45; }
.ncl-section-cta { margin-top: 34px; }

.ncl-destination-strip { margin-top: 40px; display: grid; grid-template-columns: 1.35fr .8fr .8fr; gap: 16px; }
.ncl-destination-card { min-height: 260px; border-radius: 18px; position: relative; overflow: hidden; padding: 26px; display: flex; align-items: flex-end; text-decoration: none; color:#fff; background: linear-gradient(165deg,#9bd0dd,#176d8c 58%,#0a435d); }
.ncl-destination-card:nth-child(2){ background:linear-gradient(165deg,#e7f2e9,#78a890 50%,#315f54); }
.ncl-destination-card:nth-child(3){ background:linear-gradient(165deg,#e5edf2,#809aac 48%,#3f5668); }
.ncl-destination-card:hover { color:#fff; }
.ncl-destination-card strong { position:relative; z-index:2; font-size:22px; }
.ncl-destination-card::after { content:""; position:absolute; inset:auto -20% -28% -20%; height:55%; border-radius:50% 50% 0 0; background:rgba(255,255,255,.12); }

/* Latest cards */
.ncl-post-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; margin-top: 40px; }
.ncl-post-card { border:1px solid var(--ncl-border); border-radius:var(--ncl-radius); overflow:hidden; background:#fff; }
.ncl-post-card__body { padding:24px; }
.ncl-post-card__meta { color:var(--ncl-blue); font-size:11px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.ncl-post-card h3 { margin:9px 0 0; font-size:21px; line-height:1.45; }
.ncl-post-card h3 a { color:var(--ncl-text); text-decoration:none; }
.ncl-post-card p { margin:13px 0 0; color:var(--ncl-muted); font-size:15px; }
.ncl-empty-state { margin-top:34px; padding:26px 28px; border:1px solid var(--ncl-border); border-radius:var(--ncl-radius); background:#fff; color:var(--ncl-muted); }
.ncl-closing { text-align:center; }
.ncl-closing-inner { max-width:800px; margin:auto; }
.ncl-closing h2 { font-size:clamp(30px,4vw,48px); }
.ncl-closing p { margin:24px auto 0; max-width:690px; color:#43515c; }

/* Breadcrumb */
.ncl-breadcrumb { padding:18px 0 0; color:var(--ncl-muted); font-size:13px; }
.ncl-breadcrumb ol { list-style:none; display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; }
.ncl-breadcrumb li:not(:last-child)::after { content:"/"; margin-left:6px; color:#a0a9b1; }
.ncl-breadcrumb a { color:inherit; text-decoration:none; }

/* Article */
.ncl-article-header { padding:56px 0 34px; }
.ncl-article-header h1 { max-width:920px; font-size:clamp(38px,5vw,62px); }
.ncl-article-deck { max-width:800px; margin:22px 0 0; color:#43515c; font-size:19px; }
.ncl-article-meta { margin-top:18px; color:var(--ncl-muted); font-size:13px; }
.ncl-article { padding:18px 0 90px; }
.ncl-entry-content { font-size:17px; }
.ncl-entry-content > *:first-child { margin-top:0; }
.ncl-entry-content h2 { margin:64px 0 20px; font-size:31px; line-height:1.4; letter-spacing:-.02em; }
.ncl-entry-content h3 { margin:42px 0 16px; font-size:24px; line-height:1.45; }
.ncl-entry-content p { margin:0 0 1.4em; }
.ncl-entry-content ul, .ncl-entry-content ol { margin:0 0 1.6em; padding-left:1.45em; }
.ncl-entry-content blockquote { margin:34px 0; padding:4px 0 4px 24px; border-left:3px solid var(--ncl-blue); color:#3f4d58; }
.ncl-entry-content figure { margin:40px 0; }
.ncl-entry-content figcaption { margin-top:10px; color:var(--ncl-muted); font-size:13px; }
.ncl-entry-content table { width:100%; border-collapse:collapse; margin:30px 0; font-size:15px; }
.ncl-entry-content th, .ncl-entry-content td { padding:13px 14px; border:1px solid var(--ncl-border); text-align:left; vertical-align:top; }
.ncl-entry-content th { background:var(--ncl-bg-soft); }
.ncl-table-scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.ncl-table-hint { display:none; color:var(--ncl-muted); font-size:12px; }

/* Article components */
.ncl-quick-answer, .ncl-good-to-know, .ncl-nz-context, .ncl-real-cost, .ncl-compare, .ncl-next-question-box {
  margin:34px 0; padding:26px 28px; border:1px solid var(--ncl-border); border-radius:var(--ncl-radius); background:var(--ncl-bg-soft);
}
.ncl-quick-answer::before, .ncl-good-to-know::before, .ncl-nz-context::before, .ncl-real-cost::before, .ncl-compare::before {
  display:block; margin-bottom:10px; color:var(--ncl-blue); font-size:11px; font-weight:850; letter-spacing:.12em; text-transform:uppercase;
}
.ncl-quick-answer::before { content:"QUICK ANSWER"; }
.ncl-good-to-know::before { content:"GOOD TO KNOW"; }
.ncl-nz-context::before { content:"NZ CONTEXT"; }
.ncl-real-cost::before { content:"REAL COST"; }
.ncl-compare::before { content:"COMPARE"; }
.ncl-quick-answer > *:last-child, .ncl-good-to-know > *:last-child, .ncl-nz-context > *:last-child, .ncl-real-cost > *:last-child, .ncl-compare > *:last-child { margin-bottom:0; }
.ncl-toc { margin:34px 0 42px; border:1px solid var(--ncl-border); border-radius:var(--ncl-radius); background:#fff; overflow:hidden; }
.ncl-toc summary { cursor:pointer; padding:20px 24px; font-weight:800; }
.ncl-toc > div { padding:0 24px 22px; }

/* Article footer journey */
.ncl-article-journey { border-top:1px solid var(--ncl-border); padding-top:44px; margin-top:64px; }
.ncl-next-question { position:relative; padding:34px; border-radius:18px; background:var(--ncl-text); color:#fff; }
.ncl-next-question .ncl-eyebrow { color:#8fd2f3; }
.ncl-next-question h2 { margin:0; font-size:28px; line-height:1.4; }
.ncl-next-question a { display:inline-flex; margin-top:20px; color:#fff; font-weight:800; }
.ncl-next-question > a.ncl-next-question-hit { position:absolute; inset:0; z-index:2; display:block; margin:0; border-radius:inherit; font-size:0; color:transparent; }
.ncl-next-question > a.ncl-next-question-hit:focus-visible { outline:3px solid #8fd2f3; outline-offset:4px; }
.ncl-next-question .ncl-next-question-cta { display:inline-flex; margin-top:20px; color:#fff; font-weight:800; pointer-events:none; }
.ncl-explore-more { margin-top:38px; }
.ncl-explore-more h2 { font-size:20px; }
.ncl-related-list { list-style:none; margin:18px 0 0; padding:0; border-top:1px solid var(--ncl-border); }
.ncl-related-list li { border-bottom:1px solid var(--ncl-border); }
.ncl-related-list a { min-height:58px; display:flex; align-items:center; justify-content:space-between; gap:20px; color:var(--ncl-text); font-weight:700; text-decoration:none; }
.ncl-related-list a::after { content:"→"; color:var(--ncl-blue); }
.ncl-back-hub { margin-top:30px; }

/* Hubs / archives */
.ncl-hub-hero { padding:64px 0 50px; }
.ncl-hub-hero h1 { font-size:clamp(40px,5vw,62px); }
.ncl-hub-intro { max-width:760px; margin:20px 0 0; color:#42505b; font-size:18px; }
.ncl-hub-map { padding:54px 0 var(--ncl-space-section); background:var(--ncl-bg-soft); }
.ncl-hub-topics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.ncl-hub-topic { padding:26px; min-height:160px; border:1px solid var(--ncl-border); border-radius:var(--ncl-radius); background:#fff; }
.ncl-hub-topic small { color:var(--ncl-blue); font-size:11px; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.ncl-hub-topic h2 { margin:10px 0 0; font-size:21px; }
.ncl-hub-topic p { margin:10px 0 0; color:var(--ncl-muted); font-size:14px; }
.ncl-list-section { padding:var(--ncl-space-section) 0; }
.ncl-list-stack { margin-top:34px; border-top:1px solid var(--ncl-border); }
.ncl-list-item { display:grid; grid-template-columns:160px minmax(0,1fr); gap:28px; padding:28px 0; border-bottom:1px solid var(--ncl-border); }
.ncl-list-item__meta { color:var(--ncl-muted); font-size:13px; }
.ncl-list-item h2 { margin:0; font-size:23px; line-height:1.45; }
.ncl-list-item h2 a { color:var(--ncl-text); text-decoration:none; }
.ncl-list-item p { margin:10px 0 0; color:var(--ncl-muted); font-size:15px; }
.ncl-pagination { margin-top:36px; }
.ncl-pagination .nav-links { display:flex; flex-wrap:wrap; gap:8px; }
.ncl-pagination a, .ncl-pagination span { min-width:42px; min-height:42px; display:grid; place-items:center; padding:8px; border:1px solid var(--ncl-border); border-radius:8px; text-decoration:none; }
.ncl-pagination .current { background:var(--ncl-text); border-color:var(--ncl-text); color:#fff; }

/* Search / 404 / pages */
.ncl-page-header { padding:64px 0 34px; }
.ncl-page-header h1 { font-size:clamp(38px,5vw,58px); }
.ncl-search-form { display:flex; max-width:680px; margin-top:28px; }
.ncl-search-form input[type="search"] { flex:1; min-width:0; min-height:50px; padding:11px 16px; border:1px solid var(--ncl-border); border-radius:10px 0 0 10px; }
.ncl-search-form button { min-height:50px; padding:11px 20px; border:0; border-radius:0 10px 10px 0; background:var(--ncl-blue); color:#fff; font-weight:800; cursor:pointer; }

/* Footer */
.ncl-site-footer { border-top:1px solid var(--ncl-border); background:#fff; }
.ncl-footer-inner { min-height:150px; display:flex; align-items:center; justify-content:space-between; gap:30px; color:var(--ncl-muted); font-size:14px; }
.ncl-footer-nav ul { display:flex; flex-wrap:wrap; gap:16px; list-style:none; margin:0; padding:0; }
.ncl-footer-nav a { color:inherit; text-decoration:none; }


/* v2.0.2 — desktop hero and closing refinement */
@media (min-width: 1041px) {
  .ncl-hero-grid {
    grid-template-columns: minmax(0, 1.42fr) minmax(360px, .72fr);
    gap: clamp(38px, 3.6vw, 54px);
  }
  .ncl-hero h1 {
    max-width: none;
    font-size: clamp(46px, 4vw, 58px);
    line-height: 1.16;
    letter-spacing: -.052em;
  }
  .ncl-hero-line { white-space: nowrap; }
  .ncl-hero-visual { min-height: 470px; }
  .ncl-closing-inner { max-width: 980px; }
  .ncl-closing h2 {
    font-size: clamp(36px, 3.35vw, 46px);
    line-height: 1.35;
    letter-spacing: -.035em;
  }
  .ncl-closing-line { display: block; white-space: nowrap; }
}

/* Responsive */
@media (max-width: 1040px) {
  /* v2.9.5 — Mobile Navigation Final Fix: true viewport overlay with independent scrolling. */
  body.ncl-menu-open { overflow: hidden; }
  .ncl-primary-nav {
    display:none;
    position:fixed;
    z-index:40;
    left:0;
    right:0;
    top:88px;
    bottom:0;
    margin-left:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    background:#fff;
    border-top:1px solid var(--ncl-border);
    border-bottom:0;
  }
  .ncl-primary-nav.is-open { display:block; }
  .ncl-primary-nav ul { display:block; padding:20px 24px 34px; }
  .ncl-primary-nav li { border-bottom:1px solid var(--ncl-border); }
  .ncl-primary-nav a { min-height:58px; display:flex; align-items:center; font-size:15px; }
  .ncl-menu-toggle { display:grid; }
  .ncl-hero-grid { grid-template-columns:1fr 390px; gap:48px; }
  .ncl-topic-list--5 { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width: 780px) {
  body { font-size:16px; line-height:1.82; }
  .ncl-shell, .ncl-content-shell { width:min(calc(100% - 36px), var(--ncl-max-width)); }
  .ncl-header-inner { min-height:70px; gap:8px; }
  .ncl-primary-nav { top:70px; }
  .ncl-brand { font-size:21px; }
  .ncl-hero { padding:58px 0 70px; }
  .ncl-hero-grid { grid-template-columns:1fr; gap:42px; }
  .ncl-hero h1 { font-size:clamp(38px,11vw,50px); line-height:1.23; }
  .ncl-hero-kicker { margin-top:24px; font-size:18px; }
  .ncl-hero-copy { font-size:16px; }
  .ncl-hero-actions { align-items:stretch; flex-direction:column; margin-top:28px; }
  .ncl-button { width:100%; min-height:52px; }
  .ncl-hero-actions .ncl-link-arrow { min-height:44px; justify-content:center; }
  .ncl-hero-visual { min-height:300px; border-radius:22px; }
  .ncl-horizon-label { left:22px; right:22px; bottom:22px; }
  .ncl-horizon-label strong { font-size:22px; }
  .ncl-section { padding:70px 0; }
  .ncl-section h2 { font-size:32px; }
  .ncl-section-lead { font-size:16px; }
  .ncl-topic-list, .ncl-topic-list--5 { grid-template-columns:1fr; gap:0; border-top:1px solid var(--ncl-border); }
  .ncl-topic-card, .ncl-section:not(.ncl-section--soft) .ncl-topic-card { min-height:62px; padding:16px 2px; border:0; border-bottom:1px solid var(--ncl-border); border-radius:0; background:transparent; flex-direction:row; align-items:center; gap:18px; }
  .ncl-topic-card small { display:none; }
  .ncl-topic-card strong { font-size:16px; }
  .ncl-topic-card strong::after { content:" →"; color:var(--ncl-blue); }
  .ncl-destination-strip { grid-template-columns:1fr; gap:12px; }
  .ncl-destination-card { min-height:170px; }
  .ncl-post-grid { grid-template-columns:1fr; }
  .ncl-closing { text-align:left; }
  .ncl-closing-line { display:inline; white-space:normal; }
  .ncl-closing-line + .ncl-closing-line::before { content:" "; }
  .ncl-hub-hero { padding:50px 0 38px; }
  .ncl-hub-topics { grid-template-columns:1fr; }
  .ncl-list-item { grid-template-columns:1fr; gap:6px; }
  .ncl-article-header { padding:42px 0 28px; }
  .ncl-article-header h1 { font-size:clamp(34px,10vw,46px); }
  .ncl-article-deck { font-size:17px; }
  .ncl-entry-content h2 { margin-top:52px; font-size:27px; }
  .ncl-entry-content h3 { font-size:22px; }
  .ncl-quick-answer, .ncl-good-to-know, .ncl-nz-context, .ncl-real-cost, .ncl-compare, .ncl-next-question-box { margin-left:-2px; margin-right:-2px; padding:22px; }
  .ncl-toc summary { padding:18px 20px; }
  .ncl-toc > div { padding:0 20px 20px; }
  .ncl-next-question { padding:26px 22px; }
  .ncl-table-hint { display:block; }
  .ncl-footer-inner { min-height:170px; flex-direction:column; justify-content:center; align-items:flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition:none !important; animation:none !important; }
}


/* v2.0.3 — hero breathing room and intentional visual-copy line break */
@media (min-width: 1041px) {
  .ncl-hero-grid {
    grid-template-columns: minmax(0, 1.38fr) minmax(360px, .72fr);
    gap: clamp(54px, 4.8vw, 72px);
  }
  .ncl-hero h1 {
    font-size: clamp(44px, 3.72vw, 54px);
  }
  .ncl-horizon-label strong {
    max-width: 330px;
  }
}

.ncl-horizon-copy-line { display:block; }

/* v2.1.0 — visual storytelling layer */
:root { --ncl-ocean:#086d94; --ncl-ocean-deep:#064a68; --ncl-sky:#dff2f8; --ncl-sand:#f7f4ef; }
.ncl-photo-slot { isolation:isolate; }
.ncl-photo-slot::before { content:""; position:absolute; inset:0; z-index:-2; background:linear-gradient(145deg,#dff2f8 0%,#8ec8d6 38%,#14789b 68%,#064a68 100%); }
.ncl-photo-slot::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,transparent 35%,rgba(3,31,45,.08) 55%,rgba(3,31,45,.68) 100%); }
.ncl-photo-slot__note { position:absolute; top:28px; right:28px; z-index:2; color:rgba(255,255,255,.9); font-size:10px; font-weight:850; letter-spacing:.16em; }
.ncl-hero-visual { background:none; }
.ncl-hero-visual::before { z-index:0; }
.ncl-hero-visual::after { z-index:0; inset:auto -12% -18% 18%; width:94%; height:48%; background:rgba(255,255,255,.10); }
.ncl-horizon-label { z-index:3; }
.ncl-destination-card { min-height:310px; background:none !important; flex-direction:column; align-items:flex-start; justify-content:flex-end; gap:5px; transition:transform .22s ease,box-shadow .22s ease; }
.ncl-destination-card:hover { transform:translateY(-4px); box-shadow:0 18px 40px rgba(23,33,43,.14); }
.ncl-destination-card::after { inset:0; height:auto; border-radius:0; background:linear-gradient(180deg,transparent 38%,rgba(4,35,48,.72) 100%); z-index:0; }
.ncl-photo-slot--south::before { background:linear-gradient(150deg,#e6f1e8,#93bca7 42%,#477f70 72%,#244f49); }
.ncl-photo-slot--fiordland::before { background:linear-gradient(150deg,#e3edf3,#8ca9b9 38%,#4d7183 68%,#263f4d); }
.ncl-card-kicker,.ncl-card-arrow,.ncl-destination-card strong { position:relative; z-index:2; }
.ncl-card-kicker { color:rgba(255,255,255,.82); font-size:10px; font-weight:850; letter-spacing:.14em; }
.ncl-card-arrow { color:rgba(255,255,255,.92); font-size:13px; font-weight:750; }
.ncl-journey-prompt { margin:32px 0 -18px; color:var(--ncl-blue); font-size:13px; font-weight:800; letter-spacing:.02em; }
.ncl-choice-grid .ncl-topic-card { position:relative; overflow:hidden; }
.ncl-choice-grid .ncl-topic-card::after { content:"→"; position:absolute; right:20px; bottom:18px; color:var(--ncl-blue); opacity:.65; }
.ncl-experience-grid { display:grid; grid-template-columns:1.25fr .9fr; gap:18px; margin-top:40px; }
.ncl-experience-feature { position:relative; min-height:420px; padding:34px; border-radius:22px; overflow:hidden; color:#fff; text-decoration:none; display:flex; flex-direction:column; justify-content:flex-end; align-items:flex-start; }
.ncl-experience-feature:hover { color:#fff; }
.ncl-experience-feature strong { max-width:590px; margin:8px 0 12px; font-size:clamp(28px,3vw,40px); line-height:1.35; letter-spacing:-.025em; }
.ncl-photo-slot--sea::before { background:linear-gradient(155deg,#e6f6fb 0%,#91cfdd 34%,#2584a4 58%,#07516f 100%); }
.ncl-experience-links { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.ncl-experience-links a { min-height:200px; padding:24px; border:1px solid var(--ncl-border); border-radius:18px; background:#fff; color:var(--ncl-text); text-decoration:none; display:flex; flex-direction:column; justify-content:space-between; transition:transform .18s ease,box-shadow .18s ease; }
.ncl-experience-links a:hover { transform:translateY(-2px); box-shadow:0 12px 30px rgba(23,33,43,.06); }
.ncl-experience-links small { color:var(--ncl-blue); font-size:10px; font-weight:850; letter-spacing:.12em; }
.ncl-experience-links strong { font-size:18px; }
.ncl-closing {
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:#eef6f8 url("assets/images/ncl-closing-horizon.webp") center 62% / cover no-repeat;
}
.ncl-closing::before {
  content:"";
  position:absolute; inset:0; z-index:0;
  background:linear-gradient(180deg,rgba(248,250,251,.94) 0%,rgba(248,250,251,.82) 42%,rgba(238,247,249,.70) 100%);
}
.ncl-closing::after {
  content:"";
  position:absolute; left:0; right:0; bottom:0; height:1px; z-index:1;
  background:rgba(11,124,193,.18);
}
.ncl-closing-inner { position:relative; z-index:2; }
.ncl-closing .ncl-eyebrow { color:#315f78; }

@media (max-width:780px) {
  body { font-size:17px; line-height:1.82; }
  .ncl-shell,.ncl-content-shell { width:min(calc(100% - 40px),var(--ncl-max-width)); }
  .ncl-hero { padding:48px 0 64px; }
  .ncl-hero-grid { gap:34px; }
  .ncl-hero h1 { font-size:clamp(34px,9.2vw,42px); line-height:1.25; letter-spacing:-.045em; }
  .ncl-hero-line { display:inline; white-space:normal; }
  .ncl-hero-line:first-child::after { content:"\A"; white-space:pre; }
  .ncl-hero-kicker { font-size:18px; line-height:1.65; }
  .ncl-hero-copy { font-size:17px; line-height:1.85; }
  .ncl-hero-actions { gap:6px; }
  .ncl-hero-visual { min-height:340px; border-radius:24px; }
  .ncl-photo-slot__note { top:20px; right:20px; }
  .ncl-section { padding:64px 0; }
  .ncl-section h2 { font-size:30px; line-height:1.35; }
  .ncl-section-lead { font-size:17px; line-height:1.8; }
  .ncl-topic-card,.ncl-section:not(.ncl-section--soft) .ncl-topic-card { min-height:58px; padding:15px 2px; }
  .ncl-topic-card strong { font-size:16.5px; }
  .ncl-choice-grid .ncl-topic-card::after { display:none; }
  .ncl-journey-prompt { margin:28px 0 8px; }
  .ncl-destination-card { min-height:210px; padding:22px; border-radius:16px; }
  .ncl-destination-card strong { font-size:21px; }
  .ncl-experience-grid { grid-template-columns:1fr; gap:14px; }
  .ncl-experience-feature { min-height:310px; padding:24px; }
  .ncl-experience-feature strong { font-size:27px; }
  .ncl-experience-links { grid-template-columns:1fr; gap:0; border-top:1px solid var(--ncl-border); }
  .ncl-experience-links a { min-height:60px; padding:16px 2px; border:0; border-bottom:1px solid var(--ncl-border); border-radius:0; background:transparent; flex-direction:row; align-items:center; gap:18px; }
  .ncl-experience-links a small { display:none; }
  .ncl-experience-links a strong { font-size:16.5px; }
  .ncl-experience-links a strong::after { content:" →"; color:var(--ncl-blue); }
  .ncl-closing { text-align:left; }
  .ncl-closing h2 { font-size:29px; line-height:1.42; }
  .ncl-closing p { font-size:16px; }
}

/* v2.1.1 — Hero Photography Test */
.ncl-photo-slot--hero::before {
  background-image: url('assets/images/ncl-hero-fiordland-cruise.webp');
  background-size: cover;
  background-position: 58% center;
}
.ncl-photo-slot--hero::after {
  inset: 0;
  width: auto;
  height: auto;
  background: linear-gradient(180deg, rgba(3,31,45,.02) 35%, rgba(3,31,45,.12) 58%, rgba(3,31,45,.66) 100%);
}
@media (min-width:1041px) {
  .ncl-hero-grid { grid-template-columns:minmax(0,1.18fr) minmax(470px,.92fr); gap:clamp(48px,4.2vw,68px); }
  .ncl-hero-visual { min-height:500px; }
}
@media (max-width:780px) {
  .ncl-photo-slot--hero::before { background-position:60% center; }
  .ncl-hero-visual { min-height:260px; aspect-ratio:16/9; }
}


/* v2.1.2 — Hero Image Fix
   Reset legacy decorative pseudo-element geometry/blur so the generated
   photography fills the full visual card crisply. */
.ncl-photo-slot--hero::before {
  inset: 0;
  width: auto;
  height: auto;
  border-radius: 0;
  filter: none;
  transform: none;
  opacity: 1;
  background-image: url('assets/images/ncl-hero-fiordland-cruise.webp');
  background-repeat: no-repeat;
  background-size: cover;
  background-position: 58% center;
}
.ncl-photo-slot--hero::after {
  inset: 0;
  width: auto;
  height: auto;
  border-radius: 0;
  filter: none;
  transform: none;
  background: linear-gradient(180deg, rgba(3,31,45,0) 32%, rgba(3,31,45,.04) 55%, rgba(3,31,45,.48) 100%);
}
@media (max-width: 780px) {
  .ncl-photo-slot--hero::before {
    background-position: 61% center;
  }
}


/* v2.1.3 — Hero layout + image optimisation
   Keep the approved two-line desktop headline clear of the photography,
   while using a lightweight WebP hero asset. */
@media (min-width: 1180px) {
  .ncl-hero-grid {
    grid-template-columns: minmax(0, 760px) minmax(0, 430px);
    justify-content: space-between;
    gap: 70px;
  }
  .ncl-hero h1 {
    max-width: 760px;
    font-size: clamp(46px, 3.55vw, 51px);
    line-height: 1.17;
  }
  .ncl-hero-visual {
    min-height: 470px;
  }
}

@media (min-width: 1041px) and (max-width: 1179px) {
  .ncl-hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(380px, 42%);
    gap: 38px;
  }
  .ncl-hero h1 {
    font-size: 44px;
  }
  .ncl-hero-line {
    white-space: normal;
  }
}


/* v2.2.0 — AI Destination Photography */
.ncl-photo-slot--auckland::before {
  background-image:url('assets/images/ncl-destination-auckland.webp');
  background-size:cover; background-position:center; background-repeat:no-repeat;
}
.ncl-photo-slot--south::before {
  background-image:url('assets/images/ncl-destination-south-island.webp');
  background-size:cover; background-position:center; background-repeat:no-repeat;
}
.ncl-photo-slot--fiordland::before {
  background-image:url('assets/images/ncl-destination-fiordland.webp');
  background-size:cover; background-position:center; background-repeat:no-repeat;
}


/* v2.2.1 — Destination Visual Polish
   Removes source-composite artefacts, gives photography more breathing room,
   and tunes crop/overlay balance for the three adopted destination cards. */
@media (min-width: 781px) {
  .ncl-destination-card {
    min-height: 340px;
  }
}
.ncl-photo-slot--auckland::before {
  background-position: 50% 50%;
}
.ncl-photo-slot--south::before {
  background-position: 50% 52%;
}
.ncl-photo-slot--fiordland::before {
  background-position: 50% 48%;
}
.ncl-destination-card::after {
  background: linear-gradient(180deg, rgba(3,31,45,0) 34%, rgba(3,31,45,.10) 56%, rgba(3,31,45,.76) 100%);
}
.ncl-destination-card .ncl-card-kicker {
  margin-bottom: 2px;
}
.ncl-destination-card .ncl-card-arrow {
  margin-top: 2px;
}


/* v2.3.0 — Cruise Experience photography */
.ncl-photo-slot--sea::before {
  background-image:url('assets/images/ncl-experience-sea-day.webp');
  background-size:cover;
  background-position:center 48%;
  background-repeat:no-repeat;
}
.ncl-photo-slot--sea::after {
  background:linear-gradient(180deg,rgba(3,31,45,.02) 28%,rgba(3,31,45,.16) 58%,rgba(3,31,45,.82) 100%);
}
.ncl-experience-thumb {
  display:block;
  width:100%;
  aspect-ratio:16/9;
  margin:12px 0 18px;
  border-radius:12px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.ncl-experience-thumb--cabin { background-image:url('assets/images/ncl-experience-cabin.webp'); }
.ncl-experience-thumb--food { background-image:url('assets/images/ncl-experience-food.webp'); }
.ncl-experience-thumb--port { background-image:url('assets/images/ncl-experience-port-day.webp'); }
.ncl-experience-thumb--my { background-image:url('assets/images/ncl-experience-my-cruise-life.webp'); }
.ncl-experience-links a { justify-content:flex-start; }
.ncl-experience-links a strong { margin-top:auto; }
@media (max-width:780px) {
  .ncl-experience-thumb { display:none; }
}


/* v2.5.0 — Responsive & Final Visual Polish
   Mobile QA pass: clearer closing photography with the cruise ship retained,
   more comfortable tap targets, refined mobile typography, and Sea Day copy. */
@media (max-width: 780px) {
  .ncl-shell,
  .ncl-content-shell {
    width: min(calc(100% - 32px), var(--ncl-max-width));
  }

  .ncl-hero h1 {
    font-size: clamp(32px, 8.6vw, 39px);
    line-height: 1.24;
    letter-spacing: -.04em;
  }
  .ncl-hero-kicker { font-size: 17px; line-height: 1.62; }
  .ncl-hero-copy,
  .ncl-section-lead { font-size: 16.5px; line-height: 1.82; }

  .ncl-topic-card,
  .ncl-section:not(.ncl-section--soft) .ncl-topic-card {
    min-height: 66px;
    padding: 18px 2px;
  }
  .ncl-topic-card strong { font-size: 16.5px; }

  .ncl-experience-feature {
    min-height: 320px;
    padding: 22px;
  }
  .ncl-experience-feature strong {
    max-width: 92%;
    font-size: clamp(24px, 7.2vw, 28px);
    line-height: 1.34;
  }
  .ncl-experience-links a {
    min-height: 66px;
    padding: 18px 2px;
  }

  .ncl-closing {
    min-height: 300px;
    display: flex;
    align-items: center;
    background-position: 72% 58%;
  }
  .ncl-closing::before {
    background: linear-gradient(180deg,
      rgba(248,250,251,.80) 0%,
      rgba(248,250,251,.68) 44%,
      rgba(238,247,249,.56) 100%);
  }
  .ncl-closing h2 {
    max-width: 94%;
    font-size: 27px;
    line-height: 1.4;
  }
  .ncl-closing p {
    max-width: 94%;
    font-size: 15.5px;
    line-height: 1.75;
    color: #354652;
  }
}

@media (max-width: 430px) {
  .ncl-closing {
    /* Keep the ship on the right edge while preserving open water behind copy. */
    background-position: 78% 58%;
  }
}

/* v2.6.0 Content System QA */
.ncl-qa-preview .ncl-article-header { border-bottom:1px solid var(--ncl-border); }
.ncl-qa-preview .ncl-entry-content a { text-underline-offset:3px; }
.ncl-qa-preview .ncl-toc a { color:var(--ncl-text); }
.ncl-qa-preview .ncl-toc li + li { margin-top:8px; }
.ncl-qa-preview .ncl-qa-journey h2 { margin-top:0; }
@media (max-width: 720px) {
  .ncl-qa-preview .ncl-table-hint { display:block; }
  .ncl-qa-preview .ncl-table-scroll table { min-width:620px; }
}


/* v2.6.1 — Article Template Final Polish
   Quieter editorial title scale, Japanese reading rhythm, refined components,
   and robust responsive comparison tables. */
.ncl-article-header {
  padding-top: 52px;
  padding-bottom: 38px;
}
.ncl-article-header h1 {
  max-width: 860px;
  font-size: clamp(36px, 4.15vw, 52px);
  line-height: 1.34;
  letter-spacing: -.018em;
  font-weight: 720;
}
.ncl-article-deck {
  max-width: 760px;
  margin-top: 20px;
  font-size: 18px;
  line-height: 1.82;
}
.ncl-entry-content {
  font-size: 17px;
  line-height: 1.95;
}
.ncl-entry-content p { margin-bottom: 1.55em; }
.ncl-entry-content h2 {
  margin-top: 68px;
  margin-bottom: 20px;
  font-size: 30px;
  line-height: 1.48;
  letter-spacing: -.012em;
}
.ncl-entry-content h3 {
  margin-top: 44px;
  margin-bottom: 16px;
  font-size: 23px;
  line-height: 1.52;
  letter-spacing: -.008em;
}
.ncl-quick-answer, .ncl-good-to-know, .ncl-nz-context, .ncl-real-cost, .ncl-compare, .ncl-next-question-box {
  margin: 36px 0;
  padding: 25px 28px 26px;
  border-color: #d9e1e5;
  border-radius: 10px;
}
.ncl-quick-answer::before, .ncl-good-to-know::before, .ncl-nz-context::before, .ncl-real-cost::before, .ncl-compare::before {
  margin-bottom: 11px;
  font-size: 10px;
  letter-spacing: .15em;
}
.ncl-toc {
  margin-top: 36px;
  margin-bottom: 46px;
  border-radius: 10px;
}
.ncl-toc summary { padding: 20px 24px; }
.ncl-toc > div { padding: 0 24px 24px; }
.ncl-table-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}
.ncl-table-scroll table { margin-top: 0; }
.ncl-table-hint { margin: 0 0 8px; }

@media (max-width: 720px) {
  .ncl-article-header {
    padding-top: 34px;
    padding-bottom: 26px;
  }
  .ncl-article-header h1 {
    max-width: 100%;
    font-size: clamp(28px, 8.25vw, 34px);
    line-height: 1.38;
    letter-spacing: -.012em;
    font-weight: 710;
  }
  .ncl-article-deck {
    margin-top: 16px;
    font-size: 16px;
    line-height: 1.85;
  }
  .ncl-article-meta { margin-top: 14px; }
  .ncl-article { padding-top: 14px; }
  .ncl-entry-content {
    font-size: 16px;
    line-height: 1.92;
  }
  .ncl-entry-content p { margin-bottom: 1.5em; }
  .ncl-entry-content h2 {
    margin-top: 48px;
    margin-bottom: 16px;
    font-size: 24px;
    line-height: 1.48;
  }
  .ncl-entry-content h3 {
    margin-top: 34px;
    margin-bottom: 13px;
    font-size: 20px;
    line-height: 1.5;
  }
  .ncl-quick-answer, .ncl-good-to-know, .ncl-nz-context, .ncl-real-cost, .ncl-compare, .ncl-next-question-box {
    margin: 28px 0;
    padding: 19px 18px 20px;
  }
  .ncl-toc { margin: 28px 0 38px; }
  .ncl-toc summary { min-height: 52px; padding: 15px 17px; }
  .ncl-toc > div { padding: 0 17px 18px; }
  .ncl-toc li + li { margin-top: 9px; }
  .ncl-table-hint { display: block; margin-top: -2px; }
  .ncl-table-scroll {
    margin-right: 0;
    padding-bottom: 6px;
  }
  .ncl-table-scroll table {
    min-width: 620px;
    font-size: 14px;
  }
  .ncl-entry-content th, .ncl-entry-content td { padding: 11px 12px; }
  .ncl-next-question { padding: 25px 20px; }
  .ncl-next-question h2 { font-size: 23px; line-height: 1.48; }
  .ncl-related-list a { min-height: 60px; }
}


/* v2.6.4 — Desktop Article Header aligned to reading column
   Header, breadcrumb and body now share the same 760px reading axis.
   Mobile remains unchanged. */
@media (min-width: 721px) {
  .ncl-article-header.ncl-shell,
  .ncl-breadcrumb.ncl-shell {
    width: min(calc(100% - 48px), var(--ncl-content-width));
    margin-inline: auto;
  }
  .ncl-article-header h1,
  .ncl-article-deck {
    max-width: var(--ncl-content-width);
  }
}


/* Category Hub QA — v2.7.1 */
.ncl-hub-qa .ncl-hub-hero { padding-bottom:58px; }
.ncl-hub-qa .ncl-hub-hero .ncl-content-shell { width:min(calc(100% - 48px), 860px); }
.ncl-hub-qa .ncl-hub-hero h1 { font-size:clamp(40px,4.5vw,56px); }
.ncl-hub-qa .ncl-hub-hero .ncl-hub-intro { max-width:760px; }
.ncl-hub-qa-note { margin:20px 0 0; color:var(--ncl-muted); font-size:13px; letter-spacing:.04em; }
.ncl-hub-qa-section { padding:72px 0; }
.ncl-hub-qa-section--soft { background:var(--ncl-bg-soft); }
.ncl-hub-qa-head { max-width:760px; margin-bottom:30px; }
.ncl-hub-qa-head h2 { margin:0; font-size:32px; line-height:1.35; letter-spacing:-.02em; }
.ncl-hub-qa-head p { margin:12px 0 0; color:var(--ncl-muted); }
.ncl-hub-start-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.ncl-hub-start-card { display:flex; flex-direction:column; min-height:220px; padding:26px; border:1px solid var(--ncl-border); border-radius:var(--ncl-radius); background:#fff; color:var(--ncl-text); text-decoration:none; }
.ncl-hub-start-card small,.ncl-hub-stage small { color:var(--ncl-blue); font-size:11px; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.ncl-hub-start-card h3 { margin:14px 0 0; font-size:22px; line-height:1.45; }
.ncl-hub-start-card p { margin:12px 0 22px; color:var(--ncl-muted); font-size:15px; }
.ncl-hub-start-card span { margin-top:auto; color:var(--ncl-blue); font-weight:750; font-size:14px; }
.ncl-hub-stage-list { border-top:1px solid var(--ncl-border); }
.ncl-hub-stage { display:grid; grid-template-columns:170px minmax(0,1fr); gap:28px; padding:28px 0; border-bottom:1px solid var(--ncl-border); }
.ncl-hub-stage h3 { margin:0 0 10px; font-size:22px; }
.ncl-hub-question-links { display:grid; gap:0; }
.ncl-hub-question-links a { display:flex; justify-content:space-between; gap:18px; padding:11px 0; border-top:1px solid #edf0f2; color:var(--ncl-text); font-weight:650; text-decoration:none; }
.ncl-hub-question-links a:first-child { border-top:0; }
.ncl-hub-question-links a::after { content:'→'; color:var(--ncl-blue); }
.ncl-hub-nz-context { padding:30px; border:1px solid var(--ncl-border); border-left:3px solid var(--ncl-blue); border-radius:var(--ncl-radius); background:#fff; }
.ncl-hub-nz-context h2 { margin:8px 0 0; font-size:28px; }
.ncl-hub-nz-context p { max-width:780px; margin:14px 0 0; color:var(--ncl-muted); }
.ncl-hub-empty { padding:28px; border:1px solid var(--ncl-border); border-radius:var(--ncl-radius); background:#fff; color:var(--ncl-muted); }
@media (max-width:760px) {
  .ncl-hub-qa .ncl-hub-hero .ncl-content-shell { width:min(calc(100% - 32px), var(--ncl-content-width)); }
  .ncl-hub-qa .ncl-hub-hero { padding:42px 0 38px; }
  .ncl-hub-qa .ncl-hub-hero h1 { font-size:34px; }
  .ncl-hub-qa-section { padding:52px 0; }
  .ncl-hub-qa-head h2 { font-size:27px; }
  .ncl-hub-start-grid { grid-template-columns:1fr; gap:10px; }
  .ncl-hub-start-card { min-height:0; padding:20px; }
  .ncl-hub-start-card p { margin-bottom:16px; }
  .ncl-hub-stage { grid-template-columns:1fr; gap:10px; padding:24px 0; }
  .ncl-hub-question-links a { min-height:48px; align-items:center; }
  .ncl-hub-nz-context { padding:22px; }
}


/* Category Hub Final Polish — v2.7.1 */
.ncl-hub-context-topics { display:flex; flex-wrap:wrap; gap:8px; margin:20px 0 0; }
.ncl-hub-context-topic { display:inline-flex; align-items:center; min-height:34px; padding:7px 11px; border:1px solid var(--ncl-border); border-radius:999px; background:var(--ncl-bg-soft); color:#42505b; font-size:13px; font-weight:650; }
.ncl-hub-next-step { margin-top:38px; padding:30px 34px; border-radius:var(--ncl-radius); background:var(--ncl-text); color:#fff; }
.ncl-hub-next-step .ncl-eyebrow { color:#86d1ff; }
.ncl-hub-next-step h2 { max-width:720px; margin:9px 0 0; color:#fff; font-size:28px; line-height:1.4; letter-spacing:-.02em; }
.ncl-hub-next-step p { max-width:720px; margin:12px 0 0; color:#d8e0e6; }
.ncl-hub-next-step a { display:inline-flex; align-items:center; min-height:44px; margin-top:18px; color:#fff; font-weight:750; text-underline-offset:4px; }
@media (max-width: 720px) {
  .ncl-hub-qa-section { padding:50px 0; }
  .ncl-hub-stage { padding:22px 0; }
  .ncl-hub-question-links a { padding:12px 0; }
  .ncl-hub-nz-context { padding:22px 20px; }
  .ncl-hub-context-topics { gap:7px; margin-top:18px; }
  .ncl-hub-context-topic { min-height:32px; padding:6px 10px; font-size:12px; }
  .ncl-hub-next-step { margin-top:30px; padding:24px 20px; }
  .ncl-hub-next-step h2 { font-size:24px; }
}


/* v2.7.2 — Category Hub Header Alignment Fix
   Desktop hub header and breadcrumb align to the same wide shell as the hub sections.
   Mobile remains unchanged. */
@media (min-width: 761px) {
  .ncl-hub-qa > .ncl-breadcrumb.ncl-shell {
    width: min(calc(100% - 48px), var(--ncl-max-width));
    margin-inline: auto;
  }
  .ncl-hub-qa .ncl-hub-hero .ncl-content-shell {
    width: min(calc(100% - 48px), var(--ncl-max-width));
    margin-inline: auto;
  }
  .ncl-hub-qa .ncl-hub-hero .ncl-hub-intro,
  .ncl-hub-qa .ncl-hub-hero h1 {
    max-width: 760px;
  }
}


/* v2.8.0 — Category Hub Visual Completion
   Two visual transition points: Hub hero + Knowledge Map.
   Existing information architecture and mobile flow remain intact. */
.ncl-hub-qa .ncl-hub-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 430px;
  display: flex;
  align-items: center;
  padding: 78px 0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.94) 35%, rgba(255,255,255,.58) 58%, rgba(255,255,255,.08) 100%),
    url('assets/images/ncl-hero-fiordland-cruise.webp') center 56% / cover no-repeat;
}
.ncl-hub-qa .ncl-hub-hero::after {
  content:'';
  position:absolute;
  inset:auto 0 0;
  height:1px;
  background:rgba(23,33,43,.08);
  pointer-events:none;
}
.ncl-hub-qa .ncl-hub-hero .ncl-content-shell { position:relative; z-index:1; }
.ncl-hub-qa .ncl-hub-hero h1 { text-shadow:0 1px 0 rgba(255,255,255,.5); }
.ncl-hub-qa .ncl-hub-hero .ncl-hub-intro { color:#3f4d58; }

.ncl-hub-qa .ncl-hub-knowledge-visual {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:
    linear-gradient(180deg, rgba(236,247,251,.86) 0%, rgba(245,250,251,.78) 32%, rgba(255,255,255,.88) 100%),
    url('assets/images/ncl-destination-south-island.webp') center 48% / cover no-repeat;
}
.ncl-hub-qa .ncl-hub-knowledge-visual::before {
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg, rgba(255,255,255,.20), rgba(255,255,255,.02));
}
.ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head {
  max-width:780px;
  padding:24px 28px;
  margin:0 0 24px;
  border:1px solid rgba(255,255,255,.76);
  border-radius:var(--ncl-radius);
  background:rgba(255,255,255,.86);
  box-shadow:0 14px 40px rgba(23,33,43,.06);
  backdrop-filter:blur(6px);
}
.ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage-list {
  padding:8px 28px;
  border:1px solid rgba(255,255,255,.82);
  border-radius:var(--ncl-radius);
  background:rgba(255,255,255,.92);
  box-shadow:0 18px 50px rgba(23,33,43,.08);
  backdrop-filter:blur(8px);
}

@media (max-width:760px) {
  .ncl-hub-qa .ncl-hub-hero {
    min-height:0;
    display:block;
    padding:42px 0 220px;
    background:
      linear-gradient(180deg, rgba(255,255,255,.99) 0%, rgba(255,255,255,.94) 47%, rgba(255,255,255,.22) 70%, rgba(255,255,255,.03) 100%),
      url('assets/images/ncl-hero-fiordland-cruise.webp') 68% 100% / auto 245px no-repeat,
      #fff;
  }
  .ncl-hub-qa .ncl-hub-knowledge-visual {
    background:
      linear-gradient(180deg, rgba(239,248,250,.88), rgba(255,255,255,.91)),
      url('assets/images/ncl-destination-south-island.webp') center / cover no-repeat;
  }
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head {
    padding:20px;
    margin-bottom:18px;
    background:rgba(255,255,255,.90);
  }
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage-list {
    padding:0 18px;
    background:rgba(255,255,255,.94);
  }
}

/* v2.8.1 — Category Hub Visual Fidelity Fix
   Matches the approved visual direction: vivid hero, crisp starter cards,
   scenic knowledge-map transition, and photographic next-step finish. */
.ncl-hub-qa .ncl-hub-hero {
  min-height: 520px;
  padding: 0;
  align-items: stretch;
  background:
    linear-gradient(90deg, rgba(239,249,255,.97) 0%, rgba(239,249,255,.90) 31%, rgba(239,249,255,.42) 49%, rgba(239,249,255,.02) 72%),
    url('assets/images/ncl-hero-fiordland-cruise.webp') center 52% / cover no-repeat;
}
.ncl-hub-qa .ncl-hub-hero-inner { position:relative; min-height:520px; padding-top:34px; padding-bottom:48px; }
.ncl-hub-qa .ncl-hub-hero .ncl-breadcrumb { color:#52697a; font-size:13px; }
.ncl-hub-qa .ncl-hub-hero-copy { width:min(56%,760px); margin-top:64px; }
.ncl-hub-qa .ncl-hub-hero h1 { font-size:clamp(44px,4.2vw,64px); }
.ncl-hub-qa .ncl-hub-hero .ncl-hub-intro { max-width:650px; font-size:18px; color:#314554; }
.ncl-hub-qa .ncl-hub-script {
  position:absolute; top:82px; right:8%; z-index:1; transform:rotate(-5deg);
  color:#17354c; font-family:"Segoe Script","Bradley Hand",cursive; font-size:30px;
  line-height:1.05; text-align:center; opacity:.88; text-shadow:0 1px 0 rgba(255,255,255,.5);
}
.ncl-hub-qa .ncl-hub-script::after { content:''; display:block; width:130px; height:3px; margin:10px auto 0; background:#0b9ee5; transform:rotate(-4deg); }

.ncl-hub-qa .ncl-hub-qa-section--soft:first-of-type { background:linear-gradient(180deg,#fff 0%,#f7fafc 100%); }
.ncl-hub-qa .ncl-hub-start-grid { gap:22px; }
.ncl-hub-qa .ncl-hub-start-card { position:relative; min-height:230px; padding:28px 28px 26px 92px; box-shadow:0 12px 34px rgba(23,33,43,.045); }
.ncl-hub-qa .ncl-hub-start-icon { position:absolute; left:28px; top:30px; display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:#dff3ff; color:#087fc4; font-size:25px; font-weight:800; }
.ncl-hub-qa .ncl-hub-start-card h3 { font-size:23px; }

.ncl-hub-qa .ncl-hub-knowledge-visual {
  padding:72px 0 78px;
  background:
    linear-gradient(90deg,rgba(255,255,255,.05),rgba(255,255,255,.02)),
    url('assets/images/ncl-destination-south-island.webp') center 48% / cover no-repeat;
}
.ncl-hub-qa .ncl-hub-knowledge-visual::before { background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(4,63,82,.08)); }
.ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head { padding:0; margin:0 0 28px; border:0; background:transparent; box-shadow:none; backdrop-filter:none; }
.ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head h2,
.ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head p,
.ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head .ncl-eyebrow { color:#102432; text-shadow:0 1px 2px rgba(255,255,255,.72); }
.ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; padding:24px 30px; border:1px solid rgba(255,255,255,.92); background:rgba(255,255,255,.92); box-shadow:0 20px 55px rgba(14,52,69,.16); backdrop-filter:blur(10px); }
.ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage { display:block; padding:4px 26px 4px; border:0; border-left:1px solid #cfd9df; }
.ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage:first-child { border-left:0; padding-left:0; }
.ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage:last-child { padding-right:0; }
.ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-question-links a { min-height:48px; align-items:center; }

.ncl-hub-qa .ncl-hub-nz-context { box-shadow:0 10px 30px rgba(23,33,43,.035); }
.ncl-hub-qa .ncl-hub-next-step {
  position:relative; isolation:isolate; overflow:hidden; min-height:230px; padding:38px 40px;
  background:
    linear-gradient(90deg,rgba(10,27,40,.98) 0%,rgba(10,27,40,.92) 48%,rgba(10,27,40,.24) 100%),
    url('assets/images/ncl-closing-horizon.webp') center / cover no-repeat;
}
.ncl-hub-qa .ncl-hub-next-step h2 { max-width:760px; font-size:30px; }
.ncl-hub-qa .ncl-hub-next-step a { padding:10px 18px; border-radius:999px; background:#fff; color:#17212b; text-decoration:none; }
.ncl-hub-qa .ncl-hub-next-step::after { content:'Your Next\A Journey Awaits'; white-space:pre; position:absolute; right:8%; top:55px; color:#fff; font-family:"Segoe Script","Bradley Hand",cursive; font-size:28px; line-height:1.05; transform:rotate(-5deg); opacity:.9; }

@media (max-width:760px) {
  .ncl-hub-qa .ncl-hub-hero { min-height:0; padding:0; background:linear-gradient(180deg,rgba(239,249,255,.98) 0%,rgba(239,249,255,.90) 46%,rgba(239,249,255,.12) 70%),url('assets/images/ncl-hero-fiordland-cruise.webp') 67% 100% / auto 245px no-repeat,#eef9ff; }
  .ncl-hub-qa .ncl-hub-hero-inner { min-height:0; padding-top:18px; padding-bottom:225px; }
  .ncl-hub-qa .ncl-hub-hero-copy { width:100%; margin-top:34px; }
  .ncl-hub-qa .ncl-hub-hero h1 { font-size:34px; }
  .ncl-hub-qa .ncl-hub-script { display:none; }
  .ncl-hub-qa .ncl-hub-start-card { min-height:0; padding:20px 20px 20px 76px; }
  .ncl-hub-qa .ncl-hub-start-icon { left:18px; top:20px; width:42px; height:42px; font-size:21px; }
  .ncl-hub-qa .ncl-hub-knowledge-visual { padding:52px 0; background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.10)),url('assets/images/ncl-destination-south-island.webp') center / cover no-repeat; }
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head { padding:0; background:transparent; }
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage-list { grid-template-columns:1fr; padding:12px 18px; }
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage { padding:22px 0; border-left:0; border-top:1px solid #d8e1e6; }
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage:first-child { border-top:0; }
  .ncl-hub-qa .ncl-hub-next-step { min-height:260px; padding:28px 22px; background:linear-gradient(180deg,rgba(10,27,40,.96),rgba(10,27,40,.66)),url('assets/images/ncl-closing-horizon.webp') 70% center / cover no-repeat; }
  .ncl-hub-qa .ncl-hub-next-step::after { display:none; }
}

/* v2.8.2 — Category Hub Visual Fidelity / Responsive Completion
   Rebuilds the approved visual direction for both desktop and mobile:
   full photographic hero, vivid visual transition at Knowledge Map,
   clean text-only starter cards, and refined photographic CTA. */

/* HERO — full background image with controlled, non-overzoomed crops */
.ncl-hub-qa .ncl-hub-hero {
  min-height: 445px;
  padding: 0;
  background:
    linear-gradient(90deg, rgba(238,249,255,.96) 0%, rgba(238,249,255,.87) 34%, rgba(238,249,255,.47) 52%, rgba(238,249,255,.05) 76%),
    url('assets/images/ncl-hub-hero-desktop.webp') center center / cover no-repeat;
}
.ncl-hub-qa .ncl-hub-hero-inner {
  min-height: 445px;
  padding-top: 28px;
  padding-bottom: 42px;
}
.ncl-hub-qa .ncl-hub-hero-copy {
  width: min(55%, 720px);
  margin-top: 54px;
}
.ncl-hub-qa .ncl-hub-hero h1 {
  font-size: clamp(42px, 4vw, 60px);
  line-height: 1.18;
  letter-spacing: -.035em;
}
.ncl-hub-qa .ncl-hub-hero .ncl-hub-intro {
  max-width: 620px;
  margin-top: 18px;
  color: #263d4b;
  font-size: 17px;
  line-height: 1.75;
}
.ncl-hub-qa .ncl-hub-script {
  top: 72px;
  right: 7.2%;
  font-size: 27px;
}

/* START WITH THESE — remove meaningless decorative icons; editorial cards */
.ncl-hub-qa .ncl-hub-start-grid { gap: 20px; }
.ncl-hub-qa .ncl-hub-start-card {
  min-height: 215px;
  padding: 28px;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(23,33,43,.045);
}
.ncl-hub-qa .ncl-hub-start-icon { display: none !important; }
.ncl-hub-qa .ncl-hub-start-card small { display:block; margin-bottom: 8px; }
.ncl-hub-qa .ncl-hub-start-card h3 { margin-top: 0; font-size: 22px; }

/* KNOWLEDGE MAP — vivid photographic transition, correctly sized */
.ncl-hub-qa .ncl-hub-knowledge-visual {
  padding: 64px 0 70px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.05) 0%, rgba(255,255,255,.015) 100%),
    url('assets/images/ncl-hub-knowledge.webp') center center / cover no-repeat;
}
.ncl-hub-qa .ncl-hub-knowledge-visual::before {
  background: linear-gradient(180deg, rgba(225,247,255,.03), rgba(3,55,76,.04));
}
.ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head {
  max-width: 780px;
  margin-bottom: 24px;
}
.ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head h2,
.ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head p,
.ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head .ncl-eyebrow {
  color: #102432;
  text-shadow: 0 1px 3px rgba(255,255,255,.82);
}
.ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage-list {
  padding: 24px 28px;
  border-radius: 12px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 18px 46px rgba(14,52,69,.12);
  backdrop-filter: blur(7px);
}

/* NZ context and bottom CTA match the approved clean visual */
.ncl-hub-qa .ncl-hub-nz-context {
  border-radius: 12px;
  background: rgba(255,255,255,.97);
}
.ncl-hub-qa .ncl-hub-next-step {
  min-height: 225px;
  background:
    linear-gradient(90deg,rgba(10,27,40,.98) 0%,rgba(10,27,40,.91) 49%,rgba(10,27,40,.20) 100%),
    url('assets/images/ncl-closing-horizon.webp') center center / cover no-repeat;
}

@media (max-width: 760px) {
  /* Mobile hero is a genuine full-section background, not an image strip below the copy. */
  .ncl-hub-qa .ncl-hub-hero {
    min-height: 630px;
    background:
      linear-gradient(180deg,
        rgba(236,249,255,.94) 0%,
        rgba(236,249,255,.88) 30%,
        rgba(236,249,255,.68) 51%,
        rgba(236,249,255,.16) 74%,
        rgba(236,249,255,.03) 100%),
      url('assets/images/ncl-hub-hero-mobile.webp') center center / cover no-repeat;
  }
  .ncl-hub-qa .ncl-hub-hero-inner {
    min-height: 630px;
    padding: 16px 16px 26px;
  }
  .ncl-hub-qa .ncl-hub-hero-copy {
    width: 100%;
    margin-top: 28px;
  }
  .ncl-hub-qa .ncl-hub-hero h1 {
    max-width: 330px;
    font-size: 34px;
    line-height: 1.22;
  }
  .ncl-hub-qa .ncl-hub-hero .ncl-hub-intro {
    max-width: 335px;
    font-size: 15px;
    line-height: 1.72;
    color: #263d4b;
  }
  .ncl-hub-qa .ncl-hub-qa-note {
    color: rgba(39,61,75,.72);
  }

  /* Text-only starter cards, matching the approved mobile mockup. */
  .ncl-hub-qa .ncl-hub-start-grid { gap: 10px; }
  .ncl-hub-qa .ncl-hub-start-card {
    min-height: 0;
    padding: 20px;
    box-shadow: 0 7px 20px rgba(23,33,43,.035);
  }
  .ncl-hub-qa .ncl-hub-start-card h3 { font-size: 20px; }
  .ncl-hub-qa .ncl-hub-start-card p { font-size: 14px; line-height: 1.7; }

  /* Vivid full-background knowledge map with a clean white reading panel. */
  .ncl-hub-qa .ncl-hub-knowledge-visual {
    padding: 44px 0 48px;
    background:
      linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02)),
      url('assets/images/ncl-hub-knowledge.webp') 45% center / cover no-repeat;
  }
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head {
    margin: 0 0 18px;
  }
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage-list {
    padding: 8px 16px;
    border-radius: 10px;
    background: rgba(255,255,255,.95);
    box-shadow: 0 14px 34px rgba(14,52,69,.11);
  }
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage {
    padding: 20px 0;
  }
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-question-links a {
    min-height: 48px;
    padding: 12px 0;
  }

  .ncl-hub-qa .ncl-hub-next-step {
    min-height: 245px;
    padding: 26px 20px;
    background:
      linear-gradient(180deg,rgba(10,27,40,.95) 0%,rgba(10,27,40,.72) 58%,rgba(10,27,40,.38) 100%),
      url('assets/images/ncl-closing-horizon.webp') 72% center / cover no-repeat;
  }
}


/* v2.8.3 — Desktop Visual Width Fix
   Desktop-only refinement: the two large photographic sections now live inside
   the same editorial shell as the Hub content rather than bleeding edge-to-edge.
   Mobile intentionally retains the immersive full-width treatment from v2.8.2. */
@media (min-width: 761px) {
  /* HERO: image becomes a contained editorial panel aligned to the Hub shell. */
  .ncl-hub-qa .ncl-hub-hero {
    min-height: 0;
    padding: 34px 0 0;
    background: #fff;
  }
  .ncl-hub-qa .ncl-hub-hero-inner {
    width: min(calc(100% - 48px), var(--ncl-max-width));
    min-height: 430px;
    padding: 28px 42px 42px;
    border-radius: 16px;
    overflow: hidden;
    background:
      linear-gradient(90deg, rgba(238,249,255,.96) 0%, rgba(238,249,255,.88) 35%, rgba(238,249,255,.46) 55%, rgba(238,249,255,.06) 78%),
      url('assets/images/ncl-hub-hero-desktop.webp') center center / cover no-repeat;
    box-shadow: 0 16px 42px rgba(23,33,43,.055);
  }
  .ncl-hub-qa .ncl-hub-hero-copy {
    width: min(56%, 700px);
    margin-top: 50px;
  }
  .ncl-hub-qa .ncl-hub-script {
    right: 7%;
  }

  /* KNOWLEDGE MAP: contain the scenic image inside the same shell width. */
  .ncl-hub-qa .ncl-hub-knowledge-visual {
    padding: 66px 0;
    background: #fff;
  }
  .ncl-hub-qa .ncl-hub-knowledge-visual::before {
    display: none;
  }
  .ncl-hub-qa .ncl-hub-knowledge-visual > .ncl-shell {
    position: relative;
    z-index: 1;
    min-height: 500px;
    padding: 46px 38px 42px;
    border-radius: 16px;
    overflow: hidden;
    background:
      linear-gradient(180deg, rgba(255,255,255,.04) 0%, rgba(255,255,255,.02) 100%),
      url('assets/images/ncl-hub-knowledge.webp') center center / cover no-repeat;
    box-shadow: 0 16px 42px rgba(14,52,69,.07);
  }
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head {
    max-width: 760px;
    margin-bottom: 26px;
  }
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage-list {
    width: 100%;
    padding: 26px 30px;
    border-radius: 12px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 18px 44px rgba(14,52,69,.14);
  }
}


/* v2.8.4 — Category Hub Mobile Final Polish
   Matches the approved desktop/mobile visual reference while preserving v2.8.3 desktop shell widths. */
@media (max-width: 760px) {
  /* Compact photographic hero: copy sits on the image, without a long empty lower crop. */
  .ncl-hub-qa .ncl-hub-hero {
    min-height: 0;
    padding: 0;
    background: #fff;
  }
  .ncl-hub-qa .ncl-hub-hero-inner {
    width: 100%;
    min-height: 350px;
    padding: 16px 16px 24px;
    border-radius: 0;
    overflow: hidden;
    background:
      linear-gradient(180deg, rgba(235,249,255,.96) 0%, rgba(235,249,255,.88) 47%, rgba(235,249,255,.34) 73%, rgba(235,249,255,.08) 100%),
      url('assets/images/ncl-hub-hero-mobile.webp') center 56% / cover no-repeat;
  }
  .ncl-hub-qa .ncl-hub-hero-copy { width: 100%; margin-top: 24px; }
  .ncl-hub-qa .ncl-hub-hero h1 {
    max-width: none;
    margin-top: 8px;
    font-size: clamp(25px, 7vw, 29px);
    line-height: 1.18;
    letter-spacing: -.035em;
    white-space: nowrap;
  }
  .ncl-hub-qa .ncl-hub-hero .ncl-hub-intro {
    max-width: 345px;
    margin-top: 14px;
    font-size: 13px;
    line-height: 1.72;
  }
  .ncl-hub-qa .ncl-hub-qa-note { margin-top: 14px; font-size: 10px; }

  /* Knowledge map: use a crisp crop and separate each decision stage into its own card. */
  .ncl-hub-qa .ncl-hub-knowledge-visual {
    padding: 40px 0 46px;
    background:
      linear-gradient(180deg, rgba(255,255,255,.05), rgba(3,55,76,.05)),
      url('assets/images/ncl-hub-knowledge.webp') center center / cover no-repeat;
  }
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head { margin-bottom: 18px; }
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage,
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage:first-child,
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage:last-child {
    padding: 18px 16px 10px;
    border: 1px solid rgba(255,255,255,.92);
    border-radius: 10px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 8px 24px rgba(14,52,69,.10);
  }
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage h3 { margin-bottom: 8px; }

  /* Intentional line break after 考えるから、 */
  .ncl-hub-nz-context h2 { font-size: 24px; line-height: 1.45; }
  .ncl-hub-nz-context .ncl-mobile-break { display: block; }

  /* Intentional Next Step line break. */
  .ncl-hub-qa .ncl-hub-next-step h2 { font-size: 23px; line-height: 1.42; }
  .ncl-hub-next-step .ncl-mobile-break { display: block; }
}

@media (min-width: 761px) {
  .ncl-hub-nz-context .ncl-mobile-break,
  .ncl-hub-next-step .ncl-mobile-break { display: inline; }
}


/* v2.8.5 — Mobile Background Image Quality Fix
   Uses a dedicated high-resolution portrait crop for the Knowledge Map on mobile.
   Also strengthens the local text treatment without muting the scenic image. */
@media (max-width: 760px) {
  .ncl-hub-qa .ncl-hub-knowledge-visual {
    position: relative;
    background:
      linear-gradient(180deg, rgba(255,255,255,.50) 0%, rgba(255,255,255,.22) 18%, rgba(255,255,255,.04) 38%, rgba(3,55,76,.03) 100%),
      url('assets/images/ncl-hub-knowledge-mobile.webp') center 45% / cover no-repeat;
  }
  .ncl-hub-qa .ncl-hub-knowledge-visual::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(255,255,255,.30) 0%, rgba(255,255,255,.06) 30%, rgba(0,0,0,.00) 58%);
  }
  .ncl-hub-qa .ncl-hub-knowledge-visual > .ncl-shell {
    position: relative;
    z-index: 1;
  }
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head {
    position: relative;
    z-index: 2;
    max-width: 100%;
    margin: 0 0 18px;
    padding: 10px 12px 11px;
    border-radius: 9px;
    background: rgba(255,255,255,.78);
    box-shadow: 0 6px 18px rgba(14,52,69,.08);
  }
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head h2,
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head p,
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head .ncl-eyebrow {
    color: #102432;
    text-shadow: none;
  }
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage,
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage:first-child,
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage:last-child {
    background: rgba(255,255,255,.975);
    border-color: rgba(255,255,255,.98);
  }
}


/* v2.8.6 — Mobile Knowledge Visual Fidelity Fix
   - Replaces the upscaled portrait background with a native-pixel composite crop.
   - Restores the v2.8.4 information hierarchy: headings are unboxed; only clickable groups are cards.
*/
@media (max-width: 760px) {
  .ncl-hub-qa .ncl-hub-knowledge-visual {
    position: relative;
    background:
      linear-gradient(180deg, rgba(255,255,255,.36) 0%, rgba(255,255,255,.16) 18%, rgba(255,255,255,.03) 40%, rgba(4,42,61,.06) 100%),
      url('assets/images/ncl-hub-knowledge-mobile.webp') center top / cover no-repeat;
  }

  .ncl-hub-qa .ncl-hub-knowledge-visual::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(255,255,255,.26) 0 122px, rgba(255,255,255,.04) 230px, rgba(255,255,255,0) 42%);
  }

  .ncl-hub-qa .ncl-hub-knowledge-visual > .ncl-shell {
    position: relative;
    z-index: 1;
  }

  /* Non-clickable heading area: no card / no box. */
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head {
    max-width: 100%;
    margin: 0 0 18px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }

  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head h2,
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head p,
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head .ncl-eyebrow {
    color: #102432;
    text-shadow: 0 1px 0 rgba(255,255,255,.95), 0 2px 8px rgba(255,255,255,.82);
  }

  /* Clickable topic groups remain clearly independent cards. */
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage-list {
    background: transparent;
    border: 0;
    box-shadow: none;
    backdrop-filter: none;
    padding: 0;
    gap: 8px;
  }

  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage,
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage:first-child,
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage:last-child {
    margin: 0;
    padding: 18px 14px 10px;
    border: 1px solid rgba(255,255,255,.96);
    border-radius: 8px;
    background: rgba(255,255,255,.965);
    box-shadow: 0 8px 22px rgba(14,52,69,.09);
  }
}


/* v2.8.7 — Mobile Width Consistency + Background Quality Final Fix
   Keeps the approved v2.8.6 hierarchy intact. Mobile content shells share one
   horizontal rhythm, and the Knowledge Map uses a newly sharpened, high-quality
   asset under a cache-busted filename so browsers cannot reuse the older image. */
@media (max-width: 760px) {
  /* One mobile content grid: 16px on each side throughout the Hub. */
  .ncl-hub-qa .ncl-shell,
  .ncl-hub-qa .ncl-content-shell,
  .ncl-hub-qa .ncl-hub-qa-section > .ncl-shell,
  .ncl-hub-qa .ncl-hub-knowledge-visual > .ncl-shell {
    width: calc(100% - 32px);
    max-width: none;
    margin-left: auto;
    margin-right: auto;
  }

  /* The photographic hero remains an intentional full-bleed transition.
     Its copy still aligns to the same 16px mobile grid. */
  .ncl-hub-qa .ncl-hub-hero-inner {
    width: 100%;
    padding-left: 16px;
    padding-right: 16px;
  }

  /* Knowledge Map: dedicated portrait asset, no browser reuse of the older file. */
  .ncl-hub-qa .ncl-hub-knowledge-visual {
    background:
      linear-gradient(180deg, rgba(255,255,255,.32) 0%, rgba(255,255,255,.13) 18%, rgba(255,255,255,.025) 40%, rgba(4,42,61,.045) 100%),
      url('assets/images/ncl-hub-knowledge-mobile-v287.webp') center top / cover no-repeat;
    image-rendering: auto;
  }

  /* Preserve the approved distinction: ordinary heading = unboxed; clickable groups = cards. */
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-qa-head {
    width: 100%;
    padding-left: 0;
    padding-right: 0;
  }
  .ncl-hub-qa .ncl-hub-knowledge-visual .ncl-hub-stage-list,
  .ncl-hub-qa .ncl-hub-start-grid,
  .ncl-hub-qa .ncl-hub-nz-context,
  .ncl-hub-qa .ncl-hub-next-step {
    width: 100%;
    max-width: none;
  }
}

/* v2.9.0 — STEP 12: Remaining Templates & Site-wide QA */
.ncl-util-hero {
  padding: 58px 0 40px;
  border-bottom: 1px solid var(--ncl-border);
}
.ncl-util-hero__inner { max-width: var(--ncl-max-width); }
.ncl-util-hero h1,
.ncl-standard-header h1,
.ncl-404-panel h1 {
  margin: 0;
  font-size: clamp(38px, 4.4vw, 54px);
  line-height: 1.3;
  letter-spacing: -.025em;
  font-weight: 720;
}
.ncl-util-lead {
  max-width: 760px;
  margin: 18px 0 0;
  color: #43515c;
  font-size: 17.5px;
  line-height: 1.85;
}
.ncl-util-description p { margin: 0; }
.ncl-util-content { padding: 58px 0 92px; }
.ncl-util-heading-row {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 24px;
}
.ncl-util-heading-row h2 {
  margin: 0;
  font-size: 28px;
  line-height: 1.4;
}
.ncl-list-stack--editorial { margin-top: 0; }
.ncl-list-stack--editorial .ncl-list-item { padding: 30px 0; }
.ncl-list-stack--editorial .ncl-list-item h2 { font-size: 25px; }
.ncl-list-stack--editorial .ncl-list-item p { max-width: 780px; line-height: 1.75; }
.ncl-no-results {
  max-width: 820px;
  padding: 38px 40px;
  border: 1px solid var(--ncl-border);
  border-radius: 14px;
  background: var(--ncl-bg-soft);
}
.ncl-no-results h2 { margin: 0; font-size: 28px; line-height: 1.45; }
.ncl-no-results p { margin: 14px 0 0; color: var(--ncl-muted); }
.ncl-no-results__links { display: flex; flex-wrap: wrap; gap: 14px 28px; margin-top: 24px; }

/* Standard page */
.ncl-standard-header { padding: 54px 0 34px; }
.ncl-standard-deck {
  margin: 18px 0 0;
  color: #43515c;
  font-size: 18px;
  line-height: 1.85;
}
.ncl-standard-body { padding: 4px 0 92px; }
.ncl-standard-entry h2:first-of-type { margin-top: 48px; }

/* 404 */
.ncl-404-wrap { padding: clamp(72px, 8vw, 118px) 0 110px; }
.ncl-404-panel { max-width: 1040px; margin: 0 auto; }
.ncl-404-panel > .ncl-util-lead { max-width: 760px; }
.ncl-404-routes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 16px;
  margin-top: 44px;
}
.ncl-404-routes a {
  min-height: 170px;
  padding: 26px;
  border: 1px solid var(--ncl-border);
  border-radius: 12px;
  background: #fff;
  color: var(--ncl-text);
  text-decoration: none;
  display: flex;
  flex-direction: column;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ncl-404-routes a:hover {
  color: var(--ncl-text);
  transform: translateY(-2px);
  border-color: #b9d7e7;
  box-shadow: 0 12px 30px rgba(23,33,43,.06);
}
.ncl-404-routes small {
  color: var(--ncl-blue);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .14em;
}
.ncl-404-routes strong { margin-top: 12px; font-size: 20px; line-height: 1.45; }
.ncl-404-routes span { margin-top: auto; padding-top: 20px; color: var(--ncl-blue); font-size: 14px; font-weight: 750; }
.ncl-404-home { margin-top: 30px; }

@media (max-width: 780px) {
  .ncl-util-hero { padding: 38px 0 28px; }
  .ncl-util-hero h1,
  .ncl-standard-header h1,
  .ncl-404-panel h1 {
    font-size: 32px;
    line-height: 1.36;
  }
  .ncl-util-lead, .ncl-standard-deck { font-size: 16px; line-height: 1.8; }
  .ncl-util-content { padding: 42px 0 70px; }
  .ncl-util-heading-row h2 { font-size: 24px; }
  .ncl-list-stack--editorial .ncl-list-item { padding: 24px 0; }
  .ncl-list-stack--editorial .ncl-list-item h2 { font-size: 21px; }
  .ncl-list-stack--editorial .ncl-list-item__meta { font-size: 11px; }
  .ncl-no-results { padding: 28px 22px; }
  .ncl-no-results h2 { font-size: 24px; }
  .ncl-standard-header { padding: 38px 0 26px; }
  .ncl-standard-body { padding-bottom: 70px; }
  .ncl-404-wrap { padding: 58px 0 78px; }
  .ncl-404-routes { grid-template-columns: 1fr; gap: 10px; margin-top: 34px; }
  .ncl-404-routes a { min-height: 120px; padding: 22px; }
  .ncl-404-routes strong { font-size: 18px; }
  .ncl-search-form { width: 100%; }
  .ncl-search-form input[type="search"] { min-height: 52px; }
  .ncl-search-form button { min-height: 52px; padding-inline: 18px; }
}

/* v2.9.1 — Search result interaction polish */
.ncl-list-stack--editorial .ncl-list-item { padding: 0; }
.ncl-list-stack--editorial .ncl-list-item__link {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 28px;
  width: 100%;
  padding: 28px 0;
  color: inherit;
  text-decoration: none;
}
.ncl-list-stack--editorial .ncl-list-item__link h2 { color: var(--ncl-text); }
.ncl-list-stack--editorial .ncl-list-item__link:hover h2,
.ncl-list-stack--editorial .ncl-list-item__link:focus-visible h2 { color: var(--ncl-blue); }
.ncl-list-stack--editorial .ncl-list-item__link:focus-visible { outline: 2px solid var(--ncl-blue); outline-offset: 4px; border-radius: 4px; }
@media (max-width: 760px) {
  .ncl-list-stack--editorial .ncl-list-item__link { grid-template-columns: 1fr; gap: 12px; padding: 26px 0; }
}

/* v2.9.2 — Search result row layout + full click target fix */
.ncl-list-stack--editorial .ncl-list-item {
  display: block;
  grid-template-columns: none;
  gap: 0;
  padding: 0;
}
.ncl-list-stack--editorial .ncl-list-item__link {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 28px;
  width: 100%;
  box-sizing: border-box;
  padding: 28px 0;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}
.ncl-list-stack--editorial .ncl-list-item__body { min-width: 0; }
@media (max-width: 760px) {
  .ncl-list-stack--editorial .ncl-list-item__link {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 26px 0;
  }
}


/* v2.9.4 — Archive / Latest Final Polish */
.ncl-archive-page .ncl-list-stack--editorial .ncl-list-item__link {
  position: relative;
  padding: 34px 52px 34px 0;
  transition: background-color .18s ease;
}
.ncl-archive-page .ncl-list-stack--editorial .ncl-list-item__link::after {
  content: "→";
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--ncl-blue);
  font-size: 18px;
  font-weight: 750;
  transition: transform .18s ease;
}
.ncl-archive-page .ncl-list-stack--editorial .ncl-list-item__link:hover::after,
.ncl-archive-page .ncl-list-stack--editorial .ncl-list-item__link:focus-visible::after {
  transform: translate(4px,-50%);
}
.ncl-archive-page .ncl-list-stack--editorial .ncl-list-item__meta {
  line-height: 1.65;
  letter-spacing: .01em;
}
.ncl-archive-page .ncl-list-stack--editorial .ncl-list-item__body h2 {
  margin: 0;
  font-size: 25px;
  line-height: 1.42;
  letter-spacing: -.018em;
}
.ncl-archive-page .ncl-list-stack--editorial .ncl-list-item__body p {
  margin: 12px 0 0;
  max-width: 820px;
  color: var(--ncl-muted);
  font-size: 15.5px;
  line-height: 1.8;
}
@media (max-width: 760px) {
  .ncl-archive-page .ncl-list-stack--editorial .ncl-list-item__link {
    gap: 10px;
    padding: 30px 36px 30px 0;
  }
  .ncl-archive-page .ncl-list-stack--editorial .ncl-list-item__link::after {
    right: 4px;
    top: 50%;
    font-size: 17px;
  }
  .ncl-archive-page .ncl-list-stack--editorial .ncl-list-item__meta {
    font-size: 11px;
    line-height: 1.7;
  }
  .ncl-archive-page .ncl-list-stack--editorial .ncl-list-item__body h2 {
    font-size: 22px;
    line-height: 1.48;
  }
  .ncl-archive-page .ncl-list-stack--editorial .ncl-list-item__body p {
    margin-top: 12px;
    font-size: 16px;
    line-height: 1.85;
  }
}

/* v2.9.7 — NZ Context topics are actionable links. */
.ncl-hub-context-topic {
  text-decoration: none;
  cursor: pointer;
  transition: border-color .18s ease, background-color .18s ease, color .18s ease, transform .18s ease;
}
.ncl-hub-context-topic:hover {
  border-color: rgba(11,124,193,.42);
  background: #eef8fd;
  color: var(--ncl-blue-dark);
  transform: translateY(-1px);
}
.ncl-hub-context-topic:focus-visible {
  outline: 3px solid rgba(11,124,193,.24);
  outline-offset: 2px;
}

/* v2.9.8 — Latest System & Interaction Consistency Fix */
.ncl-post-card__link {
  display: block;
  height: 100%;
  color: inherit;
  text-decoration: none;
}
.ncl-post-card__link:hover { color: inherit; }
.ncl-post-card:has(.ncl-post-card__link) {
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.ncl-post-card:has(.ncl-post-card__link):hover {
  transform: translateY(-2px);
  border-color: #b9d7e7;
  box-shadow: 0 12px 30px rgba(23,33,43,.06);
}
.ncl-post-card__link:focus-visible {
  outline: 3px solid rgba(11,124,193,.28);
  outline-offset: -3px;
  border-radius: var(--ncl-radius);
}


/* v2.9.9 — Homepage Latest Card Fix */
.ncl-post-card--clickable {
  position: relative;
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.ncl-post-card--clickable .ncl-post-card__body {
  position: relative;
  z-index: 1;
  pointer-events: none;
}
.ncl-post-card__overlay-link {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
  border-radius: inherit;
}
.ncl-post-card--clickable:hover {
  transform: translateY(-2px);
  border-color: #b9d7e7;
  box-shadow: 0 12px 30px rgba(23,33,43,.06);
}
.ncl-post-card__overlay-link:focus-visible {
  outline: 3px solid rgba(11,124,193,.28);
  outline-offset: -3px;
}

/* v2.10.0 — Homepage Latest Card Semantic Link Fix */
.ncl-post-card--clickable .ncl-post-card__link {
  display: block;
  width: 100%;
  height: 100%;
  color: inherit;
  text-decoration: none;
}
.ncl-post-card--clickable .ncl-post-card__body {
  pointer-events: auto;
}
.ncl-post-card--clickable .ncl-post-card__link:hover { color: inherit; }


/* v2.10.1 — Single Article Featured Image */
.ncl-article-featured-image {
  width: 100%;
  margin: 30px 0 0;
}
.ncl-article-featured-image img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 10px;
}
.ncl-article-featured-image + .ncl-article-deck {
  margin-top: 26px;
}
@media (max-width: 720px) {
  .ncl-article-featured-image { margin-top: 22px; }
  .ncl-article-featured-image img { border-radius: 8px; }
  .ncl-article-featured-image + .ncl-article-deck { margin-top: 20px; }
}


/* v2.10.2 — Article metadata order + automatic TOC */
.ncl-article-header .ncl-article-meta {
  margin: 16px 0 0;
}
.ncl-article-header .ncl-article-meta + .ncl-article-featured-image {
  margin-top: 24px;
}
.ncl-toc {
  margin: 34px 0 38px;
  padding: 24px 26px;
  border: 1px solid var(--ncl-border);
  border-radius: var(--ncl-radius);
  background: #fff;
}
.ncl-toc__title {
  margin: 0 0 14px;
  font-size: 16px;
  font-weight: 800;
  color: var(--ncl-text);
}
.ncl-toc__list {
  margin: 0;
  padding-left: 1.4em;
}
.ncl-toc__list li + li { margin-top: 8px; }
.ncl-toc__list a {
  color: var(--ncl-text);
  text-decoration: none;
}
.ncl-toc__list a:hover { color: var(--ncl-blue); }
.ncl-entry-content h2[id] { scroll-margin-top: 110px; }
@media (max-width: 720px) {
  .ncl-article-header .ncl-article-meta { margin-top: 12px; }
  .ncl-article-header .ncl-article-meta + .ncl-article-featured-image { margin-top: 20px; }
  .ncl-toc { margin: 28px 0 34px; padding: 20px; }
  .ncl-toc__list li + li { margin-top: 10px; }
}


/* v2.10.3 — TOC + Quick Answer readability */
.ncl-toc { padding:24px 28px 26px; }
.ncl-toc__title { margin:0 0 18px; font-size:15px; font-weight:850; color:var(--ncl-text); }
.ncl-toc__list { margin:0; padding-left:1.45em; }
.ncl-toc__list li { margin:0; padding:7px 0 7px 3px; }
.ncl-toc__list a { color:var(--ncl-text); text-decoration:none; line-height:1.65; }
.ncl-toc__list a:hover { color:var(--ncl-blue); }
.ncl-toc__list a:focus-visible { outline:2px solid var(--ncl-blue); outline-offset:3px; border-radius:2px; }
.ncl-entry-content h2[id] { scroll-margin-top:96px; }
.ncl-quick-answer h3 { margin:0 0 16px; font-size:20px; line-height:1.45; }
.ncl-quick-answer__list { list-style:none; margin:0 !important; padding:0 !important; }
.ncl-quick-answer__list li { position:relative; margin:0; padding:10px 0 10px 28px; line-height:1.7; border-top:1px solid var(--ncl-border); }
.ncl-quick-answer__list li:first-child { border-top:0; }
.ncl-quick-answer__list li::before { content:"✓"; position:absolute; left:0; top:10px; color:var(--ncl-blue); font-weight:900; }
@media (max-width: 720px) {
  .ncl-toc { padding:20px 20px 22px; }
  .ncl-toc__list li { padding-top:6px; padding-bottom:6px; }
  .ncl-quick-answer { padding:22px 20px; }
  .ncl-quick-answer h3 { font-size:19px; }
}


/* v2.10.5 — TOC compact links + opening transition polish */
.ncl-toc__title {
  margin-bottom: 16px;
}
.ncl-toc__list li {
  margin: 0;
  padding: 0 0 0 3px;
}
.ncl-toc__list li + li {
  margin-top: 6px;
}
.ncl-toc__list a {
  position: static;
  display: inline;
  padding: 0;
  color: var(--ncl-blue-dark);
  font-weight: 650;
  line-height: 1.55;
  text-decoration: none;
  transition: color .18s ease;
}
.ncl-toc__list a::after {
  content: none !important;
  display: none !important;
}
.ncl-toc__list a:hover {
  color: var(--ncl-blue);
}
@media (max-width: 720px) {
  .ncl-toc__title { margin-bottom: 14px; }
  .ncl-toc__list li + li { margin-top: 5px; }
}

/* v2.10.7 — Latest visual refresh */
.ncl-util-hero--with-image {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background: linear-gradient(180deg, #f8fbfd 0%, #f5f7f8 100%);
}
.ncl-util-hero--with-image::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--ncl-hero-image);
  background-size: cover;
  background-position: center 48%;
  opacity: .30;
  transform: scale(1.03);
}
.ncl-util-hero--with-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,.64) 0%, rgba(248,250,252,.72) 42%, rgba(245,247,248,.90) 100%);
}
.ncl-util-hero--with-image .ncl-util-hero__inner {
  position: relative;
  z-index: 1;
}

.ncl-list-item__body {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 24px;
  align-items: center;
  min-width: 0;
}
.ncl-list-item__thumb {
  margin: 0;
  aspect-ratio: 16 / 10;
  border-radius: 12px;
  overflow: hidden;
  background: var(--ncl-bg-soft);
  box-shadow: 0 10px 24px rgba(23, 33, 43, .05);
}
.ncl-list-item__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ncl-list-item__copy {
  min-width: 0;
}

.ncl-post-card__thumb {
  margin: 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--ncl-bg-soft);
}
.ncl-post-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 900px) {
  .ncl-list-item__body {
    grid-template-columns: 200px minmax(0, 1fr);
    gap: 20px;
  }
}

@media (max-width: 760px) {
  .ncl-list-item__body {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .ncl-list-item__thumb {
    max-width: 340px;
  }
  .ncl-util-hero--with-image::before {
    opacity: .24;
  }
}


/* v2.10.8 — Latest hero image visibility */
.ncl-util-hero--with-image::before {
  background-position: center 48%;
  opacity: .30;
}
.ncl-util-hero--with-image::after {
  background: linear-gradient(180deg, rgba(255,255,255,.64) 0%, rgba(248,250,252,.72) 42%, rgba(245,247,248,.90) 100%);
}
@media (max-width: 760px) {
  .ncl-util-hero--with-image::before { opacity: .24; }
}


/* v2.10.9 — Latest hero stronger image presence */
.ncl-util-hero--with-image::before {
  background-position: center 48%;
  opacity: .52;
}
.ncl-util-hero--with-image::after {
  background: linear-gradient(180deg, rgba(255,255,255,.38) 0%, rgba(248,250,252,.50) 44%, rgba(245,247,248,.72) 100%);
}
@media (max-width: 760px) {
  .ncl-util-hero--with-image::before { opacity: .44; }
  .ncl-util-hero--with-image::after {
    background: linear-gradient(180deg, rgba(255,255,255,.46) 0%, rgba(248,250,252,.58) 48%, rgba(245,247,248,.78) 100%);
  }
}


/* v2.10.10 — Latest hero uses a fixed NZ Cruise Life brand visual.
   Image strength remains exactly as tuned in v2.10.9. */


/* v2.10.11 — Latest hero fixed sea-forward NZ Cruise Life visual.
   Keeps v2.10.9 image strength, but favors visible water and ship. */
.ncl-util-hero--with-image::before {
  background-position: center 64%;
}
@media (max-width: 760px) {
  .ncl-util-hero--with-image::before { background-position: 68% 62%; }
}


/* v2.10.12 — Category Hub article-list layout fix.
   Restores a full-width clickable row and keeps thumbnail + copy readable. */
.ncl-list-section .ncl-list-item {
  display: block;
  grid-template-columns: none;
  gap: 0;
  padding: 0;
}
.ncl-list-section .ncl-list-item__link {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr);
  gap: 28px;
  width: 100%;
  box-sizing: border-box;
  padding: 30px 0;
  align-items: start;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}
.ncl-list-section .ncl-list-item__body {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 24px;
  align-items: center;
  min-width: 0;
}
.ncl-list-section .ncl-list-item__copy {
  min-width: 0;
}
.ncl-list-section .ncl-list-item__copy h2 {
  color: var(--ncl-text);
}
.ncl-list-section .ncl-list-item__link:hover .ncl-list-item__copy h2,
.ncl-list-section .ncl-list-item__link:focus-visible .ncl-list-item__copy h2 {
  color: var(--ncl-blue);
}
.ncl-list-section .ncl-list-item__link:focus-visible {
  outline: 2px solid var(--ncl-blue);
  outline-offset: 4px;
  border-radius: 4px;
}
@media (max-width: 900px) {
  .ncl-list-section .ncl-list-item__body {
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 20px;
  }
}
@media (max-width: 760px) {
  .ncl-list-section .ncl-list-item__link {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 26px 0;
  }
  .ncl-list-section .ncl-list-item__body {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .ncl-list-section .ncl-list-item__thumb {
    width: 100%;
    max-width: none;
  }
}


/* v2.10.15 — Article Journey editorial refinement
   Separate post-reading navigation without turning it into a bulky UI panel. */
.ncl-article-journey {
  position: relative;
  margin-top: 78px;
  padding: 40px 0 0;
  border-top: 2px solid #cfd9df;
  border-radius: 0;
  background: transparent;
}
.ncl-article-journey::before {
  content: "";
  position: absolute;
  top: -2px;
  left: 0;
  width: 92px;
  height: 2px;
  background: var(--ncl-blue);
}
.ncl-article-journey > :first-child { margin-top: 0; }
.ncl-article-journey > :last-child { margin-bottom: 0; }

.ncl-next-question {
  box-shadow: 0 16px 42px rgba(23, 33, 43, .10);
}

.ncl-explore-more { margin-top: 42px; }
.ncl-article-journey > .ncl-explore-more:first-child { margin-top: 0; }
.ncl-explore-more .ncl-eyebrow { margin: 0 0 9px; }
.ncl-explore-more h2 {
  margin: 0;
  font-size: 26px;
  line-height: 1.35;
  letter-spacing: -.015em;
}
.ncl-related-list {
  display: grid;
  gap: 12px;
  margin: 22px 0 0;
  padding: 0;
  border-top: 0;
}
.ncl-related-list li {
  overflow: hidden;
  border: 0;
  border-radius: 14px;
  background: transparent;
}
.ncl-related-list a {
  position: relative;
  min-height: 72px;
  padding: 16px 18px 16px 22px;
  border: 1px solid #d8e2e7;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(23, 33, 43, .045);
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease, color .18s ease;
}
.ncl-related-list a::before {
  content: "";
  position: absolute;
  top: 17px;
  bottom: 17px;
  left: 0;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: var(--ncl-blue);
}
.ncl-related-list a::after {
  content: "→";
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: #edf7fc;
  color: var(--ncl-blue);
  font-size: 17px;
  line-height: 1;
}
.ncl-related-list a:hover,
.ncl-related-list a:focus-visible {
  border-color: #bcd8e7;
  box-shadow: 0 12px 30px rgba(23, 33, 43, .075);
  color: var(--ncl-blue-dark);
  transform: translateY(-1px);
}
.ncl-related-list a:focus-visible {
  outline: 2px solid var(--ncl-blue);
  outline-offset: 3px;
}
.ncl-back-hub {
  margin: 22px 0 0;
  padding-top: 0;
  border-top: 0;
}
.ncl-back-hub .ncl-link-arrow {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 2px;
  font-weight: 800;
}

@media (max-width: 720px) {
  .ncl-article-journey {
    margin-top: 60px;
    padding-top: 30px;
  }
  .ncl-article-journey::before { width: 72px; }
  .ncl-explore-more { margin-top: 34px; }
  .ncl-explore-more h2 { font-size: 23px; }
  .ncl-related-list { margin-top: 17px; gap: 9px; }
  .ncl-related-list a {
    min-height: 66px;
    padding: 13px 13px 13px 18px;
  }
  .ncl-related-list a::before { top: 14px; bottom: 14px; }
  .ncl-related-list a::after {
    flex-basis: 32px;
    width: 32px;
    height: 32px;
    font-size: 15px;
  }
  .ncl-back-hub { margin-top: 16px; }
}



/* v2.10.17 — Manual TOC only */
/*
 * The theme no longer generates a table of contents automatically.
 * These styles are retained so a manually authored .ncl-toc block can use
 * the established Article 01/02 visual treatment without theme-side rewriting.
 */
.ncl-toc__list {
  list-style: none;
  padding-left: 0;
}
.ncl-toc__list li {
  padding-left: 0;
}
