:root {
    --bg: #fff8ec;
    --text: #40332f;
    --muted: #746961;
    --primary: #aa4b8f;
    --accent: #ff735d;
    --accent-soft: #ffd0c4;
    --card: #fff;
    --line: #d9cfc5;
    --focus: #1a73e8;
    --shadow: 0 8px 24px rgba(128, 82, 47, .16);
    /* 無障礙 CS2140401C：字級需用相對單位。100% 等於瀏覽器預設（一般為 16px）。 */
    font-size: 100%
}

/* MVC 問卷條件題其他說明欄，與 Design Baseline 問卷元件共用。 */
.survey-conditional__title { margin: 1rem 0 .55rem; color: var(--member-accent-dark); font-size: 1rem; }

/* Design Baseline：列表主要操作按鈕（例如「填寫」）。 */
.btn-table {
    min-height: 2.4rem;
    padding: .35rem .85rem;
    border: 1px solid #8a756a;
    border-radius: 999px;
    background: #fff;
    color: #5f4e46;
    font-weight: 700;
    white-space: nowrap;
}

.btn.btn-table {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 0;
    min-height: 2rem;
    margin: 0;
    padding: .2rem .7rem;
    border-radius: 999px;
    font-size: .95rem;
    line-height: 1.4;
    vertical-align: middle;
    box-shadow: none;
}

