:root {
  --rose: #eb2f68;
  --rose-dark: #bd2457;
  --berry: #8b2048;
  --blush: #fff0f5;
  --cream: #fbf8f4;
  --ink: #2f2927;
  --muted: #6e6460;
  --line: #e9dfda;
  --white: #fff;
  --focus: #165dcc;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; color: var(--ink); background: var(--white); font-family: "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", sans-serif; }
a { color: inherit; text-decoration: none; }
img, video { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }

:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.skip-link { position: fixed; left: 12px; top: 10px; z-index: 1000; padding: 10px 14px; color: var(--white); background: var(--berry); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.site-shell { width: 100%; overflow: hidden; }
.site-inner { width: min(1120px, calc(100% - 48px)); margin: 0 auto; }

.tracking-consent {
  position: fixed;
  left: 24px;
  right: 24px;
  bottom: 24px;
  z-index: 950;
  width: min(760px, calc(100% - 48px));
  margin: 0 auto;
  padding: 20px 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border: 1px solid #e7c6d2;
  border-radius: 14px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 20px 60px rgba(77,25,46,.24);
}
.tracking-consent-copy { min-width: 0; }
.tracking-consent-copy strong { display: block; color: var(--berry); font-size: 17px; }
.tracking-consent-copy p { margin: 5px 0 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.tracking-consent-actions { flex: 0 0 auto; display: flex; gap: 9px; }
.tracking-consent-button {
  min-height: 42px;
  padding: 9px 15px;
  border: 1px solid var(--rose);
  border-radius: 9px;
  font-weight: 700;
  cursor: pointer;
}
.tracking-consent-button.primary { color: var(--white); background: var(--rose); }
.tracking-consent-button.primary:hover { background: var(--rose-dark); border-color: var(--rose-dark); }
.tracking-consent-button.secondary { color: var(--rose-dark); background: var(--white); }
.tracking-consent-button.secondary:hover { background: var(--blush); }

.fraud-strip { min-height: 34px; display: flex; align-items: center; justify-content: center; gap: 14px; padding: 7px 24px; color: var(--white); background: var(--berry); font-size: 13px; letter-spacing: .02em; }
.fraud-strip a { text-decoration: underline; text-underline-offset: 3px; }
body.has-open-modal { overflow: hidden; }
.fraud-modal[hidden] { display: none; }
.fraud-modal { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 20px; background: rgba(38,31,33,.58); backdrop-filter: blur(3px); }
.fraud-modal-dialog { width: min(1180px, 100%); max-height: calc(100vh - 40px); display: flex; flex-direction: column; overflow: hidden; border: 1px solid #ddd7d4; border-radius: 7px; background: var(--white); box-shadow: 0 28px 90px rgba(42,24,31,.3); }
.fraud-modal-header { display: flex; align-items: center; justify-content: space-between; min-height: 76px; padding: 18px 26px; border-bottom: 1px solid var(--line); background: var(--white); }
.fraud-modal-header h2 { margin: 0; color: #4b4542; font-size: 25px; font-weight: 500; letter-spacing: .04em; }
.fraud-modal-close { width: 44px; height: 44px; padding: 0; border: 0; color: #b9b7b5; background: transparent; font-size: 36px; font-weight: 700; line-height: 1; cursor: pointer; transition: color .2s ease, transform .2s ease; }
.fraud-modal-close:hover { color: var(--rose-dark); transform: rotate(4deg); }
.fraud-modal-content { padding: 42px 58px; overflow-y: auto; background: #fdfcfc; }
.fraud-alert-board { width: min(950px, 100%); margin: 0 auto; padding: 30px 38px 26px; border: 1px solid #efc9d5; border-radius: 3px; color: #2c2528; background:
  radial-gradient(circle at 14% 12%, rgba(255,255,255,.72), transparent 25%),
  radial-gradient(circle at 82% 82%, rgba(255,255,255,.5), transparent 30%),
  repeating-linear-gradient(0deg, rgba(255,255,255,.11) 0, rgba(255,255,255,.11) 2px, transparent 2px, transparent 5px),
  #f7dce6;
  box-shadow: inset 0 0 42px rgba(255,255,255,.32);
}
.fraud-alert-title { display: flex; align-items: center; justify-content: center; gap: 28px; text-align: center; }
.fraud-alert-title small { display: block; margin-bottom: 2px; color: var(--berry); font-size: 11px; font-weight: 900; letter-spacing: .22em; }
.fraud-alert-title h3 { margin: 0; color: #5c2a77; font-size: clamp(38px, 4.2vw, 62px); line-height: 1.08; letter-spacing: .04em; }
.fraud-warning-sign { width: 74px; height: 68px; flex: 0 0 auto; overflow: visible; }
.fraud-warning-sign path:first-child { fill: #ffd72f; stroke: #171313; stroke-width: 6px; stroke-linejoin: round; }
.fraud-warning-sign path:last-child { fill: none; stroke: #171313; stroke-width: 8px; stroke-linecap: round; }
.fraud-alert-lead { margin: 20px auto 0; padding-bottom: 18px; border-bottom: 1px solid rgba(139,32,72,.16); text-align: center; color: #2d2629; font-size: 17px; font-weight: 800; line-height: 1.7; }
.fraud-alert-details { font-size: 15px; line-height: 1.7; }
.fraud-alert-details > p:first-child { display: none; }
.fraud-alert-details h2 { margin: 23px 0 12px; color: var(--berry); text-align: center; font-size: 21px; }
.fraud-alert-details ol { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; counter-reset: fraud-item; }
.fraud-alert-details ol li { position: relative; min-height: 94px; padding: 14px 14px 14px 48px; border: 1px solid rgba(139,32,72,.13); border-radius: 5px; background: rgba(255,255,255,.68); counter-increment: fraud-item; }
.fraud-alert-details ol li::before { content: counter(fraud-item, decimal-leading-zero); position: absolute; left: 14px; top: 13px; color: var(--rose-dark); font-size: 13px; font-weight: 900; }
.fraud-alert-details blockquote { display: none; }
.fraud-alert-hotline { display: flex; align-items: center; justify-content: center; gap: 13px; margin-top: 20px; color: #c82c35; text-align: center; font-size: clamp(19px, 2.3vw, 29px); line-height: 1.35; }
.fraud-warning-sign--small { width: 36px; height: 33px; }
.fraud-warning-sign--small path:first-child { stroke-width: 7px; }
.fraud-warning-sign--small path:last-child { stroke-width: 10px; }
.fraud-alert-contact { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 18px; padding-top: 16px; border-top: 1px solid rgba(139,32,72,.16); color: #5f3752; }
.fraud-alert-contact p { margin: 0; text-align: right; font-size: 13px; font-weight: 700; }
.fraud-alert-brand { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 800; }
.fraud-alert-brand img { width: 44px; height: 44px; border-radius: 10px; object-fit: contain; }
.fraud-modal-footer { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 16px 24px; border-top: 1px solid var(--line); background: var(--white); }
.fraud-modal-footer span { color: var(--muted); font-size: 13px; }

.brand-row { background: var(--white); }
.brand-row .site-inner { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: flex; align-items: center; min-width: 244px; }
.brand img { width: 244px; height: auto; object-fit: contain; }
.brand-tools { display: flex; align-items: center; gap: 18px; color: var(--muted); font-size: 14px; }
.brand-tools > a:not(.button-primary) { padding: 9px 0; }
.social-links { display: flex; align-items: center; gap: 8px; }
.social-link { width: 36px; height: 36px; flex: 0 0 36px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(235,47,104,.2); border-radius: 50%; color: var(--rose-dark); background: var(--blush); transition: color .2s ease, background-color .2s ease, transform .2s ease; }
.social-link svg { width: 24px; height: 24px; fill: currentColor; }
.line-icon .line-icon-shape { fill: currentColor; }
.line-icon .line-icon-word { fill: var(--white); font-family: Arial, sans-serif; font-size: 5.2px; font-weight: 800; letter-spacing: -.12px; }
.social-link:hover { color: var(--white); background: var(--rose); transform: translateY(-2px); }
.social-link:hover .line-icon-word { fill: var(--rose); }
.button-primary { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0 22px; border: 0; border-radius: 5px; color: var(--white); background: var(--rose); font-weight: 700; cursor: pointer; }
.button-primary:hover { background: var(--rose-dark); }
.mobile-actions { display: none; }

.main-nav { color: var(--white); background: var(--rose); }
.main-nav .site-inner { display: flex; align-items: center; justify-content: space-between; }
.main-nav a { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; padding: 0 13px; font-size: 15px; white-space: nowrap; }
.main-nav a:hover { background: rgba(255,255,255,.12); }
.mobile-menu { padding: 8px 20px 18px; border-top: 1px solid var(--line); background: var(--white); }
.mobile-menu > a { min-height: 48px; display: flex; align-items: center; border-bottom: 1px solid var(--line); font-weight: 600; }
.mobile-social { display: flex; gap: 12px; padding: 8px 0 14px; border-bottom: 1px solid var(--line); }
.mobile-social .social-link { width: auto; min-height: 42px; flex-basis: auto; gap: 8px; padding: 0 16px; border-radius: 999px; font-size: 14px; }

.hero { position: relative; background: var(--blush); }
.hero:has([data-dots]) { padding-bottom: 46px; background: var(--white); }
.hero-slide { position: relative; min-height: 430px; display: none; grid-template-columns: 46% 54%; align-items: stretch; }
.hero-slide.is-active { display: grid; }
.hero-secondary-hit-area { position: absolute; inset: 0; z-index: 4; user-select: none; -webkit-user-drag: none; }
.hero-secondary-hit-area:focus-visible { outline: 4px solid var(--rose-dark); outline-offset: -5px; }
.hero.is-enhanced { overflow: hidden; }
.hero.is-enhanced .hero-slides { position: relative; overflow: hidden; cursor: grab; touch-action: pan-y; }
.hero.is-enhanced .hero-slides img { user-select: none; }
.hero.is-enhanced .hero-slide {
  width: 100%;
  display: grid;
  position: absolute;
  inset: 0;
  visibility: hidden;
  transform: translate3d(100%,0,0);
  transition: transform .72s cubic-bezier(.22,.7,.24,1);
  pointer-events: none;
  will-change: transform;
}
.hero.is-enhanced .hero-slide.is-active {
  display: grid;
  position: relative;
  z-index: 2;
  visibility: visible;
  transform: translate3d(0,0,0);
  pointer-events: auto;
}
.hero.is-enhanced .hero-slide.is-entering-right {
  z-index: 3;
  visibility: visible;
  transform: translate3d(100%,0,0);
}
.hero.is-enhanced .hero-slide.is-entering-left {
  z-index: 3;
  visibility: visible;
  transform: translate3d(-100%,0,0);
}
.hero.is-enhanced .hero-slide.is-leaving-left {
  z-index: 1;
  visibility: visible;
  transform: translate3d(-100%,0,0);
}
.hero.is-enhanced .hero-slide.is-leaving-right {
  z-index: 1;
  visibility: visible;
  transform: translate3d(100%,0,0);
}
.hero.is-dragging .hero-slides { cursor: grabbing; user-select: none; }
.hero.is-dragging .hero-slide { transition: none; }
.hero.is-drag-settling .hero-slide { transition-duration: .28s; transition-timing-function: cubic-bezier(.22,.7,.24,1); }
.hero.is-dragging .hero-slide.is-active,
.hero.is-drag-settling .hero-slide.is-active { transform: translate3d(var(--carousel-drag-x,0px),0,0); }
.hero.is-dragging .hero-slide.is-dragging-next,
.hero.is-drag-settling .hero-slide.is-dragging-next {
  z-index: 3;
  visibility: visible;
  transform: translate3d(calc(100% + var(--carousel-drag-x,0px)),0,0);
}
.hero.is-dragging .hero-slide.is-dragging-previous,
.hero.is-drag-settling .hero-slide.is-dragging-previous {
  z-index: 3;
  visibility: visible;
  transform: translate3d(calc(-100% + var(--carousel-drag-x,0px)),0,0);
}
.hero-copy { position: relative; z-index: 5; display: flex; flex-direction: column; justify-content: center; padding: 54px max(48px, calc((100vw - 1120px) / 2)); padding-right: 54px; background: linear-gradient(135deg, #fff7f8 0%, #fbd6df 100%); pointer-events: none; }
.eyebrow { margin: 0 0 14px; color: var(--rose-dark); font-size: 14px; font-weight: 700; letter-spacing: .16em; }
.hero h1 { max-width: 540px; margin: 0; font-size: clamp(38px, 4vw, 58px); line-height: 1.2; letter-spacing: .03em; }
.hero-copy > p:not(.eyebrow) { max-width: 520px; margin: 20px 0 28px; color: #5d514d; font-size: 17px; line-height: 1.8; }
.hero-actions { position: relative; z-index: 6; display: flex; align-items: center; gap: 22px; pointer-events: auto; }
.hero-actions .button-primary { min-height: 50px; padding: 0 28px; }
.text-link { color: var(--berry); font-weight: 700; border-bottom: 1px solid currentColor; padding-bottom: 3px; }
.hero-photo { position: relative; z-index: 5; min-height: 430px; margin: 0; overflow: hidden; pointer-events: none; }
.hero-photo picture, .hero-photo img { width: 100%; height: 100%; }
.hero-photo img { object-fit: cover; object-position: center 46%; }
.hero-photo::after { content: ""; position: absolute; inset: 0; box-shadow: inset 24px 0 36px rgba(251,216,224,.26); pointer-events: none; }
.hero-photo figcaption { position: absolute; left: 24px; bottom: 22px; z-index: 1; padding: 8px 12px; color: var(--white); background: rgba(45,35,32,.76); font-size: 12px; }
.carousel-controls { position: absolute; inset: 0; z-index: 20; pointer-events: none; }
.hero:has([data-dots]) .carousel-controls { bottom: 46px; }
.carousel-controls > button {
  position: absolute;
  top: 50%;
  width: 50px;
  height: 80px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  color: var(--white);
  background: rgba(43,38,39,.66);
  font-size: 0;
  cursor: pointer;
  pointer-events: auto;
  transform: translateY(-50%);
  transition: background .2s ease, width .2s ease;
}
.carousel-controls > button:hover,
.carousel-controls > button:focus-visible { width: 54px; background: rgba(143,31,69,.88); }
.carousel-controls > button:focus-visible { outline: 3px solid var(--white); outline-offset: -5px; }
.carousel-arrow-icon { display: block; width: 18px; height: 30px; overflow: visible; }
.carousel-arrow-icon path {
  fill: none;
  stroke: currentColor;
  stroke-width: 5;
  stroke-linecap: square;
  stroke-linejoin: miter;
}
.carousel-controls [data-prev] { left: 0; }
.carousel-controls [data-next] { right: 0; }
.carousel-controls [data-dots] {
  position: absolute;
  left: 50%;
  bottom: -37px;
  display: flex;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.84);
  box-shadow: 0 5px 18px rgba(58,36,43,.12);
  pointer-events: auto;
  transform: translateX(-50%);
}
.carousel-controls [data-dots] button { width: 28px; height: 4px; padding: 0; border: 0; background: #d9cbc6; cursor: pointer; }
.carousel-controls [data-dots] button[aria-current="true"] { background: var(--rose); }

.content-section { padding: 76px 0; }
.section-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 30px; }
.section-title h2 { margin: 0; font-size: 32px; line-height: 1.25; letter-spacing: .04em; }
.section-title .title-accent { margin-left: .22em; color: var(--rose-dark); }
.section-title small { display: block; margin-top: 8px; color: var(--muted); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }

.video-section { background: var(--white); }
.video-wrap { width: min(920px, 100%); margin: 0 auto; }
.video-player { --video-poster: none; position: relative; isolation: isolate; aspect-ratio: 16/9; display: grid; place-items: center; overflow: hidden; background: #211b19; }
.video-player::before { content: ""; position: absolute; z-index: 0; inset: -24px; background-image: linear-gradient(rgba(74,22,43,.28), rgba(31,20,24,.48)), var(--video-poster); background-position: center; background-size: cover; filter: blur(18px) saturate(.82); opacity: 0; transform: scale(1.08); transition: opacity .25s ease; }
.video-player.is-portrait::before { opacity: .82; }
.video-wrap video { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; max-height: 100%; object-fit: cover; background: #211b19; }
.video-player.is-portrait video { left: 50%; right: auto; width: auto; max-width: 100%; object-fit: contain; background: rgba(20,14,17,.9); box-shadow: 0 0 42px rgba(12,8,10,.46); transform: translateX(-50%); }
.video-play-button { position: absolute; z-index: 2; left: 50%; top: 50%; width: clamp(70px, 8vw, 94px); height: clamp(70px, 8vw, 94px); display: grid; place-items: center; padding: 0; border: 3px solid rgba(255,255,255,.9); border-radius: 50%; color: var(--white); background: rgba(235,47,104,.92); box-shadow: 0 12px 36px rgba(62,18,35,.34); cursor: pointer; transform: translate(-50%, -50%); transition: opacity .2s ease, transform .2s ease, background-color .2s ease; }
.video-play-button svg { width: 66%; height: 66%; fill: currentColor; }
.video-play-button:hover { background: var(--rose-dark); transform: translate(-50%, -50%) scale(1.06); }
.video-player.is-playing .video-play-button { opacity: 0; pointer-events: none; transform: translate(-50%, -50%) scale(.88); }
.video-unavailable { position: relative; z-index: 1; width: min(88%, 560px); padding: 28px 32px; border: 1px solid rgba(255,255,255,.24); border-radius: 16px; color: #fff; background: rgba(255,255,255,.08); font-size: clamp(16px, 2vw, 22px); text-align: center; }
.video-note { display: flex; justify-content: space-between; gap: 24px; margin-top: 15px; color: var(--muted); font-size: 13px; line-height: 1.65; }

.news-section { background: var(--cream); }
.news-section--latest { background: var(--cream); }
.news-section--welfare { border-top: 1px solid var(--line); background: var(--white); }
.news-layout { display: grid; grid-template-columns: 1.08fr .92fr; gap: 46px; }
.news-section--latest .news-layout { display: block; }
.news-section--latest .lead-story > a { display: grid; grid-template-columns: minmax(280px, .82fr) minmax(0, 1.18fr); grid-template-areas: "image meta" "image title" "image summary"; grid-template-rows: auto auto 1fr; column-gap: 42px; align-items: start; }
.news-section--latest .lead-story img { grid-area: image; width: 100%; height: 480px; aspect-ratio: auto; object-fit: contain; padding: 18px; background: var(--blush); }
.news-section .lead-story img.story-cover--landscape { height: auto; aspect-ratio: 16/9; object-fit: cover; padding: 0; }
.news-section--latest .lead-story .meta { grid-area: meta; margin-top: 8px; }
.news-section--latest .lead-story h3 { grid-area: title; margin-top: 12px; font-size: clamp(26px, 3vw, 38px); }
.news-section--latest .lead-story p { grid-area: summary; font-size: 16px; }
.news-section--latest .news-list { margin-top: 32px; }
.lead-story img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.news-section--welfare .lead-story img { height: 560px; aspect-ratio: auto; object-fit: contain; padding: 16px; background: var(--blush); }
.lead-story .story-image--placeholder,
.news-item .story-image--placeholder { object-fit: contain; padding: 18px; background: var(--blush); }
.lead-story .meta { margin-top: 18px; color: var(--rose-dark); font-size: 13px; }
.lead-story h3 { margin: 9px 0 10px; font-size: 25px; line-height: 1.45; }
.lead-story p { margin: 0; color: var(--muted); line-height: 1.75; }
.news-list { border-top: 1px solid var(--line); }
.news-item { display: grid; grid-template-columns: 1fr auto; gap: 22px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.news-item-main { min-width: 0; display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 18px; align-items: center; }
.news-item-main--text { display: block; }
.news-item-main > img { width: 132px; height: 84px; border-radius: 10px; object-fit: cover; background: var(--blush); }
.news-item-copy { min-width: 0; }
.news-item strong { display: block; font-size: 17px; line-height: 1.5; }
.news-item p { margin: 7px 0 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.news-item time { color: var(--muted); font-size: 12px; white-space: nowrap; }
.welfare-more-panel { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; margin-top: 16px; padding: 13px 15px; overflow: hidden; border: 1px solid #efc7d2; border-radius: 12px; color: var(--ink); background: linear-gradient(110deg, #fff6f8 0%, #fde7ed 58%, #f8d5df 100%); box-shadow: 0 7px 20px rgba(139, 31, 70, .07); transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.welfare-more-panel::after { content: ""; position: absolute; right: -54px; bottom: -76px; width: 130px; height: 105px; border-radius: 50%; background: rgba(255,255,255,.38); transform: rotate(-12deg); }
.welfare-more-panel:hover { border-color: var(--rose); box-shadow: 0 12px 28px rgba(139, 31, 70, .12); transform: translateY(-1px); }
.welfare-more-copy { min-width: 0; }
.welfare-more-copy small { display: block; margin-bottom: 3px; color: var(--rose-dark); font-size: 9px; font-weight: 800; letter-spacing: .15em; }
.welfare-more-copy strong { display: block; font-size: 15px; line-height: 1.4; }
.welfare-more-copy > span { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.welfare-more-action { position: relative; z-index: 1; justify-self: end; min-height: 36px; display: inline-flex; align-items: center; gap: 8px; padding: 0 13px; border-radius: 999px; color: var(--white); background: var(--rose-dark); font-size: 13px; font-weight: 800; white-space: nowrap; }
.welfare-more-action b { font-size: 18px; transition: transform .2s ease; }
.welfare-more-panel:hover .welfare-more-action b { transform: translateX(4px); }

.participate { padding: 62px 0; background: var(--white); }
.participate-heading { margin-bottom: 26px; }
.participate-heading small { color: #786760; }
.participate-heading .participate-intro { margin: 10px 0 0; color: var(--muted); font-size: 14px; line-height: 1.7; }
.participate-list { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.participate article { min-height: 188px; display: grid; grid-template-columns: 68px minmax(0, 1fr); grid-template-rows: auto auto 1fr auto; column-gap: 20px; align-content: start; padding: 30px 32px; border-right: 1px solid var(--line); transition: background-color .2s ease; }
.participate article:last-child { border-right: 0; }
.participate article:hover { background: var(--blush); }
.participate-icon { width: 64px; height: 64px; grid-column: 1; grid-row: 1 / span 4; display: grid; place-items: center; border-radius: 18px; background: var(--rose); }
.participate article:nth-child(2) .participate-icon { background: var(--rose-dark); }
.participate article:nth-child(3) .participate-icon { background: var(--berry); }
.participate-icon img { width: 42px; height: 42px; object-fit: contain; }
.participate article > span { grid-column: 2; color: var(--rose); font-size: 12px; font-weight: 700; letter-spacing: .12em; }
.participate h3 { grid-column: 2; margin: 7px 0 7px; font-size: 22px; }
.participate p { grid-column: 2; margin: 0 0 12px; color: var(--muted); font-size: 14px; line-height: 1.6; }
.participate article a { grid-column: 2; align-self: end; color: var(--berry); font-weight: 700; }

.trust-row { border-top: 3px solid rgba(235,47,104,.18); background: linear-gradient(90deg, #fff4f7 0%, #fbdde7 100%); }
.trust-row .site-inner { min-height: 168px; display: grid; grid-template-columns: 1.15fr .8fr .95fr 1.45fr; align-items: start; gap: 24px; padding: 34px 0; }
.trust-row h2 { margin: 0; font-size: 24px; line-height: 1.45; }
.trust-row p { margin: 7px 0 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.trust-copy h2 span, .trust-copy p span { display: block; white-space: nowrap; }
.trust-fact strong { display: block; font-size: 14px; }
.trust-fact span { display: block; margin-top: 5px; color: var(--muted); font-size: 13px; }
.trust-icon { width: 34px; height: 34px; margin-bottom: 5px; object-fit: contain; }
.trust-bank { margin-top: 7px; }
.trust-bank > span { margin-top: 4px; }
.trust-bank small { margin-right: 6px; color: #826b74; font-size: 11px; }
.trust-account { display: flex !important; flex-wrap: wrap; align-items: center; gap: 5px; }
.trust-account code { padding: 2px 5px; color: var(--berry); background: rgba(255,255,255,.72); border-radius: 4px; font-family: Consolas, "Courier New", monospace; font-size: 14px; font-weight: 700; letter-spacing: .03em; }
.trust-account button { min-height: 28px; padding: 3px 8px; border: 1px solid rgba(139,32,72,.3); border-radius: 5px; color: var(--berry); background: var(--white); font-size: 11px; font-weight: 700; cursor: pointer; }
.trust-account button:hover { color: var(--white); background: var(--berry); }
.trust-holder { line-height: 1.5; }

.site-footer { padding: 44px 0; color: #fff3f7; background: linear-gradient(135deg, #cf285d 0%, #aa1f4c 100%); }
.footer-grid { display: grid; grid-template-columns: 1.15fr .8fr 1.05fr; gap: 44px; }
.site-footer strong { color: var(--white); }
.site-footer p { margin: 9px 0 0; font-size: 13px; line-height: 1.8; }
.site-footer a { color: inherit; }
.footer-identity { display: flex; align-items: center; gap: 16px; }
.footer-logo-mark { width: 72px; height: 72px; flex: 0 0 72px; object-fit: contain; object-position: center; border-radius: 16px; background: var(--white); }
.footer-service-hours { display: inline-block; margin-top: 6px; }
.social-links--footer { margin-top: 18px; }
.social-links--footer .social-link { color: var(--white); background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.42); }
.social-links--footer .line-icon-word { fill: var(--rose-dark); }
.social-links--footer .social-link:hover { color: var(--rose-dark); background: var(--white); }
.social-links--footer .social-link:hover .line-icon-word { fill: var(--white); }
.page-hero { overflow: hidden; border-top: 1px solid rgba(169,31,75,.1); background: linear-gradient(135deg, #fff8fa 0%, #fbdde7 100%); }
.page-hero .site-inner { padding-top: 24px; padding-bottom: 58px; }
.breadcrumb { display: flex; align-items: center; gap: 9px; margin-bottom: 28px; color: var(--muted); font-size: 16px; }
.breadcrumb a { color: var(--berry); font-weight: 700; }
.page-hero-grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(420px, 1.08fr); align-items: center; gap: 58px; }
.page-eyebrow { margin: 0 0 14px; color: var(--rose-dark); font-size: 13px; font-weight: 800; letter-spacing: .2em; }
.page-hero h1 { margin: 0; font-size: clamp(42px, 5vw, 66px); line-height: 1.18; letter-spacing: .04em; }
.page-hero h1 span { margin-left: .18em; color: var(--rose-dark); }
.page-summary { max-width: 580px; margin: 22px 0 0; color: #62544f; font-size: 17px; line-height: 1.85; }
.page-hero-media { min-height: 330px; margin: 0; overflow: hidden; border-radius: 6px; box-shadow: 0 20px 50px rgba(89,28,51,.16); }
.page-hero-media img { width: 100%; height: 100%; min-height: 330px; object-fit: cover; }
.page-hero-media.page-hero-media--contain { min-height: 0; background: var(--white); }
.page-hero-media--contain img { display: block; height: auto; min-height: 0; object-fit: contain; }

.page-content { padding: 78px 0 96px; background: var(--white); }
.page-content-inner { width: min(980px, calc(100% - 40px)); }
.page-content-inner > p { margin: 0 0 20px; color: #544945; font-size: 17px; line-height: 1.95; }
.page-content-inner > p:first-child { color: var(--ink); font-size: 21px; font-weight: 700; line-height: 1.8; }
.page-content h2 { margin: 76px 0 22px; font-size: 32px; line-height: 1.35; letter-spacing: .04em; }
.page-content h2 .heading-accent { margin-left: .16em; color: var(--rose-dark); }
.page-content h2::after { content: ""; width: 42px; height: 4px; display: block; margin-top: 13px; border-radius: 999px; background: var(--rose); }
.page-content h3 { margin: 0 0 10px; font-size: 20px; line-height: 1.45; }
.page-content blockquote { margin: 58px 0; padding: 36px 42px; border: 0; border-left: 6px solid var(--rose); border-radius: 0 8px 8px 0; background: linear-gradient(135deg, #fff4f7 0%, #fbdde7 100%); }
.page-content blockquote h2 { margin-top: 0; }
.page-content blockquote p { margin: 0; color: #5f4e54; font-size: 18px; line-height: 1.9; }
.page-content ol, .page-content ul { margin: 30px 0 0; padding: 0; list-style: none; display: grid; gap: 18px; }
.page-content ol { grid-template-columns: repeat(2, minmax(0, 1fr)); counter-reset: audience; }
.page-content ol li { position: relative; min-height: 112px; padding: 24px 24px 24px 72px; border: 1px solid var(--line); border-radius: 6px; color: var(--muted); line-height: 1.7; counter-increment: audience; }
.page-content ol li::before { content: counter(audience, decimal-leading-zero); position: absolute; left: 22px; top: 23px; color: var(--rose); font-size: 18px; font-weight: 800; }
.page-content ol strong { display: inline-block; margin-bottom: 4px; color: var(--ink); }
.page-content ul { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.page-content ul li { min-height: 228px; padding: 28px 30px 30px; border-radius: 7px; background: var(--blush); }
.page-content ul li::before { content: ""; width: 56px; height: 56px; display: block; margin-bottom: 20px; border-radius: 18px; background-color: var(--rose); background-position: center; background-repeat: no-repeat; background-size: 38px 38px; box-shadow: 0 9px 22px rgba(139,32,72,.16); }
.page-content ul li:nth-child(1)::before { background-image: url('/assets/icons/about/whole-person-care.svg'); }
.page-content ul li:nth-child(2)::before { background-color: var(--rose-dark); background-image: url('/assets/icons/about/autonomy.svg'); }
.page-content ul li:nth-child(3)::before { background-color: var(--berry); background-image: url('/assets/icons/about/inclusive-community.svg'); }
.page-content ul li:nth-child(2) { background: #f8e3e8; }
.page-content ul li:nth-child(3) { background: #f5d5df; }
.page-content ul p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.75; }
.page-content figure { margin: 34px 0 0; padding: 28px; border: 1px solid var(--line); border-radius: 7px; background: #fcfafb; }
.page-content figure img { width: 100%; height: auto; object-fit: contain; }
.page-content figure video { width: 100%; max-height: 720px; background: #211b19; object-fit: contain; }
.page-content figcaption { margin-top: 12px; color: var(--muted); font-size: 13px; text-align: center; }

.archive-hero { border-top: 1px solid rgba(169,31,75,.1); background: linear-gradient(130deg, #fff8fa 0%, #f9dbe4 100%); }
.archive-hero .site-inner { padding-top: 28px; padding-bottom: 64px; }
.archive-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .72fr); align-items: end; gap: 70px; }
.archive-hero h1 { margin: 0; font-size: clamp(46px, 6vw, 74px); line-height: 1.12; letter-spacing: .04em; }
.archive-hero h1 span { margin-left: .16em; color: var(--rose-dark); }
.archive-intro { padding-left: 28px; border-left: 4px solid var(--rose); }
.archive-intro p { margin: 0; color: #5f504c; font-size: 17px; line-height: 1.85; }
.archive-intro span { display: block; margin-top: 13px; color: var(--berry); font-size: 12px; font-weight: 800; letter-spacing: .08em; }

.archive-content { padding: 76px 0 100px; background: var(--white); }
.archive-list { display: grid; gap: 48px; }
.archive-featured { min-height: 430px; display: grid; grid-template-columns: minmax(0, 1.28fr) minmax(360px, .72fr); overflow: hidden; border-radius: 8px; background: var(--cream); box-shadow: 0 22px 58px rgba(83,31,50,.11); }
.archive-featured-media { min-height: 430px; overflow: hidden; background: var(--blush); }
.archive-featured-media > img { width: 100%; height: 100%; min-height: 430px; object-fit: cover; transition: transform .45s ease; }
.archive-featured:hover .archive-featured-media > img { transform: scale(1.025); }
.archive-featured-copy { padding: clamp(36px, 5vw, 66px); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.archive-featured h2 { margin: 18px 0 16px; font-size: clamp(27px, 3vw, 40px); line-height: 1.38; }
.archive-featured h2 a, .archive-card h2 a { color: inherit; text-decoration: none; }
.archive-featured h2 a:hover, .archive-card h2 a:hover { color: var(--berry); }
.archive-featured-copy > p { margin: 0; color: var(--muted); font-size: 16px; line-height: 1.85; }
.archive-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 15px; color: var(--muted); font-size: 12px; letter-spacing: .04em; }
.archive-meta span { padding: 5px 10px; border-radius: 999px; color: var(--berry); background: rgba(235,47,104,.1); font-weight: 800; }
.archive-read-more { margin-top: 28px; display: inline-flex; align-items: center; gap: 12px; color: var(--berry); font-weight: 800; text-decoration: none; }
.archive-read-more span { font-size: 20px; transition: transform .2s ease; }
.archive-read-more:hover span { transform: translateX(5px); }
.archive-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.archive-card-grid--single { grid-template-columns: 1fr; }
.archive-card-grid--single .archive-card { display: grid; grid-template-columns: minmax(320px, .72fr) minmax(0, 1.28fr); }
.archive-card-grid--single .archive-card-media { height: 100%; min-height: 290px; aspect-ratio: auto; }
.archive-card-grid--single .archive-card-copy { padding: 38px 42px; justify-content: center; }
.archive-card-grid--single .archive-card h2 { font-size: 26px; }
.archive-card-grid--single .archive-card .archive-read-more { margin-top: 24px; padding-top: 0; }
.archive-card { min-width: 0; overflow: hidden; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 8px; background: var(--white); transition: transform .25s ease, box-shadow .25s ease; }
.archive-card:hover { transform: translateY(-4px); box-shadow: 0 18px 42px rgba(71,35,49,.1); }
.archive-card-media { aspect-ratio: 16/10; overflow: hidden; display: block; background: var(--blush); }
.archive-card-media > img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.archive-card:hover .archive-card-media > img { transform: scale(1.035); }
.archive-card-copy { flex: 1; padding: 24px; display: flex; flex-direction: column; align-items: flex-start; }
.archive-card h2 { margin: 15px 0 10px; font-size: 21px; line-height: 1.5; }
.archive-card-copy > p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.75; }
.archive-card .archive-read-more { margin-top: auto; padding-top: 22px; }
.archive-image-placeholder { width: 100%; height: 100%; min-height: inherit; display: grid; place-items: center; background: linear-gradient(135deg, var(--blush), #f6d3df); }
.archive-image-placeholder img { width: min(150px, 36%); height: auto; object-fit: contain; }
.archive-empty { padding: 86px 24px; border: 1px solid var(--line); border-radius: 8px; background: var(--cream); text-align: center; }
.archive-empty img { width: 96px; margin: 0 auto 22px; }
.archive-empty h2 { margin: 0; font-size: 28px; }
.archive-empty p { margin: 10px 0 0; color: var(--muted); }

.archive-body--public_welfare .archive-content { background: linear-gradient(180deg, #fff 0%, #fffafb 100%); }
.welfare-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px 24px; }
.welfare-card { min-width: 0; overflow: hidden; display: flex; flex-direction: column; border: 1px solid #e5d8d4; border-radius: 10px; background: var(--white); box-shadow: 0 10px 30px rgba(78,30,48,.055); transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.welfare-card:hover { transform: translateY(-5px); border-color: rgba(235,47,104,.34); box-shadow: 0 20px 42px rgba(78,30,48,.11); }
.welfare-card-media { position: relative; aspect-ratio: 16/10; display: block; overflow: hidden; background: var(--blush); }
.welfare-card-media > img { width: 100%; height: 100%; object-fit: cover; transition: transform .42s ease; }
.welfare-card:hover .welfare-card-media > img { transform: scale(1.035); }
.welfare-card-type { position: absolute; left: 16px; bottom: 14px; z-index: 1; padding: 6px 11px; border-radius: 999px; color: var(--white); background: rgba(169,31,75,.94); box-shadow: 0 6px 18px rgba(60,22,36,.2); font-size: 11px; font-weight: 800; letter-spacing: .04em; }
.welfare-card-copy { min-height: 250px; flex: 1; display: flex; flex-direction: column; align-items: flex-start; padding: 22px 22px 24px; }
.welfare-card-copy time { color: var(--rose-dark); font-size: 12px; font-weight: 800; letter-spacing: .06em; }
.welfare-card h2 { margin: 10px 0 10px; font-size: 21px; line-height: 1.5; }
.welfare-card h2 a { color: inherit; text-decoration: none; }
.welfare-card h2 a:hover { color: var(--berry); }
.welfare-card-copy > p { display: -webkit-box; margin: 0; overflow: hidden; color: var(--muted); font-size: 14px; line-height: 1.75; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.welfare-card-link { margin-top: auto; padding-top: 20px; display: inline-flex; align-items: center; gap: 10px; color: var(--berry); font-size: 14px; font-weight: 800; }
.welfare-card-link span { font-size: 19px; transition: transform .2s ease; }
.welfare-card-link:hover span { transform: translateX(5px); }
.archive-pagination { display: flex; align-items: center; justify-content: center; gap: 9px; margin-top: 50px; }
.archive-pagination a, .archive-pagination span { width: 44px; height: 44px; display: inline-grid; place-items: center; border: 1px solid #dfd4cf; border-radius: 7px; color: var(--ink); background: var(--white); font-size: 14px; font-weight: 800; }
.archive-pagination a:hover, .archive-pagination span[aria-current="page"] { border-color: var(--rose); color: var(--white); background: var(--rose); }
.archive-pagination .pagination-arrow { font-size: 24px; font-weight: 500; }

.preview-strip { padding: 10px 20px; display: flex; justify-content: center; gap: 12px; color: #704600; background: #fff0bd; border-bottom: 1px solid #e8cf80; font-size: 13px; }
.article-detail-header { padding: 30px 0 54px; background: linear-gradient(150deg, #fff 0%, #fff5f7 100%); }
.article-detail-heading { width: min(980px, calc(100% - 40px)); }
.article-detail-heading .breadcrumb { margin-bottom: 48px; }
.article-detail-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; color: var(--muted); font-size: 12px; }
.article-detail-meta span { padding: 5px 10px; border-radius: 999px; color: var(--berry); background: rgba(235,47,104,.1); font-weight: 800; }
.article-detail h1 { max-width: 930px; margin: 20px 0 0; font-size: clamp(38px, 5vw, 62px); line-height: 1.28; letter-spacing: .02em; }
.article-detail-summary { max-width: 800px; margin: 24px 0 0; color: #675953; font-size: 19px; line-height: 1.9; }
.article-cover { width: min(1120px, calc(100% - 40px)); margin-top: -1px; display: grid; place-items: center; border-radius: 8px; background: var(--blush); }
.article-cover img { width: 100%; height: auto; max-height: none; aspect-ratio: auto; object-fit: contain; border-radius: 8px; box-shadow: 0 20px 52px rgba(78,30,48,.13); }
.article-cover.is-portrait { padding: 24px; }
.article-cover.is-portrait img { width: auto; max-width: 100%; max-height: min(820px, 80vh); }
.article-cover.is-landscape img { width: 100%; max-height: none; }
.article-detail-content { padding: 76px 0 105px; background: var(--white); }
.article-detail-grid { width: min(1040px, calc(100% - 40px)); display: grid; grid-template-columns: minmax(0, 1fr) 230px; align-items: start; gap: 74px; }
.article-prose { min-width: 0; color: #4e4542; font-size: 17px; line-height: 2; }
.article-prose > *:first-child { margin-top: 0; }
.article-prose p { margin: 0 0 24px; }
.article-prose-lead { color: #665852; font-size: 19px; line-height: 1.95; }
.article-prose h2 { margin: 58px 0 18px; color: var(--ink); font-size: 30px; line-height: 1.4; }
.article-prose h2::after { content: ""; width: 44px; height: 4px; display: block; margin-top: 12px; border-radius: 999px; background: var(--rose); }
.article-prose h3 { margin: 38px 0 14px; color: var(--ink); font-size: 23px; line-height: 1.45; }
.article-prose h4 { margin: 30px 0 12px; color: var(--ink); font-size: 19px; }
.article-prose ul, .article-prose ol { margin: 0 0 28px; padding-left: 1.35em; }
.article-prose li { margin: 8px 0; padding-left: 5px; }
.article-prose blockquote { margin: 38px 0; padding: 27px 30px; border-left: 5px solid var(--rose); color: #5f4e54; background: var(--blush); }
.article-prose blockquote p:last-child { margin-bottom: 0; }
.article-prose .article-template { color: #4e4542; font-family: "Noto Sans TC", "Microsoft JhengHei", Arial, sans-serif; }
.article-prose .article-lead { margin-bottom: 38px; padding: 25px 28px; color: #5f4e54; background: #fff8fa; border-left: 5px solid var(--rose); border-radius: 0 8px 8px 0; font-size: 20px; line-height: 1.9; }
.article-prose .article-highlight,
.article-prose .article-info-box,
.article-prose .article-callout { margin: 42px 0; padding: 30px 32px; border-radius: 12px; }
.article-prose .article-highlight { color: #713149; background: #fff0f4; border: 1px solid #f2bfd0; }
.article-prose .article-info-box { color: #514843; background: #fff9ee; border: 1px solid #eadabd; }
.article-prose .article-callout { color: #fff; background: linear-gradient(135deg, #8f1f45 0%, #e93268 100%); box-shadow: 0 18px 40px rgba(143,31,69,.16); }
.article-prose .article-highlight h3,
.article-prose .article-info-box h3,
.article-prose .article-callout h3 { margin: 0 0 12px; }
.article-prose .article-callout h3,
.article-prose .article-callout p,
.article-prose .article-callout li,
.article-prose .article-callout a { color: #fff; }
.article-prose .article-highlight > *:last-child,
.article-prose .article-info-box > *:last-child,
.article-prose .article-callout > *:last-child { margin-bottom: 0; }
.article-prose font[size="2"] { font-size: 14px; }
.article-prose font[size="3"] { font-size: 17px; }
.article-prose font[size="4"] { font-size: 20px; }
.article-prose font[size="5"] { font-size: 24px; }
.article-prose font[size="6"] { font-size: 29px; }
.article-prose span[style*="background-color"] { padding: .08em .2em; border-radius: 3px; }
.article-prose img { max-width: 100%; height: auto; margin: 34px auto; border-radius: 6px; }
.article-prose figure.article-media { margin: 34px 0; display: grid; justify-items: center; text-align: center; }
.article-prose figure.article-media img { margin: 0 auto; }
.article-prose figure.article-media.is-landscape img,
.article-prose img.media-orientation-landscape { width: 100% !important; height: auto !important; }
.article-prose figure.article-media.is-portrait img,
.article-prose img.media-orientation-portrait { width: auto !important; max-width: min(100%, 680px) !important; max-height: 900px; height: auto !important; }
.article-prose figure.article-media video { width: 100%; max-height: 720px; margin: 0 auto; border-radius: 6px; background: #211b19; object-fit: contain; }
.article-prose figure.article-media figcaption { margin-top: 10px; color: var(--muted); font-size: 14px; line-height: 1.65; }
.article-prose figure,
.page-content-inner figure,
.help-content > .site-inner figure {
  box-sizing: border-box;
  max-width: 100% !important;
}
.article-prose img,
.page-content-inner img,
.help-content > .site-inner img {
  box-sizing: border-box;
  max-width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
}
.article-prose video,
.page-content-inner video,
.help-content > .site-inner video {
  box-sizing: border-box;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
}
.article-prose iframe,
.page-content-inner iframe,
.help-content > .site-inner iframe {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  aspect-ratio: 16 / 9;
  height: auto !important;
  border: 0;
}
.article-prose a { color: var(--berry); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.page-content-inner .article-template,
.participation-content .article-template,
.help-content .article-template { width: min(100%, 860px); margin: 0 auto; color: #4e4542; font-family: "Noto Sans TC", "Microsoft JhengHei", Arial, sans-serif; font-size: 17px; line-height: 2; }
.participation-content .article-template h2,
.help-content .article-template h2 { margin: 58px 0 18px; color: var(--ink); font-size: 30px; line-height: 1.4; }
.participation-content .article-template h2::after,
.help-content .article-template h2::after { content: ""; width: 44px; height: 4px; display: block; margin-top: 12px; border-radius: 999px; background: var(--rose); }
.page-content-inner .article-template .article-lead,
.participation-content .article-template .article-lead,
.help-content .article-template .article-lead { margin-bottom: 38px; padding: 25px 28px; color: #5f4e54; background: #fff8fa; border-left: 5px solid var(--rose); border-radius: 0 8px 8px 0; font-size: 20px; line-height: 1.9; }
.page-content-inner .article-template .article-highlight,
.page-content-inner .article-template .article-info-box,
.page-content-inner .article-template .article-callout,
.participation-content .article-template .article-highlight,
.participation-content .article-template .article-info-box,
.participation-content .article-template .article-callout,
.help-content .article-template .article-highlight,
.help-content .article-template .article-info-box,
.help-content .article-template .article-callout { margin: 42px 0; padding: 30px 32px; border-radius: 12px; }
.page-content-inner .article-template .article-highlight,
.participation-content .article-template .article-highlight,
.help-content .article-template .article-highlight { color: #713149; background: #fff0f4; border: 1px solid #f2bfd0; }
.page-content-inner .article-template .article-info-box,
.participation-content .article-template .article-info-box,
.help-content .article-template .article-info-box { color: #514843; background: #fff9ee; border: 1px solid #eadabd; }
.page-content-inner .article-template .article-callout,
.participation-content .article-template .article-callout,
.help-content .article-template .article-callout { color: #fff; background: linear-gradient(135deg, #8f1f45 0%, #e93268 100%); box-shadow: 0 18px 40px rgba(143,31,69,.16); }
.page-content-inner .article-template .article-callout *,
.participation-content .article-template .article-callout *,
.help-content .article-template .article-callout * { color: #fff; }
.page-content-inner .article-template font[size="2"],
.participation-content .article-template font[size="2"],
.help-content .article-template font[size="2"] { font-size: 14px; }
.page-content-inner .article-template font[size="3"],
.participation-content .article-template font[size="3"],
.help-content .article-template font[size="3"] { font-size: 17px; }
.page-content-inner .article-template font[size="4"],
.participation-content .article-template font[size="4"],
.help-content .article-template font[size="4"] { font-size: 20px; }
.page-content-inner .article-template font[size="5"],
.participation-content .article-template font[size="5"],
.help-content .article-template font[size="5"] { font-size: 24px; }
.page-content-inner .article-template font[size="6"],
.participation-content .article-template font[size="6"],
.help-content .article-template font[size="6"] { font-size: 29px; }
.article-sidebar { position: sticky; top: 116px; display: grid; gap: 18px; }
.article-sidebar-card { padding: 22px; border: 1px solid var(--line); border-radius: 8px; background: var(--cream); }
.article-sidebar-card > span { color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .14em; }
.article-share-links { margin-top: 14px; display: grid; gap: 8px; }
.article-share-links a { min-height: 42px; display: grid; place-items: center; border: 1px solid rgba(169,31,75,.2); border-radius: 999px; color: var(--berry); background: var(--white); font-size: 13px; font-weight: 800; text-decoration: none; }
.article-share-links a:hover { color: var(--white); background: var(--rose-dark); }
.article-sidebar-back a { margin-top: 12px; display: flex; justify-content: space-between; gap: 14px; color: var(--berry); font-weight: 800; text-decoration: none; }

@media (max-width: 980px) {
  .brand-tools { gap: 12px; }
  .main-nav a { padding: 0 7px; font-size: 13px; }
  .archive-hero-grid { grid-template-columns: 1fr; gap: 30px; }
  .archive-intro { max-width: 720px; }
  .archive-featured { grid-template-columns: 1fr 1fr; }
  .archive-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .welfare-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .article-detail-grid { grid-template-columns: minmax(0, 1fr) 210px; gap: 42px; }
}

@media (max-width: 760px) {
  body { padding-bottom: 58px; }
  .site-inner { width: calc(100% - 34px); }
  .fraud-strip { min-height: 32px; justify-content: space-between; padding: 7px 14px; font-size: 11px; }
  .fraud-strip span { max-width: calc(100% - 72px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .fraud-modal { padding: 9px; }
  .fraud-modal-dialog { max-height: calc(100vh - 18px); border-radius: 6px; }
  .fraud-modal-header { min-height: 60px; padding: 11px 14px 11px 17px; }
  .fraud-modal-header h2 { font-size: 20px; }
  .fraud-modal-close { width: 38px; height: 38px; font-size: 30px; }
  .fraud-modal-content { padding: 15px 12px; }
  .fraud-alert-board { padding: 20px 15px 18px; }
  .fraud-alert-title { gap: 10px; }
  .fraud-alert-title small { font-size: 9px; }
  .fraud-alert-title h3 { font-size: 31px; }
  .fraud-warning-sign { width: 42px; height: 39px; }
  .fraud-alert-lead { margin-top: 14px; padding-bottom: 14px; font-size: 14px; line-height: 1.55; }
  .fraud-alert-details { font-size: 13px; }
  .fraud-alert-details h2 { margin: 18px 0 9px; font-size: 17px; }
  .fraud-alert-details ol { grid-template-columns: 1fr; gap: 7px; }
  .fraud-alert-details ol li { min-height: 0; padding: 11px 11px 11px 43px; }
  .fraud-alert-details blockquote { padding: 12px 14px; }
  .fraud-alert-hotline { gap: 8px; margin-top: 15px; font-size: 17px; }
  .fraud-warning-sign--small { width: 28px; height: 26px; }
  .fraud-alert-contact { display: block; margin-top: 14px; padding-top: 12px; }
  .fraud-alert-contact p { margin-top: 9px; text-align: left; font-size: 11px; overflow-wrap: anywhere; }
  .fraud-alert-brand img { width: 36px; height: 36px; }
  .fraud-alert-brand { font-size: 12px; }
  .fraud-modal-footer { display: block; padding: 11px 13px 13px; }
  .fraud-modal-footer span { display: block; margin-bottom: 8px; font-size: 11px; }
  .fraud-modal-footer .button-primary { width: 100%; }
  .brand-row .site-inner { min-height: 68px; gap: 12px; }
  .brand { min-width: 0; }
  .brand img { width: min(170px, 44vw); height: auto; object-fit: contain; }
  .brand-tools { display: none; }
  .mobile-actions { display: flex; align-items: center; gap: 8px; }
  .mobile-actions .button-primary { min-height: 42px; padding: 0 15px; font-size: 13px; }
  .menu-toggle { width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 4px; background: var(--white); color: var(--ink); font-size: 20px; cursor: pointer; }
  .main-nav { display: none; }

  .hero-slide, .hero-slide.is-active { min-height: 0; display: none; grid-template-columns: 1fr; }
  .hero-slide.is-active { display: flex; flex-direction: column; }
  .hero.is-enhanced .hero-slide,
  .hero.is-enhanced .hero-slide.is-active,
  .hero.is-enhanced .hero-slide.is-entering-right,
  .hero.is-enhanced .hero-slide.is-leaving-left { min-height: 0; display: flex; flex-direction: column; grid-template-columns: 1fr; }
  .hero-copy { order: 2; padding: 27px 20px 32px; }
  .eyebrow { margin-bottom: 9px; font-size: 11px; }
  .hero h1 { font-size: 31px; line-height: 1.25; }
  .hero-copy > p:not(.eyebrow) { margin: 13px 0 20px; font-size: 14px; line-height: 1.65; }
  .hero-actions { gap: 17px; }
  .hero-actions .button-primary { min-height: 46px; padding: 0 20px; font-size: 14px; }
  .text-link { font-size: 13px; }
  .hero-photo { order: 1; min-height: 235px; }
  .hero-photo::after { box-shadow: inset 0 -25px 38px rgba(39,27,26,.12); }
  .hero-photo figcaption { left: 14px; bottom: 12px; }
  .carousel-controls > button { width: 40px; height: 64px; }
  .carousel-controls > button:hover,
  .carousel-controls > button:focus-visible { width: 44px; }
  .carousel-arrow-icon { width: 14px; height: 24px; }
  .hero:has([data-dots]) { padding-bottom: 38px; }
  .hero:has([data-dots]) .carousel-controls { bottom: 38px; }
  .carousel-controls [data-dots] { bottom: -31px; gap: 6px; padding: 6px 8px; }
  .carousel-controls [data-dots] button { width: 20px; }

  .content-section { padding: 48px 0; }
  .section-title { align-items: center; margin-bottom: 20px; }
  .section-title h2 { font-size: 25px; }
  .section-title small { margin-top: 5px; font-size: 10px; }
  .section-title .text-link { white-space: nowrap; }
  .video-note { display: block; margin-top: 12px; font-size: 12px; }
  .video-note span:last-child { display: none; }
  .video-player.is-portrait { width: min(100%, 420px); aspect-ratio: 9/16; margin: 0 auto; }
  .video-player.is-portrait video { width: 100%; height: 100%; box-shadow: none; }

  .news-layout { display: block; }
  .news-section--latest .lead-story > a { display: block; }
  .news-section--latest .lead-story img { width: 100%; height: min(112vw, 520px); padding: 12px; }
  .news-section .lead-story img.story-cover--landscape { height: auto; aspect-ratio: 16/9; padding: 0; }
  .news-section--latest .lead-story .meta { margin-top: 16px; }
  .news-section--welfare .lead-story img { width: 100%; height: min(112vw, 520px); padding: 12px; }
  .lead-story h3 { font-size: 21px; }
  .lead-story p { font-size: 14px; }
  .news-list { margin-top: 30px; }
  .news-item { gap: 12px; padding: 17px 0; }
  .news-item-main { grid-template-columns: 96px minmax(0, 1fr); gap: 13px; }
  .news-item-main > img { width: 96px; height: 68px; border-radius: 8px; }
  .news-item strong { font-size: 15px; }
  .news-item p { display: none; }
  .welfare-more-panel { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; margin-top: 18px; padding: 12px 14px; }
  .welfare-more-copy strong { font-size: 14px; }
  .welfare-more-copy > span { font-size: 11px; }
  .welfare-more-action { justify-self: end; min-height: 34px; padding: 0 11px; font-size: 12px; }

  .archive-hero .site-inner { padding-top: 18px; padding-bottom: 42px; }
  .archive-hero-grid { gap: 24px; }
  .archive-hero h1 { font-size: 40px; }
  .archive-intro { padding-left: 18px; }
  .archive-intro p { font-size: 14px; line-height: 1.75; }
  .archive-content { padding: 42px 0 68px; }
  .archive-list { gap: 28px; }
  .archive-featured { min-height: 0; display: block; border-radius: 7px; }
  .archive-featured-media { min-height: 0; aspect-ratio: 16/10; display: block; }
  .archive-featured-media > img { min-height: 0; }
  .archive-featured-copy { padding: 25px 22px 28px; }
  .archive-featured h2 { margin: 14px 0 11px; font-size: 25px; }
  .archive-featured-copy > p { font-size: 14px; line-height: 1.7; }
  .archive-read-more { margin-top: 20px; }
  .archive-card-grid { grid-template-columns: 1fr; gap: 20px; }
  .archive-card-grid--single .archive-card { grid-template-columns: 118px minmax(0, 1fr); }
  .archive-card-grid--single .archive-card-media { min-height: 172px; }
  .archive-card-grid--single .archive-card-copy { padding: 18px 17px; }
  .archive-card-grid--single .archive-card h2 { font-size: 17px; }
  .archive-card-grid--single .archive-card .archive-read-more { display: none; }
  .archive-card { display: grid; grid-template-columns: 118px minmax(0, 1fr); }
  .archive-card-media { height: 100%; min-height: 172px; aspect-ratio: auto; }
  .archive-card-copy { padding: 18px 17px; }
  .archive-card h2 { margin: 11px 0 0; font-size: 17px; line-height: 1.48; }
  .archive-card-copy > p, .archive-card .archive-read-more { display: none; }
  .archive-card .archive-meta { display: grid; gap: 5px; }
  .archive-card .archive-meta span { width: max-content; }
  .archive-empty { padding: 58px 20px; }
  .welfare-card-grid { grid-template-columns: 1fr; gap: 20px; }
  .welfare-card { display: grid; grid-template-columns: 128px minmax(0, 1fr); border-radius: 7px; }
  .welfare-card-media { height: 100%; min-height: 190px; aspect-ratio: auto; }
  .welfare-card-type { left: 9px; bottom: 9px; padding: 5px 8px; font-size: 9px; }
  .welfare-card-copy { min-height: 190px; padding: 18px 17px; }
  .welfare-card h2 { margin: 8px 0 8px; font-size: 17px; line-height: 1.5; }
  .welfare-card-copy > p { font-size: 13px; line-height: 1.6; -webkit-line-clamp: 2; }
  .welfare-card-link { padding-top: 12px; font-size: 12px; }
  .archive-pagination { margin-top: 34px; }
  .archive-pagination a, .archive-pagination span { width: 40px; height: 40px; }

  .preview-strip { display: grid; gap: 0; padding: 9px 16px; text-align: center; }
  .article-detail-header { padding: 20px 0 38px; }
  .article-detail-heading { width: calc(100% - 34px); }
  .article-detail-heading .breadcrumb { margin-bottom: 32px; }
  .article-detail h1 { margin-top: 16px; font-size: 34px; line-height: 1.32; }
  .article-detail-summary { margin-top: 18px; font-size: 16px; line-height: 1.75; }
  .article-cover { width: calc(100% - 34px); border-radius: 6px; }
  .article-cover img { border-radius: 6px; }
  .article-cover.is-portrait { padding: 12px; }
  .article-cover.is-portrait img { width: 100%; max-height: none; }
  .article-detail-content { padding: 44px 0 72px; }
  .article-detail-grid { width: calc(100% - 34px); grid-template-columns: 1fr; gap: 38px; }
  .article-prose { font-size: 16px; line-height: 1.9; }
  .article-prose-lead { font-size: 17px; }
  .article-prose h2 { margin-top: 44px; font-size: 25px; }
  .article-prose h3 { margin-top: 32px; font-size: 21px; }
  .article-prose blockquote { margin: 30px 0; padding: 22px; }
  .article-prose .article-lead { margin-bottom: 30px; padding: 20px; font-size: 17px; }
  .article-prose .article-highlight,
  .article-prose .article-info-box,
  .article-prose .article-callout { margin: 30px 0; padding: 22px; }
  .article-prose [style*="width"],
  .page-content-inner [style*="width"],
  .help-content > .site-inner [style*="width"] {
    box-sizing: border-box;
    max-width: 100% !important;
  }
  .article-prose table,
  .page-content-inner table,
  .help-content > .site-inner table {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto;
  }
  .page-content-inner .article-template,
  .participation-content .article-template,
  .help-content .article-template { font-size: 16px; line-height: 1.9; }
  .page-content-inner .article-template .article-lead,
  .participation-content .article-template .article-lead,
  .help-content .article-template .article-lead { margin-bottom: 30px; padding: 20px; font-size: 17px; }
  .page-content-inner .article-template .article-highlight,
  .page-content-inner .article-template .article-info-box,
  .page-content-inner .article-template .article-callout,
  .participation-content .article-template .article-highlight,
  .participation-content .article-template .article-info-box,
  .participation-content .article-template .article-callout,
  .help-content .article-template .article-highlight,
  .help-content .article-template .article-info-box,
  .help-content .article-template .article-callout { margin: 30px 0; padding: 22px; }
  .article-sidebar { position: static; grid-template-columns: 1fr; }
  .article-share-links { grid-template-columns: 1fr 1fr; }

  .participate { padding: 40px 0; }
  .participate-list { display: block; }
  .participate article { min-height: 0; grid-template-columns: 56px minmax(0, 1fr); column-gap: 16px; padding: 22px 4px; border-right: 0; border-bottom: 1px solid var(--line); }
  .participate article:last-child { border-bottom: 0; }
  .participate h3 { font-size: 20px; }
  .participate-icon { width: 52px; height: 52px; border-radius: 14px; }
  .participate-icon img { width: 35px; height: 35px; }

  .trust-row .site-inner { min-height: 0; display: block; padding: 34px 0; }
  .trust-row h2 { font-size: 21px; }
  .trust-fact { padding: 16px 0; border-bottom: 1px solid rgba(169,31,75,.13); }
  .trust-fact:last-child { border-bottom: 0; }
  .trust-account code { font-size: 13px; }

  .site-footer { padding: 34px 0; }
  .footer-grid { display: block; }
  .footer-grid > div + div { margin-top: 22px; }
  .footer-logo-mark { width: 62px; height: 62px; flex-basis: 62px; border-radius: 14px; }
  .page-hero .site-inner { padding-top: 18px; padding-bottom: 36px; }
  .breadcrumb { margin-bottom: 20px; font-size: 15px; }
  .page-hero-grid { display: flex; flex-direction: column; gap: 28px; }
  .page-hero-copy { width: 100%; }
  .page-eyebrow { margin-bottom: 10px; font-size: 11px; }
  .page-hero h1 { font-size: 38px; }
  .page-summary { margin-top: 14px; font-size: 15px; line-height: 1.75; }
  .page-hero-media { width: 100%; min-height: 210px; }
  .page-hero-media img { min-height: 210px; aspect-ratio: 16/10; }
  .page-hero-media.page-hero-media--contain { min-height: 0; }
  .page-hero-media--contain img { height: auto; min-height: 0; aspect-ratio: auto; object-fit: contain; }
  .page-content { padding: 48px 0 76px; }
  .page-content-inner { width: min(100% - 32px, 980px); }
  .page-content-inner > p { font-size: 15px; line-height: 1.85; }
  .page-content-inner > p:first-child { font-size: 18px; }
  .page-content h2 { margin-top: 50px; font-size: 26px; }
  .page-content blockquote { margin: 38px 0; padding: 28px 24px; }
  .page-content blockquote p { font-size: 16px; }
  .page-content ol, .page-content ul { grid-template-columns: 1fr; }
  .page-content ol li { min-height: 0; padding: 20px 20px 20px 62px; }
  .page-content ol li::before { left: 18px; top: 20px; }
  .page-content ul li { min-height: 0; padding: 22px 24px 24px; }
  .page-content ul li::before { width: 50px; height: 50px; margin-bottom: 16px; border-radius: 15px; background-size: 34px 34px; }
  .page-content figure { padding: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* FAQ */
.faq-hero { position: relative; overflow: hidden; border-bottom: 1px solid #f1dce3; background: linear-gradient(125deg, #fff9fb 0%, #ffedf3 58%, #f8d9e3 100%); }
.faq-hero::before,
.faq-hero::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; }
.faq-hero::before { width: 340px; height: 340px; right: -110px; top: -190px; border: 58px solid rgba(255,255,255,.42); }
.faq-hero::after { width: 190px; height: 190px; right: 23%; bottom: -142px; background: rgba(235,47,104,.08); }
.faq-hero .site-inner { position: relative; z-index: 1; padding-top: 26px; padding-bottom: 68px; }
.faq-hero .breadcrumb { margin-bottom: 48px; }
.faq-hero-grid { display: grid; grid-template-columns: minmax(0,1fr) 350px; gap: 82px; align-items: center; }
.faq-hero-copy .page-eyebrow { margin-bottom: 12px; }
.faq-hero h1 { margin: 0; font-size: clamp(44px,5.4vw,68px); line-height: 1.12; letter-spacing: .04em; }
.faq-hero h1 span { margin-left: .18em; color: var(--rose-dark); }
.faq-hero-copy > p:last-child { max-width: 660px; margin: 20px 0 0; color: var(--muted); font-size: 17px; line-height: 1.8; }
.faq-hero-overview { min-height: 158px; display: grid; grid-template-columns: 86px minmax(0,1fr); gap: 22px; align-items: center; padding: 26px 30px; border: 1px solid rgba(189,36,87,.16); border-radius: 22px; background: rgba(255,255,255,.72); box-shadow: 0 18px 46px rgba(106,36,62,.1); backdrop-filter: blur(10px); }
.faq-hero-overview img { width: 86px; height: 86px; padding: 11px; object-fit: contain; border-radius: 20px; background: var(--white); box-shadow: 0 8px 22px rgba(139,32,72,.1); }
.faq-hero-overview strong { display: block; color: var(--rose-dark); font-family: Georgia,serif; font-size: 47px; line-height: 1; }
.faq-hero-overview span { display: block; margin-top: 7px; color: var(--muted); font-size: 14px; line-height: 1.55; }

.faq-content { padding: 64px 0 90px; background: #fffdfd; }
.faq-tools { margin-bottom: 52px; }
.faq-search { position: relative; width: min(760px,100%); display: block; margin: 0 auto; }
.faq-search svg { position: absolute; left: 22px; top: 50%; width: 23px; height: 23px; fill: none; stroke: var(--rose-dark); stroke-width: 1.8; stroke-linecap: round; transform: translateY(-50%); pointer-events: none; }
.faq-search input { width: 100%; height: 62px; padding: 0 24px 0 60px; border: 1px solid #e5d5da; border-radius: 999px; color: var(--ink); background: var(--white); box-shadow: 0 12px 34px rgba(92,46,61,.07); transition: border-color .2s ease,box-shadow .2s ease; }
.faq-search input::placeholder { color: #9a8e8a; }
.faq-search input:focus { border-color: var(--rose); outline: none; box-shadow: 0 0 0 4px rgba(235,47,104,.11),0 12px 34px rgba(92,46,61,.08); }
.faq-filter { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 24px; }
.faq-filter button { min-height: 42px; display: inline-flex; align-items: center; gap: 9px; padding: 0 17px; border: 1px solid #e8dce0; border-radius: 999px; color: #645956; background: var(--white); cursor: pointer; transition: color .2s ease,border-color .2s ease,background-color .2s ease,transform .2s ease; }
.faq-filter button span { min-width: 23px; height: 23px; display: inline-grid; place-items: center; padding: 0 5px; border-radius: 999px; color: var(--berry); background: var(--blush); font-size: 11px; font-weight: 800; }
.faq-filter button:hover { border-color: #e6aabd; color: var(--rose-dark); transform: translateY(-1px); }
.faq-filter button.is-active { border-color: var(--rose-dark); color: var(--white); background: var(--rose-dark); }
.faq-filter button.is-active span { color: var(--rose-dark); background: var(--white); }
.faq-results { margin: 15px 0 0; color: #8a7e7a; text-align: center; font-size: 13px; }

.faq-groups { display: grid; gap: 52px; }
.faq-group { display: grid; grid-template-columns: 220px minmax(0,1fr); gap: 46px; align-items: start; scroll-margin-top: 20px; }
.faq-group-heading { position: sticky; top: 18px; padding-top: 13px; }
.faq-group-heading::before { content: ""; width: 34px; height: 4px; display: block; margin-bottom: 20px; border-radius: 99px; background: var(--rose); }
.faq-group-heading p { margin: 0 0 7px; color: var(--rose-dark); font-size: 11px; font-weight: 800; letter-spacing: .16em; }
.faq-group-heading h2 { margin: 0; font-size: 25px; line-height: 1.35; }
.faq-group-heading > span { display: block; margin-top: 10px; color: #978b87; font-size: 13px; }
.faq-list { border-top: 1px solid #d9ceca; }
.faq-item { border-bottom: 1px solid #e6deda; }
.faq-item summary { min-height: 92px; display: grid; grid-template-columns: 74px minmax(0,1fr) 38px; gap: 20px; align-items: center; padding: 20px 12px 20px 0; cursor: pointer; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-number { color: var(--rose-dark); font-family: Georgia,serif; font-size: 18px; font-weight: 700; letter-spacing: .06em; }
.faq-question { font-size: 19px; font-weight: 750; line-height: 1.55; transition: color .2s ease; }
.faq-toggle { position: relative; width: 34px; height: 34px; border: 1px solid #ead7dd; border-radius: 50%; background: var(--blush); transition: background-color .2s ease,transform .2s ease; }
.faq-toggle::before,
.faq-toggle::after { content: ""; position: absolute; left: 50%; top: 50%; width: 13px; height: 2px; border-radius: 2px; background: var(--rose-dark); transform: translate(-50%,-50%); }
.faq-toggle::after { transform: translate(-50%,-50%) rotate(90deg); transition: transform .2s ease; }
.faq-item summary:hover .faq-question { color: var(--rose-dark); }
.faq-item[open] { margin: 0 -18px; padding: 0 18px 19px; border-bottom-color: transparent; border-radius: 14px; background: #fff5f8; }
.faq-item[open] summary { min-height: 91px; }
.faq-item[open] .faq-toggle { border-color: var(--rose-dark); background: var(--rose-dark); transform: rotate(180deg); }
.faq-item[open] .faq-toggle::before,
.faq-item[open] .faq-toggle::after { background: var(--white); }
.faq-item[open] .faq-toggle::after { transform: translate(-50%,-50%); }
.faq-answer { display: grid; grid-template-columns: 74px minmax(0,1fr); gap: 20px; padding: 2px 50px 8px 0; }
.faq-answer-label { padding-top: 4px; color: var(--rose-dark); font-size: 10px; font-weight: 800; letter-spacing: .11em; }
.faq-answer-body { color: #5f5551; font-size: 15px; line-height: 1.85; }
.faq-answer-body > *:first-child { margin-top: 0; }
.faq-answer-body > *:last-child { margin-bottom: 0; }
.faq-answer-body p { margin: 0 0 13px; }
.faq-answer-body ul,
.faq-answer-body ol { margin: 10px 0 14px; padding-left: 1.4em; }
.faq-answer-body li + li { margin-top: 5px; }
.faq-empty { padding: 62px 24px; border: 1px dashed #e3cbd4; border-radius: 18px; text-align: center; background: var(--blush); }
.faq-empty img { width: 72px; height: 72px; margin: 0 auto 18px; object-fit: contain; }
.faq-empty h2 { margin: 0; font-size: 23px; }
.faq-empty p { margin: 10px 0 0; color: var(--muted); }

.faq-contact { position: relative; display: grid; grid-template-columns: 82px minmax(0,1fr) auto; gap: 24px; align-items: center; margin-top: 72px; padding: 28px 34px; overflow: hidden; border-radius: 20px; color: var(--white); background: linear-gradient(115deg,var(--berry) 0%,var(--rose-dark) 58%,var(--rose) 100%); box-shadow: 0 20px 54px rgba(119,24,60,.18); }
.faq-contact::after { content: ""; position: absolute; right: -70px; bottom: -105px; width: 280px; height: 190px; border-radius: 50%; background: rgba(255,255,255,.09); transform: rotate(-18deg); pointer-events: none; }
.faq-contact-mark { width: 82px; height: 82px; display: grid; place-items: center; border-radius: 19px; background: var(--white); }
.faq-contact-mark img { width: 70px; height: 70px; object-fit: contain; }
.faq-contact-copy { position: relative; z-index: 1; }
.faq-contact-copy p { margin: 0 0 5px; color: #ffd5e2; font-size: 11px; font-weight: 800; letter-spacing: .14em; }
.faq-contact-copy h2 { margin: 0; color: var(--white); font-size: 24px; line-height: 1.4; }
.faq-contact-actions { position: relative; z-index: 1; display: flex; align-items: center; gap: 22px; }
.faq-contact-direct { display: grid; gap: 4px; justify-items: end; }
.faq-contact-phone { color: var(--white); font-size: 17px; font-weight: 800; white-space: nowrap; }
.faq-contact-email { color: rgba(255,255,255,.82); font-size: 12px; line-height: 1.4; white-space: nowrap; }
.faq-contact-phone:hover,
.faq-contact-email:hover { text-decoration: underline; text-underline-offset: 3px; }
.faq-contact .button-primary { min-height: 48px; gap: 13px; padding: 0 22px; color: var(--berry); background: var(--white); white-space: nowrap; }
.faq-contact .button-primary:hover { color: var(--white); background: #6f173b; }

@media (max-width: 900px) {
  .faq-hero-grid { grid-template-columns: minmax(0,1fr) 290px; gap: 36px; }
  .faq-hero-overview { grid-template-columns: 68px minmax(0,1fr); padding: 22px; }
  .faq-hero-overview img { width: 68px; height: 68px; }
  .faq-group { grid-template-columns: 170px minmax(0,1fr); gap: 28px; }
  .faq-contact { grid-template-columns: 72px minmax(0,1fr); }
  .faq-contact-mark { width: 72px; height: 72px; }
  .faq-contact-mark img { width: 62px; height: 62px; }
  .faq-contact-actions { grid-column: 2; }
}

@media (max-width: 700px) {
  .faq-hero .site-inner { width: calc(100% - 34px); padding-top: 18px; padding-bottom: 44px; }
  .faq-hero .breadcrumb { margin-bottom: 30px; }
  .faq-hero-grid { display: block; }
  .faq-hero h1 { font-size: 40px; }
  .faq-hero-copy > p:last-child { margin-top: 15px; font-size: 15px; line-height: 1.75; }
  .faq-hero-overview { min-height: 0; grid-template-columns: 58px minmax(0,1fr); gap: 16px; margin-top: 28px; padding: 18px; border-radius: 16px; }
  .faq-hero-overview img { width: 58px; height: 58px; padding: 8px; border-radius: 14px; }
  .faq-hero-overview strong { display: inline; margin-right: 7px; font-size: 34px; }
  .faq-hero-overview span { display: inline; font-size: 13px; }
  .faq-content { padding: 42px 0 74px; }
  .faq-content > .site-inner { width: calc(100% - 34px); }
  .faq-tools { margin-bottom: 40px; }
  .faq-search input { height: 54px; padding-left: 52px; font-size: 14px; }
  .faq-search svg { left: 18px; width: 21px; height: 21px; }
  .faq-filter { flex-wrap: nowrap; justify-content: flex-start; margin-right: -17px; padding: 0 17px 5px 0; overflow-x: auto; scrollbar-width: none; }
  .faq-filter::-webkit-scrollbar { display: none; }
  .faq-filter button { flex: 0 0 auto; min-height: 40px; }
  .faq-groups { gap: 44px; }
  .faq-group { display: block; }
  .faq-group-heading { position: static; display: grid; grid-template-columns: 1fr auto; align-items: end; margin-bottom: 16px; padding-top: 0; }
  .faq-group-heading::before { grid-column: 1 / -1; margin-bottom: 14px; }
  .faq-group-heading p { grid-column: 1 / -1; }
  .faq-group-heading h2 { font-size: 22px; }
  .faq-group-heading > span { margin: 0 0 2px; }
  .faq-item summary { min-height: 78px; grid-template-columns: 51px minmax(0,1fr) 32px; gap: 12px; padding: 15px 3px 15px 0; }
  .faq-number { font-size: 15px; }
  .faq-question { font-size: 16px; line-height: 1.55; }
  .faq-toggle { width: 30px; height: 30px; }
  .faq-item[open] { margin: 0 -10px; padding: 0 10px 18px; border-radius: 11px; }
  .faq-item[open] summary { min-height: 77px; }
  .faq-answer { display: block; padding: 0 4px 4px 51px; }
  .faq-answer-label { margin-bottom: 8px; padding: 0; }
  .faq-answer-body { font-size: 14px; line-height: 1.8; }
  .faq-contact { display: grid; grid-template-columns: 58px minmax(0,1fr); gap: 17px; margin-top: 54px; padding: 23px 20px; border-radius: 16px; }
  .faq-contact-mark { width: 58px; height: 58px; border-radius: 14px; }
  .faq-contact-mark img { width: 50px; height: 50px; }
  .faq-contact-copy h2 { font-size: 20px; }
  .faq-contact-actions { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1.2fr; gap: 10px; }
  .faq-contact-direct,
  .faq-contact .button-primary { min-height: 52px; display: flex; align-items: center; justify-content: center; padding: 0 10px; border: 1px solid rgba(255,255,255,.38); border-radius: 5px; }
  .faq-contact-direct { flex-direction: column; gap: 2px; }
  .faq-contact-phone { font-size: 13px; }
  .faq-contact-email { max-width: 100%; font-size: 10px; white-space: normal; overflow-wrap: anywhere; text-align: center; }
  .faq-contact .button-primary { font-size: 13px; }
}

/* Elder and volunteer stories */
.stories-hero {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid #efd9e0;
  background:
    radial-gradient(circle at 86% 18%, rgba(235,47,104,.13) 0 9%, transparent 9.5%),
    linear-gradient(118deg, #fffaf8 0%, #fff2f5 56%, #f8dce5 100%);
}
.stories-hero::before {
  content: "";
  position: absolute;
  right: -170px;
  bottom: -250px;
  width: 520px;
  height: 520px;
  border: 82px solid rgba(255,255,255,.38);
  border-radius: 50%;
  pointer-events: none;
}
.stories-hero .site-inner {
  position: relative;
  z-index: 1;
  padding-top: 26px;
  padding-bottom: 72px;
}
.stories-hero .breadcrumb { margin-bottom: 48px; }
.stories-hero-grid {
  display: grid;
  grid-template-columns: minmax(0,1fr) 390px;
  gap: 80px;
  align-items: center;
}
.stories-hero-copy .page-eyebrow { margin-bottom: 12px; }
.stories-hero h1 {
  margin: 0;
  font-size: clamp(44px,5.2vw,66px);
  line-height: 1.14;
  letter-spacing: .035em;
}
.stories-hero h1 span { margin-left: .15em; color: var(--rose-dark); }
.stories-hero-copy > p:last-child {
  max-width: 700px;
  margin: 20px 0 0;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.85;
}
.stories-hero-quote {
  position: relative;
  margin: 0;
  padding: 32px 34px 28px;
  border: 1px solid rgba(185,43,89,.18);
  border-radius: 22px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 18px 46px rgba(106,36,62,.1);
  backdrop-filter: blur(10px);
}
.stories-hero-quote > span {
  position: absolute;
  left: 22px;
  top: 10px;
  color: rgba(196,34,88,.16);
  font-family: Georgia,serif;
  font-size: 78px;
  line-height: 1;
}
.stories-hero-quote p {
  position: relative;
  margin: 0;
  color: #4d4240;
  font-family: Georgia, "Noto Serif TC", serif;
  font-size: 19px;
  font-weight: 650;
  line-height: 1.8;
}
.stories-hero-quote footer {
  margin-top: 15px;
  color: var(--rose-dark);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
}

.stories-content { padding: 62px 0 92px; background: #fffdfc; }
.stories-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 34px;
}
.stories-filter { display: flex; flex-wrap: wrap; gap: 10px; }
.stories-filter button {
  min-height: 43px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 0 17px;
  border: 1px solid #e5d7db;
  border-radius: 999px;
  color: #645956;
  background: var(--white);
  cursor: pointer;
  transition: color .2s ease,border-color .2s ease,background-color .2s ease,transform .2s ease;
}
.stories-filter button span {
  min-width: 24px;
  height: 24px;
  display: inline-grid;
  place-items: center;
  padding: 0 6px;
  border-radius: 999px;
  color: var(--rose-dark);
  background: var(--blush);
  font-size: 11px;
  font-weight: 800;
}
.stories-filter button:hover { border-color: #e4a8ba; color: var(--rose-dark); transform: translateY(-1px); }
.stories-filter button.is-active { border-color: var(--rose-dark); color: var(--white); background: var(--rose-dark); }
.stories-filter button.is-active span { color: var(--rose-dark); background: var(--white); }
.stories-toolbar > p { margin: 0; color: #8b7e7a; font-size: 13px; white-space: nowrap; }
.stories-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px; }
.story-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #eadde0;
  border-radius: 22px;
  background: var(--white);
  box-shadow: 0 18px 46px rgba(99,45,62,.08);
  transition: transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.story-card:hover {
  border-color: #e6bdca;
  box-shadow: 0 24px 58px rgba(105,39,62,.13);
  transform: translateY(-4px);
}
.story-card[hidden] { display: none; }
.story-card-media {
  position: relative;
  display: block;
  overflow: hidden;
  background: #f8e8ed;
}
.story-card-media > img,
.story-card-media > .archive-image-placeholder {
  width: 100%;
  aspect-ratio: 16/10;
  display: block;
}
.story-card-media > img {
  object-fit: cover;
  object-position: center;
  transition: transform .5s ease;
}
.story-card:hover .story-card-media > img { transform: scale(1.025); }
.story-card-media > .archive-image-placeholder { display: grid; place-items: center; }
.story-card-media > .archive-image-placeholder img { width: 92px; height: 92px; object-fit: contain; }
.story-card-category {
  position: absolute;
  left: 20px;
  bottom: 18px;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  padding: 0 14px;
  border-radius: 999px;
  color: var(--white);
  background: rgba(144,27,68,.94);
  box-shadow: 0 8px 20px rgba(68,18,35,.18);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .05em;
}
.story-card-copy { padding: 30px 32px 33px; }
.story-card-copy > p {
  margin: 0 0 12px;
  color: var(--rose-dark);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .16em;
}
.story-card-copy h2 { margin: 0; font-size: clamp(24px,2.15vw,31px); line-height: 1.45; }
.story-card-copy h2 a { color: var(--ink); }
.story-card-copy h2 a:hover { color: var(--rose-dark); }
.story-card-summary { margin-top: 15px; color: var(--muted); font-size: 15px; line-height: 1.8; }
.story-card-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 23px;
  color: var(--rose-dark);
  font-size: 14px;
  font-weight: 800;
}
.story-card-link span { transition: transform .2s ease; }
.story-card-link:hover span { transform: translateX(4px); }
.stories-empty {
  padding: 62px 24px;
  border: 1px dashed #e3cbd4;
  border-radius: 20px;
  text-align: center;
  background: var(--blush);
}
.stories-empty img { width: 74px; height: 74px; margin: 0 auto 18px; object-fit: contain; }
.stories-empty h2 { margin: 0; font-size: 23px; }
.stories-empty p { margin: 10px 0 0; color: var(--muted); }
.stories-privacy-note {
  width: fit-content;
  max-width: 780px;
  margin: 32px auto 0;
  display: flex;
  align-items: center;
  gap: 8px;
  color: #897c78;
  font-size: 12px;
  line-height: 1.75;
  text-align: left;
}
.stories-privacy-lock { width: 18px; height: 18px; display: grid; flex: 0 0 18px; place-items: center; color: #c38499; }
.stories-privacy-lock svg { width: 100%; height: 100%; display: block; }
.stories-cta {
  position: relative;
  display: grid;
  grid-template-columns: 76px minmax(0,1fr) auto;
  gap: 24px;
  align-items: center;
  margin-top: 62px;
  padding: 30px 34px;
  overflow: hidden;
  border: 1px solid #f1bfd0;
  border-radius: 22px;
  background: linear-gradient(112deg,#fff8fa 0%,#ffe8ef 100%);
  box-shadow: 0 18px 44px rgba(111,31,59,.08);
}
.stories-cta::after {
  content: "";
  position: absolute;
  right: -62px;
  bottom: -120px;
  width: 250px;
  height: 210px;
  border-radius: 50%;
  background: rgba(235,47,104,.07);
  pointer-events: none;
}
.stories-cta > img {
  width: 76px;
  height: 76px;
  padding: 8px;
  border-radius: 18px;
  object-fit: contain;
  background: var(--white);
  box-shadow: 0 10px 25px rgba(111,31,59,.09);
}
.stories-cta > div { position: relative; z-index: 1; }
.stories-cta > div > p { margin: 0 0 6px; color: var(--rose-dark); font-size: 10px; font-weight: 850; letter-spacing: .16em; }
.stories-cta h2 { margin: 0; font-size: 22px; line-height: 1.45; }
.stories-cta-actions { display: flex; align-items: center; gap: 18px; }
.stories-cta-actions > a:first-child { color: var(--berry); font-size: 14px; font-weight: 800; white-space: nowrap; }
.stories-cta-actions > a:first-child:hover { color: var(--rose); }
.stories-cta .button-primary {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  gap: 13px;
  padding: 0 22px;
  color: var(--white);
  background: var(--rose-dark);
  white-space: nowrap;
}
.stories-cta .button-primary:hover { background: var(--berry); }

.story-detail-body .article-detail-header {
  background:
    radial-gradient(circle at 82% 0, rgba(235,47,104,.12) 0 10%, transparent 10.5%),
    linear-gradient(120deg,#fffaf8 0%,#fff0f4 62%,#f8dce5 100%);
}
.story-detail-body .article-detail-meta span {
  border-color: #e6bac7;
  color: var(--rose-dark);
  background: rgba(255,255,255,.72);
}
.story-detail-body .article-cover {
  overflow: hidden;
  border-radius: 24px;
  box-shadow: 0 22px 58px rgba(80,34,48,.11);
}
.story-detail-body .article-cover img {
  width: 100%;
  height: auto;
  max-height: none;
  aspect-ratio: auto;
  display: block;
  object-fit: contain;
}
.story-detail-body .article-prose > p:first-child {
  color: #473d3a;
  font-family: Georgia, "Noto Serif TC", serif;
  font-size: 20px;
  font-weight: 650;
  line-height: 1.9;
}
.story-detail-body .article-prose h2 { color: var(--rose-dark); }
.story-detail-body .article-prose blockquote {
  border-left-color: var(--rose);
  background: linear-gradient(110deg,#fff4f7,#ffe9ef);
}

@media (max-width: 960px) {
  .stories-hero-grid { grid-template-columns: minmax(0,1fr) 320px; gap: 42px; }
  .stories-cta { grid-template-columns: 70px minmax(0,1fr); }
  .stories-cta > img { width: 70px; height: 70px; }
  .stories-cta-actions { grid-column: 2; }
}

@media (max-width: 700px) {
  .stories-hero .site-inner { width: calc(100% - 34px); padding-top: 18px; padding-bottom: 45px; }
  .stories-hero .breadcrumb { margin-bottom: 30px; }
  .stories-hero-grid { display: block; }
  .stories-hero h1 { font-size: 39px; }
  .stories-hero-copy > p:last-child { margin-top: 15px; font-size: 15px; line-height: 1.75; }
  .stories-hero-quote { margin-top: 28px; padding: 23px 24px 21px; border-radius: 16px; }
  .stories-hero-quote > span { left: 15px; top: 5px; font-size: 58px; }
  .stories-hero-quote p { font-size: 15px; line-height: 1.75; }
  .stories-content { padding: 42px 0 74px; }
  .stories-content > .site-inner { width: calc(100% - 34px); }
  .stories-toolbar { display: block; margin-bottom: 24px; }
  .stories-filter {
    flex-wrap: nowrap;
    margin-right: -17px;
    padding: 0 17px 5px 0;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .stories-filter::-webkit-scrollbar { display: none; }
  .stories-filter button { flex: 0 0 auto; min-height: 40px; }
  .stories-toolbar > p { margin-top: 10px; text-align: right; }
  .stories-grid { grid-template-columns: 1fr; gap: 22px; }
  .story-card { border-radius: 17px; }
  .story-card-media > img,
  .story-card-media > .archive-image-placeholder { aspect-ratio: 4/3; }
  .story-card-category { left: 15px; bottom: 14px; }
  .story-card-copy { padding: 23px 22px 25px; }
  .story-card-copy h2 { font-size: 23px; }
  .story-card-summary { font-size: 14px; }
  .stories-privacy-note { margin-top: 25px; text-align: left; }
  .stories-privacy-lock { display: none; }
  .stories-cta { grid-template-columns: 54px minmax(0,1fr); gap: 15px; margin-top: 48px; padding: 22px 19px; border-radius: 16px; }
  .stories-cta > img { width: 54px; height: 54px; padding: 6px; border-radius: 13px; }
  .stories-cta h2 { font-size: 18px; }
  .stories-cta-actions { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1.3fr; gap: 10px; }
  .stories-cta-actions > a:first-child,
  .stories-cta .button-primary { min-height: 46px; display: flex; align-items: center; justify-content: center; padding: 0 10px; border: 1px solid #e2a8bb; border-radius: 5px; font-size: 12px; }
  .stories-cta .button-primary { border-color: var(--rose-dark); }
  .story-detail-body .article-cover { width: calc(100% - 34px); border-radius: 16px; }
  .story-detail-body .article-cover img { aspect-ratio: auto; }
  .story-detail-body .article-prose > p:first-child { font-size: 17px; }
}

/* Get involved */
.participation-hero {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid #efdde2;
  background:
    radial-gradient(circle at 91% 17%, rgba(235,47,104,.11) 0 8%, transparent 8.5%),
    linear-gradient(125deg,#fffaf8 0%,#fff2f5 58%,#f7dce5 100%);
}
.participation-hero::before {
  content: "";
  position: absolute;
  right: -175px;
  top: -255px;
  width: 520px;
  height: 520px;
  border: 76px solid rgba(255,255,255,.35);
  border-radius: 50%;
  pointer-events: none;
}
.participation-hero .site-inner { position: relative; z-index: 1; padding-top: 26px; padding-bottom: 54px; }
.participation-hero .breadcrumb { margin-bottom: 43px; }
.participation-hero-copy { max-width: 850px; }
.participation-hero-copy .page-eyebrow { margin-bottom: 12px; }
.participation-hero h1 {
  margin: 0;
  font-size: clamp(48px,5.5vw,70px);
  line-height: 1.08;
  letter-spacing: .04em;
}
.participation-hero h1 span { margin-left: .14em; color: var(--rose-dark); }
.participation-hero-copy > p:last-child {
  max-width: 760px;
  margin: 20px 0 0;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.85;
}
.participation-hero-band {
  position: relative;
  margin: 44px 0 0;
  overflow: hidden;
  border: 7px solid rgba(255,255,255,.72);
  border-radius: 22px;
  background: #67584a;
  box-shadow: 0 22px 54px rgba(78,42,51,.14);
}
.participation-hero-band::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,rgba(28,20,18,.2),transparent 42%,rgba(75,34,45,.1));
  pointer-events: none;
}
.participation-hero-band img { width: 100%; aspect-ratio: 6.4/1; object-fit: cover; }
.participation-hero-band figcaption {
  position: absolute;
  z-index: 1;
  left: 24px;
  bottom: 20px;
  max-width: calc(100% - 48px);
  padding: 10px 15px;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 999px;
  color: var(--white);
  background: rgba(72,34,44,.66);
  backdrop-filter: blur(8px);
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .04em;
}

.participation-content { padding: 76px 0 92px; background: #fffdfc; }
.participation-content > .site-inner { display: grid; gap: 96px; }
.participation-pathways,
.participation-action,
.participation-volunteer,
.participation-partners { scroll-margin-top: 24px; }
.participation-section-heading { max-width: 760px; margin: 0 auto 36px; text-align: center; }
.participation-section-heading > p {
  margin: 0 0 10px;
  color: var(--rose-dark);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .18em;
}
.participation-section-heading h2 {
  margin: 0;
  font-size: clamp(34px,4.1vw,50px);
  line-height: 1.22;
  letter-spacing: .03em;
}
.participation-section-heading h2 span { margin-left: .12em; color: var(--rose-dark); }
.participation-section-heading > div {
  margin-top: 15px;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.8;
}
.participation-section-heading--left { max-width: 780px; margin-right: 0; margin-left: 0; text-align: left; }
.participation-path-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.participation-path-card {
  position: relative;
  min-height: 315px;
  display: flex;
  flex-direction: column;
  padding: 27px 25px 24px;
  overflow: hidden;
  border: 1px solid #eadde0;
  border-radius: 20px;
  background: var(--white);
  box-shadow: 0 14px 38px rgba(82,43,54,.07);
  transition: transform .24s ease,box-shadow .24s ease,border-color .24s ease;
}
.participation-path-card::after {
  content: "";
  position: absolute;
  right: -37px;
  bottom: -49px;
  width: 126px;
  height: 126px;
  border-radius: 50%;
  background: rgba(235,47,104,.055);
}
.participation-path-card:hover {
  border-color: #e4b5c3;
  box-shadow: 0 21px 48px rgba(89,35,55,.12);
  transform: translateY(-5px);
}
.participation-path-number {
  position: absolute;
  right: 21px;
  top: 19px;
  color: #b7a7a5;
  font-family: Georgia,serif;
  font-size: 13px;
  font-weight: 750;
}
.participation-path-icon {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  margin-bottom: 24px;
  border-radius: 17px;
  color: var(--white);
  background: linear-gradient(145deg,var(--rose),var(--rose-dark));
  box-shadow: 0 10px 26px rgba(189,36,87,.2);
  font-size: 24px;
  font-weight: 850;
}
.participation-path-card--volunteer .participation-path-icon { background: linear-gradient(145deg,#b96b44,#92502f); }
.participation-path-card--partner .participation-path-icon { background: linear-gradient(145deg,#9f3f68,var(--berry)); }
.participation-path-card--career .participation-path-icon { background: linear-gradient(145deg,#63504c,#332a28); }
.participation-path-card h3 { margin: 0; font-size: 23px; line-height: 1.4; }
.participation-path-card p { margin: 11px 0 0; color: var(--muted); font-size: 14px; line-height: 1.75; }
.participation-path-card strong {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: auto;
  padding-top: 18px;
  color: var(--rose-dark);
  font-size: 13px;
}
.participation-path-card strong span { transition: transform .2s ease; }
.participation-path-card:hover strong span { transform: translateX(4px); }

.participation-action {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0,1fr) 430px;
  gap: 54px;
  align-items: center;
  padding: 48px 52px;
  overflow: hidden;
  border: 1px solid #efc6d2;
  border-radius: 26px;
  background: linear-gradient(118deg,#fff8fa 0%,#ffedf3 58%,#f7d7e1 100%);
  box-shadow: 0 21px 55px rgba(107,32,59,.09);
}
.participation-action::before {
  content: "";
  position: absolute;
  left: -90px;
  bottom: -125px;
  width: 250px;
  height: 250px;
  border-radius: 50%;
  background: rgba(255,255,255,.45);
}
.participation-action-copy { position: relative; z-index: 1; }
.participation-action-copy > p { margin: 0 0 11px; color: var(--rose-dark); font-size: 11px; font-weight: 850; letter-spacing: .18em; }
.participation-action-copy h2 { margin: 0; font-size: clamp(30px,3.5vw,43px); line-height: 1.35; }
.participation-action-copy > div:not(.participation-action-buttons) { margin-top: 17px; color: var(--muted); font-size: 15px; line-height: 1.85; }
.participation-action-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 17px; margin-top: 27px; }
.participation-button { min-height: 49px; display: inline-flex; align-items: center; justify-content: center; gap: 12px; font-size: 14px; font-weight: 800; }
.participation-button--primary { padding: 0 22px; border-radius: 5px; color: var(--white); background: var(--rose-dark); box-shadow: 0 10px 24px rgba(153,28,74,.16); }
.participation-button--primary:hover { background: var(--berry); }
.participation-button--text { color: var(--berry); }
.participation-button--text:hover { color: var(--rose); }
.participation-bank-card {
  position: relative;
  z-index: 1;
  padding: 28px 30px 25px;
  border: 1px solid rgba(189,36,87,.16);
  border-radius: 20px;
  background: rgba(255,255,255,.83);
  box-shadow: 0 17px 42px rgba(91,39,56,.11);
  backdrop-filter: blur(8px);
}
.participation-bank-card > span { color: var(--rose-dark); font-size: 10px; font-weight: 850; letter-spacing: .14em; }
.participation-transfer-methods { display: grid; gap: 12px; margin-top: 12px; }
.participation-transfer-method {
  padding: 15px 16px 14px;
  border: 1px solid #ead5dc;
  border-radius: 11px;
  background: #fff8fa;
}
.participation-transfer-method--postal { background: #fff; }
.participation-transfer-method > small:first-child {
  color: var(--rose-dark);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .08em;
}
.participation-transfer-method h3 { margin: 5px 0 11px; font-size: 18px; }
.participation-account-row {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 10px 11px;
  border: 1px solid #efdde3;
  border-radius: 7px;
  background: var(--white);
}
.participation-account-row small { color: #8d7b78; font-size: 10px; }
.participation-bank-card code { color: var(--berry); font-family: ui-monospace,SFMono-Regular,Consolas,monospace; font-size: 18px; font-weight: 850; letter-spacing: .04em; }
.participation-bank-card button {
  min-height: 32px;
  padding: 0 10px;
  border: 1px solid #dfb6c3;
  border-radius: 5px;
  color: var(--rose-dark);
  background: var(--white);
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
}
.participation-bank-card button:hover { color: var(--white); background: var(--rose-dark); }
.participation-transfer-method > p { margin: 9px 0 0; color: #5d504c; font-size: 11px; font-weight: 700; }
.participation-bank-card > small:last-child { display: block; margin-top: 13px; color: #8a7d78; font-size: 10px; line-height: 1.65; }

.participation-volunteer { padding: 4px 0; }
.participation-volunteer-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.participation-volunteer-grid article {
  position: relative;
  min-height: 330px;
  padding: 35px 36px 32px;
  overflow: hidden;
  border: 1px solid #e8dcda;
  border-radius: 22px;
  background: var(--white);
  box-shadow: 0 16px 44px rgba(75,43,48,.07);
}
.participation-volunteer-grid article > span {
  position: absolute;
  right: 20px;
  top: 3px;
  color: rgba(189,36,87,.08);
  font-family: Georgia,serif;
  font-size: 112px;
  font-weight: 800;
  line-height: 1;
}
.participation-volunteer-grid h3 { position: relative; margin: 0; font-size: 27px; }
.participation-volunteer-grid p { position: relative; margin: 14px 0 19px; color: var(--muted); font-size: 14px; line-height: 1.8; }
.participation-volunteer-grid ul { position: relative; margin: 0; padding: 0; list-style: none; }
.participation-volunteer-grid li { position: relative; padding: 8px 0 8px 22px; border-top: 1px solid #eee4e0; color: #5d524e; font-size: 13px; }
.participation-volunteer-grid li::before { content: ""; position: absolute; left: 1px; top: 14px; width: 8px; height: 8px; border-radius: 50%; background: var(--rose); }
.participation-inline-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 22px;
  padding: 20px 24px;
  border-radius: 13px;
  background: var(--blush);
}
.participation-inline-cta strong { font-size: 14px; }
.participation-inline-cta a { display: inline-flex; align-items: center; gap: 11px; color: var(--rose-dark); font-size: 13px; font-weight: 850; white-space: nowrap; }

.participation-partners { padding-top: 2px; }
.participation-partner-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.participation-partner-grid article {
  min-height: 205px;
  padding: 25px 26px;
  border: 1px solid #e8ddda;
  border-radius: 18px;
  background: #fffaf9;
  transition: border-color .2s ease,background-color .2s ease,transform .2s ease;
}
.participation-partner-grid article:hover { border-color: #e1aabe; background: var(--white); transform: translateY(-3px); }
.participation-partner-grid article > span { color: var(--rose-dark); font-family: Georgia,serif; font-size: 13px; font-weight: 800; }
.participation-partner-grid h3 { margin: 13px 0 15px; font-size: 20px; }
.participation-partner-grid ul { margin: 0; padding: 0; list-style: none; }
.participation-partner-grid li { position: relative; padding-left: 15px; color: var(--muted); font-size: 13px; line-height: 1.7; }
.participation-partner-grid li + li { margin-top: 5px; }
.participation-partner-grid li::before { content: ""; position: absolute; left: 0; top: .72em; width: 5px; height: 5px; border-radius: 50%; background: #cb6b8b; }
.participation-partner-cta {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 26px;
  align-items: center;
  margin-top: 22px;
  padding: 27px 30px;
  border-radius: 16px;
  color: var(--white);
  background: linear-gradient(115deg,var(--berry),var(--rose-dark));
}
.participation-partner-cta div > span { color: #ffd4e1; font-size: 10px; font-weight: 850; letter-spacing: .16em; }
.participation-partner-cta strong { display: block; margin-top: 5px; font-size: 21px; }
.participation-partner-cta p { margin: 7px 0 0; color: rgba(255,255,255,.78); font-size: 13px; }
.participation-partner-cta > a {
  min-height: 47px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 0 20px;
  border-radius: 5px;
  color: var(--berry);
  background: var(--white);
  font-size: 13px;
  font-weight: 850;
  white-space: nowrap;
}
.participation-partner-cta > a:hover { color: var(--white); background: #6f173b; }

.participation-careers {
  padding: 76px 0 82px;
  color: var(--white);
  background:
    radial-gradient(circle at 90% 15%,rgba(235,47,104,.23),transparent 28%),
    linear-gradient(120deg,#2f2528 0%,#5b2439 60%,#8b2048 100%);
}
.participation-section-heading--light { color: var(--white); }
.participation-section-heading--light > p { color: #ffb8cd; }
.participation-section-heading--light h2 span { color: #ff8aae; }
.participation-section-heading--light > div { color: rgba(255,255,255,.72); }
.participation-job-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.participation-job-card { padding: 28px 30px; border: 1px solid rgba(255,255,255,.18); border-radius: 18px; background: rgba(255,255,255,.09); backdrop-filter: blur(8px); }
.participation-job-card > span { color: #ffbfd1; font-size: 10px; font-weight: 850; letter-spacing: .14em; }
.participation-job-card h3 { margin: 9px 0 11px; color: var(--white); font-size: 24px; }
.participation-job-card p { margin: 0; color: rgba(255,255,255,.72); font-size: 14px; line-height: 1.75; }
.participation-job-card a { display: inline-flex; align-items: center; gap: 10px; margin-top: 21px; color: var(--white); font-size: 13px; font-weight: 850; }
.participation-careers-empty {
  max-width: 820px;
  display: grid;
  grid-template-columns: 70px minmax(0,1fr) auto;
  gap: 23px;
  align-items: center;
  margin: 0 auto;
  padding: 26px 30px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 20px;
  background: rgba(255,255,255,.09);
  backdrop-filter: blur(9px);
}
.participation-careers-empty img { width: 70px; height: 70px; padding: 7px; border-radius: 16px; object-fit: contain; background: var(--white); }
.participation-careers-empty h3 { margin: 0; color: var(--white); font-size: 21px; }
.participation-careers-empty p { margin: 7px 0 0; color: rgba(255,255,255,.72); font-size: 13px; line-height: 1.65; }
.participation-careers-empty > a { min-height: 44px; display: inline-flex; align-items: center; padding: 0 18px; border: 1px solid rgba(255,255,255,.5); border-radius: 5px; font-size: 13px; font-weight: 800; white-space: nowrap; }
.participation-careers-empty > a:hover { color: var(--berry); background: var(--white); }

.participation-contact { padding: 62px 0; background: #fff8fa; }
.participation-contact-inner {
  position: relative;
  display: grid;
  grid-template-columns: 82px minmax(0,1fr) auto auto;
  gap: 24px;
  align-items: center;
  padding: 29px 34px;
  overflow: hidden;
  border: 1px solid #efc4d0;
  border-radius: 21px;
  background: linear-gradient(115deg,#fff 0%,#ffeaf0 100%);
  box-shadow: 0 18px 48px rgba(104,37,59,.09);
}
.participation-contact-inner::after { content: ""; position: absolute; right: -65px; bottom: -105px; width: 230px; height: 190px; border-radius: 50%; background: rgba(235,47,104,.07); pointer-events: none; }
.participation-contact-inner > img { width: 82px; height: 82px; padding: 8px; border-radius: 18px; object-fit: contain; background: var(--white); box-shadow: 0 10px 25px rgba(112,33,59,.09); }
.participation-contact-inner > div { position: relative; z-index: 1; }
.participation-contact-inner > div > p { margin: 0 0 5px; color: var(--rose-dark); font-size: 10px; font-weight: 850; letter-spacing: .14em; }
.participation-contact-inner h2 { margin: 0; font-size: 23px; }
.participation-contact-direct { display: grid; gap: 4px; justify-items: end; }
.participation-contact-direct a:first-child { color: var(--berry); font-size: 16px; font-weight: 850; }
.participation-contact-direct a:last-child { color: var(--muted); font-size: 12px; }
.participation-contact-direct a:hover { text-decoration: underline; text-underline-offset: 3px; }
.participation-contact .button-primary { position: relative; z-index: 1; min-height: 48px; display: inline-flex; align-items: center; gap: 12px; padding: 0 21px; color: var(--white); background: var(--rose-dark); white-space: nowrap; }
.participation-contact .button-primary:hover { background: var(--berry); }

@media (max-width: 980px) {
  .participation-path-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .participation-path-card { min-height: 278px; }
  .participation-action { grid-template-columns: 1fr; gap: 31px; }
  .participation-partner-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .participation-contact-inner { grid-template-columns: 72px minmax(0,1fr) auto; }
  .participation-contact-inner > img { width: 72px; height: 72px; }
  .participation-contact .button-primary { grid-column: 3; }
  .participation-contact-direct { grid-column: 2; justify-items: start; }
}

@media (max-width: 700px) {
  .participation-hero .site-inner { width: calc(100% - 34px); padding-top: 18px; padding-bottom: 39px; }
  .participation-hero .breadcrumb { margin-bottom: 29px; }
  .participation-hero h1 { font-size: 42px; }
  .participation-hero-copy > p:last-child { margin-top: 15px; font-size: 15px; line-height: 1.75; }
  .participation-hero-band {
    margin-top: 27px;
    border-width: 4px;
    border-radius: 15px;
    background: #fff7f9;
  }
  .participation-hero-band::after { display: none; }
  .participation-hero-band img {
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: auto;
    object-fit: contain;
    object-position: center;
  }
  .participation-hero-band figcaption {
    position: static;
    max-width: none;
    margin: 0;
    padding: 10px 12px;
    border: 0;
    border-radius: 0;
    color: #fff;
    background: #5b2939;
    backdrop-filter: none;
    font-size: 10px;
    line-height: 1.55;
    text-align: center;
  }
  .participation-content { padding: 48px 0 65px; }
  .participation-content > .site-inner { width: calc(100% - 34px); gap: 64px; }
  .participation-section-heading { margin-bottom: 27px; text-align: left; }
  .participation-section-heading h2 { font-size: 31px; }
  .participation-section-heading > div { margin-top: 11px; font-size: 14px; line-height: 1.75; }
  .participation-path-grid { grid-template-columns: 1fr 1fr; gap: 11px; }
  .participation-path-card { min-height: 245px; padding: 20px 17px 18px; border-radius: 15px; }
  .participation-path-number { right: 14px; top: 13px; font-size: 11px; }
  .participation-path-icon { width: 49px; height: 49px; margin-bottom: 17px; border-radius: 13px; font-size: 19px; }
  .participation-path-card h3 { font-size: 19px; }
  .participation-path-card p { margin-top: 8px; font-size: 12px; line-height: 1.65; }
  .participation-path-card strong { padding-top: 13px; font-size: 11px; }
  .participation-action { gap: 27px; padding: 31px 21px; border-radius: 19px; }
  .participation-action-copy h2 { font-size: 28px; }
  .participation-action-copy > div:not(.participation-action-buttons) { font-size: 14px; line-height: 1.75; }
  .participation-action-buttons { display: grid; grid-template-columns: 1.3fr 1fr; gap: 9px; margin-top: 21px; }
  .participation-button { min-height: 45px; padding: 0 8px; font-size: 12px; }
  .participation-button--text { border: 1px solid #dfb5c3; border-radius: 5px; }
  .participation-bank-card { padding: 23px 18px 21px; border-radius: 15px; }
  .participation-transfer-methods { gap: 10px; }
  .participation-transfer-method { padding: 14px 13px 13px; }
  .participation-transfer-method h3 { font-size: 16px; }
  .participation-account-row { grid-template-columns: 1fr auto; gap: 7px; }
  .participation-account-row small { grid-column: 1 / -1; }
  .participation-bank-card code { font-size: 15px; }
  .participation-bank-card button { padding: 0 9px; }
  .participation-volunteer-grid { grid-template-columns: 1fr; gap: 15px; }
  .participation-volunteer-grid article { min-height: 0; padding: 27px 23px 25px; border-radius: 17px; }
  .participation-volunteer-grid article > span { font-size: 83px; }
  .participation-volunteer-grid h3 { font-size: 23px; }
  .participation-inline-cta { display: block; padding: 19px 20px; }
  .participation-inline-cta strong { display: block; line-height: 1.6; }
  .participation-inline-cta a { margin-top: 11px; }
  .participation-partner-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .participation-partner-grid article { min-height: 184px; padding: 20px 17px; border-radius: 14px; }
  .participation-partner-grid h3 { margin: 10px 0 12px; font-size: 17px; }
  .participation-partner-grid li { padding-left: 11px; font-size: 11px; }
  .participation-partner-cta { display: block; padding: 23px 21px; }
  .participation-partner-cta strong { font-size: 18px; }
  .participation-partner-cta > a { min-height: 44px; justify-content: center; margin-top: 17px; }
  .participation-careers { padding: 52px 0 59px; }
  .participation-careers > .site-inner { width: calc(100% - 34px); }
  .participation-job-grid { grid-template-columns: 1fr; }
  .participation-careers-empty { grid-template-columns: 54px minmax(0,1fr); gap: 15px; padding: 21px 18px; border-radius: 16px; }
  .participation-careers-empty img { width: 54px; height: 54px; border-radius: 13px; }
  .participation-careers-empty h3 { font-size: 18px; }
  .participation-careers-empty > a { grid-column: 1 / -1; justify-content: center; }
  .participation-contact { padding: 45px 0 62px; }
  .participation-contact-inner { width: calc(100% - 34px); grid-template-columns: 56px minmax(0,1fr); gap: 16px; padding: 22px 19px; border-radius: 16px; }
  .participation-contact-inner > img { width: 56px; height: 56px; padding: 6px; border-radius: 13px; }
  .participation-contact-inner h2 { font-size: 18px; }
  .participation-contact-direct { grid-column: 1 / -1; min-height: 51px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 7px 10px; border: 1px solid #dfb7c4; border-radius: 5px; }
  .participation-contact .button-primary { grid-column: 1 / -1; min-height: 48px; justify-content: center; }
}

/* Need help */
.help-body { background: #fffdfc; }
.help-hero { position: relative; overflow: hidden; color: var(--white); background:
  radial-gradient(circle at 88% 4%, rgba(255,255,255,.18), transparent 24%),
  linear-gradient(122deg, #8b2048 0%, #bd2457 56%, #eb2f68 100%);
}
.help-hero::after { content: ""; position: absolute; right: -100px; bottom: -190px; width: 430px; height: 430px; border: 82px solid rgba(255,255,255,.06); border-radius: 50%; }
.help-hero .site-inner { position: relative; z-index: 1; padding-top: 22px; padding-bottom: 74px; }
.help-hero .breadcrumb { gap: 12px; margin-bottom: 58px; color: rgba(255,255,255,.9); }
.help-hero .breadcrumb a { color: rgba(255,255,255,.82); text-decoration-thickness: 1px; text-underline-offset: 4px; }
.help-hero .breadcrumb > span:last-child { color: var(--white); }
.help-hero .breadcrumb a:hover { color: var(--white); }
.help-hero-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(320px,.65fr); align-items: end; gap: 78px; }
.help-hero-copy .page-eyebrow { margin: 0 0 18px; color: #ffd2df; font-size: 13px; font-weight: 900; letter-spacing: .22em; }
.help-hero-copy h1 { max-width: 760px; margin: 0; font-size: clamp(48px,6.2vw,80px); line-height: 1.12; letter-spacing: -.035em; }
.help-hero-copy h1 span { color: #ffd2df; }
.help-hero-copy > p:not(.page-eyebrow) { max-width: 670px; margin: 24px 0 0; color: rgba(255,255,255,.84); font-size: 18px; line-height: 1.85; }
.help-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.help-hero-actions a { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 16px; padding: 0 23px; border-radius: 5px; font-weight: 800; }
.help-hero-actions .button-primary { color: var(--berry); background: var(--white); }
.help-hero-actions .button-primary:hover { color: var(--rose-dark); background: #fff2f6; }
.help-hero-actions .button-secondary { border: 1px solid rgba(255,255,255,.5); color: var(--white); }
.help-hero-actions .button-secondary:hover { background: rgba(255,255,255,.1); }
.help-emergency-card { padding: 27px 28px; border: 1px solid rgba(255,255,255,.28); border-radius: 18px; background: rgba(67,13,34,.28); box-shadow: 0 26px 60px rgba(69,12,34,.17); backdrop-filter: blur(9px); }
.help-emergency-card > span { color: #ffd2df; font-size: 11px; font-weight: 900; letter-spacing: .2em; }
.help-emergency-card > strong { display: block; margin-top: 8px; font-size: 21px; }
.help-emergency-card > div { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-top: 22px; }
.help-emergency-card > div a { min-height: 53px; display: grid; place-items: center; border-radius: 8px; color: var(--berry); background: var(--white); font-size: 22px; font-weight: 900; }
.help-emergency-card > div a:hover { color: var(--white); background: var(--rose); }
.help-emergency-card p { margin: 18px 0 0; color: rgba(255,255,255,.76); font-size: 13px; line-height: 1.75; }

.help-content { padding: 82px 0 94px; background:
  linear-gradient(180deg, #fffaf8 0, #fff 220px);
}
.help-content > .site-inner { display: grid; gap: 92px; }
.help-content section[id] { scroll-margin-top: 30px; }
.help-section-heading { max-width: 730px; margin-bottom: 36px; }
.help-section-heading > p { margin: 0 0 10px; color: var(--rose-dark); font-size: 12px; font-weight: 900; letter-spacing: .2em; }
.help-section-heading h2 { margin: 0; font-size: clamp(32px,4vw,48px); line-height: 1.2; letter-spacing: -.02em; }
.help-section-heading h2 span { color: var(--rose-dark); }
.help-section-heading > div { margin-top: 14px; color: var(--muted); font-size: 17px; line-height: 1.8; }
.help-path-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.help-path-card { position: relative; min-height: 280px; display: flex; flex-direction: column; padding: 30px 29px 27px; overflow: hidden; border: 1px solid #efd8df; border-radius: 18px; background: var(--white); box-shadow: 0 15px 42px rgba(90,39,58,.06); }
.help-path-card::after { content: attr(data-number); position: absolute; right: 18px; top: 8px; color: #f8e8ee; font-size: 76px; font-weight: 900; line-height: 1; }
.help-path-icon { width: 58px; height: 58px; position: relative; z-index: 1; display: grid; place-items: center; border-radius: 16px; color: var(--white); background: linear-gradient(135deg,var(--berry),var(--rose)); font-size: 24px; font-weight: 900; box-shadow: 0 13px 24px rgba(189,36,87,.19); }
.help-path-card h3 { position: relative; z-index: 1; margin: 23px 0 0; font-size: 23px; }
.help-path-card p { position: relative; z-index: 1; margin: 12px 0 24px; color: var(--muted); line-height: 1.75; }
.help-path-card a { position: relative; z-index: 1; margin-top: auto; color: var(--rose-dark); font-weight: 850; }
.help-path-card a:hover { text-decoration: underline; text-underline-offset: 4px; }
.help-status { padding: 34px 38px; border: 1px solid #e9c1cf; border-left: 6px solid var(--rose-dark); border-radius: 16px; background: #fff4f7; }
.help-status h2 { margin: 0; font-size: 28px; }
.help-status > p { margin: 12px 0 0; color: var(--berry); font-size: 18px; font-weight: 800; }
.help-status ul { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin: 26px 0 0; padding: 0; list-style: none; }
.help-status li { position: relative; padding: 16px 16px 16px 42px; border-radius: 10px; background: rgba(255,255,255,.82); color: var(--muted); line-height: 1.65; }
.help-status li::before { content: "✓"; position: absolute; left: 15px; top: 15px; color: var(--rose-dark); font-weight: 900; }
.help-aid-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.help-aid-card { padding: 30px; border-top: 5px solid var(--rose); border-radius: 16px; background: #fff7f9; }
.help-aid-card:nth-child(2) { border-color: var(--rose-dark); background: #fff2f6; }
.help-aid-card:nth-child(3) { border-color: var(--berry); background: #fcedf2; }
.help-aid-card > span { color: var(--rose-dark); font-size: 12px; font-weight: 900; letter-spacing: .16em; }
.help-aid-card h3 { margin: 13px 0 10px; font-size: 24px; }
.help-aid-card p { margin: 0; color: var(--muted); line-height: 1.78; }
.help-process-list { position: relative; display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.help-process-list::before { content: ""; position: absolute; left: 7%; right: 7%; top: 31px; height: 2px; background: #e8bccb; }
.help-process-step { position: relative; text-align: center; }
.help-process-step > span { width: 64px; height: 64px; position: relative; z-index: 1; display: grid; place-items: center; margin: 0 auto 18px; border: 7px solid #fff; border-radius: 50%; color: var(--white); background: var(--rose-dark); box-shadow: 0 0 0 1px #e6b5c5; font-weight: 900; }
.help-process-step h3 { margin: 0; font-size: 17px; }
.help-process-step p { margin: 8px 0 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.help-document-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(340px,.85fr); gap: 28px; align-items: start; }
.help-document-list { padding: 34px 38px; border: 1px solid var(--line); border-radius: 17px; background: var(--white); }
.help-document-list h3 { margin: 0; font-size: 24px; }
.help-document-list ul { margin: 20px 0 0; padding-left: 22px; color: var(--muted); line-height: 1.82; }
.help-document-list li + li { margin-top: 7px; }
.help-document-note { margin-top: 23px; padding: 16px 18px; border-radius: 9px; color: var(--berry); background: var(--blush); font-size: 14px; line-height: 1.7; }
.help-download-card { position: sticky; top: 24px; padding: 34px; border-radius: 18px; color: var(--white); background:
  radial-gradient(circle at 100% 0, rgba(255,255,255,.16), transparent 34%),
  linear-gradient(145deg,var(--berry),var(--rose-dark));
  box-shadow: 0 24px 50px rgba(105,24,56,.17);
}
.help-download-card > span { font-size: 11px; font-weight: 900; letter-spacing: .18em; }
.help-download-card h3 { margin: 13px 0 11px; font-size: 25px; line-height: 1.35; }
.help-download-card p { margin: 0; color: rgba(255,255,255,.76); line-height: 1.72; }
.help-download-card a { min-height: 51px; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 24px; padding: 0 18px; border-radius: 6px; color: var(--berry); background: var(--white); font-weight: 850; }
.help-download-card a:hover { background: #fff0f5; }
.help-download-card small { display: block; margin-top: 16px; color: rgba(255,255,255,.66); line-height: 1.6; }
.help-privacy { padding: 27px 31px; border-radius: 13px; color: var(--muted); background: #f8f4f3; font-size: 14px; line-height: 1.8; }
.help-privacy strong { display: block; margin-bottom: 5px; color: var(--ink); font-size: 17px; }

.help-form-section { padding: 92px 0 98px; scroll-margin-top: 20px; background: #f9edf1; }
.help-form-heading { max-width: 750px; margin-bottom: 34px; }
.help-form-heading > p { margin: 0 0 10px; color: var(--rose-dark); font-size: 12px; font-weight: 900; letter-spacing: .2em; }
.help-form-heading h2 { margin: 0; font-size: clamp(34px,4vw,50px); }
.help-form-heading h2 span { color: var(--rose-dark); }
.help-form-heading > div { margin-top: 13px; color: var(--muted); font-size: 17px; line-height: 1.75; }
.help-form-flash { margin-bottom: 24px; padding: 19px 22px; border: 1px solid #dcc6cd; border-radius: 11px; background: var(--white); }
.help-form-flash strong, .help-form-flash p, .help-form-flash span { display: block; }
.help-form-flash p { margin: 6px 0 0; }
.help-form-flash span { margin-top: 8px; font-weight: 800; }
.help-form-flash--success { border-color: #9fd5b3; background: #f1fbf5; }
.help-form-flash--error { border-color: #e3abbc; background: #fff5f7; }
.help-form { display: grid; gap: 27px; padding: 42px; border: 1px solid #e8cbd4; border-radius: 21px; background: var(--white); box-shadow: 0 28px 70px rgba(79,38,51,.08); }
.help-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.help-form fieldset { margin: 0; padding: 0; border: 0; }
.help-form legend, .help-form > label, .help-form-grid > label, .help-upload-field > label { color: var(--ink); font-weight: 800; }
.help-form input[type="text"], .help-form input[type="tel"], .help-form input[type="email"], .help-form input[type="file"], .help-form textarea { width: 100%; margin-top: 8px; padding: 13px 14px; border: 1px solid #dacdd1; border-radius: 7px; color: var(--ink); background: #fffdfd; }
.help-form input[type="text"], .help-form input[type="tel"], .help-form input[type="email"] { min-height: 50px; }
.help-form textarea { resize: vertical; line-height: 1.7; }
.help-form input:focus, .help-form textarea:focus { border-color: var(--rose-dark); outline: 3px solid rgba(189,36,87,.13); }
.help-form-kind { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.help-form-kind legend { grid-column: 1 / -1; margin-bottom: 4px; }
.help-form-kind label { position: relative; cursor: pointer; }
.help-form-kind input { position: absolute; opacity: 0; }
.help-form-kind label > span { min-height: 114px; display: grid; align-content: center; gap: 6px; padding: 20px 21px; border: 1px solid #dccbd0; border-radius: 12px; background: #fffdfd; transition: border-color .2s ease, background .2s ease, box-shadow .2s ease; }
.help-form-kind label > span::before { content: ""; width: 16px; height: 16px; position: absolute; right: 18px; top: 18px; border: 2px solid #ceb5be; border-radius: 50%; }
.help-form-kind label > span strong { padding-right: 30px; font-size: 18px; }
.help-form-kind label > span small { color: var(--muted); font-weight: 400; line-height: 1.6; }
.help-form-kind input:checked + span { border-color: var(--rose-dark); background: var(--blush); box-shadow: inset 0 0 0 1px var(--rose-dark); }
.help-form-kind input:checked + span::before { border: 5px solid var(--rose-dark); background: var(--white); }
.help-form-kind input:focus-visible + span { outline: 3px solid var(--focus); outline-offset: 3px; }
.help-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px 18px; }
.help-type-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.help-type-options legend { grid-column: 1 / -1; margin-bottom: 4px; }
.help-type-options label { cursor: pointer; }
.help-type-options label span { min-height: 49px; display: flex; align-items: center; justify-content: center; padding: 0 12px; border: 1px solid #ddcbd1; border-radius: 7px; background: #fffdfd; font-weight: 700; }
.help-type-options input { position: absolute; opacity: 0; }
.help-type-options input:checked + span { border-color: var(--rose-dark); color: var(--rose-dark); background: var(--blush); box-shadow: inset 0 0 0 1px var(--rose-dark); }
.help-type-options input:focus-visible + span { outline: 3px solid var(--focus); outline-offset: 3px; }
.help-upload-field { padding: 20px; border: 1px dashed #d3aebb; border-radius: 10px; background: #fff7f9; }
.help-upload-field small { display: block; margin-top: 8px; color: var(--muted); line-height: 1.6; }
.help-consent { display: grid !important; grid-template-columns: 20px minmax(0,1fr); gap: 12px; align-items: start; padding: 18px 20px; border-radius: 9px; background: #f8f4f5; font-size: 14px; line-height: 1.75; font-weight: 400 !important; }
.help-consent input { width: 18px; height: 18px; margin-top: 4px; accent-color: var(--rose-dark); }
.help-form-submit { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding-top: 4px; }
.help-form-submit p { max-width: 690px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.help-form-submit button { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 17px; padding: 0 23px; border: 0; border-radius: 6px; color: var(--white); background: var(--rose-dark); font-weight: 850; cursor: pointer; }
.help-form-submit button:hover { background: var(--berry); }
.help-contact { padding: 70px 0 82px; background: var(--white); }
.help-contact-inner { display: grid; grid-template-columns: 82px minmax(0,1fr) auto auto; align-items: center; gap: 26px; padding: 30px 34px; border-radius: 19px; color: var(--white); background: linear-gradient(110deg,var(--berry),var(--rose)); box-shadow: 0 24px 55px rgba(122,26,63,.15); }
.help-contact-inner > img { width: 82px; height: 82px; padding: 9px; border-radius: 18px; background: var(--white); object-fit: contain; }
.help-contact-inner p { margin: 0 0 6px; color: #ffd2df; font-size: 11px; font-weight: 900; letter-spacing: .11em; }
.help-contact-inner h2 { margin: 0; font-size: 25px; }
.help-contact-direct { display: grid; gap: 4px; justify-items: end; }
.help-contact-direct a { color: var(--white); font-weight: 800; }
.help-contact-direct a:last-child { color: rgba(255,255,255,.76); font-size: 13px; }
.help-contact .button-primary { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; gap: 14px; padding: 0 20px; border-radius: 6px; color: var(--berry); background: var(--white); white-space: nowrap; font-weight: 850; }
.help-contact .button-primary:hover { background: #fff0f5; }

@media (max-width: 980px) {
  .help-hero-grid { grid-template-columns: 1fr; gap: 38px; }
  .help-emergency-card { max-width: 650px; }
  .help-path-grid, .help-aid-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .help-path-card:last-child, .help-aid-card:last-child { grid-column: 1 / -1; }
  .help-status ul { grid-template-columns: 1fr; }
  .help-process-list { grid-template-columns: repeat(3,1fr); gap: 27px 12px; }
  .help-process-list::before { display: none; }
  .help-document-grid { grid-template-columns: 1fr; }
  .help-download-card { position: static; }
  .help-contact-inner { grid-template-columns: 72px minmax(0,1fr) auto; }
  .help-contact-inner > img { width: 72px; height: 72px; }
  .help-contact-direct { grid-column: 2; justify-items: start; }
  .help-contact .button-primary { grid-column: 3; grid-row: 1 / span 2; }
}

@media (max-width: 700px) {
  .help-hero .site-inner { width: calc(100% - 34px); padding-top: 17px; padding-bottom: 48px; }
  .help-hero .breadcrumb { gap: 10px; margin-bottom: 35px; }
  .help-hero-grid { gap: 30px; }
  .help-hero-copy h1 { font-size: 42px; line-height: 1.16; }
  .help-hero-copy > p:not(.page-eyebrow) { margin-top: 17px; font-size: 15px; line-height: 1.75; }
  .help-hero-actions { display: grid; grid-template-columns: 1fr; margin-top: 24px; }
  .help-hero-actions a { min-height: 49px; padding: 0 16px; font-size: 14px; }
  .help-emergency-card { padding: 22px 19px; border-radius: 15px; }
  .help-emergency-card > strong { font-size: 18px; }
  .help-emergency-card > div { margin-top: 16px; }
  .help-emergency-card > div a { min-height: 47px; font-size: 19px; }
  .help-content { padding: 58px 0 68px; }
  .help-content > .site-inner { width: calc(100% - 34px); gap: 62px; }
  .help-section-heading { margin-bottom: 25px; }
  .help-section-heading h2 { font-size: 31px; }
  .help-section-heading > div { font-size: 14px; line-height: 1.75; }
  .help-path-grid, .help-aid-grid { grid-template-columns: 1fr; gap: 12px; }
  .help-path-card:last-child, .help-aid-card:last-child { grid-column: auto; }
  .help-path-card { min-height: 0; padding: 23px 22px; border-radius: 14px; }
  .help-path-card::after { font-size: 57px; }
  .help-path-icon { width: 48px; height: 48px; border-radius: 13px; font-size: 19px; }
  .help-path-card h3 { margin-top: 17px; font-size: 20px; }
  .help-path-card p { margin: 8px 0 18px; font-size: 14px; }
  .help-status { padding: 24px 21px; border-left-width: 4px; border-radius: 13px; }
  .help-status h2 { font-size: 23px; }
  .help-status > p { font-size: 15px; line-height: 1.65; }
  .help-status ul { gap: 8px; margin-top: 18px; }
  .help-status li { padding: 13px 13px 13px 36px; font-size: 13px; }
  .help-status li::before { left: 12px; top: 12px; }
  .help-aid-card { padding: 24px 22px; border-radius: 14px; }
  .help-aid-card h3 { font-size: 21px; }
  .help-aid-card p { font-size: 14px; }
  .help-process-list { grid-template-columns: repeat(2,1fr); gap: 26px 9px; }
  .help-process-step > span { width: 56px; height: 56px; margin-bottom: 12px; border-width: 6px; }
  .help-process-step h3 { font-size: 15px; }
  .help-process-step p { font-size: 11px; }
  .help-document-list { padding: 25px 22px; border-radius: 14px; }
  .help-document-list h3 { font-size: 21px; }
  .help-document-list ul { font-size: 14px; }
  .help-download-card { padding: 26px 22px; border-radius: 15px; }
  .help-download-card h3 { font-size: 21px; }
  .help-privacy { padding: 21px; font-size: 13px; }
  .help-form-section { padding: 61px 0 70px; }
  .help-form-section > .site-inner { width: calc(100% - 34px); }
  .help-form-heading h2 { font-size: 31px; }
  .help-form-heading > div { font-size: 14px; }
  .help-form { gap: 22px; padding: 24px 19px; border-radius: 16px; }
  .help-form-kind, .help-form-grid { grid-template-columns: 1fr; }
  .help-form-kind label > span { min-height: 98px; padding: 17px; }
  .help-type-options { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .help-type-options label span { min-height: 45px; padding: 0 7px; font-size: 13px; }
  .help-form-submit { display: grid; }
  .help-form-submit button { width: 100%; }
  .help-contact { padding: 49px 0 64px; }
  .help-contact-inner { width: calc(100% - 34px); grid-template-columns: 58px minmax(0,1fr); gap: 15px; padding: 22px 19px; border-radius: 16px; }
  .help-contact-inner > img { width: 58px; height: 58px; padding: 6px; border-radius: 13px; }
  .help-contact-inner h2 { font-size: 18px; }
  .help-contact-direct { grid-column: 1 / -1; justify-items: center; padding: 10px; border: 1px solid rgba(255,255,255,.32); border-radius: 6px; }
  .help-contact .button-primary { grid-column: 1 / -1; grid-row: auto; min-height: 47px; }
}

/* Site search */
.search-body { background: #fffdfc; }
.search-hero { padding: 21px 0 56px; background:
  radial-gradient(circle at 86% 22%, rgba(235,47,104,.12), transparent 25%),
  linear-gradient(135deg,#fff8fa,#fce9f0);
}
.search-hero .breadcrumb { margin-bottom: 42px; }
.search-hero-copy { max-width: 790px; }
.search-hero-copy .page-eyebrow { margin: 0 0 12px; color: var(--rose-dark); font-size: 12px; font-weight: 900; letter-spacing: .2em; }
.search-hero-copy h1 { margin: 0; font-size: clamp(42px,5.4vw,68px); line-height: 1.12; letter-spacing: -.035em; }
.search-hero-copy h1 span { color: var(--rose-dark); }
.search-hero-copy > p:last-child { margin: 18px 0 0; color: var(--muted); font-size: 17px; line-height: 1.8; }
.site-search-form { display: grid; grid-template-columns: minmax(0,1fr) 190px auto; gap: 10px; margin-top: 35px; padding: 10px; border: 1px solid #ead6dd; border-radius: 14px; background: rgba(255,255,255,.94); box-shadow: 0 20px 50px rgba(83,38,54,.09); }
.site-search-keyword { position: relative; }
.site-search-keyword svg { width: 23px; height: 23px; position: absolute; left: 18px; top: 50%; fill: none; stroke: var(--rose-dark); stroke-width: 1.8; stroke-linecap: round; transform: translateY(-50%); pointer-events: none; }
.site-search-keyword input, .site-search-filter select { width: 100%; height: 54px; border: 0; color: var(--ink); background: transparent; }
.site-search-keyword input { padding: 0 18px 0 54px; font-size: 16px; }
.site-search-keyword input:focus, .site-search-filter select:focus { border-radius: 7px; outline: 3px solid rgba(189,36,87,.16); }
.site-search-filter { border-left: 1px solid var(--line); }
.site-search-filter select { padding: 0 35px 0 17px; cursor: pointer; }
.site-search-form button { min-width: 126px; min-height: 54px; display: inline-flex; align-items: center; justify-content: center; gap: 15px; padding: 0 21px; border: 0; border-radius: 8px; color: var(--white); background: var(--rose-dark); font-weight: 850; cursor: pointer; }
.site-search-form button:hover { background: var(--berry); }
.search-suggestions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 17px; color: var(--muted); font-size: 13px; }
.search-suggestions > span { margin-right: 4px; font-weight: 800; }
.search-suggestions a { padding: 7px 11px; border: 1px solid #e8cbd5; border-radius: 999px; background: rgba(255,255,255,.7); }
.search-suggestions a:hover { border-color: var(--rose); color: var(--rose-dark); background: var(--white); }
.search-results-section { min-height: 420px; padding: 74px 0 94px; }
.search-results-header { display: flex; align-items: end; justify-content: space-between; gap: 25px; margin-bottom: 30px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.search-results-header p, .search-start > div:first-child > p { margin: 0 0 8px; color: var(--rose-dark); font-size: 11px; font-weight: 900; letter-spacing: .19em; }
.search-results-header h2, .search-start h2 { margin: 0; font-size: clamp(28px,3.2vw,40px); }
.search-results-header > span { color: var(--berry); font-weight: 800; white-space: nowrap; }
.search-result-list { display: grid; gap: 14px; }
.search-result-card { min-height: 190px; display: grid; grid-template-columns: 260px minmax(0,1fr); overflow: hidden; border: 1px solid #eadfdb; border-radius: 15px; background: var(--white); box-shadow: 0 12px 34px rgba(67,38,46,.05); transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.search-result-card:hover { border-color: #dbaebb; transform: translateY(-2px); box-shadow: 0 18px 42px rgba(67,38,46,.09); }
.search-result-card--text { grid-template-columns: 1fr; }
.search-result-media { min-height: 190px; overflow: hidden; background: var(--blush); }
.search-result-media img { width: 100%; height: 100%; object-fit: cover; }
.search-result-copy { min-width: 0; display: flex; flex-direction: column; padding: 24px 27px 22px; }
.search-result-meta { display: flex; align-items: center; gap: 13px; color: var(--muted); font-size: 12px; }
.search-result-meta span { color: var(--rose-dark); font-weight: 900; letter-spacing: .04em; }
.search-result-copy h3 { margin: 10px 0 0; font-size: 23px; line-height: 1.35; }
.search-result-copy h3 a:hover { color: var(--rose-dark); }
.search-result-copy p { margin: 9px 0 17px; color: var(--muted); line-height: 1.75; }
.search-result-copy mark { padding: 0 2px; color: var(--berry); background: #ffe0ea; }
.search-result-link { width: max-content; margin-top: auto; color: var(--rose-dark); font-size: 13px; font-weight: 850; }
.search-result-link span { margin-left: 7px; }
.search-result-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.search-pagination { margin-top: 34px; }
.search-empty { padding: 64px 24px; border: 1px dashed #deb8c4; border-radius: 18px; text-align: center; background: #fff8fa; }
.search-empty > span { width: 68px; height: 68px; display: grid; place-items: center; margin: 0 auto 18px; border-radius: 50%; color: var(--white); background: var(--rose-dark); font-size: 35px; }
.search-empty h2 { margin: 0; font-size: 29px; }
.search-empty p { margin: 12px 0 22px; color: var(--muted); }
.search-empty a { min-height: 44px; display: inline-flex; align-items: center; padding: 0 18px; border: 1px solid var(--rose-dark); border-radius: 6px; color: var(--rose-dark); font-weight: 800; }
.search-start { display: grid; grid-template-columns: minmax(0,.7fr) minmax(0,1.3fr); align-items: center; gap: 70px; padding: 44px; border-radius: 20px; background: #fff6f8; }
.search-start > div:first-child > span { display: block; margin-top: 13px; color: var(--muted); line-height: 1.75; }
.search-start-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.search-start-links a { min-height: 74px; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 0 21px; border: 1px solid #e7cbd4; border-radius: 10px; background: var(--white); font-weight: 800; }
.search-start-links a span { color: var(--rose-dark); font-size: 20px; }
.search-start-links a:hover { border-color: var(--rose); color: var(--rose-dark); }

@media (max-width: 900px) {
  .site-search-form { grid-template-columns: minmax(0,1fr) 170px; }
  .site-search-form button { grid-column: 1 / -1; }
  .search-result-card { grid-template-columns: 220px minmax(0,1fr); }
  .search-start { grid-template-columns: 1fr; gap: 30px; }
}

@media (max-width: 700px) {
  .search-hero { padding: 17px 0 42px; }
  .search-hero > .site-inner, .search-results-section > .site-inner { width: calc(100% - 34px); }
  .search-hero .breadcrumb { margin-bottom: 32px; }
  .search-hero-copy h1 { font-size: 40px; }
  .search-hero-copy > p:last-child { font-size: 14px; line-height: 1.75; }
  .site-search-form { grid-template-columns: 1fr; gap: 5px; margin-top: 25px; padding: 8px; border-radius: 12px; }
  .site-search-keyword input { height: 50px; padding-left: 48px; font-size: 14px; }
  .site-search-keyword svg { left: 15px; width: 21px; height: 21px; }
  .site-search-filter { border-top: 1px solid var(--line); border-left: 0; }
  .site-search-filter select { height: 47px; padding-left: 11px; font-size: 13px; }
  .site-search-form button { grid-column: auto; min-height: 49px; }
  .search-suggestions { margin-top: 13px; font-size: 11px; }
  .search-suggestions > span { width: 100%; }
  .search-results-section { padding: 52px 0 66px; }
  .search-results-header { display: grid; margin-bottom: 22px; }
  .search-results-header h2 { font-size: 26px; line-height: 1.45; }
  .search-results-header > span { font-size: 13px; }
  .search-result-card { min-height: 0; grid-template-columns: 1fr; border-radius: 13px; }
  .search-result-media { min-height: 0; aspect-ratio: 16/9; }
  .search-result-copy { padding: 20px 19px; }
  .search-result-copy h3 { font-size: 20px; }
  .search-result-copy p { font-size: 14px; }
  .search-empty { padding: 46px 20px; }
  .search-empty h2 { font-size: 24px; }
  .search-start { gap: 25px; padding: 26px 20px; border-radius: 15px; }
  .search-start h2 { font-size: 28px; }
  .search-start-links { grid-template-columns: 1fr; }
  .search-start-links a { min-height: 62px; }
}

/* Optional fixed donation call-to-action on article pages */
.floating-donate-cta {
  width: 88px;
  height: 88px;
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 70;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 4px solid rgba(255,255,255,.94);
  border-radius: 50%;
  color: var(--white);
  background: linear-gradient(145deg, #f54a79 0%, #dc2861 58%, #b41f51 100%);
  box-shadow: 0 13px 34px rgba(135,24,67,.34);
  font-family: "Microsoft JhengHei UI", "Microsoft JhengHei", "Noto Sans TC", sans-serif;
  font-size: 15px;
  font-weight: 750;
  line-height: 1.04;
  letter-spacing: .06em;
  text-align: center;
  isolation: isolate;
  animation: floating-donate-breathe 2.2s ease-in-out infinite;
}
.floating-donate-cta::before {
  content: "";
  position: absolute;
  inset: -8px;
  z-index: -1;
  border: 2px solid rgba(233,50,104,.3);
  border-radius: inherit;
  animation: floating-donate-ring 2.2s ease-out infinite;
}
.floating-donate-icon {
  width: 17px;
  height: 17px;
  margin-bottom: 3px;
  fill: currentColor;
  filter: drop-shadow(0 1px 2px rgba(92,12,43,.2));
}
.floating-donate-label {
  display: block;
  color: inherit;
  font: inherit;
  line-height: inherit;
}
.floating-donate-cta:hover {
  color: var(--white);
  background: linear-gradient(145deg, #ff4d80 0%, #d8215b 58%, #8f1c49 100%);
  box-shadow: 0 17px 40px rgba(135,24,67,.43);
}
.floating-donate-cta:focus-visible {
  outline: 4px solid rgba(233,50,104,.27);
  outline-offset: 5px;
}

@keyframes floating-donate-breathe {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.075); }
}
@keyframes floating-donate-ring {
  0% { opacity: .9; transform: scale(.88); }
  72%, 100% { opacity: 0; transform: scale(1.2); }
}

@media (max-width: 700px) {
  .tracking-consent {
    left: 14px;
    right: 14px;
    bottom: 14px;
    width: calc(100% - 28px);
    padding: 17px;
    align-items: stretch;
    flex-direction: column;
    gap: 15px;
  }
  .tracking-consent-actions { width: 100%; }
  .tracking-consent-button { flex: 1; }
  .floating-donate-cta {
    width: 68px;
    height: 68px;
    right: 13px;
    bottom: 14px;
    border-width: 3px;
    font-size: 12px;
  }
  .floating-donate-icon { width: 14px; height: 14px; margin-bottom: 2px; }
}

@media (prefers-reduced-motion: reduce) {
  .floating-donate-cta,
  .floating-donate-cta::before {
    animation: none;
  }
}

/* Donation record lookup */
.donation-lookup-body { background: #fffafc; }
.donation-lookup-hero { padding: 34px 0 88px; background: linear-gradient(145deg,#fff 0%,#fff5f8 62%,#fde9f0 100%); }
.donation-lookup-intro { max-width: 760px; padding-top: 35px; }
.donation-lookup-intro h1 { max-width: 720px; margin: 8px 0 18px; color: var(--ink); font-size: clamp(36px,5vw,64px); line-height: 1.08; letter-spacing: -.04em; }
.donation-lookup-intro h1 > span { display: block; }
.donation-lookup-title-primary { color: var(--ink); }
.donation-lookup-title-accent { color: var(--rose-dark); }
.donation-lookup-intro > p:last-child { max-width: 650px; margin: 0; color: var(--muted); font-size: 17px; line-height: 1.9; }
@media (min-width: 901px) {
  .donation-lookup-intro { max-width: none; }
  .donation-lookup-intro h1 {
    max-width: none;
    white-space: nowrap;
  }
  .donation-lookup-intro h1 > span {
    display: inline;
  }
  .donation-lookup-title-accent {
    margin-left: .2em;
  }
  .donation-lookup-intro > p:last-child { max-width: 980px; }
}
.donation-lookup-section { padding: 0 0 90px; }
.donation-lookup-layout { display: grid; grid-template-columns: minmax(320px,430px) minmax(0,1fr); gap: 28px; align-items: start; margin-top: -45px; }
.donation-lookup-form,
.donation-lookup-result { min-width: 0; border: 1px solid #ead9df; border-radius: 24px; background: rgba(255,255,255,.98); box-shadow: 0 24px 65px rgba(84,35,55,.1); }
.donation-lookup-form { display: grid; gap: 18px; padding: 34px; }
.donation-lookup-form-heading { display: flex; gap: 14px; align-items: flex-start; padding-bottom: 19px; border-bottom: 1px solid #f0e2e7; }
.donation-lookup-form-heading > span { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; border-radius: 50%; color: #fff; background: var(--rose-dark); font-size: 24px; }
.donation-lookup-form-heading h2 { margin: 1px 0 6px; color: var(--ink); font-size: 22px; }
.donation-lookup-form-heading p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.donation-lookup-form label:not(.donation-lookup-honeypot) { display: grid; gap: 8px; color: var(--ink); font-weight: 750; }
.donation-lookup-form label span strong { margin-left: 2px; color: var(--rose-dark); }
.donation-lookup-form input { width: 100%; height: 52px; padding: 0 15px; border: 1px solid #dfcfd5; border-radius: 10px; color: var(--ink); background: #fff; font: inherit; }
.donation-lookup-form input:focus { border-color: var(--rose-dark); outline: 3px solid rgba(189,36,87,.13); }
.donation-lookup-form input::placeholder { color: #998d92; font-weight: 400; }
.donation-lookup-honeypot { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.donation-lookup-hint,
.donation-lookup-privacy,
.donation-lookup-unavailable { margin: -4px 0 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.donation-lookup-hint { padding: 11px 13px; border-radius: 9px; background: #fff5f8; color: #77515f; }
.donation-lookup-form button { min-height: 54px; display: inline-flex; align-items: center; justify-content: center; gap: 18px; border: 0; border-radius: 10px; color: #fff; background: var(--rose-dark); font: inherit; font-weight: 850; cursor: pointer; }
.donation-lookup-form button:hover { background: var(--berry); }
.donation-lookup-form button:disabled { color: #fff; background: #aa9fa3; cursor: not-allowed; }
.donation-lookup-unavailable { padding: 11px 13px; border: 1px solid #ead9df; border-radius: 9px; background: #faf7f8; }
.donation-lookup-result { min-height: 480px; padding: 34px; }
.donation-lookup-placeholder { min-height: 405px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 35px; text-align: center; }
.donation-lookup-placeholder > span { width: 68px; height: 68px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: var(--rose-dark); background: #fff0f5; font-size: 34px; }
.donation-lookup-placeholder h2 { margin: 20px 0 10px; color: var(--ink); font-size: 24px; }
.donation-lookup-placeholder p { max-width: 500px; margin: 0; color: var(--muted); line-height: 1.8; }
.donation-lookup-message { margin-bottom: 24px; padding: 18px 20px; border: 1px solid #ead9df; border-radius: 13px; background: #fff8fa; }
.donation-lookup-message strong { display: block; margin-bottom: 5px; color: var(--ink); }
.donation-lookup-message p { margin: 0; color: var(--muted); line-height: 1.7; }
.donation-lookup-message--error { border-color: #efc3cc; background: #fff4f5; }
.donation-lookup-message--empty { background: #faf8f2; border-color: #e7dec5; }
.donation-lookup-line-help {
  max-width: 520px;
  min-height: 66px;
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 16px;
  padding: 10px 13px;
  border: 1px solid rgba(6,199,85,.24);
  border-radius: 13px;
  color: #255a3d;
  background: #f3fff7;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.donation-lookup-line-help:hover {
  border-color: rgba(6,199,85,.52);
  box-shadow: 0 10px 24px rgba(15,103,52,.1);
  transform: translateY(-1px);
}
.donation-lookup-line-help:focus-visible {
  outline: 3px solid rgba(6,199,85,.2);
  outline-offset: 3px;
}
.donation-lookup-line-help-icon {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 42px;
  border-radius: 50%;
  color: #fff;
  background: #06c755;
}
.donation-lookup-line-help-icon svg { width: 30px; height: 30px; fill: currentColor; }
.donation-lookup-line-help-icon .line-icon-word { fill: #06c755; }
.donation-lookup-line-help-copy { min-width: 0; display: grid; gap: 3px; }
.donation-lookup-line-help-copy b { color: #17492f; font-size: 15px; }
.donation-lookup-line-help-copy small { color: #537361; font-size: 13px; line-height: 1.45; }
.donation-lookup-line-help-arrow { margin-left: auto; color: #07873d; font-size: 20px; font-weight: 850; }
.donation-lookup-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-bottom: 22px; }
.donation-lookup-summary > div { padding: 18px 20px; border-radius: 14px; background: #fff2f6; }
.donation-lookup-summary span { display: block; margin-bottom: 6px; color: var(--muted); font-size: 13px; }
.donation-lookup-summary strong { color: var(--rose-dark); font-size: 22px; }
.donation-footprint { margin: 0 0 30px; padding: 24px; border: 1px solid #ead9df; border-radius: 18px; background: linear-gradient(145deg,#fff 0%,#fff9fb 56%,#fff1f5 100%); }
.donation-footprint-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 22px; padding-bottom: 17px; border-bottom: 1px solid #efdee4; }
.donation-footprint-heading p,
.donation-record-heading p { margin: 0 0 4px; color: var(--rose-dark); font-size: 11px; font-weight: 850; letter-spacing: .16em; }
.donation-footprint-heading h2,
.donation-record-heading h2 { margin: 0; color: var(--ink); font-size: 23px; }
.donation-footprint-heading > span { max-width: 230px; color: #836773; font-size: 12px; line-height: 1.55; text-align: right; }
.footprint-overview { display: grid; grid-template-columns: 118px minmax(0,1fr) minmax(175px,.8fr); gap: 18px; align-items: center; }
.footprint-current-badge { display: grid; justify-items: center; gap: 8px; color: #745b65; font-size: 12px; font-weight: 800; }
.footprint-medallion { position: relative; width: 68px; height: 68px; display: block; flex: 0 0 auto; overflow: hidden; border: 4px solid rgba(255,255,255,.95); border-radius: 50%; background-color: #fff; background-image: url("../images/donation-lookup/badge_main.jpg?v=2"); background-repeat: no-repeat; background-size: 578.035% auto; box-shadow: 0 8px 20px rgba(74,38,53,.18); }
.footprint-current-badge .footprint-medallion { width: 104px; height: 104px; border-width: 5px; box-shadow: 0 14px 30px rgba(157,40,83,.24), inset 0 0 0 2px rgba(255,255,255,.4); }
.footprint-medallion--1 { background-position: 2.36% 6.06%; }
.footprint-medallion--2 { background-position: 25.82% 6.06%; }
.footprint-medallion--3 { background-position: 50% 6.06%; }
.footprint-medallion--4 { background-position: 73.70% 6.06%; }
.footprint-medallion--5 { background-position: 97.65% 6.06%; }
.footprint-medallion--6 { background-position: 2.36% 92.14%; }
.footprint-medallion--7 { background-position: 25.82% 94.40%; }
.footprint-medallion--8 { background-position: 50% 92.14%; }
.footprint-medallion--9 { background-position: 73.70% 92.14%; }
.footprint-medallion--10 { background-position: 97.65% 92.14%; box-shadow: 0 8px 22px rgba(127,36,72,.28); }
.footprint-current-copy > span { color: #93717e; font-size: 12px; font-weight: 800; }
.footprint-current-copy h3 { margin: 3px 0 8px; color: var(--rose-dark); font-size: 26px; }
.footprint-current-copy > p { margin: 0; color: #674f58; font-size: 13px; line-height: 1.75; }
.footprint-stat-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.footprint-stat-pills > span { min-width: 126px; padding: 9px 11px; border-radius: 10px; color: #826572; background: rgba(255,255,255,.86); font-size: 11px; }
.footprint-stat-pills strong { display: block; margin-top: 2px; color: var(--ink); font-size: 15px; }
.footprint-special-list { display: grid; gap: 9px; }
.footprint-special { min-width: 0; display: grid; grid-template-columns: 40px minmax(0,1fr); gap: 10px; align-items: center; padding: 10px 11px; border: 1px solid #e3d8dc; border-radius: 12px; color: #84777c; background: rgba(255,255,255,.72); filter: grayscale(1); opacity: .72; }
.footprint-special-icon { width: 40px; height: 40px; display: block; border: 2px solid #fff; border-radius: 50%; background-repeat: no-repeat; background-position: center; background-size: cover; box-shadow: 0 3px 9px rgba(74,38,53,.15); }
.footprint-special-icon--recurring { background-image: url("../images/donation-lookup/badge_recurring.jpg?v=2"); }
.footprint-special-icon--nanao { background-image: url("../images/donation-lookup/badge_nanao.jpg?v=2"); }
.footprint-special strong,
.footprint-special small { display: block; overflow-wrap: anywhere; }
.footprint-special strong { color: var(--ink); font-size: 13px; }
.footprint-special small { margin-top: 2px; font-size: 10px; line-height: 1.35; }
.footprint-special.is-unlocked { border-color: #e6b5c7; background: #fff; filter: none; opacity: 1; box-shadow: 0 8px 18px rgba(145,45,81,.1); }
.footprint-special.is-unlocked .footprint-special-icon { box-shadow: 0 0 0 4px rgba(223,79,126,.1), 0 5px 12px rgba(108,36,62,.18); }
.footprint-progress { margin-top: 20px; padding: 16px; border-radius: 13px; background: #fff; box-shadow: inset 0 0 0 1px #efe0e5; }
.footprint-progress-copy { display: flex; justify-content: space-between; gap: 15px; margin-bottom: 10px; color: #826572; font-size: 12px; }
.footprint-progress-copy strong { color: var(--rose-dark); }
.footprint-progress-track { height: 10px; overflow: hidden; border-radius: 99px; background: #eee6e9; }
.footprint-progress-track > span { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg,#ef7ba3,#c0265b); box-shadow: 0 0 12px rgba(192,38,91,.32); }
.footprint-progress-track.is-complete > span { width: 100%; background: linear-gradient(90deg,#d4a643,#7e2247); }
.footprint-level-heading { display: flex; justify-content: space-between; gap: 15px; align-items: flex-end; margin: 27px 0 12px; }
.footprint-level-heading h3 { margin: 0; color: var(--ink); font-size: 18px; }
.footprint-level-heading p { margin: 0; color: #8b7b81; font-size: 11px; }
.footprint-level-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.footprint-level { min-width: 0; display: grid; grid-template-columns: 68px minmax(0,1fr); gap: 12px; align-items: start; padding: 13px; border: 1px solid #e7dce0; border-radius: 14px; background: rgba(255,255,255,.82); }
.footprint-level:not(.is-unlocked) { background: #f7f4f5; }
.footprint-level:not(.is-unlocked) .footprint-medallion { filter: grayscale(1); opacity: .35; }
.footprint-level.is-unlocked { border-color: #ebc2d0; background: #fff; box-shadow: 0 8px 20px rgba(83,38,54,.07); }
.footprint-level.is-current { border-color: var(--rose-dark); box-shadow: 0 0 0 2px rgba(189,36,87,.09), 0 10px 24px rgba(109,32,60,.12); }
.footprint-level-copy { min-width: 0; }
.footprint-level-copy > div { display: flex; justify-content: space-between; gap: 7px; align-items: flex-start; }
.footprint-level-copy h4 { margin: 0; color: var(--ink); font-size: 14px; }
.footprint-level-copy > div > span { flex: 0 0 auto; padding: 2px 6px; border-radius: 99px; color: #86777d; background: #eee9eb; font-size: 9px; font-weight: 850; }
.footprint-level.is-unlocked .footprint-level-copy > div > span { color: var(--rose-dark); background: #fff0f5; }
.footprint-level-copy p { margin: 5px 0; color: #765d67; font-size: 10px; font-weight: 750; }
.footprint-level-copy small { display: block; color: #887980; font-size: 10px; line-height: 1.48; }
.donation-record-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 15px; margin: 2px 0 12px; }
.donation-record-heading > span { padding: 5px 10px; border-radius: 99px; color: var(--rose-dark); background: #fff0f5; font-size: 11px; font-weight: 850; }.donation-record-table-wrap { max-width: 100%; overflow-x: auto; border: 1px solid #ead9df; border-radius: 14px; }
.donation-record-table { width: 100%; min-width: 670px; border-collapse: collapse; }
.donation-record-table th,
.donation-record-table td { padding: 15px 14px; border-bottom: 1px solid #eee1e6; text-align: left; vertical-align: middle; }
.donation-record-table th { color: #765361; background: #fbf5f7; font-size: 13px; white-space: nowrap; }
.donation-record-table td { color: var(--ink); font-size: 14px; }
.donation-record-table tbody tr:last-child td { border-bottom: 0; }
.donation-record-table a { color: var(--rose-dark); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.donation-record-table td > span { color: #91858a; }

@media (max-width: 900px) {
  .donation-lookup-layout { grid-template-columns: 1fr; max-width: 720px; }
  .donation-lookup-result { min-height: 360px; }
  .donation-lookup-placeholder { min-height: 285px; }
  .footprint-overview { grid-template-columns: 112px minmax(0,1fr); }
  .footprint-special-list { grid-column: 1 / -1; grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 620px) {
  .donation-lookup-hero { padding: 24px 0 70px; }
  .donation-lookup-intro { padding-top: 20px; }
  .donation-lookup-intro h1 { font-size: 38px; }
  .donation-lookup-intro > p:last-child { font-size: 15px; }
  .donation-lookup-section { padding-bottom: 60px; }
  .donation-lookup-layout { gap: 18px; margin-top: -36px; }
  .donation-lookup-form,
  .donation-lookup-result { border-radius: 18px; padding: 23px 18px; }
  .donation-lookup-summary { grid-template-columns: 1fr 1fr; gap: 8px; }
  .donation-lookup-summary > div { padding: 14px; }
  .donation-lookup-summary strong { font-size: 18px; }
  .donation-lookup-line-help { align-items: flex-start; padding: 11px; }
  .donation-lookup-line-help-icon { width: 38px; height: 38px; flex-basis: 38px; }
  .donation-lookup-line-help-icon svg { width: 27px; height: 27px; }
  .donation-lookup-line-help-arrow { align-self: center; }
  .donation-footprint { padding: 17px 14px; border-radius: 15px; }
  .donation-footprint-heading { align-items: flex-start; flex-direction: column; gap: 7px; }
  .donation-footprint-heading > span { max-width: none; text-align: left; }
  .footprint-overview { grid-template-columns: 1fr; justify-items: stretch; }
  .footprint-current-badge { justify-self: center; }
  .footprint-current-copy { text-align: center; }
  .footprint-stat-pills { justify-content: center; }
  .footprint-special-list { grid-column: auto; grid-template-columns: 1fr; }
  .footprint-progress-copy { align-items: flex-start; flex-direction: column; gap: 4px; }
  .footprint-level-heading { align-items: flex-start; flex-direction: column; gap: 4px; }
  .footprint-level-grid { grid-template-columns: 1fr; }
  .footprint-level { grid-template-columns: 62px minmax(0,1fr); padding: 11px; }
  .footprint-level .footprint-medallion { width: 62px; height: 62px; }
  .donation-record-heading { align-items: flex-start; }
  .donation-record-table-wrap { overflow: visible; border: 0; }
  .donation-record-table { min-width: 0; display: block; }
  .donation-record-table thead { display: none; }
  .donation-record-table tbody,
  .donation-record-table tr,
  .donation-record-table td { display: block; width: 100%; }
  .donation-record-table tr { margin-bottom: 13px; padding: 9px 15px; border: 1px solid #ead9df; border-radius: 13px; background: #fff; }
  .donation-record-table td { display: grid; grid-template-columns: 94px minmax(0,1fr); gap: 10px; padding: 9px 0; border-bottom: 1px solid #f1e6ea; text-align: right; overflow-wrap: anywhere; }
  .donation-record-table td::before { content: attr(data-label); color: #826270; font-size: 12px; font-weight: 800; text-align: left; }
  .donation-record-table tr td:last-child { border-bottom: 0; }
}
