/* 官網樣式的子集（Bootstrap 與官網元件，class 加上 cp- 前綴）＋ 營隊頁共用區塊：_src/css/site.css、_src/css/shared.css */
/* 圖片有 width/height 屬性時保持原比例（防版面跳動，2026-10-29 健檢 M2/M4）；放最前面，後面同權重的規則照舊生效 */
.lp img { height: auto; }

.lp .cp-camp-page {
  --cp-info-rgb: 23, 162, 184;
  --cp-light-rgb: 248, 249, 250;
  --cp-white-rgb: 255, 255, 255;
  --cp-root-font-size: 18px;
  --cp-body-font-family: "Noto Sans TC", sans-serif;
  --cp-body-font-size: 1rem;
  --cp-body-font-weight: 400;
  --cp-body-line-height: 1.5;
  --cp-body-color: #4d4d4d;
  --cp-body-bg: #ffffff;
  --cp-emphasis-color: #000000;
  --cp-emphasis-color-rgb: 0, 0, 0;
  --cp-secondary-color: rgba(77, 77, 77, 0.75);
  --cp-secondary-bg: #e9ecef;
  --cp-heading-color: inherit;
  --cp-link-color: #4d4d4d;
  --cp-link-color-rgb: 77, 77, 77;
  --cp-link-hover-color: #2D2E32;   /* 紅線：連結滑過不變亮橘字（淺底），改深墨 */
  --cp-link-hover-color-rgb: 45, 46, 50;
  --cp-border-width: 1px;
  --cp-border-color: #dee2e6;
  --cp-border-color-translucent: rgba(0, 0, 0, 0.175);
  --cp-border-radius: 0.375rem;
  --cp-border-radius-lg: 0.5rem;
  --cp-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

.lp .cp-camp-page *,
.lp .cp-camp-page *::before,
.lp .cp-camp-page *::after {
  box-sizing: border-box;
}

.lp .cp-camp-page {
  font-size: var(--cp-root-font-size);
}

@media (prefers-reduced-motion: no-preference) {
  .lp .cp-camp-page {
    scroll-behavior: smooth;
  }
}

.lp .cp-camp-page {
  margin: 0;
  font-family: var(--cp-body-font-family);
  font-size: var(--cp-body-font-size);
  font-weight: var(--cp-body-font-weight);
  line-height: var(--cp-body-line-height);
  color: var(--cp-body-color);
  text-align: var(--cp-body-text-align);
  background-color: var(--cp-body-bg);
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

.lp .cp-camp-page hr {
  margin: 10px 0;
  color: inherit;
  border: 0;
  border-top: var(--cp-border-width) solid;
  opacity: 0.25;
}

.lp .cp-camp-page h6,
.lp .cp-camp-page h5,
.lp .cp-camp-page .cp-h4,
.lp .cp-camp-page h3,
.lp .cp-camp-page .cp-h3,
.lp .cp-camp-page h2,
.lp .cp-camp-page .cp-h2,
.lp .cp-camp-page h1,
.lp .cp-camp-page .cp-h1,
.lp .cp-camp-page div:where(.cp-h2-m) {
  margin-top: 0;
  margin-bottom: 0px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--cp-heading-color);
}

.lp .cp-camp-page h1,
.lp .cp-camp-page .cp-h1 {
  font-size: calc(1.425rem + 2.1vw);
}

@media (min-width: 1200px) {
  .lp .cp-camp-page h1,
  .lp .cp-camp-page .cp-h1 {
    font-size: 3rem;
  }
}

.lp .cp-camp-page h2,
.lp .cp-camp-page .cp-h2,
.lp .cp-camp-page div:where(.cp-h2-m) {
  font-size: calc(1.35rem + 1.2vw);
}

@media (min-width: 1200px) {
  .lp .cp-camp-page h2,
  .lp .cp-camp-page .cp-h2,
  .lp .cp-camp-page div:where(.cp-h2-m) {
    font-size: 2.25rem;
  }
}

.lp .cp-camp-page h3,
.lp .cp-camp-page .cp-h3 {
  font-size: calc(1.275rem + 0.3vw);
}

@media (min-width: 1200px) {
  .lp .cp-camp-page h3,
  .lp .cp-camp-page .cp-h3 {
    font-size: 1.5rem;
  }
}

.lp .cp-camp-page .cp-h4 {
  font-size: calc(1.275rem + 0.3vw);
}

@media (min-width: 1200px) {
  .lp .cp-camp-page .cp-h4 {
    font-size: 1.5rem;
  }
}

.lp .cp-camp-page h5 {
  font-size: 1.25rem;
}

.lp .cp-camp-page h6 {
  font-size: 1rem;
}

.lp .cp-camp-page p {
  margin-top: 0;
  margin-bottom: 0px;
}

.lp .cp-camp-page ul {
  padding-left: 2rem;
}

.lp .cp-camp-page ul {
  margin-top: 0;
  margin-bottom: 1rem;
}

.lp .cp-camp-page ul ul {
  margin-bottom: 0;
}

.lp .cp-camp-page strong {
  font-weight: bolder;
}

.lp .cp-camp-page small,
.lp .cp-camp-page .cp-small {
  font-size: 0.875em;
}

.lp .cp-camp-page a {
  color: rgba(var(--cp-link-color-rgb), var(--cp-link-opacity, 1));
  text-decoration: underline;
}

@media (hover: hover) and (pointer: fine) {
      .lp .cp-camp-page a:hover {
  --cp-link-color-rgb: var(--cp-link-hover-color-rgb);
}
    }

.lp .cp-camp-page a:not([href]):not([class]) {
  color: inherit;
  text-decoration: none;
}
    @media (hover: hover) and (pointer: fine) {
      .lp .cp-camp-page a:not([href]):not([class]):hover {
  color: inherit;
  text-decoration: none;
}
    }

.lp .cp-camp-page img {
  vertical-align: middle;
}

.lp .cp-camp-page table {
  caption-side: bottom;
  border-collapse: collapse;
}

.lp .cp-camp-page th {
  text-align: inherit;
  text-align: -webkit-match-parent;
}

.lp .cp-camp-page thead,
.lp .cp-camp-page tbody,
.lp .cp-camp-page tr,
.lp .cp-camp-page td,
.lp .cp-camp-page th {
  border-color: inherit;
  border-style: solid;
  border-width: 0;
}

.lp .cp-camp-page button {
  border-radius: 0;
}

.lp .cp-camp-page button:focus:not(:focus-visible) {
  outline: 0;
}

.lp .cp-camp-page button {
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

.lp .cp-camp-page button {
  text-transform: none;
}

.lp .cp-camp-page [role=button] {
  cursor: pointer;
}

.lp .cp-camp-page:not(#cp-important) [list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator {
  display: none;
}

.lp .cp-camp-page button,
.lp .cp-camp-page [type=button],
.lp .cp-camp-page [type=reset],
.lp .cp-camp-page [type=submit] {
  -webkit-appearance: button;
}

.lp .cp-camp-page button:not(:disabled),
.lp .cp-camp-page [type=button]:not(:disabled),
.lp .cp-camp-page [type=reset]:not(:disabled),
.lp .cp-camp-page [type=submit]:not(:disabled) {
  cursor: pointer;
}

.lp .cp-camp-page ::-moz-focus-inner {
  padding: 0;
  border-style: none;
}

.lp .cp-camp-page ::-webkit-datetime-edit-fields-wrapper,
.lp .cp-camp-page ::-webkit-datetime-edit-text,
.lp .cp-camp-page ::-webkit-datetime-edit-minute,
.lp .cp-camp-page ::-webkit-datetime-edit-hour-field,
.lp .cp-camp-page ::-webkit-datetime-edit-day-field,
.lp .cp-camp-page ::-webkit-datetime-edit-month-field,
.lp .cp-camp-page ::-webkit-datetime-edit-year-field {
  padding: 0;
}

.lp .cp-camp-page ::-webkit-inner-spin-button {
  height: auto;
}

.lp .cp-camp-page [type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

.lp .cp-camp-page ::-webkit-search-decoration {
  -webkit-appearance: none;
}

.lp .cp-camp-page ::-webkit-color-swatch-wrapper {
  padding: 0;
}

.lp .cp-camp-page ::file-selector-button {
  font: inherit;
  -webkit-appearance: button;
}

.lp .cp-camp-page iframe {
  border: 0;
}

.lp .cp-camp-page summary {
  display: list-item;
  cursor: pointer;
}

.lp .cp-camp-page:not(#cp-important) [hidden] {
  display: none;
}

.lp .cp-camp-page .cp-display-4 {
  font-size: calc(1.475rem + 2.7vw);
  font-weight: 300;
  line-height: 1.5;
}

@media (min-width: 1200px) {
  .lp .cp-camp-page .cp-display-4 {
    font-size: 3.5rem;
  }
}

.lp .cp-camp-page .cp-container,
.lp .cp-camp-page .cp-container-md {
  --cp-gutter-x: 1.5rem;
  --cp-gutter-y: 0;
  width: 100%;
  padding-right: calc(var(--cp-gutter-x) * 0.5);
  padding-left: calc(var(--cp-gutter-x) * 0.5);
  margin-right: auto;
  margin-left: auto;
}

@media (min-width: 576px) {
  .lp .cp-camp-page .cp-container {
    max-width: 540px;
  }
}

@media (min-width: 768px) {
  .lp .cp-camp-page .cp-container-md,
  .lp .cp-camp-page .cp-container {
    max-width: 720px;
  }
}

@media (min-width: 992px) {
  .lp .cp-camp-page .cp-container-md,
  .lp .cp-camp-page .cp-container {
    max-width: 960px;
  }
}

@media (min-width: 1200px) {
  .lp .cp-camp-page .cp-container-md,
  .lp .cp-camp-page .cp-container {
    max-width: 1140px;
  }
}

@media (min-width: 1400px) {
  .lp .cp-camp-page .cp-container-md,
  .lp .cp-camp-page .cp-container {
    max-width: 1320px;
  }
}

.lp .cp-camp-page .cp-row {
  --cp-gutter-x: 1.5rem;
  --cp-gutter-y: 0;
  display: flex;
  flex-wrap: wrap;
  margin-top: calc(-1 * var(--cp-gutter-y));
  margin-right: calc(-0.5 * var(--cp-gutter-x));
  margin-left: calc(-0.5 * var(--cp-gutter-x));
}

.lp .cp-camp-page .cp-row > * {
  flex-shrink: 0;
  width: 100%;
  max-width: 100%;
  padding-right: calc(var(--cp-gutter-x) * 0.5);
  padding-left: calc(var(--cp-gutter-x) * 0.5);
  margin-top: var(--cp-gutter-y);
}

.lp .cp-camp-page .cp-col-1 {
  flex: 0 0 auto;
  width: 8.33333333%;
}

.lp .cp-camp-page .cp-col-2 {
  flex: 0 0 auto;
  width: 16.66666667%;
}

.lp .cp-camp-page .cp-col-3 {
  flex: 0 0 auto;
  width: 25%;
}

.lp .cp-camp-page .cp-col-4 {
  flex: 0 0 auto;
  width: 33.33333333%;
}

.lp .cp-camp-page .cp-col-5 {
  flex: 0 0 auto;
  width: 41.66666667%;
}

.lp .cp-camp-page .cp-col-6 {
  flex: 0 0 auto;
  width: 50%;
}

.lp .cp-camp-page .cp-col-7 {
  flex: 0 0 auto;
  width: 58.33333333%;
}

.lp .cp-camp-page .cp-col-8 {
  flex: 0 0 auto;
  width: 66.66666667%;
}

.lp .cp-camp-page .cp-col-9 {
  flex: 0 0 auto;
  width: 75%;
}

.lp .cp-camp-page .cp-col-12 {
  flex: 0 0 auto;
  width: 100%;
}

.lp .cp-camp-page .cp-offset-4 {
  margin-left: 33.33333333%;
}

.lp .cp-camp-page .cp-offset-6 {
  margin-left: 50%;
}

@media (min-width: 576px) {
  .lp .cp-camp-page .cp-col-sm-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
  }
  .lp .cp-camp-page .cp-col-sm-8 {
    flex: 0 0 auto;
    width: 66.66666667%;
  }
  .lp .cp-camp-page .cp-col-sm-12 {
    flex: 0 0 auto;
    width: 100%;
  }
}

@media (min-width: 768px) {
  .lp .cp-camp-page .cp-col-md-3 {
    flex: 0 0 auto;
    width: 25%;
  }
  .lp .cp-camp-page .cp-col-md-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
  }
  .lp .cp-camp-page .cp-col-md-5 {
    flex: 0 0 auto;
    width: 41.66666667%;
  }
  .lp .cp-camp-page .cp-col-md-6 {
    flex: 0 0 auto;
    width: 50%;
  }
  .lp .cp-camp-page .cp-col-md-7 {
    flex: 0 0 auto;
    width: 58.33333333%;
  }
  .lp .cp-camp-page .cp-col-md-8 {
    flex: 0 0 auto;
    width: 66.66666667%;
  }
  .lp .cp-camp-page .cp-col-md-9 {
    flex: 0 0 auto;
    width: 75%;
  }
  .lp .cp-camp-page .cp-offset-md-2 {
    margin-left: 16.66666667%;
  }
  .lp .cp-camp-page .cp-offset-md-3 {
    margin-left: 25%;
  }
  .lp .cp-camp-page .cp-offset-md-4 {
    margin-left: 33.33333333%;
  }
  .lp .cp-camp-page .cp-offset-md-6 {
    margin-left: 50%;
  }
}

@media (min-width: 992px) {
  .lp .cp-camp-page .cp-col-lg-3 {
    flex: 0 0 auto;
    width: 25%;
  }
  .lp .cp-camp-page .cp-col-lg-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
  }
  .lp .cp-camp-page .cp-col-lg-6 {
    flex: 0 0 auto;
    width: 50%;
  }
  .lp .cp-camp-page .cp-col-lg-8 {
    flex: 0 0 auto;
    width: 66.66666667%;
  }
  .lp .cp-camp-page .cp-col-lg-9 {
    flex: 0 0 auto;
    width: 75%;
  }
  .lp .cp-camp-page .cp-offset-lg-6 {
    margin-left: 50%;
  }
}