.btn-table--primary {
    border-color: var(--member-accent, #667600);
    background: var(--member-accent, #667600);
    color: #fff;
}

.btn-table:hover,
.btn-table:focus-visible {
    background: var(--member-accent-dark, #4d5134);
    color: #fff;
    text-decoration: none;
}

/* 關鍵就業力課程問卷：桌機保留完整九欄，手機改用卡片呈現。 */
.key-employability-table {
    min-width: 92rem;
}

.key-employability-table td:nth-child(1),
.key-employability-table td:nth-child(2),
.key-employability-table td:nth-child(6),
.key-employability-table td:nth-child(7),
.key-employability-table td:nth-child(8),
.key-employability-table td:nth-child(9) {
    text-align: center;
}

@media (max-width: 767.98px) {
    .key-employability-survey-list-page .course-table-wrap {
        overflow: visible;
        background: transparent;
        box-shadow: none;
    }

    .key-employability-table,
    .key-employability-table tbody,
    .key-employability-table tr,
    .key-employability-table td {
        display: block;
        width: 100%;
        min-width: 0;
    }

    .key-employability-table thead {
        display: none;
    }

    .key-employability-table tbody tr {
        margin-bottom: 1rem;
        overflow: hidden;
        border: 1px solid #ead8c8;
        border-radius: 12px;
        background: #fff;
        box-shadow: 0 3px 10px rgba(128, 82, 47, .06);
    }

    .key-employability-table tbody td {
        display: grid;
        grid-template-columns: 8.5rem minmax(0, 1fr);
        gap: .75rem;
        padding: .6rem .85rem;
        border-bottom: 1px solid #f2e6d5;
        background: #fff !important;
        white-space: normal;
        overflow-wrap: anywhere;
        text-align: left !important;
    }

    .key-employability-table tbody td::before {
        content: attr(data-label);
        color: var(--member-accent-dark);
        font-weight: 700;
    }

    .key-employability-table tbody td:nth-child(1)::before { content: "序號"; }
    .key-employability-table tbody td:nth-child(2)::before { content: "計畫年度"; }
    .key-employability-table tbody td:nth-child(3)::before { content: "學校名稱"; }
    .key-employability-table tbody td:nth-child(4)::before { content: "學程名稱"; }
    .key-employability-table tbody td:nth-child(5)::before { content: "課程名稱（單元）"; }
    .key-employability-table tbody td:nth-child(6)::before { content: "講師姓名"; }
    .key-employability-table tbody td:nth-child(7)::before { content: "課程起訖日"; }
    .key-employability-table tbody td:nth-child(8)::before { content: "填寫日期"; }
    .key-employability-table tbody td:nth-child(9)::before { content: "功能"; }

    .key-employability-table tbody td:last-child {
        align-items: center;
        border-bottom: 0;
    }

    .key-employability-table tbody td[colspan] {
        display: block;
        text-align: center !important;
    }

    .key-employability-table tbody td[colspan]::before {
        content: none;
    }
}
.survey-text-input { display: block; width: 100%; min-height: 2.75rem; padding: .65rem .8rem; border: 1px solid #aa9b91; border-radius: 8px; background: #fff; color: var(--text); font: inherit; }
.survey-form.is-readonly .survey-option { cursor: default; }

/* YR013WR 指導老師雙週誌元件（與 MVC design-review.css 同步） */
.yr013wr-page{--review-text:#40332f;--review-muted:#746961;--review-member:#83933d;--review-member-dark:#526d00;min-height:100vh;padding:clamp(1rem,4vw,2.5rem);background:linear-gradient(145deg,#f7f3ed,#eef2dc);color:var(--review-text)}
.yr013wr-shell{width:min(76rem,100%);margin:0 auto}.yr013wr-login-shell{max-width:58rem}.yr013wr-page-header{margin-bottom:1rem;text-align:center}.yr013wr-page-header h1{margin:0 0 .4rem;color:var(--review-member-dark);font-size:clamp(1.7rem,5vw,2.25rem)}.yr013wr-page-header p{margin:0;color:var(--review-muted)}
.yr013wr-card{margin-bottom:1rem;padding:clamp(1rem,3vw,1.5rem);border:1px solid #dce1c4;border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(50,45,20,.11)}.yr013wr-section-title{margin:0 0 1rem;color:var(--review-member-dark);font-size:1.25rem}.yr013wr-section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.yr013wr-section-heading .yr013wr-section-title{margin:0}
.yr013wr-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;overflow:hidden;border:1px solid #e3dcd7;border-radius:12px}.yr013wr-summary-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}.yr013wr-summary-grid>div{min-width:0;padding:.8rem 1rem;border-left:1px solid #e3dcd7;border-top:1px solid #e3dcd7}.yr013wr-summary-grid>div:nth-child(-n+2),.yr013wr-summary-grid--three>div:nth-child(-n+3){border-top:0}.yr013wr-summary-grid>div:nth-child(odd),.yr013wr-summary-grid--three>div:nth-child(3n+1){border-left:0}.yr013wr-summary-grid dt{margin-bottom:.2rem;color:var(--review-muted);font-size:.9rem;font-weight:700}.yr013wr-summary-grid dd{margin:0;font-weight:700;overflow-wrap:anywhere}
.yr013wr-token-field{max-width:28rem;margin:1.25rem auto 0}.yr013wr-token-field label{display:block;margin-bottom:.4rem;color:#5e3927;font-weight:700}.yr013wr-token-field input,.yr013wr-table textarea{width:100%;min-width:0;padding:.7rem .8rem;border:1px solid #aa9b91;border-radius:9px;background:#fff;color:var(--review-text);font:inherit}.yr013wr-table textarea{min-height:7rem;resize:vertical}
.yr013wr-actions,.yr013wr-inline-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem}.yr013wr-actions{margin-top:1.25rem}.yr013wr-btn{min-width:8rem;min-height:2.75rem;padding:.55rem 1.25rem;border-radius:999px;font-weight:700}.yr013wr-btn--primary{border:1px solid var(--review-member);background:var(--review-member);color:#fff}.yr013wr-btn--secondary{border:1px solid #b9a89c;background:#fff;color:#5f4e46}.yr013wr-btn--danger{border:1px solid #bd4c43;background:#bd4c43;color:#fff}
.yr013wr-note{margin:0 0 1rem;color:var(--review-muted)}.yr013wr-warning{margin:0 0 1rem;padding:.75rem 1rem;border-left:4px solid #bd4c43;background:#fff0ee;color:#7b2d27}.yr013wr-signatures{display:flex;flex-wrap:wrap;gap:.75rem}.yr013wr-signatures figure{width:8rem;margin:0;padding:.5rem;border:1px solid #d7cec8;border-radius:10px;background:#fafbf3;text-align:center}.yr013wr-signatures img{display:block;width:100%;aspect-ratio:1;object-fit:contain;background:#fff}.yr013wr-signatures figcaption{margin-top:.3rem;color:var(--review-muted);font-size:.82rem}.yr013wr-empty{margin:0;color:var(--review-muted)}
.yr013wr-table-wrap{max-width:100%;overflow-x:auto;border-radius:12px;box-shadow:0 3px 14px rgba(0,0,0,.12)}.yr013wr-table{width:100%;min-width:70rem;border-collapse:collapse}.yr013wr-table th{padding:.7rem .75rem;background:var(--review-member-dark);color:#fff;text-align:center;white-space:nowrap}.yr013wr-table td{padding:.75rem;vertical-align:top;border-bottom:1px solid #e3dcd7}.yr013wr-table tbody tr:nth-child(even) td{background:#f7f7f4}.yr013wr-table th:first-child{width:8rem}.yr013wr-table th:nth-child(2){width:11rem}.yr013wr-row-status,.yr013wr-guide-name{display:block;margin-top:.4rem;color:var(--review-muted);font-size:.86rem}.yr013wr-readonly-content{line-height:1.6;overflow-wrap:anywhere}
@media(max-width:767.98px){.yr013wr-summary-grid--three{grid-template-columns:repeat(2,minmax(0,1fr))}.yr013wr-section-heading{align-items:stretch;flex-direction:column}.yr013wr-table-wrap{overflow:visible;box-shadow:none}.yr013wr-table,.yr013wr-table tbody,.yr013wr-table tr,.yr013wr-table td{display:block;width:100%;min-width:0}.yr013wr-table thead{display:none}.yr013wr-table tr{margin-bottom:1rem;overflow:hidden;border:1px solid #dce1c4;border-radius:12px;background:#fff}.yr013wr-table td{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:.75rem;border-bottom:1px solid #e3dcd7;background:#fff!important}.yr013wr-table td::before{content:attr(data-label);color:var(--review-member-dark);font-weight:700}.yr013wr-table td:last-child{border-bottom:0}.yr013wr-actions--three .yr013wr-btn{flex:1 1 100%}}
@media(max-width:575.98px){.yr013wr-page{padding:1rem 10px}.yr013wr-summary-grid,.yr013wr-summary-grid--three{grid-template-columns:1fr}.yr013wr-summary-grid>div,.yr013wr-summary-grid--three>div{border-top:1px solid #e3dcd7!important;border-left:0!important}.yr013wr-summary-grid>div:first-child{border-top:0!important}.yr013wr-table td{grid-template-columns:1fr}.yr013wr-inline-actions .yr013wr-btn,.yr013wr-actions .yr013wr-btn{width:100%}}


.journal-field-hint {
    margin: .4rem 0 0;
    color: var(--muted);
    font-size: .92rem;
}

.jconfirm .jconfirm-box.signature-qr-dialog {
    max-width: 34rem;
    max-height: calc(100vh - 3rem);
    padding: 0 0 1rem !important;
    overflow: hidden;
}
.jconfirm .jconfirm-box.signature-qr-dialog > .title {
    margin: 0;
    padding: .8rem 1.25rem;
    border: 0;
    border-radius: 14px 14px 0 0;
    background: linear-gradient(90deg, #8f294d, #a94566);
    color: #fff;
}
.jconfirm .signature-qr-dialog .blockAlertMessage { line-height: 1.7; text-align: center; }
.jconfirm .signature-qr-dialog .blockAlertMessage img {
    display: block;
    width: min(16rem, 100%);
    height: auto;
    margin: 1rem auto 0;
}

/* YR013 雙週誌列表：保留 demo1 狀態文字，補上辨識色與評語並存版面。 */
.journal-table .status-badge--review {
    border-color: #c88719;
    background: #fff4d6;
    color: #76500a;
}
.journal-table .status-badge--returned {
    border-color: #bd4c43;
    background: #fff0ee;
    color: #8c2f28;
}
.journal-table .journal-review-cell {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .4rem;
    min-width: 10rem;
}
.journal-table .journal-review-text {
    color: #40332f;
    line-height: 1.55;
    overflow-wrap: anywhere;
}
.journal-table .btn-table--refill {
    border-color: #bd4c43;
    background: #bd4c43;
    color: #fff;
}
.journal-table .btn-table--refill:hover,
.journal-table .btn-table--refill:focus-visible {
    background: #8c2f28;
    color: #fff;
}

/* 字級切換：改用百分比以符合無障礙 CS2140401C；
   112.5% = 18px、87.5% = 14px（以瀏覽器預設 16px 計），與原數值完全相同。 */
html[data-font=large] {
    font-size: 112.5%
}

html[data-font=small] {
    font-size: 87.5%
}

* {
    box-sizing: border-box
}

html {
    background: linear-gradient(90deg, #734d00 0%, #b12b4c 100%)
}

body {
    margin: 0;
    color: var(--text);
    font-family: "Noto Sans TC", "Microsoft JhengHei", Arial, sans-serif;
    line-height: 1.65;
    background-color: var(--bg);
    background-image: 
        url("../img/round-orange.svg"),
        url("../img/round-white.svg"),
        url("../img/round-line.svg"),
        url("../img/round-line.svg"),
        radial-gradient(circle at 75% 0, #ffd0ad 0 1rem, transparent 30.1rem),
        linear-gradient(130deg, #fff8ec 0%, #fff8ec 55%, #ffe3c7 100%);
    background-position: 
        right 5% top -7rem,
        right 30% top 4rem,
        right -4rem top -5rem,
        left -5rem top 34rem,
        center top,
        center top;
    background-size: 
        600px 600px,
        317px 317px,
        579px 579px,
        579px 579px,
        auto,
        auto;
    background-repeat: no-repeat
}

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

a:hover {
    text-decoration: underline
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible {
    outline: 3px solid var(--focus);
    outline-offset: 3px
}

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

.skip-link {
    position: absolute;
    left: 1rem;
    top: -5rem;
    z-index: 99;
    background: #000;
    color: #fff;
    padding: .75rem 1rem
}

.skip-link:focus {
    top: 1rem
}

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

.site-header {
    padding-top: .5rem
}

.topbar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 1rem;
    font-size: .9rem
}

.quick-links {
    display: flex;
    gap: .5rem;
    margin: 0;
    padding: 0;
    list-style: none
}

.quick-links li+li:before {
    content: "|";
    margin-right: .5rem;
    color: var(--muted)
}

.member-utility-name {
    color: #4d5134;
    font-weight: 700
}

.member-utility-group {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    white-space: nowrap
}

.session-info__timer {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    color: #8a6a4a
}

.session-info__timer strong {
    color: #aa4b8f;
    font-weight: 700;
    font-variant-numeric: tabular-nums
}

.session-info__timer strong.is-warning {
    color: #c0392b
}

.font-size {
    display: flex;
    align-items: center;
    gap: .25rem
}

.font-size button {
    border: 0;
    border-radius: .35rem;
    background: #fff;
    color: #7a4d3b;
    font-weight: 700;
    min-width: 1.7rem;
    height: 1.7rem
}

.font-size button[aria-pressed=true] {
    background: #7a4d3b;
    color: #fff
}

.site-search {
    position: relative;
    display: flex;
    border: 1px solid var(--line);
    border-radius: .7rem;
    background: #fff;
    overflow: hidden
}

.site-search__icon {
    position: absolute;
    left: .7rem;
    top: 50%;
    display: grid;
    place-items: center;
    color: var(--muted);
    pointer-events: none;
    transform: translateY(-50%)
}

.site-search__icon svg {
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round
}

.site-search input {
    border: 0;
    padding: .45rem .7rem .45rem 2.25rem;
    min-width: 11rem
}

.site-search button {
    min-height: 30px;
    margin: .2rem .2rem .2rem 0;
    border: 0;
    border-radius: .55rem;
    background: #b9472c;
    color: #fff;
    padding: .25rem 1rem;
    font-weight: 700;
    cursor: pointer;
    transition: background-color .2s ease, box-shadow .2s ease
}

.site-search button:hover {
    background: #a93f27;
    box-shadow: 0 3px 8px rgba(169, 90, 143, .24)
}

.site-search button:active {
    background: #94351f
}

.brand-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1rem 0 .6rem
}

.brand-row .site-search {
    margin-left: auto
}

.brand {
    display: flex;
    align-items: center;
    gap: .75rem
}

.brand-row a.brand {
    text-decoration: none;
}

.brand-mark {
    display: grid;
    place-items: center;
    width: 2.7rem;
    height: 2.7rem;
    border-radius: .45rem;
    background: #d71920;
    color: #fff;
    font-weight: 900
}

.brand-ministry {
    font-weight: 700;
    color: #d33b2f;
    line-height: 1.1
}

.brand-ministry small {
    color: #4b4b4b
}

.brand strong {
    font-size: 1.95rem;
    letter-spacing: .05em
}

.menu-toggle {
    display: none;
    border: 0;
    border-radius: 999px;
    background: #b9472c;
    color: #fff;
    padding: .55rem 1rem;
    font-weight: 700
}

.menu-toggle__icon {
    display: grid;
    gap: 4px;
    width: 1.35rem
}

.menu-toggle__icon span {
    display: block;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    transition: transform .2s ease, opacity .2s ease
}

.menu-toggle[aria-expanded=true] .menu-toggle__icon span:first-child {
    transform: translateY(6px) rotate(45deg)
}

.menu-toggle[aria-expanded=true] .menu-toggle__icon span:nth-child(2) {
    opacity: 0
}

.menu-toggle[aria-expanded=true] .menu-toggle__icon span:last-child {
    transform: translateY(-6px) rotate(-45deg)
}

.mobile-only,
.primary-nav .mobile-only {
    display: none
}

.primary-nav {
    background: rgba(255, 255, 255, .82);
    border-radius: 999px;
    box-shadow: 0 2px 12px rgba(160, 120, 80, .08)
}

.primary-nav ul {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin: 0;
    padding: .35rem 1rem;
    list-style: none
}

.primary-nav a {
    display: block;
    padding: .3rem 1.1rem;
    border-radius: 999px;
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}

.primary-nav a:hover {
    background: #fff;
    text-decoration: none;
    box-shadow: 0 0px 8px rgba(169, 90, 143, .24)
}

.primary-nav a:focus-visible {
    outline: 3px solid var(--focus);
    outline-offset: 2px;
    background: #fff;
    text-decoration: none;
    box-shadow: 0 0 0 5px rgba(255, 255, 255, .85)
}

.primary-nav a[aria-current="page"] {
    background: #89304f;
    color: #fff;
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 3px 9px rgba(96, 34, 62, .28)
}

.primary-nav a[aria-current="page"]:hover,
.primary-nav a[aria-current="page"]:focus-visible {
    background: #732640;
    color: #fff
}

.main-content {
    padding-bottom:.8rem;
    padding-top: .8rem;
}

/* 內頁共用中央內容：桌面滿版白底，行動版改為留白圓角卡片。 */
.inner-content-shell {
    width: 100%;
    padding: 1rem 0 3rem;
    background: #fff
}

.inner-content-shell__inner {
    width: min(1200px, calc(100% - 48px));
    margin-inline: auto
}

.breadcrumb {
    margin-bottom: 1.5rem;
    color: var(--muted);
    font-size: 1rem
}

.breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin: 0;
    padding: 0;
    list-style: none
}

.breadcrumb li + li::before {
    content: "/";
    margin-right: .4rem;
    color: var(--color-hint, #999)
}

.breadcrumb a {
    color: #7a4d3b;
    text-decoration: underline;
    text-underline-offset: .2em
}

.page-header {
    margin-bottom: 1rem
}

.plan-page-header .page-header {
    border-bottom: 0
}

.page-title {
    margin: 0;
    color: #d65b3a;
    font-size: 1.8rem;
    line-height: 1.3
}

.plan-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.5rem
}

.plan-card {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 8rem;
    padding: 1.5rem .5rem;
    border: 1px solid var(--line);
    border-radius: 20px;
    background: #fff;
    color: var(--text);
    text-align: center;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(128, 82, 47, .08);
    transition: color .2s ease, border-color .2s ease, box-shadow .2s ease
}

.plan-card::before {
    content: "";
    position: absolute;
    z-index: 0;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(90deg, #8f294d, #b9472c);
    transform: scaleX(0);
    transform-origin: right center;
    transition: transform .28s ease
}

.plan-card:hover,
.plan-card:focus-visible {
    border-color: #8f294d;
    color: #fff;
    text-decoration: none;
    box-shadow: 0 8px 18px rgba(115, 45, 61, .2)
}

.plan-card:hover::before,
.plan-card:focus-visible::before {
    transform: scaleX(1);
    transform-origin: left center
}

.plan-card:focus-visible {
    outline: 3px solid var(--focus);
    outline-offset: 3px
}

.plan-card:active {
    color: #fff;
    box-shadow: inset 0 3px 6px rgba(65, 25, 30, .24)
}

.plan-card:active::before {
    background: linear-gradient(90deg, #76223f, #9b3825)
}

.plan-card__title {
    position: relative;
    z-index: 1;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.5
}

@media (prefers-reduced-motion: reduce) {
    .plan-card::before {
        transition: none
    }
}

.link-categories {
    display: grid;
    gap: 2rem
}

.link-category__title {
    display: inline-flex;
    align-items: center;
    min-height: 2.5rem;
    margin: 0 0 1rem;
    padding: .35rem 1.4rem;
    border-radius: 999px;
    background: linear-gradient(90deg, #8f294d, #d65b3a);
    color: #fff;
    font-size: 1.2rem;
    line-height: 1.3
}

.link-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.25rem
}

.link-card {
    display: flex;
    min-width: 0;
    min-height: 10rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .85rem;
    padding: 1.25rem 1rem;
    border: 1px solid #d9cfc5;
    border-radius: 18px;
    background: #fff;
    color: #40332f;
    text-align: center;
    box-shadow: 0 4px 12px rgba(128, 82, 47, .08);
    transition: border-color .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease
}

.link-card:hover,
.link-card:focus-visible {
    border-color: #d65b3a;
    color: #9b3f24;
    text-decoration: none;
    box-shadow: 0 10px 22px rgba(115, 77, 0, .18), inset 0 7px 10px -9px rgba(115, 77, 0, .55);
    transform: translateY(-3px)
}

.link-card:focus-visible {
    outline: 3px solid var(--focus);
    outline-offset: 3px
}

.link-card__logo {
    display: flex;
    width: min(100%, 14rem);
    height: 5rem;
    align-items: center;
    justify-content: center
}

.link-card__logo--wide {
    width: min(100%, 12rem)
}

.link-card__logo img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 5rem;
    object-fit: contain
}

.link-card__name {
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.45
}

.sitemap-note {
    margin: 0 0 2rem;
    padding: 1.25rem 1.5rem;
    border: 1px solid #f0d0bb;
    border-left: 6px solid #d65b3a;
    border-radius: 18px;
    background: linear-gradient(90deg, rgba(255, 243, 232, .92), rgba(255, 255, 255, .95));
    color: #4b403c;
    box-shadow: 0 6px 18px rgba(128, 82, 47, .08)
}

.sitemap-note h2 {
    margin: 0 0 .45rem;
    color: #8f294d;
    font-size: 1.15rem;
    line-height: 1.4
}

.sitemap-note p {
    margin: 0;
    line-height: 1.8
}

.sitemap-note p + p,
.sitemap-note p + ul,
.sitemap-note p + ol,
.sitemap-note ul + p,
.sitemap-note ol + p {
    margin-top: .85rem
}

.sitemap-note ul,
.sitemap-note ol {
    margin: .5rem 0 0;
    padding-left: 1.5rem;
    line-height: 1.8
}

.sitemap-note li + li {
    margin-top: .25rem
}

.sitemap-note kbd {
    display: inline-block;
    min-width: 1.45em;
    padding: .05em .35em;
    border: 1px solid #d6c7bc;
    border-radius: .35rem;
    background: #fff;
    color: #7a332f;
    font-family: inherit;
    font-size: .92em;
    font-weight: 700;
    text-align: center;
    box-shadow: inset 0 -1px 0 rgba(80, 66, 47, .16)
}

.policy-note__section + .policy-note__section {
    margin-top: 1.35rem;
    padding-top: 1.15rem;
    border-top: 1px solid rgba(214, 91, 58, .18)
}

.policy-note__section h3 {
    margin: 0 0 .55rem;
    color: #9b3f24;
    font-size: 1.08rem;
    line-height: 1.5
}

.policy-note__list {
    padding-left: 1.6rem
}

.policy-note__list li {
    padding-left: .15rem
}

.sitemap-sections {
    display: grid;
    gap: 2.25rem
}

.sitemap-section {
    min-width: 0
}

.sitemap-section__title {
    display: inline-flex;
    align-items: center;
    min-height: 2.5rem;
    margin: 0 0 1rem;
    padding: .35rem 1.4rem;
    border-radius: 999px;
    background: linear-gradient(90deg, #8f294d, #c44b54, #ff9b57);
    color: #fff;
    font-size: 1.2rem;
    line-height: 1.3;
    text-shadow: 0 1px 2px rgba(80, 35, 30, .28)
}

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

.sitemap-card {
    display: flex;
    min-height: 5.5rem;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    border: 1px solid #d9cfc5;
    border-radius: 18px;
    background: #fff;
    color: #40332f;
    text-align: center;
    box-shadow: 0 4px 12px rgba(128, 82, 47, .08);
    transition: border-color .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease
}

.sitemap-card:hover,
.sitemap-card:focus-visible {
    border-color: #d65b3a;
    color: #b9472c;
    text-decoration: none;
    box-shadow: 0 10px 22px rgba(115, 77, 0, .16), inset 0 18px 18px -18px rgba(80, 66, 47, .6);
    transform: translateY(-2px)
}

.sitemap-card:focus-visible {
    outline: 3px solid var(--focus);
    outline-offset: 3px
}

.sitemap-card__title {
    font-weight: 700;
    line-height: 1.45
}

.sitemap-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem 1rem;
    margin: 0;
    padding: 0;
    list-style: none
}

.sitemap-list a {
    position: relative;
    display: flex;
    min-height: 3rem;
    align-items: center;
    padding: .75rem 1rem .75rem 2.1rem;
    border: 1px solid #e4d8ce;
    border-radius: 14px;
    background: #fff;
    color: #40332f;
    line-height: 1.5;
    transition: border-color .2s ease, background-color .2s ease, color .2s ease, box-shadow .2s ease
}

.sitemap-list a::before {
    content: "";
    position: absolute;
    left: 1rem;
    width: .45rem;
    height: .45rem;
    border-radius: 50%;
    background: #ff8a3d
}

.sitemap-list a:hover,
.sitemap-list a:focus-visible {
    border-color: #d65b3a;
    background: #fff7f0;
    color: #9b3f24;
    text-decoration: none;
    box-shadow: 0 6px 14px rgba(115, 77, 0, .12)
}

.sitemap-list a[aria-current="page"] {
    border-color: #89304f;
    color: #89304f;
    font-weight: 700
}

.sitemap-list a:focus-visible {
    outline: 3px solid var(--focus);
    outline-offset: 3px
}

.news-search-header {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-bottom: .4rem
}

.news-search-header .page-header {
    flex: 0 0 auto;
    margin: 0
}

.news-tabs {
    display: flex;
    flex: 1;
    min-width: 0;
    flex-wrap: wrap;
    gap: .65rem;
    margin: 0
}

.news-tab {
    min-width: 8rem;
    min-height: 2.75rem;
    padding: .5rem 1.2rem;
    border: 1px solid #cdb9ab;
    border-radius: 999px;
    background: #fff;
    color: #a65c49;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(128, 82, 47, .12);
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease
}

.news-tab:hover,
.news-tab:focus-visible {
    background: #a93f27;
    color: #fff;
    box-shadow: 0 4px 12px rgba(232, 121, 92, .25);
    transform: translateY(-1px)
}

.news-tab:focus-visible {
    outline: 3px solid var(--focus);
    outline-offset: 2px
}

.news-tab.is-active,
.news-tab[aria-pressed="true"],
.news-tab[aria-selected="true"] {
    border-color: #b9472c;
    background: #b9472c;
    color: #fff;
    box-shadow: 0 3px 9px rgba(185, 71, 44, .24)
}

.news-search-panel {
    margin-bottom: 1.5rem;
    padding: 1.5rem;
    border: 1px solid #ead8c8;
    border-radius: 0 0 18px 18px;
    background: linear-gradient(135deg, #fffaf3, #fff3e4);
    box-shadow: 0 5px 14px rgba(115, 77, 0, .1)
}

.search-panel.news-search-panel {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.1fr) minmax(0, 1.6fr) auto;
    align-items: flex-end;
    gap: 1rem
}

.news-search-grid {
    display: contents
}

.news-search-grid .organizer-search-field:nth-child(2) {
    grid-column: auto
}

.news-search-actions {
    flex: 0 0 auto;
    margin: 0
}

.news-search-actions .btn {
    min-width: 8rem;
    min-height: 2.75rem
}

.news-search-field__label {
    display: block;
    margin-bottom: .35rem;
    color: #5e3927;
    font-weight: 700
}

.news-date-range {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: .5rem
}

.news-date-range input {
    width: 100%;
    min-width: 0
}

.news-results__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 1rem 0 .5rem;
    padding: .75rem 1rem;
    border-left: 4px solid #b9472c;
    background: #fff3e8;
    color: #633f30
}

.news-results__summary--responsive {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center
}

.news-results__summary--responsive .news-results__summary-body,
.news-results__summary--responsive .news-results__summary-items {
    display: flex;
    align-items: center;
    min-width: 0
}

.news-results__summary--responsive .news-results__summary-body {
    gap: .9rem
}

.news-results__summary--responsive .news-results__summary-label {
    flex: 0 0 auto;
    margin: 0;
    font-weight: 700
}

.news-results__summary--responsive .news-results__summary-items {
    flex-wrap: wrap;
    gap: .3rem .65rem;
    line-height: 1.7
}

.news-results__summary--responsive .news-results__summary-item + .news-results__summary-item::before {
    content: "｜";
    margin-right: .65rem;
    color: #b99884
}

.news-results__clear {
    flex: 0 0 auto;
    padding: .25rem .65rem;
    border: 1px solid currentColor;
    border-radius: 999px;
    background: transparent;
    color: #8f2f35;
    font: inherit;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease
}

.news-results__clear:hover,
.news-results__clear:focus-visible {
    background: #8f2f35;
    color: #fff
}

@media (max-width: 640px) {
    .news-results__summary--responsive {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center
    }

    .news-results__summary--responsive .news-results__summary-body {
        display: contents
    }

    .news-results__summary--responsive .news-results__summary-label {
        grid-column: 1;
        grid-row: 1
    }

    .news-results__summary--responsive .news-results__summary-items {
        grid-column: 1 / -1;
        grid-row: 2;
        display: grid;
        gap: .3rem;
        margin-top: .45rem
    }

    .news-results__summary--responsive .news-results__summary-item + .news-results__summary-item::before {
        content: none
    }

    .news-results__summary--responsive .news-results__clear {
        grid-column: 2;
        grid-row: 1;
        margin: 0;
        justify-self: end
    }
}

@media (max-width: 768px) {
    .news-results-table,
    .news-results-table tbody,
    .news-results-table tr,
    .news-results-table td {
        display: block;
        width: 100% !important;
        min-width: 0 !important
    }

    .news-results-table thead {
        display: none
    }

    .news-results .course-table-wrap,
    .news-results .course-table,
    .news-results .course-table tbody {
        background: transparent
    }

    .news-results .course-table-wrap {
        box-shadow: none
    }

    .news-results-table > tbody > tr > td {
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 1rem;
        padding: .55rem .85rem;
        border: 0;
        border-bottom: 1px solid #f2e6d5;
        white-space: normal;
        word-break: break-word;
        text-align: left !important
    }

    .news-results-table > tbody > tr {
        margin: 0 0 .9rem;
        overflow: hidden;
        border: 1px solid #f0c98a;
        border-radius: .7rem;
        background: #fff;
        box-shadow: 0 3px 10px rgba(128, 82, 47, .06)
    }

    .news-results-table > tbody > tr > td:last-child {
        border-bottom: 0
    }

    .news-results-table > tbody > tr > td::before {
        content: attr(data-label);
        flex: 0 0 38%;
        color: #8f3c78;
        font-size: .85rem;
        font-weight: 700
    }

    .news-results-table > tbody > tr > td[colspan] {
        justify-content: center;
        text-align: center !important
    }

    .news-results-table > tbody > tr > td[colspan]::before {
        content: none
    }
}

.news-results-table {
    min-width: 58rem
}

.news-results .result-pagination .pageLink .pageStatus,
.news-results .result-pagination__status {
    border-color: #7a2b3a;
    background: #7a2b3a !important;
    color: #fff !important;
    font-weight: 700;
    opacity: 1
}

.news-results .result-pagination .pageLink .pageStatus,
.news-results .result-pagination .pageLink .pageStatus * {
    color: #fff !important
}

.news-results-table th:nth-child(2),
.news-results-table td:nth-child(2) {
    text-align: left
}

.video-tabs {
    grid-template-columns: repeat(3, minmax(0, 1fr))
}

.video-player-placeholder {
    display: grid;
    place-items: center;
    min-height: clamp(18rem, 50vw, 34rem);
    padding: 2rem;
    border-radius: .75rem;
    background: linear-gradient(135deg, #392a2e, #6f3543);
    color: #fff;
    text-align: center
}

.video-player-placeholder__button {
    display: block;
    width: 5rem;
    margin-bottom: .75rem;
    color: #f4a261
}

.video-player-placeholder__button svg {
    display: block;
    width: 100%;
    fill: currentColor
}

.video-player-placeholder__button circle {
    fill: rgba(255, 255, 255, .12);
    stroke: currentColor;
    stroke-width: 2
}

.video-player-placeholder p {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 700
}

.video-player-placeholder small {
    margin-top: .35rem;
    color: rgba(255, 255, 255, .82)
}

.video-embed {
    width: 100%;
    min-height: 0;
    padding: 0;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    border-radius: .75rem;
    background: #392a2e
}

.video-embed iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0
}

.video-related-links a {
    display: flex;
    flex-direction: column;
    width: 100%;
    color: inherit;
    text-decoration: none
}

.video-related-links a:hover strong,
.video-related-links a:focus-visible strong {
    color: #a32f3e;
    text-decoration: underline
}

.download-file-link {
    display: flex;
    align-items: center;
    gap: .9rem;
    width: 100%;
    color: inherit;
    text-decoration: none
}

.download-file-link:hover strong,
.download-file-link:focus-visible strong {
    color: #a32f3e;
    text-decoration: underline
}

.news-results-table th:nth-child(4),
.news-results-table td:nth-child(4) {
    text-align: center;
    white-space: nowrap
}

.news-results-table td:nth-child(2) a {
    color: #8b2c49;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: .2em
}

.faq-search-header {
    display: block
}

.faq-tabs {
    margin-bottom: 1rem
}

.faq-tabs .news-tab {
    min-width: 10rem
}

.faq-search-panel.search-panel {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr) auto
}

.faq-search-grid {
    display: contents
}

.faq-accordion {
    display: grid;
    gap: .85rem;
    margin-top: 1rem;
    padding: 0;
    list-style: none
}

.faq-item {
    border: 1px solid #ead8c8;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 4px 12px rgba(128, 82, 47, .08);
    overflow: hidden;
    transition: border-color .2s ease, box-shadow .2s ease
}

.faq-item:hover,
.faq-item:focus-within {
    border-color: #d65b3a;
    box-shadow: 0 9px 20px rgba(115, 77, 0, .13)
}

.faq-item[hidden] {
    display: none
}

.faq-item__heading {
    margin: 0
}

.faq-item__button {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .85rem;
    width: 100%;
    min-height: 4rem;
    padding: 1rem 1.25rem;
    border: 0;
    background: linear-gradient(90deg, #fff, #fff8f0);
    color: #40332f;
    font: inherit;
    font-weight: 700;
    text-align: left;
    cursor: pointer
}

.faq-item__button:hover,
.faq-item__button:focus-visible {
    background: #fff3e8;
    color: #8f294d
}

.faq-item__button:focus-visible {
    outline: 3px solid var(--focus);
    outline-offset: -3px
}

.faq-item__prefix,
.faq-item__answer-prefix {
    display: inline-grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 50%;
    background: #b9472c;
    color: #fff;
    font-weight: 800;
    line-height: 1
}

.faq-item__question {
    min-width: 0;
    line-height: 1.55
}

.faq-item__icon {
    position: relative;
    width: 1.3rem;
    height: 1.3rem;
    border-radius: 50%;
    background: #f8d5bf
}

.faq-item__icon::before,
.faq-item__icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: .7rem;
    height: 2px;
    border-radius: 999px;
    background: #8f294d;
    transform: translate(-50%, -50%)
}

.faq-item__icon::after {
    transform: translate(-50%, -50%) rotate(90deg);
    transition: transform .2s ease, opacity .2s ease
}

.faq-item__button[aria-expanded="true"] .faq-item__icon::after {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(0deg)
}

.faq-item__panel {
    border-top: 1px solid #f0dfd4;
    background: #fff
}

.faq-item__answer {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .85rem;
    padding: 1rem 1.25rem 1.25rem
}

.faq-item__answer-prefix {
    background: #8f294d;
    font-size: 1rem
}

.faq-item__answer p {
    margin: .1rem 0 0;
    color: #4d403c;
    line-height: 1.85
}

.faq-item__answer-content {
    min-width: 0
}

.faq-item__answer-text {
    color: #4d403c;
    font-size: 1rem;
    line-height: 1.85;
    overflow-wrap: anywhere;
    white-space: pre-line
}

.faq-item__date {
    margin: .7rem 0 0 !important;
    color: #8a7a70 !important;
    font-size: .88rem;
    line-height: 1.5 !important;
    text-align: right
}

.faq-empty {
    margin: 0;
    padding: 1rem 1.25rem;
    border: 1px dashed #d6b8a3;
    border-radius: 14px;
    background: #fffaf4;
    color: #7a4d3b
}

.faq-empty[hidden] {
    display: none
}

.faq-pagination {
    margin-top: 1.25rem
}

.news-article {
    width: min(100%, 56.25rem);
    margin-inline: auto
}

.news-article__header {
    padding: .5rem 0 1.25rem
}

.news-article__title {
    margin: 0;
    color: #89304f;
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    line-height: 1.4
}

.news-article__updated {
    margin: .6rem 0 0;
    color: var(--muted);
    font-size: .95rem;
    text-align: right
}

.news-article__meta {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    margin: 1rem 0 0;
    border: 1px solid #e0d9d4;
    border-radius: 12px;
    background: #f7f7f7;
    overflow: hidden
}

.news-article__meta div {
    min-width: 0;
    padding: .7rem 1rem;
    border-left: 1px solid #e0d9d4
}

.news-article__meta div:first-child {
    border-left: 0
}

.news-article__meta dt {
    margin-bottom: .2rem;
    color: #7d2c18;
    font-size: .9rem;
    font-weight: 700
}

.news-article__meta dd {
    margin: 0;
    overflow-wrap: anywhere
}

.news-article__section {
    margin-top: 2rem
}

.news-article__section-title {
    margin: 0 0 1rem;
    padding-left: .75rem;
    border-left: 4px solid #d65b3a;
    color: #7d2c18;
    font-size: 1.3rem;
    line-height: 1.4
}

.news-article__body {
    min-height: 10rem;
    padding: .25rem 0;
    font-size: 1.05rem;
    line-height: 1.9
}

.news-article__body p {
    margin: 0 0 1rem
}

.news-files {
    margin-top: 1rem
}

.news-files__body {
    padding: 1rem;
    border: 1px solid #efd9c9;
    border-radius: 10px;
    background: #fff8f1
}

.news-files__empty {
    margin: 0;
    color: #6f625b
}

.news-file-list {
    display: grid;
    gap: .75rem;
    margin: 0;
    padding: 0;
    list-style: none
}

.news-file-item {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: .9rem;
    padding: .7rem .85rem;
    border: 1px solid #ead8c8;
    border-radius: 8px;
    background: #fff
}

.news-file-icon {
    position: relative;
    display: grid;
    width: 2.5rem;
    height: 3rem;
    flex: 0 0 auto;
    place-items: center;
    color: #89304f
}

.news-file-icon svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    fill: #fff;
    stroke: currentColor;
    stroke-linejoin: round;
    stroke-width: 1.5
}

.news-file-icon span {
    position: relative;
    margin-top: .65rem;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .02em
}

.news-file-icon--pdf {
    color: #b4232f
}

.news-file-icon--word {
    color: #285ea8
}

.news-file-icon--odt {
    color: #237f73
}

.news-file-info {
    display: grid;
    min-width: 0;
    gap: .1rem
}

.news-file-info strong {
    overflow-wrap: anywhere;
    color: #4d3a32
}

.news-file-info small {
    color: var(--muted)
}

.news-back-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-width: 11rem;
    min-height: 2.75rem;
    padding: .5rem 1.25rem;
    border: 1px solid #89304f;
    border-radius: 999px;
    background: #fff;
    color: #89304f;
    font-weight: 700;
    text-decoration: none;
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease
}

.news-back-link__icon {
    width: 1.2rem;
    height: 1.2rem;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round
}

.news-back-link:hover,
.news-back-link:focus-visible {
    background: #89304f;
    color: #fff;
    text-decoration: none;
    box-shadow: 0 4px 10px rgba(96, 34, 62, .24)
}

.news-back-link:focus-visible {
    outline: 3px solid var(--focus);
    outline-offset: 3px
}

.plan-detail-header {
    display: grid;
    grid-template-columns: minmax(19rem, .85fr) minmax(0, 2fr);
    align-items: stretch;
    margin-bottom: .5rem;
    padding: .5rem 0 1.5rem
}

.plan-detail-heading {
    display: grid;
    align-content: center;
    gap: .2rem;
    min-width: 0;
    padding: .5rem 0
}

.plan-detail-heading .page-header {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: .5rem 0
}

.program-mode-switch {
    display: flex;
    justify-self: center;
    width: 90%;
    min-width: 0;
    padding: .15rem;
    border: 1px solid #e7b29c;
    border-radius: 999px;
    background: #fff0e8
}

.program-mode-switch a {
    display: inline-flex;
    flex: 1 1 0;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    min-width: 0;
    min-height: 2.5rem;
    padding: .5rem 1.2rem;
    border-radius: 999px;
    color: #9b3f24;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease
}

.program-mode-switch a:hover,
.program-mode-switch a:focus-visible {
    background: #fff;
    color: #8f294d;
    text-decoration: none;
    box-shadow: 0 3px 9px rgba(143, 41, 77, .16)
}

.program-mode-switch a[aria-current="page"] {
    background: linear-gradient(90deg, #8f294d 0%, #c44b54 52%, #e9784f 100%);
    color: #fff;
    box-shadow: 0 4px 10px rgba(143, 41, 77, .28)
}

.program-mode-switch a[aria-current="page"]::before {
    content: "✓";
    font-size: 1rem;
    font-weight: 900;
    line-height: 1
}

.program-mode-switch a[aria-current="page"]:hover,
.program-mode-switch a[aria-current="page"]:focus-visible {
    background: #8f294d;
    color: #fff
}

.plan-detail-header .page-header {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 1rem
}

.plan-detail-header .page-title {
    color: #b12d2b;
    font-size: clamp(1.75rem, 2.6vw, 1.8rem);
    white-space: nowrap;
    text-align: center;
}

.plan-local-nav {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr)
}

.plan-local-nav__group {
    display: flex;
    align-items: center;
    padding: .25rem 1rem;
    border-left: 1px solid #aaa
}

.plan-local-nav--labeled {
    gap: .75rem
}

.plan-local-nav--labeled .plan-local-nav__group {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: .4rem;
    padding: .65rem .85rem;
    border: 1px solid #ead5c9;
    border-radius: 14px;
    background: #fffaf6
}

.plan-local-nav--labeled .plan-local-nav__group--registration {
    border-color: #dce1c4;
    background: #fafbf3
}

.plan-local-nav__title {
    display: flex;
    align-items: center;
    gap: .4rem;
    min-height: 1.75rem;
    margin: 0;
    padding: 0 .4rem .35rem;
    border-bottom: 1px solid #ead5c9;
    color: #9b3f24;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.35
}

.plan-local-nav__title--member {
    border-bottom-color: #dce1c4;
    color: #526d00
}

.plan-local-nav__lock {
    flex: 0 0 auto;
    font-size: .9rem;
    line-height: 1
}

.plan-local-nav__badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.4rem;
    margin-left: auto;
    padding: .1rem .55rem;
    border: 1px solid #83933d;
    border-radius: 999px;
    background: #fff;
    color: #526d00;
    font-size: .78rem;
    font-weight: 700;
    white-space: nowrap
}

@media (min-width: 1188px) {
    .employment-program-page .plan-detail-header {
        grid-template-columns: minmax(0, 1fr) minmax(0, 2fr)
    }
}

@media (min-width: 561px) {
    .employment-program-page .plan-local-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }
}

@media (min-width: 901px) and (max-width: 1187px) {
    .employment-program-page .plan-detail-header {
        grid-template-columns: 1fr;
        margin-bottom: 1rem;
        padding-bottom: 1rem
    }

    .employment-program-page .plan-detail-heading {
        width: min(100%, 38rem);
        margin-inline: auto;
        padding-bottom: 1rem
    }

    .employment-program-page .plan-detail-header .page-title {
        white-space: normal
    }

    .employment-program-page .plan-local-nav {
        padding-top: 1rem;
        border-top: 1px solid #ddd
    }
}

.plan-local-nav ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .2rem 1rem;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none
}

.plan-local-nav__group--plan ul {
    grid-template-rows: repeat(3, minmax(1.75rem, auto));
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr)
}

.plan-local-nav a {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 1.75rem;
    padding: .25rem .2rem .25rem 1.5rem;
    border-radius: 8px;
    color: #666;
    line-height: 1.4;
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease
}

.plan-local-nav a::before {
    content: "";
    position: absolute;
    left: .6rem;
    width: .5rem;
    height: .5rem;
    border-radius: 50%;
    background: #ff743b
}

.plan-local-nav__group--registration a::before {
    background: #8dbd00
}

.plan-local-nav__group--plan a:hover,
.plan-local-nav__group--plan a:focus-visible {
    background: #fff0e8;
    color: #b9472c;
    text-decoration: none;
    box-shadow: inset 0 5px 8px -7px rgba(115, 77, 0, .55)
}

.plan-local-nav__group--registration a:hover,
.plan-local-nav__group--registration a:focus-visible {
    background: #f3f8dd;
    color: #526d00;
    text-decoration: none;
    box-shadow: inset 0 5px 8px -7px rgba(82, 109, 0, .5)
}

.plan-local-nav a.is-current {
    color: #b9472c;
    font-weight: 700
}

.plan-local-nav a.is-emphasis {
    color: #9b1f42;
    font-weight: 700
}

.plan-local-nav a.is-emphasis:hover,
.plan-local-nav a.is-emphasis:focus-visible {
    background: #f9e7ec;
    color: #7d1532
}

.detail-sections {
    display: grid;
    gap: 1rem;
    min-width: 0;
    width: 100%;
    max-width: 100%
}

.detail-section {
    min-width: 0;
    width: 100%;
    max-width: 100%;
    scroll-margin-top: 1rem
}

.detail-section__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .1rem .5rem .1rem 1.5rem;
    background: linear-gradient(90deg, #8f294d 0%, #c44b54 42%, #ff9b57 100%)
}

.detail-section__title {
    margin: 0;
    color: #fff;
    font-size: 1.37rem;
    line-height: 1;
    text-shadow: 0 1px 2px rgba(70, 20, 25, .35)
}

.detail-section__title-actions {
    flex: 0 0 min(12rem, 20%);
    min-height: 2.5rem
}

.detail-section__title-actions:empty {
    visibility: hidden
}

.detail-section__title-button {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 2.2rem;
    margin: .1rem 0;
    padding: .4rem .5rem;
    border: 1px solid #9a552d;
    background: #fff;
    color: #9b3f24;
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    box-shadow: 0 1px 3px rgba(72, 37, 22, .25);
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease
}

.detail-section__title-button:hover {
    background: #fff1e8;
    color: #7d2c18;
    box-shadow: 0 3px 7px rgba(72, 37, 22, .32);
    transform: translateY(-2px);
    text-decoration: none
}

.detail-section__title-button:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 3px;
    background: #fff1e8;
    color: #7d2c18
}

.detail-section__body {
    min-width: 0;
    width: 100%;
    max-width: 100%;
    padding: .5rem 0 0 0;
    background: #fff
}

.detail-list {
    width: 100%;
    max-width: 100%;
    margin: 0;
    overflow: hidden;
    box-shadow: 0 0px 12px rgba(0, 0, 0, .2);
}

.detail-list__row {
    display: grid;
    grid-template-columns: 12rem minmax(0, 1fr);
    min-width: 0;
    width: 100%;
    max-width: 100%;
    border-bottom: 1px solid var(--card);
    transition: box-shadow .2s ease
}

.detail-list__row:first-child {
    /* border-top: 1px solid var(--line) */
}

.detail-list dt,
.detail-list dd {
    min-width: 0;
    margin: 0;
    padding: .5rem 1rem;
    overflow-wrap: anywhere;
    transition: background-color .2s ease, color .2s ease
}

.detail-list dt {
    background-image: linear-gradient(to right,#F4F4F4,#FFF3E4);
    font-weight: 500;
    text-align: right;
    color: #5E3927;
}

.detail-list__row:nth-child(odd) dd {
    background-color: #f4f4f4
}

.detail-list__row:nth-child(even) dd {
    background-color: #fff
}

.detail-list__row:hover,
.detail-list__row:focus-within {
    position: relative;
    z-index: 1;
    box-shadow: inset 4px 0 #d65b3a, 0 2px 7px rgba(115, 77, 0, .14)
}

.detail-list__row:hover dt,
.detail-list__row:focus-within dt {
    background: #f8dfcf;
    color: #7d2c18
}

.detail-list__row:hover dd,
.detail-list__row:focus-within dd {
    background: #fff3e8
}

.detail-content-list,
.detail-rich-text ul {
    margin: 0;
    padding-left: 1.5rem
}

.detail-rich-text p {
    margin: 0 0 .5rem
}

.detail-rich-text h3 {
    margin: 1rem 0 .4rem;
    color: #7d2c18;
    font-size: 1rem
}

.detail-rich-text li + li,
.detail-content-list li + li {
    margin-top: .3rem
}

.course-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    box-shadow: 0 3px 14px rgba(0, 0, 0, .14);
}

.course-table-wrap:focus-visible {
    outline: 3px solid var(--focus);
    outline-offset: 3px
}

.course-table {
    width: 100%;
    min-width: 52rem;
    border-collapse: collapse;
}

.course-table caption {
    margin-bottom: .75rem;
    color: var(--text);
    font-weight: 700;
    text-align: left
}

.course-table th,
.course-table td {
    padding: .3rem 1rem;
    border: none;
    text-align: left;
    vertical-align: middle
}

.course-table th {
    background: #89304F;
    color: #fff;
    text-align: center;
    white-space: nowrap
}

.course-table tbody tr:nth-child(odd) td {
    background: #fff
}

.course-table tbody tr:nth-child(even) td {
    background: #f4f4f4
}

.course-table tbody td {
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease
}

.course-table tbody tr:hover td {
    background: #fff3e8
}

.course-table tbody td:hover {
    position: relative;
    background: #f8dfcf;
    color: #7d2c18;
    box-shadow: inset 0 0 0 2px #d65b3a
}

.course-table th:nth-child(1),
.course-table th:nth-child(3),
.course-table th:nth-child(5),
.course-table th:nth-child(6),
.course-table td:nth-child(1),
.course-table td:nth-child(3),
.course-table td:nth-child(5),
.course-table td:nth-child(6) {
    text-align: center
}

.course-table td:nth-child(5) {
    white-space: nowrap
}

.course-table__empty {
    color: var(--muted);
    text-align: center !important
}

.organizer-search-panel {
    margin: 0 0 1.5rem;
    padding: 1.5rem;
    border: 1px solid #ead8c8;
    border-radius: 0 0 18px 18px;
    background: linear-gradient(135deg, #fffaf3, #fff3e4);
    box-shadow: 0 5px 14px rgba(115, 77, 0, .1)
}

.organizer-search-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem 1.25rem
}

.organizer-search-field:nth-child(2) {
    grid-column: span 2
}

.organizer-search-field {
    min-width: 0
}

.organizer-search-field label {
    display: block;
    margin-bottom: .35rem;
    color: #5e3927;
    font-weight: 700
}

.organizer-search-field input,
.organizer-search-field select {
    width: 100%;
    min-width: 0;
    min-height: 2.75rem;
    padding: .55rem .75rem;
    border: 1px solid #b9a89c;
    border-radius: 9px;
    background: #fff;
    color: var(--text);
    font: inherit
}

.organizer-search-field input:focus,
.organizer-search-field select:focus {
    border-color: #b9472c;
    outline: 3px solid rgba(26, 115, 232, .25);
    outline-offset: 1px
}

.organizer-search-actions {
    display: flex;
    justify-content: center;
    margin-top: 1.25rem
}

.organizer-search-actions .btn {
    min-width: 10rem
}

.organizer-results {
    min-width: 0
}

.organizer-results__empty-note {
    margin: 1rem 0 .5rem;
    padding: .75rem 1rem;
    border-left: 4px solid #b9472c;
    background: #fff3e8;
    color: #633f30
}

.result-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    margin: .9rem 0
}

.result-pagination a,
.result-pagination__control,
.result-pagination__status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.5rem;
    padding: .35rem .8rem;
    border: 1px solid #c9b6a8;
    border-radius: 8px;
    background: #fff;
    color: #633f30
}

.result-pagination__control.is-disabled {
    border-color: #ddd5cf;
    background: #f4f4f4;
    color: #8a817c;
    cursor: not-allowed;
    opacity: .75
}

.result-pagination a:hover,
.result-pagination a:focus-visible {
    background: #fff0e8;
    color: #9b3f24;
    text-decoration: none;
    box-shadow: inset 0 0 0 1px #d65b3a
}

.result-pagination__status {
    border-color: #89304f;
    background: #89304f;
    color: #fff;
    font-weight: 700
}

.organizer-results-table {
    min-width: 68rem
}

.organizer-results-table th,
.organizer-results-table td {
    text-align: center
}

.organizer-results-table th:nth-child(3),
.organizer-results-table td:nth-child(3) {
    text-align: left
}

.organizer-results-table td a {
    color: #8b2c49;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: .2em
}

.unit-content-panel {
    padding: 1.25rem 1.5rem;
    border: 1px solid #ead8c8;
    border-top: 0;
    background: #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .08)
}

.unit-description p {
    margin: 0 0 1rem
}

.unit-description h3 {
    margin: 1.25rem 0 .5rem;
    color: #7d2c18;
    font-size: 1.1rem
}

.unit-description ol {
    margin: 0;
    padding-left: 1.5rem
}

.unit-empty-state {
    margin: 0;
    padding: 1rem;
    border-left: 4px solid #b9472c;
    background: #fff3e8;
    color: #633f30
}

.unit-back-actions {
    display: flex;
    justify-content: center;
    margin-top: 2rem
}

.unit-back-actions .btn {
    min-width: 11rem;
    text-align: center
}

.detail-actions {
    display: flex;
    justify-content: center;
    margin-top: 2rem
}

.detail-actions .btn-primary {
    border-radius:0;
    background: #FFF;
    color: #B9472C;
    border: 1px solid #89304E;
}
.detail-actions .btn-primary:hover {
    background: #89304E;
    color: #FFF;
    box-shadow: 0 3px 8px rgba(169, 90, 143, .24)
}

.detail-actions .btn-primary:disabled {
    cursor: not-allowed;
    opacity: .7
}

.anchor-target {
    display: block;
    scroll-margin-top: 1rem
}

.hero {
    padding: 1.4rem 0
}

.hero-search__header {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-bottom: .4rem
}

.hero-search__header .section-title {
    flex: 0 0 auto
}

.hero-search__header .search-tabs {
    flex: 1;
    min-width: 0;
    margin: 0
}

.section-title h1,
.section-heading h2 {
    margin: 0;
    color: #d65b3a;
    font-size: 1.25rem
}

.section-title span,
.section-heading span {
    font-size: .95rem;
    letter-spacing: .05em;
    color: #a65340
}

.search-tabs {
    display: flex;
    gap: .65rem;
    margin: .75rem 0 .4rem;
    overflow: auto
}

.search-tabs__tabs {
    display: flex;
    flex: 3 0 29rem;
    gap: .65rem
}

.search-tabs button,
.search-tabs>a {
    flex: 1 0 9rem;
    border: 0;
    border-radius: 999px;
    font-size:1.125rem;
    background: #fff;
    color: #a65c49;
    padding: .55rem 1rem;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 2px 10px rgba(160, 120, 80, .08);
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}

.search-tabs .active {
    background: #b9472c;
    color: #fff
}

.search-tabs button:hover,
.search-tabs>a:hover {
    color: #fff;
    background: #a93f27;
    box-shadow: 0 4px 12px rgba(232, 121, 92, .25)
}

.search-panel {
    --form-label-width: 10rem;
    --form-control-width: 24rem;
    --form-column-gap: .65rem;
    --form-shift-x: -5rem;
    background: rgba(255, 255, 255, .9);
    border-radius: 1.8rem;
    box-shadow: var(--shadow);
    padding: 1.4rem 1.5rem 1.2rem;
    max-width: 100%;
    display: grid;
    gap: .6rem
}

.form-row {
    display: grid;
    grid-template-columns: var(--form-label-width) minmax(0, var(--form-control-width));
    width: min(calc(var(--form-label-width) + var(--form-control-width) + var(--form-column-gap)), 100%);
    margin-inline: auto;
    align-items: center;
    gap: var(--form-column-gap);
    transform: translateX(var(--form-shift-x))
}

.form-row label,
.form-row .form-row__label {
    text-align: right;
    font-weight: 700
}

.form-row input,
.form-row select {
    width: 100%;
    border: 1px solid #bbb;
    border-radius: .35rem;
    background: #fff;
    padding: .55rem .65rem;
    font: inherit
}

.inline-options__choices {
    display: flex;
    align-items: center;
    gap: 1.25rem
}

.inline-options label {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    text-align: left;
    font-weight: 400
}

.inline-options input {
    width: auto
}

.date-range,
.city-row {
    grid-template-columns: var(--form-label-width) minmax(0, var(--form-control-width))
}

.date-range__controls {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: .65rem
}

.date-field {
    position: relative
}

.date-field>input[type=text] {
    padding-right: 2.8rem
}

.date-field__button {
    position: absolute;
    top: 50%;
    right: .35rem;
    width: 2.15rem;
    height: 2.15rem;
    padding: .4rem;
    border: 0;
    border-radius: .25rem;
    color: var(--primary);
    background: rgba(170, 75, 143, .1);
    transform: translateY(-50%);
    cursor: pointer;
    transition: color .2s ease, background-color .2s ease, box-shadow .2s ease
}

.date-field__button:hover {
    color: #fff;
    background: var(--primary);
    box-shadow: 0 3px 8px rgba(170, 75, 143, .28)
}

.date-field__button:active {
    background: #873c72
}

.date-field__button:focus-visible {
    outline: 3px solid var(--focus);
    outline-offset: 2px
}

.date-field__button svg {
    display: block;
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round
}

.date-field__picker {
    position: absolute;
    right: .35rem;
    bottom: 0;
    width: 1px !important;
    height: 1px;
    padding: 0 !important;
    border: 0 !important;
    opacity: 0;
    pointer-events: none
}

.date-range__controls .hint {
    grid-column: 1/-1
}

.city-row__controls {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .65rem
}

.hint {
    color: var(--muted)
}

.form-actions {
    display: grid;
    grid-template-columns: var(--form-label-width) minmax(0, var(--form-control-width));
    width: min(calc(var(--form-label-width) + var(--form-control-width) + var(--form-column-gap)), 100%);
    margin-inline: auto;
    gap: var(--form-column-gap);
    transform: translateX(var(--form-shift-x))
}

.form-actions .btn-primary {
    grid-column: 2;
    width: 100%
}

.btn-primary {
    border: 0;
    border-radius: 999px;
    background: var(--primary);
    color: #fff;
    font: inherit;
    font-weight: 700;
    width: min(24rem, 100%);
    padding: .6rem 2rem;
    cursor: pointer;
    transition: background-color .2s ease, box-shadow .2s ease, transform .2s ease
}

.btn-primary:hover {
    background: #873c72;
    box-shadow: 0 5px 12px rgba(170, 75, 143, .3);
    transform: translateY(-2px)
}

.btn-primary:active {
    background: #733261;
    box-shadow: 0 2px 5px rgba(170, 75, 143, .24);
    transform: translateY(0)
}

.content-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 1.5rem
}

.section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .6rem
}

.section-heading a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #b9472c;
    color: #fff;
    border-radius: 999px;
    padding: .15rem 1.2rem;
    font-size: .85rem;
    text-decoration: none;
    transition: background-color .2s ease, box-shadow .2s ease
}

.section-heading a:hover,
.section-heading a:focus-visible {
    background: #a93f27;
    box-shadow: 0 3px 8px rgba(169, 90, 143, .24);
    text-decoration: none
}

.section-heading a:active {
    background: #94351f;
    box-shadow: none
}

.card-list,
.compact-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .75rem
}

.card-list li,
.compact-list {
    background: #fff;
    border: 1px solid #f0e4da;
    border-radius: .35rem;
    box-shadow: 0 4px 12px rgba(128, 82, 47, .1)
}

.card-list li {
    display: grid;
    grid-template-columns: 6.5rem 6rem 1fr;
    gap: 1rem;
    align-items: center;
    padding: 1.2rem 1rem
}

.card-list time {
    color: #a65340
}

.tag {
    border: 1px solid #9c9c9c;
    text-align: center;
    padding: .1rem .55rem;
    background: #fff;
    font-size: .85rem;
}

.compact-list {
    padding: .75rem 1rem
}

.compact-list li {
    display: flex;
    gap: .5rem;
    justify-content: space-between
}

.compact-list time {
    white-space: nowrap;
    color: #8c6557
}

.side-cards {
    display: grid;
    gap: 1rem
}

.programs {
    position: relative;
    z-index: 2;
    margin-top: 2rem;
    background: #fff;
    border-radius: 6rem 0 0 6rem;
    box-shadow: var(--shadow);
    padding: 1.2rem 1rem 4.5rem;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 1.2rem 1.6rem
}

.program-column {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 1.2rem
}

.programs::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: calc(100% - 1px);
    width: calc((100vw - 100%) / 2 + 1px);
    background: #fff;
    pointer-events: none
}

