/* MOSAdemy responsive layout: active only when the preview or published flag is set. */
html[data-mosa-rv-enabled="1"] body { overflow-wrap: break-word; }
html[data-mosa-rv-enabled="1"] img,
html[data-mosa-rv-enabled="1"] video,
html[data-mosa-rv-enabled="1"] iframe { max-width: 100%; }

/* Floating mode selector. Positioned opposite the site's existing scroll-to-top button. */
#mosa-rv-widget {
  box-sizing: border-box; position: fixed; bottom: max(16px, env(safe-area-inset-bottom));
  left: max(12px, env(safe-area-inset-left)); z-index: 9990;
  font-family: -apple-system, BlinkMacSystemFont, 'Hiragino Kaku Gothic ProN', 'Yu Gothic', sans-serif;
  color: #172033; font-size: 14px; line-height: 1.45;
}
#mosa-rv-widget *, #mosa-rv-widget *::before, #mosa-rv-widget *::after { box-sizing: border-box; }
#mosa-rv-widget button { font-family: inherit; cursor: pointer; }
#mosa-rv-widget [hidden] { display: none !important; }
#mosa-rv-widget .mosa-rv-trigger {
  appearance: none; border: 1px solid #d5d9e2; background: #ffffff;
  box-shadow: 0 8px 24px rgba(10,20,36,.17); color: #172033;
  display: inline-flex; align-items: center; gap: 8px; font-weight: 800;
  min-height: 46px; padding: 10px 14px; border-radius: 999px; line-height: 1;
}
#mosa-rv-widget .mosa-rv-trigger:hover,
#mosa-rv-widget .mosa-rv-trigger:focus-visible { border-color: #c2410c; outline-offset: 3px; }
#mosa-rv-widget .mosa-rv-panel {
  position: absolute; bottom: calc(100% + 10px); left: 0;
  width: min(320px, calc(100vw - 24px)); padding: 17px;
  background: #fff; color: #172033; border: 1px solid #e4e7ed;
  border-radius: 18px; box-shadow: 0 16px 46px rgba(10,20,36,.2);
}
#mosa-rv-widget .mosa-rv-panel-title { font-size: 15px; font-weight: 900; margin-bottom: 12px; }
#mosa-rv-widget .mosa-rv-choices { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; }
#mosa-rv-widget .mosa-rv-choices button {
  border: 1px solid #d5d9e2; border-radius: 10px; background: #f8fafc;
  min-height: 45px; font-weight: 800; font-size: 13px; color: #29364d; padding: 8px 3px;
}
#mosa-rv-widget .mosa-rv-choices button[aria-pressed="true"] {
  color: #9a3412; background: #fff7ed; border-color: #fb923c;
}
#mosa-rv-widget .mosa-rv-choices button:focus-visible { outline: 2px solid #c2410c; outline-offset: 2px; }
#mosa-rv-widget .mosa-rv-description { margin: 11px 0 0; font-size: 12px; color: #506075; line-height: 1.7; }
#mosa-rv-widget .mosa-rv-preview-notice { margin: 8px 0 0; font-size: 11px; color: #9a3412; font-weight: 800; }