@media (min-width: 1200px) {
  .lp .cp-camp-page .cp-col-xl-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
  }
}

.lp .cp-camp-page .cp-table {
  --cp-table-color-type: initial;
  --cp-table-bg-type: initial;
  --cp-table-color-state: initial;
  --cp-table-bg-state: initial;
  --cp-table-color: var(--cp-emphasis-color);
  --cp-table-bg: var(--cp-body-bg);
  --cp-table-border-color: var(--cp-border-color);
  --cp-table-accent-bg: transparent;
  --cp-table-striped-color: var(--cp-emphasis-color);
  --cp-table-striped-bg: rgba(var(--cp-emphasis-color-rgb), 0.05);
  width: 100%;
  margin-bottom: 10px;
  vertical-align: top;
  border-color: var(--cp-table-border-color);
}

.lp .cp-camp-page .cp-table > :not(caption) > * > * {
  padding: 0.5rem 0.5rem;
  color: var(--cp-table-color-state, var(--cp-table-color-type, var(--cp-table-color)));
  background-color: var(--cp-table-bg);
  border-bottom-width: var(--cp-border-width);
  box-shadow: inset 0 0 0 9999px var(--cp-table-bg-state, var(--cp-table-bg-type, var(--cp-table-accent-bg)));
}

.lp .cp-camp-page .cp-table > tbody {
  vertical-align: inherit;
}

.lp .cp-camp-page .cp-table > thead {
  vertical-align: bottom;
}

.lp .cp-camp-page .cp-table-striped > tbody > tr:nth-of-type(odd) > * {
  --cp-table-color-type: var(--cp-table-striped-color);
  --cp-table-bg-type: var(--cp-table-striped-bg);
}

.lp .cp-camp-page .cp-table-info {
  --cp-table-color: #000000;
  --cp-table-bg: #d1ecf1;
  --cp-table-border-color: #a7bdc1;
  --cp-table-striped-bg: #c7e0e5;
  --cp-table-striped-color: #000000;
  color: var(--cp-table-color);
  border-color: var(--cp-table-border-color);
}

.lp .cp-camp-page .cp-table-warning {
  --cp-table-color: #000000;
  --cp-table-bg: #fff3cd;
  --cp-table-border-color: #ccc2a4;
  --cp-table-striped-bg: #f2e7c3;
  --cp-table-striped-color: #000000;
  color: var(--cp-table-color);
  border-color: var(--cp-table-border-color);
}

.lp .cp-camp-page .cp-table-danger {
  --cp-table-color: #000000;
  --cp-table-bg: #ffdede;
  --cp-table-border-color: #ccb2b2;
  --cp-table-striped-bg: #f2d3d3;
  --cp-table-striped-color: #000000;
  color: var(--cp-table-color);
  border-color: var(--cp-table-border-color);
}

.lp .cp-camp-page .cp-btn {
  --cp-btn-padding-x: 15px;
  --cp-btn-padding-y: 6px;
  --cp-btn-font-family:  ;
  --cp-btn-font-size: 1.125rem;
  --cp-btn-font-weight: 400;
  --cp-btn-line-height: 1.5;
  --cp-btn-color: var(--cp-body-color);
  --cp-btn-bg: transparent;
  --cp-btn-border-width: var(--cp-border-width);
  --cp-btn-border-color: transparent;
  --cp-btn-border-radius: var(--cp-border-radius);
  --cp-btn-hover-border-color: transparent;
  --cp-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
  --cp-btn-disabled-opacity: 0.65;
  --cp-btn-focus-box-shadow: 0 0 0 0px rgba(var(--cp-btn-focus-shadow-rgb), .5);
  display: inline-block;
  padding: var(--cp-btn-padding-y) var(--cp-btn-padding-x);
  font-family: var(--cp-btn-font-family);
  font-size: var(--cp-btn-font-size);
  font-weight: var(--cp-btn-font-weight);
  line-height: var(--cp-btn-line-height);
  color: var(--cp-btn-color);
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  border: var(--cp-btn-border-width) solid var(--cp-btn-border-color);
  border-radius: var(--cp-btn-border-radius);
  background-color: var(--cp-btn-bg);
  box-shadow: var(--cp-btn-box-shadow);
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

@media (prefers-reduced-motion: reduce) {
  .lp .cp-camp-page .cp-btn {
    transition: none;
  }
}

@media (hover: hover) and (pointer: fine) {
      .lp .cp-camp-page .cp-btn:hover {
  color: var(--cp-btn-hover-color);
  background-color: var(--cp-btn-hover-bg);
  border-color: var(--cp-btn-hover-border-color);
}
    }

.lp .cp-camp-page .cp-btn:focus-visible {
  color: var(--cp-btn-hover-color);
  background-color: var(--cp-btn-hover-bg);
  border-color: var(--cp-btn-hover-border-color);
  outline: 0;
  box-shadow: var(--cp-btn-box-shadow), var(--cp-btn-focus-box-shadow);
}

.lp .cp-camp-page :not(.cp-btn-check) + .cp-btn:active,
.lp .cp-camp-page .cp-btn:first-child:active,
.lp .cp-camp-page .cp-btn.cp-active,
.lp .cp-camp-page .cp-btn.cp-show {
  color: var(--cp-btn-active-color);
  background-color: var(--cp-btn-active-bg);
  border-color: var(--cp-btn-active-border-color);
  box-shadow: var(--cp-btn-active-shadow);
}

.lp .cp-camp-page :not(.cp-btn-check) + .cp-btn:active:focus-visible,
.lp .cp-camp-page .cp-btn:first-child:active:focus-visible,
.lp .cp-camp-page .cp-btn.cp-active:focus-visible,
.lp .cp-camp-page .cp-btn.cp-show:focus-visible {
  box-shadow: var(--cp-btn-active-shadow), var(--cp-btn-focus-box-shadow);
}

.lp .cp-camp-page .cp-btn:disabled {
  color: var(--cp-btn-disabled-color);
  pointer-events: none;
  background-color: var(--cp-btn-disabled-bg);
  border-color: var(--cp-btn-disabled-border-color);
  opacity: var(--cp-btn-disabled-opacity);
  box-shadow: none;
}

.lp .cp-camp-page .cp-btn-lg {
  --cp-btn-padding-y: 6px;
  --cp-btn-padding-x: 15px;
  --cp-btn-font-size: calc(1.275rem + 0.3vw);
  --cp-btn-border-radius: var(--cp-border-radius-lg);
}

@media (min-width: 1200px) {
  .lp .cp-camp-page .cp-btn-lg {
    --cp-btn-font-size: 1.5rem;
  }
}

.lp .cp-camp-page .cp-fade {
  transition: opacity 0.15s linear;
}

@media (prefers-reduced-motion: reduce) {
  .lp .cp-camp-page .cp-fade {
    transition: none;
  }
}

.lp .cp-camp-page .cp-fade:not(.cp-show) {
  opacity: 0;
}

.lp .cp-camp-page .cp-nav {
  --cp-nav-link-padding-x: 1rem;
  --cp-nav-link-padding-y: 0.5rem;
  --cp-nav-link-font-weight:  ;
  --cp-nav-link-color: var(--cp-link-color);
  --cp-nav-link-hover-color: var(--cp-link-hover-color);
  --cp-nav-link-disabled-color: var(--cp-secondary-color);
  display: flex;
  flex-wrap: wrap;
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}

.lp .cp-camp-page .cp-nav-link {
  display: block;
  padding: var(--cp-nav-link-padding-y) var(--cp-nav-link-padding-x);
  font-size: var(--cp-nav-link-font-size);
  font-weight: var(--cp-nav-link-font-weight);
  color: var(--cp-nav-link-color);
  text-decoration: none;
  background: none;
  border: 0;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
}

@media (prefers-reduced-motion: reduce) {
  .lp .cp-camp-page .cp-nav-link {
    transition: none;
  }
}

.lp .cp-camp-page .cp-nav-link:focus {
  color: var(--cp-nav-link-hover-color);
}
    @media (hover: hover) and (pointer: fine) {
      .lp .cp-camp-page .cp-nav-link:hover {
  color: var(--cp-nav-link-hover-color);
}
    }

.lp .cp-camp-page .cp-nav-link:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(73, 144, 198, 0.25);
}

