:root {
  --lyb-container-max: 1200px;
  --lyb-shell-max-width: 1200px;
  --lyb-page-gutter: 16px;
  --lyb-shell-padding-x: 24px;
  --lyb-shell-padding-x-mobile: var(--lyb-page-gutter);
  --lyb-header-height: 72px;
  --lyb-brand-strong: #153f2b;
  --lyb-brand: #184c3a;
  --lyb-brand-hover: #0f3528;
  --lyb-brand-soft: #eaf6ef;
  --lyb-text: #111827;
  --lyb-text-muted: #667085;
  --lyb-border: #e5e0d6;
  --lyb-border-soft: #eee7dc;
  --lyb-surface: #fff;
  --lyb-color-heading-light: var(--lyb-text);
  --lyb-color-label-light: var(--lyb-brand);
  --lyb-color-value-light: var(--lyb-text);
  --lyb-color-secondary-light: var(--lyb-text-muted);
  --lyb-color-link-light: var(--lyb-brand);
  --lyb-color-active-light: var(--lyb-brand);
  --lyb-color-cta-background-light: var(--lyb-brand);
  --lyb-color-cta-foreground-light: #fff;
  --lyb-color-focus-light: #0b7a53;
  --lyb-color-heading-dark: #fff;
  --lyb-color-label-dark: #a9e8c8;
  --lyb-color-value-dark: #f5fff8;
  --lyb-color-secondary-dark: #d6e9de;
  --lyb-color-link-dark: #fff;
  --lyb-color-active-dark: #b7f2d1;
  --lyb-color-cta-background-dark: #fff;
  --lyb-color-cta-foreground-dark: var(--lyb-brand-strong);
  --lyb-color-focus-dark: #b7f2d1;
  --lyb-color-heading: var(--lyb-color-heading-light);
  --lyb-color-label: var(--lyb-color-label-light);
  --lyb-color-value: var(--lyb-color-value-light);
  --lyb-color-secondary: var(--lyb-color-secondary-light);
  --lyb-color-link: var(--lyb-color-link-light);
  --lyb-color-active: var(--lyb-color-active-light);
  --lyb-color-cta-background: var(--lyb-color-cta-background-light);
  --lyb-color-cta-foreground: var(--lyb-color-cta-foreground-light);
  --lyb-color-focus: var(--lyb-color-focus-light);
  --lyb-font-family: system-ui, sans-serif;
  --lyb-font-weight-regular: 400;
  --lyb-font-weight-medium: 500;
  --lyb-font-weight-semibold: 600;
  --lyb-font-weight-bold: 700;
  --lyb-body-font-size-sm: 14px;
  --lyb-body-font-size-md: 16px;
  --lyb-body-line-height: 1.65;
  --lyb-contact-label-font-size: var(--lyb-body-font-size-sm);
  --lyb-contact-value-font-size: var(--lyb-body-font-size-md);
  --lyb-contact-line-height: var(--lyb-body-line-height);
  --lyb-contact-label-font-weight: var(--lyb-font-weight-medium);
  --lyb-contact-value-font-weight: var(--lyb-font-weight-regular);
}

html[data-lyb-font-token="font-cjk"] { --lyb-font-family: "Noto Sans TC", system-ui, sans-serif; }
html[data-lyb-font-token="font-latin"] { --lyb-font-family: Inter, "Noto Sans", system-ui, sans-serif; }
html[data-lyb-font-token="font-thai"] { --lyb-font-family: "Noto Sans Thai", "Noto Sans", system-ui, sans-serif; }

html, body { min-height: 100%; }
.lyb-shell{width:min(100%,var(--lyb-shell-max-width));margin-inline:auto;padding-inline:var(--lyb-shell-padding-x);}
.lyb-transaction-content.container{width:min(100%,var(--lyb-container-max));max-width:var(--lyb-container-max)!important;margin-inline:auto;}
body.public-page { min-height: 100vh; display: flex; flex-direction: column; }
body.public-page, body.public-page input, body.public-page textarea, body.public-page select, body.public-page button { font-family: var(--lyb-font-family); }
body.public-page > main { flex: 1 0 auto; width: 100%; }
body.public-page > .site-footer { flex: 0 0 auto; margin-top: auto; }