/* Mobile view: small screens automatically, or manually on larger devices. */
html[data-mosa-rv-resolved="mobile"] body { overflow-x: clip; }
html[data-mosa-rv-resolved="mobile"] .mosa-page,
html[data-mosa-rv-resolved="mobile"] .mosa-works,
html[data-mosa-rv-resolved="mobile"] .mosa-company,
html[data-mosa-rv-resolved="mobile"] .site-content {
  max-width: 100% !important; min-width: 0 !important;
}
html[data-mosa-rv-resolved="mobile"] .mosa-container,
html[data-mosa-rv-resolved="mobile"] .mosa-works-container,
html[data-mosa-rv-resolved="mobile"] .mosa-company-container {
  box-sizing: border-box; width: 100% !important; max-width: 100% !important;
  min-width: 0 !important; padding-left: 18px !important; padding-right: 18px !important;
}
html[data-mosa-rv-resolved="mobile"] .mosa-hero__inner,
html[data-mosa-rv-resolved="mobile"] .mosa-works-hero__inner,
html[data-mosa-rv-resolved="mobile"] .mosa-award__card,
html[data-mosa-rv-resolved="mobile"] .mosa-grid-2,
html[data-mosa-rv-resolved="mobile"] .mosa-grid-3,
html[data-mosa-rv-resolved="mobile"] .mosa-grid-4,
html[data-mosa-rv-resolved="mobile"] .mosa-works-card-grid,
html[data-mosa-rv-resolved="mobile"] .mosa-profile-head,
html[data-mosa-rv-resolved="mobile"] .mosa-name-values,
html[data-mosa-rv-resolved="mobile"] .mosa-flow__item,
html[data-mosa-rv-resolved="mobile"] .mosa-table-grid {
  grid-template-columns: minmax(0, 1fr) !important;
}
html[data-mosa-rv-resolved="mobile"] .mosa-hero__inner > *,
html[data-mosa-rv-resolved="mobile"] .mosa-works-hero__inner > *,
html[data-mosa-rv-resolved="mobile"] .mosa-award__card > *,
html[data-mosa-rv-resolved="mobile"] .mosa-profile-head > * { min-width: 0; max-width: 100%; }
html[data-mosa-rv-resolved="mobile"] .mosa-hero { padding: 26px 0 42px !important; }
html[data-mosa-rv-resolved="mobile"] .mosa-works-hero { padding: 26px 0 42px !important; }
html[data-mosa-rv-resolved="mobile"] .mosa-hero__copy,
html[data-mosa-rv-resolved="mobile"] .mosa-works-hero__copy { font-size: clamp(26px, 7.6vw, 34px) !important; line-height: 1.32 !important; }
html[data-mosa-rv-resolved="mobile"] .mosa-section,
html[data-mosa-rv-resolved="mobile"] .mosa-works-section { padding-top: 40px !important; padding-bottom: 40px !important; }
html[data-mosa-rv-resolved="mobile"] .mosa-cta__actions,
html[data-mosa-rv-resolved="mobile"] .mosa-works-cta__actions,
html[data-mosa-rv-resolved="mobile"] .mosa-hero__actions { flex-wrap: wrap; gap: 10px; }
html[data-mosa-rv-resolved="mobile"] .mosa-btn,
html[data-mosa-rv-resolved="mobile"] .mosa-works-btn { max-width: 100%; }
html[data-mosa-rv-resolved="mobile"] .mosa-name-panel__main,
html[data-mosa-rv-resolved="mobile"] .mosa-name-value,
html[data-mosa-rv-resolved="mobile"] .mosa-profile-summary,
html[data-mosa-rv-resolved="mobile"] .mosa-profile-career,
html[data-mosa-rv-resolved="mobile"] .mosa-card,
html[data-mosa-rv-resolved="mobile"] .mosa-simple-card,
html[data-mosa-rv-resolved="mobile"] .mosa-works-card,
html[data-mosa-rv-resolved="mobile"] .mosa-dark-panel,
html[data-mosa-rv-resolved="mobile"] .mosa-cta__box,
html[data-mosa-rv-resolved="mobile"] .mosa-works-cta__box { padding: 22px !important; }
html[data-mosa-rv-resolved="mobile"] .mosa-table-wrap,
html[data-mosa-rv-resolved="mobile"] .mosa-company-table-wrap { overflow-x: auto !important; max-width: 100%; }
html[data-mosa-rv-resolved="mobile"] .mosa-table th,
html[data-mosa-rv-resolved="mobile"] .mosa-table td,
html[data-mosa-rv-resolved="mobile"] .mosa-company-table th,
html[data-mosa-rv-resolved="mobile"] .mosa-company-table td { display: block !important; width: 100% !important; box-sizing: border-box; }
html[data-mosa-rv-resolved="mobile"] .wp-block-columns { flex-direction: column !important; }
html[data-mosa-rv-resolved="mobile"] .wp-block-column { min-width: 0 !important; }
html[data-mosa-rv-resolved="mobile"] .content__wrap { display: block !important; }
html[data-mosa-rv-resolved="mobile"] .content__main,
html[data-mosa-rv-resolved="mobile"] .site-main,
html[data-mosa-rv-resolved="mobile"] .sidebar,
html[data-mosa-rv-resolved="mobile"] .widget-area {
  width: 100% !important; max-width: 100% !important; min-width: 0 !important;
}