.lp .cp-camp-page .cp-nav-link:disabled {
  color: var(--cp-nav-link-disabled-color);
  pointer-events: none;
  cursor: default;
}

.lp .cp-camp-page .cp-nav-tabs {
  --cp-nav-tabs-border-width: var(--cp-border-width);
  --cp-nav-tabs-border-color: var(--cp-border-color);
  --cp-nav-tabs-border-radius: var(--cp-border-radius);
  --cp-nav-tabs-link-hover-border-color: var(--cp-secondary-bg) var(--cp-secondary-bg) var(--cp-border-color);
  --cp-nav-tabs-link-active-color: var(--cp-emphasis-color);
  --cp-nav-tabs-link-active-bg: var(--cp-body-bg);
  --cp-nav-tabs-link-active-border-color: var(--cp-border-color) var(--cp-border-color) var(--cp-body-bg);
  border-bottom: var(--cp-nav-tabs-border-width) solid var(--cp-nav-tabs-border-color);
}

.lp .cp-camp-page .cp-nav-tabs .cp-nav-link {
  margin-bottom: calc(-1 * var(--cp-nav-tabs-border-width));
  border: var(--cp-nav-tabs-border-width) solid transparent;
  border-top-left-radius: var(--cp-nav-tabs-border-radius);
  border-top-right-radius: var(--cp-nav-tabs-border-radius);
}

.lp .cp-camp-page .cp-nav-tabs .cp-nav-link:focus {
  isolation: isolate;
  border-color: var(--cp-nav-tabs-link-hover-border-color);
}
    @media (hover: hover) and (pointer: fine) {
      .lp .cp-camp-page .cp-nav-tabs .cp-nav-link:hover {
  isolation: isolate;
  border-color: var(--cp-nav-tabs-link-hover-border-color);
}
    }

.lp .cp-camp-page .cp-nav-tabs .cp-nav-link.cp-active,
.lp .cp-camp-page .cp-nav-tabs .cp-nav-item.cp-show .cp-nav-link {
  color: var(--cp-nav-tabs-link-active-color);
  background-color: var(--cp-nav-tabs-link-active-bg);
  border-color: var(--cp-nav-tabs-link-active-border-color);
}

.lp .cp-camp-page .cp-tab-content > .cp-tab-pane {
  display: none;
}

.lp .cp-camp-page .cp-tab-content > .cp-active {
  display: block;
}

.lp .cp-camp-page .cp-card {
  --cp-card-spacer-y: 10px;
  --cp-card-spacer-x: 20px;
  --cp-card-title-spacer-y: 20px;
  --cp-card-title-color:  ;
  --cp-card-border-width: 0;
  --cp-card-border-color: var(--cp-border-color-translucent);
  --cp-card-border-radius: var(--cp-border-radius);
  --cp-card-box-shadow:  ;
  --cp-card-inner-border-radius: calc(var(--cp-border-radius) - 0);
  --cp-card-height: 100%;
  --cp-card-color:  ;
  --cp-card-bg: var(--cp-body-bg);
  --cp-card-img-overlay-padding: 10px;
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: var(--cp-card-height);
  color: var(--cp-body-color);
  word-wrap: break-word;
  background-color: var(--cp-card-bg);
  background-clip: border-box;
  border: var(--cp-card-border-width) solid var(--cp-card-border-color);
  border-radius: var(--cp-card-border-radius);
  box-shadow: var(--cp-card-box-shadow);
}

.lp .cp-camp-page .cp-card > hr {
  margin-right: 0;
  margin-left: 0;
}

.lp .cp-camp-page .cp-card-body {
  flex: 1 1 auto;
  padding: var(--cp-card-spacer-y) var(--cp-card-spacer-x);
  color: var(--cp-card-color);
}

.lp .cp-camp-page .cp-card-title {
  margin-bottom: var(--cp-card-title-spacer-y);
  color: var(--cp-card-title-color);
}

.lp .cp-camp-page .cp-img-overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  padding: var(--cp-card-img-overlay-padding);
  border-radius: var(--cp-card-inner-border-radius);
}

.lp .cp-camp-page .cp-card-img-top {
  width: 100%;
}

.lp .cp-camp-page .cp-card-img-top {
  border-top-left-radius: var(--cp-card-inner-border-radius);
  border-top-right-radius: var(--cp-card-inner-border-radius);
}

.lp .cp-camp-page .cp-clearfix::after {
  display: block;
  clear: both;
  content: "";
}

.lp .cp-camp-page:not(#cp-important) .cp-align-middle {
  vertical-align: middle;
}

.lp .cp-camp-page:not(#cp-important) .cp-d-inline-block {
  display: inline-block;
}

.lp .cp-camp-page:not(#cp-important) .cp-d-block {
  display: block;
}

.lp .cp-camp-page:not(#cp-important) .cp-d-table {
  display: table;
}

.lp .cp-camp-page:not(#cp-important) .cp-d-flex {
  display: flex;
}

.lp .cp-camp-page:not(#cp-important) .cp-d-none {
  display: none;
}

.lp .cp-camp-page:not(#cp-important) .cp-shadow {
  box-shadow: var(--cp-box-shadow);
}

.lp .cp-camp-page:not(#cp-important) .cp-position-relative {
  position: relative;
}

.lp .cp-camp-page:not(#cp-important) .cp-position-absolute {
  position: absolute;
}

.lp .cp-camp-page:not(#cp-important) .cp-w-50 {
  width: 50%;
}

.lp .cp-camp-page:not(#cp-important) .cp-w-75 {
  width: 75%;
}

.lp .cp-camp-page:not(#cp-important) .cp-w-100 {
  width: 100%;
}

.lp .cp-camp-page:not(#cp-important) .cp-flex-column {
  flex-direction: column;
}

.lp .cp-camp-page:not(#cp-important) .cp-justify-content-end {
  justify-content: flex-end;
}

.lp .cp-camp-page:not(#cp-important) .cp-justify-content-center {
  justify-content: center;
}

.lp .cp-camp-page:not(#cp-important) .cp-justify-content-around {
  justify-content: space-around;
}

.lp .cp-camp-page:not(#cp-important) .cp-justify-content-evenly {
  justify-content: space-evenly;
}

.lp .cp-camp-page:not(#cp-important) .cp-align-items-center {
  align-items: center;
}

.lp .cp-camp-page:not(#cp-important) .cp-align-self-end {
  align-self: flex-end;
}

.lp .cp-camp-page:not(#cp-important) .cp-align-self-center {
  align-self: center;
}

.lp .cp-camp-page:not(#cp-important) .cp-mx-1 {
  margin-right: 5px;
  margin-left: 5px;
}

.lp .cp-camp-page:not(#cp-important) .cp-mx-4 {
  margin-right: 30px;
  margin-left: 30px;
}

.lp .cp-camp-page:not(#cp-important) .cp-mx-5 {
  margin-right: 40px;
  margin-left: 40px;
}

.lp .cp-camp-page:not(#cp-important) .cp-mx-auto {
  margin-right: auto;
  margin-left: auto;
}

.lp .cp-camp-page:not(#cp-important) .cp-my-0 {
  margin-top: 0;
  margin-bottom: 0;
}

.lp .cp-camp-page:not(#cp-important) .cp-my-2 {
  margin-top: 10px;
  margin-bottom: 10px;
}

.lp .cp-camp-page:not(#cp-important) .cp-my-3 {
  margin-top: 20px;
  margin-bottom: 20px;
}

.lp .cp-camp-page:not(#cp-important) .cp-my-5 {
  margin-top: 40px;
  margin-bottom: 40px;
}

.lp .cp-camp-page:not(#cp-important) .cp-mt-0 {
  margin-top: 0;
}

.lp .cp-camp-page:not(#cp-important) .cp-mt-1 {
  margin-top: 5px;
}

.lp .cp-camp-page:not(#cp-important) .cp-mt-2 {
  margin-top: 10px;
}

.lp .cp-camp-page:not(#cp-important) .cp-mt-3 {
  margin-top: 20px;
}

.lp .cp-camp-page:not(#cp-important) .cp-mt-4 {
  margin-top: 30px;
}

.lp .cp-camp-page:not(#cp-important) .cp-mt-5 {
  margin-top: 40px;
}