.program-card h3 {
    margin: 0 0 .45rem;
    padding: .15rem .75rem;
    border-radius: 999px;
    background: var(--accent-soft);
    font-size: 1rem;
    text-align: center
}

.program-card ul {
    margin: 0;
    padding: 0;
    list-style: none
}

.program-card li {
    margin: .35rem 0;
    color: #5f534d;
    text-align: center
}
.program-card li a {
    display: block;
    /* color: var(--accent);
    text-decoration: none;
    background: var(--accent-soft); */
    padding: .15rem .75rem;
    border-radius: 999px;
    color: #333;
    line-height: 1.45;
    text-wrap: balance;
    overflow-wrap: anywhere;
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}

.program-card li a:hover,
.program-card li a:focus-visible {
    text-decoration: none;
    background: #FEE8DC;
    color: #222;
    box-shadow: inset 0 5px 7px -5px rgba(51, 51, 51, .55);
}

.site-footer {
    position: relative;
    z-index: 1;
    background: linear-gradient(90deg, #734d00 0%, #b12b4c 100%);
    padding: 0 0 1px
}

.footer-inner {
    --footer-overlap: 140px;
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: 1.2fr 2fr .8fr;
    gap: 2rem;
    margin-top: calc(-140px - 2rem);
    margin-bottom: 3rem;
    padding-top: calc(var(--footer-overlap) + 2rem);
    padding-bottom: 2rem
}

.footer-inner::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    right: 0;
    bottom: 0;
    left: calc((100% - 100vw) / 2);
    border-radius: 0 0 6rem 0;
    background: linear-gradient(140deg, #e2f1a3, #fff3ce 45%, #ffc8b7);
    box-shadow: 0 18px 30px rgba(72, 38, 23, .28)
}

.footer-inner::after {
    content: "";
    position: absolute;
    z-index: 0;
    right: calc((100% - 100vw) / 2);
    bottom: -2rem;
    width: clamp(320px, 40vw, 579px);
    aspect-ratio: 1;
    background: url("../img/round-line.svg") center / contain no-repeat;
    opacity: .5;
    pointer-events: none;
}

.footer-inner > * {
    position: relative;
    z-index: 1
}

.footer-links {
    columns: 2;
    margin: 0;
    padding: 0;
    list-style: none
}

.footer-links li {
    break-inside: avoid;
    margin: 0 0 .7rem
}

.footer-links li:before {
    content: "●";
    color: #bf8b22;
    margin-right: .5rem
}

.footer-info {
    border-left: 1px solid #9d8e79;
    padding-left: 1rem;
    font-size: .92rem
}

.footer-info p {
    margin: .2rem 0
}

.badges {
    border-left: 1px solid #9d8e79;
    padding-left: 1.5rem;
    display: grid;
    align-content: start;
    gap: .75rem
}

.badges img {
    display: block;
    max-width: 100%;
    height: auto
}

@media (max-width:900px) {
    .container {
        width: calc(100% - 32px);
        max-width: 760px
    }

    .topbar {
        display: none
    }

    .inner-content-shell {
        width: calc(100% - 32px);
        max-width: 760px;
        margin: 1.25rem auto;
        padding: 1.5rem 1rem 2rem;
        border-radius: 2rem
    }

    .inner-content-shell__inner {
        width: 100%;
        min-width: 0
    }

    .news-search-header,
    .news-list-section,
    .news-results,
    .news-search-panel,
    .news-search-grid {
        min-width: 0;
        max-width: 100%
    }

    .plan-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .link-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .sitemap-card-grid,
    .sitemap-list {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .news-search-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .search-panel.news-search-panel {
        grid-template-columns: 1fr
    }

    .faq-search-panel.search-panel {
        grid-template-columns: 1fr
    }

    .faq-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: .35rem;
        -webkit-overflow-scrolling: touch
    }

    .faq-tabs .news-tab {
        flex: 0 0 auto
    }

    .news-search-actions {
        justify-content: center;
        margin-top: .25rem
    }

    .news-search-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1rem 1.25rem;
        align-items: end
    }

    .news-search-field--date {
        grid-column: 1 / -1
    }

    .news-article__meta {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .news-article__meta div:nth-child(odd) {
        border-left: 0
    }

    .news-article__meta div:nth-child(n + 3) {
        border-top: 1px solid #e0d9d4
    }

    .plan-detail-header {
        grid-template-columns: 1fr;
        margin-bottom: 1rem;
        padding: 0 0 1rem
    }

    .plan-detail-header .page-header {
        padding: .5rem .25rem 1rem
    }

    .plan-detail-header .page-title {
        white-space: normal
    }

    .plan-local-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .plan-local-nav__group {
        align-items: flex-start;
        padding: .75rem
    }

    .detail-list__row {
        grid-template-columns: 1fr
    }

    .detail-list dt {
        padding: .55rem 1rem;
        border-left: 4px solid #d65b3a;
        background-image: linear-gradient(to left, #f4f4f4 0%, #fff3e4 100%);
        text-align: left
    }

    .detail-list dd {
        min-width: 0;
        padding: .7rem 1rem;
        overflow-wrap: anywhere
    }

    .detail-list__row:nth-child(odd) dd,
    .detail-list__row:nth-child(even) dd {
        background: #fff
    }

    .detail-list__row:hover dd,
    .detail-list__row:focus-within dd {
        background: #fff3e8
    }

    .detail-section__header {
        min-height: 3.25rem
    }

    .course-table-wrap {
        width: 100%;
        min-width: 0;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch
    }

    .organizer-search-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .organizer-search-field:nth-child(2) {
        grid-column: span 1
    }

    .brand-row {
        position: relative;
        flex-wrap: nowrap;
        gap: .75rem;
        padding: .7rem 3.5rem .7rem 0
    }

    .brand-row>.site-search {
        display: none
    }

    .brand {
        min-width: 0;
        gap: .5rem
    }

    .brand-row > .brand {
        flex: 1 1 auto;
        overflow: hidden
    }

    .brand-ministry {
        display: inline-block;
        flex: 0 0 auto
    }

    .brand-ministry img {
        display: block;
        width: 6.5rem;
        max-width: 25vw;
        height: auto
    }

    .brand strong {
        font-size: clamp(1rem, 4.5vw, 1.4rem);
        line-height: 1.25;
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis
    }

    .menu-toggle {
        position: absolute;
        z-index: 3;
        top: 50%;
        right: 0;
        display: grid !important;
        flex: 0 0 auto;
        place-items: center;
        width: 2.75rem;
        height: 2.75rem;
        margin: 0;
        padding: 0;
        visibility: visible;
        opacity: 1;
        transform: translateY(-50%)
    }

    .primary-nav {
        display: none;
        border-radius: 1rem;
        padding-top: .5rem;
    }

    .primary-nav.is-open {
        display: block
    }

    .primary-nav .mobile-only {
        display: flex
    }

    .primary-nav .mobile-menu-search {
        width: calc(100% - 2rem);
        margin: 1rem;
        overflow: hidden
    }

    .mobile-menu-search input {
        min-width: 0;
        flex: 1
    }

    .primary-nav .primary-nav__links {
        display: grid;
        grid-template-columns: 1fr;
        gap: .2rem;
        padding: 0 1rem 1rem
    }

    .primary-nav .mobile-utility-nav {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: .35rem;
        margin: 0 1rem;
        padding: .85rem 0 1rem;
        border-top: 1px solid var(--line);
        list-style: none
    }

    .mobile-utility-nav a {
        padding: .4rem .25rem;
        color: var(--muted);
        font-size: .9rem;
        text-align: center
    }

    .mobile-utility-nav .member-utility-name {
        display: block;
        padding: .4rem .25rem;
        font-size: .9rem;
        text-align: center
    }

    .mobile-utility-nav .mobile-member-session {
        grid-column: 1 / -1;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 1rem;
        margin-bottom: .15rem;
        padding: .55rem .75rem;
        border: 1px solid #efd9c3;
        border-radius: .65rem;
        background: #fff7ed
    }

    .mobile-utility-nav .mobile-member-session .member-utility-name {
        padding: 0
    }

    .hero-search {
        display: grid;
        gap: .65rem
    }

    .hero-search__header,
    .hero-search__header .search-tabs {
        display: contents
    }

    .search-tabs__tabs {
        display: grid;
        grid-template-columns: 1fr;
        gap: .65rem;
        order: 1
    }

    .hero-search__header>.section-title {
        order: 0;
        margin-bottom: .25rem
    }

    .search-tabs button,
    .search-tabs>a {
        position: relative;
        order: 3;
        width: 100%;
        min-height: 3rem;
        padding-right: 3rem;
        text-align: left
    }

    .search-tabs button.active {
        order: 1
    }

    .search-tabs button[role=tab]::after {
        content: "+";
        position: absolute;
        top: 50%;
        right: 1.15rem;
        font-size: 1.45rem;
        font-weight: 400;
        line-height: 1;
        transform: translateY(-50%)
    }

    .search-tabs button[role=tab].active::after {
        content: "−"
    }

    .search-tabs>a {
        order: 4
    }

    .search-tabs>a::after {
        content: "↗";
        position: absolute;
        top: 50%;
        right: 1.15rem;
        transform: translateY(-50%)
    }

    .hero-search>.search-panel {
        order: 2;
        margin-bottom: .25rem
    }

    .form-row,
    .date-range,
    .city-row {
        grid-template-columns: 1fr;
        width: 100%;
        transform: none
    }

    .form-actions {
        grid-template-columns: 1fr;
        width: 100%;
        transform: none
    }

    .form-actions .btn-primary {
        grid-column: 1
    }

    .form-row label,
    .form-row .form-row__label {
        text-align: left
    }

    .date-range__controls {
        grid-template-columns: 1fr
    }

    .date-range__controls span[aria-hidden=true] {
        display: none
    }

    .city-row__controls {
        grid-template-columns: 1fr
    }

    .content-grid {
        grid-template-columns: 1fr
    }

    .card-list li {
        grid-template-columns: 1fr;
        gap: .35rem
    }

    .programs {
        grid-template-columns: 1fr;
        border-radius: 2rem;
        padding-bottom: 2rem
    }

    .program-column {
        display: contents
    }

    .programs::after {
        display: none
    }

    .program-card h3[role=button] {
        position: relative;
        margin-bottom: 0;
        padding: .55rem 3rem .55rem 1rem;
        cursor: pointer;
        transition: background-color .2s ease, box-shadow .2s ease
    }

    .program-card h3[role=button]::after {
        content: "+";
        position: absolute;
        top: 50%;
        right: 1.15rem;
        font-size: 1.4rem;
        font-weight: 400;
        line-height: 1;
        transform: translateY(-50%)
    }

    .program-card h3[role=button].is-open::after {
        content: "−"
    }

    .program-card h3[role=button]:focus-visible {
        outline: 3px solid var(--focus);
        outline-offset: 3px
    }

    .program-card h3[role=button]:not(.is-open)+ul {
        display: none
    }

    .program-card h3[role=button]+ul {
        padding-top: .45rem
    }

    .tag {
        display:none;
    }

    .footer-inner {
        grid-template-columns: 1fr;
        margin-top: 0;
        margin-bottom: 0;
        padding-top: 2rem;
        padding-bottom: calc(2.5rem + env(safe-area-inset-bottom))
    }

    .site-footer {
        padding: 1.5rem 0
    }

    .footer-inner::before {
        right: calc((100% - 100vw) / 2);
        border-radius: 0
    }

    .footer-info,
    .badges {
        min-width: 0;
        border-left: 0;
        border-top: 1px solid #9d8e79;
        padding-top: 1rem;
        padding-left: 0
    }

    .footer-info__desktop-only {
        display: none
    }

    .footer-links {
        columns: 2;
        column-gap: 1.5rem
    }

    .badges {
        display: flex;
        flex-wrap: wrap;
        align-items: center
    }

    .footer-inner::after {
        right: 0;
        bottom: 0;
        max-width: 100%
    }
}

@media (max-width:560px) {
    .brand {
        align-items: flex-start
    }

    .brand strong {
        font-size: 1.35rem
    }

    .site-search {
        width: 100%
    }

    .site-search input {
        min-width: 0;
        flex: 1
    }

    .search-panel {
        border-radius: 1.2rem;
        padding: 1rem
    }

    .breadcrumb {
        margin-bottom: 1rem;
        font-size: .95rem
    }

    .page-header {
        margin-bottom: 1.5rem
    }

    .page-title {
        font-size: 1.75rem
    }

    .plan-grid {
        grid-template-columns: 1fr;
        gap: 1rem
    }

    .link-categories {
        gap: 1.5rem
    }

    .link-grid {
        grid-template-columns: 1fr;
        gap: 1rem
    }

    .sitemap-note {
        padding: 1rem;
        border-radius: 14px
    }

    .sitemap-sections {
        gap: 1.75rem
    }

    .sitemap-card-grid,
    .sitemap-list {
        grid-template-columns: 1fr
    }

    .sitemap-card {
        min-height: 3.75rem;
        justify-content: flex-start;
        text-align: left
    }

    .link-card {
        min-height: 8.5rem
    }

    .news-tabs {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: .4rem
    }

    .news-tabs.video-tabs {
        grid-template-columns: repeat(3, minmax(0, 1fr))
    }

    .news-tabs.faq-tabs {
        display: flex;
        grid-template-columns: none
    }

    .news-search-header {
        display: block;
        margin-bottom: .65rem
    }

    .news-search-header .page-header {
        margin-bottom: .5rem
    }

    .news-tab {
        min-width: 0;
        padding-right: .4rem;
        padding-left: .4rem
    }

    .news-search-panel {
        padding: 1rem;
        border-radius: 0 0 12px 12px
    }

    .news-search-grid {
        grid-template-columns: 1fr;
        gap: .85rem
    }

    .faq-search-grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: .85rem
    }

    .faq-item__button {
        min-height: 3.5rem;
        padding: .85rem 1rem;
        gap: .65rem
    }

    .faq-item__answer {
        padding: .9rem 1rem 1rem;
        gap: .65rem
    }

    .news-search-field--date {
        grid-column: auto
    }

    .news-date-range {
        grid-template-columns: 1fr;
        gap: .35rem
    }

    .news-date-range > span {
        text-align: center
    }

    .news-article__meta {
        grid-template-columns: 1fr;
        gap: 0
    }

    .news-article__meta div,
    .news-article__meta div:nth-child(odd) {
        border-top: 1px solid #e0d9d4;
        border-left: 0
    }

    .news-article__meta div:first-child {
        border-top: 0
    }

    .news-article__body {
        min-height: 7rem;
        padding: 1rem
    }

    .plan-card {
        min-height: 6rem;
        padding: 1.25rem 1rem
    }

    .plan-detail-header {
        margin-bottom: 1rem;
        padding-bottom: .5rem
    }

    .plan-detail-header .page-header {
        padding: .25rem 0 .85rem
    }

    .plan-local-nav {
        grid-template-columns: 1fr;
        margin-bottom: 0
    }

    .plan-local-nav__group {
        padding: .65rem 0;
        border-top: 1px solid #ddd;
        border-left: 0
    }

    .plan-local-nav__group:first-child {
        border-top: 0
    }

    .plan-local-nav ul,
    .plan-local-nav__group--plan ul {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .25rem
    }

    .plan-local-nav__group--plan ul {
        grid-template-rows: repeat(3, minmax(2.75rem, auto));
        grid-auto-flow: column
    }

    .plan-local-nav a {
        min-height: 2.75rem;
        padding: .5rem .65rem .5rem 1.75rem;
        border-radius: 12px
    }

    .detail-section__header {
        gap: .6rem;
        min-height: 3rem;
        padding: .35rem .5rem .35rem 1rem;
        border-radius: 12px 12px 0 0
    }

    .detail-section__title {
        font-size: 1.25rem
    }

    .detail-section__title-actions {
        flex-basis: min(8.5rem, 42%);
        min-height: 2.5rem
    }

    .detail-section__title-button {
        min-height: 2.5rem;
        font-size: 1rem
    }

    .detail-section__body {
        padding: .5rem 0 0;
        border-radius: 0
    }

    .detail-list {
        box-shadow: 0 3px 10px rgba(0, 0, 0, .14)
    }

    .detail-list dt,
    .detail-list dd {
        padding-right: .85rem;
        padding-left: .85rem
    }

    .detail-rich-text ul,
    .detail-content-list {
        padding-left: 1.25rem
    }

    .course-table caption {
        padding: 0 .25rem;
        font-size: .95rem
    }

    .course-table th,
    .course-table td {
        padding: .5rem .7rem
    }

    .organizer-search-panel {
        padding: 1rem;
        border-radius: 0 0 12px 12px
    }

    .organizer-search-grid {
        grid-template-columns: 1fr;
        gap: .85rem
    }

    .organizer-search-actions .btn {
        width: 100%
    }

    .unit-content-panel {
        padding: 1rem
    }

    .unit-back-actions .btn {
        width: 100%
    }

    .result-pagination {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .result-pagination__status {
        grid-column: 1 / -1;
        grid-row: 1
    }

    .detail-actions .btn-primary {
        width: 100%
    }

    .programs {
        grid-template-columns: 1fr
    }

    .topbar {
        gap: .65rem
    }
}

/* 後台計畫簡介內容：保留 PIF_CONTENT，僅統一外層排版與舊表格的 RWD。 */
.employment-program-content .detail-rich-text {
    color: #40332f;
    font-size: 1rem;
    line-height: 1.85
}
.employment-program-content .detail-section__body { overflow-x: auto; }
.employment-program-content .detail-rich-text > :first-child { margin-top: 0; }
.employment-program-content .detail-rich-text > :last-child { margin-bottom: 0; }
.employment-program-content .detail-rich-text table {
    width: 100%;
    max-width: 100%;
    border-collapse: collapse;
    background: #fff
}
.employment-program-content .detail-rich-text th,
.employment-program-content .detail-rich-text td {
    padding: .55rem .75rem;
    border: 1px solid #e5d3bd;
    line-height: 1.7;
    vertical-align: middle;
    overflow-wrap: anywhere
}
.employment-program-content .detail-rich-text th {
    background: #89304f;
    color: #fff;
    font-weight: 600
}
.employment-program-content .detail-rich-text tbody tr:nth-child(even) td { background: #faf5ef; }
.employment-program-content iframe {
    display: block;
    width: 100%;
    min-height: 24rem;
    border: 0
}
.employment-program-empty {
    margin: 0;
    padding: 2rem 1rem;
    color: #746961;
    text-align: center
}

.external-link-label {
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere
}

.external-link-icon {
    display: inline-block;
    margin-left: .25rem;
    font-size: .9em;
    font-weight: 700;
    line-height: 1;
    vertical-align: .08em
}


/* 共用查詢彈窗：地址查詢及後續系統查詢元件共用。 */
.common-dialog .modal-dialog {
    width: min(800px, calc(100vw - 2rem));
    max-width: calc(100vw - 2rem);
    margin: 2rem auto
}
.common-dialog .modal-content {
    overflow: hidden;
    border: 0;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 18px 50px rgba(65, 38, 25, .28)
}
.common-dialog .modal-header {
    min-height: 3.75rem;
    padding: .85rem 1.25rem;
    border: 0;
    background: linear-gradient(90deg, #8f294d 0%, #c44b54 52%, #e9784f 100%);
    color: #fff
}
.common-dialog .modal-title {
    margin: 0;
    color: #fff;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.45
}
.common-dialog .modal-header .close {
    margin-top: 0;
    color: #fff;
    font-size: 2rem;
    line-height: 1;
    text-shadow: none;
    opacity: .9
}
.common-dialog .modal-header .close:hover,
.common-dialog .modal-header .close:focus { color: #fff; opacity: 1; }
.common-dialog .modal-body {
    max-height: 70vh;
    padding: 0;
    overflow: auto;
    background: #fffaf6
}
.common-dialog .modal-footer {
    display: flex;
    justify-content: center;
    padding: .75rem 1rem;
    border-top: 1px solid #ead5c9;
    background: #fff
}
.common-dialog .modal-footer .btn-close {
    min-width: 8rem;
    border: 1px solid #c9b7aa;
    border-radius: 999px;
    background: #fff;
    color: #6c3822;
    font-weight: 700
}
.zip-search-panel {
    position: sticky;
    z-index: 5;
    top: 0;
    padding: 1rem;
    border-bottom: 1px solid #edcba7;
    background: rgba(255, 250, 246, .98);
    box-shadow: 0 5px 14px rgba(112, 72, 45, .1)
}
.zip-search-grid {
    display: grid;
    grid-template-columns: minmax(7rem, .55fr) minmax(18rem, 1.35fr) minmax(12rem, 1fr) auto;
    align-items: end;
    gap: .75rem
}
.zip-search-field { display: grid; gap: .3rem; min-width: 0; }
.zip-search-field label {
    margin: 0;
    color: #6c3822;
    font-size: .92rem;
    font-weight: 700
}
.zip-search-field input,
.zip-search-field select {
    width: 100%;
    min-width: 0;
    min-height: 2.65rem;
    padding: .5rem .7rem;
    border: 1px solid #cfc7c1;
    border-radius: .45rem;
    background: #fff;
    color: #302a26;
    font: inherit
}
.zip-search-field input:focus,
.zip-search-field select:focus {
    border-color: #c85f20;
    outline: 3px solid rgba(200, 95, 32, .18);
    outline-offset: 1px
}
.zip-district-selects {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: .3rem
}
.zip-search-actions { display: flex; gap: .45rem; align-items: center; }
.zip-search-actions .btn {
    min-width: 4.5rem;
    min-height: 2.65rem;
    margin: 0;
    padding: .45rem .85rem;
    border-radius: 999px;
    font-weight: 700
}
.zip-search-actions .btn-primary { border-color: #aa4b8f; background: #aa4b8f; color: #fff; }
.zip-search-actions .btn-secondary { border-color: #c9b7aa; background: #fff; color: #6c3822; }
.zip-results { min-height: 8rem; padding: 1rem; }
.zip-table-wrap {
    max-width: 100%;
    overflow: auto;
    border: 1px solid #ead5c9;
    border-radius: .75rem;
    background: #fff
}
.zip-table-wrap:focus-visible { outline: 3px solid #1a73e8; outline-offset: 2px; }
.zip-result-table { width: 100%; min-width: 44rem; border-collapse: collapse; }
.zip-result-table th,
.zip-result-table td {
    padding: .65rem .75rem;
    border-bottom: 1px solid #eadfd7;
    text-align: left;
    vertical-align: middle
}
.zip-result-table th {
    background: #89304f;
    color: #fff;
    font-weight: 700;
    white-space: nowrap
}
.zip-result-table th:first-child,
.zip-result-table td:first-child,
.zip-result-table th:nth-child(2),
.zip-result-table td:nth-child(2) { text-align: center; }
.zip-result-row { cursor: pointer; transition: background-color .18s ease, box-shadow .18s ease; }
.zip-result-row:nth-child(even) { background: #faf5ef; }
.zip-result-row:hover,
.zip-result-row:focus-within { background: #fff0e8; box-shadow: inset 4px 0 #d65b3a; }
.zip-result-choice { width: 1.2rem; height: 1.2rem; margin: 0; accent-color: #aa4b8f; }
.zip-empty { margin: 0; padding: 2rem 1rem; color: #746961; text-align: center; }

@media (max-width: 767.98px) {
    .common-dialog .modal-dialog { width: calc(100vw - 1rem); max-width: calc(100vw - 1rem); margin: .5rem auto; }
    .common-dialog .modal-body { max-height: calc(100vh - 9rem); }
    .zip-search-grid { grid-template-columns: 1fr 1fr; }
    .zip-search-field--district,
    .zip-search-field--road { grid-column: 1 / -1; }
    .zip-search-actions { justify-content: flex-end; }
    .zip-search-actions .btn { flex: 1 1 0; }
    .zip-results { padding: .75rem; }
}


/* Design Baseline 原生 dialog 預覽：沿用正式 MVC 共用彈窗元件外觀。 */
dialog.common-dialog {
    width: auto;
    max-width: none;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    overflow: visible
}
dialog.common-dialog::backdrop { background: rgba(48, 31, 25, .55); backdrop-filter: blur(2px); }
dialog.common-dialog .modal-dialog { margin: 0; }
dialog.common-dialog .modal-body { height: min(28rem, 70vh); }


.common-dialog .modal-header { position: relative; }
.common-dialog .modal-header .close {
    position: absolute;
    top: .65rem;
    right: 1rem
}
.common-dialog .modal-title { padding-right: 2.5rem; }


/* 共用查詢彈窗第二版：置中、關閉控制與行動版可用高度。 */
.common-dialog.in {
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 1rem
}
.common-dialog.in .modal-dialog {
    flex: 0 1 800px;
    margin: 0
}
.common-dialog .modal-header .close {
    display: inline-grid;
    place-items: center;
    width: 2.3rem;
    height: 2.3rem;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 50%;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    font-size: 1.65rem;
    font-weight: 400;
    line-height: 1;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease
}
.common-dialog .modal-header .close:hover,
.common-dialog .modal-header .close:focus-visible {
    border-color: #fff;
    background: #fff;
    color: #8f294d;
    outline: 3px solid rgba(255, 255, 255, .35);
    outline-offset: 2px
}
.zip-search-actions .btn-query,
.zip-search-actions .btn-clear {
    border-width: 1px;
    border-style: solid;
    box-shadow: none;
    transform: none !important;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease
}
.zip-search-actions .btn-query {
    border-color: #9b3f78;
    background: #9b3f78;
    color: #fff
}
.zip-search-actions .btn-query:hover,
.zip-search-actions .btn-query:focus-visible {
    border-color: #7f2f61;
    background: #7f2f61;
    color: #fff;
    box-shadow: none;
    transform: none !important
}
.zip-search-actions .btn-clear {
    border-color: #c9b7aa;
    background: #fff;
    color: #6c3822
}
.zip-search-actions .btn-clear:hover,
.zip-search-actions .btn-clear:focus-visible {
    border-color: #a98d79;
    background: #fff3e8;
    color: #6c3822;
    box-shadow: none;
    transform: none !important
}
dialog.common-dialog {
    inset: 0;
    width: min(800px, calc(100vw - 2rem));
    margin: auto
}
dialog.common-dialog .modal-dialog { width: 100%; max-width: 100%; }
dialog.common-dialog .modal-body { height: min(36rem, calc(100dvh - 9rem)); }

@media (max-width: 767.98px) {
    .common-dialog.in { align-items: center; padding: .5rem; }
    .common-dialog .modal-dialog { width: calc(100vw - 1rem); max-width: calc(100vw - 1rem); }
    .common-dialog .modal-body,
    dialog.common-dialog .modal-body {
        height: min(32rem, 62dvh);
        max-height: min(32rem, 62dvh)
    }
    .zip-search-panel { position: static; padding: .85rem; box-shadow: none; }
    .zip-search-grid { grid-template-columns: 1fr; }
    .zip-search-field--district,
    .zip-search-field--road { grid-column: auto; }
    .zip-search-actions { justify-content: stretch; }
}


/* 地址查詢結果：行動版改為卡片，桌機版維持資料表。 */
@media (max-width: 767.98px) {
    .zip-table-wrap {
        overflow: visible;
        border: 0;
        border-radius: 0;
        background: transparent
    }
    .zip-result-table {
        display: block;
        min-width: 0
    }
    .zip-result-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        margin: -1px;
        padding: 0;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0
    }
    .zip-result-table tbody {
        display: grid;
        gap: .75rem
    }
    .zip-result-table .zip-result-row {
        display: grid;
        grid-template-columns: 1fr;
        padding: .7rem .8rem;
        border: 1px solid #ead5c9;
        border-radius: .75rem;
        background: #fff;
        box-shadow: 0 3px 10px rgba(112, 72, 45, .08)
    }
    .zip-result-table .zip-result-row:nth-child(even) { background: #fffaf6; }
    .zip-result-table .zip-result-row:hover,
    .zip-result-table .zip-result-row:focus-within {
        border-color: #d65b3a;
        background: #fff3e8;
        box-shadow: inset 4px 0 #d65b3a, 0 4px 12px rgba(112, 72, 45, .12)
    }
    .zip-result-table td,
    .zip-result-table td:first-child,
    .zip-result-table td:nth-child(2) {
        display: grid;
        grid-template-columns: 5.75rem minmax(0, 1fr);
        gap: .65rem;
        padding: .35rem .25rem;
        border: 0;
        text-align: left
    }
    .zip-result-table td::before {
        content: attr(data-label);
        color: #7d4932;
        font-weight: 700
    }
    .zip-result-table .zip-result-select {
        order: 10;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: .5rem;
        margin-top: .3rem;
        padding-top: .65rem;
        border-top: 1px solid #eadfd7;
        color: #7d4932;
        font-weight: 700
    }
    .zip-result-table .zip-result-select::before { content: attr(data-label); }
    .zip-result-choice { flex: 0 0 auto; }
}

/* 表單檢核訊息：目前獨立套用，待全站完成後再與其他提示類別統整。 */
.jconfirm .jconfirm-box.form-validation-dialog {
    max-height: calc(100vh - 4rem);
    padding: 0 0 1.1rem !important;
    overflow: hidden;
}
.jconfirm .jconfirm-box.form-validation-dialog > .title {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
    margin: 0;
    padding: .8rem 1.25rem;
    border: 0;
    border-radius: 14px 14px 0 0;
    background: linear-gradient(90deg, #8f294d, #a94566);
    color: #fff;
    font-size: 1.2rem;
    font-weight: 700;
}
.jconfirm .form-validation-dialog .blockAlertTitle { color: #fff; }
.jconfirm .form-validation-dialog .blockAlertTitle span {
    color: rgba(255, 255, 255, .82) !important;
    font-size: .85rem !important;
    font-weight: 400;
}
.jconfirm .jconfirm-box.form-validation-dialog > .content {
    max-height: min(32rem, 65vh);
    padding: 1rem 1.5rem .25rem;
    overflow-y: auto;
    overflow-wrap: anywhere;
}
.jconfirm .form-validation-dialog .blockAlertMessage ul { margin: 0; padding-left: 1.5rem; }
.jconfirm .form-validation-dialog .blockAlertMessage li + li { margin-top: .45rem; }
.jconfirm .jconfirm-box.form-validation-dialog > .buttons {
    margin: 0 1.5rem;
    padding-top: .8rem;
    border-top: 1px solid #ead8c8;
}
@media (max-width: 767px) {
    .jconfirm .jconfirm-box.form-validation-dialog { max-height: calc(100dvh - 2rem); }
    .jconfirm .jconfirm-box.form-validation-dialog > .title { padding: .7rem 1rem; }
    .jconfirm .jconfirm-box.form-validation-dialog > .content {
        max-height: 55dvh;
        padding: .85rem 1rem .2rem;
    }
    .jconfirm .jconfirm-box.form-validation-dialog > .buttons { margin: 0 1rem; }
}

/* 頁尾計畫快速連結改為六欄後，沿用 .container 的 1200px 會讓每欄過窄；
   僅針對 #intro 放寬（其他 .container 不受影響），並保持在小螢幕自動收窄。 */
#intro.footer-plan-menu.programs {
    width: min(1560px, calc(100% - 48px));
    max-width: none;
    margin-left: auto;
    margin-right: auto;
}
