:root {
  --ann-forest: #183c35;
  --ann-deep: #102e28;
  --ann-paper: #f8f6ef;
  --ann-sage: #d3dfcf;
  --ann-gold: #b99d62;
  --ann-ink: #202e29;
  --ann-muted: #59675f;
  --ann-line: #d8ddd3;
  --ann-serif: "Noto Serif TC", "Songti TC", "PMingLiU", Georgia, serif;
  --ann-sans: "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body { margin: 0; color: var(--ann-ink); background: #e9ede5; font-family: var(--ann-sans); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-underline-offset: 5px; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid var(--ann-gold); outline-offset: 5px; }
a:hover { color: var(--ann-forest); }
button { font: inherit; }
button:disabled { cursor: not-allowed; }
.ann-page { width: min(calc(100% - 32px), 1240px); margin: 0 auto; }
.ann-sr-only, .ann-skip { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.ann-skip:focus { z-index: 5; top: 12px; left: 12px; width: auto; height: auto; padding: 14px; clip-path: none; color: var(--ann-ink); background: #fff; }
.ann-header { padding: 18px 0; }
.ann-nav { display: flex; align-items: center; gap: 28px; min-height: 78px; padding: 15px 24px; border: 1px solid var(--ann-line); border-radius: 22px; background: var(--ann-paper); }
.ann-brand { display: flex; flex: 0 0 auto; align-items: center; }
.ann-brand img, .ann-footer img { display: block; max-width: 100%; object-fit: contain; }
.ann-nav__links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 20px; margin-left: auto; }
.ann-nav__links a { font-size: 13px; font-weight: 600; text-decoration: none; }
.ann-nav__links a:hover, .ann-nav__links a[aria-current="location"] { text-decoration: underline; text-decoration-thickness: 2px; }
.ann-nav__links a:active { color: #486e54; }
.ann-nav__status { flex: 0 0 auto; padding: 10px 14px; border-radius: 999px; color: #355044; background: #e1e9dc; font-size: 12px; font-weight: 600; }
main { overflow: hidden; border: 1px solid rgba(24, 60, 53, .1); border-radius: 30px; background: var(--ann-paper); box-shadow: 0 24px 70px rgba(24, 47, 36, .09); }
.ann-hero { position: relative; display: flex; align-items: center; isolation: isolate; overflow: hidden; min-height: 720px; padding: clamp(38px, 6vw, 78px); color: var(--ann-paper); background: #071b1c; }
.ann-hero__art { position: absolute; inset: 0; z-index: -2; margin: 0; }
.ann-hero__art picture, .ann-hero__art img { display: block; width: 100%; height: 100%; }
.ann-hero__art img { object-fit: cover; object-position: 65% center; }
.ann-hero::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(4,18,20,.9), rgba(4,18,20,.82) 46%, rgba(4,18,20,.46) 57%, transparent 74%); pointer-events: none; }
.ann-hero__copy { position: relative; width: min(49%, 550px); min-width: 0; }
.ann-hero__method { margin: 0 0 12px; color: #ccdcc8; font-size: 14px; }
.ann-hero__summary { margin: 0; color: #f3e3bf; font-size: 16px; line-height: 1.7; }
.ann-hero__status { margin: 8px 0 0; color: #d2ded0; font-size: 12px; line-height: 1.7; }
.ann-hero__comparison { margin: 18px 0 0; color: #c1cdbd; font-size: 12px; line-height: 1.7; }
.ann-image-note { margin: 0; padding: 12px 28px; color: var(--ann-muted); background: #eef1e9; font-size: 12px; line-height: 1.7; }
.ann-hero h1 { margin: 0; font-family: Georgia, "Noto Serif TC", serif; font-size: clamp(54px, 7vw, 90px); font-weight: 400; line-height: 1.03; letter-spacing: -.05em; }
.ann-hero__thai { margin: 16px 0 0; color: #d6dfd0; font-size: 15px; line-height: 1.6; overflow-wrap: anywhere; }
.ann-hero__program { margin: 22px 0; padding-left: 16px; border-left: 1px solid rgba(212,177,104,.6); color: #d6dfd0; font-size: 12px; line-height: 1.6; }
.ann-hero__program-title { display: block; margin: 5px 0; color: #f2dca9; font-family: var(--ann-serif); font-size: clamp(25px, 2.8vw, 35px); line-height: 1.45; }
.ann-hero__program-comparison { display: block; font-size: 16px; }
.ann-nowrap { white-space: nowrap; }
.ann-hero__lead { margin: 32px 0 0; font-family: var(--ann-serif); font-size: clamp(28px, 3vw, 40px); line-height: 1.5; font-weight: 500; }
.ann-hero__body { max-width: 540px; margin: 22px 0 0; color: #d2ded0; font-size: 16px; line-height: 1.9; }
.ann-hero__body--service { margin-top: 14px; }
.ann-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.ann-button { display: inline-flex; justify-content: center; align-items: center; min-height: 52px; padding: 14px 22px; border: 1px solid transparent; border-radius: 999px; font-size: 14px; font-weight: 700; line-height: 1.5; text-align: center; text-decoration: none; }
.ann-button--primary { color: var(--ann-deep); background: var(--ann-sage); transition: background-color .15s; }
.ann-button--primary:hover { color: var(--ann-deep); background: #e4ebdf; }
.ann-button--primary:active { background: #becfb8; }
.ann-button { font-family: inherit; cursor: pointer; }
.ann-button:focus-visible, .ann-schedule-dialog__close:focus-visible { outline: 3px solid var(--ann-gold); outline-offset: 4px; }
.ann-button:disabled { cursor: not-allowed; }
.ann-button--outline { border-color: #8d9d8d; color: #edf2e8; background: transparent; transition: background-color .15s; }
.ann-button--outline:hover { background: rgba(211, 223, 207, .12); }
.ann-button--outline:active { background: rgba(211, 223, 207, .22); }
.ann-offer__schedule { margin-top: 12px; }
.ann-button--disabled { border-color: #587265; color: #cfdbcf; background: transparent; }
.ann-service-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; border-bottom: 1px solid var(--ann-line); background: #e9eee4; }
.ann-service-strip > div { padding: 26px 28px; border-right: 1px solid var(--ann-line); }
.ann-service-strip > div:last-child { border-right: 0; }
.ann-service-strip dt { color: var(--ann-muted); font-size: 12px; }
.ann-service-strip dd { margin: 9px 0 0; color: var(--ann-forest); font-family: var(--ann-serif); font-size: 25px; line-height: 1.4; }
.ann-section { padding: clamp(55px, 7.5vw, 92px) clamp(28px, 7vw, 86px); border-bottom: 1px solid var(--ann-line); }
.ann-section__heading { max-width: 800px; margin-bottom: 34px; }
.ann-section h2, .ann-related h2 { margin: 0; font-family: var(--ann-serif); font-size: clamp(29px, 3.5vw, 46px); font-weight: 600; line-height: 1.45; letter-spacing: -.035em; }
.ann-section__heading > p { margin: 18px 0 0; color: var(--ann-muted); font-size: 16px; line-height: 1.85; }
.ann-about__layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 50px; align-items: start; }
.ann-prose { max-width: 650px; }
.ann-prose p { text-wrap: pretty; margin: 0 0 26px; color: var(--ann-muted); font-size: 16px; line-height: 2; }
.ann-prose p.ann-prose__lead { color: var(--ann-ink); font-family: var(--ann-serif); font-size: 22px; line-height: 1.85; }
.ann-prose p.ann-public-name { margin-bottom: 0; padding-top: 18px; border-top: 1px solid var(--ann-line); font-size: 13px; }
.ann-text-link { display: inline-block; padding: 5px 0; color: var(--ann-forest); font-size: 13px; font-weight: 700; line-height: 1.7; }
.ann-text-link:hover { color: #53734c; }
.ann-text-link:active { color: var(--ann-ink); }
.ann-program { padding: 24px; border: 1px solid #d3dccd; border-radius: 22px; background: #edf1e7; }
.ann-program__label { margin: 0 0 16px; color: var(--ann-muted); font-size: 12px; }
.ann-program h3 { margin: 0; color: var(--ann-forest); font-family: Georgia, serif; font-size: 30px; font-weight: 400; line-height: 1.25; }
.ann-program > p:not(.ann-program__label) { margin: 18px 0; color: var(--ann-muted); font-size: 14px; line-height: 1.9; }
.ann-program > p.ann-program__source { margin-bottom: 0; font-size: 12px; }
.ann-program__figure { display: grid; grid-template-columns: 90px minmax(0, 1fr); align-items: center; gap: 16px; margin: 0; }
.ann-program__portrait { position: relative; overflow: hidden; aspect-ratio: 350 / 657; border-radius: 10px; background: #201b11; }
.ann-program__portrait img { display: block; width: 114.285714%; max-width: none; height: 100%; object-fit: contain; object-position: left center; }
.ann-program__figure figcaption { margin: 0; color: var(--ann-muted); font-size: 12px; line-height: 1.8; }
.ann-program__figure figcaption p { margin: 6px 0 0; }
.ann-program__figure figcaption .ann-program__label { margin: 0 0 6px; font-size: 11px; }
.ann-program__figure figcaption .ann-program__image-note { font-size: 11px; }
.ann-program__sources { padding-top: 14px; border-top: 1px solid #cdd8c5; color: var(--ann-muted); font-size: 12px; line-height: 1.8; }
.ann-program__sources summary { min-height: 30px; color: var(--ann-forest); font-weight: 600; cursor: pointer; }
.ann-program__sources p { margin: 12px 0 0; }
.ann-program__source-item + .ann-program__source-item { margin-top: 18px; }
.ann-program__source-item h4 { margin: 12px 0 0; color: var(--ann-forest); font-size: 12px; line-height: 1.8; }
.ann-program__timecodes { margin: 12px 0 0; }
.ann-program__timecodes > div { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 12px; margin-top: 8px; }
.ann-program__timecodes dt { color: var(--ann-forest); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ann-program__timecodes dd { margin: 0; }
.ann-service-strip__mode span { display: block; white-space: nowrap; }
.ann-method { background: #eef1e9; }
.ann-method__layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 50px; }
.ann-session-steps { margin: 0; padding-left: 24px; }
.ann-session-steps li { padding: 0 0 22px 12px; color: var(--ann-forest); }
.ann-session-steps li:last-child { padding-bottom: 0; }
.ann-session-steps li::marker { font-family: Georgia, serif; font-size: 22px; }
.ann-session-steps h3 { margin: 0; font-size: 18px; line-height: 1.7; }
.ann-session-steps p { margin: 8px 0 0; color: var(--ann-muted); font-size: 15px; line-height: 1.95; }
.ann-method__note { padding: 8px 0 8px 28px; border-left: 2px solid #aec3a4; }
.ann-method__note h3 { margin: 0; color: var(--ann-forest); font-family: var(--ann-serif); font-size: 23px; line-height: 1.6; }
.ann-method__note p { margin: 18px 0; color: var(--ann-muted); font-size: 14px; line-height: 1.9; }
.ann-offer { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); border: 1px solid var(--ann-line); border-radius: 24px; overflow: hidden; }
.ann-offer__details { padding: 20px 34px; background: #fffdfa; }
.ann-offer__details dl { margin: 0; }
.ann-offer__details dl > div { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--ann-line); }
.ann-offer__details dl > div:last-child { border-bottom: 0; }
.ann-offer__details dt { color: var(--ann-muted); font-size: 13px; line-height: 1.8; }
.ann-offer__details dd { margin: 0; font-size: 16px; font-weight: 600; line-height: 1.7; }
.ann-offer__booking { display: flex; flex-direction: column; justify-content: center; padding: 36px; color: var(--ann-paper); background: var(--ann-forest); }
.ann-offer__price-label { margin: 0; color: #d2ded0; font-size: 13px; }
.ann-offer__price { margin: 10px 0 0; font-family: Georgia, serif; font-size: clamp(38px, 4.5vw, 52px); line-height: 1.2; letter-spacing: -.03em; }
.ann-offer__original { margin: 12px 0 26px; color: #c2d1c2; font-size: 14px; }
.ann-button--booking { border: 1px solid var(--ann-sage); color: var(--ann-deep); background: var(--ann-sage); }
.ann-button--booking:hover { background: #e4ebdf; }
.ann-button--booking:active { background: #becfb8; }
.ann-offer__availability { margin: 16px 0 0; color: #d2ded0; font-size: 12px; line-height: 1.85; }
.ann-offer__cutoff { margin: 20px 0 0; padding-top: 18px; border-top: 1px solid #668170; color: #f2e0b6; font-size: 14px; line-height: 1.85; }
.ann-faq__items { border-top: 1px solid var(--ann-line); }
.ann-faq details { padding: 27px 0; border-bottom: 1px solid var(--ann-line); }
.ann-faq summary { padding-right: 12px; color: var(--ann-ink); font-size: 16px; font-weight: 600; line-height: 1.75; cursor: pointer; }
.ann-faq summary:hover { color: #476e4f; }
.ann-faq summary:active { color: var(--ann-forest); }
.ann-faq details[open] summary { color: var(--ann-forest); }
.ann-faq details p { max-width: 790px; margin: 24px 0 0; color: #394a40; font-size: 16px; line-height: 1.95; }
.ann-faq details[open] summary { padding-bottom: 16px; border-bottom: 1px solid #e3e8dc; }
.ann-change-rights { max-width: 790px; margin: 22px 0 0; padding: 0 0 0 24px; }
.ann-change-rights li { padding: 0 0 18px 8px; color: var(--ann-forest); font-size: 16px; line-height: 1.75; }
.ann-change-rights li:last-child { padding-bottom: 0; }
.ann-change-rights li::marker { font-variant-numeric: tabular-nums; font-weight: 700; }
.ann-change-rights strong { display: block; font-size: 16px; }
.ann-faq .ann-change-rights p { margin-top: 12px; font-size: 16px; line-height: 1.85; text-wrap: pretty; }
.ann-related { padding: clamp(42px, 6vw, 68px) clamp(28px, 7vw, 86px); background: #e2e9dc; }
.ann-related h2 { max-width: 760px; font-size: clamp(25px, 2.5vw, 33px); }
.ann-related__links { display: flex; flex-wrap: wrap; gap: 14px 26px; margin-top: 26px; }
.ann-related__links a { min-height: 44px; padding: 10px 0; font-size: 14px; font-weight: 600; }
.ann-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 22px 32px; padding: 35px 20px 42px; color: var(--ann-muted); }
.ann-footer a { display: inline-flex; align-items: center; min-height: 44px; font-size: 12px; text-decoration: none; }
.ann-footer a:hover { color: var(--ann-forest); text-decoration: underline; }


@media (max-width: 980px) {
  .ann-nav { gap: 18px; padding: 16px 20px; }
  .ann-nav__links { gap: 13px; }
  .ann-nav__status { display: none; }
  .ann-hero { min-height: 700px; padding: 48px 38px; }
  .ann-hero__copy { width: 55%; }
  .ann-hero h1 { font-size: clamp(54px, 7vw, 78px); }
  .ann-about__layout, .ann-method__layout { gap: 32px; }
  .ann-service-strip > div { padding: 24px 18px; }
  .ann-service-strip dd { font-size: 22px; }
  .ann-offer__booking { padding: 28px; }
}

@media (max-width: 700px) {
  html { scroll-padding-top: 26px; }
  .ann-page { width: min(calc(100% - 20px), 600px); }
  .ann-header { padding: 10px 0; }
  .ann-nav { flex-direction: column; gap: 14px; align-items: center; padding: 18px 20px; border-radius: 18px; }
  .ann-brand img { width: 124px; height: 35px; }
  .ann-nav__links { justify-content: center; gap: 9px 18px; margin-left: 0; }
  .ann-nav__links a { padding: 6px 0; font-size: 12px; }
  main { border-radius: 22px; }
  .ann-hero { display: flex; flex-direction: column; align-items: stretch; min-height: 0; padding: 0; }
  .ann-hero::after { display: none; }
  .ann-hero__art { position: relative; z-index: 0; width: 100%; height: clamp(210px, 60vw, 280px); }
  .ann-hero__art::after { content: ""; position: absolute; inset: auto 0 0; height: 22%; background: linear-gradient(180deg, transparent, #071b1c); pointer-events: none; }
  .ann-hero__art img { object-position: center 24%; }
  .ann-hero__copy { width: 100%; padding: 14px 28px 34px; }
  .ann-hero__program { margin: 14px 0; padding-left: 12px; font-size: 11px; }
  .ann-hero__program-title { font-size: 25px; }
  .ann-hero__program-comparison { font-size: 14px; }
  .ann-hero__method { margin-bottom: 9px; font-size: 12px; }
  .ann-hero__summary { font-size: 14px; }
  .ann-hero__status { margin: 8px 0 0; font-size: 12px; }
  .ann-hero h1 { font-size: clamp(46px, 11vw, 68px); }
  .ann-hero__thai { font-size: 13px; }
  .ann-hero__lead { margin-top: 27px; font-size: clamp(27px, 6.6vw, 35px); }
  .ann-hero__body { font-size: 16px; line-height: 1.8; }
  .ann-actions { gap: 10px; margin-top: 14px; }
  .ann-button { width: 100%; min-height: 52px; padding: 13px 16px; }
  .ann-service-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ann-service-strip > div { padding: 21px 24px; }
  .ann-service-strip > div:nth-child(2) { border-right: 0; }
  .ann-service-strip > div:nth-child(-n+2) { border-bottom: 1px solid var(--ann-line); }
  .ann-service-strip dd { font-size: clamp(19px, 5vw, 25px); }
  .ann-section { padding: 49px 28px; }
  .ann-section h2 { font-size: 29px; }
  .ann-section__heading { margin-bottom: 27px; }
  .ann-consultation .ann-section__heading > p { text-wrap: balance; }
  .ann-about__layout, .ann-method__layout, .ann-offer { grid-template-columns: minmax(0, 1fr); }
  .ann-prose p { margin-bottom: 28px; font-size: 16px; line-height: 1.95; }
  .ann-prose p.ann-prose__lead { font-size: 20px; line-height: 1.75; }
  .ann-program { padding: 20px; border-radius: 18px; }
  .ann-program h3 { font-size: 25px; }
  .ann-method__note { padding-left: 22px; }
  .ann-offer { border-radius: 20px; }
  .ann-offer__details { padding: 13px 23px; }
  .ann-offer__details dl > div { grid-template-columns: 86px minmax(0, 1fr); gap: 13px; padding: 18px 0; }
  .ann-offer__details dd { font-size: 15px; }
  .ann-offer__booking { padding: 28px 24px; }
  .ann-related { padding: 38px 28px; }
  .ann-related__links { flex-direction: column; gap: 2px; margin-top: 18px; }
  .ann-footer { gap: 8px 20px; padding: 25px 20px 32px; }
  .ann-footer > a:first-child { justify-content: center; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .ann-button--primary { transition: none; }
}

/* Original portraits and details within their introduction sections. */
.ann-photo { min-width: 0; margin: 0; }
.ann-photo picture { display: block; overflow: hidden; border-radius: 18px; background: var(--ann-deep); }
.ann-photo img { display: block; width: 100%; height: auto; }
.ann-photo figcaption { margin-top: 12px; color: var(--ann-muted); font-size: 12px; line-height: 1.8; }
.ann-about--photographed .ann-about__layout { grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); align-items: center; gap: clamp(28px, 4vw, 50px); }
.ann-about--photographed .ann-program { grid-column: 1 / -1; padding: 28px; }
.ann-about--photographed .ann-program > p { margin: 0; }
.ann-method__photos { display: grid; grid-template-columns: minmax(0, 2.1fr) minmax(0, 1fr); align-items: end; gap: 24px; margin-bottom: 42px; }
.ann-photo--detail img { aspect-ratio: 1; object-fit: cover; object-position: center top; }
.ann-faq__intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 170px); align-items: center; gap: 28px; margin-bottom: 34px; }
.ann-faq__intro .ann-section__heading { margin-bottom: 0; }
@media (min-width: 701px) {
  .ann-consultation, .ann-faq { padding-top: 76px; padding-bottom: 76px; }
  .ann-faq__intro { grid-template-columns: minmax(0, 1fr) minmax(0, 140px); margin-bottom: 24px; }
}
@media (max-width: 700px) {
  .ann-about--photographed .ann-about__layout { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .ann-photo--portrait { width: min(100%, 400px); justify-self: center; }
  .ann-about--photographed .ann-program { display: block; }
  .ann-about--photographed .ann-program > p { margin-top: 18px; }
  .ann-method__photos { grid-template-columns: minmax(0, 1fr); gap: 24px; margin-bottom: 32px; }
  .ann-photo--detail { width: 62%; justify-self: end; }
  .ann-faq__intro { grid-template-columns: minmax(0, 1fr) minmax(0, 110px); gap: 18px; margin-bottom: 27px; }
  .ann-faq details p { font-size: 16px; }
  .ann-change-rights li { padding-bottom: 26px; }
  .ann-change-rights li:last-child { padding-bottom: 0; }
}

/* The programme photograph retains its original full composition. */
.ann-program__figure--stage { grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr); align-items: center; gap: 32px; }
.ann-program__figure figcaption .ann-program__description { max-width: 40ch; margin-top: 20px; font-size: 16px; line-height: 1.95; text-wrap: pretty; }
.ann-program__portrait--stage { aspect-ratio: auto; border-radius: 14px; }
.ann-program__portrait--stage img { width: 100%; height: auto; object-fit: contain; object-position: center; }
@media (max-width: 700px) {
  .ann-about--photographed .ann-program { margin-top: 8px; padding: 24px; }
  .ann-program__figure--stage { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .ann-program__figure figcaption .ann-program__description { margin-top: 22px; }
  .ann-about--photographed { padding-bottom: 60px; }
  .ann-method { padding-top: 60px; }
  .ann-faq details { padding: 28px 0; }
  .ann-faq details:not([open]) { padding: 12px 0; }
  .ann-faq details[open] { padding-bottom: 34px; }
  .ann-change-rights { margin-top: 28px; }
}

/* Native r1 review: touch targets and bounded FAQ navigation. */
.ann-faq__rights-brief{max-width:790px;margin:0 0 18px;color:var(--ann-muted);font-size:15px;line-height:1.8}
.ann-faq__rights-brief strong{display:block;color:var(--ann-forest);font-weight:600}
.ann-faq__hint{display:block;margin-top:4px;color:var(--ann-muted);font-size:13px;font-weight:400}
.ann-faq__collapse{min-height:44px;margin:12px 0;padding:10px 16px;border:1px solid var(--ann-line);border-radius:10px;color:var(--ann-forest);background:var(--ann-paper);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.ann-faq__collapse[hidden]{display:none}
.ann-faq__collapse:hover{background:#e1e9dc}
.ann-faq__collapse:active{background:#d6e3d0}
.ann-faq summary{min-height:44px}
@media(max-width:767px){
  .ann-nav__links{gap:4px 12px}
  .ann-nav__links a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 4px;font-size:14px}
}

@media (min-width: 701px) {
  .ann-faq__rights-brief { font-size: 16px; }
  .ann-faq__hint { font-size: 14px; }
}

@media (max-width: 640px){.ann-session-zone{display:block;white-space:nowrap}}

/* Keep desktop FAQ questions compact while preserving mobile touch spacing. */
@media (min-width: 701px) {
  .ann-faq details { padding: 14px 0; }
}
.ann-prose strong { color: var(--ann-forest); font-weight: 600; }

/* Page language controls keep the existing forest/paper treatment. */
.ann-nav { flex-wrap: wrap; }
.ann-language { display: inline-flex; flex: 0 0 auto; gap: 3px; padding: 4px; border: 1px solid var(--ann-line); border-radius: 999px; background: #eef1e9; }
.ann-language button { min-width: 44px; min-height: 40px; padding: 7px 10px; border: 0; border-radius: 999px; color: var(--ann-forest); background: transparent; cursor: pointer; font-size: 13px; line-height: 1.4; }
.ann-language button:hover { background: #dce5d7; }
.ann-language button:active { background: #cad9c4; }
.ann-language button[aria-pressed="true"] { color: var(--ann-paper); background: var(--ann-forest); }
html:lang(en) .ann-service-strip__mode span, html:lang(th) .ann-service-strip__mode span { white-space: normal; }
html:lang(en) .ann-service-strip dd, html:lang(th) .ann-service-strip dd { font-size: clamp(17px, 2vw, 23px); overflow-wrap: anywhere; }
html:lang(th) { --ann-serif: "Noto Serif Thai", "Thonburi", serif; --ann-sans: "Thonburi", "Noto Sans Thai", sans-serif; }
html:lang(th) .ann-hero__program-title { font-size: clamp(24px, 2.5vw, 32px); }
@media (max-width: 700px) { .ann-language button { min-height: 44px; } }

.ann-review-language-note { margin: 0; padding: 18px 28px 0; color: var(--ann-muted); font-size: 12px; line-height: 1.8; }