/* An uncluttered 1-row mobile header and accessible hamburger menu. */
html.mosa-rv-js[data-mosa-rv-resolved="mobile"] .mosa-shared-header { z-index: 1000 !important; }
html.mosa-rv-js[data-mosa-rv-resolved="mobile"] .mosa-shared-header .mosa-header__inner {
  display: flex !important; flex-direction: row !important; align-items: center !important;
  justify-content: space-between !important; padding: 9px 15px !important;
  gap: 8px !important; position: relative !important; min-height: 62px !important;
}
html.mosa-rv-js[data-mosa-rv-resolved="mobile"] .mosa-shared-header .mosa-header__logo img {
  height: 38px !important; max-width: min(215px, 65vw) !important; width: auto !important;
}
html.mosa-rv-js[data-mosa-rv-resolved="mobile"] .mosa-shared-header .mosa-header__nav {
  display: none !important; position: absolute !important; left: 0 !important; right: 0 !important;
  top: 100% !important; width: 100% !important; max-height: min(75vh, 610px) !important;
  overflow-y: auto !important; flex-direction: column !important; flex-wrap: nowrap !important;
  align-items: stretch !important; padding: 12px 18px 20px !important; gap: 4px !important;
  background: #fff !important; border-top: 1px solid #edf0f4 !important;
  box-shadow: 0 12px 22px rgba(17,24,39,.13) !important;
}
html.mosa-rv-js[data-mosa-rv-resolved="mobile"] .mosa-shared-header.mosa-rv-menu-open .mosa-header__nav { display: flex !important; }
html.mosa-rv-js[data-mosa-rv-resolved="mobile"] .mosa-shared-header .mosa-header__nav a {
  display: block !important; width: 100% !important; min-height: 44px !important;
  padding: 13px 14px !important; font-size: 15px !important; line-height: 1.35 !important;
  border-radius: 10px !important; background: transparent; color: #172033;
}
html.mosa-rv-js[data-mosa-rv-resolved="mobile"] .mosa-shared-header .mosa-header__nav a.is-current {
  background: #fff7ed !important; color: #c2410c !important;
}
html.mosa-rv-js[data-mosa-rv-resolved="mobile"] .mosa-shared-header .mosa-header__nav a.mosa-header__contact {
  border: 1.5px solid #f59e0b !important; box-shadow: none !important;
  text-align: center; margin-top: 5px !important;
}
#mosa-rv-nav-toggle { display: none; }
html.mosa-rv-js[data-mosa-rv-resolved="mobile"] #mosa-rv-nav-toggle {
  display: inline-flex !important; justify-content: center; align-items: center;
  gap: 7px; min-width: 45px; min-height: 44px; border-radius: 10px;
  background: #fff7ed; color: #9a3412; border: 1px solid #fed7aa;
  font-size: 13px; line-height: 1; font-weight: 900; padding: 10px 12px; cursor: pointer;
}
html.mosa-rv-js[data-mosa-rv-resolved="mobile"] #mosa-rv-nav-toggle:focus-visible {
  outline: 2px solid #c2410c; outline-offset: 3px;
}
/* Force-phone mode on a desktop presents a centered phone-width content column. */
html[data-mosa-rv-mode="mobile"] body { max-width: 440px !important; margin-left: auto !important; margin-right: auto !important; }
html[data-mosa-rv-mode="mobile"] #mosa-rv-widget {
  left: max(12px, calc((100vw - 440px) / 2 + 14px));
}
/* In forced desktop mode on a small physical phone, enlarge the view-mode
   switcher so the user can always get back to automatic/mobile mode. */
html[data-mosa-rv-handset="1"][data-mosa-rv-mode="desktop"] #mosa-rv-widget {
  transform: scale(2.5); transform-origin: top left;
  top: 320px !important; bottom: auto !important;
}
html[data-mosa-rv-handset="1"][data-mosa-rv-mode="desktop"] #mosa-rv-widget .mosa-rv-panel {
  width: 300px; bottom: auto !important; top: calc(100% + 10px) !important;
}
@media (prefers-reduced-motion: reduce) {
  #mosa-rv-widget *, #mosa-rv-nav-toggle { transition: none !important; }
}

