/* WordPress / Elementor integration. Keeps the supplied design intact. */
body.shengang-landing {
  font-family: Arial, "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
  color: var(--ink);
  font-size: 16px;
  font-weight: 400;
  line-height: normal;
  letter-spacing: normal;
}
body.shengang-landing main { display: block; margin: 0; padding: 0; }
/* Global typography from an Elementor kit or plugin must not restyle the design. */
body.shengang-landing :is(h1, h2, h3, h4, h5, h6) { color: inherit; font-family: inherit; font-weight: 700; font-style: normal; text-transform: none; }
body.shengang-landing button { text-transform: none; letter-spacing: inherit; }

/* Elementor wraps every widget; the design's sections must stay full-bleed. */
body.shengang-landing .elementor-widget[data-widget_type^="shengang-"] {
  width: 100%;
  max-width: none;
  margin: 0 !important;
  padding: 0;
}
body.shengang-landing .elementor-widget[data-widget_type^="shengang-"] > .elementor-widget-container { margin: 0; padding: 0; }
body.shengang-landing .e-con:has(> .elementor-widget[data-widget_type^="shengang-"]),
body.shengang-landing .e-con:has(> .e-con-inner > .elementor-widget[data-widget_type^="shengang-"]) {
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --margin-top: 0px; --margin-bottom: 0px;
  --gap: 0px; --row-gap: 0px; --column-gap: 0px;
  --content-width: 100%; --container-max-width: 100%; --width: 100%;
  --min-height: 0px;
}
body.shengang-landing .elementor-section:has(.elementor-widget[data-widget_type^="shengang-"]) > .elementor-container { max-width: none; }
body.shengang-landing .elementor-section:has(.elementor-widget[data-widget_type^="shengang-"]) .elementor-widget-wrap { padding: 0 !important; }

/* Media area additions. */
body.shengang-landing .news-prev[hidden], body.shengang-landing .news-next[hidden] { display: none !important; }
body.shengang-landing .news-empty { flex: 1 0 100%; padding: 2rem 1rem; color: #687580; text-align: center; line-height: 1.8; }
body.shengang-landing .news-embed video { display: block; width: 100%; height: 100%; border: 0; object-fit: contain; background: #13263c; }
body.shengang-landing video.news-poster { pointer-events: none; }
body.shengang-landing .news-editor-note {
  position: absolute; z-index: 2; inset: auto 8px 46px; padding: 6px 8px; border-radius: 8px;
  background: #fffbe6; color: #6b4e00; font-size: 12px; line-height: 1.5; text-align: center;
}

/* Instagram cards: no autoplay inside the card, a click opens the official embed in a dialog. */
body.shengang-landing .news-card[data-type="instagram"] .news-start::before {
  content: ""; position: absolute; z-index: 1; left: 50%; top: 46%; width: 58px; height: 58px; margin: -29px 0 0 -29px; border-radius: 50%;
  background: rgba(255, 255, 255, .92) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2313263c' d='M9 6.5v11l9-5.5z'/%3E%3C/svg%3E") 54% 50% / 28px no-repeat;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .28); transition: transform .25s;
}
body.shengang-landing .news-card[data-type="instagram"] .news-start::after {
  content: "Instagram"; position: absolute; z-index: 1; top: 12px; right: 12px; padding: 3px 10px; border-radius: 99px;
  background: rgba(19, 38, 60, .62); color: #fff; font-size: 12px; line-height: 1.5; letter-spacing: .02em;
}
body.shengang-landing .news-card[data-type="instagram"]:hover .news-start::before { transform: scale(1.08); }
html.news-modal-open { overflow: hidden; }
body.shengang-landing .news-modal { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; padding: 16px; font-family: inherit; }
body.shengang-landing .news-modal[hidden] { display: none; }
body.shengang-landing .news-modal-backdrop { position: absolute; inset: 0; background: rgba(8, 18, 31, .78); }
body.shengang-landing .news-modal-dialog { position: relative; display: flex; flex-direction: column; gap: 10px; width: min(420px, 100%); }
body.shengang-landing .news-modal-frame { height: min(740px, calc(100vh - 120px)); height: min(740px, calc(100dvh - 120px)); border-radius: 16px; overflow: hidden; background: #fff; }
body.shengang-landing .news-modal-frame iframe { display: block; width: 100%; height: 100%; border: 0; }
body.shengang-landing .news-modal-close {
  position: absolute; z-index: 2; top: -14px; right: -10px; display: grid; place-items: center; width: 38px; height: 38px; padding: 0;
  border: 0; border-radius: 50%; background: #fff; color: #13263c; font-size: 26px; line-height: 1; cursor: pointer; box-shadow: 0 4px 14px rgba(0, 0, 0, .35);
}
body.shengang-landing .news-modal-link { align-self: center; padding: 4px 8px; color: #fff; font-size: 14px; line-height: 1.6; text-decoration: underline; text-underline-offset: 3px; }
body.shengang-landing .news-modal-close:focus-visible, body.shengang-landing .news-modal-link:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
body.shengang-landing .news-modal-close:focus-visible { outline-color: #2e79df; }

/* 實踐承諾: item descriptions (the small text under each photo) are hidden and the block is shorter. */
body.shengang-landing #action-description { display: none; }
body.shengang-landing .action-panel { min-height: 0; padding-top: 36px; padding-bottom: 36px; }
body.shengang-landing .action-photo { margin-bottom: 0; }
/* The decorative arc at the bottom of the section is positioned from the section's bottom edge,
   so only the top spacing is reduced. */
@media (min-width: 701px) {
  body.shengang-landing .action { padding-top: 90px; }
}
@media (min-width: 901px) {
  body.shengang-landing .action-layout { margin-top: 42px; }
  body.shengang-landing .action-tabs { gap: 12px; }
}
@media (max-width: 700px) {
  body.shengang-landing .action { padding-top: 70px; }
  body.shengang-landing .action-panel { padding-top: 26px; padding-bottom: 26px; }
}

/* Theme extras printed by wp_body_open / wp_footer (e.g. Blocksy back-to-top, second skip link)
   are not part of this design; the footer has its own back-to-top button. */
body.shengang-landing .ct-drawer-canvas,
body.shengang-landing > .skip-link.screen-reader-text { display: none !important; }

/* WordPress admin bar. */
body.admin-bar.shengang-landing .site-header { margin-top: 32px; }
@media (max-width: 782px) { body.admin-bar.shengang-landing .site-header { margin-top: 46px; } }
@media (max-width: 600px) { body.admin-bar.shengang-landing .site-header.is-docked { margin-top: 0; } }