.lp .cp-camp-page:not(#cp-important) .cp-mt-6 {
  margin-top: 80px;
}

.lp .cp-camp-page:not(#cp-important) .cp-me-3 {
  margin-right: 20px;
}

.lp .cp-camp-page:not(#cp-important) .cp-mb-0 {
  margin-bottom: 0;
}

.lp .cp-camp-page:not(#cp-important) .cp-mb-1 {
  margin-bottom: 5px;
}

.lp .cp-camp-page:not(#cp-important) .cp-mb-3 {
  margin-bottom: 20px;
}

.lp .cp-camp-page:not(#cp-important) .cp-mb-4 {
  margin-bottom: 30px;
}

.lp .cp-camp-page:not(#cp-important) .cp-mb-5 {
  margin-bottom: 40px;
}

.lp .cp-camp-page:not(#cp-important) .cp-mb-6 {
  margin-bottom: 80px;
}

.lp .cp-camp-page:not(#cp-important) .cp-ms-1 {
  margin-left: 5px;
}

.lp .cp-camp-page:not(#cp-important) .cp-ms-3 {
  margin-left: 20px;
}

.lp .cp-camp-page:not(#cp-important) .cp-p-1 {
  padding: 5px;
}

.lp .cp-camp-page:not(#cp-important) .cp-p-2 {
  padding: 10px;
}

.lp .cp-camp-page:not(#cp-important) .cp-p-3 {
  padding: 20px;
}

.lp .cp-camp-page:not(#cp-important) .cp-p-4 {
  padding: 30px;
}

.lp .cp-camp-page:not(#cp-important) .cp-p-5 {
  padding: 40px;
}

.lp .cp-camp-page:not(#cp-important) .cp-px-0 {
  padding-right: 0;
  padding-left: 0;
}

.lp .cp-camp-page:not(#cp-important) .cp-px-1 {
  padding-right: 5px;
  padding-left: 5px;
}

.lp .cp-camp-page:not(#cp-important) .cp-px-2 {
  padding-right: 10px;
  padding-left: 10px;
}

.lp .cp-camp-page:not(#cp-important) .cp-px-3 {
  padding-right: 20px;
  padding-left: 20px;
}

.lp .cp-camp-page:not(#cp-important) .cp-px-4 {
  padding-right: 30px;
  padding-left: 30px;
}

.lp .cp-camp-page:not(#cp-important) .cp-px-5 {
  padding-right: 40px;
  padding-left: 40px;
}

.lp .cp-camp-page:not(#cp-important) .cp-px-6 {
  padding-right: 80px;
  padding-left: 80px;
}

.lp .cp-camp-page:not(#cp-important) .cp-py-2 {
  padding-top: 10px;
  padding-bottom: 10px;
}

.lp .cp-camp-page:not(#cp-important) .cp-py-3 {
  padding-top: 20px;
  padding-bottom: 20px;
}

.lp .cp-camp-page:not(#cp-important) .cp-py-4 {
  padding-top: 30px;
  padding-bottom: 30px;
}

.lp .cp-camp-page:not(#cp-important) .cp-py-5 {
  padding-top: 40px;
  padding-bottom: 40px;
}

.lp .cp-camp-page:not(#cp-important) .cp-py-6 {
  padding-top: 80px;
  padding-bottom: 80px;
}

.lp .cp-camp-page:not(#cp-important) .cp-pt-0 {
  padding-top: 0;
}

.lp .cp-camp-page:not(#cp-important) .cp-pt-2 {
  padding-top: 10px;
}

.lp .cp-camp-page:not(#cp-important) .cp-pt-3 {
  padding-top: 20px;
}

.lp .cp-camp-page:not(#cp-important) .cp-pt-4 {
  padding-top: 30px;
}

.lp .cp-camp-page:not(#cp-important) .cp-pt-5 {
  padding-top: 40px;
}

.lp .cp-camp-page:not(#cp-important) .cp-pt-6 {
  padding-top: 80px;
}

.lp .cp-camp-page:not(#cp-important) .cp-pe-4 {
  padding-right: 30px;
}

.lp .cp-camp-page:not(#cp-important) .cp-pb-1 {
  padding-bottom: 5px;
}

.lp .cp-camp-page:not(#cp-important) .cp-pb-2 {
  padding-bottom: 10px;
}

.lp .cp-camp-page:not(#cp-important) .cp-pb-3 {
  padding-bottom: 20px;
}

.lp .cp-camp-page:not(#cp-important) .cp-pb-4 {
  padding-bottom: 30px;
}

.lp .cp-camp-page:not(#cp-important) .cp-pb-5 {
  padding-bottom: 40px;
}

.lp .cp-camp-page:not(#cp-important) .cp-pb-6 {
  padding-bottom: 80px;
}

.lp .cp-camp-page:not(#cp-important) .cp-ps-0 {
  padding-left: 0;
}

.lp .cp-camp-page:not(#cp-important) .cp-ps-2 {
  padding-left: 10px;
}

.lp .cp-camp-page:not(#cp-important) .cp-ps-4 {
  padding-left: 30px;
}

.lp .cp-camp-page:not(#cp-important) .cp-fw-bold {
  font-weight: 700;
}

.lp .cp-camp-page:not(#cp-important) .cp-text-start {
  text-align: left;
}

.lp .cp-camp-page:not(#cp-important) .cp-text-center {
  text-align: center;
}

.lp .cp-camp-page .cp-text-info {
  --cp-text-opacity: 1;
}

.lp .cp-camp-page:not(#cp-important) .cp-text-info {
  color: rgba(var(--cp-info-rgb), var(--cp-text-opacity));
}

.lp .cp-camp-page .cp-text-white {
  --cp-text-opacity: 1;
}

.lp .cp-camp-page:not(#cp-important) .cp-text-white {
  color: rgba(var(--cp-white-rgb), var(--cp-text-opacity));
}

.lp .cp-camp-page .cp-bg-light {
  --cp-bg-opacity: 1;
}

.lp .cp-camp-page:not(#cp-important) .cp-bg-light {
  background-color: rgba(var(--cp-light-rgb), var(--cp-bg-opacity));
}

.lp .cp-camp-page .cp-bg-white {
  --cp-bg-opacity: 1;
}

.lp .cp-camp-page:not(#cp-important) .cp-bg-white {
  background-color: rgba(var(--cp-white-rgb), var(--cp-bg-opacity));
}

.lp .cp-camp-page:not(#cp-important) .cp-rounded {
  border-radius: var(--cp-border-radius);
}

.lp .cp-camp-page:not(#cp-important) .cp-rounded-circle {
  border-radius: 50%;
}