/*
 * MOSAdemy desktop-wide layout v1.1.2
 * Only active while the responsive plugin is in admin preview / published mode
 * AND the effective mode is desktop. No changes to mobile or the live site
 * before the administrator explicitly enables responsive mode.
 */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] {
  --mosa-pc-gutter: clamp(28px, 4.1vw, 100px);
  --mosa-pc-inner-cap: 1920px;
}

/* Main landing pages use a blank-wide yStandard template. Remove its nested
   centred boxes, rather than setting width:100vw (which causes scrollbars). */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] body.page-template-template-blank-wide #content.site-content,
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] body.page-template-template-blank-wide #content.site-content > .container,
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] body.page-template-template-blank-wide #content.site-content > .container > .content__wrap,
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] body.page-template-template-blank-wide #content.site-content main.site-main,
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] body.page-template-template-blank-wide #content.site-content article.singular-article,
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] body.page-template-template-blank-wide #content.site-content article.singular-article > .entry-content {
  box-sizing: border-box;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin-inline: 0 !important;
  padding-inline: 0 !important;
}

/* Full-bleed color bands; the inner content spans the available PC width. */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] body.page-template-template-blank-wide :is(.mosa-page, .mosa-works, .mosa-company) {
  box-sizing: border-box;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] body.page-template-template-blank-wide :is(.mosa-container, .mosa-works-container, .mosa-company-container) {
  box-sizing: border-box;
  width: 100% !important;
  max-width: var(--mosa-pc-inner-cap) !important;
  min-width: 0 !important;
  margin-inline: auto !important;
  padding-inline: var(--mosa-pc-gutter) !important;
}

/* Keep branding and navigation aligned with the wider page. */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] .mosa-shared-header .mosa-header__inner {
  box-sizing: border-box;
  width: 100% !important;
  max-width: var(--mosa-pc-inner-cap) !important;
  margin-inline: auto !important;
  padding-inline: var(--mosa-pc-gutter) !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] .mosa-shared-header .mosa-header__nav {
  gap: clamp(11px, 1.45vw, 28px);
}

/* A more immersive home first view without needlessly widening paragraphs. */
@media (min-width: 1100px) {
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] body.home .mosa-hero {
    display: flex;
    align-items: center;
    min-height: clamp(520px, 64vh, 735px);
    padding-block: clamp(32px, 3.3vw, 58px);
  }
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] body.home .mosa-hero__inner {
    width: 100%;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
    gap: clamp(32px, 4.7vw, 96px);
  }
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] body.home .mosa-hero__copy {
    font-size: clamp(42px, 3.45vw, 70px);
    line-height: 1.23;
    letter-spacing: 0;
  }
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] body.home .mosa-hero__text {
    max-width: 750px;
    font-size: clamp(16px, 1.07vw, 19px);
    line-height: 1.9;
  }
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] body.home .mosa-visual-card {
    width: 100%;
    max-width: 900px;
    justify-self: end;
  }
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] body.home .mosa-visual-card__media {
    aspect-ratio: 16 / 9;
  }
}

/* Other marketing pages also gain a wider 2-column introduction. */
@media (min-width: 1100px) {
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] body.page-template-template-blank-wide:not(.home) :is(.mosa-hero__inner, .mosa-works-hero__inner) {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    column-gap: clamp(34px, 4.5vw, 92px);
  }
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] .mosa-section,
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] .mosa-works-section {
    padding-block: clamp(68px, 5.5vw, 108px);
  }
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] .mosa-section :is(.mosa-lead, .mosa-works-lead) {
    max-width: 900px;
  }
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] .mosa-cta__box,
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] .mosa-works-cta__box {
    max-width: 1200px;
  }
}

/* Articles and category archives: wider overall shell, readable text columns.
   Deliberately not full-bleed prose. */