.lyb-shell { width: min(100%, var(--lyb-container-max)); margin-inline: auto; padding-inline: var(--lyb-shell-padding-x); }
.lyb-visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.skip-link, .lyb-skip-link { position: absolute; left: 12px; top: -80px; z-index: 20; padding: 8px 12px; background: #fff; color: var(--lyb-brand-strong); }
.lyb-skip-link:focus { top: 12px; }
.skip-link:focus { top: 12px; }

.lyb-header { position: relative; z-index: 2; background: var(--lyb-surface); color: var(--lyb-color-value); border-bottom: 1px solid var(--lyb-border); }
.lyb-header__inner { min-height: var(--lyb-header-height); display: flex; align-items: center; gap: 18px; }
.lyb-header__brand { color: var(--lyb-brand); font-size: 18px; font-weight: 800; white-space: nowrap; text-decoration: none; }
.lyb-header__nav { display: flex; gap: 18px; margin-left: auto; }
.lyb-header__nav a, .lyb-header__mobile-menu a { color: var(--lyb-color-value); text-decoration: none; }
.lyb-header__nav a:hover, .lyb-header__mobile-menu a:hover { color: var(--lyb-brand); }
.lyb-header__nav a.is-active, .lyb-header__mobile-menu a.is-active { color: var(--lyb-brand); font-weight: var(--lyb-font-weight-semibold); }
.lyb-header__actions { display: flex; align-items: center; gap: 12px; }
.lyb-header__language { min-height: 44px; max-width: 100%; padding: 0 12px; border: 1px solid var(--lyb-border); border-radius: 8px; background: var(--lyb-surface); color: var(--lyb-color-secondary); font: inherit; }
.lyb-header__cta, .button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 10px 18px; border-radius: 8px; font-weight: 750; text-align: center; }
.lyb-header__cta { background: var(--lyb-color-cta-background); color: var(--lyb-color-cta-foreground) !important; text-decoration: none !important; }
.lyb-header__cta:hover { background: var(--lyb-brand-hover); }
.lyb-header__menu-button { display: none; min-width: 44px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--lyb-border); border-radius: 8px; background: var(--lyb-surface); color: var(--lyb-color-secondary); font: inherit; font-weight: 750; }
.lyb-header__mobile-menu { padding-block: 10px 16px; border-top: 1px solid var(--lyb-border); }
.lyb-header__mobile-menu:not([hidden]) { display: grid; gap: 4px; }
.lyb-header__mobile-menu a { min-height: 44px; display: flex; align-items: center; padding: 8px; border-radius: 8px; }
.lyb-header__mobile-menu a:hover { background: var(--lyb-brand-soft); }
.lyb-header a:focus-visible, .lyb-header button:focus-visible, .lyb-header select:focus-visible, .site-footer a:focus-visible { outline: 3px solid var(--lyb-color-focus); outline-offset: 3px; }

