@charset "utf-8";

:root {
    --color-primary-900: #062b53;
    --color-primary-800: #07426e;
    --color-primary-700: #084586;
    --color-primary-600: #075c9a;
    --color-primary-500: #086fad;
    --color-primary-050: #f0f8fb;
    --color-secondary: #f3a44a;
    --color-secondary-light: #fff2de;
    --color-navy: #102f44;
    --color-text: #253b48;
    --color-text-muted: #667985;
    --color-border: #dce6ea;
    --color-surface: #f5f8f9;
    --color-white: #ffffff;
    --color-black: #121a1e;
    --color-title: #000000;
    --color-section-muted: #f7fbfb;
    --color-eyebrow: var(--color-primary-600);
    --color-eyebrow-bg: rgba(255, 255, 255, 0.82);
    --color-eyebrow-border: rgba(8, 123, 140, 0.12);
    --color-eyebrow-dot: #f58220;
    --color-accent-green: #76c66a;
    --color-accent-blue: #2388d7;
    --color-accent-orange: #f58220;
    --color-accent-mint: #25b6ae;
    --font-family-base: "Pretendard", "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
    --font-size-display: clamp(2.75rem, 5vw, 5.25rem);
    --font-size-page-title: clamp(2.25rem, 4vw, 3.75rem);
    --font-size-section-title: clamp(2rem, 3.2vw, 3.25rem);
    --font-size-content-title: clamp(1.45rem, 2vw, 1.9rem);
    --font-size-body-lg: 1.125rem;
    --font-size-body: 1rem;
    --font-size-body-sm: 0.875rem;
    --font-size-caption: 0.8125rem;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --line-height-tight: 1.2;
    --line-height-title: 1.35;
    --line-height-body: 1.7;
    --container-width: 1480px;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-5: 1.25rem;
    --space-6: 1.5rem;
    --space-10: 2.5rem;
    --space-12: 3rem;
    --space-section: clamp(4rem, 7vw, 7rem);
    --radius-sm: 0.5rem;
    --radius-md: 1rem;
    --radius-lg: 1.75rem;
    --radius-xl: 2.5rem;
    --radius-pill: 999px;
    --shadow-sm: 0 0.5rem 1.5rem rgba(15, 56, 72, 0.08);
    --shadow-xs: 0 0.25rem 0.75rem rgba(15, 56, 72, 0.04);
    --shadow-md: 0 1.25rem 3.5rem rgba(13, 71, 91, 0.13);
    --header-height: 5.75rem;
    --transition-base: 180ms ease;
}

/* Board: notice */
.board-page .subpage-content { min-width: 0; }
.board__header { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-5); margin-bottom: var(--space-10); }
.board__header .section-title { margin-top: var(--space-2); }
.board-search { display: grid; grid-template-columns: 10rem minmax(12rem, 1fr) auto; gap: var(--space-2); max-width: 42rem; margin: 0 0 var(--space-5) auto; }
.board-search select,
.board-search input,
.board-form input,
.board-form select,
.board-form textarea { width: 100%; min-height: 3rem; padding: 0.7rem 0.9rem; color: var(--color-text); background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--radius-sm); }
.board-search select:focus,
.board-search input:focus,
.board-form input:focus,
.board-form select:focus,
.board-form textarea:focus { border-color: var(--color-primary-600); outline: 3px solid rgba(7, 134, 154, 0.16); }
.board-table-wrap { overflow-x: auto; border-top: 2px solid var(--color-primary-900); }
.board-table { width: 100%; min-width: 46rem; border-collapse: collapse; table-layout: fixed; }
.board-table caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
.board-table th { padding: 1rem 0.75rem; color: var(--color-navy); background: var(--color-surface); font-weight: var(--font-weight-semibold); }
.board-table td { padding: 1.15rem 0.75rem; border-bottom: 1px solid var(--color-border); text-align: center; }
.board-table tbody tr:hover { background: var(--color-primary-050); }
.board-table tbody tr.is-notice { background: #fbfefe; }
.board-table__check { width: 3.25rem; }
.board-table__number { width: 5.5rem; }
.board-table__author { width: 8rem; }
.board-table__date { width: 7rem; }
.board-table__hit { width: 5rem; }
.board-table td.board-table__subject { text-align: left; }
.board-table__subject a { display: flex; align-items: center; gap: 0.45rem; min-width: 0; font-weight: var(--font-weight-medium); }
.board-table__subject a:hover span:first-child { color: var(--color-primary-700); text-decoration: underline; text-underline-offset: 0.2em; }
.board-table__comment,
.board-table__file { flex: 0 0 auto; color: var(--color-text-muted); font-size: var(--font-size-caption); }
.badge--new { color: #8a3b00; background: var(--color-secondary-light); }
.board-empty { height: 15rem; color: var(--color-text-muted); }
.board-empty strong,
.board-empty span { display: block; }
.board-empty strong { margin-bottom: var(--space-2); color: var(--color-text); font-size: var(--font-size-body-lg); }
.board-actions { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); margin-top: var(--space-5); }
.btn-group { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.board-pagination { margin-top: var(--space-10); text-align: center; }
.board-pagination .pg_wrap { display: inline-block; }
.board-pagination .pg_page,
.board-pagination .pg_current { display: inline-flex; align-items: center; justify-content: center; min-width: 2.65rem; height: 2.65rem; margin: 0.15rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); }
.board-pagination .pg_current { color: var(--color-white); background: var(--color-primary-800); border-color: var(--color-primary-800); }
.board-view__header { padding-bottom: var(--space-10); border-bottom: 2px solid var(--color-primary-900); }
.board-view__header .section-title { margin: var(--space-3) 0 var(--space-5); }
.board-view__meta { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-10); color: var(--color-text-muted); font-size: var(--font-size-body-sm); }
.board-view__meta div { display: flex; gap: var(--space-2); }
.board-view__meta dt { font-weight: var(--font-weight-semibold); color: var(--color-text); }
.board-files { display: grid; grid-template-columns: 8rem 1fr; gap: var(--space-4); padding: var(--space-5); background: var(--color-surface); border-bottom: 1px solid var(--color-border); }
.board-files a:hover { color: var(--color-primary-700); text-decoration: underline; }
.board-files span { color: var(--color-text-muted); font-size: var(--font-size-caption); }
.board-view__content { min-height: 20rem; padding: clamp(2rem, 5vw, 4rem) 0; border-bottom: 1px solid var(--color-border); }
.board-neighbors { margin-top: var(--space-10); border-top: 1px solid var(--color-border); }
.board-neighbors a { display: grid; grid-template-columns: 6rem 1fr; gap: var(--space-4); padding: var(--space-4); border-bottom: 1px solid var(--color-border); }
.board-neighbors a:hover strong { color: var(--color-primary-700); text-decoration: underline; }
.board-neighbors span { color: var(--color-text-muted); }
.board-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); padding: var(--space-10); background: var(--color-surface); border-top: 2px solid var(--color-primary-900); border-bottom: 1px solid var(--color-border); }
.form-field { min-width: 0; }
.form-field--full { grid-column: 1 / -1; }
.board-form__options { display: flex; flex-wrap: wrap; gap: var(--space-4); padding: var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-sm); }
.board-form__options legend { padding: 0 var(--space-2); color: var(--color-navy); font-weight: var(--font-weight-semibold); }
.board-form__options .form-check { margin-top: 0; }
.form-field > label:first-child { display: block; margin-bottom: var(--space-2); color: var(--color-navy); font-weight: var(--font-weight-semibold); }
.form-required { color: #b42318; font-size: var(--font-size-caption); }
.form-help,
.form-check { display: block; margin-top: var(--space-2); color: var(--color-text-muted); font-size: var(--font-size-body-sm); }
.form-check input { width: auto; min-height: auto; }
.board-editor textarea { min-height: 22rem; }

/* Board: gallery */
.gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.25rem, 2.5vw, 2rem); }
.gallery-card { position: relative; min-width: 0; background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--radius-md); box-shadow: var(--shadow-xs); overflow: hidden; transition: transform var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base); }
.gallery-card:hover { transform: translateY(-0.25rem); border-color: var(--color-primary-500); box-shadow: var(--shadow-sm); }
.gallery-card__link { display: block; height: 100%; }
.gallery-card__link:focus-visible { outline: 3px solid var(--color-primary-600); outline-offset: -3px; }
.gallery-card__media { position: relative; display: block; aspect-ratio: 16 / 10.5; overflow: hidden; background: var(--color-surface); }
.gallery-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 350ms ease; }
.gallery-card:hover .gallery-card__media img { transform: scale(1.035); }
.gallery-card__placeholder { display: grid; width: 100%; height: 100%; place-items: center; color: var(--color-primary-700); background: linear-gradient(145deg, var(--color-primary-050), var(--color-surface)); font-size: var(--font-size-caption); font-weight: var(--font-weight-bold); letter-spacing: 0.14em; }
.gallery-card__badge { position: absolute; top: var(--space-4); left: var(--space-4); }
.gallery-card__body { display: flex; min-height: 8.5rem; padding: var(--space-5); flex-direction: column; }
.gallery-card__title { display: -webkit-box; color: var(--color-navy); font-size: var(--font-size-body-lg); line-height: var(--line-height-title); -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.gallery-card__meta { display: flex; justify-content: space-between; gap: var(--space-3); margin-top: auto; padding-top: var(--space-5); color: var(--color-text-muted); font-size: var(--font-size-caption); }
.gallery-card__check { position: absolute; z-index: 2; top: var(--space-3); right: var(--space-3); display: flex; align-items: center; padding: 0.35rem; background: var(--color-white); border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); }
.gallery-card__check span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
.gallery-empty { display: grid; min-height: 18rem; place-content: center; text-align: center; color: var(--color-text-muted); background: var(--color-surface); border-top: 2px solid var(--color-primary-900); }
.gallery-empty strong { margin-bottom: var(--space-2); color: var(--color-text); font-size: var(--font-size-body-lg); }
.gallery-view__content img { display: block; max-width: 100%; height: auto; margin-right: auto; margin-left: auto; }

@media (max-width: 767px) {
    .board__header { display: block; }
    .board__header > p { margin-top: var(--space-3); }
    .board-search { grid-template-columns: 7.5rem minmax(0, 1fr); }
    .board-search .btn { grid-column: 1 / -1; }
    .board-table-wrap { overflow: visible; border-top: 0; }
    .board-table { display: block; min-width: 0; }
    .board-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
    .board-table tbody { display: grid; gap: var(--space-3); }
    .board-table tbody tr { position: relative; display: grid; grid-template-columns: auto 1fr; gap: var(--space-3); padding: var(--space-4); background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--radius-sm); }
    .board-table tbody tr.is-notice { background: var(--color-primary-050); border-color: rgba(7, 134, 154, 0.3); }
    .board-table td { display: block; padding: 0; border: 0; text-align: left; }
    .board-table td.board-table__subject { grid-column: 1 / -1; grid-row: 1; padding-right: 2.25rem; }
    .board-table__subject a { min-height: 2.75rem; align-items: flex-start; line-height: var(--line-height-title); }
    .board-table__number { grid-column: 1; grid-row: 2; width: auto; color: var(--color-text-muted); font-size: var(--font-size-caption); }
    .board-table__date { grid-column: 2; grid-row: 2; width: auto; color: var(--color-text-muted); font-size: var(--font-size-caption); text-align: right !important; }
    .board-table__date::before { content: "작성일 "; }
    .board-table__check { position: absolute; z-index: 1; top: var(--space-3); right: var(--space-3); width: auto; }
    .board-table__author,
    .board-table__hit { display: none !important; }
    .board-empty { display: grid !important; min-height: 12rem; padding: var(--space-5) !important; place-content: center; text-align: center !important; }
    .board-actions { align-items: stretch; flex-direction: column-reverse; }
    .board-actions > div { display: flex; flex-wrap: wrap; gap: var(--space-2); }
    .board-actions .btn-group { width: 100%; }
    .board-actions .btn-group .btn { min-height: 3rem; flex: 1; }
    .board-pagination { margin-top: var(--space-5); }
    .board-pagination .pg_wrap { display: flex; flex-wrap: wrap; justify-content: center; }
    .board-pagination .pg_page,
    .board-pagination .pg_current { min-width: 2.75rem; height: 2.75rem; }
    .board-files { grid-template-columns: 1fr; }
    .board-neighbors a { grid-template-columns: 4.5rem 1fr; }
    .board-form { grid-template-columns: 1fr; padding: var(--space-5); }
    .gallery-grid { grid-template-columns: 1fr; }
    .gallery-card__media { aspect-ratio: 16 / 10; }
    .gallery-card__body { min-height: 7.5rem; }
    .gallery-card__title { font-size: var(--font-size-body); }
    .gallery-card__meta { padding-top: var(--space-4); }
    .gallery-view .board-view__header .section-title { font-size: var(--font-size-content-title); }
    .gallery-view__content { min-height: 12rem; padding: var(--space-10) 0; }
}

@media (max-width: 480px) {
    .board-search { grid-template-columns: 1fr; max-width: none; }
    .board-search .btn { grid-column: auto; min-height: 3rem; }
    .board-view__meta { gap: var(--space-2) var(--space-4); }
    .gallery-card__body { padding: var(--space-4); }
    .gallery-card__meta { flex-wrap: wrap; }
}

@media (min-width: 768px) and (max-width: 900px) {
    .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
    .gallery-card,
    .gallery-card__media img { transition: none; }
    .gallery-card:hover { transform: none; }
    .gallery-card:hover .gallery-card__media img { transform: none; }
}