@media (min-width: 1100px) {
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] body:is(.single-post, .archive) #content.site-content > .container {
    box-sizing: border-box;
    width: 100% !important;
    max-width: 1640px !important;
    padding-inline: var(--mosa-pc-gutter) !important;
    margin-inline: auto !important;
  }
}

/* On laptops, keep breathing room but prevent giant type and narrow columns. */
@media (min-width: 981px) and (max-width: 1099px) {
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] body.page-template-template-blank-wide :is(.mosa-container, .mosa-works-container, .mosa-company-container) {
    padding-inline: 28px !important;
  }
}

/*
 * Final PC first-view trim (v1.1.2)
 * On wide desktops only: preserve copy, buttons and main layout while bringing
 * the "Okayama Top 100 Companies" ribbon into the initial viewport more often.
 * Mobile mode / narrower screens / other pages are intentionally unchanged.
 */
@media (min-width: 1100px) {
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] body.home .mosa-hero {
    min-height: 0;
    padding-block: clamp(16px, 1.65vw, 26px);
  }
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"] body.home .mosa-visual-card__media {
    aspect-ratio: 2.14 / 1;
  }
}

/*
 * MOSAdemy mobile typography + layout refinement (v1.1.3)
 * Intentional CSS-only update: the desktop mode remains byte-identical to v1.1.2.
 * Scoped to the resolved mobile mode, including a manually selected phone view.
 */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] {
  --mosa-mobile-gutter: clamp(16px, 4.6vw, 22px);
  --mosa-mobile-copy: 15px;
  --mosa-mobile-leading: 1.82;
}

/* Give the narrow page its full useful width; remove the classic theme's
   *outer* centered wrapper while retaining deliberate inner page padding. */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] body.page-template-template-blank-wide #content.site-content,
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] body.page-template-template-blank-wide #content.site-content > .container,
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] body.page-template-template-blank-wide #content.site-content > .container > .content__wrap,
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] body.page-template-template-blank-wide #content.site-content main.site-main,
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] body.page-template-template-blank-wide #content.site-content article.singular-article,
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] body.page-template-template-blank-wide #content.site-content article.singular-article > .entry-content {
  box-sizing: border-box;
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin-inline: 0 !important;
  padding-inline: 0 !important;
}

html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-page, .mosa-works, .mosa-company) {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-container, .mosa-works-container, .mosa-company-container) {
  padding-inline: var(--mosa-mobile-gutter) !important;
}

/* Type sizes and Japanese line breaks: let headings balance naturally without
   changing their content or hard-coded line breaks in WordPress. */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-page, .mosa-works, .mosa-company) {
  font-size: var(--mosa-mobile-copy) !important;
  line-height: var(--mosa-mobile-leading);
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-page, .mosa-works, .mosa-company) :is(h1,h2,h3,h4,p,li) {
  word-break: normal !important;
  overflow-wrap: break-word !important;
  line-break: strict;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-page, .mosa-works, .mosa-company) :is(h1,h2,h3) {
  text-wrap: balance;
  letter-spacing: 0 !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-hero__copy, .mosa-works-hero__copy) {
  font-size: clamp(24px, 6.9vw, 30px) !important;
  line-height: 1.38 !important;
  margin-bottom: 12px !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-hero__text, .mosa-works-hero__text) {
  font-size: 15px !important;
  line-height: 1.83 !important;
  max-width: 100% !important;
  margin-bottom: 16px !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-title, .mosa-works-title) {
  font-size: clamp(23px, 5.9vw, 27px) !important;
  line-height: 1.42 !important;
  margin-bottom: 12px !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-lead, .mosa-works-lead, .mosa-lead--single) {
  max-width: 100% !important;
  font-size: 15px !important;
  line-height: 1.85 !important;
  white-space: normal !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-card, .mosa-simple-card, .mosa-works-card, .mosa-visual-card, .mosa-works-visual-card) :is(h2,h3) {
  font-size: clamp(18px, 5vw, 21px) !important;
  line-height: 1.47 !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-card, .mosa-simple-card, .mosa-works-card, .mosa-visual-card, .mosa-works-visual-card) p {
  font-size: 14.5px !important;
  line-height: 1.8 !important;
}

/* Mobile hero: text first, then a slightly shallower photograph. */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-hero, .mosa-works-hero) {
  min-height: 0 !important;
  padding-block: 22px 30px !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-hero__inner, .mosa-works-hero__inner) {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 22px !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-visual-card, .mosa-works-visual-card) {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  border-radius: 20px !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-visual-card__media, .mosa-works-visual-card__media) {
  aspect-ratio: 16 / 10 !important;
  width: 100% !important;
  height: auto !important;
  max-height: 280px !important;
  overflow: hidden !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-visual-card__media, .mosa-works-visual-card__media) :is(img,video) {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center 45%;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-visual-card__body, .mosa-works-visual-card__body) {
  padding: 18px 18px 20px !important;
}

/* Compact but easy-to-tap calls to action. */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-hero__actions, .mosa-cta__actions, .mosa-works-cta__actions) {
  display: flex !important;
  flex-wrap: wrap !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 10px !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-btn, .mosa-works-btn) {
  display: inline-flex !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 46px !important;
  padding: 12px 15px !important;
  justify-content: center !important;
  text-align: center !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  white-space: normal !important;
}

/* Card groups and the Top 100 ribbon: keep images edge-to-edge, avoid
   creating the 22px inset on photo cards inherited from v1.0.0. */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-grid-2, .mosa-grid-3, .mosa-grid-4, .mosa-works-card-grid) {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 15px !important;
  margin-top: 20px !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] .mosa-card {
  padding: 0 !important;
  overflow: hidden !important;
  border-radius: 19px !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] .mosa-card__image {
  width: 100% !important;
  aspect-ratio: 16 / 10 !important;
  overflow: hidden !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] .mosa-card__image :is(img,video) {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] .mosa-card__body {
  padding: 18px 18px 20px !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-simple-card, .mosa-works-card) {
  padding: 20px !important;
  border-radius: 19px !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] .mosa-award {
  padding-top: 15px !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] .mosa-award__card {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 12px !important;
  padding: 19px !important;
  text-align: center !important;
  border-radius: 18px !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] .mosa-award__emblem img {
  max-width: min(250px, 100%) !important;
  height: auto !important;
  margin-inline: auto !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] .mosa-award__content h2 {
  font-size: 17px !important;
  line-height: 1.5 !important;
  white-space: normal !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] .mosa-award__content p {
  font-size: 14px !important;
  line-height: 1.75 !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] .mosa-award__link {
  grid-column: auto !important;
  justify-self: stretch !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 45px !important;
}

/* Text-and-photo informational sections. Preserve subjects in portrait photos. */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-section, .mosa-works-section) {
  padding-block: 35px !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-cta, .mosa-works-cta) {
  padding-block: 40px !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-dark-panel, .mosa-works-feature-message, .mosa-cta__box, .mosa-works-cta__box) {
  padding: 21px !important;
  border-radius: 21px !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-dark-panel h3, .mosa-works-feature-message h3, .mosa-cta__box h2, .mosa-works-cta__box h2, .mosa-name-panel__main h3) {
  font-size: clamp(23px, 6vw, 28px) !important;
  line-height: 1.45 !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] .mosa-profile-photo img {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: 360px !important;
  object-fit: contain !important;
  object-position: center top !important;
  background: #f8fafc;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-name-panel__main, .mosa-name-value, .mosa-profile-summary, .mosa-profile-career, .mosa-form-card) {
  padding: 20px !important;
}

/* Tables, forms, and embedded maps: prevent sideways page scrolling. */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-table-wrap, .mosa-company-table-wrap, .mosa-form-card, .mosa-form-embed) {
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-x: auto !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-form-embed input, .mosa-form-embed select, .mosa-form-embed textarea, .wpcf7-form-control) {
  max-width: 100% !important;
  box-sizing: border-box !important;
  font-size: 16px !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] .mosa-company-map iframe {
  width: 100% !important;
  height: 250px !important;
}