.site-footer, .lyb-transaction-footer { --lyb-color-heading: var(--lyb-color-heading-dark); --lyb-color-label: var(--lyb-color-label-dark); --lyb-color-value: var(--lyb-color-value-dark); --lyb-color-secondary: var(--lyb-color-secondary-dark); --lyb-color-link: var(--lyb-color-link-dark); --lyb-color-active: var(--lyb-color-active-dark); --lyb-color-cta-background: var(--lyb-color-cta-background-dark); --lyb-color-cta-foreground: var(--lyb-color-cta-foreground-dark); --lyb-color-focus: var(--lyb-color-focus-dark); --footer-heading-color: var(--lyb-color-label-dark); --footer-text-primary: var(--lyb-color-value-dark); --footer-text-secondary: var(--lyb-color-secondary-dark); --footer-link-color: var(--lyb-color-link-dark); --footer-link-active-color: var(--lyb-color-label-dark); background: var(--lyb-brand-strong); color: var(--footer-text-primary); padding: 40px 0 20px; }
.footer-grid, .lyb-footer-grid { display: grid; gap: 28px; }
.footer-grid > section, .lyb-footer-grid > section { min-width: 0; }
.footer-grid h2 { margin: 0 0 10px; font-size: 17px; color: var(--footer-heading-color); }
.footer-grid a, .lyb-transaction-footer a { color: var(--footer-link-color); }
.footer-grid a:hover, .footer-grid a:focus-visible, .footer-grid a:active, .lyb-transaction-footer a:hover, .lyb-transaction-footer a:focus-visible, .lyb-transaction-footer a:active { color: var(--footer-link-active-color); }
.footer-grid a { display: block; margin: 8px 0; text-decoration: underline; text-decoration-color: var(--footer-text-secondary); }
.footer-grid p { overflow-wrap: anywhere; }
.contact-support-grid { display: grid; gap: 16px; }
.contact-details, .footer-grid .footer-contact-row {
  font-family: inherit;
  line-height: var(--lyb-contact-line-height);
}
.contact-details { margin: 0; }
.contact-details > .lyb-contact-row { display: flex; align-items: baseline; gap: 8px; min-width: 0; padding: 10px 0; border-bottom: 1px solid var(--lyb-border-soft); }
.contact-details .lyb-contact-label { flex: 0 0 auto; font-size: var(--lyb-contact-label-font-size); font-weight: var(--lyb-contact-label-font-weight); color: var(--lyb-color-label); }
.contact-details .lyb-contact-value, .footer-grid .footer-contact-value { min-width: 0; margin: 0; font-size: var(--lyb-contact-value-font-size); font-weight: var(--lyb-contact-value-font-weight); }
.footer-grid .footer-contact-label { flex: 0 0 auto; font-size: var(--lyb-contact-label-font-size); font-weight: var(--lyb-contact-label-font-weight); color: var(--footer-text-secondary); }
.footer-grid .footer-contact-value { color: var(--footer-text-primary); }
.footer-grid .footer-contact-row--social .footer-contact-value { color: var(--footer-link-color); }
.footer-grid .footer-contact-row--social .footer-contact-value:hover, .footer-grid .footer-contact-row--social .footer-contact-value:focus-visible, .footer-grid .footer-contact-row--social .footer-contact-value:active { color: var(--footer-link-active-color); }
.contact-details .lyb-contact-value a { font: inherit; color: var(--lyb-color-link); }
.contact-details .lyb-contact-row--hours .lyb-contact-value { white-space: nowrap; }
.contact-details .lyb-contact-row--social { flex-wrap: wrap; }
.contact-details .lyb-contact-row--social .lyb-contact-value, .footer-grid .footer-contact-row--social .footer-contact-value { display: inline; }
.contact-details .lyb-contact-separator, .footer-grid .footer-contact-separator { flex: 0 0 auto; }
.contact-details .lyb-contact-value a { overflow-wrap: anywhere; }
.footer-grid .footer-contact-row { display: flex; align-items: baseline; gap: 8px; margin: 8px 0; min-width: 0; }
.footer-grid .footer-contact-label { flex: 0 0 auto; }
.footer-grid .footer-contact-value { min-width: 0; }
.footer-grid .footer-contact-row--social { flex-wrap: wrap; }
.footer-grid .footer-contact-row--social .footer-contact-value { display: inline; }
.footer-grid .footer-contact-separator { flex: 0 0 auto; }
.footer-grid p a { display: inline; }
.footer-bottom { width: min(100%, var(--lyb-container-max)); margin: 32px auto 0; padding-inline: var(--lyb-shell-padding-x); color: var(--footer-text-secondary); font-size: 14px; text-align: center; }

@media (min-width: 768px) and (max-width: 1023px) { .footer-grid, .lyb-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
  .footer-grid, .lyb-footer-grid { grid-template-columns: repeat(3, minmax(0, .75fr)) minmax(0, 2.75fr); }
  .footer-grid .footer-contact-row--hours .footer-contact-value { white-space: nowrap; }
}
@media (min-width: 768px) {
  .contact-support-grid { grid-template-columns: minmax(0, 1.7fr) minmax(0, .65fr) minmax(0, .65fr); }
}
@media (max-width: 1023px) {
  .contact-details .lyb-contact-row--hours .lyb-contact-value { white-space: normal; }
  .lyb-shell { padding-inline: var(--lyb-shell-padding-x-mobile); }
  .lyb-header__nav, .lyb-header__cta { display: none; }
  .lyb-header__inner { justify-content: space-between; }
  .lyb-header__brand { min-width: 0; flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; }
  .lyb-header__actions { min-width: 0; flex: 0 1 auto; margin-left: auto; }
  .lyb-header__menu-button { display: inline-flex; align-items: center; justify-content: center; }
}
@media (max-width: 480px) {
  .lyb-header__language-wrapper, .lyb-header__language-selector { min-width: 0; }
  .lyb-header__language { max-width: 8rem; padding-inline: 8px; }
}
@media (max-width: 767px) {
  .footer-grid, .lyb-footer-grid { grid-template-columns: 1fr; }
  .contact-details .lyb-contact-row--hours .lyb-contact-value { white-space: normal; }
  .footer-grid .footer-contact-row--hours .footer-contact-value { white-space: normal; }
  .footer-bottom { padding-inline: var(--lyb-shell-padding-x-mobile); }
  .lyb-header__actions { gap: 8px; }
  .lyb-header__language { max-width: 10rem; }
  .lyb-header__menu-button { width: 44px; padding: 0; font-size: 0; }
  .lyb-header__menu-button::after { content: "☰"; font-size: 20px; line-height: 1; }
}
@media (min-width: 1024px) { .lyb-header__menu-button { display: none; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }
