/* LMYC site consistency — last-loaded. Keeps rem design scale + uniform buttons/spacing. */

/* Design rem base: all legacy LMYC CSS was authored for 10px rem (Dawn). */
html {
  font-size: 62.5% !important; /* 10px when browser default is 16px */
}

body {
  font-size: 1.4rem; /* 14px */
  line-height: 1.55;
  overflow-x: clip;
  max-width: 100%;
  font-family: var(--font-body-family, "GeneralSans-Light", "Helvetica Neue", Helvetica, Arial, sans-serif) !important;
}

/* Typography lock — last word over leftover Dawn / page-inline faces */
html,
body,
:root {
  --font-heading-family: "Minion3Display-Italic", Georgia, "Times New Roman", serif !important;
  --font-body-family: "GeneralSans-Light", "PingFang HK", "Noto Sans HK", "Microsoft JhengHei", "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  --font-body-light-family: var(--font-body-family) !important;
  --font-ui: var(--font-body-family) !important;
  --lmyc-supporting-copy-font: var(--font-body-family) !important;
}

/* Header height tokens — px so clean header stays exact */
html,
body,
#site-header {
  --header-height: 72px !important;
  --lmyc-header-h: 72px !important;
  --lmyc-header-bar-height-mobile: 64px !important;
  --lmyc-header-logo-slot-desktop: 52px !important;
}

@media (max-width: 1199px) {
  html,
  body,
  #site-header {
    --header-height: 64px !important;
    --lmyc-header-h: 64px !important;
  }
}

/* Kill leftover Dawn chrome gaps under sticky header */
#site-header[data-lmyc-clean="1"] + *,
#site-header[data-lmyc-clean="1"] ~ #main-content {
  margin-top: 0 !important;
}

body.lmyc-home-page #main-content,
body:has(#hero) #main-content {
  padding-top: 0 !important;
}

#hero,
.home-slideshow-section,
.lmyc-hero-loop {
  margin-top: 0 !important;
}

/* Solid sticky header: hero image starts flush under the bar (no dark spacer) */
body:has(#site-header[data-lmyc-clean="1"]) .lmyc-hero-loop.home-slideshow-section,
body:has(#site-header[data-lmyc-clean="1"]) #hero.lmyc-hero-loop.home-slideshow-section {
  padding-top: 0 !important;
}

/* Uniform content width — sides follow shared --lmyc-gutter (13″ tuned in lmyc-layout.css) */
#main-content .page-width,
#site-footer .page-width,
.footer__content-top.page-width {
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: var(--lmyc-gutter, clamp(2.5rem, 5.5vw, 4.5rem));
  box-sizing: border-box;
}

/* Section rhythm */
#main-content .page-section,
#main-content > section {
  box-sizing: border-box;
}

/* Media never blow out layout (hero posters must fill their frame) */
#main-content img,
#main-content video,
#site-footer img {
  max-width: 100%;
  height: auto;
}

#main-content .lmyc-hero-loop__poster,
#main-content .lmyc-hero-loop__video,
#main-content .lmyc-hero-loop img,
#main-content .lmyc-hero-loop video {
  max-width: none !important;
  max-height: none !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* -------- Buttons: one system -------- */
:root {
  --lmyc-btn-min-width: 155px;
  --lmyc-btn-height: 52px;
  --lmyc-btn-font-size: 14px;
  --lmyc-btn-padding-x: 22px;
  --lmyc-btn-letter-spacing: 0.08em;
  --lmyc-btn-font-weight: 600;
  --lmyc-btn-radius: 999px;
  --lmyc-btn-green: #425936;
  --lmyc-btn-green-hover: #303d1c;
  --lmyc-btn-on-green: #fdf8f3;
}

#main-content .button,
#main-content a.button,
#main-content button.button,
#main-content .button--primary,
#main-content .button--secondary,
#main-content .slide-button,
#main-content .custom-button,
#main-content .lmyc-hero-btn,
#main-content .lmyc-explore-services-btn,
#main-content .lmyc-know-more-btn,
#main-content .lmyc-why-cta__btn,
#main-content .lmyc-tt-hero__btn,
#main-content .lmyc-tt-btn,
#main-content .lmyc-tt-btn--primary,
#main-content .lmyc-tt-btn--ghost,
#main-content .lmyc-tt-btn--accent,
#main-content .lmyc-tt-btn--pay,
#main-content .lmyc-workshops-events__btn,
#main-content .lmyc-instagram-reels-btn,
#main-content .lmyc-cta-premium,
#main-content a.lmyc-cta-premium,
#main-content .lmyc-namasta-callout__btn,
#main-content .lmyc-smile-cta__btn,
#main-content .lmyc-smile-hero__actions .button,
#main-content .lmyc-contact-intro__actions .button,
#main-content .lmyc-contact-form__submit,
#main-content .lmyc-subpage-hero .button,
#main-content .lmyc-subpage-card .button,
#main-content .lmyc-pricing-ambassador__link,
#main-content .lmyc-pricing-card__btn,
#main-content .lmyc-pricing-card__cta,
#main-content .lmyc-pricing-trial__book,
#main-content .healcode-link:not(.loginRegister),
#main-content a.healcode-link:not(.loginRegister),
#main-content .healcode-pricing-option-text-link,
#main-content .lmyc-category-booking .button,
#main-content .collab-cta .button,
#main-content .lmyc-ig-grid__load-more,
#main-content .lmyc-ig-grid__toggle,
.footer .footer-button,
.footer .button,
.footer a.button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  align-self: center !important;
  box-sizing: border-box !important;
  min-width: var(--lmyc-btn-min-width) !important;
  width: auto !important;
  height: var(--lmyc-btn-height) !important;
  min-height: var(--lmyc-btn-height) !important;
  max-height: var(--lmyc-btn-height) !important;
  padding: 0 var(--lmyc-btn-padding-x) !important;
  border-radius: var(--lmyc-btn-radius) !important;
  font-size: var(--lmyc-btn-font-size) !important;
  font-weight: var(--lmyc-btn-font-weight) !important;
  letter-spacing: var(--lmyc-btn-letter-spacing) !important;
  line-height: 1 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  transform: none !important;
}

/* Primary filled look when class implies it */
#main-content .button--primary,
#main-content .lmyc-hero-btn,
#main-content .lmyc-explore-services-btn,
#main-content .lmyc-cta-premium,
#main-content .lmyc-tt-btn--primary,
#main-content .lmyc-tt-hero__btn,
#main-content .lmyc-contact-form__submit,
#main-content .lmyc-pricing-card__btn,
#main-content .lmyc-pricing-trial__book {
  background: var(--lmyc-btn-green) !important;
  color: var(--lmyc-btn-on-green) !important;
  border: 0 !important;
}

#main-content .button--primary:hover,
#main-content .lmyc-hero-btn:hover,
#main-content .lmyc-explore-services-btn:hover,
#main-content .lmyc-cta-premium:hover,
#main-content .lmyc-tt-btn--primary:hover,
#main-content .lmyc-tt-hero__btn:hover,
#main-content .lmyc-contact-form__submit:hover,
#main-content .lmyc-pricing-card__btn:hover,
#main-content .lmyc-pricing-trial__book:hover {
  background: var(--lmyc-btn-green-hover) !important;
  color: var(--lmyc-btn-on-green) !important;
}

@media screen and (max-width: 749px) {
  :root {
    --lmyc-btn-min-width: 140px;
    --lmyc-btn-height: 48px;
    --lmyc-btn-font-size: 13px;
    --lmyc-btn-padding-x: 18px;
  }
}

/* Footer text scale (was inflated at 16px rem) */
#site-footer,
#site-footer .footer,
#site-footer a,
#site-footer p,
#site-footer li {
  font-size: 1.35rem; /* 13.5px @ 10px rem */
}

#site-footer .footer__copyright,
#site-footer small {
  font-size: 1.2rem;
}

/* Forms */
#main-content input,
#main-content select,
#main-content textarea {
  box-sizing: border-box;
  max-width: 100%;
  font-size: 1.4rem;
}

/* Cards / grids — prevent horizontal overflow */
#main-content .grid,
#main-content .lmyc-pricing-grid,
#main-content .lmyc-workshops-events__grid {
  max-width: 100%;
}

/* Subpage heroes — consistent top spacing under sticky header */
body:not(.lmyc-home-page) #main-content > .page-section:first-child,
body:not(.lmyc-home-page) #main-content > section:first-child {
  scroll-margin-top: var(--header-height);
}

/* Hide floating lang dock — header + drawer own EN/中 */
#lmyc-lang-dock {
  display: none !important;
}

/* Accessibility focus */
#main-content a:focus-visible,
#main-content button:focus-visible,
#site-header a:focus-visible,
#site-header button:focus-visible {
  outline: 2px solid #425936;
  outline-offset: 2px;
}