/* Blog/category pages: full-width content and readable captions; keep the
   yStandard sidebar below articles rather than squeezing it next to text. */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] body:is(.single-post, .archive, .blog) #content.site-content > .container {
  box-sizing: border-box;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin-inline: auto !important;
  padding-inline: var(--mosa-mobile-gutter) !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] body:is(.single-post, .archive, .blog) .content__wrap {
  display: block !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] body:is(.single-post, .archive, .blog) :is(.content__main, .archive__main, .site-main, .sidebar) {
  box-sizing: border-box;
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-inline: 0 !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] body:is(.single-post, .archive, .blog) :is(.singular-header__title, .archive__page-title, .page-title) {
  font-size: clamp(23px, 6vw, 29px) !important;
  line-height: 1.45 !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  text-wrap: balance;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] body:is(.single-post, .archive, .blog) :is(.entry-content, .archive__text) {
  font-size: 15px !important;
  line-height: 1.9 !important;
  overflow-wrap: break-word;
  min-width: 0 !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] body:is(.single-post, .archive, .blog) :is(.entry-content img, .entry-content video, .wp-block-image img, .archive__image) {
  display: block;
  max-width: 100% !important;
  height: auto !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] body:is(.single-post, .archive, .blog) :is(.archive__item, .archive__detail, .archive__container) {
  max-width: 100% !important;
  min-width: 0 !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] body:is(.single-post, .archive, .blog) .archive__container.is-card {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 16px !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] body:is(.single-post, .archive, .blog) .archive__thumbnail {
  width: 100% !important;
  max-width: 100% !important;
}

/* Figure defaults can add 40px side margins to category thumbnails on phones. */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] body:is(.single-post, .archive, .blog) :is(.archive__thumbnail, .singular-header__thumbnail, .archive__thumbnail figure) {
  box-sizing: border-box;
  display: block;
  margin-inline: 0 !important;
  padding-inline: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] body:is(.single-post, .archive, .blog) :is(.archive__thumbnail .ratio, .archive__thumbnail .ratio__item) {
  box-sizing: border-box;
  width: 100% !important;
  max-width: 100% !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] body.single-post .singular-header__image {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  object-fit: contain;
}

/* Tiny screens retain a readable header and compact photo and button sizes. */
@media (max-width: 359px) {
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-hero__copy, .mosa-works-hero__copy) { font-size: 24px !important; }
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] :is(.mosa-visual-card__body, .mosa-works-visual-card__body) { padding: 16px !important; }
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] .mosa-award__card { padding: 16px !important; }
}


/*
 * v1.1.4 — smartphone-only, Japanese phrase-aware line wrapping.
 * The desktop selectors and existing body/header design remain unchanged.
 * Chromium supports auto-phrase; other engines receive a guarded JS fallback.
 */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"]
  :is(.mosa-page, .mosa-works, .mosa-company, .entry-content, .archive__text, .archive__header, .singular-header, .sidebar)
  :is(h1, h2, h3, h4, h5, h6, p, li, dt, dd) {
  word-break: auto-phrase !important;
  line-break: strict !important;
  overflow-wrap: break-word !important;
  letter-spacing: normal !important;
}
/* Balance short headlines, but avoid short orphan fragments in prose. */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"]
  :is(.mosa-page, .mosa-works, .mosa-company, .entry-content, .archive__text, .archive__header, .singular-header, .sidebar)
  :is(h1, h2, h3, h4, h5, h6) {
  text-wrap: balance;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"]
  :is(.mosa-page, .mosa-works, .mosa-company, .entry-content, .archive__text, .sidebar)
  :is(p, li, dt, dd) {
  text-wrap: pretty;
}

/* Text in the marketing CTA is allowed to reflow naturally on mobile; the
 * manually authored <br> remains untouched for desktop visitors. */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"]
  :is(.mosa-cta__box p, .mosa-works-cta__box p, .mosa-hero__text, .mosa-works-hero__text) br {
  display: none !important;
}
/* Center titles and CTAs; descriptions scan better as short left-aligned lines
 * than as a single orphaned character centred on the final line. */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"]
  :is(.mosa-award__content p, .mosa-cta__box p, .mosa-works-cta__box p) {
  text-align: start !important;
  margin-inline: auto !important;
  max-width: 36ch !important;
  text-indent: 0 !important;
}
/* Keep the phrase fallback inline, not an oversized unbreakable column. */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"] .mosa-rv-phrase {
  white-space: nowrap;
}