@media (min-width: 576px) {
  .lp .cp-camp-page:not(#cp-important) .cp-d-sm-block {
    display: block;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-d-sm-none {
    display: none;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-mt-sm-3 {
    margin-top: 20px;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-mt-sm-4 {
    margin-top: 30px;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-px-sm-3 {
    padding-right: 20px;
    padding-left: 20px;
  }
}

@media (min-width: 768px) {
  .lp .cp-camp-page:not(#cp-important) .cp-d-md-inline {
    display: inline;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-d-md-inline-block {
    display: inline-block;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-d-md-block {
    display: block;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-d-md-table {
    display: table;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-d-md-none {
    display: none;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-justify-content-md-center {
    justify-content: center;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-order-md-first {
    order: -1;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-order-md-5 {
    order: 5;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-order-md-last {
    order: 6;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-mt-md-2 {
    margin-top: 10px;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-mt-md-4 {
    margin-top: 30px;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-mb-md-4 {
    margin-bottom: 30px;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-p-md-5 {
    padding: 40px;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-px-md-3 {
    padding-right: 20px;
    padding-left: 20px;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-px-md-6 {
    padding-right: 80px;
    padding-left: 80px;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-py-md-2 {
    padding-top: 10px;
    padding-bottom: 10px;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-py-md-3 {
    padding-top: 20px;
    padding-bottom: 20px;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-py-md-5 {
    padding-top: 40px;
    padding-bottom: 40px;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-py-md-6 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-pt-md-2 {
    padding-top: 10px;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-pt-md-5 {
    padding-top: 40px;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-pe-md-6 {
    padding-right: 80px;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-pb-md-4 {
    padding-bottom: 30px;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-pb-md-5 {
    padding-bottom: 40px;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-ps-md-6 {
    padding-left: 80px;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-text-md-start {
    text-align: left;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-text-md-end {
    text-align: right;
  }
}

@media (min-width: 992px) {
  .lp .cp-camp-page:not(#cp-important) .cp-d-lg-block {
    display: block;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-d-lg-none {
    display: none;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-px-lg-5 {
    padding-right: 40px;
    padding-left: 40px;
  }
  .lp .cp-camp-page:not(#cp-important) .cp-ps-lg-6 {
    padding-left: 80px;
  }
}

.lp .cp-camp-page .cp-img-overlay {
  padding: 0;
}

.lp .cp-camp-page .cp-bg-cover {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}

.lp .cp-camp-page h1,
.lp .cp-camp-page .cp-h1 {
  font-weight: bold;
  font-size: 48px;
  line-height: 56px;
}

.lp .cp-camp-page h2,
.lp .cp-camp-page .cp-h2,
.lp .cp-camp-page div:where(.cp-h2-m) {
  font-weight: bold;
  font-size: 36px;
  line-height: 48px;
}

.lp .cp-camp-page h3,
.lp .cp-camp-page .cp-h3 {
  font-weight: bold;
  font-size: 24px;
  line-height: 32px;
}

.lp .cp-camp-page p {
  font-size: 18px;
  line-height: 28px;
}

@media (max-width: 575.98px) {
  .lp .cp-camp-page h1,
  .lp .cp-camp-page .cp-h1 {
    font-size: 36px;
    line-height: 48px;
  }
  .lp .cp-camp-page h2,
  .lp .cp-camp-page .cp-h2,
  .lp .cp-camp-page div:where(.cp-h2-m) {
    font-size: 24px;
    line-height: 32px;
  }
  .lp .cp-camp-page h3,
  .lp .cp-camp-page .cp-h3 {
    font-size: 20px;
    line-height: 26px;
  }
  .lp .cp-camp-page p {
    font-size: 16px;
    line-height: 28px;
  }
}

.lp .cp-camp-page .cp-card-circle-tag {
  position: absolute;
  bottom: 0;
  right: 15px;
  width: 65px;
  height: 65px;
  text-align: center;
  line-height: 14px;
  transform: translate(0, 50%);
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 14px;
  line-height: 1.2;
  border-radius: 50%;
}

.lp .cp-camp-page table.cp-schedule {
  width: 100%;
}

.lp .cp-camp-page table.cp-schedule tbody {
  border-bottom: 4px solid #dee2e6;
  vertical-align: top;
}

.lp .cp-camp-page table.cp-schedule td,
.lp .cp-camp-page table.cp-schedule th {
  border: 2px solid #dee2e6;
  padding: 10px;
}

.lp .cp-camp-page table.cp-schedule td strong,
.lp .cp-camp-page table.cp-schedule th strong {
  color: #0b2e44;
}

.lp .cp-camp-page table.cp-schedule tr td:first-child {
  width: 110px;
  vertical-align: top;
}

.lp .cp-camp-page table.cp-schedule-mobile td[colspan="2"] {
  text-align: center;
  font-size: 1.1rem;
  font-weight: bold;
  background-color: #e9e9ea;
}

.lp .cp-camp-page table.cp-schedule-desktop td[colspan="4"] {
  vertical-align: middle;
  text-align: center;
}

.lp .cp-camp-page table.cp-schedule-desktop th {
  text-align: center;
  font-weight: bold;
  font-size: 1.1rem;
  background-color: #e9e9ea;
}

.lp .cp-camp-page .cp-btn-orange {
  color: #2D2E32;
}

.lp .cp-camp-page .cp-bg-cover {
  background-size: cover;
  background-position: center;
}

/* 紅線：亮橘不當淺底文字色（2026-10-25）。強調字改深墨＋亮橘螢光底，同 about 的 .hl-mark */
.lp .cp-camp-page:not(#cp-important) .cp-text-orange {
  color: #2D2E32;
  font-weight: 700;
  background: linear-gradient(180deg, transparent 55%, rgba(255, 163, 0, 0.5) 55%);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.lp .cp-camp-page:not(#cp-important) .cp-text-red {
  color: #ff5959;
}

.lp .cp-camp-page:not(#cp-important) .cp-bg-red {
  background-color: #ff5959;
}

.lp .cp-camp-page:not(#cp-important) .cp-bg-orange {
  background-color: #FFA300;
}

/* 品牌亮橘 #FFA300 一律配深墨 #2D2E32，不配白字；權重高於 .cp-text-white */
.lp .cp-camp-page:not(#cp-important) .cp-btn-orange.cp-text-white,
.lp .cp-camp-page:not(#cp-important) .cp-bg-orange.cp-text-white {
  color: #2D2E32;
}

/* 紅底白字試聽鈕：白配 #FF5959 只有 3.08:1，要粗體 ≥18.66px 才過大字門檻（OA_DESIGN 427 行，2026-10-29 健檢 #9）。不改深墨字、不加深紅 */
.lp .cp-camp-page .cp-btn.cp-btn-red {
  color: #ffffff;
  background-color: #ff5959;
  border-color: #ff5959;
  font-weight: 700;
}

@media (hover: hover) and (pointer: fine) {
      .lp .cp-camp-page .cp-btn.cp-btn-red:hover {
  color: #ffffff;
  background-color: #ff3333;
  border-color: #ff2626;
}
    }

.lp .cp-camp-page .cp-btn.cp-btn-orange {
  color: #2D2E32;
  background-color: #FFA300;
  border-color: #FFA300;
}

@media (hover: hover) and (pointer: fine) {
      .lp .cp-camp-page .cp-btn.cp-btn-orange:hover {
  color: #2D2E32;
  background-color: #FFA300;
  border-color: #2D2E32;
}
    }

/* 青綠底只用在「看詳情」這類連結（不是試聽鈕）：白字對比 2.20 不過，改深墨粗體（2026-10-29 健檢 #9） */
.lp .cp-camp-page .cp-btn.cp-btn-green,
.lp .cp-camp-page .cp-btn-green {
  color: #2D2E32;
  background-color: #00c4b3;
  border-color: #00c4b3;
  font-weight: 700;
}

@media (hover: hover) and (pointer: fine) {
      .lp .cp-camp-page .cp-btn.cp-btn-green:hover, .lp .cp-camp-page .cp-btn-green:hover {
  color: #2D2E32;
  background-color: #009e90;
  border-color: #009184;
}
    }

.lp .cp-camp-page:not(#cp-important) .cp-bg-red-light {
  background-color: #f6e8e9;
}

.lp .cp-camp-page:not(#cp-important) a.cp-bg-red-light:focus, .lp .cp-camp-page:not(#cp-important) button.cp-bg-red-light:focus {
  background-color: #e8c3c6;
}
    @media (hover: hover) and (pointer: fine) {
      .lp .cp-camp-page:not(#cp-important) a.cp-bg-red-light:hover, .lp .cp-camp-page:not(#cp-important) button.cp-bg-red-light:hover {
  background-color: #e8c3c6;
}
    }

.lp .cp-camp-page:not(#cp-important) .cp-text-green-dark {
  color: #074746;
}

.lp .cp-camp-page:not(#cp-important) a.cp-text-green-dark:focus {
  color: #000101;
}
    @media (hover: hover) and (pointer: fine) {
      .lp .cp-camp-page:not(#cp-important) a.cp-text-green-dark:hover {
  color: #000101;
}
    }

.lp .cp-camp-page:not(#cp-important) .cp-text-orange-fade {
  color: #fcbd4d;
}

.lp .cp-camp-page:not(#cp-important) a.cp-text-orange-fade:focus {
  color: #f8a004;
}
    @media (hover: hover) and (pointer: fine) {
      .lp .cp-camp-page:not(#cp-important) a.cp-text-orange-fade:hover {
  color: #f8a004;
}
    }

.lp .cp-camp-page:not(#cp-important) .cp-text-blue-deep {
  color: #2e6587;
}

.lp .cp-camp-page:not(#cp-important) a.cp-text-blue-deep:focus {
  color: #1b3a4e;
}
    @media (hover: hover) and (pointer: fine) {
      .lp .cp-camp-page:not(#cp-important) a.cp-text-blue-deep:hover {
  color: #1b3a4e;
}
    }

.lp .cp-camp-page:not(#cp-important) .cp-bg-orange-light {
  background-color: #fef2e1;
}

.lp .cp-camp-page:not(#cp-important) a.cp-bg-orange-light:focus, .lp .cp-camp-page:not(#cp-important) button.cp-bg-orange-light:focus {
  background-color: #fcddb0;
}
    @media (hover: hover) and (pointer: fine) {
      .lp .cp-camp-page:not(#cp-important) a.cp-bg-orange-light:hover, .lp .cp-camp-page:not(#cp-important) button.cp-bg-orange-light:hover {
  background-color: #fcddb0;
}
    }

/* 9 支營隊頁共用的區塊（產生器輸出的 FAQ、其他營隊，與搬家時改寫的設備需求、收單按鈕、我想報名）。
   🔴 品牌紅線：亮橘 #FFA300 對白底的對比度不足，不能拿來當文字色；
      連結一律用深墨 #2D2E32，只有 → 箭頭與 hover 底線用橘。 */

/* 「其他營隊」內鏈區塊：放在每頁最尾端，樣式刻意做得樸素，才不會跟各頁自己的視覺打架。 */
.lp .cp-camp-page .cp-other-camps {
  background: #fff;
  border-top: 1px solid #e8e5e0;
  padding: 2.5rem 1rem 3rem;
  font-family: "Noto Sans TC", system-ui, sans-serif;
  color: #2D2E32;
}
.lp .cp-camp-page .cp-other-camps .cp-oc-inner { max-width: 900px; margin: 0 auto; }
.lp .cp-camp-page .cp-other-camps h3 { font-size: 1.25rem; font-weight: 700; margin: 0 0 .35rem; color: #2D2E32; }
.lp .cp-camp-page .cp-other-camps .cp-oc-lead { font-size: .95rem; color: #55565a; margin: 0 0 1.1rem; }
.lp .cp-camp-page .cp-other-camps ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
@media (min-width: 768px) { .lp .cp-camp-page .cp-other-camps ul { grid-template-columns: 1fr 1fr; gap: .55rem 2rem; } }
.lp .cp-camp-page .cp-other-camps li { display: flex; align-items: baseline; gap: .5rem; border-bottom: 1px dotted #e0ddd8; padding-bottom: .5rem; }
.lp .cp-camp-page .cp-other-camps a { color: #2D2E32; text-decoration: none; font-weight: 600; }
.lp .cp-camp-page .cp-other-camps a::before { content: "→"; color: #FFA300; margin-right: .4rem; font-weight: 700; }
@media (hover: hover) and (pointer: fine) {
      .lp .cp-camp-page .cp-other-camps a:hover { text-decoration: underline; text-decoration-color: #FFA300; }
    }
.lp .cp-camp-page .cp-other-camps .cp-oc-grade { font-size: .85rem; color: #6b6c70; margin-left: auto; white-space: nowrap; }

/* 內文裡的情境連結（例如財商頁提到積木時順手連到小小創客營）。
   刻意做得像補充說明，不跟該頁自己的主文案搶顏色。 */
.lp .cp-camp-page p.cp-oc-note {
  font-size: .95em;
  color: #55565a;
  margin-top: .6rem;
  padding-left: .8rem;
  border-left: 3px solid #FFA300;
}
.lp .cp-camp-page p.cp-oc-note a { color: #2D2E32; font-weight: 700; text-decoration: underline; text-decoration-color: #FFA300; }

/* 有些頁的主標題本身就是一張圖（例如 gai）。把圖包成 h1 讓它有標題語意，
   alt 就是畫面上看得到的字。h1 預設的字級與邊距要歸零，否則會把原本的版面撐開。 */
.lp .cp-camp-page .cp-title-h1 { margin: 0; padding: 0; font-size: inherit; line-height: inherit; }

/* 常見問題。用 <details>／<summary> 是刻意的：答案的文字就是 FAQPage schema 的文字
   （同一份 JSON 產生），畫面與結構化資料逐字相同才不會被判成 cloaking。 */
.lp .cp-camp-page .cp-faq {
  background: #faf9f7;
  border-top: 1px solid #e8e5e0;
  padding: 2.5rem 1rem;
  font-family: "Noto Sans TC", system-ui, sans-serif;
  color: #2D2E32;
}
.lp .cp-camp-page .cp-faq-inner { max-width: 820px; margin: 0 auto; }
.lp .cp-camp-page .cp-faq h2,
.lp .cp-camp-page .cp-faq div:where(.cp-h2-m) { font-size: 1.4rem; font-weight: 700; margin: 0 0 1.2rem; color: #2D2E32; text-align: center; }
.lp .cp-camp-page .cp-faq-item { border-bottom: 1px solid #e3e0da; }
.lp .cp-camp-page .cp-faq-item summary {
  cursor: pointer;
  list-style: none;
  padding: .95rem .5rem .95rem 1.9rem;
  font-weight: 700;
  font-size: 1.02rem;
  position: relative;
}
.lp .cp-camp-page .cp-faq-item summary::-webkit-details-marker { display: none; }
.lp .cp-camp-page .cp-faq-item summary::before { content: "＋"; position: absolute; left: .3rem; color: #FFA300; font-weight: 700; }
.lp .cp-camp-page .cp-faq-item[open] summary::before { content: "－"; }
@media (hover: hover) and (pointer: fine) {
      .lp .cp-camp-page .cp-faq-item summary:hover { text-decoration: underline; text-decoration-color: #FFA300; }
    }
.lp .cp-camp-page .cp-faq-a { padding: 0 .5rem 1.1rem 1.9rem; }
.lp .cp-camp-page .cp-faq-a p { margin: 0 0 .6rem; font-size: .96rem; line-height: 1.85; color: #45464a; }
.lp .cp-camp-page .cp-faq-a p:last-child { margin-bottom: 0; }

/* 設備需求：官網原本是 Bootstrap modal，這裡改成 <details>，沒有 JS 也打得開 */
.lp .cp-camp-page .cp-sysreq { margin: .25rem 0; }
.lp .cp-camp-page .cp-sysreq > summary { cursor: pointer; display: inline-flex; align-items: center; gap: 4px; min-height: 44px; list-style: none; } /* 可點高度 44px（2026-10-27 手機檢查；原本 inline 只有 25px） */
.lp .cp-camp-page .cp-sysreq > summary:focus-visible { outline: 2px solid #2D2E32; outline-offset: 2px; }
.lp .cp-camp-page .cp-sysreq > summary::-webkit-details-marker { display: none; }
.lp .cp-camp-page .cp-sysreq > summary::after { content: " ▾"; }
.lp .cp-camp-page .cp-sysreq[open] > summary::after { content: " ▴"; }
.lp .cp-camp-page .cp-sysreq-body {
  margin-top: .75rem;
  padding: 1rem 1.25rem;
  border: 1px solid #e3e0da;
  border-radius: .5rem;
  background: #fff;
  color: #4d4d4d;
  text-align: left;
}
.lp .cp-camp-page .cp-sysreq-title { font-size: 1.1rem; font-weight: 700; margin: 0 0 .25rem; }

/* 收單：官網原本頁內有一張留單表單，改成按鈕打開官網的收單表單 */
.lp .cp-camp-page .cp-form-cta { padding: 1.5rem 0; text-align: center; }
.lp .cp-camp-page .cp-btn-form-cta { min-width: 14rem; }

/* 官網原本是 <a> 的收單連結改成 <button> 了：先把瀏覽器給按鈕的預設外觀拿掉。
   用 :where() 把權重壓到最低，.cp-btn 這些按鈕樣式才蓋得過去 */
.lp .cp-camp-page :where(button) {
  appearance: none;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  cursor: pointer;
}

/* 原本是點了會開 Bootstrap modal 的圖片（span 包著），改成 button 後把按鈕外觀拿掉 */
.lp .cp-camp-page .cp-cta-plain {
  display: inline-block;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  cursor: pointer;
}

/* 我想報名（<oa-camp-signup>）：外觀由官網提供，這裡只給外層區塊寬度與間距。
   它不在 .cp-camp-page 裡面，營隊頁的標題、表格樣式不會套到它身上。 */
.lp .cp-signup {
  box-sizing: border-box;
  max-width: 1140px;
  margin: 0 auto;
  padding: 2rem 12px 3rem;
  /* 從頁面其他地方跳到 #signup 時，開頭不要被官網的固定 header 蓋住 */
  scroll-margin-top: var(--oa-header-offset, 0);
  /* 字型、字級由官網決定（合約：外層只決定背景與間距） */
}

/* 防溢出：Bootstrap 的 .row 左右各有負邊距，靠外層 .container 的 padding 抵銷；
   原始碼有幾個 .row 不在 .container 裡（python 頁是 class 拼成 cotainer），桌機會超出 14px、手機 24px。
   clip 不會變成捲動容器；不支援 clip 的舊瀏覽器用前一行的 hidden。 */
.lp .cp-camp-page { overflow-x: hidden; overflow-x: clip; }
@media (max-width: 767.98px) {
  .lp .cp-camp-page img,
  .lp .cp-camp-page video { max-width: 100%; }
  .lp .cp-camp-page iframe { max-width: 100%; height: auto; aspect-ratio: 16 / 9; }
}

/* 定義段（內文的 DEFINITION 參數）：首屏正下方一句話講清楚「什麼營隊、幾年級、線上或實體、學什麼」，AI 擷取答案最常拿這段 */
.lp .cp-camp-page .cp-definition { position: relative; padding: 28px 16px; }
.lp .cp-camp-page .cp-definition p { max-width: 760px; margin: 0 auto; font-size: 18px; line-height: 1.75; color: #2d2e32; text-align: center; }
.lp .cp-camp-page .cp-definition a,
.lp .cp-camp-page a.cp-text-link { color: #2D2E32; font-weight: 700; text-decoration: underline; text-decoration-color: #FFA300; text-underline-offset: 3px; }
/* 深色底上的文字連結 */
.lp .cp-camp-page a.cp-text-link-light { color: inherit; font-weight: 700; text-decoration: underline; text-decoration-color: #FFA300; text-underline-offset: 3px; }

/* 全站影片統一樣式（2026-10-27；figure.lp-vid.lp-vid 是為了蓋過 .op-row > * 的寬度）：最寬 880px、16:9、圓角 16px、1px 淺灰框；先放縮圖，點了才載入 YouTube */
.lp figure.lp-vid.lp-vid { width: 100%; max-width: 880px; margin: 0 auto; padding: 0; flex: 0 1 auto; }
.lp .lp-vid-frame { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 16px; border: 1px solid #E5E5E5; background: #111; cursor: pointer; }
.lp .lp-vid-frame img, .lp .lp-vid-frame iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; margin: 0; border: 0; object-fit: cover; }
.lp .lp-vid-play { position: absolute; left: 50%; top: 50%; width: 68px; height: 48px; transform: translate(-50%, -50%); border-radius: 12px; background: rgba(33, 33, 33, 0.82); transition: background-color 0.2s ease; }
.lp .lp-vid-play::after { content: ""; position: absolute; left: 27px; top: 14px; border-style: solid; border-width: 10px 0 10px 17px; border-color: transparent transparent transparent #fff; }
@media (hover: hover) and (pointer: fine) {
  .lp .lp-vid-frame:hover .lp-vid-play { background: #FF0000; }
}
.lp .lp-vid-frame:focus-visible { outline: 3px solid #2D2E32; outline-offset: 3px; }
.lp .lp-vid-cap { margin: 10px 0 0; font-size: 14px; line-height: 1.6; color: inherit; opacity: 0.85; text-align: center; }
@media (max-width: 575.98px) {
  .lp figure.lp-vid.lp-vid { max-width: calc(100vw - 32px); }
}

/* 其他營隊清單：整行好點（原本可點高度只有 27px，2026-10-27 手機檢查） */
.lp .cp-camp-page .cp-other-camps a { display: inline-flex; align-items: center; min-height: 44px; }

/* 手機課表分天收合（2026-10-27 內容層次第一批；產生器 splitScheduleByDay 輸出）：外觀照原本的「第X天」標題列，第一天預設展開 */
.lp .cp-camp-page .cp-sched-days { width: 100%; text-align: start; }
.lp .cp-camp-page .cp-sched-day + .cp-sched-day { margin-top: 8px; }
.lp .cp-camp-page .cp-sched-sum { list-style: none; position: relative; display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 44px; border: 2px solid #dee2e6; background-color: #e9e9ea; color: #2D2E32; font-size: 1.1rem; font-weight: bold; text-align: center; cursor: pointer; }
.lp .cp-camp-page .cp-sched-sum::-webkit-details-marker { display: none; }
.lp .cp-camp-page .cp-sched-sum::after { content: "+"; position: absolute; right: 14px; top: 50%; width: 24px; margin-top: -13px; font-size: 26px; line-height: 26px; font-weight: 400; text-align: center; transition: transform .2s ease; }
.lp .cp-camp-page .cp-sched-day[open] > .cp-sched-sum::after { transform: rotate(45deg); }
.lp .cp-camp-page .cp-sched-sum:focus-visible { outline: 2px solid #2D2E32; outline-offset: 2px; }
.lp .cp-camp-page .cp-sched-day > table { width: 100%; margin: 0; }
@media (prefers-reduced-motion: reduce) { .lp .cp-camp-page .cp-sched-sum::after { transition: none; } }

/* 延伸了解元件 lp-ext（2026-10-28，從 /camps 總覽頁 index.html 的同名段整段複製；說明見 README「延伸了解元件」）
   原生 details，預設收起；只用上下 1px 細線，不加外框、不加陰影。顏色照 OA_DESIGN：深墨 #2D2E32、亮橘只當底線 */
.lp .lp-ext-wrap { box-sizing: border-box; max-width: 1140px; margin: 0 auto; padding: 72px 24px 80px; }
.lp .lp-ext { border-top: 1px solid #E6E2DA; border-bottom: 1px solid #E6E2DA; color: #2D2E32; text-align: start; }
.lp .lp-ext .lp-ext-sum { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 26px 0; cursor: pointer; }
.lp .lp-ext .lp-ext-sum::-webkit-details-marker { display: none; }
.lp .lp-ext, .lp .lp-ext[open], .lp .lp-ext:focus, .lp .lp-ext:focus-visible { outline: none; box-shadow: none; } .lp .lp-ext .lp-ext-sum:focus:not(:focus-visible) { outline: none; box-shadow: none; }
.lp .lp-ext .lp-ext-sum:focus-visible { outline: 2px solid #2D2E32; outline-offset: 4px; border-radius: 4px; }
.lp .lp-ext .lp-ext-eyebrow { display: block; font-size: 13px; line-height: 1.4; letter-spacing: 0.14em; font-weight: 700; color: #5B616D; }
.lp .lp-ext .lp-ext-title { display: block; margin-top: 6px; font-size: 20px; line-height: 1.45; font-weight: 900; color: #2D2E32; }
.lp .lp-ext .lp-ext-icon { flex: 0 0 40px; display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid #E6E2DA; border-radius: 50%; font-size: 20px; line-height: 1; color: #2D2E32; }
.lp .lp-ext .lp-ext-icon::before { content: "+"; }
.lp .lp-ext[open] .lp-ext-icon::before { content: "×"; }
.lp .lp-ext .lp-ext-body { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 56px; padding: 12px 0 48px; }
.lp .lp-ext .lp-ext-side-lab { margin: 0; padding-top: 6px; font-size: 13px; line-height: 1.4; letter-spacing: 0.14em; font-weight: 700; color: #5B616D; }
.lp .lp-ext .lp-ext-side-txt { margin: 10px 0 0; font-size: 15px; line-height: 1.7; font-weight: 500; color: #2D2E32; }
.lp .lp-ext .lp-ext-p { margin: 0 0 20px; font-size: 16px; line-height: 1.9; color: #45474d; }
.lp .lp-ext .lp-ext-h { margin: 36px 0 12px; font-size: 20px; line-height: 1.45; font-weight: 900; color: #2D2E32; }
.lp .lp-ext .lp-ext-main a:not(.lp-ext-rd), .lp .lp-ext .lp-ext-main a:not(.lp-ext-rd):visited { color: #2D2E32; text-decoration: underline; text-decoration-color: #FFA300; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.lp .lp-ext .lp-ext-main a:focus-visible { outline: 2px solid #2D2E32; outline-offset: 2px; border-radius: 3px; }
.lp .lp-ext .lp-ext-lab { margin: 44px 0 0; font-size: 13px; line-height: 1.4; letter-spacing: 0.14em; font-weight: 700; color: #5B616D; }
.lp .lp-ext .lp-ext-reads { list-style: none; margin: 16px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.lp .lp-ext .lp-ext-reads li { margin: 0; padding: 0; display: flex; }
.lp .lp-ext .lp-ext-rd, .lp .lp-ext .lp-ext-rd:visited { box-sizing: border-box; display: flex; flex-direction: column; width: 100%; min-height: 150px; padding: 20px 20px 18px; border-radius: 14px; background: #FAF9F6; color: #2D2E32; text-decoration: none; }
.lp .lp-ext .lp-ext-rd-cat { font-size: 12px; line-height: 1.4; letter-spacing: 0.14em; font-weight: 700; color: #5B616D; }
.lp .lp-ext .lp-ext-rd-title { margin: 10px 0 14px; font-size: 16px; line-height: 1.6; font-weight: 800; color: #2D2E32; }
.lp .lp-ext .lp-ext-rd-go { margin-top: auto; font-size: 13.5px; line-height: 1.4; font-weight: 700; color: #2D2E32; }
.lp .lp-ext .lp-ext-rd-arrow { display: inline-block; transition: transform 0.2s ease; }
@media (hover: hover) and (pointer: fine) {
  .lp .lp-ext .lp-ext-rd:hover { color: #2D2E32; }
  .lp .lp-ext .lp-ext-rd:hover .lp-ext-rd-arrow { transform: translateX(4px); }
}
@media (prefers-reduced-motion: reduce) {
  .lp .lp-ext .lp-ext-rd-arrow { transition: none; }
  .lp .lp-ext .lp-ext-rd:hover .lp-ext-rd-arrow { transform: none; }
}
@media (max-width: 767.98px) {
  .lp .lp-ext-wrap { padding: 48px 16px 56px; }
  .lp .lp-ext .lp-ext-sum { padding: 20px 0; }
  .lp .lp-ext .lp-ext-title { font-size: 18px; }
  .lp .lp-ext .lp-ext-body { grid-template-columns: 1fr; gap: 16px; padding-bottom: 36px; }
  .lp .lp-ext .lp-ext-h { margin-top: 28px; }
  .lp .lp-ext .lp-ext-lab { margin-top: 32px; }
  .lp .lp-ext .lp-ext-reads { grid-template-columns: 1fr; gap: 12px; }
  .lp .lp-ext .lp-ext-rd, .lp .lp-ext .lp-ext-rd:visited { min-height: 0; }
}

/* 引用句小字註腳（2026-10-28 保旭：只有 1～2 句引用句的頁不用 lp-ext，改放在原段落或區塊最後；寫法同全站 .lp-src）
   :not(#cp-important) 是為了贏過各頁 .cp-section… p { color: white } 這類較長的 selector */
.lp .cp-camp-page .cp-src:not(#cp-important) { margin: 8px 0 0; font-size: 14px; line-height: 1.7; font-weight: 400; color: #5B616D; }
.lp .cp-camp-page .cp-src:not(#cp-important) a, .lp .cp-camp-page .cp-src:not(#cp-important) a:visited { color: #5B616D; font-weight: 400; text-decoration: underline; text-decoration-color: currentColor; text-underline-offset: 3px; }
.lp .cp-camp-page .cp-src.cp-src-light:not(#cp-important), .lp .cp-camp-page .cp-src.cp-src-light:not(#cp-important) a, .lp .cp-camp-page .cp-src.cp-src-light:not(#cp-important) a:visited { color: rgba(255,255,255,.85); }
.lp .cp-camp-page .cp-src-def { max-width: 760px; margin: -16px auto 0; padding: 0 16px 20px; text-align: center; }

/* 鍵盤焦點框（2026-10-29 健檢 #10）：試聽鈕、收單鈕、連結按 Tab 時一定看得到。
   3px 深墨外框＋白色內圈，深色或圖片背景上也看得到；滑鼠點擊不出框（只用 :focus-visible）。
   :not(#cp-important) 讓它蓋過 site.css 舊版 .cp-btn:focus-visible 的 outline: 0。
   「我想報名」<oa-camp-signup> 在 .cp-camp-page 外面，不受影響（官網片段，頁面不上樣式） */
.lp .cp-camp-page:not(#cp-important) a:focus-visible,
.lp .cp-camp-page:not(#cp-important) button:focus-visible,
.lp .cp-camp-page:not(#cp-important) [tabindex="0"]:focus-visible {
  outline: 3px solid #2D2E32;
  outline-offset: 2px;
  box-shadow: 0 0 0 2px #fff;
}

/* 對比修正（2026-10-29 健檢 axe color-contrast）：淺底彩色字改深墨、彩色底白字改深墨或加粗到大字門檻；亮橘不動 */
.lp .cp-camp-page:not(#cp-important):not(#cp-contrast) .cp-text-red { color: #2D2E32; font-weight: 700; }

/* 視覺隱藏文字（2026-10-29 axe empty-table-header）：給報讀軟體讀的表頭，畫面不顯示 */
.lp .cp-camp-page .cp-vh { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* 營隊資訊的「地點」：官網的 <oa-camp-schools>（內文的 CAMP_SCHOOLS 參數），寫法沿用改版前的官網營隊頁：【古亭教室】地址 */
.lp .cp-camp-page .oa-camp-schools { list-style: none; margin: 0 0 .25rem; padding-left: 0; }
.lp .cp-camp-page .oa-camp-school-name::before { content: "【"; }
.lp .cp-camp-page .oa-camp-school-name::after { content: "】"; }
.lp .cp-camp-page a.oa-camp-school-address { color: inherit; text-decoration: underline; text-decoration-color: #FFA300; text-underline-offset: 3px; }

/* 頁尾「同年級還可以看」推薦卡（產生器 otherCampsBlock 輸出，內文的 OTHER_CAMPS 參數）。2026-10-28 保旭核准示意。
   🔴 亮橘 #FFA300 只當「看全部」的底線點綴，不當文字色、不當底色；文字一律深墨 #2D2E32／灰 #5B616D。
   取代 shared.css 舊的 .cp-other-camps 清單（舊規則已沒有元素套用）。 */
.lp .cp-camp-page .cp-more-camps {
  background: #FAF9F6;
  border-top: 1px solid #E6E8EC;
  padding: 3.25rem 1rem 3.5rem;
  font-family: "Noto Sans TC", system-ui, sans-serif;
  color: #2D2E32;
  text-align: start;
}
.lp .cp-camp-page .cp-mc-inner { max-width: 1072px; margin: 0 auto; }
.lp .cp-camp-page .cp-mc-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.25rem; margin-bottom: 1.5rem; }
.lp .cp-camp-page .cp-mc-eyebrow { margin: 0 0 .5rem; font-size: .72rem; font-weight: 700; letter-spacing: .14em; line-height: 1.3; color: #5B616D; }
/* 標題加 :not(#cp-important)：有些頁（minecraft）用同樣權重把 section h2 改成綠色、行高 2rem */
.lp .cp-camp-page:not(#cp-important) .cp-more-camps .cp-mc-title { margin: 0; font-size: 1.65rem; font-weight: 800; line-height: 1.3; color: #2D2E32; }
.lp .cp-camp-page .cp-mc-lead { margin: .45rem 0 0; font-size: .85rem; line-height: 1.6; color: #5B616D; }
.lp .cp-camp-page .cp-mc-all {
  display: inline-block; padding: .55rem 0; flex-shrink: 0;
  font-size: .85rem; font-weight: 800; white-space: nowrap; color: #2D2E32;
  text-decoration: underline; text-decoration-color: #FFA300; text-decoration-thickness: 2px; text-underline-offset: 6px;
}
.lp .cp-camp-page .cp-mc-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; }
.lp .cp-camp-page .cp-mc-item { display: flex; margin: 0; }
.lp .cp-camp-page .cp-mc-card {
  display: flex; flex-direction: column; width: 100%;
  background: #fff; border: 1px solid #E6E8EC; border-radius: 16px; overflow: hidden;
  color: #2D2E32; text-decoration: none;
}
.lp .cp-camp-page .cp-mc-img { display: block; width: 100%; height: 150px; max-width: none; object-fit: cover; background: #F1EFEA; }
.lp .cp-camp-page .cp-mc-body { display: flex; flex-direction: column; gap: .3rem; flex: 1; padding: 1rem 1.1rem 1.1rem; }
.lp .cp-camp-page .cp-mc-grade { font-size: .72rem; font-weight: 700; color: #5B616D; }
.lp .cp-camp-page .cp-mc-name { font-size: 1.05rem; font-weight: 800; line-height: 1.4; }
.lp .cp-camp-page .cp-mc-desc { font-size: .8rem; line-height: 1.7; color: #45474D; }
.lp .cp-camp-page .cp-mc-go { margin-top: auto; padding-top: .55rem; font-size: .78rem; font-weight: 800; }
.lp .cp-camp-page .cp-mc-arrow { display: inline-block; }
.lp .cp-camp-page .cp-mc-card:focus-visible,
.lp .cp-camp-page .cp-mc-all:focus-visible { outline: 2px solid #2D2E32; outline-offset: 3px; }
@media (hover: hover) and (pointer: fine) {
  .lp .cp-camp-page .cp-mc-card:hover { border-color: #C9CDD4; }
  .lp .cp-camp-page .cp-mc-card:hover .cp-mc-name { text-decoration: underline; text-decoration-color: #FFA300; text-underline-offset: 4px; }
}
@media (prefers-reduced-motion: no-preference) {
  .lp .cp-camp-page .cp-mc-arrow { transition: transform .2s ease; }
  .lp .cp-camp-page .cp-mc-card:hover .cp-mc-arrow,
  .lp .cp-camp-page .cp-mc-card:focus-visible .cp-mc-arrow { transform: translateX(4px); }
}
/* 只有 1 張推薦卡：改橫式寬卡（照片左、文字右，約三分之二寬），避免單張直卡太單薄（2026-10-28 保旭） */
@media (min-width: 768px) {
  .lp .cp-camp-page .cp-mc-list--one { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
  .lp .cp-camp-page .cp-mc-list--one .cp-mc-card { flex-direction: row; }
  .lp .cp-camp-page .cp-mc-list--one .cp-mc-img { width: 44%; height: auto; min-height: 100%; flex-shrink: 0; }
  .lp .cp-camp-page .cp-mc-list--one .cp-mc-body { padding: 1.3rem 1.4rem; justify-content: center; }
}
@media (max-width: 767.98px) {
  .lp .cp-camp-page .cp-more-camps { padding: 2.5rem 1rem 2.75rem; }
  .lp .cp-camp-page .cp-mc-head { flex-direction: column; align-items: flex-start; gap: .5rem; margin-bottom: 1.1rem; }
  .lp .cp-camp-page:not(#cp-important) .cp-more-camps .cp-mc-title { font-size: 1.4rem; }
  .lp .cp-camp-page .cp-mc-list { grid-template-columns: 1fr; gap: .85rem; }
  .lp .cp-camp-page .cp-mc-card { flex-direction: row; }
  .lp .cp-camp-page .cp-mc-img { width: 120px; height: auto; min-height: 100%; flex-shrink: 0; }
  .lp .cp-camp-page .cp-mc-body { padding: .9rem 1rem; }
}

/* 這頁自己的樣式：_src/css/gai.css */
.lp .cp-camp-page .cp-join-button {
  font-size: 1.8rem;
  background-color: #FFA300;
  color: #2D2E32;
  padding: 5px 35px;
  border-radius: 10px;
  text-decoration-line: blink;
}

@media (hover: hover) and (pointer: fine) {
      .lp .cp-camp-page .cp-join-button:hover {
  color: #2D2E32;
}
    }

@media (min-width: 100px) {
  .lp .cp-camp-page .cp-section-1 {
    margin-top: 2rem;
  }
  .lp .cp-camp-page .cp-section-1 .cp-container {
    height: 600px;
  }
  .lp .cp-camp-page .cp-section-1 .cp-title-image {
    max-height: 35%;
    max-width: 100%;
    display: inline-block;
    margin-top: 4rem;
  }
  .lp .cp-camp-page .cp-section-1 .cp-title-small {
    color: #fff;
    display: inline-block;
    font-size: 1rem;
  }
  .lp .cp-camp-page .cp-section-1 .cp-title-button {
    background-color: #dbdbdb;
    padding: 3px 10px;
    margin-top: 1.8rem;
    display: inline-block;
    font-size: 1.8rem;
    border-radius: 11px;
    border: 5px solid #fff;
    box-shadow: 0 0 20px rgba(255,255,255,0.8);
    text-decoration-line: blink;
    color: #000;
  }
  .lp .cp-camp-page .cp-section-2 {
    color: #3e008d;
    text-align: center;
  }
  .lp .cp-camp-page .cp-section-2 .cp-section-second-text {
    width: 100%;
  }
  .lp .cp-camp-page .cp-section-3 table {
    width: 100%;
  }
  .lp .cp-camp-page .cp-section-3 td,
  .lp .cp-camp-page .cp-section-3 th {
    border: 2px solid #adadad;
    padding-top: 5px;
    padding-bottom: 5px;
  }
  .lp .cp-camp-page .cp-section-last {
    height: 600px;
  }
  .lp .cp-camp-page .cp-section-last p {
    font-size: 1.2rem;
  }
}

@media (min-width: 768px) {
  .lp .cp-camp-page .cp-section-1 {
    margin-top: 0;
    text-align: center;
    height: 1000px;
  }
  .lp .cp-camp-page .cp-section-1 .cp-title {
    display: inline-block;
    margin-top: 12rem;
    margin-right: 12rem;
    height: 800px;
  }
  .lp .cp-camp-page .cp-section-1 .cp-title .cp-title-image {
    height: 45%;
  }
  .lp .cp-camp-page .cp-section-1 .cp-title .cp-title-small {
    color: #fff;
    display: inline-block;
    font-size: 1.6rem;
  }
  .lp .cp-camp-page .cp-section-1 .cp-title .cp-title-button {
    background-color: #dbdbdb;
    padding: 3px 12px;
    margin-top: 1.8rem;
    display: inline-block;
    font-size: 2.5rem;
    border-radius: 11px;
    border: 5px solid #fff;
    box-shadow: 0 0 20px rgba(255,255,255,0.8);
    text-decoration-line: blink;
    color: #000;
  }
  .lp .cp-camp-page .cp-section-2 {
    color: #3e008d;
    text-align: center;
  }
  .lp .cp-camp-page .cp-section-2 p {
    font-size: 1.2rem;
  }
  .lp .cp-camp-page .cp-section-2 .cp-section-second-text {
    width: 700px;
  }
  .lp .cp-camp-page .cp-section-second-text2 {
    width: 700px;
  }
  .lp .cp-camp-page .cp-section-3 table {
    width: 100%;
  }
  .lp .cp-camp-page .cp-section-3 td,
  .lp .cp-camp-page .cp-section-3 th {
    border: 2px solid #adadad;
    padding-top: 5px;
    padding-bottom: 5px;
  }
  .lp .cp-camp-page .cp-section-last {
    height: 700px;
  }
  .lp .cp-camp-page .cp-section-last p {
    font-size: 1.2rem;
  }
  .lp .cp-camp-page .cp-banner-head {
    width: 300px;
  }
}

@media (min-width: 992px) {
  .lp .cp-camp-page .cp-section-second-text2 {
    width: 850px;
  }
  .lp .cp-camp-page .cp-banner-head {
    width: 350px;
  }
}

@media (min-width: 1200px) {
  .lp .cp-camp-page .cp-section-second-text2 {
    width: 850px;
  }
  .lp .cp-camp-page .cp-banner-head {
    width: 450px;
  }
}

@media (min-width: 1400px) {
  .lp .cp-camp-page .cp-section-second-text2 {
    width: 850px;
  }
  .lp .cp-camp-page .cp-banner-head {
    width: 550px;
  }
}

.lp .cp-camp-page .cp-bg-n-banner-b {
  background-image: url(./assets/n_banner_b.webp);
}

.lp .cp-camp-page .cp-bg-n-second-b {
  background: right 0% / 50% 60% no-repeat url(./assets/n_second_b.webp);
}

.lp .cp-camp-page .cp-bg-n-3-b {
  background-image: url(./assets/n_3_b.webp);
}

.lp .cp-camp-page .cp-bg-n-footer-b {
  background-image: url(./assets/n_footer_b.webp);
}

.lp .cp-camp-page .cp-bg-n-m-banner-b {
  background-image: url(./assets/n_m_banner_b.webp);
}

.lp .cp-camp-page .cp-bg-n-second-b-v2 {
  background: right 0% / 90% 20% no-repeat url(./assets/n_second_b.webp);
}

.lp .cp-camp-page .cp-bg-n-m-footer-b {
  background-image: url(./assets/n_m_footer_b.webp);
}
/* lp-crumb：全站麵包屑（2026-10-27）。左緣對齊官網 header 的 logo（最寬 1296px、內距 28px／手機 18px）；底色＝本頁開頭區塊 */
.lp .lp-crumb { background: #fff; }
.lp .lp-crumb ol { list-style: none; margin: 0 auto; max-width: 1296px; padding: 5px 28px; display: flex; flex-wrap: wrap; align-items: center; gap: 2px 8px; font-size: 13px; line-height: 1.6; color: #5B616D; }
.lp .lp-crumb li { margin: 0; padding: 0; }
.lp .lp-crumb li + li::before { content: "›"; margin-right: 8px; color: #8A8F98; }
.lp .lp-crumb a, .lp .lp-crumb a:visited { color: #5B616D; text-decoration: none; display: inline-block; padding: 6px 0; margin: -6px 0; }
.lp .lp-crumb a:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; border-radius: 3px; }
.lp .lp-crumb [aria-current] { color: #2D2E32; }
@media (hover: hover) and (pointer: fine) { .lp .lp-crumb a:hover { text-decoration: underline; } }
@media (max-width: 960px) { .lp .lp-crumb ol { padding: 5px 18px; } }
/* /lp-crumb */