@media print {
    .subpage-hero,
    .subpage-tabs,
    .board-actions,
    .board-neighbors { display: none !important; }
    .subpage-body { padding: 0; }
    .board-view__content { color: #000; background: #fff; }
}

/* Program application */
.program-toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-10); }
.program-filter { display: flex; align-items: flex-end; gap: var(--space-2); }
.program-filter label { font-weight: var(--font-weight-semibold); }
.program-filter select { min-width: 10rem; min-height: 3rem; padding: 0.65rem 2.5rem 0.65rem 0.85rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-white); }
.program-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); }
.program-card { --program-accent: var(--color-primary-700); position: relative; display: flex; min-width: 0; min-height: 25rem; flex-direction: column; background: var(--color-white); border: 1px solid var(--color-border); border-top: 4px solid var(--program-accent); border-radius: var(--radius-md); box-shadow: var(--shadow-xs); overflow: hidden; transition: transform var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base); }
.program-card:hover { transform: translateY(-0.25rem); border-color: color-mix(in srgb, var(--program-accent) 42%, var(--color-border)); box-shadow: var(--shadow-md); }
.program-card[data-program-category="체험"] { --program-accent: #d46616; }
.program-card[data-program-category="상담"] { --program-accent: #3769b0; }
.program-card[data-program-category="설명회"] { --program-accent: #7656a7; }
.program-card[data-program-category="기타"] { --program-accent: #64747c; }
.program-card__top { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-6) var(--space-6) 0; }
.program-card__category { display: inline-flex; align-items: center; gap: 0.45rem; color: var(--program-accent); font-size: var(--font-size-body-sm); font-weight: var(--font-weight-bold); }
.program-card__category > span { width: 0.55rem; height: 0.55rem; background: var(--program-accent); border-radius: 50%; }
.program-card__body { display: flex; padding: var(--space-4) var(--space-6) var(--space-6); flex: 1; flex-direction: column; }
.program-card .content-title { margin-bottom: var(--space-3); font-size: clamp(1.25rem, 2vw, 1.55rem); line-height: 1.35; }
.program-card .content-title a:hover { color: var(--color-primary-700); text-decoration: underline; text-underline-offset: 0.2em; }
.program-card .body-text { display: -webkit-box; min-height: 3.4em; color: var(--color-text-muted); -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.program-card__schedule { margin-top: var(--space-5); padding: var(--space-4); background: var(--color-surface); border: 1px solid rgba(16, 47, 68, 0.05); border-radius: var(--radius-sm); }
.program-card__schedule span { display: block; margin-bottom: 0.35rem; color: var(--color-text-muted); font-size: var(--font-size-caption); font-weight: var(--font-weight-semibold); }
.program-card__schedule strong { color: var(--color-navy); font-size: var(--font-size-body-sm); letter-spacing: -0.02em; }
.program-card__schedule i { padding: 0 0.2rem; color: var(--program-accent); font-style: normal; }
.program-card__meta { display: grid; gap: var(--space-3); margin-top: var(--space-5); color: var(--color-text-muted); font-size: var(--font-size-body-sm); }
.program-card__meta div { display: grid; grid-template-columns: 4.8rem minmax(0, 1fr); gap: var(--space-2); }
.program-card__meta dt { color: var(--color-text); font-weight: var(--font-weight-semibold); }
.program-card__meta dt span { display: inline-block; width: 1.15rem; color: var(--program-accent); text-align: center; }
.program-card__meta dd { min-width: 0; overflow-wrap: anywhere; }
.program-card__link { display: flex; align-items: center; justify-content: space-between; min-height: 4rem; margin-top: auto; padding: 0 var(--space-6); color: var(--color-white); background: var(--color-navy); font-weight: var(--font-weight-bold); transition: background-color var(--transition-base); }
.program-card__link:hover, .program-card__link:focus-visible { color: var(--color-white); background: var(--program-accent); }
.program-card__arrow { display: grid; width: 1.9rem; height: 1.9rem; place-items: center; border: 1px solid rgba(255, 255, 255, 0.45); border-radius: 50%; transition: transform var(--transition-base); }
.program-card__link:hover .program-card__arrow { transform: translateX(0.2rem); }
.status-badge { display: inline-flex; align-items: center; min-height: 1.8rem; padding: 0.25rem 0.65rem; border-radius: var(--radius-pill); font-size: var(--font-size-caption); font-weight: var(--font-weight-bold); }
.status-badge--open, .status-badge--approved, .status-badge--completed { color: #075e46; background: #dff7ed; }
.status-badge--scheduled, .status-badge--received { color: #174ea6; background: #e8f0fe; }
.status-badge--waiting { color: #8a4b08; background: #fff1d6; }
.status-badge--closed, .status-badge--full, .status-badge--rejected, .status-badge--cancelled { color: #8f2530; background: #fde8ea; }
.program-empty { grid-column: 1 / -1; }
.program-detail, .program-apply, .program-lookup, .program-result { max-width: 58rem; }
.program-detail__top { display: flex; align-items: center; gap: var(--space-3); margin-bottom: var(--space-6); }
.program-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 2px solid var(--color-primary-900); }
.program-facts div { display: grid; grid-template-columns: 7rem 1fr; min-width: 0; padding: var(--space-4); border-bottom: 1px solid var(--color-border); }
.program-facts dt { color: var(--color-navy); font-weight: var(--font-weight-semibold); }
.program-detail__content { min-height: 16rem; padding: var(--space-12) 0; }
.program-actions { justify-content: flex-end; padding-top: var(--space-6); border-top: 1px solid var(--color-border); }
.program-form { margin-top: var(--space-6); }
.program-form textarea { resize: vertical; }
.privacy-summary { width: 100%; padding: var(--space-4); background: var(--color-white); border-radius: var(--radius-sm); font-size: var(--font-size-body-sm); }
.privacy-summary p + p { margin-top: var(--space-2); }
.program-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.notice-box { padding: var(--space-5); border-radius: var(--radius-sm); }
.notice-box--info { background: var(--color-primary-050); border-left: 4px solid var(--color-primary-600); }
.notice-box--warning { color: #6f4300; background: #fff6df; border-left: 4px solid #d58a00; }
.notice-box p { margin-top: var(--space-2); }
.result-card { padding: clamp(2rem, 6vw, 4rem); text-align: center; background: var(--color-surface); border-radius: var(--radius-lg); }
.result-card__icon { display: grid; width: 4rem; height: 4rem; margin: 0 auto var(--space-5); place-items: center; color: var(--color-white); background: var(--color-primary-700); border-radius: 50%; font-size: 2rem; }
.result-card__code { display: block; margin: var(--space-6) 0; color: var(--color-navy); font-size: var(--font-size-content-title); letter-spacing: 0.06em; }
.result-card .btn-group { justify-content: center; margin-top: var(--space-6); }
.result-card--lookup { text-align: left; }
.result-card--lookup .status-badge { margin-bottom: var(--space-4); }
.result-card--lookup .btn-group { justify-content: flex-start; }

@media (max-width: 900px) {
    .program-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
    .program-toolbar, .program-filter { align-items: stretch; flex-direction: column; }
    .program-grid { grid-template-columns: 1fr; }
    .program-card { min-height: 0; }
    .program-card__top { padding: var(--space-5) var(--space-5) 0; }
    .program-card__body { padding: var(--space-5); }
    .program-card__link { padding: 0 var(--space-5); }
    .program-facts { grid-template-columns: 1fr; }
    .program-facts div { grid-template-columns: 6.5rem 1fr; }
    .program-actions .btn { flex: 1; }
}

@media print {
    .program-toolbar, .program-actions, .program-filter, .program-form { display: none !important; }
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    min-width: 320px;
    color: var(--color-text);
    background: var(--color-white);
    font-family: var(--font-family-base);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
    word-break: keep-all;
    overflow-wrap: break-word;
}

body.is-menu-open {
    overflow: hidden;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
select,
textarea {
    font: inherit;
}

button {
    color: inherit;
}

img,
svg {
    display: block;
    max-width: 100%;
}

ul,
ol,
dl,
dd,
p,
h1,
h2,
h3,
h4 {
    margin: 0;
    padding: 0;
}

ul,
ol {
    list-style: none;
}

address {
    font-style: normal;
}

:focus-visible {
    outline: 3px solid var(--color-secondary);
    outline-offset: 3px;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skip-link {
    position: fixed;
    top: 0.75rem;
    left: 50%;
    z-index: 9999;
    padding: 0.75rem 1.25rem;
    color: var(--color-white);
    background: var(--color-black);
    border-radius: var(--radius-sm);
    transform: translate(-50%, -200%);
    transition: transform var(--transition-base);
}

.skip-link:focus {
    transform: translate(-50%, 0);
}

.container {
    width: min(calc(100% - 56px), var(--container-width));
    margin-inline: auto;
}

.section {
    position: relative;
    overflow: hidden;
    padding-block: var(--space-section);
    background: var(--color-white);
}

.section:nth-of-type(odd):not(.hero) {
    background: var(--color-section-muted);
}

.section > .container {
    position: relative;
    z-index: 1;
}

.text-display {
    font-size: var(--font-size-display);
    font-weight: var(--font-weight-bold);
    line-height: 1.08;
    letter-spacing: -0.055em;
}

.page-title {
    font-size: var(--font-size-page-title);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-tight);
    letter-spacing: -0.04em;
}

.page-eyebrow {
    color: var(--color-eyebrow);
    font-size: 0.7rem;
    font-weight: var(--font-weight-bold);
    line-height: 1.4;
    letter-spacing: 0.16em;
}

.section-title {
    color: var(--color-title);
    font-size: var(--font-size-section-title);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-title);
    letter-spacing: -0.04em;
}

.subtitle {
    color: var(--color-text-muted);
    font-size: 1.125rem;
}

.content-title {
    position: relative;
    color: var(--color-title);
    font-size: var(--font-size-content-title);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-title);
    letter-spacing: -0.025em;
}

.page-eyebrow + .content-title::after {
    display: inline-block;
    width: 3.5rem;
    height: 2rem;
    background: url("../img/content-title-mark-02.svg") center / contain no-repeat;
    vertical-align: -0.75rem;
    content: "";
    position: absolute;
    top: 50%;
    transform: translate(0, -50%);
}

@media (max-width: 767px) {
    .page-eyebrow + .content-title::after {
        width: 2.2rem;
        height: 1.6rem;
        margin-left: 0.35rem;
        vertical-align: -0.58rem;
    }
}

/* Process step cards with hover tracker */
.process-list {
    --process-current: "정보 수집";
    --process-index: "01 / 06";
    --process-progress: 16.66%;
    position: relative;
    display: grid;
    max-width: 86rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
    margin-inline: auto;
    padding: 0 0 3.85rem;
    overflow: visible;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.process-list:has(li:nth-child(2):hover) {
    --process-current: "교육·체험";
    --process-index: "02 / 06";
    --process-progress: 33.33%;
}

.process-list:has(li:nth-child(3):hover) {
    --process-current: "업종 선택";
    --process-index: "03 / 06";
    --process-progress: 50%;
}

.process-list:has(li:nth-child(4):hover) {
    --process-current: "지역 선정";
    --process-index: "04 / 06";
    --process-progress: 66.66%;
}

.process-list:has(li:nth-child(5):hover) {
    --process-current: "자금·주거";
    --process-index: "05 / 06";
    --process-progress: 83.33%;
}

.process-list:has(li:nth-child(6):hover) {
    --process-current: "정착 실행";
    --process-index: "06 / 06";
    --process-progress: 100%;
}

.process-list::before {
    position: absolute;
    right: 0;
    bottom: 1.35rem;
    left: 0;
    z-index: 1;
    display: block;
    height: 0.28rem;
    background:
        linear-gradient(90deg, var(--color-accent-orange), var(--color-primary-600)) 0 0 / var(--process-progress) 100% no-repeat,
        rgba(8, 123, 140, 0.1);
    border-radius: 999px;
    content: "";
    transition: background-size var(--transition-base);
}

.process-list::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    display: flex;
    justify-content: space-between;
    color: var(--color-primary-800);
    content: "현재 단계 · " var(--process-current) "      " var(--process-index);
    font-size: 0.9rem;
    font-weight: var(--font-weight-medium);
    letter-spacing: 0;
}

.process-list li,
.process-list li:nth-child(even),
.process-list li:nth-child(3),
.process-list li:nth-child(4),
.process-list li:nth-child(5),
.process-list li:nth-child(6) {
    position: relative;
    z-index: 1;
    display: grid;
    min-height: 17.4rem;
    grid-column: auto;
    grid-row: auto;
    grid-area: auto;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto 1fr auto auto;
    gap: 0;
    padding: 1.65rem 1.9rem 1.55rem;
    overflow: hidden;
    background:
        radial-gradient(circle at 100% 100%, rgba(8, 123, 140, 0.14) 0 5.2rem, transparent 5.3rem),
        linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(247, 251, 250, 0.94));
    border: 1px solid rgba(8, 123, 140, 0.11);
    border-radius: 1.45rem;
    box-shadow: 0 1.2rem 3rem rgba(7, 84, 110, 0.07);
    text-align: left;
    transition:
        border-color var(--transition-base),
        box-shadow var(--transition-base),
        transform var(--transition-base);
}

.process-list li:hover {
    border-color: rgba(8, 123, 140, 0.28);
    box-shadow: 0 1.55rem 3.8rem rgba(7, 84, 110, 0.12);
    transform: translateY(-0.35rem);
}

.process-list li::before {
    position: absolute;
    right: -3.4rem;
    bottom: -3.9rem;
    z-index: 0;
    display: block;
    width: 11rem;
    height: 11rem;
    background:
        radial-gradient(circle at 32% 28%, rgba(255, 255, 255, 0.42), transparent 46%),
        rgba(245, 130, 32, 0.13);
    border: 0;
    border-radius: 50%;
    box-shadow: none;
    content: "";
    transform: none;
}

.process-list li::after {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    z-index: 1;
    grid-column: 1;
    grid-row: 1;
    align-self: start;
    color: rgba(6, 60, 83, 0.26);
    content: "STEP " attr(data-step);
    font-size: 0.86rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.08em;
    line-height: 1;
    transform: none;
    transition: color var(--transition-base);
}

.process-list li:hover::after {
    color: var(--color-accent-orange);
}

.process-list__number {
    position: relative;
    z-index: 1;
    grid-column: 2;
    grid-row: 1;
    display: flex;
    width: 3.25rem;
    height: 3.25rem;
    min-height: 0;
    align-items: center;
    justify-content: center;
    align-self: start;
    color: var(--color-primary-800);
    background: var(--color-white);
    border: 1px solid rgba(8, 123, 140, 0.18);
    border-radius: 0.9rem;
    box-shadow: none;
    font-size: 0.92rem;
    font-weight: var(--font-weight-bold);
    transform: none;
    transition:
        color var(--transition-base),
        background-color var(--transition-base),
        border-color var(--transition-base),
        transform var(--transition-base);
}

.process-list__number::after {
    display: none;
}

.process-list li:hover .process-list__number {
    color: var(--color-white);
    background: var(--color-primary-800);
    border-color: var(--color-primary-800);
    transform: rotate(-4deg);
}

.process-list__icon {
    display: none;
}

.process-list strong,
.process-list p {
    position: relative;
    z-index: 1;
    grid-column: 1 / -1;
}

.process-list strong {
    grid-row: 3;
    margin-top: 0;
    color: var(--color-title);
    font-size: clamp(1.35rem, 1.65vw, 1.65rem);
    line-height: 1.28;
    transition: color var(--transition-base);
}

.process-list li:hover strong {
    color: var(--color-primary-800);
}

.process-list p {
    grid-row: 4;
    max-width: 23rem;
    margin-top: 0.85rem;
    color: var(--color-text-muted);
    font-size: 0.98rem;
    line-height: 1.75;
}

@media (max-width: 767px) {
    .process-list {
        grid-template-columns: 1fr;
        gap: 0.9rem;
        padding-bottom: 3.25rem;
    }

    .process-list li,
    .process-list li:nth-child(even),
    .process-list li:nth-child(3),
    .process-list li:nth-child(4),
    .process-list li:nth-child(5),
    .process-list li:nth-child(6) {
        min-height: 12.5rem;
        padding: 1.35rem;
        border-radius: 1.1rem;
    }

    .process-list::after {
        font-size: 0.78rem;
    }

    .process-list__number {
        width: 2.8rem;
        height: 2.8rem;
        border-radius: 0.75rem;
        font-size: 0.84rem;
    }

    .process-list strong {
        font-size: 1.24rem;
    }

    .process-list p {
        margin-top: 0.5rem;
        font-size: 0.9rem;
    }
}

.content-title + .caption {
    display: none;
}

.body-text-lg {
    color: var(--color-text-muted);
    font-size: var(--font-size-body-lg);
    line-height: var(--line-height-body);
}

.body-text {
    color: var(--color-text-muted);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
}

.body-text-sm {
    color: var(--color-text-muted);
    font-size: var(--font-size-body-sm);
    line-height: 1.65;
}

.caption {
    color: var(--color-text-muted);
    font-size: var(--font-size-caption);
}

.text-primary {
    color: var(--color-primary-600);
}

.text-display .text-primary,
.section-title .text-primary,
.content-title .text-primary {
    color: var(--color-title);
}

.text-bold {
    font-weight: var(--font-weight-bold);
}

.text-medium {
    font-weight: var(--font-weight-medium);
}

.button-group {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.btn {
    display: inline-flex;
    min-height: 3.25rem;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 0.75rem 1.4rem;
    border: 1px solid transparent;
    border-radius: 0.75rem;
    font-weight: var(--font-weight-semibold);
    line-height: 1.25;
    cursor: pointer;
    transition: color var(--transition-base), background-color var(--transition-base), border-color var(--transition-base), transform var(--transition-base);
}

.btn:hover {
    transform: translateY(-2px);
}

.btn--primary {
    color: var(--color-white);
    background: var(--color-primary-700);
}

.btn--primary:hover {
    background: var(--color-primary-800);
}

.btn--secondary {
    color: var(--color-white);
    background: var(--color-navy);
}

.btn--secondary:hover {
    background: var(--color-primary-800);
}

.btn--outline {
    color: var(--color-navy);
    background: transparent;
    border-color: #b8c9cf;
}

.btn--outline:hover {
    color: var(--color-primary-700);
    background: var(--color-white);
    border-color: var(--color-primary-600);
}

.btn--light {
    color: var(--color-primary-900);
    background: var(--color-white);
}

.btn--light:hover {
    background: var(--color-primary-050);
}

.btn--sm {
    min-height: 2.75rem;
    padding: 0.6rem 1.1rem;
    font-size: var(--font-size-body-sm);
}

.btn--lg {
    min-height: 3.75rem;
    padding-inline: 1.75rem;
}

.btn__icon {
    font-size: 1.2em;
}

.btn:disabled,
.btn.is-disabled {
    color: #8a989f;
    background: #e7ecee;
    border-color: #e7ecee;
    cursor: not-allowed;
    transform: none;
}

.text-link {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    color: var(--color-primary-800);
    font-weight: var(--font-weight-bold);
}

.text-link span {
    transition: transform var(--transition-base);
}

.text-link:hover span {
    transform: translateX(0.35rem);
}

.text-link--light {
    color: var(--color-white);
}

.badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.75rem;
    padding: 0.25rem 0.65rem;
    color: var(--color-primary-800);
    background: var(--color-primary-050);
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: var(--font-weight-bold);
}

.badge--light {
    color: var(--color-white);
    background: rgba(255, 255, 255, 0.17);
}

.badge--new {
    min-height: 1.45rem;
    margin-left: 0.4rem;
    padding: 0.15rem 0.45rem;
    color: #9a3c00;
    background: var(--color-secondary-light);
    vertical-align: 0.1em;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(255, 255, 255, 0.96);
    border-bottom: 1px solid rgba(21, 66, 82, 0.08);
    box-shadow: 0 0.65rem 1.8rem rgba(5, 60, 86, 0.06);
    backdrop-filter: blur(0.7rem);
}

.site-header__main-inner {
    display: flex;
    min-height: var(--header-height);
    align-items: center;
}

.site-logo {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    color: var(--color-navy);
}

.site-logo img {
    display: block;
    width: auto;
    height: 2.6rem;
}

.site-logo__mark {
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    flex: 0 0 auto;
    place-items: center;
    color: var(--color-primary-600);
}

.site-logo__mark svg {
    width: 100%;
    fill: currentColor;
}

.site-logo__text {
    display: flex;
    flex-direction: column;
}

.site-logo__text strong {
    font-size: 1.25rem;
    line-height: 1.25;
    letter-spacing: -0.04em;
}

.site-logo__text small {
    color: #78909a;
    font-size: 0.48rem;
    font-weight: var(--font-weight-semibold);
    letter-spacing: 0.08em;
}

.global-nav {
    align-self: stretch;
    margin-left: auto;
}

.global-nav__list {
    display: flex;
    height: 100%;
    align-items: stretch;
}

.global-nav__item {
    position: relative;
    display: flex;
    align-items: stretch;
}

.global-nav__item::after {
    position: absolute;
    top: 100%;
    right: 0;
    left: 0;
    height: 0.35rem;
    content: "";
}

.global-nav__link {
    position: relative;
    display: flex;
    min-width: 7rem;
    align-items: center;
    justify-content: center;
    padding-inline: 1.15rem;
    color: var(--color-navy);
    font-size: 1rem;
    font-weight: var(--font-weight-semibold);
}

.global-nav__link::after {
    position: absolute;
    right: 1rem;
    bottom: 0;
    left: 1rem;
    height: 3px;
    background: var(--color-primary-600);
    content: "";
    transform: scaleX(0);
    transition: transform var(--transition-base);
}

.global-nav__link:hover,
.global-nav__link.is-current {
    color: var(--color-primary-700);
}

.global-nav__link:hover::after,
.global-nav__link.is-current::after {
    transform: scaleX(1);
}

.global-nav__toggle {
    display: none;
}

.global-nav__submenu {
    position: absolute;
    top: 100%;
    left: 50%;
    width: 11rem;
    padding: 0.7rem;
    visibility: hidden;
    opacity: 0;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
    transform: translate(-50%, 0.6rem);
    transition: opacity var(--transition-base), visibility var(--transition-base), transform var(--transition-base);
}

.global-nav__submenu a {
    display: block;
    padding: 0.6rem 0.75rem;
    border-radius: 0.45rem;
    color: var(--color-text);
    font-size: var(--font-size-body-sm);
}

.global-nav__submenu a:hover,
.global-nav__submenu a:focus-visible {
    color: var(--color-primary-800);
    background: var(--color-primary-050);
}

.global-nav__item:hover .global-nav__submenu,
.global-nav__item:focus-within .global-nav__submenu {
    visibility: visible;
    opacity: 1;
    transform: translate(-50%, 0);
}

.header-consult {
    display: inline-flex;
    min-height: 2.8rem;
    align-items: center;
    gap: 0.45rem;
    margin-left: 1rem;
    padding: 0.65rem 1rem;
    color: var(--color-white);
    background: var(--color-primary-700);
    border-radius: 999px;
    font-size: var(--font-size-body-sm);
    font-weight: var(--font-weight-bold);
}

.header-consult:hover {
    background: var(--color-primary-800);
}

.mobile-menu-button {
    position: relative;
    display: none;
    width: 2.75rem;
    height: 2.75rem;
    padding: 0.55rem;
    background: transparent;
    border: 0;
    cursor: pointer;
}

.mobile-menu-button > span:not(.sr-only) {
    position: absolute;
    left: 50%;
    display: block;
    width: 1.45rem;
    height: 2px;
    background: var(--color-navy);
    border-radius: 999px;
    transition: transform var(--transition-base), opacity var(--transition-base);
    transform: translateX(-50%);
}

.mobile-menu-button > span:nth-of-type(2) {
    top: 0.85rem;
}

.mobile-menu-button > span:nth-of-type(3) {
    top: 1.35rem;
}

.mobile-menu-button > span:nth-of-type(4) {
    top: 1.85rem;
}

.hero {
    position: relative;
    min-height: 42rem;
    overflow: hidden;
    background: linear-gradient(128deg, #eefaf9 0%, #f5fbfa 48%, #e2f3f3 100%);
}

.hero::before {
    position: absolute;
    right: -12vw;
    bottom: -38%;
    width: 65vw;
    height: 65vw;
    background: rgba(255, 255, 255, 0.48);
    border-radius: 50%;
    content: "";
}

.hero__backdrop {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.hero__orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(2px);
}

.hero__orb--one {
    top: 9%;
    left: 43%;
    width: 1.1rem;
    height: 1.1rem;
    background: var(--color-secondary);
}

.hero__orb--two {
    top: 22%;
    left: 47%;
    width: 0.45rem;
    height: 0.45rem;
    background: var(--color-primary-500);
}

.hero__inner {
    position: relative;
    display: grid;
    min-height: 42rem;
    grid-template-columns: minmax(0, 0.92fr) minmax(28rem, 1.08fr);
    align-items: center;
    gap: 3rem;
    padding-block: 4.5rem 7rem;
}

.hero__content {
    position: relative;
    z-index: 2;
}

.hero__content .page-eyebrow {
    margin-bottom: 1.25rem;
}

.hero__content .body-text-lg {
    margin-top: 1.7rem;
}

.hero__content .button-group {
    margin-top: 2rem;
}

.hero__stats {
    display: flex;
    margin-top: 3.25rem;
    padding-top: 1.4rem;
    border-top: 1px solid rgba(7, 99, 119, 0.17);
}

.hero__stats > div {
    min-width: 7rem;
}

.hero__stats > div + div {
    margin-left: 1.5rem;
    padding-left: 1.5rem;
    border-left: 1px solid rgba(7, 99, 119, 0.17);
}

.hero__stats dt {
    color: var(--color-text-muted);
    font-size: 0.75rem;
}

.hero__stats dd {
    color: var(--color-primary-900);
    font-size: 0.875rem;
}

.hero__stats strong {
    margin-right: 0.18rem;
    font-size: 1.6rem;
}

.hero__visual {
    position: relative;
    z-index: 1;
    min-width: 0;
}

.hero__image-frame {
    position: relative;
    overflow: hidden;
    aspect-ratio: 1.05 / 1;
    border: 0.7rem solid rgba(255, 255, 255, 0.75);
    border-radius: 48% 48% 2rem 48%;
    box-shadow: var(--shadow-md);
}

.hero__image-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero__floating-card {
    position: absolute;
    z-index: 2;
    color: var(--color-navy);
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(255, 255, 255, 0.9);
    box-shadow: var(--shadow-sm);
    backdrop-filter: blur(0.5rem);
}

.hero__floating-card--top {
    top: 10%;
    right: -2rem;
    padding: 1rem 1.25rem;
    border-radius: var(--radius-md);
    transform: rotate(2deg);
}

.hero__floating-card--top span,
.hero__floating-card--top strong {
    display: block;
}

.hero__floating-card--top span {
    color: var(--color-primary-700);
    font-size: 0.7rem;
}

.hero__floating-card--top strong {
    font-size: 0.95rem;
}

.hero__floating-card--bottom {
    bottom: 6%;
    left: -2.5rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.9rem 1.15rem;
    border-radius: var(--radius-md);
}

.hero__card-icon {
    display: grid;
    width: 2.3rem;
    height: 2.3rem;
    flex: 0 0 auto;
    place-items: center;
    color: var(--color-white);
    background: var(--color-primary-600);
    border-radius: 50%;
}

.hero__floating-card--bottom strong,
.hero__floating-card--bottom small {
    display: block;
}

.hero__floating-card--bottom strong {
    font-size: 0.8rem;
}

.hero__floating-card--bottom small {
    color: var(--color-text-muted);
    font-size: 0.65rem;
}

.hero--banner {
    min-height: 48rem;
    color: var(--color-title);
    background:
        linear-gradient(180deg, #f6fbfa 0%, #ffffff 76%),
        var(--color-white);
}

.hero--banner > .container {
    width: 100%;
}

.hero--banner::before {
    display: none;
}

.hero--banner::after {
    display: none;
}

.hero__layout {
    position: relative;
    z-index: 1;
    display: grid;
    width: 100%;
    min-height: 48rem;
    grid-template-columns: 1fr;
    gap: 0;
    margin-inline: 0;
    padding-block: 0 4.5rem;
}

.hero__scene {
    position: relative;
    min-height: 40rem;
    overflow: hidden;
    background:
        linear-gradient(120deg, rgba(255, 255, 255, 0.96) 0 43%, rgba(255, 255, 255, 0.52) 43% 54%, rgba(7, 84, 110, 0.05) 54%),
        #eef8f7;
    border-radius: 0 0 3.5rem 0;
}

.hero__scene::before {
    position: absolute;
    top: 3.2rem;
    right: 0;
    left: 0;
    height: 1px;
    background: rgba(7, 84, 110, 0.14);
    border-radius: 0;
    content: "";
}



.hero__message {
    position: absolute;
    top: 6.2rem;
    left: max(3.6rem, calc((100vw - var(--container-width)) / 2 + 20px));
    z-index: 4;
    max-width: 44rem;
    padding-top: 0;
}

.hero__sky-word {
    position: absolute;
    right: max(2rem, calc((100vw - var(--container-width)) / 2 + 20px));
    bottom: 1.4rem;
    left: auto;
    z-index: 1;
    margin: 0;
    color: rgba(6, 60, 83, 0.075);
    font-size: clamp(5rem, 13vw, 12rem);
    font-weight: 800;
    letter-spacing: -0.08em;
    line-height: 0.76;
    text-transform: uppercase;
    white-space: nowrap;
    writing-mode: horizontal-tb;
}

.hero__kicker {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    margin-bottom: 1.25rem;
    padding-inline: 0.78rem;
    color: var(--color-primary-800);
    background: transparent;
    border: 0;
    border-radius: 0;
    font-size: 0.78rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.16em;
}

.hero__kicker::before {
    width: 3.8rem;
    height: 2px;
    margin-right: 0.75rem;
    background: var(--color-accent-orange);
    content: "";
}

.hero--banner .text-display {
    color: var(--color-title);
    font-size: clamp(3.6rem, 7.4vw, 7.2rem);
    line-height: 0.88;
}

.hero__title {
    display: block;
    width: min-content;
    max-width: 100%;
}

.hero__title-mark {
    display: block;
    flex: 0 0 auto;
    width: clamp(4.8rem, 7.2vw, 6.7rem);
    margin-top: 0.08em;
}

.hero__title-mark svg {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
}

.hero__mark-wave,
.hero__mark-island,
.hero__mark-route {
    fill: none;
    stroke: #246bb6;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 5;
}

.hero__mark-route {
    stroke: #1d4f9a;
    stroke-dasharray: 1 9;
    stroke-width: 4.5;
}

.hero__mark-island {
    stroke-width: 4.8;
}

.hero__mark-sun {
    fill: #fff4cc;
    stroke: #f58220;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 3.6;
}

.hero__mark-dot--one {
    fill: #f58220;
}

.hero__mark-dot--two {
    fill: #e4b514;
}

.hero__mark-dot--three {
    fill: #f58220;
}

.hero__title-copy {
    display: grid;
    gap: 0.04em;
    font-weight: 800;
    letter-spacing: -0.045em;
}

.hero__title-line {
    display: inline-flex;
    align-items: baseline;
    white-space: nowrap;
}

.hero__title-blue {
    color: #1f5fae;
    font-size: 0.78em;
}

.hero__title-navy {
    color: #1f2f78;
    font-size: 0.78em;
}

.hero__title-orange {
    color: #f58220;
    margin-inline: 0.04em 0.01em;
}

.hero--banner .body-text-lg {
    max-width: 31rem;
    margin-top: 2rem;
    color: #1b313a;
    font-weight: var(--font-weight-medium);
}

.hero__contact {
    display: grid;
    width: fit-content;
    grid-template-columns: 3.25rem auto;
    grid-template-areas:
        "icon phone"
        "icon time";
    align-items: center;
    gap: 0.22rem 0.85rem;
    margin-top: 2.2rem;
    padding: 0.85rem 1.35rem 0.9rem 0.95rem;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(246, 251, 250, 0.88));
    border: 1px solid rgba(8, 123, 140, 0.14);
    border-left: 0.28rem solid var(--color-accent-orange);
    border-radius: 1rem;
    box-shadow: 0 1rem 2.4rem rgba(7, 84, 110, 0.1);
}

.hero__contact::before {
    display: grid;
    width: 3.25rem;
    height: 3.25rem;
    grid-area: icon;
    place-items: center;
    color: var(--color-white);
    background: linear-gradient(145deg, var(--color-primary-800), var(--color-primary-600));
    border-radius: 50%;
    box-shadow: 0 0.65rem 1.35rem rgba(8, 123, 140, 0.18);
    content: "☎";
    font-size: 1.15rem;
    font-weight: var(--font-weight-bold);
}

.hero__contact strong {
    grid-area: phone;
    color: var(--color-title);
    font-size: 1.95rem;
    letter-spacing: -0.02em;
    line-height: 1;
}

.hero__contact span {
    grid-area: time;
    color: var(--color-primary-800);
    font-size: var(--font-size-body-sm);
    font-weight: var(--font-weight-bold);
}

.hero__photo-panel {
    position: absolute;
    top: 5.1rem;
    right: max(2rem, calc((100vw - var(--container-width)) / 2 + 20px));
    bottom: 5.4rem;
    z-index: 2;
    width: min(53vw, 48rem);
    overflow: hidden;
    background: var(--color-primary-050);
    border-radius: 12rem 0 0 1.6rem;
    box-shadow: 0 2rem 5rem rgba(9, 66, 84, 0.2);
}

.hero__photo-panel::before {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(90deg, rgba(6, 60, 83, 0.36), rgba(6, 60, 83, 0.02) 42%, rgba(6, 60, 83, 0.2)),
        linear-gradient(180deg, transparent 62%, rgba(3, 31, 42, 0.36));
    content: "";
}

.hero__photo-panel img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.03);
}

.hero__field-note {
    position: absolute;
    right: max(2.2rem, calc((100vw - var(--container-width)) / 2 + 42px));
    bottom: 6.7rem;
    z-index: 3;
    display: grid;
    gap: 0.45rem;
    width: min(18rem, 24vw);
    padding: 1.15rem 1.25rem;
    color: var(--color-white);
    background: rgba(6, 60, 83, 0.74);
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 1rem;
    backdrop-filter: blur(0.4rem);
}

.hero__field-note span {
    color: rgba(255, 255, 255, 0.74);
    font-size: 0.7rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.14em;
}

.hero__field-note strong {
    color: var(--color-white);
    font-size: 1.05rem;
}

.hero__cloud {
    position: absolute;
    z-index: 1;
    width: 12rem;
    height: 7rem;
    background: rgba(255, 255, 255, 0.62);
    border-radius: 999px 999px 0 0;
}

.hero__cloud::before,
.hero__cloud::after {
    position: absolute;
    bottom: 0;
    background: inherit;
    border-radius: 50% 50% 0 0;
    content: "";
}

.hero__cloud::before {
    left: -3rem;
    width: 7rem;
    height: 5rem;
}

.hero__cloud::after {
    right: -4rem;
    width: 8rem;
    height: 6rem;
}

.hero__cloud--one {
    bottom: 9.8rem;
    left: 14%;
}

.hero__cloud--two {
    right: 5%;
    bottom: 10.5rem;
    transform: scale(1.18);
}

.hero__island {
    position: absolute;
    bottom: 8.3rem;
    left: 0;
    z-index: 2;
    width: 22rem;
    height: 4rem;
    background: #65bf52;
    border-radius: 50% 70% 0 0;
}

.hero__island::after {
    position: absolute;
    right: -10rem;
    bottom: 0;
    width: 18rem;
    height: 3rem;
    background: #7ccd63;
    border-radius: 60% 70% 0 0;
    content: "";
}

.hero__lighthouse {
    position: absolute;
    bottom: 8.35rem;
    left: 11rem;
    z-index: 3;
    width: 1.5rem;
    height: 4.8rem;
    background: #ee4338;
    clip-path: polygon(26% 0, 74% 0, 100% 100%, 0 100%);
}

.hero__lighthouse::before {
    position: absolute;
    top: -0.55rem;
    left: 50%;
    width: 1.9rem;
    height: 0.7rem;
    background: #d92f2a;
    border-radius: 0.2rem;
    content: "";
    transform: translateX(-50%);
}

.hero__water {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 2;
    height: 5.5rem;
    background: linear-gradient(180deg, #2388d7, #176ebf);
}

.hero__boat {
    position: absolute;
    right: 8%;
    bottom: 5.8rem;
    z-index: 4;
    width: min(25rem, 34vw);
}

.hero__boat svg {
    display: block;
    width: 100%;
    height: auto;
}

.hero__boat-wave {
    fill: none;
    stroke: #fff;
    stroke-linecap: round;
    stroke-width: 13;
}

.hero__boat-body {
    fill: #2179c5;
}

.hero__boat-line,
.hero__boat-rail {
    fill: none;
    stroke: #fff;
    stroke-linecap: round;
    stroke-width: 4;
}

.hero__boat-cabin {
    fill: #f5f5f0;
}

.hero__boat-window {
    fill: none;
    stroke: #333;
    stroke-linecap: round;
    stroke-width: 5;
}

.hero__boat-tube {
    fill: #fff;
    stroke: #f15f4e;
    stroke-width: 4;
}

.hero__menu {
    z-index: 3;
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    width: min(calc(100% - 56px), var(--container-width));
    margin-top: -3.2rem;
    margin-inline: auto;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(8, 123, 140, 0.12);
    border-radius: 1.2rem;
    box-shadow: 0 1rem 3rem rgba(13, 71, 91, 0.12);
}

.hero__menu-card {
    position: relative;
    display: grid;
    min-height: 9.4rem;
    align-content: space-between;
    padding: 1.35rem 1.45rem;
    color: var(--color-title);
    background: transparent;
    border-left: 1px solid rgba(8, 123, 140, 0.1);
    border-radius: 0;
    box-shadow: none;
}

.hero__menu-card:first-child {
    border-left: 0;
}

.hero__menu-card strong {
    display: block;
    font-size: 1.45rem;
    line-height: 1.15;
}

.hero__menu-card em {
    display: block;
    color: var(--color-text-muted);
    font-size: 0.86rem;
    font-style: normal;
    line-height: 1.45;
}

.hero__menu-icon {
    display: inline-flex;
    width: fit-content;
    min-height: 2rem;
    align-items: center;
    padding-inline: 0.65rem;
    color: var(--color-primary-800);
    background: var(--color-primary-050);
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: var(--font-weight-bold);
}

.hero__menu-card--orange {
    background: transparent;
}

.hero__menu-card--green {
    background: transparent;
}

.hero__menu-card--blue {
    background: transparent;
}

.hero__menu-card--red {
    background: transparent;
}

.hero__menu-card--orange::before,
.hero__menu-card--green::before,
.hero__menu-card--blue::before,
.hero__menu-card--red::before {
    position: absolute;
    right: 1.35rem;
    bottom: 1.2rem;
    width: 2.6rem;
    height: 0.28rem;
    border-radius: 999px;
    content: "";
}

.hero__menu-card--orange::before {
    background: var(--color-accent-orange);
}

.hero__menu-card--green::before {
    background: var(--color-accent-green);
}

.hero__menu-card--blue::before {
    background: var(--color-accent-blue);
}

.hero__menu-card--red::before {
    background: #e64f3d;
}

.hero__menu-card:hover {
    color: var(--color-title);
    background: rgba(240, 251, 250, 0.82);
    transform: none;
}

.quick-service {
    position: relative;
    z-index: 5;
    margin-top: -2.4rem;
}

.quick-service__panel {
    display: grid;
    min-height: 7rem;
    grid-template-columns: 12rem 1fr;
    align-items: stretch;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(8, 123, 140, 0.1);
    border-radius: 1.35rem;
    box-shadow: 0 1rem 2.8rem rgba(5, 60, 86, 0.1);
}

.quick-service__heading {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 1.5rem 1.75rem;
    color: var(--color-title);
    background: linear-gradient(135deg, #eefaf8, #ffffff);
    border-right: 1px solid rgba(8, 123, 140, 0.1);
}

.quick-service__heading .page-eyebrow {
    margin-bottom: 0.35rem;
}

.quick-service__heading .content-title {
    color: var(--color-title);
}

.quick-service__list {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
}

.quick-service__list li {
    min-width: 0;
}

.quick-service__list li + li {
    border-left: 1px solid rgba(8, 123, 140, 0.09);
}

.quick-service__list a {
    display: flex;
    height: 100%;
    min-height: 7rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 1rem 0.5rem;
    color: #111;
    font-size: 0.875rem;
    font-weight: var(--font-weight-semibold);
    text-align: center;
    transition: color var(--transition-base), background-color var(--transition-base);
}

.quick-service__list a:hover {
    color: var(--color-primary-800);
    background: #f3fbfa;
}

.quick-service__icon {
    display: grid;
    width: 2.7rem;
    height: 2.7rem;
    place-items: center;
    color: #0b7a8d;
    background: #eaf8f6;
    border-radius: 50%;
}

.quick-service__icon svg {
    width: 1.55rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.6;
}

.quick-service--featured {
    margin-top: -5rem;
}

.quick-service--featured .quick-service__panel {
    grid-template-columns: 11.5rem 1fr;
    background: rgba(255, 255, 255, 0.96);
}

.quick-service--featured .quick-service__list {
    gap: 0.75rem;
    padding: 0.9rem;
}

.quick-service--featured .quick-service__list li + li {
    border-left: 0;
}

.quick-service--featured .quick-service__item a {
    min-height: 10.25rem;
    align-items: flex-start;
    padding: 1.25rem;
    color: var(--color-white);
    border-radius: 1rem;
    box-shadow: 0 0.9rem 1.8rem rgba(31, 64, 82, 0.12);
}

.quick-service--featured .quick-service__item a:hover {
    color: var(--color-white);
    background: inherit;
    transform: translateY(-0.25rem);
}

.quick-service--featured .quick-service__item strong,
.quick-service--featured .quick-service__item small {
    display: block;
}

.quick-service--featured .quick-service__item strong {
    margin-top: 0.65rem;
    font-size: 1.05rem;
}

.quick-service--featured .quick-service__item small {
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.76rem;
    line-height: 1.45;
}

.quick-service--featured .quick-service__icon {
    color: var(--color-white);
    background: rgba(255, 255, 255, 0.18);
    border-radius: 0.9rem;
}

.quick-service__item--orange a {
    background: linear-gradient(145deg, #f29922, #f6b33e);
}

.quick-service__item--green a {
    background: linear-gradient(145deg, #58b933, #87d927);
}

.quick-service__item--blue a {
    background: linear-gradient(145deg, #2474d6, #4967ef);
}

.quick-service__item--red a {
    background: linear-gradient(145deg, #ef4538, #ff6b4d);
}

.quick-service__item--purple a {
    background: linear-gradient(145deg, #7b3ee6, #9b43ed);
}

.section-heading {
    position: relative;
    margin-bottom: 2.75rem;
}

.section-heading .page-eyebrow,
.notice-layout__heading .page-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0;
    padding: 0.35rem 0.72rem;
    background: var(--color-eyebrow-bg);
    border: 1px solid var(--color-eyebrow-border);
    border-radius: 999px;
    letter-spacing: 0.08em;
}

.section-heading .page-eyebrow::before,
.notice-layout__heading .page-eyebrow::before {
    width: 0.42rem;
    height: 0.42rem;
    background: var(--color-eyebrow-dot);
    border-radius: 50%;
    content: "";
}

.section-heading .page-eyebrow + .section-title,
.notice-layout__heading .page-eyebrow + .section-title {
    margin-top: 0.65rem;
}

.section-heading--split {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
}

.section-heading--center {
    max-width: 45rem;
    margin-inline: auto;
    text-align: center;
}

.section-heading--center .subtitle {
    margin-top: 0.75rem;
}

.home-tabs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.home-tabs a {
    display: inline-flex;
    min-height: 2.5rem;
    align-items: center;
    padding-inline: 1rem;
    color: var(--color-text-muted);
    border-radius: 999px;
    font-size: var(--font-size-body-sm);
    font-weight: var(--font-weight-bold);
}

.home-tabs a:hover,
.home-tabs a.is-active {
    color: var(--color-primary-800);
    background: var(--color-primary-050);
}

.service-card-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.05rem;
}

.service-card-grid--featured {
    grid-template-columns: minmax(20rem, 1.05fr) minmax(0, 1.35fr);
    grid-auto-rows: auto;
    align-items: stretch;
}

.service-card {
    position: relative;
    overflow: hidden;
    display: flex;
    min-height: 0;
    flex-direction: column;
    justify-content: space-between;
    padding: 1.25rem 1.35rem 1.25rem 1.5rem;
    background: rgba(255, 255, 255, 0.78);
    border: 0;
    border-left: 0.28rem solid rgba(8, 123, 140, 0.18);
    border-radius: 0.8rem;
    box-shadow: none;
    transition: background-color var(--transition-base), transform var(--transition-base);
}

.service-card::after {
    display: none;
}

.service-card:hover {
    background: var(--color-white);
    transform: translateX(0.2rem);
}

.service-card--primary {
    min-height: 20rem;
    grid-row: span 4;
    padding: 2rem;
    color: var(--color-white);
    background:
        linear-gradient(145deg, rgba(5, 84, 116, 0.95), rgba(14, 136, 150, 0.9)),
        url("../img/mvisual03.jpg") center / cover;
    border: 0;
    box-shadow: 0 1.35rem 3rem rgba(5, 60, 86, 0.18);
}

.service-card h3 {
    margin-top: 0.55rem;
    color: var(--color-title);
    font-size: 1.05rem;
    line-height: 1.4;
}

.service-card--primary h3 {
    max-width: 17rem;
    color: var(--color-white);
    font-size: 1.7rem;
    line-height: 1.25;
}

.service-card--primary .body-text-sm {
    max-width: 16rem;
    color: rgba(255, 255, 255, 0.86);
}

.service-card dl {
    margin-top: 1rem;
    font-size: 0.78rem;
}

.service-card dl div {
    display: grid;
    grid-template-columns: 3rem 1fr;
    gap: 0.6rem;
}

.service-card dl div + div {
    margin-top: 0.35rem;
}

.service-card dt {
    color: var(--color-primary-700);
    font-weight: var(--font-weight-bold);
}

.service-card dd {
    color: var(--color-text-muted);
}

.service-card > a {
    display: inline-flex;
    width: fit-content;
    min-height: 2.2rem;
    align-items: center;
    margin-top: 0.8rem;
    padding-inline: 0;
    color: var(--color-primary-800);
    background: transparent;
    border-radius: 0;
    font-size: 0.78rem;
    font-weight: var(--font-weight-bold);
}

.service-card--primary > a {
    color: #063543;
    background: var(--color-white);
}

.service-card--primary .badge {
    color: var(--color-white);
    background: rgba(255, 255, 255, 0.18);
}

.service-card--green {
    border-left-color: var(--color-accent-green);
}

.service-card--blue {
    border-left-color: var(--color-accent-blue);
}

.service-card--orange {
    border-left-color: var(--color-accent-orange);
}

.service-card--mint {
    border-left-color: var(--color-accent-mint);
}

.service-board {
    position: relative;
    display: grid;
    grid-template-columns: minmax(20rem, 0.78fr) minmax(0, 1.22fr);
    gap: 1rem;
    align-items: stretch;
    overflow: visible;
}

.service-board::before {
    display: none;
}

.service-board__lead {
    position: relative;
    overflow: hidden;
    min-height: 29rem;
    padding: clamp(2rem, 3vw, 2.8rem);
    color: var(--color-white);
    background:
        linear-gradient(160deg, rgba(4, 48, 66, 0.95), rgba(8, 123, 140, 0.72)),
        url("../img/mvisual03.jpg") center / cover;
    border-radius: 1.6rem 0.35rem 1.6rem 1.6rem;
    box-shadow: 0 1.25rem 3.3rem rgba(8, 65, 84, 0.16);
}

.service-board__lead::after {
    position: absolute;
    right: 1.5rem;
    bottom: 1.5rem;
    width: 5rem;
    height: 0.35rem;
    background: var(--color-accent-orange);
    border-radius: 999px;
    content: "";
}

.service-board__lead h3 {
    position: relative;
    z-index: 1;
    max-width: 18rem;
    margin-top: 1rem;
    color: var(--color-white);
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    line-height: 1.18;
}

.service-board__lead p {
    position: relative;
    z-index: 1;
    max-width: 21rem;
    margin-top: 1.1rem;
    color: rgba(255, 255, 255, 0.86);
    line-height: 1.7;
}

.service-board__lead a {
    position: relative;
    z-index: 1;
    display: inline-flex;
    min-height: 2.65rem;
    align-items: center;
    margin-top: 2rem;
    padding-inline: 1.1rem;
    color: var(--color-white);
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 999px;
    font-size: var(--font-size-body-sm);
    font-weight: var(--font-weight-bold);
}

.service-board__lead .badge {
    position: relative;
    z-index: 1;
    color: var(--color-white);
    background: rgba(255, 255, 255, 0.18);
}

.service-board__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.service-board__item {
    position: relative;
    display: grid;
    min-height: 14rem;
    grid-template-columns: 1fr auto;
    align-content: space-between;
    gap: 1rem;
    overflow: hidden;
    padding: 1.6rem;
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid rgba(8, 123, 140, 0.12);
    border-radius: 1.2rem;
    box-shadow: 0 0.85rem 2rem rgba(22, 60, 74, 0.055);
    transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}

.service-board__item::before {
    position: absolute;
    top: 1.45rem;
    right: 1.45rem;
    width: 2.8rem;
    height: 2.8rem;
    background: rgba(8, 123, 140, 0.07);
    border-radius: 50%;
    content: "";
}

.service-board__item::after {
    position: absolute;
    right: -1.2rem;
    bottom: -2.2rem;
    width: 7rem;
    height: 7rem;
    background: rgba(8, 123, 140, 0.045);
    border-radius: 50%;
    content: "";
}

.service-board__item:hover {
    border-color: rgba(8, 123, 140, 0.24);
    box-shadow: 0 1.25rem 2.5rem rgba(22, 60, 74, 0.1);
    transform: translateY(-0.25rem);
}

.service-board__item span {
    position: relative;
    z-index: 1;
    display: inline-flex;
    width: fit-content;
    min-height: 1.75rem;
    align-items: center;
    padding-inline: 0.65rem;
    color: var(--color-primary-800);
    background: rgba(8, 123, 140, 0.08);
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: var(--font-weight-bold);
}

.service-board__item h3 {
    position: relative;
    z-index: 1;
    grid-column: 1 / -1;
    margin-top: 0.45rem;
    color: var(--color-title);
    font-size: clamp(1.15rem, 1.5vw, 1.35rem);
    line-height: 1.35;
}

.service-board__item p {
    position: relative;
    z-index: 1;
    grid-column: 1 / -1;
    margin-top: 0.35rem;
    color: var(--color-text-muted);
    font-size: var(--font-size-body-sm);
    line-height: 1.55;
}

.service-board__item a {
    position: relative;
    z-index: 1;
    grid-column: 2;
    grid-row: 1;
    display: grid;
    width: 2.7rem;
    height: 2.7rem;
    place-items: center;
    color: var(--color-primary-800);
    background: var(--color-white);
    border: 1px solid rgba(8, 123, 140, 0.14);
    border-radius: 50%;
    font-size: 0;
    font-weight: var(--font-weight-bold);
    transition: color var(--transition-base), background-color var(--transition-base), transform var(--transition-base);
}

.service-board__item a::before {
    font-size: 1rem;
    content: "→";
}

.service-board__item a:hover {
    color: var(--color-white);
    background: var(--color-primary-800);
    transform: translateX(0.15rem);
}

.service-board__item--green::before {
    background: var(--color-accent-green);
}

.service-board__item--blue::before {
    background: var(--color-accent-blue);
}

.service-board__item--orange::before {
    background: var(--color-accent-orange);
}

.service-board__item--mint::before {
    background: var(--color-accent-mint);
}

.home-search-section {
    position: relative;
    overflow: hidden;
    padding-block: var(--space-section);
    background:
        radial-gradient(circle at 12% 16%, rgba(8, 161, 173, 0.08), transparent 28%),
        linear-gradient(138deg, #eef5fb 0%, #f7fbfb 62%, #ffffff 100%);
}

.home-search-box {
    padding: 3rem;
    background: rgba(255, 255, 255, 0.74);
    border: 1px solid rgba(209, 225, 231, 0.8);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}

.home-search-form {
    display: flex;
    justify-content: center;
    gap: 0.55rem;
    margin-top: -1.4rem;
    margin-bottom: 2rem;
}

.home-search-form select {
    width: 11rem;
    min-height: 3.3rem;
    padding: 0 2.5rem 0 1rem;
    color: var(--color-navy);
    background: var(--color-white);
    border: 1px solid #b9c9d0;
    border-radius: 0.65rem;
    font-weight: var(--font-weight-semibold);
}

.home-search-form button {
    display: grid;
    width: 3.3rem;
    height: 3.3rem;
    place-items: center;
    color: var(--color-white);
    background: var(--color-primary-800);
    border: 0;
    border-radius: 0.75rem;
    cursor: pointer;
    box-shadow: var(--shadow-sm);
}

.home-search-form button svg {
    width: 1.25rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.course-flow {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.9rem;
}

.course-flow article {
    padding: 1rem;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

.course-flow article > span {
    display: inline-grid;
    width: 1.8rem;
    height: 1.8rem;
    place-items: center;
    color: var(--color-white);
    background: var(--color-navy);
    border-radius: 50%;
    font-size: 0.75rem;
    font-weight: var(--font-weight-bold);
}

.course-flow h3 {
    margin-top: 0.7rem;
    color: var(--color-navy);
    font-size: 1rem;
}

.course-flow ul {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.45rem;
    margin-top: 1rem;
}

.course-flow a {
    display: flex;
    min-height: 2.7rem;
    align-items: center;
    justify-content: center;
    padding: 0.35rem;
    color: var(--color-text);
    background: var(--color-surface);
    border-radius: 0.55rem;
    font-size: 0.76rem;
    font-weight: var(--font-weight-semibold);
    text-align: center;
}

.home-info-section {
    background: var(--color-white);
}

.home-info-grid {
    display: grid;
    grid-template-columns: 0.9fr 1fr 1fr;
    gap: 1.5rem;
}

.info-panel {
    min-height: 17rem;
    padding: 1.75rem;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 0.5rem 1.5rem rgba(22, 60, 74, 0.05);
}

.info-panel .section-heading {
    margin-bottom: 1.25rem;
}

.popup-placeholder {
    display: grid;
    min-height: 10.5rem;
    place-items: center;
    color: #a5b2b8;
    background: var(--color-surface);
    border: 1px dashed #cdd8dc;
    border-radius: var(--radius-md);
    font-weight: var(--font-weight-bold);
}

.info-panel--village {
    display: flex;
    align-items: end;
    color: var(--color-white);
    background:
        linear-gradient(90deg, rgba(5, 54, 72, 0.72), rgba(7, 123, 140, 0.2)),
        url("../img/mvisual03.jpg") center / cover;
    border: 0;
}

.info-panel--village .page-eyebrow,
.info-panel--village .content-title,
.info-panel--village .body-text-sm,
.info-panel--village .text-link {
    color: var(--color-white);
}

.info-panel--village .body-text-sm {
    margin-top: 0.65rem;
    opacity: 0.88;
}

.info-panel--village .text-link {
    margin-top: 1rem;
}

.center-link-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.65rem;
}

.center-link-list a {
    display: flex;
    min-height: 3rem;
    align-items: center;
    padding-inline: 0.9rem;
    color: var(--color-navy);
    background: var(--color-surface);
    border-radius: 0.65rem;
    font-size: 0.82rem;
    font-weight: var(--font-weight-bold);
}

.home-news-section {
    background: var(--color-section-muted);
}

.home-news-grid {
    display: grid;
    grid-template-columns: 17rem minmax(0, 1fr);
    gap: 2.5rem;
    align-items: start;
}

.sns-panel {
    padding: 1.6rem;
    background: linear-gradient(180deg, #f3fbfa, #ffffff);
    border: 1px solid rgba(8, 123, 140, 0.1);
    border-radius: 1.25rem;
}

.sns-panel .content-title {
    margin-top: 0.5rem;
}

.sns-card-grid {
    display: grid;
    gap: 0.75rem;
    margin-top: 1.2rem;
}

.sns-card-grid a {
    display: block;
    min-height: 6.5rem;
    padding: 1rem;
    color: var(--color-white);
    background: linear-gradient(135deg, #087b8c, #56b8c0);
    border-radius: var(--radius-md);
}

.sns-card-grid a:nth-child(2) {
    background: linear-gradient(135deg, #254e82, #2fb8d0);
}

.sns-card-grid span,
.sns-card-grid strong {
    display: block;
}

.sns-card-grid span {
    font-size: 0.76rem;
    opacity: 0.8;
}

.sns-card-grid strong {
    margin-top: 0.5rem;
    font-size: 1rem;
}

.home-summary-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.18fr) minmax(20rem, 0.82fr);
    gap: 0;
    overflow: hidden;
    background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.82), rgba(246, 252, 251, 0.92));
    border: 1px solid rgba(8, 123, 140, 0.1);
    border-radius: 1.4rem;
}

.home-summary-card {
    display: flex;
    min-height: 12rem;
    flex-direction: column;
    justify-content: space-between;
    padding: 2rem 2.2rem;
    background: transparent;
    border-left: 1px solid rgba(8, 123, 140, 0.1);
    box-shadow: none;
}

.home-summary-card:not(.home-summary-card--image) {
    align-self: center;
    min-height: 0;
    margin: 1rem 1.2rem;
    padding: 1.45rem 1.6rem;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(8, 123, 140, 0.1);
    border-radius: 1rem;
}

.home-summary-card:not(.home-summary-card--image) .badge {
    align-self: flex-start;
    width: fit-content;
}

.home-summary-card h3 {
    margin-top: 0.8rem;
    color: var(--color-title);
    font-size: 1.35rem;
    line-height: var(--line-height-title);
}

.home-summary-card p {
    margin-top: 0.75rem;
    color: var(--color-text-muted);
    font-size: var(--font-size-body-sm);
}

.home-summary-card:not(.home-summary-card--image) .text-link {
    margin-top: 0.85rem;
}

.home-summary-card--image {
    position: relative;
    grid-row: span 2;
    justify-content: flex-end;
    overflow: hidden;
    min-height: 24rem;
    color: var(--color-white);
    border-left: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.home-summary-card--image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home-summary-card--image::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(8, 49, 65, 0.06), rgba(7, 55, 72, 0.82));
    content: "";
}

.home-summary-card--image > div {
    position: relative;
    z-index: 1;
}

.home-summary-card--image h3,
.home-summary-card--image p {
    color: var(--color-white);
}

.center-intro-section {
    background:
        linear-gradient(180deg, #ffffff 0%, #ffffff 58%, var(--color-section-muted) 58%, var(--color-section-muted) 100%);
}

.center-intro-section .section-heading {
    max-width: 58rem;
    margin-bottom: 2.2rem;
}

.center-intro-section .section-heading--split {
    display: block;
}

.center-intro-section .section-title {
    max-width: 52rem;
    line-height: 1.16;
}

.center-intro-section .section-title .text-primary {
    display: inline;
    color: var(--color-title);
}

.center-intro-section .home-summary-grid {
    grid-template-columns: minmax(0, 1.2fr) minmax(22rem, 0.8fr);
    gap: clamp(1rem, 2vw, 1.4rem);
    overflow: visible;
    background: transparent;
    border: 0;
    border-radius: 0;
}

.center-intro-section .home-summary-card {
    border: 0;
}

.center-intro-section .home-summary-card--image {
    min-height: 27rem;
    border-radius: 0.35rem 4rem 0.35rem 0.35rem;
    box-shadow: 0 1.4rem 3.4rem rgba(14, 63, 80, 0.12);
}

.center-intro-section .home-summary-card--image::after {
    background:
        linear-gradient(180deg, rgba(6, 46, 61, 0.02) 0%, rgba(6, 46, 61, 0.12) 48%, rgba(6, 46, 61, 0.78) 100%);
}

.center-intro-section .home-summary-card--image > div {
    max-width: 28rem;
}

.center-intro-section .home-summary-card--image h3 {
    font-size: clamp(1.7rem, 2.5vw, 2.35rem);
}

.center-intro-section .home-summary-card:not(.home-summary-card--image) {
    position: relative;
    display: grid;
    min-height: 0;
    margin: 0;
    padding: 1.6rem 0;
    background: transparent;
    border: 0;
    border-top: 1px solid rgba(8, 123, 140, 0.16);
    border-radius: 0;
}

.center-intro-section .home-summary-card:not(.home-summary-card--image):last-child {
    border-bottom: 1px solid rgba(8, 123, 140, 0.16);
}

.center-intro-section .home-summary-card:not(.home-summary-card--image) .badge {
    margin-bottom: 0.2rem;
    color: var(--color-accent-orange);
    background: transparent;
    padding: 0;
    border-radius: 0;
}

.center-intro-section .home-summary-card:not(.home-summary-card--image) h3 {
    margin-top: 0.35rem;
    font-size: clamp(1.25rem, 1.8vw, 1.55rem);
}

.center-intro-section .home-summary-card:not(.home-summary-card--image) p {
    max-width: 27rem;
    margin-top: 0.65rem;
    font-size: 0.95rem;
}

.center-intro-section .home-summary-card:not(.home-summary-card--image) .text-link {
    margin-top: 1rem;
}

.home-stage-section {
    background: var(--color-white);
}

.stage-card-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border-top: 2px solid rgba(8, 123, 140, 0.18);
    border-bottom: 1px solid var(--color-eyebrow-border);
}

.stage-card {
    position: relative;
    overflow: visible;
    padding: 2rem 1.8rem 2.2rem;
    background: transparent;
    border-left: 1px dashed rgba(8, 123, 140, 0.22);
    border-radius: 0;
    box-shadow: none;
}

.stage-card:first-child {
    border-left: 0;
}

.stage-card::after {
    position: absolute;
    top: -0.42rem;
    left: 1.8rem;
    width: 0.75rem;
    height: 0.75rem;
    background: var(--color-secondary);
    border: 0.18rem solid var(--color-white);
    border-radius: 50%;
    box-shadow: 0 0 0 0.2rem rgba(245, 130, 32, 0.14);
    content: "";
}

.stage-card > span {
    display: inline-flex;
    min-height: 1.85rem;
    align-items: center;
    padding-inline: 0.65rem;
    color: var(--color-primary-800);
    background: var(--color-primary-050);
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: var(--font-weight-bold);
}

.stage-card h3 {
    margin-top: 1rem;
    color: var(--color-title);
    font-size: 1.25rem;
}

.stage-card p {
    margin-top: 0.75rem;
    color: var(--color-text-muted);
    font-size: var(--font-size-body-sm);
    line-height: 1.65;
}

.stage-card a {
    display: inline-flex;
    margin-top: 1.25rem;
    color: var(--color-primary-800);
    font-size: var(--font-size-body-sm);
    font-weight: var(--font-weight-bold);
}

.home-fishery-section {
    background: var(--color-white);
}

.fishery-map {
    position: relative;
    display: grid;
    grid-template-columns: minmax(18rem, 0.9fr) minmax(22rem, 1.1fr);
    gap: 2.4rem 3rem;
    align-items: center;
}

.fishery-map__visual {
    position: relative;
    min-height: 28rem;
    overflow: hidden;
    background:
        linear-gradient(180deg, rgba(226, 249, 255, 0.95), rgba(242, 252, 249, 0.96) 55%, rgba(31, 145, 193, 0.18) 56%, rgba(31, 145, 193, 0.28)),
        url("../img/mvisual03.jpg") center / cover;
    border-radius: 48% 52% 44% 56% / 42% 36% 64% 58%;
    box-shadow: 0 1.5rem 3.5rem rgba(22, 60, 74, 0.1);
}

.fishery-map__content {
    max-width: 34rem;
}

.fishery-map__content h3 {
    margin-top: 1rem;
    color: var(--color-title);
    font-size: clamp(2rem, 3.1vw, 3rem);
    line-height: var(--line-height-title);
}

.fishery-map__content p {
    max-width: 30rem;
    margin-top: 1rem;
    color: var(--color-text-muted);
    line-height: 1.75;
}

.fishery-map__content .text-link {
    margin-top: 1.5rem;
}

.fishery-map__nav {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.85rem;
    margin-top: 0.2rem;
}

.fishery-map__nav a {
    position: relative;
    overflow: hidden;
    min-height: 8.5rem;
    padding: 1.45rem 1.35rem 1.35rem;
    background: var(--color-white);
    border: 1px solid var(--color-eyebrow-border);
    border-radius: 1rem;
    box-shadow: 0 0.9rem 2rem rgba(22, 60, 74, 0.06);
    transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}

.fishery-map__nav a::before {
    display: none;
}

.fishery-map__nav a::after {
    position: absolute;
    right: -0.35rem;
    bottom: -1.6rem;
    color: rgba(8, 123, 140, 0.16);
    font-size: 5.4rem;
    font-weight: 900;
    line-height: 1;
    content: attr(data-number);
    pointer-events: none;
}

.fishery-map__nav a:hover {
    border-color: rgba(8, 123, 140, 0.28);
    box-shadow: 0 1.15rem 2.4rem rgba(22, 60, 74, 0.11);
    transform: translateY(-0.35rem);
}

.fishery-map__nav span,
.fishery-map__nav strong,
.fishery-map__nav em,
.fishery-map__nav i {
    display: block;
}

.fishery-map__nav span {
    position: relative;
    z-index: 1;
    color: var(--color-accent-orange);
    font-size: 1.35rem;
    font-weight: var(--font-weight-bold);
    line-height: 1;
}

.fishery-map__nav strong {
    position: relative;
    z-index: 1;
    margin-top: 1rem;
    color: var(--color-title);
    font-size: 1.22rem;
}

.fishery-map__nav em {
    position: relative;
    z-index: 1;
    margin-top: 0.55rem;
    color: var(--color-text-muted);
    font-size: var(--font-size-body-sm);
    font-style: normal;
}

.fishery-map__nav i {
    position: absolute;
    top: 1.35rem;
    right: 1.25rem;
    z-index: 1;
    width: fit-content;
    color: var(--color-primary-800);
    font-size: 0.88rem;
    font-style: normal;
    font-weight: var(--font-weight-bold);
    display: flex;
    gap: 5px;
}

.fishery-map__nav i::after {
    position: absolute;
    right: 0;
    bottom: -0.28rem;
    left: 0;
    height: 2px;
    background: var(--color-accent-orange);
    content: "";
    transform: scaleX(0.35);
    transform-origin: left center;
    transition: transform var(--transition-base);
}

.fishery-map__nav a:hover i::after,
.fishery-map__nav a:focus-visible i::after {
    transform: scaleX(1);
}

.fishery-map__nav a:nth-child(2)::before {
    display: none;
}

.fishery-map__nav a:nth-child(3)::before {
    display: none;
}

.fishery-map__nav a:nth-child(4)::before {
    display: none;
}

.fishery-map__nav a:nth-child(2)::after {
    color: rgba(35, 136, 215, 0.16);
}

.fishery-map__nav a:nth-child(3)::after {
    color: rgba(245, 130, 32, 0.17);
}

.fishery-map__nav a:nth-child(4)::after {
    color: rgba(37, 182, 174, 0.16);
}

.support-section {
    background: transparent;
}

.support-grid {
    display: grid;
    grid-template-columns: 1.12fr repeat(2, 1fr);
    gap: 1rem;
}

.support-card {
    position: relative;
    display: flex;
    min-height: 18.5rem;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    padding: 2rem;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}

.support-card:not(.support-card--featured):hover {
    border-color: #9acbd0;
    box-shadow: var(--shadow-sm);
    transform: translateY(-0.25rem);
}

.support-card--featured {
    grid-row: span 2;
    min-height: 38rem;
    padding: 2.5rem;
    color: var(--color-white);
    background:
        radial-gradient(circle at 80% 75%, rgba(64, 189, 192, 0.72), transparent 35%),
        linear-gradient(145deg, #07516a 0%, #087b8c 58%, #0ea3a4 100%);
    border: 0;
}

.support-card--featured::before,
.support-card--featured::after {
    position: absolute;
    right: -15%;
    bottom: -5%;
    width: 85%;
    height: 34%;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 50% 0 0 0;
    content: "";
    transform: rotate(-8deg);
}

.support-card--featured::after {
    right: -30%;
    bottom: 13%;
    background: rgba(255, 255, 255, 0.07);
}

.support-card--featured .content-title {
    position: relative;
    z-index: 1;
    margin-top: 1rem;
    color: var(--color-white);
    font-size: 2rem;
}

.support-card--featured .body-text {
    position: relative;
    z-index: 1;
    max-width: 20rem;
    margin-top: 1.25rem;
    color: rgba(255, 255, 255, 0.78);
}

.support-card--featured .text-link {
    position: relative;
    z-index: 2;
}

.support-card__number {
    position: absolute;
    right: 1.5rem;
    bottom: -2.5rem;
    color: rgba(255, 255, 255, 0.13);
    font-size: 10rem;
    font-weight: var(--font-weight-bold);
    line-height: 1;
}

.support-card__icon {
    display: grid;
    width: 4rem;
    height: 4rem;
    place-items: center;
    border-radius: 1.25rem;
}

.support-card__icon svg {
    width: 2.4rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.support-card__icon--blue {
    color: #2777a6;
    background: #eaf5fb;
}

.support-card__icon--green {
    color: #26805c;
    background: #e9f7f0;
}

.support-card__icon--orange {
    color: #b06b22;
    background: #fff3e2;
}

.support-card__icon--teal {
    color: #087b83;
    background: #e7f7f6;
}

.support-card .badge + .content-title {
    margin-top: 0.65rem;
}

.support-card .body-text-sm {
    margin-top: 0.55rem;
}

.card-link {
    position: absolute;
    right: 1.5rem;
    bottom: 1.5rem;
    display: grid;
    width: 2.65rem;
    height: 2.65rem;
    place-items: center;
    color: var(--color-primary-800);
    background: var(--color-surface);
    border-radius: 50%;
    font-size: 1.1rem;
    transition: color var(--transition-base), background-color var(--transition-base), transform var(--transition-base);
}

.card-link:hover {
    color: var(--color-white);
    background: var(--color-primary-700);
    transform: rotate(-25deg);
}

.process-section {
    background: var(--color-section-muted);
}

.process-list {
    position: relative;
    display: grid;
    max-width: 82rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.35rem 2.6rem;
    margin-inline: auto;
    padding: 0.25rem 0;
    border: 0;
}

.process-list::before {
    position: absolute;
    inset: 5.9rem 7.4rem 5.9rem 7.4rem;
    z-index: 0;
    display: block;
    background:
        linear-gradient(90deg, rgba(8, 123, 140, 0.2) 50%, transparent 0) top left / 1.1rem 2px repeat-x,
        linear-gradient(90deg, rgba(8, 123, 140, 0.2) 50%, transparent 0) bottom left / 1.1rem 2px repeat-x,
        linear-gradient(180deg, rgba(8, 123, 140, 0.2) 50%, transparent 0) right top / 2px 1.1rem repeat-y;
    content: "";
    pointer-events: none;
}

.process-list::after {
    position: absolute;
    inset: 1rem 2rem auto auto;
    z-index: 0;
    width: 18rem;
    height: 18rem;
    background: radial-gradient(circle, rgba(245, 130, 32, 0.1), transparent 68%);
    border-radius: 50%;
    content: "";
    pointer-events: none;
}

.process-list li {
    position: relative;
    z-index: 1;
    display: grid;
    min-height: 11rem;
    grid-template-columns: 4.8rem minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    gap: 0.16rem 1.15rem;
    padding: 1.55rem 1.45rem 1.45rem 1.18rem;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(246, 251, 250, 0.9)),
        var(--color-white);
    border: 1px solid rgba(8, 123, 140, 0.12);
    border-radius: 1.35rem 1.35rem 0.85rem 1.35rem;
    box-shadow: 0 1rem 2.3rem rgba(7, 84, 110, 0.07);
    text-align: left;
    transition:
        border-color var(--transition-base),
        box-shadow var(--transition-base),
        transform var(--transition-base);
}

.process-list li:nth-child(even) {
    border-radius: 0.85rem 1.35rem 1.35rem 1.35rem;
}

.process-list li:nth-child(3),
.process-list li:nth-child(6) {
    border-radius: 1.35rem 0.85rem 1.35rem 1.35rem;
}

.process-list li::before {
    position: absolute;
    top: 50%;
    right: -2rem;
    z-index: 2;
    display: grid;
    width: 2.7rem;
    height: 2.7rem;
    place-items: center;
    color: var(--color-white);
    background: var(--color-accent-orange);
    border: 0.28rem solid var(--color-section-muted);
    border-radius: 50%;
    box-shadow: 0 0.8rem 1.6rem rgba(245, 130, 32, 0.22);
    content: "→";
    font-size: 1.15rem;
    font-weight: var(--font-weight-bold);
    line-height: 1;
    transform: translateY(-50%);
}

.process-list li::after {
    position: absolute;
    right: 1rem;
    bottom: 0.85rem;
    color: rgba(245, 130, 32, 0.11);
    font-size: clamp(3.5rem, 6vw, 5.5rem);
    font-weight: 900;
    line-height: 1;
    content: attr(data-step);
    pointer-events: none;
}

.process-list li:hover {
    border-color: rgba(245, 130, 32, 0.28);
    box-shadow: 0 1.3rem 2.8rem rgba(7, 84, 110, 0.11);
    transform: translateY(-0.25rem);
}

.process-list li:nth-child(4) {
    grid-column: 3;
    grid-row: 2;
}

.process-list li:nth-child(5) {
    grid-column: 2;
    grid-row: 2;
}

.process-list li:nth-child(6) {
    grid-column: 1;
    grid-row: 2;
}

.process-list li:nth-child(3)::before {
    top: auto;
    right: 50%;
    bottom: -2.05rem;
    content: "↓";
    transform: translateX(50%);
}

.process-list li:nth-child(4)::before,
.process-list li:nth-child(5)::before {
    content: "←";
}

.process-list li:nth-child(6)::before {
    display: none;
}

.process-list__number {
    grid-column: 1;
    grid-row: 1 / span 3;
    display: flex;
    position: relative;
    z-index: 1;
    width: 4.9rem;
    height: 4.9rem;
    align-items: center;
    justify-content: center;
    color: var(--color-white);
    background: linear-gradient(145deg, var(--color-primary-800), var(--color-primary-600));
    border: 0.35rem solid var(--color-white);
    border-radius: 50%;
    box-shadow: 0 0.75rem 1.7rem rgba(8, 84, 110, 0.16);
    font-size: 1.02rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0;
}

.process-list__number::after {
    position: absolute;
    right: 0.45rem;
    bottom: 0.45rem;
    width: 0.55rem;
    height: 0.55rem;
    background: var(--color-accent-orange);
    border: 2px solid var(--color-white);
    border-radius: 50%;
    content: "";
}

.process-list li .process-list__number {
    background: linear-gradient(145deg, var(--color-primary-800), var(--color-primary-600));
}

.process-list__icon {
    display: none;
}

.process-list strong {
    display: block;
    grid-column: 2;
    position: relative;
    z-index: 1;
    margin-top: 0.2rem;
    color: var(--color-title);
    font-size: clamp(1.25rem, 1.7vw, 1.55rem);
    line-height: 1.25;
}

.process-list p {
    grid-column: 2;
    position: relative;
    z-index: 1;
    max-width: 26rem;
    margin-top: 0.55rem;
    color: var(--color-text-muted);
    font-size: 0.95rem;
    line-height: 1.7;
}

.section-actions {
    margin-top: 2.75rem;
    text-align: center;
}

.notice-section {
    background: var(--color-white);
}

.notice-layout {
    display: grid;
    grid-template-columns: 18rem 1fr;
    gap: 5rem;
}

.notice-layout__heading .page-eyebrow {
    margin-bottom: 0.8rem;
}

.notice-layout__heading .body-text {
    margin-top: 1.2rem;
}

.notice-layout__heading .btn {
    margin-top: 1.6rem;
}

.notice-list {
    display: grid;
    gap: 0.75rem;
}

.notice-list li {
    border: 0;
}

.notice-list a {
    display: grid;
    min-height: 5.7rem;
    grid-template-columns: 4rem minmax(0, 1fr) 6rem 1.75rem;
    align-items: center;
    gap: 1rem;
    padding: 0.9rem 1rem;
    background: var(--color-white);
    border: 1px solid rgba(8, 123, 140, 0.1);
    border-radius: 1rem;
    box-shadow: 0 0.65rem 1.5rem rgba(21, 72, 86, 0.045);
    transition: background-color var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base);
}

.notice-list a:hover {
    background: #f4fbfa;
    box-shadow: 0 1rem 2rem rgba(21, 72, 86, 0.08);
    transform: translateY(-0.12rem);
}

.notice-list__category {
    display: inline-flex;
    min-height: 1.85rem;
    align-items: center;
    justify-content: center;
    color: var(--color-primary-800);
    background: var(--color-primary-050);
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: var(--font-weight-bold);
}

.notice-list__title {
    min-width: 0;
    overflow: hidden;
    color: var(--color-title);
    font-weight: var(--font-weight-medium);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.notice-list time {
    color: var(--color-text-muted);
    font-size: 0.8rem;
    text-align: right;
}

.notice-list__arrow {
    color: #9aabb2;
    font-size: 1.1rem;
    transition: color var(--transition-base), transform var(--transition-base);
}

.notice-list a:hover .notice-list__arrow {
    color: var(--color-primary-700);
    transform: translateX(0.25rem);
}

.story-section {
    padding-top: 0;
}

.story-card {
    display: grid;
    min-height: 29rem;
    grid-template-columns: 1.15fr 0.85fr;
    overflow: hidden;
    background: #eff8f6;
    border-radius: var(--radius-xl);
}

.story-card__visual {
    position: relative;
    overflow: hidden;
    background: linear-gradient(#aadce0 0%, #dff3ec 52%, #75bdc4 53%, #2e8ba2 100%);
}

.story-card__visual::after {
    position: absolute;
    right: -10%;
    bottom: -2rem;
    left: -10%;
    height: 7rem;
    background: repeating-radial-gradient(ellipse at center, rgba(255,255,255,.16) 0 2px, transparent 3px 13px);
    content: "";
}

.story-card__sun {
    position: absolute;
    top: 15%;
    right: 18%;
    width: 4.5rem;
    height: 4.5rem;
    background: #f9cf70;
    border-radius: 50%;
    box-shadow: 0 0 0 1rem rgba(249, 207, 112, 0.16);
}

.story-card__island {
    position: absolute;
    bottom: 43%;
    background: #4d8c75;
    border-radius: 60% 70% 0 0;
}

.story-card__island--one {
    left: -4%;
    width: 55%;
    height: 25%;
}

.story-card__island--two {
    right: 4%;
    width: 36%;
    height: 17%;
    background: #397965;
}

.story-card__boat {
    position: absolute;
    right: 30%;
    bottom: 22%;
    color: var(--color-white);
    font-size: 4rem;
    transform: rotate(-4deg);
}

.story-card__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 3.5rem;
}

.story-card__content .page-eyebrow {
    margin-bottom: 0.8rem;
}

.story-card__content .body-text {
    margin-top: 1.3rem;
}

.story-card__content .text-link {
    margin-top: 1.7rem;
}

.consult-cta {
    position: relative;
    overflow: hidden;
    padding-block: 4.5rem;
    color: var(--color-white);
    background: linear-gradient(115deg, #063f56, #057e8d);
}

.consult-cta::before,
.consult-cta::after {
    position: absolute;
    width: 24rem;
    height: 24rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 50%;
    content: "";
}

.consult-cta::before {
    top: -17rem;
    left: 30%;
}

.consult-cta::after {
    right: -8rem;
    bottom: -18rem;
}

.consult-cta__inner {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 3rem;
}

.consult-cta .page-eyebrow {
    margin-bottom: 0.8rem;
    color: #89dce0;
}

.consult-cta .section-title {
    color: var(--color-white);
}

.consult-cta__actions {
    flex: 0 0 auto;
}

.consult-cta__actions p {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.8rem;
    margin-bottom: 1rem;
}

.consult-cta__actions p span {
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.8rem;
}

.consult-cta__actions p a {
    font-size: 1.5rem;
    font-weight: var(--font-weight-bold);
}

.site-footer {
    color: #aebbc1;
    background: #172d38;
}

.site-footer__top {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-menu {
    display: flex;
    min-height: 3.75rem;
    align-items: center;
    gap: 1.75rem;
    font-size: 0.8rem;
}

.footer-menu a:hover {
    color: var(--color-white);
    text-decoration: underline;
}

.footer-menu strong {
    color: var(--color-primary-050);
}

.site-footer__main {
    padding-block: 2.75rem 3.5rem;
}

.site-footer__grid {
    display: flex;
    justify-content: space-between;
    gap: 3rem;
}

.site-logo--footer {
    color: var(--color-white);
}

.site-logo--footer img {
    height: 2.7rem;
}

.site-logo--footer .site-logo__mark {
    color: #5bc5ca;
}

.site-logo--footer .site-logo__text small {
    color: #81939b;
}

.site-footer__address {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 1rem;
    margin-top: 1.3rem;
    font-size: 0.78rem;
}

.site-footer__address a:hover {
    color: var(--color-white);
    text-decoration: underline;
}

.site-footer__copyright {
    margin-top: 0.65rem;
    color: #71858e;
    font-size: 0.68rem;
    letter-spacing: 0.05em;
}

.site-footer__contact {
    align-self: center;
    text-align: right;
}

.site-footer__contact .caption {
    color: #82959e;
}

.site-footer__contact > a {
    display: block;
    color: var(--color-white);
    font-size: 1.7rem;
    font-weight: var(--font-weight-bold);
    line-height: 1.35;
}

.site-footer__contact > p:last-child {
    color: #82959e;
    font-size: 0.72rem;
}

.back-to-top {
    position: fixed;
    right: 1.5rem;
    bottom: 1.5rem;
    z-index: 80;
    display: grid;
    width: 3rem;
    height: 3rem;
    visibility: hidden;
    place-items: center;
    opacity: 0;
    color: var(--color-white);
    background: var(--color-navy);
    border: 0;
    border-radius: 50%;
    box-shadow: var(--shadow-sm);
    cursor: pointer;
    transform: translateY(1rem);
    transition: opacity var(--transition-base), visibility var(--transition-base), transform var(--transition-base);
}

.back-to-top.is-visible {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
}

.back-to-top svg {
    width: 1.35rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.concept-home {
    overflow: hidden;
}

.concept-hero {
    position: relative;
    background:
        linear-gradient(90deg, rgba(6, 60, 83, 0.88), rgba(6, 60, 83, 0.55)),
        radial-gradient(circle at 80% 20%, rgba(8, 161, 173, 0.44), transparent 28%),
        linear-gradient(135deg, #0b3b54 0%, #0d7690 52%, #eaf8f5 52%, #f8fbf9 100%);
}

.concept-hero::before,
.concept-hero::after {
    position: absolute;
    border-radius: 999px;
    content: "";
}

.concept-hero::before {
    right: -7rem;
    bottom: -6rem;
    width: 28rem;
    height: 28rem;
    background: rgba(255, 255, 255, 0.2);
}

.concept-hero::after {
    top: 7rem;
    right: 14%;
    width: 8rem;
    height: 8rem;
    border: 1.25rem solid rgba(255, 255, 255, 0.18);
}

.concept-hero__grid {
    position: relative;
    z-index: 1;
    display: grid;
    min-height: 38rem;
    grid-template-columns: minmax(0, 1fr) 24rem;
    align-items: center;
    gap: 4rem;
    padding-block: 5.5rem;
}

.concept-hero__content {
    max-width: 45rem;
    color: var(--color-white);
}

.concept-hero__content .page-eyebrow {
    margin-bottom: 1.2rem;
    color: #8ae0df;
}

.concept-hero__content .page-title {
    color: var(--color-white);
}

.concept-hero__content .text-primary {
    color: #a8eff0;
}

.concept-hero__content .body-text-lg {
    max-width: 37rem;
    margin-top: 1.4rem;
    color: rgba(255, 255, 255, 0.82);
}

.concept-hero__content .button-group {
    margin-top: 2rem;
}

.concept-hero__content .btn--outline {
    color: var(--color-white);
    border-color: rgba(255, 255, 255, 0.5);
}

.concept-hero__content .btn--outline:hover {
    color: var(--color-primary-900);
}

.concept-hero__notice {
    padding: 2rem;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
}

.concept-hero__notice .caption {
    color: var(--color-primary-700);
    font-weight: var(--font-weight-bold);
}

.concept-hero__notice .content-title {
    margin-top: 0.45rem;
}

.concept-hero__notice .body-text-sm {
    margin-top: 0.8rem;
}

.concept-hero__info {
    margin-top: 1.5rem;
    border-top: 1px solid var(--color-border);
}

.concept-hero__info div {
    display: grid;
    grid-template-columns: 5rem 1fr;
    gap: 1rem;
    padding-block: 0.9rem;
    border-bottom: 1px solid var(--color-border);
}

.concept-hero__info dt {
    color: var(--color-text-muted);
    font-size: var(--font-size-body-sm);
}

.concept-hero__info dd {
    color: var(--color-navy);
    font-weight: var(--font-weight-bold);
}

.concept-quick {
    position: relative;
    z-index: 3;
    margin-top: -3.25rem;
}

.concept-quick__list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    overflow: hidden;
    background: var(--color-white);
    border: 1px solid rgba(14, 81, 99, 0.09);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
}

.concept-quick__list li + li {
    border-left: 1px solid var(--color-border);
}

.concept-quick__list a {
    display: grid;
    min-height: 9.5rem;
    align-content: center;
    gap: 0.35rem;
    padding: 1.5rem;
    transition: background-color var(--transition-base), color var(--transition-base);
}

.concept-quick__list a:hover {
    color: var(--color-primary-800);
    background: var(--color-primary-050);
}

.concept-quick__list span {
    color: var(--color-primary-600);
    font-size: 0.75rem;
    font-weight: var(--font-weight-bold);
}

.concept-quick__list strong {
    color: var(--color-navy);
    font-size: 1.25rem;
}

.concept-quick__list small {
    color: var(--color-text-muted);
}

.concept-board {
    background: var(--color-white);
}

.concept-board__grid {
    display: grid;
    grid-template-columns: 20rem 1fr;
    gap: 4rem;
    align-items: start;
}

.concept-board__side {
    position: sticky;
    top: calc(var(--header-height) + 2rem);
    padding-top: 0.5rem;
}

.concept-board__side .page-eyebrow {
    margin-bottom: 0.8rem;
}

.concept-board__side .body-text {
    margin-top: 1.2rem;
}

.concept-board__cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}

.concept-card {
    min-height: 18rem;
    padding: 2rem;
    background: var(--color-surface);
    border: 1px solid transparent;
    border-radius: var(--radius-lg);
    transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}

.concept-card:hover {
    border-color: #acd5d8;
    box-shadow: var(--shadow-sm);
    transform: translateY(-0.25rem);
}

.concept-card--wide {
    min-height: 22rem;
    grid-column: 1 / -1;
    color: var(--color-white);
    background:
        linear-gradient(90deg, rgba(6, 60, 83, 0.92), rgba(7, 134, 154, 0.82)),
        linear-gradient(135deg, #063c53, #08a1ad);
}

.concept-card .content-title {
    margin-top: 1rem;
}

.concept-card .body-text-sm {
    max-width: 33rem;
    margin-top: 0.8rem;
}

.concept-card .text-link {
    margin-top: 1.5rem;
}

.concept-card--wide .content-title,
.concept-card--wide .body-text-sm,
.concept-card--wide .text-link {
    color: var(--color-white);
}

.concept-card--wide .body-text-sm {
    color: rgba(255, 255, 255, 0.8);
}

.concept-roadmap {
    background: #f2f7f8;
}

.concept-roadmap__list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    counter-reset: roadmap;
}

.concept-roadmap__list li {
    position: relative;
    min-height: 15rem;
    padding: 5rem 1.5rem 1.5rem;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    counter-increment: roadmap;
}

.concept-roadmap__list li::before {
    position: absolute;
    top: 1.5rem;
    left: 1.5rem;
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    color: var(--color-white);
    background: var(--color-primary-700);
    border-radius: 50%;
    content: counter(roadmap, decimal-leading-zero);
    font-size: 0.78rem;
    font-weight: var(--font-weight-bold);
}

.concept-roadmap__list strong {
    display: block;
    color: var(--color-navy);
    font-size: 1.2rem;
}

.concept-roadmap__list p {
    margin-top: 0.6rem;
    color: var(--color-text-muted);
    font-size: var(--font-size-body-sm);
}

.concept-news {
    background: var(--color-white);
}

.concept-news__grid {
    display: grid;
    grid-template-columns: 18rem 1fr;
    gap: 4rem;
}

.concept-news__grid .page-eyebrow {
    margin-bottom: 0.8rem;
}

.concept-news__grid .body-text {
    margin-top: 1rem;
}

.concept-news__list {
    border-top: 2px solid var(--color-navy);
}

.concept-news__list li {
    border-bottom: 1px solid var(--color-border);
}

.concept-news__list a {
    display: grid;
    min-height: 5.25rem;
    grid-template-columns: 4rem minmax(0, 1fr) 6rem;
    align-items: center;
    gap: 1rem;
    padding-inline: 0.75rem;
}

.concept-news__list a:hover {
    background: var(--color-primary-050);
}

.concept-news__list span {
    color: var(--color-primary-700);
    font-size: 0.8rem;
    font-weight: var(--font-weight-bold);
}

.concept-news__list strong {
    overflow: hidden;
    color: var(--color-navy);
    font-weight: var(--font-weight-medium);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.concept-news__list time {
    color: var(--color-text-muted);
    font-size: 0.8rem;
    text-align: right;
}

.concept-final-cta {
    padding-block: 4.5rem;
    color: var(--color-white);
    background: linear-gradient(135deg, #063c53, #087b8c);
}

.concept-final-cta__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

.concept-final-cta .page-eyebrow {
    margin-bottom: 0.7rem;
    color: #8ae0df;
}

.concept-final-cta .section-title {
    color: var(--color-white);
}

.portal-hero {
    position: relative;
    min-height: 38rem;
    overflow: hidden;
    color: var(--color-white);
    background: #1938a9;
}

.portal-hero__visual {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(13, 33, 77, 0.92) 0%, rgba(25, 56, 169, 0.74) 48%, rgba(25, 56, 169, 0.22) 100%),
        radial-gradient(circle at 78% 24%, rgba(255, 255, 255, 0.35), transparent 12%),
        radial-gradient(circle at 74% 78%, rgba(8, 161, 173, 0.45), transparent 28%),
        linear-gradient(135deg, #1938a9 0%, #087b8c 56%, #e9f5f6 56%, #ffffff 100%);
}

.portal-hero__visual::before,
.portal-hero__visual::after {
    position: absolute;
    content: "";
}

.portal-hero__visual::before {
    right: -4rem;
    bottom: 7rem;
    width: 43rem;
    height: 12rem;
    background: rgba(255, 255, 255, 0.18);
    border-radius: 999px 0 0 999px;
    transform: rotate(-8deg);
}

.portal-hero__visual::after {
    right: 9%;
    bottom: 5.5rem;
    width: 19rem;
    height: 11rem;
    background:
        linear-gradient(#ffffff, #ffffff) 24% 62% / 50% 0.5rem no-repeat,
        linear-gradient(135deg, transparent 47%, #ffffff 48% 53%, transparent 54%) 52% 51% / 68% 72% no-repeat;
    opacity: 0.72;
}

.portal-hero__inner {
    position: relative;
    z-index: 1;
    display: grid;
    min-height: 38rem;
    grid-template-columns: minmax(0, 1fr) 19rem;
    align-items: center;
    gap: 3rem;
    padding-block: 5rem 6rem;
}

.portal-hero__content {
    max-width: 46rem;
}

.portal-hero__content .page-eyebrow {
    margin-bottom: 1.1rem;
    color: #b7e7ff;
}

.portal-hero__content .text-display {
    color: var(--color-white);
}

.portal-hero__content .body-text-lg {
    max-width: 38rem;
    margin-top: 1.4rem;
    color: rgba(255, 255, 255, 0.82);
}

.portal-hero__actions {
    margin-top: 2rem;
}

.portal-hero__actions .btn--outline {
    color: var(--color-white);
    border-color: rgba(255, 255, 255, 0.58);
}

.portal-hero__actions .btn--outline:hover {
    color: var(--color-primary-900);
    background: var(--color-white);
}

.portal-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem 2rem;
    margin-top: 2rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(255, 255, 255, 0.24);
}

.portal-hero__meta dt {
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.78rem;
}

.portal-hero__meta dd {
    color: var(--color-white);
    font-weight: var(--font-weight-bold);
}

.portal-hero__controls {
    display: flex;
    width: fit-content;
    align-items: center;
    gap: 0.35rem;
    margin-top: 2rem;
    padding: 0.35rem;
    background: rgba(0, 0, 0, 0.28);
    border-radius: 999px;
}

.portal-hero__controls span {
    padding-inline: 0.75rem;
    font-size: 0.82rem;
}

.portal-hero__controls button {
    display: grid;
    width: 2.1rem;
    height: 2.1rem;
    place-items: center;
    color: var(--color-white);
    background: rgba(255, 255, 255, 0.14);
    border: 0;
    border-radius: 50%;
    cursor: pointer;
}

.portal-hero__panel {
    padding: 1.5rem;
    color: var(--color-navy);
    background: rgba(255, 255, 255, 0.95);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
}

.portal-hero__panel ul {
    margin-top: 1rem;
}

.portal-hero__panel li + li {
    margin-top: 0.5rem;
}

.portal-hero__panel a {
    display: flex;
    min-height: 3.25rem;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem;
    background: var(--color-surface);
    border-radius: 0.8rem;
    font-weight: var(--font-weight-bold);
}

.portal-hero__panel a::after {
    color: var(--color-primary-700);
    content: "→";
}

.portal-service {
    position: relative;
    z-index: 3;
    margin-top: -4.25rem;
}

.portal-service__list {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    overflow: hidden;
    background: var(--color-white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
}

.portal-service__list li + li {
    border-left: 1px solid var(--color-border);
}

.portal-service__list a {
    display: grid;
    min-height: 10.5rem;
    place-items: center;
    align-content: center;
    gap: 0.35rem;
    padding: 1rem;
    text-align: center;
    transition: color var(--transition-base), background-color var(--transition-base);
}

.portal-service__list a:hover {
    color: var(--color-primary-800);
    background: #f1f6ff;
}

.portal-service__list span {
    display: grid;
    width: 3.8rem;
    height: 3.8rem;
    place-items: center;
    color: var(--color-white);
    background: #1938a9;
    border-radius: 1.2rem;
    font-size: 0.8rem;
    font-weight: var(--font-weight-bold);
}

.portal-service__list strong {
    color: var(--color-navy);
    font-size: 1.15rem;
}

.portal-service__list small {
    color: var(--color-text-muted);
    font-size: 0.78rem;
}

.portal-shortcut {
    padding-block: 1rem;
    background: #262f34;
}

.portal-shortcut__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.portal-shortcut__grid a {
    display: flex;
    min-height: 4.5rem;
    align-items: center;
    justify-content: center;
    color: var(--color-white);
    font-weight: var(--font-weight-bold);
}

.portal-shortcut__grid a + a {
    border-left: 1px solid rgba(255, 255, 255, 0.16);
}

.portal-shortcut__grid a::after {
    margin-left: 0.6rem;
    color: #7bd7e0;
    content: "+";
}

.portal-program {
    background: var(--color-white);
}

.portal-section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 2rem;
}

.portal-section-head .page-eyebrow {
    margin-bottom: 0.7rem;
}

.portal-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
}

.portal-tabs a {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    padding-inline: 1.2rem;
    color: var(--color-navy);
    background: var(--color-surface);
    border-radius: 999px;
    font-weight: var(--font-weight-bold);
}

.portal-tabs a.is-active {
    color: var(--color-white);
    background: #1938a9;
}

.portal-program__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}

.portal-program-card {
    min-height: 20rem;
    padding: 2rem;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 0.5rem 1.5rem rgba(22, 49, 76, 0.05);
}

.portal-program-card .content-title {
    margin-top: 1rem;
}

.portal-program-card .body-text-sm {
    margin-top: 0.75rem;
}

.portal-program-card dl {
    margin-top: 1.4rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
}

.portal-program-card dl div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    font-size: 0.82rem;
}

.portal-program-card dl div + div {
    margin-top: 0.45rem;
}

.portal-program-card dt {
    color: var(--color-text-muted);
}

.portal-program-card dd {
    color: var(--color-navy);
    font-weight: var(--font-weight-bold);
    text-align: right;
}

.portal-search {
    background: #f2f6fb;
}

.portal-search__box {
    display: grid;
    grid-template-columns: 24rem 1fr;
    align-items: center;
    gap: 3rem;
    padding: 3rem;
    background:
        radial-gradient(circle at 92% 18%, rgba(25, 56, 169, 0.12), transparent 16%),
        var(--color-white);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}

.portal-search__box .page-eyebrow {
    margin-bottom: 0.7rem;
}

.portal-search__box .body-text {
    margin-top: 0.9rem;
}

.portal-search__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.portal-search__chips a {
    display: inline-flex;
    min-height: 3.25rem;
    align-items: center;
    padding-inline: 1.25rem;
    color: #1938a9;
    background: #edf2ff;
    border: 1px solid #d8e1ff;
    border-radius: 999px;
    font-weight: var(--font-weight-bold);
}

.portal-search__chips a:hover {
    color: var(--color-white);
    background: #1938a9;
}

.portal-news {
    background: var(--color-white);
}

.portal-news__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 20rem;
    gap: 2rem;
}

.portal-news__notice {
    min-width: 0;
}

.portal-news__notice ul {
    border-top: 2px solid var(--color-navy);
}

.portal-news__notice li {
    border-bottom: 1px solid var(--color-border);
}

.portal-news__notice a {
    display: grid;
    min-height: 5rem;
    grid-template-columns: minmax(0, 1fr) 6rem;
    align-items: center;
    gap: 1rem;
    padding-inline: 0.75rem;
}

.portal-news__notice a:hover {
    background: var(--color-primary-050);
}

.portal-news__notice strong {
    overflow: hidden;
    color: var(--color-navy);
    font-weight: var(--font-weight-medium);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portal-news__notice time {
    color: var(--color-text-muted);
    font-size: 0.8rem;
    text-align: right;
}

.portal-news__call {
    padding: 2rem;
    color: var(--color-white);
    background: linear-gradient(145deg, #1938a9, #087b8c);
    border-radius: var(--radius-lg);
}

.portal-news__call .caption {
    color: rgba(255, 255, 255, 0.76);
}

.portal-news__call h2 {
    margin-top: 0.45rem;
    font-size: 1.85rem;
    line-height: 1.25;
}

.portal-news__call p:not(.caption) {
    margin-top: 1rem;
    color: rgba(255, 255, 255, 0.76);
    font-size: var(--font-size-body-sm);
}

.portal-news__call .btn {
    width: 100%;
    margin-top: 1.5rem;
}

@media (max-width: 1100px) {
    .global-nav__link {
        min-width: auto;
        padding-inline: 0.75rem;
        font-size: 0.92rem;
    }

    .header-consult {
        display: none;
    }

    .hero__inner {
        grid-template-columns: 0.95fr 1.05fr;
        gap: 2rem;
    }

    .hero__floating-card--top {
        right: 0;
    }

    .hero__floating-card--bottom {
        left: -1rem;
    }
}

@media (max-width: 900px) {
    :root {
        --header-height: 4.75rem;
    }

    .site-header__main-inner {
        justify-content: space-between;
    }

    .mobile-menu-button {
        display: block;
    }

    .mobile-menu-button[aria-expanded="true"] > span:nth-of-type(2) {
        transform: translate(-50%, 0.5rem) rotate(45deg);
    }

    .mobile-menu-button[aria-expanded="true"] > span:nth-of-type(3) {
        opacity: 0;
    }

    .mobile-menu-button[aria-expanded="true"] > span:nth-of-type(4) {
        transform: translate(-50%, -0.5rem) rotate(-45deg);
    }

    .global-nav {
        position: fixed;
        top: var(--header-height);
        right: 0;
        bottom: auto;
        left: 0;
        z-index: 101;
        align-self: auto;
        display: none;
        height: calc(100dvh - var(--header-height));
        overflow-y: auto;
        margin: 0;
        padding: 1rem 1.25rem 3rem;
        background: var(--color-white);
        border-top: 1px solid var(--color-border);
    }

    .global-nav.is-open {
        display: block;
    }

    .global-nav__list {
        display: block;
        height: auto;
    }

    .global-nav__item {
        display: grid;
        grid-template-columns: 1fr 3rem;
        border-bottom: 1px solid var(--color-border);
    }

    .global-nav__item::after {
        display: none;
    }

    .global-nav__link {
        min-height: 3.75rem;
        justify-content: flex-start;
        padding: 0.85rem 0.25rem;
        font-size: 1.05rem;
    }

    .global-nav__link::after {
        display: none;
    }

    .global-nav__toggle {
        position: relative;
        display: block;
        background: transparent;
        border: 0;
        cursor: pointer;
    }

    .global-nav__toggle span::before,
    .global-nav__toggle span::after {
        position: absolute;
        top: 50%;
        left: 50%;
        width: 0.85rem;
        height: 1px;
        background: var(--color-navy);
        content: "";
        transform: translate(-50%, -50%);
    }

    .global-nav__toggle span::after {
        transform: translate(-50%, -50%) rotate(90deg);
        transition: transform var(--transition-base);
    }

    .global-nav__toggle[aria-expanded="true"] span::after {
        transform: translate(-50%, -50%) rotate(0);
    }

    .global-nav__submenu {
        position: static;
        display: none;
        width: auto;
        grid-column: 1 / -1;
        padding: 0.4rem 0.55rem 0.8rem;
        visibility: visible;
        opacity: 1;
        background: var(--color-surface);
        border: 0;
        border-radius: 0.65rem;
        box-shadow: none;
        transform: none;
        transition: none;
    }

    .global-nav__submenu.is-open {
        display: block;
    }

    .global-nav__item:hover .global-nav__submenu,
    .global-nav__item:focus-within .global-nav__submenu {
        transform: none;
    }

    .hero__inner {
        min-height: auto;
        grid-template-columns: 1fr;
        padding-block: 4.5rem 8rem;
    }

    .hero__content {
        max-width: 41rem;
    }

    .hero--banner {
        min-height: auto;
    }

    .hero__layout {
        min-height: auto;
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
        padding-block: 0 4.5rem;
    }

    .hero__scene {
        min-height: 41rem;
    }

    .hero__message {
        top: 4rem;
        left: 2rem;
        max-width: 36rem;
    }

    .hero__photo-panel {
        top: 7.8rem;
        right: 2rem;
        bottom: 5rem;
        width: min(46vw, 34rem);
        border-radius: 8rem 0 0 1.2rem;
    }

    .hero__field-note {
        right: 2.8rem;
        bottom: 6rem;
        width: 15rem;
    }

    .hero__sky-word {
        right: 2rem;
        bottom: 1rem;
        font-size: clamp(4rem, 12vw, 7rem);
    }

    .hero__menu {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: calc(100% - 40px);
        margin-top: -2.8rem;
    }

    .hero--banner .text-display {
        font-size: clamp(3.1rem, 8.4vw, 4.85rem);
    }

    .hero__title {
        width: 100%;
    }

    .hero__title-mark {
        width: clamp(4.6rem, 10vw, 6rem);
    }

    .hero__visual {
        max-width: 39rem;
        margin-inline: auto;
    }

    .quick-service__panel {
        grid-template-columns: 1fr;
    }

    .quick-service__heading {
        display: block;
        padding: 1.1rem 1.5rem;
    }

    .quick-service__heading .page-eyebrow {
        display: none;
    }

    .quick-service__list {
        grid-template-columns: repeat(5, minmax(7.5rem, 1fr));
        overflow-x: auto;
    }

    .quick-service__list a {
        min-height: 7rem;
    }

    .support-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .support-card--featured {
        grid-row: span 2;
    }

    .process-list {
        grid-template-columns: repeat(3, 1fr);
        gap: 2.5rem 0;
    }

    .process-list::before {
        display: none;
    }

    .notice-layout {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .notice-layout__heading br {
        display: none;
    }

    .story-card {
        grid-template-columns: 1fr 1fr;
    }

    .story-card__content {
        padding: 2.5rem;
    }

    .concept-hero__grid {
        min-height: auto;
        grid-template-columns: 1fr;
        gap: 2.5rem;
        padding-block: 4.5rem 7rem;
    }

    .concept-hero__notice {
        max-width: 34rem;
    }

    .concept-quick__list {
        grid-template-columns: repeat(2, 1fr);
    }

    .concept-quick__list li:nth-child(3) {
        border-left: 0;
    }

    .concept-quick__list li:nth-child(n + 3) {
        border-top: 1px solid var(--color-border);
    }

    .concept-board__grid,
    .concept-news__grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .concept-board__side {
        position: static;
    }

    .concept-roadmap__list {
        grid-template-columns: repeat(2, 1fr);
    }

    .portal-hero__inner {
        min-height: auto;
        grid-template-columns: 1fr;
        gap: 2rem;
        padding-block: 4.5rem 7rem;
    }

    .portal-hero__panel {
        max-width: 34rem;
    }

    .portal-service__list {
        grid-template-columns: repeat(3, 1fr);
    }

    .portal-service__list li:nth-child(4) {
        border-left: 0;
    }

    .portal-service__list li:nth-child(n + 4) {
        border-top: 1px solid var(--color-border);
    }

    .portal-shortcut__grid,
    .portal-program__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .portal-program-card {
        min-height: 17rem;
    }

    .portal-search__box,
    .portal-news__grid {
        grid-template-columns: 1fr;
    }

    .portal-news__call {
        max-width: 28rem;
    }
}

@media (max-width: 767px) {
    :root {
        --space-section: 4.5rem;
        --font-size-body-lg: 1rem;
    }

    body {
        word-break: normal;
    }

    .site-logo__mark {
        width: 2.35rem;
        height: 2.35rem;
    }

    .site-logo img {
        height: 2.2rem;
    }

    .site-logo__text strong {
        font-size: 1.05rem;
    }

    .site-logo__text small {
        display: none;
    }

    .hero {
        min-height: 0;
    }

    .hero__inner {
        gap: 3rem;
        padding-block: 3.75rem 7rem;
    }

    .hero__content .body-text-lg br {
        display: none;
    }

    .hero__content .button-group {
        flex-direction: column;
    }

    .hero__content .btn {
        width: 100%;
    }

    .hero__stats {
        justify-content: space-between;
    }

    .hero__stats > div {
        min-width: 0;
        flex: 1;
    }

    .hero__stats > div + div {
        margin-left: 0.75rem;
        padding-left: 0.75rem;
    }

    .hero__stats strong {
        font-size: 1.25rem;
    }

    .hero__layout {
        gap: 0;
        padding-block: 0 3.25rem;
    }

    .hero__scene {
        min-height: 0;
        padding-bottom: 5.25rem;
        border-radius: 0 0 1.6rem 0;
    }

    .hero__scene::before {
        top: 1.6rem;
        right: 0;
        bottom: auto;
        left: 0;
        width: auto;
        height: 1px;
    }

    .hero__message {
        position: relative;
        top: auto;
        left: auto;
        z-index: 4;
        max-width: none;
        padding: 2.25rem 1.25rem 0;
    }

    .hero__sky-word {
        display: none;
    }

    .hero__photo-panel {
        position: relative;
        top: auto;
        right: auto;
        bottom: auto;
        left: auto;
        width: calc(100% - 2rem);
        height: 14.75rem;
        margin: 1.6rem auto 0;
        border-radius: 5rem 0 1.15rem 1.15rem;
        box-shadow: 0 1.2rem 2.6rem rgba(9, 66, 84, 0.18);
    }

    .hero__field-note {
        position: relative;
        right: auto;
        bottom: auto;
        justify-self: end;
        width: min(14rem, calc(100% - 3.5rem));
        margin: -3.7rem 1.5rem 0 auto;
        padding: 0.8rem 0.9rem;
        border-radius: 0.8rem;
    }

    .hero__field-note strong {
        font-size: 0.92rem;
    }

    .hero__cloud--one {
        bottom: 10.5rem;
        left: 4%;
        transform: scale(0.72);
    }

    .hero__cloud--two {
        display: none;
    }

    .hero__island {
        width: 15rem;
    }

    .hero__lighthouse {
        left: 6rem;
    }

    .hero__boat {
        right: -1.5rem;
        bottom: 5.9rem;
        width: 15rem;
    }

    .hero--banner .text-display {
        font-size: clamp(2.95rem, 13.8vw, 4.15rem);
        line-height: 0.94;
    }

    .hero__title {
        display: block;
        width: 100%;
    }

    .hero__title-mark {
        width: 4.35rem;
        margin-top: 0;
    }

    .hero__title-copy {
        display: grid;
        gap: 0.04em;
    }

    .hero__title-line {
        white-space: nowrap;
    }

    .hero--banner .body-text-lg {
        max-width: 22rem;
        margin-top: 1.3rem;
        font-size: 1rem;
        line-height: 1.75;
        word-break: keep-all;
    }

    .hero__contact {
        width: min(100%, 22rem);
        grid-template-columns: 2.75rem auto;
        gap: 0.2rem 0.75rem;
        margin-top: 1.25rem;
        padding: 0.78rem 0.95rem 0.82rem 0.8rem;
        background: rgba(255, 255, 255, 0.82);
        border: 1px solid rgba(8, 123, 140, 0.13);
        border-left: 0.25rem solid var(--color-accent-orange);
        border-radius: 0.9rem;
    }

    .hero__contact::before {
        width: 2.75rem;
        height: 2.75rem;
        font-size: 1rem;
    }

    .hero__contact strong {
        font-size: 1.55rem;
    }

    .hero__contact span {
        font-size: 0.82rem;
    }

    .hero__menu {
        width: calc(100% - 1.5rem);
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0;
        margin-top: -3.95rem;
        border-radius: 1rem;
    }

    .hero__menu-card {
        display: grid;
        min-height: 6rem;
        padding: 0.9rem 0.85rem;
        color: var(--color-title);
        border-left: 1px solid rgba(8, 123, 140, 0.1);
        border-radius: 0;
        box-shadow: none;
    }

    .hero__menu-card:nth-child(odd) {
        border-left: 0;
    }

    .hero__menu-card:nth-child(n + 3) {
        border-top: 1px solid rgba(8, 123, 140, 0.1);
    }

    .hero__menu-card strong {
        font-size: 0.96rem;
    }

    .hero__menu-card em {
        color: var(--color-text-muted);
        font-size: 0.78rem;
        line-height: 1.35;
    }

    .hero__menu-icon {
        min-height: 1.55rem;
        color: var(--color-primary-800);
        background: var(--color-primary-050);
    }

    .hero__image-frame {
        border-width: 0.45rem;
        border-radius: 42% 42% 1.5rem 42%;
    }

    .hero__floating-card--top {
        top: 4%;
        right: -0.5rem;
    }

    .hero__floating-card--bottom {
        bottom: 3%;
        left: -0.4rem;
    }

    .quick-service {
        margin-top: -2.5rem;
    }

    .quick-service .container {
        width: calc(100% - 24px);
    }

    .quick-service__panel {
        border-radius: var(--radius-md);
    }

    .quick-service__heading {
        padding: 1rem 1.25rem;
    }

    .quick-service__heading .content-title {
        font-size: 1.1rem;
    }

    .quick-service__list {
        grid-template-columns: repeat(5, 7rem);
    }

    .quick-service__list a {
        min-height: 6.5rem;
        font-size: 0.78rem;
    }

    .quick-service__icon {
        width: 2.4rem;
        height: 2.4rem;
    }

    .section-heading {
        margin-bottom: 2.25rem;
    }

    .section-heading--split {
        display: block;
    }

    .section-heading--split > .body-text {
        margin-top: 1rem;
    }

    .section-heading--split br {
        display: none;
    }

    .support-grid {
        grid-template-columns: 1fr;
    }

    .support-card {
        min-height: 17rem;
        padding: 1.5rem;
    }

    .support-card--featured {
        min-height: 25rem;
        grid-row: auto;
        padding: 2rem;
    }

    .support-card--featured .content-title {
        font-size: 1.65rem;
    }

    .support-card__number {
        font-size: 7rem;
    }

    .process-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 2.25rem 0.5rem;
    }

    .process-list__icon {
        width: 4.4rem;
        height: 4.4rem;
    }

    .notice-list a {
        min-height: 6rem;
        grid-template-columns: 3rem minmax(0, 1fr) 1.25rem;
        gap: 0.5rem;
        padding-inline: 0.25rem;
    }

    .notice-list__title {
        white-space: normal;
        display: -webkit-box;
        overflow: hidden;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .notice-list time {
        display: block;
        grid-column: 2;
        margin-top: -1.4rem;
        text-align: left;
    }

    .notice-list__arrow {
        grid-column: 3;
        grid-row: 1 / span 2;
    }

    .story-card {
        grid-template-columns: 1fr;
    }

    .story-card__visual {
        min-height: 17rem;
    }

    .story-card__content {
        padding: 2.25rem 1.5rem;
    }

    .consult-cta__inner {
        display: block;
    }

    .consult-cta__actions {
        margin-top: 2rem;
    }

    .consult-cta__actions p {
        justify-content: flex-start;
    }

    .consult-cta__actions .btn {
        width: 100%;
    }

    .footer-menu {
        flex-wrap: wrap;
        gap: 0.45rem 1rem;
        padding-block: 1rem;
    }

    .site-footer__grid {
        display: block;
    }

    .site-footer__address {
        display: block;
    }

    .site-footer__address span {
        display: block;
    }

    .site-footer__contact {
        margin-top: 2rem;
        padding-top: 1.5rem;
        border-top: 1px solid rgba(255, 255, 255, 0.1);
        text-align: left;
    }

    .back-to-top {
        right: 1rem;
        bottom: 1rem;
    }

    .concept-hero__grid {
        padding-block: 3.75rem 6.5rem;
    }

    .concept-hero__content .button-group {
        flex-direction: column;
    }

    .concept-hero__content .btn {
        width: 100%;
    }

    .concept-hero__notice {
        padding: 1.5rem;
    }

    .concept-hero__info div {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }

    .concept-quick {
        margin-top: -2.5rem;
    }

    .concept-quick .container {
        width: calc(100% - 24px);
    }

    .concept-quick__list {
        grid-template-columns: 1fr;
        border-radius: var(--radius-md);
    }

    .concept-quick__list li + li {
        border-left: 0;
        border-top: 1px solid var(--color-border);
    }

    .concept-quick__list a {
        min-height: 7rem;
    }

    .concept-board__cards,
    .concept-roadmap__list {
        grid-template-columns: 1fr;
    }

    .concept-card,
    .concept-card--wide {
        min-height: 16rem;
        grid-column: auto;
        padding: 1.5rem;
    }

    .concept-roadmap__list li {
        min-height: 12rem;
    }

    .concept-news__list a {
        min-height: 5.75rem;
        grid-template-columns: 3rem minmax(0, 1fr);
        gap: 0.5rem;
    }

    .concept-news__list strong {
        white-space: normal;
    }

    .concept-news__list time {
        grid-column: 2;
        margin-top: -1rem;
        text-align: left;
    }

    .concept-final-cta__inner {
        display: block;
    }

    .concept-final-cta__inner .btn {
        width: 100%;
        margin-top: 1.5rem;
    }

    .portal-hero {
        min-height: 0;
    }

    .portal-hero__inner {
        padding-block: 3.75rem 6rem;
    }

    .portal-hero__visual::after {
        right: -2rem;
        bottom: 2rem;
        width: 14rem;
        height: 8rem;
        opacity: 0.25;
    }

    .portal-hero__controls {
        margin-top: 1.5rem;
    }

    .portal-hero__panel {
        padding: 1.25rem;
    }

    .portal-service {
        margin-top: -3rem;
    }

    .portal-service .container {
        width: calc(100% - 24px);
    }

    .portal-service__list,
    .portal-shortcut__grid,
    .portal-program__grid {
        grid-template-columns: 1fr;
    }

    .portal-service__list li + li {
        border-left: 0;
        border-top: 1px solid var(--color-border);
    }

    .portal-service__list a {
        min-height: 8.5rem;
    }

    .portal-shortcut__grid a + a {
        border-top: 1px solid rgba(255, 255, 255, 0.16);
        border-left: 0;
    }

    .portal-section-head {
        display: block;
    }

    .portal-section-head .btn,
    .portal-section-head .text-link {
        margin-top: 1rem;
    }

    .portal-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 0.25rem;
    }

    .portal-tabs a {
        flex: 0 0 auto;
    }

    .portal-program-card {
        min-height: 0;
        padding: 1.5rem;
    }

    .portal-search__box {
        gap: 1.5rem;
        padding: 1.5rem;
        border-radius: var(--radius-lg);
    }

    .portal-search__chips a {
        min-height: 2.75rem;
    }

    .portal-news__notice a {
        min-height: 5.5rem;
        grid-template-columns: 1fr;
        gap: 0.3rem;
        padding-block: 0.9rem;
    }

    .portal-news__notice strong {
        white-space: normal;
    }

    .portal-news__notice time {
        text-align: left;
    }

    .portal-news__call {
        max-width: none;
        padding: 1.5rem;
    }
}

@media (max-width: 1100px) {
    .service-card-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .service-card-grid--featured {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .service-card--primary {
        min-height: 18rem;
        grid-row: span 2;
    }

    .service-board {
        grid-template-columns: 1fr;
    }

    .service-board__lead {
        min-height: 20rem;
    }

    .home-info-grid,
    .home-news-grid,
    .fishery-map {
        grid-template-columns: 1fr;
    }

    .fishery-map__visual {
        max-width: 42rem;
        width: 100%;
        margin-inline: auto;
    }

    .fishery-map__content {
        max-width: none;
        text-align: center;
    }

    .fishery-map__content p {
        margin-inline: auto;
    }

    .sns-card-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .home-summary-grid,
    .stage-card-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .center-intro-section .home-summary-grid {
        grid-template-columns: 1fr;
    }

    .home-summary-card--image {
        grid-column: 1 / -1;
        grid-row: auto;
    }

    .center-intro-section .home-summary-card--image {
        min-height: 24rem;
    }

    .stage-card:nth-child(odd) {
        border-left: 0;
    }
}

@media (max-width: 900px) {
    .quick-service--featured .quick-service__panel {
        grid-template-columns: 1fr;
    }

    .quick-service--featured .quick-service__list {
        grid-template-columns: repeat(5, minmax(9.5rem, 1fr));
        overflow-x: auto;
    }

    .course-flow {
        grid-template-columns: 1fr;
    }

    .home-search-box {
        padding: 2rem;
    }
}

@media (max-width: 767px) {
    .quick-service--featured {
        margin-top: -2.5rem;
    }

    .quick-service--featured .quick-service__list {
        grid-template-columns: 1fr;
        overflow: visible;
    }

    .quick-service--featured .quick-service__item a {
        min-height: 7.5rem;
    }

    .service-card-grid,
    .center-link-list,
    .sns-card-grid,
    .home-summary-grid,
    .stage-card-grid,
    .fishery-map__nav {
        grid-template-columns: 1fr;
    }

    .service-card--primary {
        min-height: 16rem;
        grid-row: auto;
    }

    .service-card {
        padding: 1.2rem;
    }

    .service-board {
        border-radius: 1rem;
    }

    .service-board__lead {
        min-height: 17rem;
        padding: 1.7rem;
        border-radius: 1rem;
    }

    .service-board__list {
        grid-template-columns: 1fr;
    }

    .service-board__item,
    .service-board__item:nth-child(even) {
        grid-template-columns: 1fr auto;
        min-height: 0;
        padding: 1.25rem;
    }

    .service-board__item::before {
        top: 1.2rem;
        right: 1.2rem;
        width: 2.4rem;
        height: 2.4rem;
        min-height: 0;
    }

    .service-board__item a {
        width: 2.55rem;
        height: 2.55rem;
    }

    .home-summary-grid {
        border-radius: 1rem;
    }

    .home-summary-card {
        border-top: 1px solid rgba(8, 123, 140, 0.1);
        border-left: 0;
        padding: 1.45rem;
    }

    .home-summary-card--image {
        border-top: 0;
    }

    .stage-card {
        border-top: 1px dashed rgba(8, 123, 140, 0.22);
        border-left: 0;
        padding-inline: 1.2rem;
    }

    .stage-card:first-child {
        border-top: 0;
    }

    .process-list {
        grid-template-columns: 1fr;
        gap: 1.25rem;
        border-top-width: 0;
        padding: 0;
    }

    .process-list::before,
    .process-list::after {
        display: none;
    }

    .process-list li {
        display: grid;
        grid-template-columns: 3.75rem 1fr;
        grid-column: auto;
        grid-row: auto;
        min-height: 0;
        column-gap: 0.95rem;
        align-items: start;
        padding: 1.15rem 1rem;
        border-radius: 1.1rem;
        text-align: left;
    }

    .process-list li:nth-child(even),
    .process-list li:nth-child(3),
    .process-list li:nth-child(6) {
        border-radius: 1.1rem;
    }

    .process-list li:nth-child(4),
    .process-list li:nth-child(5),
    .process-list li:nth-child(6) {
        grid-column: auto;
        grid-row: auto;
    }

    .process-list li::before {
        top: auto;
        right: auto;
        bottom: -1.35rem;
        left: 50%;
        display: grid;
        width: 2.15rem;
        height: 2.15rem;
        border-width: 0.2rem;
        content: "↓";
        font-size: 0.95rem;
        transform: translateX(-50%);
    }

    .process-list li:nth-child(3)::before {
        top: auto;
        right: auto;
        bottom: -1.35rem;
        left: 50%;
        content: "↓";
        transform: translateX(-50%);
    }

    .process-list li:nth-child(4)::before,
    .process-list li:nth-child(5)::before {
        content: "↓";
    }

    .process-list li:nth-child(6)::before {
        display: none;
    }

    .process-list li::after {
        top: auto;
        right: 0.8rem;
        bottom: 0.6rem;
        font-size: 3.6rem;
    }

    .process-list__number {
        grid-column: 1;
        grid-row: 1 / span 3;
        width: 3.75rem;
        height: 3.75rem;
        border-width: 0.28rem;
    }

    .process-list__icon {
        display: none;
    }

    .process-list strong,
    .process-list p {
        grid-column: 2;
    }

    .fishery-map {
        gap: 1.6rem;
    }

    .fishery-map__visual {
        min-height: 20rem;
        border-radius: 1.2rem;
    }

    .fishery-map__nav a {
        min-height: 0;
        padding: 1.2rem 1.1rem;
        border: 1px solid rgba(8, 123, 140, 0.12);
    }

    .fishery-map__nav a::after {
        right: 0.1rem;
        bottom: -1rem;
        font-size: 4rem;
    }

    .home-summary-card,
    .home-summary-card--image,
    .stage-card {
        min-height: 0;
    }

    .center-intro-section .home-summary-card--image {
        min-height: 20rem;
        border-radius: 0.35rem 2rem 0.35rem 0.35rem;
    }

    .center-intro-section .home-summary-card:not(.home-summary-card--image) {
        padding: 1.35rem 0;
    }

    .home-search-box {
        padding: 1.25rem;
        border-radius: var(--radius-lg);
    }

    .home-search-form {
        display: grid;
        grid-template-columns: 1fr;
    }

    .home-search-form select,
    .home-search-form button {
        width: 100%;
    }

    .course-flow ul {
        grid-template-columns: 1fr;
    }
}

@media print {
    @page {
        margin: 15mm;
    }

    body {
        color: #000;
        background: #fff;
        font-size: 10pt;
    }

    .site-header,
    .site-footer,
    .back-to-top,
    .button-group,
    .section-actions,
    .consult-cta {
        display: none;
    }

    .container {
        width: 100%;
        max-width: none;
    }

    .section {
        padding-block: 20pt;
    }

    a {
        color: #000;
        text-decoration: underline;
    }

    img,
    table {
        max-width: 100%;
        break-inside: avoid;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        scroll-behavior: auto;
        transition-duration: 0.01ms;
        animation-duration: 0.01ms;
        animation-iteration-count: 1;
    }
}

.legacy-hero {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(90deg, rgba(6, 60, 83, 0.88), rgba(6, 60, 83, 0.54)),
        url("../img/mvisual03.jpg") center / cover no-repeat;
}

.legacy-hero__inner {
    display: grid;
    min-height: 38rem;
    grid-template-columns: minmax(0, 1fr) 22rem;
    align-items: center;
    gap: 3rem;
    padding-block: 5rem;
}

.legacy-hero__content {
    max-width: 46rem;
    color: var(--color-white);
}

.legacy-hero__content .page-eyebrow,
.legacy-hero__content .body-text-lg {
    color: rgba(255, 255, 255, 0.84);
}

.legacy-hero__content .text-display {
    margin-top: 1rem;
    color: var(--color-white);
}

.legacy-hero__content .body-text-lg,
.legacy-hero__content .button-group {
    margin-top: 1.5rem;
}

.legacy-hero__content .btn--outline {
    color: var(--color-white);
    border-color: rgba(255, 255, 255, 0.58);
}

.legacy-hero__card,
.legacy-panel,
.legacy-card {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.legacy-hero__card {
    padding: 2rem;
}

.legacy-hero__card .content-title {
    margin-top: 1rem;
}

.legacy-hero__card .body-text-sm {
    margin-top: 0.75rem;
}

.legacy-quick {
    position: relative;
    z-index: 2;
    margin-top: -3rem;
}

.legacy-quick__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    overflow: hidden;
    background: var(--color-white);
    border: 1px solid rgba(14, 81, 99, 0.08);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
}

.legacy-quick__grid li + li {
    border-left: 1px solid var(--color-border);
}

.legacy-quick__grid a {
    display: flex;
    min-height: 8rem;
    flex-direction: column;
    justify-content: center;
    padding: 1.5rem;
}

.legacy-quick__grid a:hover {
    color: var(--color-primary-800);
    background: var(--color-primary-050);
}

.legacy-quick__grid strong {
    color: var(--color-navy);
    font-size: 1.1rem;
}

.legacy-quick__grid span {
    margin-top: 0.35rem;
    color: var(--color-text-muted);
    font-size: var(--font-size-body-sm);
}

.legacy-section--soft {
    background: var(--color-surface);
}

.legacy-greeting {
    display: grid;
    grid-template-columns: 26rem minmax(0, 1fr);
    gap: 2.5rem;
    align-items: center;
    margin-bottom: 2rem;
}

.legacy-greeting img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--radius-md);
}

.legacy-greeting .content-title,
.legacy-greeting .body-text-lg,
.legacy-greeting .body-text {
    margin-top: 0.9rem;
}

.legacy-two-column,
.legacy-card-grid,
.legacy-consult {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.legacy-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.legacy-panel,
.legacy-card {
    min-width: 0;
    padding: 1.75rem;
}

.legacy-panel .content-title,
.legacy-card .content-title {
    margin-bottom: 1rem;
}

.table-scroll {
    min-width: 0;
    overflow-x: auto;
}

.data-table {
    width: 100%;
    min-width: 44rem;
    border-collapse: collapse;
    font-size: var(--font-size-body-sm);
}

.data-table caption {
    margin-bottom: 0.75rem;
    color: var(--color-text-muted);
    text-align: left;
}

.data-table th,
.data-table td {
    padding: 0.8rem;
    border: 1px solid var(--color-border);
    vertical-align: top;
}

.data-table thead th,
.data-table tbody th {
    color: var(--color-navy);
    background: var(--color-primary-050);
}

@media (max-width: 767px) {
    .table-scroll.has-mobile-list {
        overflow-x: visible;
    }

    .data-table.is-mobile-list {
        display: block;
        min-width: 0;
        border-top: 2px solid var(--color-primary-700);
        font-size: var(--font-size-body-sm);
    }

    .data-table.is-mobile-list caption {
        display: block;
    }

    .data-table.is-mobile-list thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
    }

    .data-table.is-mobile-list tbody,
    .data-table.is-mobile-list tr,
    .data-table.is-mobile-list th,
    .data-table.is-mobile-list td {
        display: block;
        width: 100%;
    }

    .data-table.is-mobile-list tbody tr {
        border-bottom: 1px solid var(--color-primary-700);
    }

    .data-table.is-mobile-list tbody th {
        padding: 0.8rem 1rem;
        border: 0;
        background: var(--color-primary-050);
        text-align: left;
    }

    .data-table.is-mobile-list tbody td {
        display: grid;
        gap: 0.75rem;
        padding: 0.75rem 1rem;
        border: 0;
        border-top: 1px solid var(--color-border);
        overflow-wrap: anywhere;
    }

}

.legacy-info-list div {
    display: grid;
    grid-template-columns: 6rem minmax(0, 1fr);
    gap: 1rem;
    padding-block: 0.85rem;
    border-bottom: 1px solid var(--color-border);
}

.legacy-info-list dt {
    color: var(--color-navy);
    font-weight: var(--font-weight-bold);
}

.legacy-info-list dd {
    color: var(--color-text-muted);
}

.legacy-info-list--compact div {
    grid-template-columns: 5rem minmax(0, 1fr);
    padding-block: 0.55rem;
    font-size: var(--font-size-body-sm);
}

.legacy-map {
    display: grid;
    min-height: 12rem;
    place-items: center;
    margin-top: 1.5rem;
    color: var(--color-primary-700);
    background: linear-gradient(135deg, var(--color-primary-050), #eef4f7);
    border: 1px dashed #9acbd0;
    border-radius: var(--radius-md);
    font-weight: var(--font-weight-bold);
}

.legacy-process,
.legacy-stage-grid {
    display: grid;
    gap: 1rem;
    margin-top: 1.4rem;
}

.legacy-process {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.legacy-process li,
.legacy-stage-grid article {
    padding: 1.5rem;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

.legacy-process strong,
.legacy-process span,
.legacy-stage-grid span,
.legacy-stage-grid h3,
.legacy-stage-grid p {
    display: block;
}

.legacy-process strong,
.legacy-stage-grid h3 {
    color: var(--color-navy);
    line-height: var(--line-height-title);
}

.legacy-process span,
.legacy-stage-grid p {
    margin-top: 0.5rem;
    color: var(--color-text-muted);
    font-size: var(--font-size-body-sm);
    line-height: 1.65;
}

.legacy-stage-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.legacy-stage-grid span {
    margin-bottom: 1rem;
    color: var(--color-primary-600);
    font-weight: var(--font-weight-bold);
}

.legacy-news {
    color: var(--color-white);
    background: var(--color-primary-800);
}

.legacy-news__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

.legacy-news .page-eyebrow,
.legacy-news .section-title,
.legacy-news .body-text {
    color: var(--color-white);
}

.legacy-news .body-text {
    margin-top: 0.75rem;
    opacity: 0.82;
}

.legacy-news .btn--outline {
    color: var(--color-white);
    border-color: rgba(255, 255, 255, 0.45);
}

.legacy-page-hero {
    padding-block: 4.5rem;
    color: var(--color-white);
    background:
        linear-gradient(90deg, rgba(6, 60, 83, 0.92), rgba(6, 60, 83, 0.6)),
        url("../img/mvisual03.jpg") center / cover no-repeat;
}

.legacy-page-hero .page-eyebrow,
.legacy-page-hero .page-title,
.legacy-page-hero .body-text-lg {
    color: var(--color-white);
}

.legacy-page-hero .page-title {
    margin-top: 1rem;
}

.legacy-page-hero .body-text-lg {
    max-width: 46rem;
    margin-top: 1rem;
    opacity: 0.84;
}

.breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-bottom: 1.4rem;
    color: rgba(255, 255, 255, 0.74);
    font-size: var(--font-size-body-sm);
}

.breadcrumb li + li::before {
    margin-right: 0.45rem;
    content: "/";
    opacity: 0.65;
}

.breadcrumb a:hover {
    color: var(--color-white);
    text-decoration: underline;
}

.legacy-page-body {
    padding-block: var(--space-section);
    background: var(--color-white);
}

.legacy-page-layout {
    display: grid;
    grid-template-columns: 16rem minmax(0, 1fr);
    gap: 3rem;
    align-items: start;
}

.legacy-local-nav {
    position: sticky;
    top: 1rem;
    overflow: hidden;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.legacy-local-nav h2 {
    padding: 1.2rem 1.35rem;
    color: var(--color-white);
    background: var(--color-primary-800);
    font-size: 1rem;
}

.legacy-local-nav a {
    display: block;
    padding: 0.95rem 1.35rem;
    color: var(--color-text);
    border-top: 1px solid var(--color-border);
    font-weight: var(--font-weight-medium);
}

.legacy-local-nav a:hover,
.legacy-local-nav a.is-current {
    color: var(--color-primary-800);
    background: var(--color-primary-050);
}

.legacy-page-content {
    min-width: 0;
}

.content-block {
    margin-top: 2.5rem;
}

.content-block:first-child {
    margin-top: 0;
}

.legacy-greeting--page {
    margin-bottom: 0;
}

.legacy-greeting--page .body-text + .body-text {
    margin-top: 1rem;
}

.legacy-contact-grid {
    display: grid;
    grid-template-columns: 25rem minmax(0, 1fr);
    gap: 1rem;
}

.legacy-map--large {
    min-height: 22rem;
    margin-top: 0;
}

.legacy-card-grid--two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.legacy-process--page {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.return-type-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1rem, 2.3vw, 1.5rem);
    margin-top: 1.4rem;
}

.return-type-card {
    --return-type-accent: var(--color-primary-700);
    position: relative;
    min-width: 0;
    padding: clamp(1.25rem, 2.4vw, 1.65rem);
    background: linear-gradient(180deg, rgba(240, 251, 250, 0.9), var(--color-white) 52%);
    border: 1px solid rgba(8, 108, 134, 0.18);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-xs);
    overflow: hidden;
    transition: transform var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base);
}

.return-type-card__mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4.5rem;
    height: 4.5rem;
    color: var(--color-white);
    background: var(--return-type-accent);
    border-radius: 1.25rem;
    box-shadow: 0 0.8rem 1.8rem rgba(6, 60, 83, 0.15);
    font-size: 1.35rem;
    font-weight: var(--font-weight-bold);
    line-height: 1;
}

.return-type-card__route {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, 0.55rem);
    justify-content: space-between;
    max-width: 8rem;
    margin: 1.35rem 0 1.2rem;
}

.return-type-card__route::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 0.2rem;
    left: 0.2rem;
    height: 2px;
    background: linear-gradient(90deg, rgba(8, 108, 134, 0.2), var(--return-type-accent));
    transform: translateY(-50%);
}

.return-type-card__route span {
    position: relative;
    z-index: 1;
    width: 0.55rem;
    height: 0.55rem;
    background: var(--color-white);
    border: 2px solid var(--return-type-accent);
    border-radius: var(--radius-pill);
}

.return-type-card__route span:last-child {
    background: var(--return-type-accent);
}

.return-type-card__body {
    position: relative;
    z-index: 1;
}

.return-type-card .badge {
    color: var(--return-type-accent);
    background: rgba(240, 251, 250, 0.9);
    border-color: rgba(8, 108, 134, 0.16);
}

.return-type-card .content-title {
    margin-top: 0.8rem;
    color: var(--color-navy);
    font-size: clamp(1.12rem, 1.75vw, 1.28rem);
}

.return-type-card .body-text {
    margin-top: 0.7rem;
    color: var(--color-text-muted);
}

.return-type-card:nth-child(2) {
    --return-type-accent: var(--color-primary-500);
}

.return-type-card:nth-child(3) {
    --return-type-accent: var(--color-accent-orange);
}

.return-type-card:hover {
    transform: translateY(-0.2rem);
    border-color: rgba(8, 108, 134, 0.3);
    box-shadow: var(--shadow-sm);
}

.return-flow {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 1.4rem;
    list-style: none;
}

.return-flow__item {
    display: grid;
    grid-template-columns: 3.2rem minmax(0, 1fr);
    min-width: 0;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-xs);
    overflow: hidden;
}

.return-flow__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 100%;
    color: var(--color-primary-800);
    background: var(--color-surface);
    border-right: 1px solid var(--color-border);
    font-size: 0.92rem;
    font-weight: var(--font-weight-bold);
    line-height: 1;
}

.return-flow__card {
    min-width: 0;
    padding: clamp(1.05rem, 2vw, 1.3rem);
}

.return-flow__card strong,
.return-flow__card span {
    display: block;
}

.return-flow__card strong {
    color: var(--color-navy);
    font-size: 1.05rem;
    line-height: var(--line-height-title);
}

.return-flow__card span {
    margin-top: 0.45rem;
    color: var(--color-text-muted);
    font-size: var(--font-size-body-sm);
    line-height: 1.7;
}

.legacy-program-list {
    display: grid;
    gap: 1rem;
}

.legacy-program {
    padding: 1.75rem;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.legacy-program .content-title {
    margin-bottom: 1rem;
}

.bullet-list {
    display: grid;
    gap: 0.35rem;
}

.bullet-list li {
    position: relative;
    padding-left: 0.85rem;
    color: var(--color-text-muted);
    line-height: 1.65;
}

.bullet-list li::before {
    position: absolute;
    top: 0.75em;
    left: 0;
    width: 0.25rem;
    height: 0.25rem;
    background: var(--color-primary-600);
    border-radius: 50%;
    content: "";
}

.legacy-stat-card {
    display: flex;
    min-height: 7rem;
    flex-direction: column;
    justify-content: center;
}

.legacy-stat-card span {
    color: var(--color-text-muted);
    font-size: var(--font-size-body-sm);
}

.legacy-stat-card strong {
    margin-top: 0.35rem;
    color: var(--color-primary-800);
    font-size: 1.55rem;
    line-height: 1.2;
}

.license-list {
    display: grid;
    gap: var(--space-12);
}

.license-group {
    padding-top: var(--space-5);
    border-top: 3px solid var(--color-navy);
}

.license-group .content-title {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-5);
    color: var(--color-navy);
}

.license-group .content-title::before {
    width: 0.45rem;
    height: 1.35rem;
    flex: 0 0 auto;
    background: var(--color-primary-600);
    border-radius: var(--radius-sm);
    content: "";
}

.license-group__summary {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: var(--space-4);
    margin-bottom: var(--space-4);
    padding: var(--space-4) var(--space-5);
    background: var(--color-primary-050);
    border: 1px solid var(--color-border);
    border-left: 4px solid var(--color-primary-600);
    border-radius: var(--radius-sm);
}

.license-group__summary h4,
.license-group__summary p {
    margin: 0;
}

.license-group__summary h4 {
    color: var(--color-navy);
    font-size: var(--font-size-body);
}

.license-group__summary p {
    color: var(--color-text-muted);
    font-size: var(--font-size-body-sm);
    white-space: nowrap;
}

.license-group__summary strong {
    margin-left: var(--space-3);
    color: var(--color-navy);
    font-size: 1.6rem;
    line-height: 1;
}

.license-group__items {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-3);
    margin: 0;
}

.license-group__item {
    display: flex;
    min-height: 5.25rem;
    flex-direction: column;
    justify-content: center;
    gap: var(--space-2);
    padding: var(--space-4) var(--space-5);
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-top: 3px solid var(--color-border);
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-xs);
}

.license-group__item dt,
.license-group__item dd {
    margin: 0;
}

.license-group__item dd {
    color: var(--color-primary-800);
    font-size: 1.35rem;
    font-weight: var(--font-weight-bold);
    line-height: 1.2;
    white-space: nowrap;
}

.license-group__item dd span {
    margin-left: 0.2rem;
    color: var(--color-text-muted);
    font-size: var(--font-size-body-sm);
    font-weight: var(--font-weight-medium);
}

.license-subgroup-list {
    display: grid;
    gap: var(--space-10);
}

.license-subgroup + .license-subgroup {
    padding-top: var(--space-2);
}

@media (max-width: 767px) {
    .license-group__items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .license-group__summary {
        align-items: flex-start;
    }

    .license-group__item {
        min-height: 5rem;
        padding: var(--space-3) var(--space-4);
    }
}

@media (max-width: 480px) {
    .license-group__items {
        grid-template-columns: 1fr;
    }

    .license-group__summary {
        align-items: center;
    }
}

@media (max-width: 900px) {
    .legacy-hero__inner,
    .legacy-greeting,
    .legacy-two-column,
    .legacy-consult {
        grid-template-columns: 1fr;
    }

    .legacy-quick__grid,
    .legacy-card-grid,
    .legacy-stage-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .legacy-quick__grid li:nth-child(3) {
        border-left: 0;
    }

    .legacy-quick__grid li:nth-child(n + 3) {
        border-top: 1px solid var(--color-border);
    }

    .legacy-process {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .legacy-page-layout,
    .legacy-contact-grid {
        grid-template-columns: 1fr;
    }

    .legacy-local-nav {
        position: static;
    }

    .legacy-local-nav ul {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .legacy-local-nav a {
        min-height: 100%;
        border-top: 1px solid var(--color-border);
        border-right: 1px solid var(--color-border);
    }

    .legacy-local-nav li:nth-child(3n) a {
        border-right: 0;
    }

    .legacy-process--page {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .legacy-hero__inner {
        min-height: auto;
        padding-block: 4rem 6rem;
    }

    .legacy-hero__card {
        display: none;
    }

    .legacy-quick {
        margin-top: -2rem;
    }

    .legacy-quick .container {
        width: calc(100% - 24px);
    }

    .legacy-quick__grid,
    .legacy-card-grid,
    .legacy-process,
    .legacy-stage-grid {
        grid-template-columns: 1fr;
    }

    .legacy-quick__grid li + li,
    .legacy-quick__grid li:nth-child(n + 3) {
        border-top: 1px solid var(--color-border);
        border-left: 0;
    }

    .legacy-quick__grid a {
        min-height: 6rem;
    }

    .legacy-panel,
    .legacy-card,
    .legacy-stage-grid article {
        padding: 1.25rem;
    }

    .legacy-info-list div {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }

    .legacy-news__inner {
        display: block;
    }

    .legacy-news .button-group {
        margin-top: 1.5rem;
    }

    .legacy-page-hero {
        padding-block: 3.5rem;
    }

    .legacy-page-layout {
        gap: 2rem;
    }

    .legacy-local-nav ul,
    .legacy-card-grid--two,
    .legacy-process--page {
        grid-template-columns: 1fr;
    }

    .legacy-local-nav li:nth-child(n) a {
        border-right: 0;
    }

    .legacy-program {
        padding: 1.25rem;
    }
}

.subpage-hero {
    position: relative;
    height: 400px;
    overflow: hidden;
    color: var(--color-white);
    background:
        linear-gradient(120deg, rgba(0, 0, 0, 0.86), rgba(0, 0, 0, 0.68)),
        url("../img/mvisual03.jpg") center / cover no-repeat;
    background-blend-mode: multiply;
}



.subpage-hero__inner {
    position: relative;
    z-index: 1;
    top: 50%;
    transform: translate(0, -50%);
}

.subpage-hero .page-eyebrow,
.subpage-hero .page-title,
.subpage-hero .body-text-lg {
    color: var(--color-white);
}

.subpage-hero .page-title {
    margin-top: 0.9rem;
}

.subpage-hero .body-text-lg {
    max-width: 48rem;
    margin-top: 1rem;
    color: rgba(255, 255, 255, 0.88);
}

.subpage-breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1.35rem;
    color: rgba(255, 255, 255, 0.78);
    font-size: var(--font-size-body-sm);
}

.subpage-breadcrumb li + li::before {
    margin-right: 0.5rem;
    content: "/";
    opacity: 0.58;
}

.subpage-breadcrumb a:hover {
    color: var(--color-white);
    text-decoration: underline;
}

.subpage-tabs {
    position: relative;
    z-index: 2;
    margin-top: -2.05rem;
}

.subpage-tabs__inner {
    display: grid;
    overflow: hidden;
    grid-auto-columns: minmax(10rem, 1fr);
    grid-auto-flow: column;
    background: var(--color-white);
    border: 1px solid rgba(8, 123, 140, 0.14);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.subpage-tabs a {
    display: flex;
    min-height: 4.1rem;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 1.2rem;
    color: var(--color-navy);
    border-left: 1px solid var(--color-border);
    font-weight: var(--font-weight-bold);
    text-align: center;
    transition: color var(--transition-base), background-color var(--transition-base);
}

.subpage-tabs a:first-child {
    border-left: 0;
}

.subpage-tabs a:hover,
.subpage-tabs a.is-current {
    color: var(--color-white);
    background: var(--color-primary-800);
}

.subpage-mobile-nav {
    display: none;
}

.subpage-mobile-nav__inner {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    background: var(--color-navy);
}

.subpage-dropdown {
    position: relative;
    min-width: 0;
}

.subpage-dropdown + .subpage-dropdown {
    border-left: 1px solid rgba(255, 255, 255, 0.34);
}

.subpage-dropdown summary {
    position: relative;
    display: flex;
    min-height: 3.5rem;
    align-items: center;
    padding: 0.85rem 3rem 0.85rem 1.25rem;
    color: var(--color-white);
    font-weight: var(--font-weight-bold);
    line-height: 1.25;
    cursor: pointer;
    list-style: none;
}

.subpage-dropdown summary::-webkit-details-marker {
    display: none;
}

.subpage-dropdown summary::after {
    position: absolute;
    top: 50%;
    right: 1.15rem;
    width: 0.55rem;
    height: 0.55rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    content: "";
    transform: translateY(-62%) rotate(45deg);
    transition: transform var(--transition-base);
}

.subpage-dropdown[open] summary::after {
    transform: translateY(-35%) rotate(225deg);
}

.subpage-dropdown__panel {
    position: absolute;
    top: 100%;
    right: 0;
    left: 0;
    z-index: 20;
    overflow: hidden;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-top: 0;
    box-shadow: var(--shadow-sm);
}

.subpage-dropdown__panel a {
    display: block;
    padding: 0.9rem 1rem;
    color: var(--color-text);
    border-top: 1px solid var(--color-border);
    font-size: var(--font-size-body-sm);
    font-weight: var(--font-weight-medium);
    line-height: 1.35;
}

.subpage-dropdown__panel a:first-child {
    border-top: 0;
}

.subpage-dropdown__panel a:hover,
.subpage-dropdown__panel a.is-current {
    color: var(--color-primary-800);
    background: var(--color-primary-050);
    font-weight: var(--font-weight-bold);
}

.subpage-body {
    padding-block: var(--space-section);
    background:
        linear-gradient(180deg, var(--color-white), var(--color-section-muted) 56%, var(--color-white));
}

.subpage-layout {
    display: grid;
    grid-template-columns: 16rem minmax(0, 1fr);
    gap: clamp(2rem, 4vw, 4rem);
    align-items: start;
}

.subpage-layout--wide {
    grid-template-columns: minmax(0, 1fr);
}

.subpage-local-nav {
    position: sticky;
    top: calc(var(--header-height) + 1rem);
    overflow: hidden;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.subpage-local-nav h2 {
    padding: 1.15rem 1.3rem;
    color: var(--color-white);
    background: var(--color-primary-800);
    font-size: 1rem;
    line-height: 1.35;
}

.subpage-local-nav a {
    display: block;
    padding: 0.95rem 1.3rem;
    color: var(--color-text);
    border-top: 1px solid var(--color-border);
    font-weight: var(--font-weight-medium);
    transition: color var(--transition-base), background-color var(--transition-base);
}

.subpage-local-nav a:hover,
.subpage-local-nav a.is-current {
    color: var(--color-primary-800);
    background: var(--color-primary-050);
}

.subpage-content {
    min-width: 0;
}

.subpage-intro {
    max-width: 58rem;
    margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.subpage-intro .section-title {
    margin-top: 1rem;
}

.subpage-intro .body-text-lg {
    max-width: 45rem;
    margin-top: 1.4rem;
}

.subpage-visual-message {
    position: relative;
    overflow: hidden;
    min-height: clamp(16rem, 30vw, 25rem);
    margin-bottom: clamp(3rem, 6vw, 5rem);
    background: var(--color-primary-050);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
}

.subpage-visual-message img {
    width: 100%;
    height: 100%;
    min-height: clamp(16rem, 30vw, 25rem);
    object-fit: cover;
}

.subpage-visual-message::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(6, 60, 83, 0.82), rgba(6, 60, 83, 0.24) 58%, transparent);
    content: "";
}

.subpage-visual-message__copy {
    position: absolute;
    top: 50%;
    left: clamp(1.5rem, 5vw, 4rem);
    z-index: 1;
    max-width: 31rem;
    color: var(--color-white);
    transform: translateY(-50%);
}

.subpage-visual-message__copy .page-eyebrow,
.subpage-visual-message__copy .content-title {
    color: var(--color-white);
}

.subpage-visual-message__copy .content-title {
    margin-top: 0.9rem;
    font-size: clamp(1.55rem, 3vw, 2.35rem);
}

.subpage-card-grid {
    display: grid;
    gap: 1rem;
    margin-top: clamp(2.5rem, 5vw, 4rem);
}

.subpage-card-grid--two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.subpage-card-grid--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.subpage-card {
    padding: clamp(1.4rem, 2.5vw, 2rem);
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.subpage-card .content-title {
    margin-top: 1rem;
    font-size: 1.25rem;
}

.subpage-card .body-text {
    margin-top: 0.75rem;
}

.subpage-card .body-text + .btn {
    margin-top: 1.25rem;
}

.subpage-card .content-title + .bullet-list {
    margin-top: 0.9rem;
}

.organization-chart {
    display: grid;
    grid-template-columns: minmax(15rem, 0.32fr) minmax(0, 0.68fr);
    gap: 1rem;
    align-items: stretch;
    margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.organization-chart__head,
.organization-chart__list li,
.organization-notice {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.organization-chart__head {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1.5rem, 3vw, 2.4rem);
    border-top: 0.35rem solid var(--color-primary-700);
}

.organization-chart__head .content-title {
    margin-top: 1rem;
}

.organization-chart__head .body-text-sm {
    margin-top: 0.75rem;
}

.organization-chart__head a,
.organization-table a {
    color: var(--color-primary-800);
    font-weight: var(--font-weight-bold);
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.organization-chart__list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
    counter-reset: organization-step;
}

.organization-chart__list li {
    position: relative;
    min-width: 0;
    padding: 1.4rem;
}

.organization-chart__list li::before {
    display: grid;
    width: 2.25rem;
    height: 2.25rem;
    margin-bottom: 1rem;
    place-items: center;
    color: var(--color-white);
    background: var(--color-primary-700);
    border-radius: 50%;
    content: counter(organization-step, decimal-leading-zero);
    counter-increment: organization-step;
    font-size: 0.78rem;
    font-weight: var(--font-weight-bold);
}

.organization-chart__list li + li::after {
    position: absolute;
    top: 2.45rem;
    left: -0.75rem;
    width: 0.75rem;
    height: 1px;
    background: var(--color-border);
    content: "";
}

.organization-chart__list strong,
.organization-chart__list span {
    display: block;
}

.organization-chart__list strong {
    color: var(--color-navy);
    font-size: 1.05rem;
    line-height: var(--line-height-title);
}

.organization-chart__list span {
    margin-top: 0.5rem;
    color: var(--color-text-muted);
    font-size: var(--font-size-body-sm);
    line-height: 1.65;
}

.section-heading {
    margin-bottom: 1.4rem;
}

.section-heading .content-title {
    margin-top: 0.65rem;
}

.section-heading .caption {
    margin-top: 0.5rem;
}

.content-block .subpage-card-grid {
    margin-top: 1.4rem;
}

@media (max-width: 767px) {
    .return-type-grid {
        grid-template-columns: 1fr;
        gap: 0.9rem;
    }

    .return-type-card {
        display: grid;
        grid-template-columns: 3.5rem minmax(0, 1fr);
        gap: 0.95rem;
        align-items: start;
        padding: 1.1rem;
        border-radius: var(--radius-md);
    }

    .return-type-card__mark {
        width: 3.5rem;
        height: 3.5rem;
        border-radius: 1rem;
        font-size: 1rem;
    }

    .return-type-card__route {
        display: none;
    }

    .return-type-card .content-title {
        margin-top: 0.65rem;
    }

    .return-flow {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }

    .return-flow__item {
        grid-template-columns: 3rem minmax(0, 1fr);
    }

    .return-flow__number {
        font-size: 0.82rem;
    }

    .return-flow__card {
        padding: 1rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .return-type-card,
    .return-flow__item {
        transition: none;
    }

    .return-type-card:hover {
        transform: none;
    }
}

.content-accordion {
    display: grid;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.content-accordion details {
    overflow: hidden;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

.content-accordion summary {
    position: relative;
    display: grid;
    gap: 0.25rem;
    padding: 1.25rem 3.5rem 1.25rem 1.5rem;
    cursor: pointer;
    list-style: none;
}

.content-accordion summary::-webkit-details-marker {
    display: none;
}

.content-accordion summary::after {
    position: absolute;
    top: 50%;
    right: 1.25rem;
    width: 2rem;
    height: 2rem;
    background-color: var(--color-primary-700);
    background-image:
        linear-gradient(45deg, transparent 46%, var(--color-white) 47%, var(--color-white) 57%, transparent 58%),
        linear-gradient(135deg, transparent 46%, var(--color-white) 47%, var(--color-white) 57%, transparent 58%);
    background-position: 0.62rem 0.82rem, 0.96rem 0.82rem;
    background-repeat: no-repeat;
    background-size: 0.48rem 0.48rem;
    border: 0;
    border-radius: 50%;
    content: "";
    transform: translateY(-50%);
    transition: transform 0.2s ease;
}

.content-accordion details[open] summary::after {
    transform: translateY(-50%) rotate(180deg);
}

.content-accordion summary:hover::after {
    background-color: var(--color-primary-900);
}

.content-accordion summary:focus-visible {
    outline: 3px solid rgba(8, 123, 140, 0.28);
    outline-offset: -3px;
}

.content-accordion summary strong {
    color: var(--color-title);
    font-size: 1.1rem;
}

.content-accordion summary span {
    color: var(--color-text-muted);
    font-size: var(--font-size-sm);
}

.content-accordion__body {
    padding: 0 1.5rem 1.5rem;
    border-top: 1px solid var(--color-border);
}

.content-accordion__body.prose {
    padding-top: 1.25rem;
}

.content-accordion__body > .content-title {
    margin-top: 1.5rem;
    font-size: 1.15rem;
}

.content-accordion__body > .body-text,
.content-accordion__body > .bullet-list,
.content-accordion__body > .table-scroll,
.content-accordion__body > .legacy-process {
    margin-top: 1rem;
}

.organization-table__tasks,
.organization-notice ul {
    display: grid;
    gap: 0.35rem;
}

.organization-table__tasks li,
.organization-notice li {
    position: relative;
    padding-left: 0.85rem;
    color: var(--color-text-muted);
    line-height: 1.65;
}

.organization-table__tasks li::before,
.organization-notice li::before {
    position: absolute;
    top: 0.72em;
    left: 0;
    width: 0.25rem;
    height: 0.25rem;
    background: var(--color-primary-600);
    border-radius: 50%;
    content: "";
}

.organization-table {
    padding-bottom: 0.25rem;
}

.organization-table .data-table {
    background: var(--color-white);
}

.related-agency-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: clamp(0.75rem, 1.5vw, 1.1rem);
}

.related-section-nav {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.65rem;
    margin-top: clamp(2rem, 4vw, 3rem);
}

.related-section-nav a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 3.25rem;
    padding: 0.75rem 1rem;
    color: var(--color-primary-900);
    background: var(--color-primary-050);
    border: 1px solid rgba(8, 108, 134, 0.22);
    border-radius: var(--radius-sm);
    font-weight: var(--font-weight-bold);
    text-align: center;
    transition: background var(--transition-base), border-color var(--transition-base), color var(--transition-base);
}

.related-section-nav a:hover,
.related-section-nav a:focus-visible {
    color: var(--color-white);
    background: var(--color-primary-700);
    border-color: var(--color-primary-700);
}

.related-agency-card,
.related-site-card {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.related-agency-card {
    display: grid;
    grid-template-columns: 1fr;
    min-width: 0;
    overflow: hidden;
}

.related-agency-card__logo {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 9.5rem;
    padding: 1.25rem;
    background: linear-gradient(135deg, var(--color-primary-050), var(--color-white));
    border-bottom: 1px solid var(--color-border);
}

.related-agency-card__logo img {
    width: 100%;
    object-fit: contain;
}

.related-agency-card__body {
    min-width: 0;
    padding: clamp(1.4rem, 2.6vw, 2rem);
}

.related-agency-card__body .content-title {
    font-size: 1.25rem;
}

.related-agency-card__body .body-text {
    margin-top: 0.7rem;
}

.related-agency-card__body .body-text-sm {
    margin-top: 0.85rem;
    color: var(--color-text-muted);
}

.related-meta {
    display: grid;
    gap: 0.45rem;
    margin-top: 1rem;
    color: var(--color-text-muted);
    font-size: var(--font-size-body-sm);
}

.related-meta div {
    display: grid;
    grid-template-columns: 3.5rem minmax(0, 1fr);
    gap: 0.65rem;
}

.related-meta dt {
    color: var(--color-primary-800);
    font-weight: var(--font-weight-bold);
}

.related-meta dd {
    min-width: 0;
}

.related-agency-card__body .btn {
    margin-top: 1.15rem;
}

.related-site-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.related-site-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}

.related-site-card:hover,
.related-site-card:focus-visible {
    border-color: rgba(8, 108, 134, 0.45);
    box-shadow: var(--shadow-md);
    transform: translateY(-0.15rem);
}

.related-site-card__logo {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 7.5rem;
    padding: 1.15rem;
    background: var(--color-surface);
    border-bottom: 1px solid var(--color-border);
}

.related-site-card__logo img {
    width: 100%;
    object-fit: contain;
}

.related-site-card__body {
    display: grid;
    justify-items: start;
    gap: 0.45rem;
    padding: 1.2rem;
}

.related-site-card__body .badge {
    width: auto;
    justify-self: start;
}

.related-site-card__body strong {
    color: var(--color-title);
    font-size: 1.05rem;
    line-height: var(--line-height-title);
}

.related-site-card__body span:not(.badge) {
    color: var(--color-text-muted);
    font-size: var(--font-size-body-sm);
}

.organization-notice {
    margin-top: clamp(2.5rem, 5vw, 4rem);
    padding: clamp(1.4rem, 2.5vw, 2rem);
    background: var(--color-primary-050);
}

.organization-notice .content-title {
    font-size: 1.25rem;
}

.organization-notice ul {
    margin-top: 1rem;
}

.project-overview {
    display: grid;
    grid-template-columns: minmax(15rem, 0.38fr) minmax(0, 0.62fr);
    margin-top: clamp(2rem, 5vw, 3.5rem);
    overflow: hidden;
    color: var(--color-white);
    background: var(--color-primary-900);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
}

.project-overview__lead {
    display: flex;
    gap: 1.25rem;
    align-items: center;
    padding: clamp(1.5rem, 3vw, 2.25rem);
    background: var(--color-primary-700);
}

.project-overview__number {
    font-size: clamp(3rem, 6vw, 5rem);
    font-weight: var(--font-weight-bold);
    line-height: 1;
}

.project-overview__lead strong,
.project-overview__lead span,
.project-overview__areas strong,
.project-overview__areas span {
    display: block;
}

.project-overview__lead strong {
    font-size: 1.15rem;
}

.project-overview__lead p > span,
.project-overview__areas span {
    margin-top: 0.25rem;
    color: rgba(255, 255, 255, 0.72);
    font-size: var(--font-size-body-sm);
}

.project-overview__areas {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: center;
    padding: 1.25rem;
}

.project-overview__areas li {
    min-width: 0;
    padding: 0.5rem 1rem;
    border-left: 1px solid rgba(255, 255, 255, 0.16);
}

.project-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.project-card {
    display: flex;
    min-height: 100%;
    flex-direction: column;
    padding: clamp(1.4rem, 2.5vw, 2rem);
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.project-card__head {
    display: flex;
    gap: 0.65rem;
    align-items: center;
}

.project-card__index {
    display: inline-grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    color: var(--color-white);
    background: var(--color-primary-700);
    border-radius: 50%;
    font-size: 0.75rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.04em;
}

.project-card .content-title {
    margin-top: 1rem;
    font-size: 1.25rem;
}

.project-card .body-text {
    margin-top: 0.75rem;
    margin-bottom: 1.5rem;
}

.project-card__meta {
    display: grid;
    gap: 0;
    margin-top: auto;
    padding: 0.4rem 1rem;
    background: var(--color-surface);
    border-radius: var(--radius-sm);
}

.project-card__meta div {
    display: grid;
    grid-template-columns: 5.25rem minmax(0, 1fr);
    gap: 0.75rem;
    padding-block: 0.7rem;
    border-top: 1px solid rgba(8, 108, 134, 0.12);
}

.project-card__meta div:first-child {
    border-top: 0;
}

.project-card__meta dt {
    color: var(--color-text-muted);
    font-size: var(--font-size-body-sm);
    font-weight: var(--font-weight-medium);
}

.project-card__meta dd {
    color: var(--color-navy);
    font-size: var(--font-size-body-sm);
    font-weight: var(--font-weight-semibold);
}

.table-scroll-guide {
    display: none;
    margin-bottom: 0.75rem;
    color: var(--color-text-muted);
}

.project-port-table .data-table th:first-child {
    width: 18%;
}

.project-port-table .data-table th:last-child {
    width: 20%;
}

.intention-check-list {
    display: grid;
    gap: 0;
    margin-top: 1.6rem;
    border-top: 1px solid var(--color-border);
}

.intention-check-list li {
    display: grid;
    grid-template-columns: 3.25rem minmax(8rem, 0.22fr) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
    padding: 1.15rem 0;
    border-bottom: 1px solid var(--color-border);
}

.intention-check-list span,
.intention-check-list strong {
    display: block;
}

.intention-check-list span:first-child {
    color: var(--color-primary-700);
    font-size: 0.92rem;
    font-weight: var(--font-weight-bold);
}

.intention-check-list strong {
    color: var(--color-navy);
    line-height: var(--line-height-title);
}

.intention-check-list span:last-child {
    color: var(--color-text-muted);
    line-height: 1.7;
}

.intention-program-list {
    display: grid;
    gap: 0;
    margin-top: 1.6rem;
    border-top: 2px solid var(--color-primary-800);
}

.intention-program {
    display: grid;
    grid-template-columns: minmax(12rem, 0.26fr) minmax(0, 1fr);
    gap: clamp(1.25rem, 3vw, 2rem);
    padding: clamp(1.5rem, 3vw, 2.25rem) 0;
    border-bottom: 1px solid var(--color-border);
}

.intention-program__head .content-title {
    margin-top: 0.8rem;
    font-size: 1.35rem;
}

.intention-program__body {
    display: grid;
    gap: 1.1rem;
}

.intention-program__section {
    display: grid;
    grid-template-columns: 7.5rem minmax(0, 1fr);
    gap: 1.25rem;
}

.intention-program__section h4 {
    color: var(--color-navy);
    font-size: var(--font-size-body-sm);
    font-weight: var(--font-weight-bold);
    line-height: 1.5;
}

.intention-program__section p {
    color: var(--color-text-muted);
    line-height: 1.75;
}

.location-landing {
    margin-bottom: clamp(3rem, 6vw, 5rem);
}

.location-map-stage {
    position: relative;
    min-height: clamp(27rem, 48vw, 36rem);
    overflow: hidden;
    padding: 3rem;
    color: var(--color-white);
    background:
        radial-gradient(circle at 20% 15%, rgba(37, 182, 174, 0.34), transparent 28%),
        linear-gradient(135deg, var(--color-primary-900), var(--color-primary-700));
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
}

.location-map-stage iframe {
    width:100%;
    height:500px;

}


.location-map-stage__water,
.location-map-stage__road,
.location-map-stage__island {
    position: absolute;
    pointer-events: none;
}

.location-map-stage__water {
    right: -8%;
    bottom: -18%;
    width: 58%;
    height: 58%;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 55% 45% 0 0;
}

.location-map-stage__road {
    height: 0.65rem;
    background: rgba(255, 255, 255, 0.28);
    border-radius: 999px;
    transform-origin: left center;
}

.location-map-stage__road--main {
    top: 58%;
    left: -4%;
    width: 78%;
    transform: rotate(-10deg);
}

.location-map-stage__road--sub {
    top: 36%;
    left: 42%;
    width: 44%;
    background: rgba(243, 164, 74, 0.52);
    transform: rotate(36deg);
}

.location-map-stage__island {
    background: rgba(255, 255, 255, 0.13);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 999px;
}

.location-map-stage__island--one {
    top: 16%;
    right: 16%;
    width: 8rem;
    height: 3rem;
    transform: rotate(-18deg);
}

.location-map-stage__island--two {
    right: 7%;
    bottom: 16%;
    width: 11rem;
    height: 4rem;
    transform: rotate(18deg);
}

.location-map-point {
    position: absolute;
    top: 42%;
    left: 58%;
    z-index: 1;
    display: grid;
    max-width: min(22rem, calc(100% - 3rem));
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.35rem 0.85rem;
    align-items: center;
    color: var(--color-white);
    transform: translate(-50%, -50%);
}

.location-map-point__pin {
    display: grid;
    grid-row: span 2;
    width: 3rem;
    height: 3rem;
    place-items: center;
    background: var(--color-secondary);
    border: 0.3rem solid rgba(255, 255, 255, 0.9);
    border-radius: 50% 50% 50% 0;
    box-shadow: 0 1rem 2rem rgba(6, 60, 83, 0.24);
    transform: rotate(-45deg);
}

.location-map-point__pin::after {
    width: 0.65rem;
    height: 0.65rem;
    background: var(--color-white);
    border-radius: 50%;
    content: "";
}

.location-map-point strong,
.location-map-point span {
    display: block;
    text-shadow: 0 0.2rem 0.8rem rgba(6, 60, 83, 0.42);
}

.location-map-point strong {
    font-size: clamp(1.2rem, 2vw, 1.55rem);
    line-height: var(--line-height-title);
}

.location-map-point span {
    color: rgba(255, 255, 255, 0.82);
    font-size: var(--font-size-body-sm);
    line-height: 1.55;
}

.location-contact-strip {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.8fr) minmax(0, 0.8fr);
    overflow: hidden;
    margin: -2.4rem clamp(1rem, 4vw, 3rem) 0;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
}

.location-contact-strip div {
    min-width: 0;
    padding: 1.35rem 1.5rem;
}

.location-contact-strip div + div {
    border-left: 1px solid var(--color-border);
}

.location-contact-strip dt {
    color: var(--color-primary-700);
    font-size: var(--font-size-caption);
    font-weight: var(--font-weight-bold);
}

.location-contact-strip dd {
    margin-top: 0.35rem;
    color: var(--color-navy);
    font-weight: var(--font-weight-bold);
    line-height: 1.45;
}

.location-contact-strip a {
    color: var(--color-primary-800);
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.location-contact-strip__link {
    display: inline-block;
    margin-left: 0.55rem;
    font-size: var(--font-size-body-sm);
    font-weight: var(--font-weight-medium);
}

.location-route {
    display: grid;
    grid-template-columns: minmax(14rem, 0.34fr) minmax(0, 0.66fr);
    gap: clamp(1.5rem, 4vw, 3rem);
    align-items: start;
}

.location-route .section-heading {
    position: sticky;
    top: calc(var(--header-height) + 1rem);
    margin-bottom: 0;
}

.location-route__steps {
    display: grid;
    gap: 0;
    border-top: 2px solid var(--color-navy);
}

.location-route__steps li {
    display: grid;
    grid-template-columns: 4.5rem minmax(0, 1fr);
    gap: 1.2rem;
    padding: 1.5rem 0;
    border-bottom: 1px solid var(--color-border);
}

.location-route__steps span {
    color: var(--color-secondary);
    font-size: 1.35rem;
    font-weight: var(--font-weight-bold);
    line-height: 1.2;
}

.location-route__steps strong,
.location-route__steps p {
    grid-column: 2;
}

.location-route__steps strong {
    color: var(--color-navy);
    font-size: 1.1rem;
    line-height: var(--line-height-title);
}

.location-route__steps p {
    margin-top: 0.35rem;
    color: var(--color-text-muted);
    font-size: var(--font-size-body-sm);
    line-height: 1.65;
}

.greeting-message {
    display: grid;
    grid-template-columns: minmax(16rem, 0.42fr) minmax(0, 0.58fr);
    gap: clamp(1.5rem, 4vw, 3.25rem);
    align-items: stretch;
    overflow: hidden;
    padding: 0;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.greeting-message__media {
    display: flex;
    align-items: center;
    min-height: 100%;
    margin: 0;
    background: var(--color-primary-050);
}

.greeting-message__media img {
    width: 100%;
    height: 100%;
    min-height: 0;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    object-position: center center;
}

.greeting-message__content {
    padding: clamp(1.5rem, 3vw, 2.75rem) clamp(1.5rem, 3.5vw, 3rem) clamp(1.75rem, 3.5vw, 3rem) 0;
}

.greeting-message__headline .content-title {
    margin-top: 0.85rem;
}

.greeting-message__body {
    max-width: 44rem;
}

.subpage-signature {
    margin-top: 2rem;
    color: var(--color-navy);
    font-weight: var(--font-weight-bold);
}

.prose {
    color: var(--color-text-muted);
    line-height: var(--line-height-body);
}

.prose > * + * {
    margin-top: 1rem;
}

.prose h2,
.prose h3,
.prose h4 {
    color: var(--color-title);
    line-height: var(--line-height-title);
}

.prose h2 {
    margin-top: 2.5rem;
    font-size: var(--font-size-content-title);
}

.prose h3 {
    margin-top: 2rem;
    font-size: 1.25rem;
}

.prose ul,
.prose ol {
    display: grid;
    gap: 0.45rem;
    padding-left: 1.15rem;
}

.prose ul {
    list-style: disc;
}

.prose ol {
    list-style: decimal;
}

.prose a {
    color: var(--color-primary-800);
    font-weight: var(--font-weight-bold);
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

/* Privacy policy */
.privacy-intro__date {
    display: inline-flex;
    gap: 0.65rem;
    margin-top: 1.5rem;
    padding: 0.65rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-pill);
    color: var(--color-text-muted);
    background: var(--color-white);
    font-size: var(--font-size-body-sm);
}

.privacy-intro__date strong {
    color: var(--color-title);
}

.privacy-index {
    padding: clamp(1.5rem, 3vw, 2.25rem);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-primary-050);
}

.privacy-index ol {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem 2rem;
    margin-top: 1.5rem;
    counter-reset: privacy-index;
}

.privacy-index li {
    counter-increment: privacy-index;
}

.privacy-index a {
    display: flex;
    gap: 0.75rem;
    align-items: baseline;
    color: var(--color-title);
}

.privacy-index a::before {
    content: counter(privacy-index, decimal-leading-zero);
    flex: 0 0 auto;
    color: var(--color-primary-700);
    font-size: var(--font-size-body-sm);
    font-weight: var(--font-weight-bold);
}

.privacy-index a:hover {
    color: var(--color-primary-800);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.privacy-policy {
    margin-top: clamp(3rem, 6vw, 5rem);
}

.privacy-policy > section {
    scroll-margin-top: calc(var(--header-height) + 1.5rem);
    padding: clamp(2rem, 4vw, 3rem) 0;
    border-top: 1px solid var(--color-border);
}

.privacy-policy > section:last-child {
    border-bottom: 1px solid var(--color-border);
}

.privacy-policy > section > h2 {
    display: flex;
    gap: 0.8rem;
    align-items: baseline;
    margin-top: 0;
}

.privacy-policy > section > h2 span {
    color: var(--color-primary-700);
    font-size: var(--font-size-body-sm);
}

.table-scroll-guide {
    color: var(--color-text-muted);
    font-size: var(--font-size-body-sm);
}

.privacy-table th:first-child {
    width: 18%;
}

.privacy-contact {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 1.5rem;
    overflow: hidden;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

.privacy-contact > div {
    padding: 1.25rem;
}

.privacy-contact > div + div {
    border-left: 1px solid var(--color-border);
}

.privacy-contact dt {
    margin-bottom: 0.35rem;
    color: var(--color-text-muted);
    font-size: var(--font-size-body-sm);
}

.privacy-contact dd {
    color: var(--color-title);
    font-weight: var(--font-weight-bold);
}

.privacy-remedy-list strong {
    display: inline-block;
    min-width: 12rem;
    color: var(--color-title);
}

@media (max-width: 767px) {
    .privacy-index ol {
        grid-template-columns: 1fr;
    }

    .privacy-contact {
        grid-template-columns: 1fr;
    }

    .privacy-contact > div + div {
        border-top: 1px solid var(--color-border);
        border-left: 0;
    }

    .privacy-remedy-list strong {
        display: block;
        min-width: 0;
        margin-bottom: 0.2rem;
    }

    .location-map-stage iframe {
        height:400px;
    }
}

@media (max-width: 900px) {
    .subpage-tabs__inner {
        grid-auto-flow: row;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .subpage-tabs a {
        border-top: 1px solid var(--color-border);
        border-left: 1px solid var(--color-border);
    }

    .subpage-tabs a:nth-child(-n + 3) {
        border-top: 0;
    }

    .subpage-tabs a:nth-child(3n + 1) {
        border-left: 0;
    }

    .subpage-layout {
        grid-template-columns: 1fr;
    }

    .subpage-local-nav {
        position: static;
    }

    .subpage-local-nav ul {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .subpage-local-nav a {
        min-height: 100%;
        border-right: 1px solid var(--color-border);
    }

    .subpage-local-nav li:nth-child(3n) a {
        border-right: 0;
    }

    .subpage-card-grid--three {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .organization-chart {
        grid-template-columns: 1fr;
    }

    .location-contact-strip,
    .location-route {
        grid-template-columns: 1fr;
    }

    .location-route .section-heading {
        position: static;
    }

    .organization-chart__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .related-agency-grid,
    .related-section-nav,
    .related-site-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .related-agency-card__logo {
        min-height: 8.5rem;
    }

    .organization-chart__list li + li::after {
        display: none;
    }

    .greeting-message {
        grid-template-columns: 1fr;
    }

    .greeting-message__media img {
        min-height: 18rem;
    }

    .greeting-message__content {
        padding: clamp(1.4rem, 4vw, 2rem);
    }

    .intention-program {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .subpage-hero {
        height:340px;
    }

    .subpage-tabs {
        display: none;
    }

    .subpage-mobile-nav {
        display: block;
        position: relative;
        z-index: 5;
        background: var(--color-navy);
    }

    .subpage-tabs__inner,
    .subpage-local-nav ul,
    .subpage-card-grid--two,
    .subpage-card-grid--three,
    .related-agency-grid,
    .related-section-nav,
    .related-site-grid,
    .project-list {
        grid-template-columns: 1fr;
    }

    .related-meta div {
        grid-template-columns: 1fr;
        gap: 0.1rem;
    }

    .related-site-card {
        flex-direction: row;
    }

    .related-site-card__logo {
        flex: 0 0 8.25rem;
        min-height: 6.25rem;
        border-right: 1px solid var(--color-border);
        border-bottom: 0;
    }

    .related-site-card__body {
        flex: 1 1 auto;
        min-width: 0;
    }

    .project-overview {
        grid-template-columns: 1fr;
    }

    .project-overview__areas {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1rem 0;
    }

    .project-overview__areas li:nth-child(odd) {
        border-left: 0;
    }

    .table-scroll-guide {
        display: block;
    }

    .subpage-tabs a,
    .subpage-tabs a:nth-child(-n + 3),
    .subpage-tabs a:nth-child(3n + 1),
    .subpage-local-nav a,
    .subpage-local-nav li:nth-child(3n) a {
        border-top: 1px solid var(--color-border);
        border-right: 0;
        border-left: 0;
    }

    .subpage-tabs a:first-child {
        border-top: 0;
    }

    .subpage-body {
        padding-block: 3.5rem 5rem;
    }

    .intention-check-list li {
        grid-template-columns: 2.5rem minmax(0, 1fr);
        gap: 0.35rem 0.85rem;
    }

    .intention-check-list span:last-child {
        grid-column: 2;
    }

    .intention-program__section {
        grid-template-columns: 1fr;
        gap: 0.4rem;
    }

    .subpage-visual-message {
        border-radius: var(--radius-md);
    }

    .subpage-visual-message::after {
        background: linear-gradient(180deg, rgba(6, 60, 83, 0.82), rgba(6, 60, 83, 0.36));
    }

    .subpage-visual-message__copy {
        top: auto;
        right: 1.25rem;
        bottom: 1.5rem;
        left: 1.25rem;
        transform: none;
    }

    .organization-chart__list {
        grid-template-columns: 1fr;
    }

    .location-map-stage {
        min-height: 28rem;
        padding: 1.25rem;
    }

    .location-map-stage::before {
        inset: 0.75rem;
    }

    .location-map-point {
        top: 46%;
        left: 50%;
    }

    .location-contact-strip {
        margin: -1.2rem 0 0;
    }

    .location-contact-strip div + div {
        border-top: 1px solid var(--color-border);
        border-left: 0;
    }

    .location-route__steps li {
        grid-template-columns: 3.5rem minmax(0, 1fr);
        gap: 0.85rem;
    }

}

/* Process route redesign */
.process-list {
    position: relative;
    display: grid;
    max-width: 86rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 3.2rem 4.2rem;
    margin-inline: auto;
    padding: 3.2rem 3.4rem;
    overflow: hidden;
    background:
        radial-gradient(circle at 12% 18%, rgba(245, 130, 32, 0.13), transparent 18rem),
        radial-gradient(circle at 88% 72%, rgba(8, 123, 140, 0.12), transparent 19rem),
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(246, 251, 250, 0.9));
    border: 1px solid rgba(8, 123, 140, 0.12);
    border-radius: 2.2rem;
    box-shadow: 0 1.6rem 4rem rgba(7, 84, 110, 0.08);
}

.process-list::before {
    position: absolute;
    inset: 7.1rem 7.2rem 7.1rem 7.2rem;
    z-index: 0;
    display: block;
    background:
        linear-gradient(90deg, rgba(8, 123, 140, 0.32), rgba(8, 123, 140, 0.32)) top left / 100% 3px no-repeat,
        linear-gradient(90deg, rgba(245, 130, 32, 0.38), rgba(245, 130, 32, 0.38)) bottom left / 100% 3px no-repeat,
        linear-gradient(180deg, rgba(8, 123, 140, 0.32), rgba(245, 130, 32, 0.38)) right top / 3px 100% no-repeat;
    content: "";
    pointer-events: none;
}

.process-list::after {
    position: absolute;
    top: 1.1rem;
    right: 1.6rem;
    z-index: 0;
    color: rgba(7, 84, 110, 0.07);
    content: "ROUTE";
    font-size: clamp(4rem, 9vw, 8.5rem);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 0.8;
    pointer-events: none;
}

.process-list li,
.process-list li:nth-child(even),
.process-list li:nth-child(3),
.process-list li:nth-child(6) {
    position: relative;
    z-index: 1;
    display: flex;
    min-height: 13.2rem;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    text-align: center;
    transition:
        color var(--transition-base),
        transform var(--transition-base);
}

.process-list li::before {
    position: absolute;
    top: 3.45rem;
    right: -2.8rem;
    z-index: 2;
    display: block;
    width: 1.35rem;
    height: 1.35rem;
    background: transparent;
    border: 0;
    border-top: 3px solid var(--color-accent-orange);
    border-right: 3px solid var(--color-accent-orange);
    border-radius: 0;
    box-shadow: none;
    content: "";
    transform: rotate(45deg);
}

.process-list li::after {
    position: absolute;
    top: 0.15rem;
    right: auto;
    bottom: auto;
    left: 50%;
    z-index: -1;
    color: rgba(245, 130, 32, 0.08);
    font-size: clamp(4.6rem, 7vw, 6.6rem);
    font-weight: 900;
    line-height: 1;
    content: attr(data-step);
    pointer-events: none;
    transform: translateX(-50%);
}

.process-list li:hover {
    border-color: transparent;
    box-shadow: none;
    transform: translateY(-0.35rem);
}

.process-list li:nth-child(4) {
    grid-column: 3;
    grid-row: 2;
}

.process-list li:nth-child(5) {
    grid-column: 2;
    grid-row: 2;
}

.process-list li:nth-child(6) {
    grid-column: 1;
    grid-row: 2;
}

.process-list li:nth-child(3)::before {
    top: auto;
    right: 50%;
    bottom: -2.35rem;
    display: block;
    content: "";
    transform: translateX(50%) rotate(135deg);
}

.process-list li:nth-child(4)::before,
.process-list li:nth-child(5)::before {
    right: auto;
    left: -2.8rem;
    content: "";
    transform: rotate(-135deg);
}

.process-list li:nth-child(6)::before {
    display: none;
}

.process-list__number {
    display: flex;
    position: relative;
    z-index: 1;
    width: 6.2rem;
    height: 6.2rem;
    align-items: center;
    justify-content: center;
    color: var(--color-white);
    background:
        radial-gradient(circle at 68% 30%, rgba(255, 255, 255, 0.26), transparent 32%),
        linear-gradient(145deg, var(--color-primary-800), var(--color-primary-600));
    border: 0.45rem solid var(--color-white);
    border-radius: 2rem 2rem 2rem 0.8rem;
    box-shadow: 0 1rem 2rem rgba(8, 84, 110, 0.2);
    font-size: 1.08rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0;
    transform: rotate(-5deg);
}

.process-list__number::after {
    position: absolute;
    right: 0.62rem;
    bottom: 0.62rem;
    width: 0.7rem;
    height: 0.7rem;
    background: var(--color-accent-orange);
    border: 2px solid var(--color-white);
    border-radius: 50%;
    content: "";
}

.process-list__icon {
    display: none;
}

.process-list strong,
.process-list p {
    position: relative;
    z-index: 1;
    grid-column: auto;
}

.process-list strong {
    display: block;
    margin-top: 1.05rem;
    color: var(--color-title);
    font-size: clamp(1.25rem, 1.7vw, 1.55rem);
    line-height: 1.25;
}

.process-list p {
    max-width: 17.5rem;
    margin-top: 0.55rem;
    color: var(--color-text-muted);
    font-size: 0.95rem;
    line-height: 1.7;
}

@media (max-width: 767px) {
    .process-list {
        grid-template-columns: 1fr;
        gap: 1.55rem;
        padding: 1.25rem;
        overflow: visible;
        border-radius: 1.4rem;
    }

    .process-list::before,
    .process-list::after {
        display: none;
    }

    .process-list li,
    .process-list li:nth-child(even),
    .process-list li:nth-child(3),
    .process-list li:nth-child(4),
    .process-list li:nth-child(5),
    .process-list li:nth-child(6) {
        display: grid;
        min-height: 0;
        grid-column: auto;
        grid-row: auto;
        grid-area: auto;
        grid-template-columns: 4.4rem minmax(0, 1fr);
        gap: 0.2rem 1rem;
        align-items: center;
        padding: 1rem;
        background: var(--color-white);
        border: 1px solid rgba(8, 123, 140, 0.12);
        border-radius: 1.1rem;
        box-shadow: 0 0.9rem 2rem rgba(7, 84, 110, 0.07);
        text-align: left;
    }

    .process-list li::before,
    .process-list li:nth-child(3)::before,
    .process-list li:nth-child(4)::before,
    .process-list li:nth-child(5)::before {
        top: auto;
        right: auto;
        bottom: -1.25rem;
        left: 2.6rem;
        display: block;
        width: 1rem;
        height: 1rem;
        border-top: 3px solid var(--color-accent-orange);
        border-right: 3px solid var(--color-accent-orange);
        content: "";
        transform: rotate(135deg);
    }

    .process-list li:nth-child(6)::before {
        display: none;
    }

    .process-list li::after {
        top: 0.35rem;
        right: 0.8rem;
        bottom: auto;
        left: auto;
        font-size: 3.4rem;
        transform: none;
    }

    .process-list__number {
        grid-column: 1;
        grid-row: 1 / span 2;
        width: 4.35rem;
        height: 4.35rem;
        border-width: 0.3rem;
        border-radius: 1.35rem 1.35rem 1.35rem 0.55rem;
        font-size: 0.95rem;
    }

    .process-list strong,
    .process-list p {
        grid-column: 2;
    }

    .process-list strong {
        margin-top: 0;
        font-size: 1.18rem;
    }

    .process-list p {
        max-width: none;
        margin-top: 0.25rem;
        font-size: 0.9rem;
    }
}

/* Process ribbon redesign */
.process-list {
    max-width: 88rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.6rem 1.35rem;
    padding: 0;
    overflow: visible;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.process-list::before,
.process-list::after {
    display: none;
}

.process-list li,
.process-list li:nth-child(even),
.process-list li:nth-child(3),
.process-list li:nth-child(6) {
    display: grid;
    min-height: 11.8rem;
    grid-template-columns: 6.2rem minmax(0, 1fr);
    grid-template-rows: auto auto 1fr;
    align-items: start;
    padding: 1.25rem 1.35rem 1.2rem 1.05rem;
    overflow: hidden;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(247, 251, 250, 0.94));
    border: 1px solid rgba(8, 123, 140, 0.13);
    border-radius: 0.75rem 1.8rem 1.8rem 1.8rem;
    box-shadow: 0 1.1rem 2.7rem rgba(7, 84, 110, 0.08);
    text-align: left;
}

.process-list li:nth-child(4) {
    grid-column: 3;
    grid-row: 2;
}

.process-list li:nth-child(5) {
    grid-column: 2;
    grid-row: 2;
}

.process-list li:nth-child(6) {
    grid-column: 1;
    grid-row: 2;
}

.process-list li::before {
    top: 50%;
    right: -0.62rem;
    z-index: 4;
    display: grid;
    width: 2.55rem;
    height: 2.55rem;
    place-items: center;
    color: var(--color-white);
    background: var(--color-accent-orange);
    border: 0.28rem solid var(--color-section-muted);
    border-radius: 50%;
    box-shadow: 0 0.65rem 1.4rem rgba(245, 130, 32, 0.22);
    content: "→";
    font-size: 1.05rem;
    font-weight: var(--font-weight-bold);
    line-height: 1;
    transform: translateY(-50%);
}

.process-list li:nth-child(3)::before {
    top: auto;
    right: 1.4rem;
    bottom: -0.62rem;
    content: "↓";
    transform: none;
}

.process-list li:nth-child(4)::before,
.process-list li:nth-child(5)::before {
    right: auto;
    left: -0.62rem;
    content: "←";
    transform: translateY(-50%);
}

.process-list li:nth-child(6)::before {
    display: none;
}

.process-list li::after {
    top: auto;
    right: 1.15rem;
    bottom: 0.6rem;
    left: auto;
    z-index: 0;
    color: rgba(245, 130, 32, 0.11);
    font-size: clamp(4.8rem, 6.8vw, 6.2rem);
    transform: none;
}

.process-list__number {
    grid-column: 1;
    grid-row: 1 / span 3;
    width: 4.9rem;
    height: 100%;
    min-height: 8.4rem;
    align-self: stretch;
    color: var(--color-white);
    background:
        linear-gradient(180deg, var(--color-primary-800), var(--color-primary-600));
    border: 0;
    border-radius: 0.35rem 1.35rem 1.35rem 1.35rem;
    box-shadow: none;
    font-size: 1.08rem;
    transform: none;
}

.process-list__number::after {
    right: 50%;
    bottom: 1rem;
    width: 0.6rem;
    height: 0.6rem;
    transform: translateX(50%);
}

.process-list strong,
.process-list p {
    grid-column: 2;
}

.process-list strong {
    margin-top: 0.35rem;
    font-size: clamp(1.28rem, 1.6vw, 1.55rem);
}

.process-list p {
    max-width: 18.5rem;
    margin-top: 0.65rem;
}

@media (max-width: 767px) {
    .process-list {
        grid-template-columns: 1fr;
        gap: 1rem;
        padding: 0;
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .process-list li,
    .process-list li:nth-child(even),
    .process-list li:nth-child(3),
    .process-list li:nth-child(4),
    .process-list li:nth-child(5),
    .process-list li:nth-child(6) {
        min-height: 0;
        grid-column: auto;
        grid-row: auto;
        grid-area: auto;
        grid-template-columns: 4.7rem minmax(0, 1fr);
        padding: 0.9rem 1rem 0.95rem 0.85rem;
        border-radius: 0.7rem 1.25rem 1.25rem 1.25rem;
    }

    .process-list li::before,
    .process-list li:nth-child(3)::before,
    .process-list li:nth-child(4)::before,
    .process-list li:nth-child(5)::before {
        top: auto;
        right: auto;
        bottom: -0.72rem;
        left: 2.4rem;
        width: 1.75rem;
        height: 1.75rem;
        border-width: 0.2rem;
        content: "↓";
        font-size: 0.82rem;
        transform: none;
    }

    .process-list li:nth-child(6)::before {
        display: none;
    }

    .process-list li::after {
        right: 0.95rem;
        bottom: 0.3rem;
        font-size: 3.45rem;
    }

    .process-list__number {
        grid-column: 1;
        grid-row: 1 / span 2;
        width: 3.65rem;
        min-height: 4.8rem;
        height: 100%;
        border-radius: 0.3rem 1rem 1rem 1rem;
        font-size: 0.9rem;
    }

    .process-list strong,
    .process-list p {
        grid-column: 2;
    }

    .process-list strong {
        margin-top: 0.1rem;
        font-size: 1.1rem;
    }

    .process-list p {
        max-width: none;
        margin-top: 0.25rem;
        font-size: 0.88rem;
    }
}

/* Final process step tracker */
.process-section .process-list {
    --process-current: "정보 수집";
    --process-index: "01 / 06";
    --process-progress: 16.66%;
    display: grid;
    max-width: 86rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
    margin-inline: auto;
    padding: 0 0 3.85rem;
    overflow: visible;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.process-section .process-list:has(li:nth-child(2):hover) {
    --process-current: "교육·체험";
    --process-index: "02 / 06";
    --process-progress: 33.33%;
}

.process-section .process-list:has(li:nth-child(3):hover) {
    --process-current: "업종 선택";
    --process-index: "03 / 06";
    --process-progress: 50%;
}

.process-section .process-list:has(li:nth-child(4):hover) {
    --process-current: "지역 선정";
    --process-index: "04 / 06";
    --process-progress: 66.66%;
}

.process-section .process-list:has(li:nth-child(5):hover) {
    --process-current: "자금·주거";
    --process-index: "05 / 06";
    --process-progress: 83.33%;
}

.process-section .process-list:has(li:nth-child(6):hover) {
    --process-current: "정착 실행";
    --process-index: "06 / 06";
    --process-progress: 100%;
}

.process-section .process-list::before {
    position: absolute;
    top: auto;
    right: 0;
    bottom: 1.35rem;
    left: 0;
    z-index: 2;
    display: block;
    height: 0.28rem;
    background:
        linear-gradient(90deg, var(--color-accent-orange), var(--color-primary-600)) 0 0 / var(--process-progress) 100% no-repeat,
        rgba(8, 123, 140, 0.1);
    border-radius: 999px;
    content: "";
    transition: background-size var(--transition-base);
}

.process-section .process-list::after {
    display: none;
}

.process-section .process-list li,
.process-section .process-list li:nth-child(even),
.process-section .process-list li:nth-child(3),
.process-section .process-list li:nth-child(4),
.process-section .process-list li:nth-child(5),
.process-section .process-list li:nth-child(6) {
    position: relative;
    z-index: 1;
    display: grid;
    min-height: 17.4rem;
    grid-column: auto;
    grid-row: auto;
    grid-area: auto;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto 1fr auto auto;
    gap: 0;
    padding: 1.65rem 1.9rem 1.55rem;
    overflow: hidden;
    background:
        radial-gradient(circle at 100% 100%, rgba(8, 123, 140, 0.1) 0 5.2rem, transparent 5.3rem),
        linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(247, 251, 250, 0.94));
    border: 1px solid rgba(8, 123, 140, 0.11);
    border-radius: 1.45rem;
    box-shadow: 0 1.2rem 3rem rgba(7, 84, 110, 0.07);
    text-align: left;
    transition:
        border-color var(--transition-base),
        box-shadow var(--transition-base),
        transform var(--transition-base);
}

.process-section .process-list li:hover {
    border-color: rgba(8, 123, 140, 0.28);
    box-shadow: 0 1.55rem 3.8rem rgba(7, 84, 110, 0.12);
    transform: translateY(-0.35rem);
}

.process-section .process-list li::before,
.process-section .process-list li:nth-child(3)::before,
.process-section .process-list li:nth-child(4)::before,
.process-section .process-list li:nth-child(5)::before,
.process-section .process-list li:nth-child(6)::before {
    position: absolute;
    right: -3.4rem;
    bottom: -3.9rem;
    left: auto;
    z-index: 0;
    display: block;
    width: 11rem;
    height: 11rem;
    background: linear-gradient(135deg, rgba(245, 130, 32, 0.11), rgba(8, 123, 140, 0.08));
    border: 0;
    border-radius: 50%;
    box-shadow: none;
    content: "";
    transform: none;
}

.process-section .process-list li::after {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    z-index: 1;
    grid-column: 1;
    grid-row: 1;
    align-self: start;
    color: rgba(6, 60, 83, 0.26);
    content: "STEP " attr(data-step);
    font-size: 0.86rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.08em;
    line-height: 1;
    transform: none;
    transition: color var(--transition-base);
}

.process-section .process-list li:hover::after {
    color: var(--color-accent-orange);
}

.process-section .process-list li .process-list__number {
    position: relative;
    z-index: 1;
    grid-column: 2;
    grid-row: 1;
    display: flex;
    width: 3.25rem;
    height: 3.25rem;
    min-height: 0;
    align-items: center;
    justify-content: center;
    align-self: start;
    color: var(--color-primary-800);
    background: var(--color-white);
    border: 1px solid rgba(8, 123, 140, 0.18);
    border-radius: 0.9rem;
    box-shadow: none;
    font-size: 0.92rem;
    font-weight: var(--font-weight-bold);
    transform: none;
    transition:
        color var(--transition-base),
        background-color var(--transition-base),
        border-color var(--transition-base),
        transform var(--transition-base);
}

.process-section .process-list li .process-list__number::after {
    display: none;
}

.process-section .process-list li:hover .process-list__number {
    color: var(--color-white);
    background: var(--color-primary-800);
    border-color: var(--color-primary-800);
    transform: rotate(-4deg);
}

.process-section .process-list__icon {
    display: none;
}

.process-section .process-list strong,
.process-section .process-list p {
    position: relative;
    z-index: 1;
    grid-column: 1 / -1;
}

.process-section .process-list strong {
    grid-row: 3;
    margin-top: 0;
    color: var(--color-title);
    font-size: clamp(1.35rem, 1.65vw, 1.65rem);
    line-height: 1.28;
    transition: color var(--transition-base);
}

.process-section .process-list li:hover strong {
    color: var(--color-primary-800);
}

.process-section .process-list p {
    grid-row: 4;
    max-width: 23rem;
    margin-top: 0.85rem;
    color: var(--color-text-muted);
    font-size: 0.98rem;
    line-height: 1.75;
}

.process-section .process-list li > a {
    position: relative;
    z-index: 1;
    grid-column: 1 / -1;
    grid-row: 5;
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 0.35rem;
    margin-top: 1.25rem;
    color: var(--color-primary-800);
    font-size: 0.9rem;
    font-weight: var(--font-weight-bold);
    text-decoration: none;
}

.process-section .process-list li > a::after {
    position: absolute;
    right: 0;
    bottom: -0.28rem;
    left: 0;
    height: 2px;
    background: var(--color-accent-orange);
    content: "";
    transform: scaleX(0.35);
    transform-origin: left center;
    transition: transform var(--transition-base);
}

.process-section .process-list li:hover > a::after,
.process-section .process-list li > a:focus-visible::after {
    transform: scaleX(1);
}

@media (max-width: 767px) {
    .process-section .process-list {
        grid-template-columns: 1fr;
        gap: 0.9rem;
        padding-bottom: 3.25rem;
    }

    .process-section .process-list li,
    .process-section .process-list li:nth-child(even),
    .process-section .process-list li:nth-child(3),
    .process-section .process-list li:nth-child(4),
    .process-section .process-list li:nth-child(5),
    .process-section .process-list li:nth-child(6) {
        min-height: 11.8rem;
        padding: 1.35rem;
        border-radius: 1.1rem;
    }

    .process-section .process-list li .process-list__number {
        width: 2.8rem;
        height: 2.8rem;
        border-radius: 0.75rem;
        font-size: 0.84rem;
    }

    .process-section .process-list strong {
        font-size: 1.24rem;
    }

    .process-section .process-list p {
        margin-top: 0.5rem;
        font-size: 0.9rem;
    }

    .process-section .process-list li > a {
        margin-top: 0.75rem;
        font-size: 0.84rem;
    }
}

.process-section .process-list li {
    background:
        radial-gradient(circle at 100% 100%, rgba(8, 123, 140, 0.14) 0 5.2rem, transparent 5.3rem),
        linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(247, 251, 250, 0.94));
}

.process-section .process-list li::before,
.process-section .process-list li:nth-child(3)::before,
.process-section .process-list li:nth-child(4)::before,
.process-section .process-list li:nth-child(5)::before,
.process-section .process-list li:nth-child(6)::before {
    display: none;
}