/* v1.1.5: Natural smartphone typography for disclosures and representative profile.
   Keep the approved PC layout byte-for-byte unchanged. */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"]
  :is(.mosa-works-note, .mosa-note) p {
  font-size: clamp(14px, 3.75vw, 15px) !important;
  line-height: 1.76 !important;
  letter-spacing: 0 !important;
  text-align: left !important;
  text-indent: 0 !important;
  text-wrap: pretty;
  word-break: auto-phrase !important;
  overflow-wrap: break-word !important;
}
/* In WordPress content, the hard-coded line break after the first sentence
   narrows the remaining space and makes the following privacy link wrap oddly. */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"]
  :is(.mosa-works-note, .mosa-note) p br { display: none !important; }
/* A link is one semantic phrase: allow the whole label to move to the next
   line instead of breaking プライバシーポリシー halfway through. */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"]
  :is(.mosa-works-note__link, .mosa-note__link) {
  display: inline-block !important;
  max-width: 100% !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  letter-spacing: 0 !important;
  vertical-align: baseline !important;
}
/* Representative: slightly more compact rhythm, but no changes to photo
   positioning or factual content in the profile and career table. */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"]
  .mosa-profile-summary h3 {
  font-size: clamp(25px, 6.8vw, 30px) !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"]
  :is(.mosa-profile-summary p, .mosa-profile-career .mosa-table td, .mosa-profile-career .mosa-table th) {
  font-size: clamp(14px, 3.75vw, 15px) !important;
  line-height: 1.78 !important;
  letter-spacing: 0 !important;
  text-align: left !important;
  text-wrap: pretty;
  word-break: auto-phrase !important;
  overflow-wrap: break-word !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"]
  .mosa-profile-summary p { max-width: 100% !important; }
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"]
  .mosa-profile-career .mosa-table th { white-space: normal !important; }


/* v1.1.6: final adjustments limited to the MOSAdemy about page.
   Desktop: reduce the whitespace within the representative's card.
   Mobile: keep the STREAM headline as two semantic lines without an orphan. */
@media (min-width: 1100px) {
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"]
    body.page-id-798 .mosa-profile-box {
    width: 100%;
    max-width: 1160px;
    margin-left: auto;
    margin-right: auto;
  }
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"]
    body.page-id-798 .mosa-profile-head {
    grid-template-columns: minmax(260px, 330px) minmax(0, 1fr);
  }
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"]
    body.page-id-798 .mosa-profile-summary {
    padding: 34px 42px;
  }
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"]
    body.page-id-798 .mosa-profile-summary p {
    max-width: none;
  }
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"]
  body.page-id-798 .mosa-grid-3 .mosa-simple-card h3.mosa-stream-heading {
  font-size: clamp(17px, 4.9vw, 21px) !important;
  line-height: 1.5 !important;
  letter-spacing: -0.025em !important;
  text-wrap: initial !important;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"]
  body.page-id-798 .mosa-stream-heading__prefix,
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"]
  body.page-id-798 .mosa-stream-heading__main {
  display: block;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="mobile"]
  body.page-id-798 .mosa-stream-heading__main {
  white-space: nowrap;
}

/* v1.1.7: correct the orphan final character on the PC-side STREAM card.
   Limited to the MOSAdemy about page in desktop mode only.
   Preserve the intentionally separate smartphone rendering from v1.1.6. */
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"]
  body.page-id-798 .mosa-grid-3 .mosa-simple-card h3.mosa-stream-heading {
  text-wrap: balance;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"]
  body.page-id-798 .mosa-stream-heading__prefix,
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"]
  body.page-id-798 .mosa-stream-heading__main {
  display: block;
}
html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"]
  body.page-id-798 .mosa-stream-heading__main {
  text-wrap: balance;
  word-break: auto-phrase;
  overflow-wrap: break-word;
}
@media (min-width: 1280px) {
  html[data-mosa-rv-enabled="1"][data-mosa-rv-resolved="desktop"]
    body.page-id-798 .mosa-stream-heading__main {
    white-space: nowrap;
  }
}
